基于偽操作的電路旁路攻擊抵御方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及的是一種計算機(jī)安全領(lǐng)域的技術(shù),具體是一種基于偽操作的電路旁路攻擊抵御方法,可適用于SMS4等算法。
【背景技術(shù)】
[0002]在現(xiàn)實中,密碼系統(tǒng)通常是以硬件或以硬件為表現(xiàn)形式的軟件來實現(xiàn)的,譬如:智能卡、RFID、密碼協(xié)處理器、SoC密碼芯片、密碼機(jī)等。在這些密碼系統(tǒng)的實現(xiàn)環(huán)境中,攻擊者可以觀察和測量密碼變換的能量消耗、電磁輻射等信息,利用這些額外的信息有可能實現(xiàn)比傳統(tǒng)的數(shù)學(xué)分析更有效地密碼破譯。人們通常把這種環(huán)境下的攻擊稱為“旁路攻擊(SideChannel Attack)”。在芳路攻擊的方法中,通常包括簡單功耗分析(SPA)和差分功耗分析(DPA) ο SPA攻擊是通過少量的功耗曲線(對應(yīng)少量的明文),利用密碼算法的特征及其反映在功耗曲線上的特點,直接揭示出密鑰或者與之相關(guān)的敏感信息。DPA攻擊是通過記錄密碼設(shè)備對大量不同數(shù)據(jù)加密或解密操作時的功耗曲線,利用統(tǒng)計方法從功耗曲線中恢復(fù)出密碼設(shè)備中的密鑰。
[0003]旁路攻擊方法的出現(xiàn)對很多現(xiàn)在的芯片構(gòu)成了具大的威脅,因此,相應(yīng)的出現(xiàn)了很多種旁路攻擊的防護(hù)方法。比較常用的防護(hù)技術(shù)有隱藏技術(shù)和掩碼技術(shù)。隱藏策略的目標(biāo)是消除密碼設(shè)備的功耗與設(shè)備所執(zhí)行的操作和所處理的中間值之間的相關(guān)性。而掩碼技術(shù)是通過隨機(jī)化消息和密鑰,使得無法建立密鑰與功耗的關(guān)系。在隱藏技術(shù)中,其中有時間維度上的隱藏,這包括隨機(jī)插入偽操作和亂序操作兩種隱藏方法。隨機(jī)插入偽操作是在密碼算法執(zhí)行前后以及執(zhí)行中隨機(jī)插入一些假的操作。這種方法可以破壞真實操作的對齊,使得在受到旁路攻擊中攻擊效果大大降低。亂序操作是在某些密碼算法中,特定操作的執(zhí)行順序可以任意改變,因而可以通過改變這些操作的執(zhí)行順序來引入隨機(jī)性。
[0004]掩碼防護(hù)方法的缺點在于針對非線性操作(例如S盒)的掩碼會使得電路面積變得很大,代價會很高,而且也并不能完全防護(hù)住泄露。而隱藏技術(shù)只是降低了泄露信號的信噪比,沒有從根本上防護(hù)旁路攻擊。而我們設(shè)計的偽操作及亂序操作的組合,一方面將真實密鑰真真做到了隱藏,另外一方面也降低了信噪比,另外,也可以與掩碼技術(shù)相結(jié)合來使用,不會產(chǎn)生什么沖突。
[0005]SM4為基于國家標(biāo)準(zhǔn)GM/T 0002 -2012《SM4分組密碼算法》(原SMS4分組密碼算法)的加密算法,該算法為對稱算法,密鑰長度和分組長度均為128位,加密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
[0006]經(jīng)過對現(xiàn)有技術(shù)的檢索發(fā)現(xiàn),中國專利文獻(xiàn)號CN103546277A公開(公告)日2014.01.29,公開了一種智能卡SM4算法的DPA攻擊與密鑰還原方法及系統(tǒng),其方法包括以下步驟:步驟一,對SM4算法加密過程的前4輪進(jìn)行DPA攻擊,獲取前4輪的子密鑰;步驟二,利用得到的4輪子密鑰恢復(fù)SM4密鑰。采用該技術(shù)所述的方法和系統(tǒng)可以實現(xiàn)智能卡上SM4算法的DPA攻擊,還原SM4加密密鑰,驗證智能卡上SM4算法的抗攻擊能力。
[0007]中國專利文獻(xiàn)號CN103227717A公開(公告)日2013.07.31,公開了一種選擇輪密鑰異或輸入進(jìn)行SM4密碼算法側(cè)信道能量分析的應(yīng)用,其核心在于進(jìn)行SM4密碼算法側(cè)信道能量分析過程中,選擇S盒或輪函數(shù)作為攻擊點建立漢明距離模型,以輪密鑰異或輸入作為漢明距離模型的前續(xù)狀態(tài)vl,對S盒進(jìn)行攻擊時,漢明距離(HD(vl,v2))模型的后繼狀態(tài)v2是S盒輸出;對輪函數(shù)進(jìn)行攻擊時,漢明距離(HD(vl,v2))模型的后繼狀態(tài)v2是輪函數(shù)輸出/輸入。
[0008]中國專利文獻(xiàn)號CN102546157A公開(公告)日2012.07.04,公開了一種抵抗能量分析的隨機(jī)混合加密系統(tǒng)及其實現(xiàn)方法,該技術(shù)系統(tǒng)由偽隨機(jī)序列PN128生成模塊、S盒更新模塊、掩碼修正值生成模塊、明文輸入寄存器、偽隨機(jī)序列PN64生成模塊、選通電路A、選通電路B、SMS4加密模塊、AES加密模塊、多路器、密文輸出寄存器i^一個部分組成。該技術(shù)首次提出了一種抵抗能量分析的隨機(jī)混合加密系統(tǒng)及其實現(xiàn)方法,通過偽隨機(jī)序列PN64,對明文隨機(jī)采用基于掩碼技術(shù)的AES或者SMS4算法進(jìn)行加密,算法硬件實現(xiàn)中所有的基本電路單元均通過對稱電路實現(xiàn),從根本上杜絕了簡單和差分能量分析,加密系統(tǒng)具有多種工作模式,適用于不同場景。但該技術(shù)在某些明確要求使用單一算法如SMS4算法的情況下無法處理,另外,如果只是從算法的混合防護(hù)(不考慮掩碼)角度來考慮,此防護(hù)并不能完全消除DPA攻擊,因為我們可以把猜測算法出錯作為一種噪聲,因此,這種防護(hù)方案只是減少了信噪比,增加了 DPA攻擊的難度而已。
[0009]中國專利文獻(xiàn)號CN102412963A以及CN102360414A分別公開了一種基于隨機(jī)序列的具有誤導(dǎo)功能的加密方法以及一種可修正偽隨機(jī)序列的可誤導(dǎo)的加密方法,該技術(shù)可以得到偽密鑰,從而可以誤導(dǎo)密碼分析者,這種誤導(dǎo)是決定于內(nèi)層密鑰的,為了可以進(jìn)行任意的誤導(dǎo),采用長隨機(jī)序列來產(chǎn)生子密鑰,長隨機(jī)序列可以由量子密鑰分配產(chǎn)生。對于文檔中的標(biāo)記采用特別的處理方式,使得即使規(guī)定的標(biāo)記可能出現(xiàn)在文本中,依然不會混淆。加密的時候需要有一個關(guān)鍵詞數(shù)據(jù)庫,其內(nèi)層加密利用數(shù)據(jù)庫進(jìn)行關(guān)鍵詞的擴(kuò)充,外層加密采用了傳統(tǒng)的加密方法。該技術(shù)解密時無需數(shù)據(jù)庫的支持,避免了數(shù)據(jù)庫同步的問題。該技術(shù)在各種場合加密應(yīng)用中均具有一定的使用價值,特別是軍事上。但該技術(shù)針對的是“軟磨硬泡”攻擊方法,通過誤導(dǎo)解密后的明文的可讀性來防護(hù)。這種方法對于旁路攻擊沒有效果O
【發(fā)明內(nèi)容】
[0010]本發(fā)明針對現(xiàn)有技術(shù)存在的上述不足,提出一種基于偽操作的電路旁路攻擊抵御方法。
[0011]本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
[0012]本發(fā)明涉及一種基于偽操作的電路旁路攻擊抵御方法,以m個偽輪密鑰和I個真實輪密鑰組成輪密鑰序列進(jìn)行第一輪SMS4加密計算,并將真實輪密鑰參與的第一輪SMS4加密計算結(jié)果進(jìn)行第二輪SMS4加密計算,得到所需密文。
[0013]所述的密鑰輪序列通過輪密鑰隨機(jī)選取電路或通過輪密鑰存儲器隨機(jī)打亂電路從輪密鑰存儲器中選擇得到,具體為:
[0014]①生成m個偽輪密鑰和一個真實輪密鑰,然后利用輪密鑰存儲器隨機(jī)打亂電路進(jìn)行隨機(jī)打亂,并記錄下真實輪密鑰的位置,或
[0015]②確定真實輪密鑰執(zhí)行的序號K,而輪密鑰序列中其它m個偽輪密鑰通過輪密鑰隨機(jī)選取電路從輪密鑰存儲器中選擇得到。
[0016]所述的第一輪SMS4加密計算是指:將待加密的明文與輪密鑰序列中的密鑰依次進(jìn)行輪函數(shù)迭代計算。
[0017]所述的第二輪SMS4加密計算是指:將第一輪SMS4加密計算中真實密鑰參與的加密計算結(jié)果作為輸入,循環(huán)進(jìn)行32次迭代的輪函數(shù)計算,取最后一輪,即第32輪的輪函數(shù)計算結(jié)果作為密文輸出。
[0018]本發(fā)明涉及一種實現(xiàn)上述方法的系統(tǒng),包括:第一輪周期輪函數(shù)電路模塊、第一輪輪密鑰選擇電路模塊、(m+1)個輪密鑰寄存器、SMS4的輪函數(shù)電路模塊、SMS4的輪密鑰生成電路模塊,其中:第一輪周期輪函數(shù)電路模塊與SMS4的輪函數(shù)電路模塊相連并傳輸真實輪運算結(jié)果,(m+1)個輪密鑰存貯器與輪密鑰選擇電路相連并傳輸真假輪密鑰,SMS4的輪密鑰生成電路與SMS4的輪函數(shù)電路模塊和(m+1)個輪密鑰存貯器相連并傳輸真輪密鑰。
技術(shù)效果
[0019]與現(xiàn)有技術(shù)相比,本發(fā)明生成的第一輪真實運算的位置隨機(jī),使攻擊者