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