鄧 彬 林永明
(1.威凱檢測技術(shù)有限公司 廣州 510000;2.中國電器科學(xué)研究院股份有限公司 廣州 510000)
側(cè)信道攻擊技術(shù)的廣泛應(yīng)用和不斷進(jìn)化給計(jì)算設(shè)備安全帶來了挑戰(zhàn),也加劇了對計(jì)算設(shè)備安全性的關(guān)注。許多研究者已經(jīng)對側(cè)信道攻擊技術(shù)進(jìn)行了深入研究,本文旨在介紹目前已知的各種攻擊方法及其理論基礎(chǔ)、技術(shù)原理和實(shí)際應(yīng)用情況,分析現(xiàn)有的側(cè)信道防御措施及其優(yōu)缺點(diǎn)。本文的研究成果可以為相關(guān)領(lǐng)域的研究者和從業(yè)者提供有價(jià)值的參考和指導(dǎo),促進(jìn)側(cè)信道攻擊技術(shù)研究的發(fā)展和計(jì)算設(shè)備安全性的提高。
側(cè)信道攻擊技術(shù)起源于上世紀(jì)90年代,在密碼學(xué)研究領(lǐng)域已經(jīng)存在了很長時(shí)間。最早的側(cè)信道攻擊是對稱密碼算法的攻擊,其中最早的一種是對芝加哥大學(xué)的Lucifer 算法進(jìn)行的攻擊。由于Lucifer 算法的密鑰長度只有128 位,攻擊者可以使用純文本和密文分析攻擊技術(shù)輕松地破解它。1999年,Paul Kocher 等人首次在文章中提出了差分功耗分析(Differential Power Analysis,DPA)的概念[1]。
隨著技術(shù)的進(jìn)步,側(cè)信道攻擊已經(jīng)成為密碼學(xué)研究領(lǐng)域中不可忽視的一部分。在過去的幾十年中,學(xué)術(shù)界和業(yè)界已經(jīng)提出了許多不同類型的側(cè)信道攻擊技術(shù),包括能量分析攻擊技術(shù)、時(shí)序攻擊技術(shù)、電磁攻擊技術(shù)、故障攻擊技術(shù)等。
在能量分析攻擊中,由于目標(biāo)設(shè)備進(jìn)行加密操作時(shí)能量消耗會因算法和數(shù)據(jù)不同而產(chǎn)生差異,攻擊者利用這些差異實(shí)現(xiàn)密鑰信息竊取。
在時(shí)序攻擊中,攻擊者利用統(tǒng)計(jì)學(xué)方法和高精度計(jì)時(shí)設(shè)備等工具對目標(biāo)設(shè)備進(jìn)行多次加密操作,獲取加密時(shí)間序列,并通過對序列的分析,推斷出加密操作的過程中存在的時(shí)序特征。
在電磁攻擊中,攻擊者利用電磁波輻射、傳導(dǎo)和耦合等方式來獲得設(shè)備運(yùn)行時(shí)的機(jī)密信息。它是一種非侵入式攻擊技術(shù),無需接觸目標(biāo)設(shè)備,僅通過電磁輻射即可實(shí)現(xiàn)攻擊。
在故障攻擊中,攻擊者通過人為引入設(shè)備故障實(shí)現(xiàn)攻擊目標(biāo),其攻擊理論是通過各種方式使得目標(biāo)設(shè)備出現(xiàn)故障,通過故障信息進(jìn)一步分析。主要分為三種類型,永久性故障是指設(shè)備的某些部分被毀壞,不能再次使用;持久性故障是指設(shè)備的某些部分受到了損壞,但是可以通過重新編程或者其他方法修復(fù);暫時(shí)性故障是指設(shè)備在攻擊時(shí)發(fā)生了一些暫時(shí)性的故障,但是在攻擊結(jié)束后設(shè)備可以正常工作。
側(cè)信道攻擊是一種新型的攻擊手段,往往不需要與被攻擊設(shè)備進(jìn)行物理接觸即可實(shí)現(xiàn)攻擊,竊取機(jī)密信息,對用戶或系統(tǒng)造成嚴(yán)重后果,因此需要通過硬件和軟件的方式為設(shè)備增加側(cè)信道防御措施。在各種側(cè)信道攻擊方式出現(xiàn)之后,學(xué)術(shù)界也提出了針對側(cè)信道攻擊的防御措施,但是由于側(cè)信道防御需面面俱到,所以針對不同類型的攻擊方式要實(shí)施不同的防御對策。
下面本文將從側(cè)信道攻擊、側(cè)信道防御兩個(gè)方面介紹基本原理、攻擊/防御模型、應(yīng)用場景及發(fā)展現(xiàn)狀。
側(cè)信道攻擊目的在于獲取設(shè)備運(yùn)行時(shí)產(chǎn)生的電壓、電磁輻射、聲音、溫度等側(cè)信息,從而實(shí)現(xiàn)密鑰獲取、信息竊取。與傳統(tǒng)密鑰破解不同,側(cè)信道攻擊者只要收集到足夠多的側(cè)信息,便可以花費(fèi)極小代價(jià)恢復(fù)密鑰。本章主要介紹能量分析攻擊、時(shí)序攻擊和故障攻擊的基本原理、攻擊方法和發(fā)展現(xiàn)狀。
1.1.1 能量消耗模型
1)漢明距離模型(Hamming-distance model,HD 模型)
漢明距離模型的理論是通過對電路在一定時(shí)間內(nèi)0 →1 轉(zhuǎn)換的次數(shù)的記錄來描繪該電路在該時(shí)間內(nèi)所消耗的能量,將這個(gè)時(shí)間再進(jìn)行細(xì)細(xì)劃分就可得到描述電路運(yùn)行情況的能量跡。
漢明距離模型對于電路消耗能量描述具有重要應(yīng)用意義。下文給出漢明距離模型的形式化表述。值v0和v1的漢明距離等于v0v1的漢明重量,漢明重量等于邏輯值為“1”的比特個(gè)數(shù)所以HW(v0v1)表示v0和v1中相異比特的個(gè)數(shù)。
漢明距離模型假設(shè)所有的元件對能量消耗具有相同的影響,0 →1 轉(zhuǎn)換和 1 →0 轉(zhuǎn)換具有同樣的能量消耗。值v0和v1的漢明距離可以計(jì)算如下:
式中:
v0,v1—電路中計(jì)算的兩個(gè)值;
HD()—漢明距離的計(jì)算函數(shù);
HW()—漢明重量的計(jì)算函數(shù)。
2)漢明重量模型(Hamming-weight model,HW 模型)漢明重量模型的理論是將電路能量消耗正比于電路處理數(shù)據(jù)中“1”的個(gè)數(shù),但要說明這一點(diǎn),需要著眼于一些具體的場景。對于所有的這些場景,均假設(shè)被攻擊設(shè)備的某一部分依次處理數(shù)據(jù)v0,v1和v2。目標(biāo)是在不知道v0和v2的情況下。對處理數(shù)據(jù)v1造成的能量消耗進(jìn)行仿真。兩種轉(zhuǎn)換中均涉及v1分別是v0→v1和v1→v2。在接下來的場景中只考慮轉(zhuǎn)換v0→v1。因?yàn)閷υ撧D(zhuǎn)換所作的所有考慮同樣適用于v1→v2。
①v0的各個(gè)比特相等且恒定
考慮的第一種情形是每一次v0→v1轉(zhuǎn)換中,v0的各個(gè)比特均相等的情況。例如,在處理v1之前,n 位數(shù)據(jù)總線總是先處理v0=0(v0的各個(gè)比特都為0)。在這種情況下漢明重量模型與漢明距離模型是等價(jià)的,即
在v0的所有比特均為1 的情況下有
式中:
n—數(shù)據(jù)總線位數(shù)。
在發(fā)生v0→v1轉(zhuǎn)換之前無論將v0的所有比特置0 抑或置1,漢明重量模型與漢明距離模型事實(shí)上是等價(jià)的。
②v0的各個(gè)比特恒定但不相等
在此場景中意味著攻擊者并不知道v0的值。在這種情況下只有在僅僅關(guān)注v0→v1轉(zhuǎn)換中一個(gè)比特的情況下,才能得到和上一個(gè)攻擊場景中同樣的結(jié)論。由前一種場景中的推論可知,如果僅僅考慮一個(gè)比特。則對能量分析攻擊而言,漢明重量模型與漢明距離模型效果一樣。
事實(shí)上,存在比已討論過的上述三種場景更多的情形。特別地有v0和v1相互依賴的情況,也有v0的各個(gè)比特不服從均勻分布的情況。對于HW 模型能在多大程度上刻畫能量消耗作出具有一般意義的斷言是很困難的。
1.1.2 攻擊方法
1)簡單能量分析
簡單能量分析(Simple Power Analysis,SPA)是在獲取目標(biāo)設(shè)備的能量跡后進(jìn)行的簡單分析。但是由于能量跡易受噪聲干擾,所以此種方法一般用于攻擊前對系統(tǒng)的初步分析,或用于特征極其明顯的系統(tǒng)。
2013年甘剛等人[2]對使用Montgomery 算法實(shí)現(xiàn)的模冪運(yùn)算進(jìn)行了簡單能量分析,針對Montgomery 算法本身存在可被側(cè)信道攻擊利用的信息泄露問題,從理論和實(shí)際功耗數(shù)據(jù)兩方面分析了Montgomery 算法存在的安全漏洞,并基于該漏洞提出了對使用Montgomery 算法實(shí)現(xiàn)的模冪運(yùn)算進(jìn)行簡單能量分析(SPA,simple power analysis)攻擊算法。利用該算法對實(shí)際模冪運(yùn)算的能量曲線進(jìn)行了功耗分析攻擊。
2)差分能量分析
差分能量分析(Differential Power Analysis,DPA)的目標(biāo)是記錄目標(biāo)設(shè)備在進(jìn)行許多數(shù)據(jù)的加解密動作時(shí)泄漏的海量能量跡,并基于能量跡利用密碼設(shè)備能量消耗的數(shù)據(jù)依賴性恢復(fù)出設(shè)備密鑰。
假設(shè)攻擊者獲得N 個(gè)待加密明文m1,m2,…,mN,其中mi對應(yīng)的能量跡為t(i,1),t(i,2),…,t(i,M),猜測密鑰為k1,k2,…,kK,在確定的能量泄漏模型下有
式中:
H—能耗矩陣。
DPA 攻擊中,使用相關(guān)系數(shù)ri,j確定列h(i)和t(j)之間的線性關(guān)系(其中,i=1,2,…,K;j=1,2,…,M)。
式中:
r—相關(guān)系數(shù)矩陣元素;
h—能耗矩陣元素;
t—能量跡。
當(dāng)猜測密鑰ki錯(cuò)誤時(shí),相關(guān)系數(shù)ri,j值較小;而當(dāng)ki正確時(shí),相關(guān)系數(shù)ri,j值表現(xiàn)為極大。此時(shí)則可確定密鑰。
2014年,Luke 等人[3]使用簡單工作站的小型集群有效地處理多達(dá) 32 位的關(guān)鍵假設(shè)消費(fèi)類顯卡。 這種能力使他們能夠結(jié)合許多中間目標(biāo);在這項(xiàng)工作中,他們第一次認(rèn)真地嘗試探成功組合的特征。結(jié)果表明結(jié)合S-box+AddRoundKey 或者另外包括一個(gè)中間 MixColumns計(jì)算通常會產(chǎn)生最強(qiáng)的結(jié)果。 多目標(biāo)攻擊規(guī)模可預(yù)測的噪聲和關(guān)于不精確的功率模型是穩(wěn)健的。
2020年,Gellersen 等人[4]介紹了Picnic 簽名方案的第一個(gè)差分側(cè)信道分析,這是美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)正在進(jìn)行的后量子密碼學(xué)競賽的備選方案。他們提出了一個(gè)成功的底層多方實(shí)施的旁路分析LowMC塊密碼(MPC-LowMC)并展示如何通過利用算法的兩個(gè)不同部分來使用邊信道信息來恢復(fù)整個(gè)密鑰。LowMC 密鑰恢復(fù)然后允許為調(diào)用 Picnic 后量子簽名方案偽造簽名。密鑰恢復(fù)成功且少于1 000 個(gè)LowMC 跟蹤,這可以從少于 30 個(gè)觀察到的Picnic 簽名中獲得。
時(shí)序攻擊(Timing Attack,TA)由Paul Kocher 等人在1996年提出,并對DiffieHellman、DSS、RSA 進(jìn)行了時(shí)序攻擊[5],該攻擊方法旨在利用加密所消耗時(shí)間進(jìn)行密鑰破解。通過獲取在不同的輸入下設(shè)備操作的執(zhí)行時(shí)間從而提取出關(guān)鍵信息。原理如圖[6]
如下給出從左至右“平方-乘法算法描述”。
算法:m=bemod n
輸入:基數(shù)b,模數(shù)n,指數(shù)e=(etet-1…e0)2,et=1
輸出:m
1. s=1
2. for i from t to 0 do
3. if ei==1 then
4. m=s×b mod n
5. else
6. m=s

圖1 時(shí)序攻擊原理
7. end if
8. s=m×m mod n
9. end for
10. return m
在算法中可見,當(dāng)指數(shù)e 為1 時(shí)執(zhí)行語句4,為0 時(shí)執(zhí)行語句6,體現(xiàn)在運(yùn)行時(shí)間的區(qū)別是語句4 的模乘運(yùn)算遠(yuǎn)大于語句6的賦值運(yùn)算,在實(shí)際攻擊中e即為密鑰值,獲取時(shí)間運(yùn)行數(shù)據(jù)后進(jìn)行方差運(yùn)算進(jìn)行密鑰破解。
2011年,Billy 等人[7]描述了OpenSSL 對二進(jìn)制字段上的曲線的階梯實(shí)現(xiàn)中的一個(gè)定時(shí)攻擊漏洞。他們使用此漏洞竊取TLS 服務(wù)器的私鑰,其中服務(wù)器使用ECDSA簽名進(jìn)行身份驗(yàn)證。使用時(shí)間交換的消息、消息本身和簽名,發(fā)起了一個(gè)恢復(fù)私鑰的晶格攻擊。
故障攻擊通過技術(shù)手段對設(shè)備進(jìn)行電壓擾動、外部時(shí)鐘、溫度、外部光源、電磁等外部注入,從而使設(shè)備計(jì)算過程出現(xiàn)故障,攻擊者利用正確密文、錯(cuò)誤密文、密鑰三者之間的關(guān)聯(lián)性進(jìn)行密鑰的恢復(fù)。
故障攻擊的思想由Boneh 等人[8]在1996年提出,基于模運(yùn)算的代數(shù)性質(zhì)使用故障注入技術(shù)實(shí)現(xiàn)了對RSACRT 公鑰密碼系統(tǒng)的攻擊;Biham 等人[9]在1997年提出了差分故障攻擊(Differential Fault Attack,DFA)技術(shù),實(shí)現(xiàn)了對使用DES 算法的密碼系統(tǒng)的密鑰提取。2013年Fuhr 等人[10]在前人研究基礎(chǔ)上利用統(tǒng)計(jì)學(xué)方法進(jìn)行統(tǒng)計(jì)故障分析(Statistical Fault Analysis, SFA)。
1.3.1 激光注入技術(shù)
外部光源注入技術(shù)的基本原理是半導(dǎo)體材料的光電效應(yīng),當(dāng)芯片未進(jìn)行外部封裝或已開封裝,強(qiáng)光持續(xù)對其進(jìn)行照射,此時(shí)由于光電效應(yīng),導(dǎo)致芯片內(nèi)部電路中產(chǎn)生故障電流,從而進(jìn)一步實(shí)現(xiàn)芯片寄存器存儲臨時(shí)值的目的[11]。
進(jìn)行外部光源注入所使用的光源主要有強(qiáng)光、激光、x 光等,而其中激光注入是當(dāng)前準(zhǔn)確度最高的故障注入技術(shù)。在進(jìn)行激光注入時(shí)需要將芯片開封裝,暴露出硅表面,通過高精尖激光注入儀器進(jìn)行空間和時(shí)間上的精準(zhǔn)注入,引起芯片運(yùn)算故障。Brummer 等人[12]在2015年成功實(shí)現(xiàn)了對90nm 和45nm 的FPGA 芯片進(jìn)行精準(zhǔn)激光注入,并達(dá)到了其芯片寄存器中臨時(shí)值的改變的目標(biāo)。
1.3.2 持久故障攻擊
持久故障攻擊由Zhang 等人[13]在2018年提出了持久性故障攻擊。與傳統(tǒng)的故障攻擊不同,攻擊者可以在加密階段之前準(zhǔn)備故障注入階段,從而放寬了緊耦合時(shí)間同步的約束。 持續(xù)故障分析(PFA)是針對 AES-128的不同實(shí)現(xiàn)進(jìn)行闡述的,特別是基于雙模塊冗余(DMR)的故障強(qiáng)化實(shí)現(xiàn)。
持久故障攻擊的基本思想是對分組密碼的查表實(shí)現(xiàn)的S 盒進(jìn)行故障注入,目的在于使其中的某一表項(xiàng)出現(xiàn)錯(cuò)誤,進(jìn)而使得加密后的密文中字節(jié)值的分布出現(xiàn)偏差。具體原理[14]如下:設(shè)f 表示該分組密碼的輪函數(shù);L 表示其中的線性層;S 表示其中的非線性層,即S 盒部分,S′表示注入持久故障后的S 盒;p 表示輪函數(shù)的輸入;c 表示輪函數(shù)的輸出,若該輪函數(shù)為末輪的輪函數(shù),則c表示最終的密文輸出。那么就有:
式中:
f—分組密碼的輪函數(shù);
L—線性層;
S—非線性層,即盒部分;
S′—注入持久故障后的盒;
p—輪函數(shù)的輸入;
c—輪函數(shù)的輸出,若該輪函數(shù)為末輪的輪函數(shù),表示最終的密文輸出。
在過去的幾十年里,緩存?zhèn)刃诺拦簦–SCA)嚴(yán)重威脅著用戶信息的安全,這一再凸顯了緩存的安全性。盡管安全緩存設(shè)計(jì)可以減輕或防御這種攻擊,但高設(shè)計(jì)周期和挖掘成本降低了特定設(shè)計(jì)的開發(fā)。因此,許多研究人員專注于提出一個(gè)安全緩存模型來分析CSCA并簡化安全設(shè)計(jì)。目前,緩存模型可以分為:①指標(biāo)分析模型;② 緩存驗(yàn)證模型;③緩存抽象模型。然而,這些模型大多關(guān)注CSCA 的建立階段,而不考慮CSCA的使用階段。另一方面,緩存模型的粒度要么是整個(gè)緩存,要么是單個(gè)緩存行,這不能清楚地描述CSCA 中的緩存行為。為了克服這些限制,2022年Wang Chong 等人[15]提出了一種新的基于狀態(tài)轉(zhuǎn)換的緩存模型,并通過該模型給出了CSCA 的形式化規(guī)范。首先,我們總結(jié)了緩存集的11 個(gè)基本狀態(tài),并指出了CSCA 過程中的目標(biāo)狀態(tài)。然后從攻擊前成本、狀態(tài)轉(zhuǎn)換成本和檢測精度三個(gè)方面對CSCA 進(jìn)行了描述,對CSCA 做了更全面的分析。
隨著云計(jì)算的廣泛應(yīng)用,云安全的重要性日益凸顯,VM 側(cè)信道攻擊會導(dǎo)致云中出現(xiàn)嚴(yán)重問題,因?yàn)楣粽哒趫?zhí)行導(dǎo)致可靠性問題的資源訪問。2021年Hansraj等人[16]研究了針對云的各種攻擊及其解決模型,通過使用各種技術(shù)(例如RSA 和AES)來檢測針對云的側(cè)信道攻擊,整體分析提供了有關(guān)云資源級安全及其解決方案的完整信息。
2020年,Jin Xin 等人[17]進(jìn)行了針對國密算法SM3的基于深度學(xué)習(xí)的側(cè)信道攻擊,他們使用相同的數(shù)據(jù)集針對不同的參數(shù)遞歸地訓(xùn)練網(wǎng)絡(luò),并用訓(xùn)練的網(wǎng)絡(luò)攻擊目標(biāo)數(shù)據(jù)集以恢復(fù)不同的參數(shù),成功恢復(fù)了密鑰,證實(shí)了深度學(xué)習(xí)在側(cè)信道攻擊領(lǐng)域的適用性。
任何側(cè)信道防御對策的目標(biāo)都可以總結(jié)為以下兩個(gè):其一是掩蓋密碼設(shè)備側(cè)信息,弱化其某些特征,最終使攻擊者無法利用這些側(cè)信息進(jìn)行密鑰恢復(fù);其二是通過各種方式去除能量消耗、時(shí)間等側(cè)信息的數(shù)據(jù)依賴性。因側(cè)信道防御與側(cè)信道攻擊不同,側(cè)信道攻擊只需攻擊一點(diǎn),但是側(cè)信道防御卻要兼顧所有方面,所以側(cè)信道防御難度極大,并且針對不同的攻擊手段需要實(shí)施不同的側(cè)信道防御對策,本章主要介紹針對能量分析攻擊、時(shí)序攻擊和故障攻擊的防御對策及研究進(jìn)展。
對能量分析攻擊進(jìn)行防御的主要手段是隨機(jī)化和掩碼,兩種手段的目的均是盡可能消除能量消耗的數(shù)據(jù)依賴性。
2.1.1 隨機(jī)化對策
對于隨機(jī)化對策,由于能量分析攻擊需要將目標(biāo)設(shè)備的能量消耗在時(shí)間上執(zhí)行“對齊”操作[18]。因此,可以采用將某一操作發(fā)生的時(shí)間隨機(jī)化來進(jìn)行抵御。2022年,羅玉玲等人[19]設(shè)計(jì)了一種基于兩個(gè)混沌映射的密碼系統(tǒng),中間數(shù)據(jù)由明文、輪密鑰和隨機(jī)序列數(shù)三者通過異或操作生成,從而達(dá)到擴(kuò)大密鑰空間的目的。此外,隨機(jī)序列數(shù)還控制隨機(jī)化操作,通過隨機(jī)化操作,將中間數(shù)據(jù)與能量消耗的關(guān)系進(jìn)行隱藏,減少側(cè)信道信息的泄露,以此達(dá)到抵抗能量分析攻擊的目的。
2.1.2 掩碼對策
而掩碼對策的主要思想是將密碼設(shè)備的每一個(gè)中間值都基于一個(gè)被稱為“掩碼”的隨機(jī)數(shù)進(jìn)行特定變換,即vm=v*m,該掩碼m 由目標(biāo)設(shè)備自身內(nèi)部產(chǎn)生,即用即廢,如此防止信息泄漏。而其中運(yùn)算*是目標(biāo)設(shè)備依據(jù)運(yùn)行的加密算法中的操作進(jìn)行定義,多為布爾異或○、模加運(yùn)算+或模乘運(yùn)算×。羅玉玲等人設(shè)計(jì)的密碼系統(tǒng)采用加性掩碼,掩碼由混沌系統(tǒng)產(chǎn)生,將中間值v 與掩碼m 進(jìn)行異或,生成掩碼中間值vm=vm,將掩碼中間值作為線性運(yùn)算的輸入,則有
式中:
v—中間值;
m—掩碼;
T()—線性運(yùn)算。
由于T()是線性運(yùn)算,式(7)可寫為
當(dāng)需要去除掩碼時(shí)
對于時(shí)序攻擊的防御,顧名思義需要在時(shí)間上實(shí)現(xiàn)。其中一種方法是算法改進(jìn),如對時(shí)序攻擊中提到的算法進(jìn)行改進(jìn)
算法:m=bemod n
輸入:基數(shù)b,模數(shù)n,指數(shù)e=(etet-1…e0)2,et=1
輸出:m
1. s=1
2. for i from t to 0 do
3. if ei==1 then
4. m=s×b mod n
5. else
6. compute s×b mod n
7. m=s
8. end if
9. s=m×m mod n
10. end for
11. return m
在上述算法中不論ei是否為1,都做一次模乘運(yùn)算s×b mod n,此時(shí)攻擊者無法通過時(shí)間觀測獲取ei的信息。此方法固定了運(yùn)算量,并且從結(jié)果來看確實(shí)是由較好的效果,但是不難看出,此方法也大大降低了算法的執(zhí)行效率,要知道當(dāng)ei不為1 時(shí)只需要進(jìn)行賦值運(yùn)算即可,此方法泛化了ei為1 和0 的操作,因此增加了許多模乘運(yùn)算,算法執(zhí)行效率大打折扣。
另一個(gè)思路是盲化技術(shù),即先將數(shù)據(jù)進(jìn)行盲化運(yùn)算,再進(jìn)行解密、去盲運(yùn)算。將算法m=bemod n 修改為如下:
1)產(chǎn)生隨機(jī)數(shù)r,r ∈[0,n-1];
2)計(jì)算r-1;
3)計(jì)算rpmod n,其中p 為公鑰;
4)計(jì)算b'=brpmod n;
5)計(jì)算m'=(b')emod n;
6)計(jì)算m=m' r-1mod n。
該方法在第四步引入隨機(jī)數(shù)產(chǎn)生b',使得無法將算法執(zhí)行時(shí)間與輸入的基數(shù)b 相聯(lián)系,于是攻擊者便無法獲得關(guān)于e 的信息。
對于故障攻擊的防護(hù)手段主要是隨機(jī)化和增加故障監(jiān)測機(jī)制。如在 2016年,Bindel 等人[20]調(diào)查了目前最有效的漏洞和阻力基于格的簽名方案 BLISS(CRYPTO2013)、ring-TESLA(Africa Crypt 2016)和GLP 計(jì)劃(CHES 2012)及其實(shí)施。對于每一個(gè)簽名在方案中,他們發(fā)現(xiàn)了至少六次有效的攻擊;Espitau 等人[21]特別研究了針對基于格的簽名實(shí)現(xiàn)的故障攻擊計(jì)劃,同時(shí)關(guān)注 Fiat-Shamir 類型的結(jié)構(gòu)(特別是 BLISS,還有GLP、PASSSing 和 Ring-TESLA)以及哈希和簽名方案(特別是基于 GPV 的 Ducas-Prest 方案)柳巴舍夫斯基)。針對這些提出了幾種故障攻擊產(chǎn)生完整密鑰恢復(fù)的方案,只有幾個(gè)甚至一個(gè)錯(cuò)誤的簽名,并討論可能的防范這些攻擊的對策;2018年,Bruinderink 等人[22]將差分故障攻擊的適用性擴(kuò)展到基于格的密碼學(xué),展示了兩種確定性的基于格的簽名方案Dilithium 和qTESLA 如何容易受到此類攻擊,證明了單個(gè)隨機(jī)故障會導(dǎo)致允許密鑰恢復(fù)的隨機(jī)數(shù)重用場景,并將其擴(kuò)展到錯(cuò)誤誘導(dǎo)的部分隨機(jī)數(shù)重用攻擊,它不會破壞計(jì)算簽名的有效性,因此更難檢測;2019年,Howe 等人[23]提出了利用錯(cuò)誤樣本的預(yù)期分布,即高斯或二項(xiàng)式,通過使用統(tǒng)計(jì)測試來驗(yàn)證采樣器運(yùn)行正常。新穎的對策旨在防止所有以前的故障攻擊錯(cuò)誤采樣器。
本文主要介紹了主流側(cè)信道攻擊技術(shù)的理論基礎(chǔ)、技術(shù)原理以及研究進(jìn)展,并介紹了對于不同攻擊技術(shù)的防御對策和側(cè)信道防御技術(shù)的研究成果等。