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