鄭 震 嚴(yán)迎建 劉燕江
(戰(zhàn)略支援部隊(duì)信息工程大學(xué) 鄭州 450001)
1999年Kocher等人[1]通過收集密碼設(shè)備運(yùn)行過程中的能量消耗獲取了密碼算法密鑰等信息,該研究催生了新的密碼攻擊形式——側(cè)信道能量分析攻擊。自此之后,經(jīng)過20余年發(fā)展,能量分析攻擊已經(jīng)發(fā)展成為包含差分能量分析(Differential Power Analysis, DPA)、簡單能量分析(Simple Power Analysis, SPA)和相關(guān)能量分析(Correlation Power Analysis, CPA)等多種形式的密碼分析技術(shù),對各類密碼產(chǎn)品的機(jī)密性和其中的數(shù)據(jù)完整性構(gòu)成了嚴(yán)重的現(xiàn)實(shí)威脅[2,3]。為應(yīng)對這些威脅,將針對能量分析攻擊的防護(hù)措施整合到密碼產(chǎn)品上已成為必然,因此對能量信息安全性和防護(hù)措施有效性的評估已經(jīng)逐漸成為密碼學(xué)領(lǐng)域的關(guān)注熱點(diǎn)之一。目前為止,任何評估方法都無法保證檢測出所有類型的能量信息泄漏,抗能量分析攻擊評估實(shí)驗(yàn)的目的是判斷密碼產(chǎn)品或模塊中是否存在能量信息泄漏,或是否能夠提供與所需安全級別相稱的防護(hù)能力。一個(gè)合格的能量信息泄漏評估方案應(yīng)滿足有效性(評估結(jié)果應(yīng)是可重復(fù)實(shí)現(xiàn)的)和簡易性(不應(yīng)消耗過多的評估時(shí)間或要求評估人員掌握過于專業(yè)的技能等)兩方面要求[4,5]。
在ANSSI和BSI等機(jī)構(gòu)定義的標(biāo)準(zhǔn)[6]中,通過實(shí)施能量分析攻擊的方式對待測設(shè)備抗能量分析攻擊的能力進(jìn)行評估,若攻擊成功,則根據(jù)攻擊所消耗的時(shí)間等資源對待測設(shè)備的安全級別進(jìn)行評定。但是這種基于攻擊的評估策略所需時(shí)間成本較大且通用性較差:在密碼產(chǎn)品的使用過程中,任何一種能量分析攻擊方法都可能被用于對其發(fā)起攻擊,因此為確保評估的全面性,應(yīng)盡可能地遍歷更多的能量分析攻擊方法,同時(shí)兼顧密碼算法的各個(gè)中間值以及各種能量模型。然而,即使只嘗試個(gè)別已知的攻擊方法,密碼算法中大量的中間值和可供選擇的不同能量模型仍會使得評估過程相當(dāng)耗時(shí),且由于保密的能量分析攻擊方法的存在,仍無法保證評估結(jié)果的全面性。當(dāng)密碼算法被攻破時(shí),也不能保證該攻擊方法即是最有效的攻擊手段,因此難以建立一個(gè)客觀的安全級別的標(biāo)準(zhǔn)。同時(shí),基于攻擊的評估策略對評估人員的要求較高,一方面要掌握盡可能多的能量分析攻擊方法,另一方面,實(shí)施攻擊時(shí)能量模型的選擇很大程度上取決于評估人員的專業(yè)知識和經(jīng)驗(yàn),如果因能量模型選擇不當(dāng)導(dǎo)致攻擊沒有成功,存在安全隱患的設(shè)備就會被誤判為安全[7]。隨著新型能量分析攻擊方法不斷被提出,這種評估策略的實(shí)施成本變得越來越大,局限性變得越來越突出。因此,當(dāng)前評估人員更加傾向于標(biāo)準(zhǔn)化的評估程序,通過實(shí)施較為固定的步驟對泄漏情況進(jìn)行評估。
與其尋找針對特定待測設(shè)備的最佳攻擊方法并以攻破設(shè)備所需的資源消耗量來衡量設(shè)備的安全級別,可以利用假設(shè)檢驗(yàn)的統(tǒng)計(jì)手段,先對待測設(shè)備的泄漏情況作出假設(shè),然后通過分析采集的能耗數(shù)據(jù)的統(tǒng)計(jì)特征來決定是否接受該決定。這種策略不必確定如何利用或量化這些泄漏,可用于決策待測設(shè)備是否能夠通過某項(xiàng)安全性測評,但不可用于破獲明文或密鑰等秘密信息?;谶@一思路,Goodwill等人[8]在2011年美國國家標(biāo)準(zhǔn)技術(shù)研究院主辦的研討會上針對AES算法提出了一種評估泄漏的新方法,使用一組預(yù)先指定的輸入明文作為測試向量執(zhí)行加密操作,然后對收集的能耗數(shù)據(jù)執(zhí)行假設(shè)檢驗(yàn)測試并計(jì)算得到置信度,對該置信度的數(shù)值設(shè)置閾值以建立一個(gè)明確的失敗/通過標(biāo)準(zhǔn)從而判定是否存在泄漏。Cooper等人[9]對該方法進(jìn)行了整理并將其命名為測試向量泄漏評估(Test Vector Leakage Assessment, TVLA),TVLA將泄漏評估與不斷發(fā)展的能量分析攻擊技術(shù)分離開來,將復(fù)雜的泄漏檢測問題轉(zhuǎn)化為簡捷的數(shù)理統(tǒng)計(jì)步驟,使用固定的統(tǒng)計(jì)步驟來捕獲能量信息泄漏。TVLA不需要評估人員掌握過多的密碼算法或能量分析攻擊知識,且可以通過修改測試向量等方法來捕捉能量信息泄漏,并根據(jù)所需的安全要求調(diào)整閾值,具有簡單高效等優(yōu)勢。
目前,TVLA已被廣泛應(yīng)用于對后量子密碼等各類密碼實(shí)現(xiàn)的泄漏評估中。Wang等人[10]利用TVLA對ARM Cortex-M4單片機(jī)上實(shí)現(xiàn)的SABER KEM的解密過程進(jìn)行了評估,結(jié)果表明該實(shí)現(xiàn)中的增量存儲步驟可能導(dǎo)致密鑰信息的泄漏。Saarinen等人[11]討論了TVLA在KEM的硬件實(shí)現(xiàn)上的實(shí)施并指出,由于后量子密碼的各密鑰對間的緊密聯(lián)系,用固定密鑰和隨機(jī)密鑰實(shí)施的非特定TVLA的效果不理想,實(shí)施TVLA前需對測試向量進(jìn)行謹(jǐn)慎的選擇。Krausz等人[12]針對后量子密碼提出了一個(gè)基于多項(xiàng)式反演的掩碼方案,并通過實(shí)施TVLA證明了其有效性。此外,TVLA還被用于其他平臺上不同密碼體制的安全性測評實(shí)驗(yàn)中[13–16]。
本文以TVLA為研究對象,對其研究現(xiàn)狀進(jìn)行歸納總結(jié)。首先在第2節(jié)對TVLA技術(shù)進(jìn)行了概述,對TVLA的實(shí)現(xiàn)機(jī)制進(jìn)行了介紹,并對特定和非特定兩種TVLA進(jìn)行了對比分析。然后在第3節(jié)根據(jù)已有文獻(xiàn)中的研究對TVLA的局限性進(jìn)行了分析和歸納。接著在第4節(jié)對TVLA的研究現(xiàn)狀進(jìn)行了歸納整理,對現(xiàn)有的各類TVLA的優(yōu)化和替代方法的優(yōu)勢與不足進(jìn)行了闡述和深入分析,最后在第5節(jié)對本文進(jìn)行了總結(jié)并對TVLA的發(fā)展前景進(jìn)行了展望。
在各種能量分析攻擊中,攻擊者嘗試設(shè)計(jì)各種數(shù)學(xué)公式以捕捉由明文或密鑰的變化等因素造成的能耗數(shù)據(jù)的統(tǒng)計(jì)學(xué)差異,進(jìn)而破解密碼算法。因此,設(shè)備能耗中任何的由所處理數(shù)據(jù)變化引起的顯著性的統(tǒng)計(jì)學(xué)差異都可能會被攻擊者加以利用,故當(dāng)密碼算法的明文或敏感中間值等操作數(shù)發(fā)生變化時(shí),若設(shè)備的能耗也隨之發(fā)生顯著性變化,即說明能耗中有攻擊者可利用的信息,即存在泄漏。TVLA正是基于這樣的原理,對能量信息泄漏進(jìn)行評估。
TVLA使用Welch's t檢驗(yàn)[17]來確定操作數(shù)和密碼設(shè)備能耗間是否存在依賴關(guān)系,Welch's t檢驗(yàn)是針對不同樣本量和不同方差的student t檢驗(yàn)的擴(kuò)展形式。具體地,在實(shí)施TVLA時(shí),根據(jù)操作數(shù)將能耗數(shù)據(jù)分為兩組,并通過檢驗(yàn)兩組能耗數(shù)據(jù)之間的均值差異來判斷是否存在泄漏。檢驗(yàn)的零假設(shè)是兩組能耗數(shù)據(jù)均值相同(即相應(yīng)的操作數(shù)對設(shè)備能耗沒有影響,不存在泄漏),備擇假設(shè)是兩組能耗數(shù)據(jù)均值不同(即相應(yīng)的操作數(shù)對設(shè)備能耗有影響,存在泄漏)。TVLA的檢驗(yàn)統(tǒng)計(jì)量t值的計(jì)算如式(1)
其中, (n0,μ0,) 和(n1,μ1,)分別為兩組能耗數(shù)據(jù)的樣本量、樣本均值和樣本方差。TVLA需要對能量跡中的采樣點(diǎn)逐個(gè)實(shí)施檢驗(yàn),Welch’s t檢驗(yàn)則用于判斷所采集的能耗數(shù)據(jù)是否提供了足夠的證據(jù)來拒絕零假設(shè),檢驗(yàn)統(tǒng)計(jì)量t出現(xiàn)高正值或負(fù)值表明零假設(shè)不正確的置信度較高,任一處采樣點(diǎn)處的t值超出閾值即可判定待測設(shè)備或算法存在能量信息泄漏。
對t值選擇不同的閾值C可以使得t>C或t<–C的概率對應(yīng)于零假設(shè)被拒絕的不同置信度。選擇一個(gè)較大的閾值可以使犯假陽性(實(shí)際無泄漏卻判定存在泄漏)誤判錯(cuò)誤的可能性較小,但大閾值會增加犯假陰性(實(shí)際有泄漏卻判定不存在泄漏)誤判錯(cuò)誤的概率,因此為平衡泄漏檢測的需求,同時(shí)控制假陽性和假陰性錯(cuò)誤出現(xiàn)的概率,閾值不能過大也不能過小,TVLA可以實(shí)施兩次相互獨(dú)立的實(shí)驗(yàn),只有在兩次實(shí)驗(yàn)中檢驗(yàn)統(tǒng)計(jì)量t在同一方向上均超過閾值(均大于C或均小于–C),才能判定存在泄漏。如果能量跡的某個(gè)采樣點(diǎn)處存在能量信息的泄漏,那么在兩次獨(dú)立測試實(shí)驗(yàn)中t值均應(yīng)大于C或均小于–C;而如果檢驗(yàn)統(tǒng)計(jì)量t在某采樣點(diǎn)處因噪聲等偶然因素超過了閾值,那么這種偶然情況在另一次獨(dú)立實(shí)驗(yàn)中幾乎不可能再次出現(xiàn)。
根據(jù)對能耗數(shù)據(jù)分組依據(jù)的不同,TVLA可分為特定TVLA和非特定TVLA,其中特定TVLA根據(jù)密碼算法中間值進(jìn)行分組,非特定TVLA根據(jù)輸入明文或密鑰對能耗數(shù)據(jù)進(jìn)行分組。
特定TVLA選擇密碼算法中間值的某一位或幾位作為分組判定位,根據(jù)判定位的值是否等于檢測前設(shè)置的數(shù)值將能耗數(shù)據(jù)分為兩組。特定TVLA判定位的設(shè)置和DPA等常見的能量分析攻擊的形式較為相似,因此其針對這些常見攻擊形式的測試效果較好。然而,由于可選擇的密碼算法中間值數(shù)目龐大,特定TVLA所需耗費(fèi)的成本非常大。以AES-128算法為例,在僅考慮圈密鑰加、字節(jié)置換、行移位和列混合4種密碼操作的情況下,在第1輪加密中就可以進(jìn)行4×128種位測試,4×16×256種字節(jié)測試,或更多種判定位數(shù)為其他值的測試。因此,特定TVLA同基于攻擊的測試方法一樣,難以保證評估的全面性。
根據(jù)輸入明文的不同,非特定TVLA又可分為“固定-固定”和“固定-隨機(jī)”兩種,其中前者的兩組輸入明文(密鑰)均為固定值,后者兩組能耗對應(yīng)的輸入明文(密鑰)分別為固定值和隨機(jī)值。在“固定-固定”非特定TVLA中,評估人員事先選定兩個(gè)固定的測試向量,并以隨機(jī)交錯(cuò)的方式輸入密碼設(shè)備中進(jìn)行加密,得到兩組能耗數(shù)據(jù)。在“固定-隨機(jī)”非特定TVLA中,評估人員事先選定一個(gè)固定測試向量,并以隨機(jī)交錯(cuò)的方式依次將該固定和隨機(jī)測試向量輸入密碼設(shè)備進(jìn)行加密,得到兩組能耗數(shù)據(jù)。在非特定TVLA中,選擇不同的輸入向量可能導(dǎo)致非特定TVLA結(jié)果不同,為保證評估結(jié)果的可靠性,應(yīng)選擇不同的測試向量重復(fù)實(shí)施TVLA。表1是特定和非特定TVLA的對比情況。
表1 特定和非特定TVLA的對比
TVLA的局限性主要體現(xiàn)在以下方面:
(1) TVLA只考慮了1階原點(diǎn)矩(均值)和單變量(針對能量跡中的單個(gè)采樣點(diǎn))泄漏,其可能對存在高階或多變量泄漏的待測設(shè)備作出“假陰性”誤判[18,19]。
一方面,以2階中心矩(方差)上存在泄漏的情況為例,設(shè)某采樣點(diǎn)能耗X的均值為E (X),方差為D(X), 分布律為P{X=xk}=pk,k=1,2,...,有
由式(2)可知,即使兩個(gè)采樣點(diǎn)處能耗數(shù)據(jù)的1階矩相同,其2階矩仍可能存在差異。結(jié)合式(1)分析可知,TVLA檢驗(yàn)統(tǒng)計(jì)量t值的構(gòu)造形式為能耗數(shù)據(jù)的1階矩,因此當(dāng)兩組能耗數(shù)據(jù)間的統(tǒng)計(jì)差異只體現(xiàn)在高階矩上時(shí),TVLA無法探測到存在的泄漏。
另一方面,以信息泄漏以積的形式分散在兩個(gè)采樣點(diǎn)上的情況為例,設(shè)對這兩個(gè)采樣點(diǎn)實(shí)施TVLA得到的能耗分組分別為 (GX1,GX2) 和(GY1,GY2),積運(yùn)算后對該“組合”采樣點(diǎn)實(shí)施TVLA得到的兩個(gè)能耗分組為 (G1,G2),則結(jié)合TVLA的分組原理可知
當(dāng)E(GX1)=E(GX2) 且E(GY1)=E(GY2)時(shí),TVLA會判定不存在泄漏,而實(shí)際上泄漏是存在的:由式(3)和式(4)可知,由于 C ov(GX1,GY1)與Cov(GX2,GY2) 不一定相等,仍可能出現(xiàn)E(G1)?=E(G2)。因此當(dāng)對加掩碼防護(hù)措施或?qū)Υ羞\(yùn)行的軟件密碼產(chǎn)品實(shí)施泄漏檢測時(shí),各個(gè)共享因子產(chǎn)生泄漏的時(shí)刻可能不同,需要利用覆蓋所有共享因子泄漏時(shí)刻的組合能耗來確定是否有泄漏,而TVLA只針對單個(gè)采樣點(diǎn)的能耗,會導(dǎo)致漏檢。
(2) 根據(jù)TVLA的t值僅能判斷待測設(shè)備是否存在泄漏,而不能進(jìn)一步解釋泄漏的具體情況或量化能量信息泄漏的多少,對后續(xù)攻防的參考意義有限[20,21]。
完整的TVLA中,求得t值后,還需根據(jù)式(5)—式(7)分別求得自由度v,t分布的概率密度函數(shù)f(t,v) 和 t檢驗(yàn)中零假設(shè)成立的概率p
綜合分析式(5)—式(7)以及TVLA的完整過程可知,t值和p值是相互對應(yīng)的,t值越大或p值越小僅能表示零假設(shè)成立的概率越小。因此TVLA的結(jié)果并不能用于量化側(cè)信道能量信息泄漏,檢驗(yàn)統(tǒng)計(jì)量t值的大小不能代表能量信息泄漏的多少,其與能量分析攻擊的成功率之間也無確定性關(guān)系。即使TVLA判定待測設(shè)備存在泄漏,能量分析攻擊仍不一定能夠攻破設(shè)備,導(dǎo)致將實(shí)際安全的密碼設(shè)備判定為存在泄漏而造成資源浪費(fèi)。
(3) TVLA對能耗數(shù)據(jù)的信噪比要求較高,噪聲較大時(shí)TVLA評估效果會受到顯著影響[18,22]。
密碼設(shè)備的能耗依賴于其中執(zhí)行的密碼操作和處理的操作數(shù),將能耗中的操作依賴分量記為Pop,數(shù)據(jù)依賴分量記為Pda;同時(shí),能耗中不可避免地含有與執(zhí)行的密碼操作和處理的中間值無關(guān)的隨機(jī)噪聲Pno,以及由漏電流等產(chǎn)生的常量部分Pco。據(jù)此可用式(8)刻畫密碼設(shè)備的總能耗Pto
TVLA中,評估人員對多條能量跡中相同采樣點(diǎn)處的能耗值進(jìn)行分析,相同采樣點(diǎn)對應(yīng)的密碼操作相同,故各能耗值中的Pop相等。根據(jù)定義,各能耗值中的Pco同樣相等。可知不同能耗值間的差異是由Pda和Pno造成的。Pno較大時(shí)會掩蓋Pda中存在的統(tǒng)計(jì)差異導(dǎo)致漏檢,因此實(shí)施TVLA前需進(jìn)行對齊和降噪等預(yù)處理步驟。
(4) TVLA只關(guān)注了在能量跡的單個(gè)采樣點(diǎn)處能耗值和設(shè)備中操作數(shù)的依賴關(guān)系,這導(dǎo)致TVLA整體犯誤判錯(cuò)誤的概率隨能量跡中采樣點(diǎn)數(shù)量的增加而變大[23,24]。
設(shè)能量跡中采樣點(diǎn)數(shù)量為l,單次t檢驗(yàn)犯假陽性誤判錯(cuò)誤的概率為α,則一次完整的TVLA犯假陽性誤判錯(cuò)誤的概率為1 -(1-α)l,犯假陰性誤判錯(cuò)誤的情況同理。因此采樣點(diǎn)數(shù)量l越大,TVLA犯誤判錯(cuò)誤的概率越大。當(dāng)能量跡中的采樣點(diǎn)數(shù)量非常龐大時(shí),TVLA很難避免犯誤判錯(cuò)誤。
(5) TVLA僅將能耗數(shù)據(jù)分為兩組,只能發(fā)現(xiàn)這兩個(gè)能耗分組之間表現(xiàn)出的統(tǒng)計(jì)差異性,而無法檢測到能耗數(shù)據(jù)更一般的分布差異,導(dǎo)致泄漏可能被隱藏在其中的一個(gè)分組中[19,24]。
在TVLA中選擇不同的輸入測試向量時(shí),能耗數(shù)據(jù)的分組情況不同,當(dāng)所選測試向量不正確時(shí),存在差異的能耗數(shù)據(jù)可能被分至同一分組中,導(dǎo)致存在的統(tǒng)計(jì)差異被隱藏。
本節(jié)根據(jù)第2節(jié)所歸納的TVLA的各項(xiàng)局限性,對已有具代表性的各類TVLA的改進(jìn)方法進(jìn)行介紹和分析。
(1) 針對TVLA對高階多變量的泄漏檢測效果不佳的問題
文獻(xiàn)[25]提出一種基于Hotelling’s T2檢驗(yàn)的泄漏檢測方法,Hotelling’s T2檢驗(yàn)本質(zhì)上是t檢驗(yàn)由單變量向多變量的擴(kuò)展形式,利用其代替Welch’s t檢驗(yàn),能夠顯著提高泄漏信號分散在多個(gè)能量跡采樣點(diǎn)時(shí)的泄漏檢測率。然而由于需要對能耗數(shù)據(jù)的協(xié)方差矩陣進(jìn)行求逆運(yùn)算,Hotelling’s T2檢驗(yàn)的計(jì)算復(fù)雜度隨能量跡中采樣點(diǎn)數(shù)量的增加呈指數(shù)增長,當(dāng)能量跡中的采樣點(diǎn)數(shù)量非常大時(shí),Hotelling’s T2檢驗(yàn)在計(jì)算上可能具有不可實(shí)現(xiàn)性。因此該文中又對Hotelling’s T2檢驗(yàn)進(jìn)一步改進(jìn),提出對角檢驗(yàn)以提升檢測效率,對角檢驗(yàn)的計(jì)算復(fù)雜度隨采樣點(diǎn)數(shù)量的增加呈線性增長,但其對多變量泄漏的檢測性能低于Hotelling’s T2檢驗(yàn)。
文獻(xiàn)[26]通過增量算法將泄漏檢測的統(tǒng)計(jì)矩由1階擴(kuò)展到了任意階,由單變量擴(kuò)展到了任意變量,使TVLA可以檢測任意變量和任意階的泄漏。增量算法使得泄漏檢測過程能夠同時(shí)進(jìn)行能耗數(shù)據(jù)的采集和檢驗(yàn)統(tǒng)計(jì)量的計(jì)算,當(dāng)檢驗(yàn)統(tǒng)計(jì)量超過閾值時(shí)即可終止整個(gè)評估過程,因此可以提升泄漏檢測的效率,并減小評估所需成本。
文獻(xiàn)[27]針對兩組能耗數(shù)據(jù)在1階矩上統(tǒng)計(jì)差異較小時(shí)TVLA存在漏檢的問題,提出對兩組能耗數(shù)據(jù)的1階原點(diǎn)矩均值與2階中心矩方差進(jìn)行綜合差異評估,當(dāng)能耗數(shù)據(jù)均值間的差異大于方差間的差異時(shí)實(shí)施多分類F檢驗(yàn),當(dāng)樣本均值間的差異小于方差間的差異時(shí)實(shí)施Bartlett檢驗(yàn)。由于一般的能量信息泄漏主要分布在能耗數(shù)據(jù)的低階矩上,因此該方案能夠有效控制TVLA犯假陰性誤判錯(cuò)誤的概率。
文獻(xiàn)[28]提出一種基于KS檢驗(yàn)的泄漏檢測方法。該文證明了KS檢驗(yàn)可作為一種基于信息論的泄漏檢測工具對任意變量的泄漏進(jìn)行檢測,并提出了基于直方圖的快速實(shí)現(xiàn)方法提升了KS檢驗(yàn)的效率。與TVLA的對比實(shí)驗(yàn)結(jié)果顯示,當(dāng)實(shí)驗(yàn)參數(shù)等設(shè)置不同時(shí),KS檢驗(yàn)的魯棒性明顯強(qiáng)于TVLA。該文指出,KS檢驗(yàn)可作為TVLA的補(bǔ)充方案對泄漏進(jìn)行檢測。
此外,文獻(xiàn)[29]提出一種基于統(tǒng)計(jì)直方圖的泄漏檢測方法,該方法僅需在初始化時(shí)訪問能耗數(shù)據(jù)集,對每個(gè)能量跡采樣點(diǎn)建立各能耗分組的直方圖,并在檢測過程中不斷對直方圖進(jìn)行更新。由于直方圖攜帶了大量能耗分布的信息,因此該方法可直接對任意階的統(tǒng)計(jì)矩和檢驗(yàn)統(tǒng)計(jì)量等參數(shù)進(jìn)行統(tǒng)計(jì)。由于無需重復(fù)訪問整個(gè)能耗數(shù)據(jù)集,該方法能夠有效提升泄漏檢測過程中數(shù)據(jù)統(tǒng)計(jì)的效率。
(2) 針對檢驗(yàn)統(tǒng)計(jì)量t值的參考意義有限的問題
文獻(xiàn)[30]推導(dǎo)并證明了TVLA和能耗數(shù)據(jù)信噪比之間的等價(jià)關(guān)系,并參考文獻(xiàn)[31]中的成果,用TVLA的結(jié)果估計(jì)了能量分析攻擊成功率的理論界限,從而建立了TVLA結(jié)果、信噪比和能量分析攻擊成功率之間的聯(lián)系。由此,由TVLA結(jié)果即可得到相應(yīng)的能量分析攻擊的成功率。實(shí)驗(yàn)結(jié)果表明,這種端到端方法的預(yù)測結(jié)果與實(shí)際攻擊結(jié)果能較好地吻合。
文獻(xiàn)[32]將泄漏檢測過程轉(zhuǎn)換為建立一個(gè)依賴于密鑰的回歸模型的過程,當(dāng)該模型能夠?qū)Υ蟛糠值哪芎臄?shù)據(jù)作出解釋時(shí),說明能耗數(shù)據(jù)和密鑰間存在依賴關(guān)系,此時(shí)應(yīng)判定存在泄漏。同時(shí),根據(jù)回歸模型的具體情況即可量化泄漏的可利用性,并構(gòu)造出攻擊向量。該方法將泄漏檢測的結(jié)果與密鑰聯(lián)系了起來,可以回答TVLA所檢測出的泄漏是否可以利用的問題。
(3) 針對TVLA對能耗數(shù)據(jù)的信噪比依賴性較強(qiáng),需進(jìn)行降噪和對齊等預(yù)處理的問題
通過時(shí)域頻域結(jié)合分析的方法能夠減小能量跡在時(shí)域上未對齊對TVLA的影響,基于該原理,文獻(xiàn)[22]提出先通過快速傅里葉變換將采集到的能耗數(shù)據(jù)從時(shí)域變換到頻域進(jìn)行頻譜分析;然后對頻譜的每個(gè)頻率分量實(shí)施t檢驗(yàn)評估是否存在泄漏。文獻(xiàn)[33]指出,能耗中存在信息泄漏的部分是由設(shè)備所處理的數(shù)據(jù)和運(yùn)行的密碼操作引起的,而噪聲部分是由環(huán)境和元器件間的相互影響等不確定因素引起的,因此將能耗信息由時(shí)域轉(zhuǎn)換至頻域時(shí),泄漏分量和噪聲分量分布在不同的頻率分量上。據(jù)此,該文提出了多源時(shí)頻融合信息泄漏檢測方案,綜合利用多個(gè)信道的時(shí)域信息及頻域信息對泄漏進(jìn)行檢測。該方案無需對能耗數(shù)據(jù)進(jìn)行對齊和降噪等預(yù)處理,可以提高泄漏檢測效率,同時(shí)有利于發(fā)現(xiàn)單信道檢測中的漏檢。
文獻(xiàn)[34]提出一種基于配對的t檢驗(yàn)方案,對密碼算法相鄰的兩次加密進(jìn)行配對,由于實(shí)際中執(zhí)行1次加密的時(shí)間非常短,可以近似地認(rèn)為相鄰的兩次加密是在相同的外界環(huán)境下進(jìn)行的,因此在配對時(shí)做差即可減小環(huán)境噪聲對能耗的影響,進(jìn)一步得到更加穩(wěn)定的檢驗(yàn)統(tǒng)計(jì)量,從而提高泄漏檢測的準(zhǔn)確性。文獻(xiàn)[35]對配對t檢驗(yàn)方案進(jìn)行了優(yōu)化研究,該文指出,文獻(xiàn)[34]中的方法沒有考慮到配對的能量跡組間采樣點(diǎn)的相關(guān)性對配對t檢驗(yàn)的影響,當(dāng)兩者間呈負(fù)相關(guān)關(guān)系時(shí)采取配對的方法不僅會導(dǎo)致檢測效率下降,還可能導(dǎo)致犯誤判錯(cuò)誤。因此,應(yīng)該先對該相關(guān)系數(shù)進(jìn)行判斷,當(dāng)其大于0時(shí)方可實(shí)施配對t檢驗(yàn),否則只能實(shí)施Welch’s t檢驗(yàn)。
文獻(xiàn)[36]提出將深度學(xué)習(xí)技術(shù)應(yīng)用于泄漏評估中,通過有監(jiān)督學(xué)習(xí)的方法用訓(xùn)練集構(gòu)造出一個(gè)卷積神經(jīng)網(wǎng)絡(luò),并將其作為待測數(shù)據(jù)集的區(qū)分器。當(dāng)該區(qū)分器對待測能耗數(shù)據(jù)進(jìn)行分組的正確率和隨機(jī)地對待測能耗數(shù)據(jù)分組的正確率存在顯著性區(qū)別時(shí),說明訓(xùn)練過程獲取了能量信息,故應(yīng)判定存在泄漏。深度學(xué)習(xí)中卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn)使得評估人員不必考慮能量跡是否對齊和泄漏的統(tǒng)計(jì)矩階數(shù)等問題,且涵蓋了多變量的泄漏情形,大大簡化了泄漏檢測的預(yù)處理步驟。但深度學(xué)習(xí)檢測方法由于需要對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,所需時(shí)間成本較大,訓(xùn)練過程中參數(shù)的設(shè)置對最終的泄漏檢測效果影響較大,并且存在概率適應(yīng)性和過擬合等問題。
(4) 針對TVLA犯誤判錯(cuò)誤的概率隨能量跡中采樣點(diǎn)數(shù)量增加而增大的問題
文獻(xiàn)[37]中實(shí)施了一個(gè)“隨機(jī)-隨機(jī)”的TVLA實(shí)驗(yàn),實(shí)驗(yàn)過程中將同一明文總體中的全部明文隨機(jī)地分成兩組并據(jù)此對采集的能耗數(shù)據(jù)進(jìn)行分組,因此t檢驗(yàn)的零假設(shè)是正確的。在能量跡中設(shè)置5×106萬個(gè)采樣點(diǎn),多次重復(fù)迭代實(shí)施TVLA,得到的最大的t值的絕對值為5.608 8??紤]到該實(shí)驗(yàn)中采樣點(diǎn)數(shù)量過大,該文提出將t值的閾值設(shè)置為5。但這種通過設(shè)置檢驗(yàn)統(tǒng)計(jì)量閾值來控制誤判錯(cuò)誤的方法具有一定的片面性,大閾值會導(dǎo)致假陰性錯(cuò)誤的概率增加,反之,小閾值會導(dǎo)致假陽性錯(cuò)誤的概率增加。
文獻(xiàn)[38]提出一種基于HC(Higher Criticism)檢驗(yàn)的TVLA方案,對TVLA得到的各采樣點(diǎn)處的p值實(shí)施HC檢驗(yàn),通過比較p值在無泄漏情況下預(yù)期的分布和實(shí)際檢驗(yàn)得到的p值的分布之間的差異對泄漏情況進(jìn)行判斷,當(dāng)該差異較為顯著時(shí)即可判定存在泄漏。該方法綜合利用能量跡中全部采樣點(diǎn)處的能耗數(shù)據(jù)的統(tǒng)計(jì)特征,而非僅根據(jù)單個(gè)采樣點(diǎn)的t值判定泄漏情況,能夠有效控制TVLA犯誤判錯(cuò)誤的概率。
(5) 針對能量信息泄漏可能被隱藏在能耗數(shù)據(jù)的某個(gè)分組中的問題
文獻(xiàn)[39]提出用卡方檢驗(yàn)結(jié)合TVLA進(jìn)行泄漏檢測,卡方檢驗(yàn)將泄漏檢測自然而然地?cái)U(kuò)展到了多個(gè)能耗分組上,有效控制了因分組數(shù)過小造成的假陰性誤判錯(cuò)誤。同時(shí)卡方檢驗(yàn)可以捕獲多個(gè)統(tǒng)計(jì)矩中的泄漏,而非只關(guān)注某一個(gè)統(tǒng)計(jì)矩。然而,實(shí)驗(yàn)結(jié)果顯示,當(dāng)信噪比較低時(shí),t檢驗(yàn)的效果優(yōu)于卡方檢驗(yàn)的效果,因此該文提出卡方檢驗(yàn)可以和TVLA技術(shù)結(jié)合使用以提高評估的準(zhǔn)確性。
上述各TVLA改進(jìn)方法的簡要情況如表2。
表2 TVLA改進(jìn)方法匯總表
側(cè)信道能量分析攻擊以其通用性強(qiáng)、計(jì)算成本低和成功率高等優(yōu)點(diǎn),目前已被廣泛應(yīng)用于對密碼算法的破解中,各類密碼產(chǎn)品面臨著嚴(yán)峻的安全性挑戰(zhàn)。因此,對密碼產(chǎn)品的抗側(cè)信道能量分析攻擊能力進(jìn)行評估已經(jīng)成為密碼設(shè)計(jì)過程中不可或缺的環(huán)節(jié),該評估用于判斷是否存在能量信息的泄漏,也可以對施加的防護(hù)措施的安全等級進(jìn)行評定。評估可以通過實(shí)施攻擊的方式來實(shí)現(xiàn),也可通過統(tǒng)計(jì)測試的方式實(shí)現(xiàn),由于具體攻擊方法的種類繁多,攻擊型評估難以保證全面性,因此統(tǒng)計(jì)測試方法已成為主流的評估形式。TVLA是目前為止最為常見的一種統(tǒng)計(jì)測試型評估方法,本文首先對TVLA的原理進(jìn)行了分析,對其實(shí)現(xiàn)過程進(jìn)行了介紹,然后對特定和非特定兩種TVLA的優(yōu)點(diǎn)和缺點(diǎn)分別進(jìn)行了歸納和對比,接著根據(jù)目前已有研究中的觀點(diǎn)對TVLA的局限性進(jìn)行了剖析和分類,針對這些不同方面的局限,對各TVLA改進(jìn)方法的優(yōu)缺點(diǎn)分別進(jìn)行了分析。
后期,TVLA可能向以下方向和領(lǐng)域發(fā)展延伸:
(1)更加廣泛地用于對后量子密碼算法的安全性進(jìn)行評估。鑒于量子攻擊的巨大潛在威脅,發(fā)展后量子密碼體制機(jī)制的需求已十分迫切,TVLA可用于對后量子密碼算法及其實(shí)現(xiàn)過程中的安全性進(jìn)行評估。
(2)基于深度學(xué)習(xí)技術(shù)的TVLA不斷發(fā)展,實(shí)現(xiàn)準(zhǔn)確性更高,耗時(shí)更短的評估。泄漏檢測的本質(zhì)在于分類,深度學(xué)習(xí)技術(shù)一經(jīng)提出就成為分類器的一個(gè)很好的選擇。深度學(xué)習(xí)效果的好壞主要取決于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練效果,而目前神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程迭代次數(shù)較多,所引入的參數(shù)較復(fù)雜,仍有對其進(jìn)行優(yōu)化的必要。
(3)與人工智能技術(shù)結(jié)合實(shí)現(xiàn)智能化泄漏評估。近年來人工智能技術(shù)的迅猛發(fā)展催化了包括密碼學(xué)在內(nèi)的各學(xué)術(shù)領(lǐng)域的深刻變革,將人工智能技術(shù)應(yīng)用于密碼產(chǎn)品的安全性評估中已是可以預(yù)見的發(fā)展趨勢。