李聰
(北方民族大學(xué) 計算機科學(xué)與工程學(xué)院,寧夏 銀川 750021)
在當(dāng)今信息化革命發(fā)展進程中,信息占據(jù)了越來越重要的地位,但是在信息傳遞過程中不可避免地帶來信息泄露的困擾,因此信息安全日益受到人們的廣泛關(guān)注。信息安全主要研究的是如何解決網(wǎng)絡(luò)環(huán)境中的安全威脅以及安全防護問題。密碼學(xué)作為信息安全領(lǐng)域的研究核心,其主要分為密碼分析學(xué)以及密碼編碼學(xué)兩個方向。密碼編碼學(xué)主要側(cè)重于研究如何優(yōu)化密碼算法,其核心是在數(shù)學(xué)公式的基礎(chǔ)上完成密鑰的產(chǎn)生以及信息的轉(zhuǎn)換。密碼分析學(xué)則與之相反,其主要研究如何破解密碼算法或者密鑰,從而達到信息竊取的目的。傳統(tǒng)的密碼分析學(xué)主要集中在對密碼算法進行破解上,并對輸入輸出等數(shù)據(jù)輔之以監(jiān)聽等手段,在流程內(nèi)實現(xiàn)攻擊。而側(cè)信道攻擊,其核心思想是通過加密軟件或硬件運行時產(chǎn)生的各種泄露獲取密文信息,通過分析秘密信息與側(cè)信息之間的依賴關(guān)系進行側(cè)信道攻擊。
國際標準Common Criteria 被稱為通用標準(CC),用于評估IT 產(chǎn)品和系統(tǒng)的安全性能,評估結(jié)果有助于消費者確定IT 產(chǎn)品或者系統(tǒng)對于其預(yù)期應(yīng)用是否足夠安全,以及其使用中隱含的安全風(fēng)險是否可以容忍,然而目前主流的密碼產(chǎn)品測評機構(gòu)均將側(cè)信道攻擊的防護能力作為衡量密碼產(chǎn)品安全性的主要指標。
1996年P(guān)aul Kocher 等學(xué)者首次提出了側(cè)信道攻擊,翻開了密碼分析學(xué)領(lǐng)域的新篇章。側(cè)信道攻擊是以密碼算法為核心,但其與密碼算法執(zhí)行所依托的軟硬件平臺密不可分,例如中央處理器、Cache 緩存器、邏輯運算部件、集成電路等硬件設(shè)備和鏈接硬件設(shè)備與上層應(yīng)用軟件的操作系統(tǒng)等,共同承載著密碼算法的運行。我們將側(cè)信道攻擊按照攻擊方法進行分類總結(jié)為計時攻擊、功耗分析、故障分析、電磁分析以及Cache攻擊五個方面,并討論了上述攻擊中所用到的模型。理論模型:
(1)通常密碼系統(tǒng)在運行過程中所呈現(xiàn)出來的秘密信息與側(cè)信息之間的模型為:=((,))+,其中為密碼算法的輸入,為密鑰信息,為噪聲,(,)為假設(shè)側(cè)信道信息(如假設(shè)功耗),為(,)到真實側(cè)信息的映射。
(2)文獻[8]提出了基于信息熵的RSA 時間信息泄露模型,其中為密鑰,為密文,為采樣時間,為時間信息泄露函數(shù),最終用信息熵概念量化通道泄露函數(shù)進行建模為:
表1從攻擊方法、攻擊手段/原理、攻擊對象/平臺三個方面總結(jié)了近年來的側(cè)信道攻擊發(fā)展趨勢。
表1 側(cè)信道攻擊方法
RSA 公鑰密碼算法是Rivest、Shamir 與Adleman 三位學(xué)者于1978年提出的,是目前應(yīng)用最為廣泛的公鑰密碼算法之一。RSA 算法主要通過計算=mmodn 完成加密,計算=mmodn 完成解密,其中為明文,為密文,為模,(,)為公鑰對,(,)為私鑰對。對RSA 實現(xiàn)進行快速模冪運算的算法主要有“平方—乘法”算法、蒙哥馬利算法、中國剩余定理或引入并行的模乘線程來提高模冪運算速度。
Paul Kocher 在1996年首次提出了計時攻擊的概念,其用數(shù)學(xué)理論證明了計時攻擊的可行性,并對Diffie-Hellman、DSS、RSA 進行計時攻擊破解分析。計時攻擊是側(cè)信道攻擊中的一種,通過獲取在不同輸入下的每個操作的執(zhí)行時間從而提取有關(guān)設(shè)備平臺的關(guān)鍵信息,該時間可能會因為操作不同、輸入數(shù)據(jù)的差異以及運行環(huán)境屬性不同而存在差異。雖然現(xiàn)階段隨著量子計算密碼的發(fā)展,但其仍不能對1024-bit 的RSA 密碼破解構(gòu)成威脅。RSA 計時攻擊原理如圖1所示。
圖1 計時攻擊原理
RSA 計時攻擊通過分析模冪運算過程中條件分支語句運行時間不同來區(qū)分比特1 和比特0,通過獲取運行時間進行統(tǒng)計分析從而破解私鑰?!捌椒?乘法”算法描述如算法1(a)和算法1(b)所示,分別為從左至右和從右至左平方乘算法兩種。
本文以算法1(b)展開實驗,通過分析可知當(dāng)私鑰位為1 時執(zhí)行語句4,私鑰位為0 時執(zhí)行語句6,模乘運算的時間遠大于賦值運算,我們獲取時間運行數(shù)據(jù)進行方差運算破解私鑰。根據(jù)Kocher 假設(shè)每個私鑰位運行時間是相互獨立的,猜測正確位較比于猜測錯誤位減少更多的方差,其攻擊步驟為:
(1)用條密文對算法進行解密,獲取每條密文解密總時間T(1 ≤≤)。
(2)給定兩個測試私鑰,測試私鑰與真實私鑰二進制位長度相同,均為,從右向左進行攻擊,兩條測試私鑰高位任意,低位攻擊過的私鑰位固定,但當(dāng)前攻擊位不同,比較當(dāng)前攻擊位方差減少情況,方差減少多得即為猜測正確。
為了評估RSA 密碼核時間側(cè)信道。本文以(Intel(R)Xeon(R) Gold 6154 CPU @ 3.00 GHz雙核處理器,256 GB內(nèi)存,1 TB 固態(tài))Linux 操作系統(tǒng)為主要測試平臺,利用OpenSSL庫生成測試向量(RSA 密鑰和模)。其時間數(shù)據(jù)如圖2所示,比特1 時間為(150 000~200 000)時鐘周期之間,比特0時間在200 時鐘周期以內(nèi)。計時攻擊結(jié)果如圖3所示。
圖2 時間統(tǒng)計
圖3 攻擊成功率
常見的側(cè)信道防御技術(shù)包括:隨機掩碼,該技術(shù)是通過將隨機數(shù)添加到加密算法的中間過程中,從而改變側(cè)信道信息泄露和密鑰之間的依賴關(guān)系,因此攻擊者則無法還原出正確的密鑰;功耗平衡,此種方法為了消除側(cè)信道信息泄露和密鑰之間的依賴關(guān)系,通過將側(cè)信道泄露的信息特征進行隱藏,從而使攻擊者難以捕捉側(cè)信息的泄露;無效操作,此種方法主要是通過在特定的攻擊點周圍添加無效操作,或者在密碼算法實現(xiàn)過程中添加無效操作或者延時干擾,其基本原理也是破壞側(cè)信息同密鑰之間的依賴關(guān)系。
本文對近年來典型以及新興的側(cè)信道攻擊成果進行了總結(jié)。首先介紹了常見的攻擊方法,然后將各類攻擊方法作為分類目標,闡述了其中所用到的各類攻擊手段和作用平臺,最后以RSA 計時攻擊為例,演示了時間側(cè)信道信息泄露途徑。側(cè)信道攻擊應(yīng)用場景逐漸擴大,其攻擊手段也不斷豐富,對于加強側(cè)信道研究以保護信息泄露刻不容緩。