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