一種基于寄存器掩碼的面向des算法的抗功耗攻擊方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于寄存器掩碼的面向DES算法的抗功耗攻擊方法,在DES算法中添加隨機(jī)數(shù)發(fā)生器、左寄存器保護(hù)模塊和右寄存器保護(hù)模塊,左寄存器保護(hù)模塊包括第一左異或單元、第二左異或單元和左寄存器,右寄存器保護(hù)模塊包括第一右異或單元、第二右異或單元和右寄存器。更新寄存器中的中間結(jié)果時(shí),將需要保存的中間結(jié)果與隨機(jī)數(shù)異或之后保存到寄存器中,同時(shí)保存該隨機(jī)數(shù);讀取寄存器中的中間結(jié)果時(shí),在將寄存器中的值讀取并與保存的隨機(jī)數(shù)進(jìn)行異或。該方法保證寄存器中的存儲(chǔ)值具有隨機(jī)性,有效的隱藏了DES密碼算法中的漢明距離泄露,可以有效的抵抗基于漢明距離模型的功耗攻擊。
【專(zhuān)利說(shuō)明】
一種基于寄存器掩碼的面向DES算法的抗功耗攻擊方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及集成電路硬件實(shí)現(xiàn)和信息安全技術(shù)領(lǐng)域,特別是涉及一種基于寄存器 掩碼的面向DES算法的抗功耗攻擊方法。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)技術(shù)與信息科技的快速發(fā)展,信息加密技術(shù)在很多領(lǐng)域都有非常重要 的應(yīng)用。密碼產(chǎn)品可以采用軟件或硬件實(shí)現(xiàn),但由于硬件實(shí)現(xiàn)比軟件實(shí)現(xiàn)具有速度更快,功 耗更低的優(yōu)勢(shì),基于硬件實(shí)現(xiàn)的密碼設(shè)備已成為研究熱點(diǎn)。各種基于DES(Data Encryption Standard,數(shù)據(jù)加密標(biāo)準(zhǔn))算法的密碼芯片得到了廣泛的研究和開(kāi)發(fā)。
[0003] 密碼芯片也面臨著各種各樣的安全風(fēng)險(xiǎn),近年來(lái)以差分功耗攻為代表的旁路攻 擊,對(duì)密碼設(shè)備的安全性提出了嚴(yán)峻的挑戰(zhàn)。功耗攻擊是一種非入侵式攻擊,攻擊者首先大 量獲取密碼設(shè)備在加解密操作時(shí)泄露的功耗信息,然后根據(jù)明文或者密文建立功耗的數(shù)學(xué) 模型,得到大量中間值,將中間值和實(shí)際功耗進(jìn)行對(duì)比分析,采用統(tǒng)計(jì)處理方法計(jì)算出相關(guān) 系數(shù),從而分析出關(guān)鍵的密鑰信息。如何抵抗功耗分析攻擊保護(hù)算法安全是學(xué)術(shù)界一個(gè)重 要的研究點(diǎn)。
[0004] 在采集到大量實(shí)際功耗后,功耗攻擊得以成功的關(guān)鍵在于建立準(zhǔn)確的功耗數(shù)學(xué)模 型。漢明距離模型的基本思想是計(jì)算數(shù)字電路在某個(gè)特定時(shí)段內(nèi)電路中0-1轉(zhuǎn)換和1-0轉(zhuǎn) 換的總數(shù),然后利用轉(zhuǎn)換的總數(shù)來(lái)刻畫(huà)電路在該時(shí)間段內(nèi)的功耗。
[0005] 對(duì)于數(shù)字電路,功耗主要來(lái)自于電路的狀態(tài)轉(zhuǎn)換,而并不依賴(lài)于數(shù)據(jù)本身,并且翻 轉(zhuǎn)的器件越多,其功耗越大。因此使用漢明距離模型能夠較好的刻畫(huà)數(shù)字電路的能量消耗。 在某一時(shí)刻,如果能夠計(jì)算得到電路翻轉(zhuǎn)前的數(shù)據(jù)D0和翻轉(zhuǎn)后的數(shù)據(jù)D1,得到數(shù)據(jù)翻轉(zhuǎn)的 比特個(gè)數(shù),從而算出數(shù)據(jù)的漢明距離,就可以和真實(shí)的功耗值建立聯(lián)系。建立漢明距離模型 時(shí),需要知道寄存器中數(shù)據(jù)變化前后的數(shù)值。漢明距離模型一般用于對(duì)寄存器的功耗進(jìn)行 描述。
[0006] 攻擊者一般選取中間數(shù)據(jù)存儲(chǔ)的寄存器為攻擊點(diǎn)。攻擊者首先猜測(cè)密鑰,進(jìn)一步 猜測(cè)相鄰兩輪的中間值,計(jì)算漢明距離作為寄存器變化所產(chǎn)生的功耗模型;然后采集實(shí)際 功耗,將功耗模型與實(shí)際功耗進(jìn)行相關(guān)性分析得到正確的密鑰。
[0007] 對(duì)于現(xiàn)有的抗功耗攻擊的方法,從實(shí)現(xiàn)代價(jià)方面看,大多存在硬件資源開(kāi)銷(xiāo)大、性 能開(kāi)銷(xiāo)大、可擴(kuò)展性弱等缺點(diǎn),從實(shí)現(xiàn)效果方面看,有些僅僅削弱中間結(jié)果數(shù)據(jù)漢明距離與 功耗之間的相關(guān)性,而未能完全消除二者直接的相關(guān)性,因此無(wú)法完全抵御基于漢明距離 的功耗攻擊。
【發(fā)明內(nèi)容】
[0008] 發(fā)明目的:本發(fā)明的目的是提供一種能夠解決現(xiàn)有技術(shù)存在的不足的基于寄存器 掩碼的面向DES算法的抗功耗攻擊方法。
[0009] 技術(shù)方案:為達(dá)到此目的,本發(fā)明采用以下技術(shù)方案:
[0010]本發(fā)明所述的基于寄存器掩碼的面向DES算法的抗功耗攻擊方法,在DES算法中添 加隨機(jī)數(shù)發(fā)生器、左寄存器保護(hù)模塊和右寄存器保護(hù)模塊,左寄存器保護(hù)模塊包括第一左 異或單元、第二左異或單元和左寄存器,右寄存器保護(hù)模塊包括第一右異或單元、第二右異 或單元和右寄存器;DES算法的初始階段中,明文經(jīng)過(guò)初始置換操作,初始置換操作輸出的Μ 位中間數(shù)據(jù)的左半部分和右半部分分別作為獨(dú)立的左半部分f位數(shù)據(jù)Lo和右半部分f位數(shù) 據(jù)Ro,左半部分f位數(shù)據(jù)Lo和右半部分f位數(shù)據(jù)Ro分別送入第一左異或單元和第一右異或單 元,隨機(jī)數(shù)發(fā)生器產(chǎn)生初始階段隨機(jī)數(shù),初始階段隨機(jī)數(shù)分別送入第一左異或單元、第二左 異或單元、第一右異或單元和第二右異或單元,左半部分位數(shù)據(jù)Lo和初始階段隨機(jī)數(shù)通過(guò) 第一左異或單元進(jìn)行異或操作,第一左異或單元將左異或操作結(jié)果送入左寄存器中,右半 部分¥位數(shù)據(jù)Ro和初始階段隨機(jī)數(shù)通過(guò)第一右異或單元進(jìn)行異或操作,第一右異或單元將 右異或操作結(jié)果送入右寄存器中,第1輪輪操作開(kāi)始時(shí),左寄存器將左異或操作結(jié)果送入第 二左異或單元,左異或操作結(jié)果和初始階段隨機(jī)數(shù)通過(guò)第二左異或單元進(jìn)行異或操作,得 到被還原的左半部分^位數(shù)據(jù)L〇,作為第1輪輪操作的第一輸入數(shù)據(jù),右寄存器將右異或操 作結(jié)果送入第二右異或單元,右異或操作結(jié)果和初始階段隨機(jī)數(shù)通過(guò)第二右異或單元進(jìn)行 異或操作,得到被還原的右半部分f位數(shù)據(jù)Ro,作為第1輪輪操作的第二輸入數(shù)據(jù);第i輪輪 操作中,i <N,N為DES算法輪操作的總次數(shù),輪操作模塊計(jì)算得到第i輪的左中間值Li和 右中間值&,輪操作模塊將第i輪左中間值U送入第一左異或單元,輪操作模塊將第i輪右中 間值h送入第一右異或單元,隨機(jī)數(shù)發(fā)生器產(chǎn)生第i+Ι輪隨機(jī)數(shù),第i+Ι輪隨機(jī)數(shù)分別送入 第一左異或單元、第二左異或單元、第一右異或單元和第二右異或單元,第i輪左中間值U 和第i輪隨機(jī)數(shù)通過(guò)第一左異或單元進(jìn)行異或操作,第一左異或單元將左異或操作結(jié)果送 入左寄存器中,第i輪右中間值h和第i輪隨機(jī)數(shù)通過(guò)第一右異或單元進(jìn)行異或操作,第一 右異或單元將右異或操作結(jié)果送入右寄存器中,第i+Ι輪輪操作開(kāi)始時(shí),左寄存器將左異或 操作結(jié)果送入第二左異或單元中,左異或操作結(jié)果和第i+Ι輪隨機(jī)數(shù)通過(guò)第二左異或單元 進(jìn)行異或操作,得到被還原的第i輪左中間值Li,作為第i+Ι輪輪操作的第一輸入數(shù)據(jù),右寄 存器將右異或操作結(jié)果送入第二右異或單元中,右異或操作結(jié)果和第i+Ι輪隨機(jī)數(shù)通過(guò)第 二右異或單元進(jìn)行異或操作,得到被還原的第i輪右中間值h,作為第i+Ι輪輪操作的第二 輸入數(shù)據(jù);第N輪輪操作得到的第N輪左中間值Ln和第N輪右中間值R N合成Μ位數(shù)據(jù)并進(jìn)行逆 初始置換后得到密文。
[0011 ]進(jìn)一步,所述DES算法的第j輪輪操作中,1 < j <Ν,輪操作模塊對(duì)第j-1輪中間值 Rh依次進(jìn)行擴(kuò)展、異或操作、字節(jié)替換和置換操作,然后將置換操作結(jié)果與Lh進(jìn)行異或操 作,得到第j輪右中間值心,并將Rh作為第j輪左中間值Lj。
[0012] 有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
[0013] 1)本發(fā)明硬件資源開(kāi)銷(xiāo)低;只需要增加少量異或單元和隨機(jī)數(shù)發(fā)生器,相比整個(gè) DES密碼電路僅占很小比例;
[0014] 2)本發(fā)明性能開(kāi)銷(xiāo)低;對(duì)于電路關(guān)鍵路徑僅增加少量異或單元的延遲,相比整個(gè) DES電路中的擴(kuò)展、異或操作、字節(jié)替換和置換操作等模塊的延遲,僅占很小的比例,因此不 會(huì)導(dǎo)致工作主頻有明顯降低;
[0015] 3)本發(fā)明具有很強(qiáng)的擴(kuò)展性和通用性,通過(guò)對(duì)寄存器進(jìn)行保護(hù),可以很方便的移 植到其他DES密碼算法實(shí)現(xiàn)電路中;
[0016] 4)本發(fā)明保證寄存器中的存儲(chǔ)值具有隨機(jī)性,有效的隱藏了 DES密碼算法中的漢 明距離泄露,消除了中間結(jié)果數(shù)據(jù)漢明距離與功耗之間的相關(guān)性,能夠有效抵抗基于漢明 距離模型功耗攻擊。
【附圖說(shuō)明】
[0017] 圖1為傳統(tǒng)的DES算法的流程圖;
[0018] 圖2為采用了本發(fā)明方法的DES算法的流程圖;
[0019] 圖3為對(duì)傳統(tǒng)DES算法進(jìn)行功耗攻擊第一個(gè)6比特所得到的相關(guān)性系數(shù)矩陣結(jié)果;
[0020] 圖4為對(duì)使用本發(fā)明方法后的DES算法進(jìn)行功耗攻擊第一個(gè)6比特所得到的相關(guān)性 系數(shù)矩陣結(jié)果。
【具體實(shí)施方式】
[0021] 下面結(jié)合【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步的介紹。
[0022] 傳統(tǒng)DES算法如圖1所示,一共由3部分組成,分別是初始置換、16輪相同的輪操作 和逆初始置換變換。每一輪均需要一個(gè)輪密鑰來(lái)完成密鑰加操作,一共十六個(gè)子密鑰,記為 Κη(η = 0,···,16)。子密鑰由初始密鑰經(jīng)過(guò)初始置換、循環(huán)左移和置換選擇后得到。DES算法 中間16次循環(huán)的輪操作包括擴(kuò)展、異或操作、字節(jié)替換、置換和異或操作五個(gè)操作。DES每輪 結(jié)束都會(huì)產(chǎn)生兩個(gè)32位中間值數(shù)據(jù),可以記為L(zhǎng)n(n = 0,-_,16),Rn(n = 0,…,16)存儲(chǔ)在寄 存器L和R中,其中L16和R16合并為一個(gè)64位數(shù)據(jù),進(jìn)行逆初始置換操作結(jié)果即為密文輸出。
[0023] 以一級(jí)流水的DES算法硬件實(shí)現(xiàn)為例,在攻擊者可以獲得輸入的明文以及硬件的 功耗軌跡的情況下,攻擊者可以針對(duì)第一輪的輸出值進(jìn)行攻擊。通過(guò)對(duì)密鑰進(jìn)行猜測(cè),攻擊 者可以從明文推導(dǎo)出第一輪的輸出值,由于寄存器在某一時(shí)刻其值從明文的逆初始置換的 輸出變?yōu)榈谝惠喌妮敵?,因此可以建立漢明距離模型。由于第一輪密鑰長(zhǎng)度為8個(gè)6比特,因 此可以逐個(gè)6比特攻破,具體的步驟如下:
[0024] 1.根據(jù)Ro可以推導(dǎo)出第一輪擴(kuò)展操作之后的48比特中間值的值。
[0025] 2.根據(jù)擴(kuò)展操作之后中間值的第N個(gè)6比特的值和假設(shè)密鑰K1的第N個(gè)6比特,可以 推導(dǎo)出密鑰加之后的數(shù)據(jù)第N個(gè)字節(jié)的值。
[0026] 3.通過(guò)密鑰加之后的第N個(gè)6比特的值經(jīng)過(guò)字節(jié)變換可以推導(dǎo)出字節(jié)替換操作輸 出的第N個(gè)6比特的值。
[0027] 4.通過(guò)第一輪字節(jié)替換的輸出中第N個(gè)6比特的值可以推導(dǎo)出置換操作之后的第N 個(gè)4比特的值。
[0028] 5.通過(guò)置換操作之后的第N個(gè)4比特的值和L0的第N個(gè)4比特的值經(jīng)過(guò)異或操作可 以推導(dǎo)出第一輪輸出的第N個(gè)4比特的值。
[0029] 6.通過(guò)第一輪的輸出中第N個(gè)4比特的值和Ro第N個(gè)4比特的值之間可以建立一個(gè)4 比特的漢明距離模型。
[0030]針對(duì)上述的基于漢明距離模型的攻擊,本發(fā)明公開(kāi)了一種基于寄存器掩碼的面向 DES算法的抗功耗攻擊方法,如圖2所示,在DES算法中添加隨機(jī)數(shù)發(fā)生器1、左寄存器保護(hù)模 塊2和右寄存器保護(hù)模塊3,左寄存器保護(hù)模塊2包括第一左異或單元21、第二左異或單元23 和左寄存器22,右寄存器保護(hù)模塊3包括第一右異或單元31、第二右異或單元33和右寄存器 32AES算法的初始階段中,明文經(jīng)過(guò)初始置換操作,初始置換操作輸出的64位中間數(shù)據(jù)的 左半部分和右半部分分別作為獨(dú)立的左半部分32位數(shù)據(jù)L〇和右半部分32位數(shù)據(jù)R〇,左半部 分32位數(shù)據(jù)L〇和右半部分32位數(shù)據(jù)R〇分別送入第一左異或單元21和第一右異或單元31,隨 機(jī)數(shù)發(fā)生器1產(chǎn)生初始階段隨機(jī)數(shù),初始階段隨機(jī)數(shù)分別送入第一左異或單元21、第二左異 或單元23、第一右異或單元31和第二右異或單元33,左半部分32位數(shù)據(jù)L〇和初始階段隨機(jī) 數(shù)通過(guò)第一左異或單元21進(jìn)行異或操作,第一左異或單元21將左異或操作結(jié)果送入左寄存 器22中,右半部分32位數(shù)據(jù)R〇和初始階段隨機(jī)數(shù)通過(guò)第一右異或單元31進(jìn)行異或操作,第 一右異或單元31將右異或操作結(jié)果送入右寄存器32中,第1輪輪操作開(kāi)始時(shí),左寄存器22將 左異或操作結(jié)果送入第二左異或單元23,左異或操作結(jié)果和初始階段隨機(jī)數(shù)通過(guò)第二左異 或單元23進(jìn)行異或操作,得到被還原的左半部分32位數(shù)據(jù)L〇,作為第1輪輪操作的第一輸入 數(shù)據(jù),右寄存器32將右異或操作結(jié)果送入第二右異或單元(33),右異或操作結(jié)果和初始階 段隨機(jī)數(shù)通過(guò)第二右異或單元(33)進(jìn)行異或操作,得到被還原的右半部分f位數(shù)據(jù)R〇,作為 第1輪輪操作的第二輸入數(shù)據(jù)。第i輪輪操作中,l<i<16,輪操作模塊計(jì)算得到第i輪的左 中間值U和右中間值心,輪操作模塊將第i輪左中間值U送入第一左異或單元21,輪操作模 塊將第i輪右中間值心送入第一右異或單元31,隨機(jī)數(shù)發(fā)生器1產(chǎn)生第i+Ι輪隨機(jī)數(shù),第i+1 輪隨機(jī)數(shù)分別送入第一左異或單元21、第二左異或單元23、第一右異或單元31和第二右異 或單元33,第i輪左中間值U和第i輪隨機(jī)數(shù)通過(guò)第一左異或單元21進(jìn)行異或操作,第一左 異或單元21將左異或操作結(jié)果送入左寄存器22中,第i輪右中間值心和第i輪隨機(jī)數(shù)通過(guò)第 一右異或單元31進(jìn)行異或操作,第一右異或單元31將右異或操作結(jié)果送入右寄存器32中, 第i+Ι輪輪操作開(kāi)始時(shí),左寄存器22將左異或操作結(jié)果送入第二左異或單元23中,左異或操 作結(jié)果和第i+Ι輪隨機(jī)數(shù)通過(guò)第二左異或單元23進(jìn)行異或操作,得到被還原的第i輪左中間 值1^,作為第i+Ι輪輪操作的第一輸入數(shù)據(jù),右寄存器32將右異或操作結(jié)果送入第二右異或 單元33中,右異或操作結(jié)果和第i+Ι輪隨機(jī)數(shù)通過(guò)第二右異或單元33進(jìn)行異或操作,得到被 還原的第i輪右中間值Ri,作為第i+Ι輪輪操作的第二輸入數(shù)據(jù);第16輪輪操作得到的第16 輪左中間值L 16和第16輪右中間值R16合成64位數(shù)據(jù)并進(jìn)行逆初始置換后得到密文。
[0031]采用本發(fā)明方法后,整個(gè)DES密碼算法電路所需的硬件資源增加了 14%,關(guān)鍵路徑 延遲增長(zhǎng)了 17%,和其他基于掩碼的抗?jié)h明距離功耗攻擊方法相比,對(duì)面積開(kāi)銷(xiāo)和性能開(kāi) 銷(xiāo)影響有限。
[0032]本【具體實(shí)施方式】對(duì)基于FPGA平臺(tái)實(shí)現(xiàn)的DES算法電路進(jìn)行了基于漢明距離模型的 功耗攻擊。設(shè)置初始密鑰為' 0102030405060708',其中第一輪的64比特的子密鑰為' 000004320a02'。本實(shí)驗(yàn)使用示波器采集了 FPGA進(jìn)行DES加密運(yùn)算時(shí)的功耗軌跡共5000條, 每條功耗軌跡的點(diǎn)數(shù)為N,同時(shí)獲得5000組相對(duì)應(yīng)的明文數(shù)據(jù)。5000條功耗軌跡可以合成一 個(gè)5000行N列的實(shí)際功耗軌跡矩陣。同時(shí)通過(guò)這5000組明文數(shù)據(jù)可以計(jì)算得到5000次基于 明文初始置換和第一輪輸出的漢明距離,由于將密鑰分為8個(gè)6比特逐個(gè)攻破,因此針對(duì)每 一個(gè)字節(jié)共有64種假設(shè)值,因此可以得到一個(gè)64列5000行的假設(shè)功耗矩陣。通過(guò)向假設(shè)功 耗矩陣的每一列和實(shí)際的功耗軌跡的每一列進(jìn)行相關(guān)性計(jì)算,可以得到一個(gè)64行N列的相 關(guān)性矩陣,每一行對(duì)應(yīng)一個(gè)密鑰假設(shè)。將該相關(guān)性矩陣?yán)L制成64條曲線,如圖3所示,為針對(duì) 第一個(gè)6比特攻擊所得到的相關(guān)性矩陣圖,可以發(fā)現(xiàn)正確密鑰假設(shè)所對(duì)應(yīng)的曲線中出現(xiàn)了 明顯的尖峰,即通過(guò)該相關(guān)性矩陣可以推測(cè)出正確的6比特密鑰值。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn),5000條 功耗軌跡可以攻破密鑰所有比特,并獲得正確的初始密鑰。
[0033]接著使用本發(fā)明提出的一種針對(duì)寄存器保護(hù)的方法改進(jìn)了 DES算法。并將改進(jìn)后 的DES算法用FPGA實(shí)現(xiàn),并嘗試進(jìn)行功耗攻擊。本實(shí)驗(yàn)中使用示波器采集FPGA運(yùn)行改進(jìn)后的 DES算法實(shí)現(xiàn)的功耗軌跡,并將功耗軌跡條數(shù)從5000條增加到10萬(wàn)條。然后使用10萬(wàn)條功耗 軌跡針對(duì)改進(jìn)后的DES算法實(shí)現(xiàn)進(jìn)行基于漢明距離的功耗攻擊,得到相關(guān)性系數(shù)矩陣,如圖 4所示。
[0034]從圖4中可以看出正確密鑰對(duì)應(yīng)曲線淹沒(méi)在了其他63條曲線之中,改進(jìn)后的DES算 法實(shí)現(xiàn),功耗軌跡條數(shù)從5000條增加到10萬(wàn)條后,正確密鑰依然沒(méi)有出現(xiàn)尖峰,并且相關(guān)系 數(shù)出現(xiàn)了明顯的減小??梢园l(fā)現(xiàn)改進(jìn)后的DES算法有效的抵抗了基于漢明距離的功耗攻擊, 證明了本發(fā)明方法的有效性。
【主權(quán)項(xiàng)】
1. 一種基于寄存器掩碼的面向DES算法的抗功耗攻擊方法,其特征在于:在DES算法中 添加隨機(jī)數(shù)發(fā)生器(1)、左寄存器保護(hù)模塊(2)和右寄存器保護(hù)模塊(3),左寄存器保護(hù)模塊 (2) 包括第一左異或單元(21)、第二左異或單元(23)和左寄存器(22),右寄存器保護(hù)模塊 (3) 包括第一右異或單元(31)、第二右異或單元(33)和右寄存器(32) ;DES算法的初始階段 中,明文經(jīng)過(guò)初始置換操作,初始置換操作輸出的M位中間數(shù)據(jù)的左半部分和右半部分分別 作為獨(dú)立的左半部分f位數(shù)據(jù)U和右半部分f位數(shù)據(jù)R〇,左半部分f位數(shù)據(jù)Lo和右半部分$ 位數(shù)據(jù)Ro分別送入第一左異或單元(21)和第一右異或單元(31),隨機(jī)數(shù)發(fā)生器(1)產(chǎn)生初 始階段隨機(jī)數(shù),初始階段隨機(jī)數(shù)分別送入第一左異或單元(21)、第二左異或單元(23)、第一 右異或單元(31)和第二右異或單元(33),左半部分f位數(shù)據(jù)Lo和初始階段隨機(jī)數(shù)通過(guò)第一 左異或單元(21)進(jìn)行異或操作,第一左異或單元(21)將左異或操作結(jié)果送入左寄存器(22) 中,右半部分f位數(shù)據(jù)Ro和初始階段隨機(jī)數(shù)通過(guò)第一右異或單元(31)進(jìn)行異或操作,第一右 異或單元(31)將右異或操作結(jié)果送入右寄存器(32)中,第1輪輪操作開(kāi)始時(shí),左寄存器(22) 將左異或操作結(jié)果送入第二左異或單元(23),左異或操作結(jié)果和初始階段隨機(jī)數(shù)通過(guò)第二 左異或單元(23)進(jìn)行異或操作,得到被還原的左半部分$位數(shù)據(jù)L〇,作為第1輪輪操作的第 一輸入數(shù)據(jù),右寄存器(32)將右異或操作結(jié)果送入第二右異或單元(33),右異或操作結(jié)果 和初始階段隨機(jī)數(shù)通過(guò)第二右異或單元(33)進(jìn)行異或操作,得到被還原的右半部分f位數(shù) 據(jù)R〇,作為第1輪輪操作的第二輸入數(shù)據(jù);第i輪輪操作中,l<i<N,N為DES算法輪操作的總 次數(shù),輪操作模塊計(jì)算得到第i輪的左中間值L1和右中間值R1,輪操作模塊將第i輪左中間值 L1送入第一左異或單元(21 ),輪操作模塊將第i輪右中間值R1送入第一右異或單元(31 ),隨 機(jī)數(shù)發(fā)生器(1)產(chǎn)生第i+Ι輪隨機(jī)數(shù),第i+Ι輪隨機(jī)數(shù)分別送入第一左異或單元(21)、第二左 異或單元(23)、第一右異或單元(31)和第二右異或單元(33),第i輪左中間值Li和第i輪隨 機(jī)數(shù)通過(guò)第一左異或單元(21)進(jìn)行異或操作,第一左異或單元(21)將左異或操作結(jié)果送入 左寄存器(22)中,第i輪右中間值R 1和第i輪隨機(jī)數(shù)通過(guò)第一右異或單元(31)進(jìn)行異或操 作,第一右異或單元(31)將右異或操作結(jié)果送入右寄存器(32)中,第i + Ι輪輪操作開(kāi)始時(shí), 左寄存器(22)將左異或操作結(jié)果送入第二左異或單元(23)中,左異或操作結(jié)果和第i + Ι輪 隨機(jī)數(shù)通過(guò)第二左異或單元(23)進(jìn)行異或操作,得到被還原的第i輪左中間值U,作為第i+ 1輪輪操作的第一輸入數(shù)據(jù),右寄存器(32)將右異或操作結(jié)果送入第二右異或單元(33)中, 右異或操作結(jié)果和第i+Ι輪隨機(jī)數(shù)通過(guò)第二右異或單元(33)進(jìn)行異或操作,得到被還原的 第i輪右中間值Ri,作為第i+Ι輪輪操作的第二輸入數(shù)據(jù);第N輪輪操作得到的第N輪左中間 值Ln和第N輪右中間值Rn合成M位數(shù)據(jù)并進(jìn)行逆初始置換后得到密文。2. 根據(jù)權(quán)利要求1所述的基于寄存器掩碼的面向DES算法的抗功耗攻擊方法,其特征在 于:所述DES算法的第j輪輪操作中,I < j SN,輪操作模塊對(duì)第j-Ι輪中間值R^1依次進(jìn)行擴(kuò) 展、異或操作、字節(jié)替換和置換操作,然后將置換操作結(jié)果與Lh進(jìn)行異或操作,得到第j輪 右中間值Rj,并將Rj-i作為第j輪左中間值L j。
【文檔編號(hào)】H04L9/06GK105897399SQ201610412868
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年6月14日
【發(fā)明人】曹鵬, 申艾麟, 陸啟樂(lè), 陳圣華, 劉波, 楊錦江
【申請(qǐng)人】東南大學(xué)