国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

AES高階掩碼方案抗功耗攻擊

2022-05-30 04:29何利文國海輪
計算機技術與發(fā)展 2022年5期
關鍵詞:明文高階字節(jié)

何利文,國海輪,安 聰

(南京郵電大學,江蘇 南京 210003)

0 引 言

隨著信息化的高速發(fā)展,智能信息化在深刻影響著人們生活各方面的同時,也帶來了信息安全問題,故受到了極大的重視。目前的密碼算法已經(jīng)可以對抗傳統(tǒng)的數(shù)學分析,如代數(shù)分析、差分分析。但最近興起的側信道分析[1](side channel analysis,SCA),可以利用密碼芯片在加密過程中泄露一些功耗、輻射等信息,這些信息可以幫助攻擊者破解密鑰。側信道攻擊中利用功耗泄露信息來破解密鑰的方法稱為功耗攻擊(power analysis attack)。功耗分析包括簡單功耗分析(simple power analysis,SPA)、差分功耗分析[2](different power analysis,DPA)、相關功耗分析(connection power analysis,CPA)等。

由于側信道攻擊的出現(xiàn),也產(chǎn)生了許多對抗方法,例如加入掩碼、使用數(shù)據(jù)與功耗不相關的邏輯單元、增加噪聲[3]產(chǎn)生電路。該文設計了一種d+1高階掩碼方案,通過將敏感數(shù)據(jù)拆分成多份來消除明文與功耗之間的相關性。

1 AES加密算法

AES[4]算法是一種對稱分組密碼算法。AES將分組長度設為128比特、192比特、256比特三種密鑰長度。后面以128位的密鑰長度為例介紹。加密過程如圖1所示。

圖1 AES加密過程

2 功耗攻擊

目前應用最廣泛的三種功耗攻擊[5]手段為SPA(簡單功耗分析攻擊)、CPA(相關功耗分析攻擊)、DPA[6](差分功耗分析攻擊)。SPA比后面兩種方法簡單,對一些簡單的加密算法是有效的,但對于一些復雜的算法比如AES算法、DES算法,就不容易成功。CPA和DPA的攻擊效果比SPA[7]好,目前功耗分析[7]方法的研究主要是后面兩種。

2.1 CPA攻擊

相關能量分析(correlation power analysis,CPA)的攻擊原理在于電子設備在進行加密操作的時候,它消耗的瞬時能量[8]和數(shù)據(jù)以及所進行的操作是相關的。攻擊者需要從芯片設備上測量出大量的實時功耗數(shù)據(jù),再通過建立功耗仿真模型計算出一組特定中間數(shù)據(jù)的預期功耗[9]。其理論基礎是皮爾森相關系數(shù)[10]。

2.2 DPA攻擊

DPA通過采集大量明文功耗與數(shù)學統(tǒng)計相結合,比較假設的中間值與實際功耗值之間的相關性來猜解出密鑰[11]。

第一步:輸入隨機明文并記錄功耗軌跡。將n組隨機明文c=[c0,c1,…,cn](n為一個較大的值,輸入明文相互獨立且隨機逐一輸入到加密芯片中進行加密運算。

第二步:計算區(qū)分函數(shù)D(mi,kj)。對于一個8比特的密鑰數(shù)據(jù),將猜測密鑰K-guess進行0到255之間的遍歷猜測。

第三步:功耗波形子集劃分。如第二步所示,對于猜測密鑰kj其對輸入明文mi進行區(qū)分函數(shù)的運算,且每個明文mi對應著一組功耗波形數(shù)據(jù)。

第四步:計算差分功耗波形。步驟3中已經(jīng)劃分出兩個功耗波形子集,對兩個集合取平均和進行差分操作運算。

第五步:比較差分功耗波形峰值。在對256個猜測密鑰猜測完畢后得出256組差分功耗波形數(shù)據(jù)。取每一組差分功耗波形的峰值進行比較,其中最大峰值對應的猜測密鑰最有可能是真實的隱藏密鑰。

3 高階掩碼方案

通過對敏感數(shù)據(jù)拆分為多份來消除明文與功耗的相關性。以漢明重量為隨機種子生成隨機掩碼,用于高階掩碼刷新算法;重新設計了S盒,它由求逆運算和仿射變換組成,該方案對這兩部分進行重新設計,新S盒采用按列的變換方式進行,由原來的查表操作變?yōu)槠椒匠诉\算。在加密過程中保證中間狀態(tài)的敏感數(shù)據(jù)被隨機拆分為d+1份,其中任意一份與原來的狀態(tài)值獨立。

具體過程為:將明文信息拆分為d+1份(d為正整數(shù)),并根據(jù)隨機掩碼算法生成隨機值掩碼。首先將拆分的d+1份明文和掩碼的異或結果進行加密。前九輪依次執(zhí)行字節(jié)替換、行移位、列混淆、輪密鑰加操作,最后一輪進行密鑰列混淆操作,然后將d+1份結果異或得到最終的密文。

3.1 基本原理

加密算法高階掩碼實現(xiàn)時,在計算過程中每個敏感變量[12]x被隨機分割為d+1份共享x0,x1,…,xd。滿足x0⊕x1⊕…⊕xd=x。每個掩碼變量涉及到d個掩碼時稱為d階掩碼。方案滿足下面2個性質(zhì):

(1)完整性:d個異或的結果必須產(chǎn)生預期的密文。

(2)d階安全性:任何由d或者少于d的中間變量組成的元組必須獨立于任何敏感變量。

假設掩碼是均勻分布的,加入的掩碼使得計算的每個中間變量統(tǒng)計上獨立于任何敏感變量。所以利用中間變量相關的信息泄露的側信道攻擊不再那么順利。d階掩碼理論上容易受到d+1階SCA攻擊。SCA利用d+1中間變量相關的信息泄露,信息的泄露取決于敏感變量。然而隨著d的增加這種攻擊變得不切實際,使得高階掩碼成為一種合理的解決方法。

3.2 安全乘法

安全乘法[13]是本方案的關鍵步驟,主要是在S-box階段運用。在設計S盒時,字節(jié)替換的求逆和仿射變換必須重新設計,所以必須對之前的非線性操作做安全乘法。

安全乘法:

Ishai等人[14]提出了一種高階掩碼ISW方案。用來保護任意d階的硬件電路。假設要保護的電路都是由非和與門組成的,用掩碼值將電路轉換成一個新的保護電路。主要的問題是如何保護與門的安全,為此他們提出了下面的方案。

(1)0≤i≤j≤d,選一個隨機數(shù)ri,j。

(2)0≤i≤j≤d,計算:

rj,i=(ri,j⊕aibj)⊕ajbi

(3)0≤i≤j≤d,計算:

ci=aibj⊕⊕j≠iri,j

雖然ISW方案理論上很安全,但它的實現(xiàn)開銷很大。每個與門通過(d+1)2和2d(d+1)異或門進行編碼。它要求在每個時鐘周期產(chǎn)生d(d+1)2個隨機比特數(shù)據(jù)。對于AES算法來說,對S盒做屏蔽會增加電路的門數(shù)。隨著d的增加門電路數(shù)急劇增加。

3.3 高階AES掩碼

AES加密包括輪密鑰加、字節(jié)替換、行移位、列混淆操作。其中只有S-box[15]是非線性的,也是掩碼方案的主要困難。

該d+1階掩碼方案通過加入掩碼[16]來增加抗功耗攻擊操作。還是以異或方式為基礎設計了AES算法中的安全乘法、安全S盒、安全行移位與安全列混淆。

Masking SubBytes:

方案主要包括對任意d階冪函數(shù)做屏蔽。和Blomer等人[17]的方案相比,該文的求冪對d階的掩碼是安全的。

根據(jù)前面的知識,需要設計安全的求逆即(c0,c1,…,cd)←SecMult((a0,a1,…,ad),(b0,b1,…,bd))。

Blomer等人[18]已經(jīng)描述過d=1階的,核心思想是對一階掩碼輸入做求冪比如平方乘算法,同時保證進行掩碼校正。Rivain和Prouf[19]提出了一種對d階掩碼輸入進行運算的求冪算法,并保證d階SCA安全。雖然這種方法的乘法只達到了4次,但是需要7次額外的平方操作。在求逆的過程中將其減少到2,并且不需要平方。Rivain and Prouff改進了之前的求逆操作[13],將乘法次數(shù)從13減少到4次。

安全求逆算法:

隨機掩碼算法rand():

首先確定隨機掩碼個數(shù)為16個,需要生成16個[0,8]的漢明重量HWi={1,3,6,0,2,4,5,7,8,1,4,5,2,8,6,3}的不同取值確定相應的隨機掩碼字節(jié),比特1的位置隨機放置。

RefreshMasks掩碼刷新算法:

對仿射變換[20]做掩碼操作很容易,其中需要注意如果d是偶數(shù)要異或0x63。

安全S盒:

AES密鑰擴展產(chǎn)生一個4*4(Nr+1)字節(jié)數(shù)組w。稱為密鑰表,其中Nr是輪數(shù),w*,j表示w的第j列。每一組4列(w*,4r-3,w*,4r-2,w*,4r-1,w*,4r)組成一圓鍵Kr,并在第r個輪密鑰加階段異或到狀態(tài)矩陣。Subword接受一個四字節(jié)輸入并將AES S-box應用于每個字節(jié),讓Rotword以一個四字節(jié)作為輸入,從上往下循環(huán)移動一個字節(jié)。輪常量異或Rcon。密鑰列表w的第j列被定義為w*,j=w*,j-Nk⊕t。

T=

為了安全地進行d階密鑰擴展[21],將w分為d+1個w0,w1,…,wd。每個共享的第一列都填滿了剛開始時的密鑰共享。每次新的時間表列w*,j重新計算,它的d+1份計算如下:

(wi)*,j=(wi)*,j-Nk⊕ti

ti表示w的四個字節(jié)的共享安全計算得到t的4個字節(jié)的共享w*,j-1,從上面的描述可以很容易推導出這樣的安全計算。Subword通過之前描述的安全s-box計算應用于字節(jié)共享(w0)l,j…(wd)l,j為每個row-coordinatel∈[1,4]。因為Rotword相對于異或是線性的,所以它會分別應用于每一份分享。最后Rconj/Nk必須添加到t,它被添加到它的每一份如t0。

密鑰擴展算法:

1.forj=1 toNkdo

2.fori=0 toddo (wi)*,j←(ki)*,j

3.forj=Nk+1 to 4*(Nk+1) do

4.fori=0 toddoti←(wi)*,j-1

5.if(jmodNk= 0) or (Nk= 8)

and (jmodNk= 4) then

6. forl=1 to 4 do

((t0)l…(td)l)←SecSbox((t0)l…(td)l)

7.if(jmodNk=0) then

8.fori=0 toddoti←RotWord(ti)

9.t0←t0⊕Rconj/Nk

10.fori=0 toddo

(wi)*,j-1←(wi)*,j-Nk⊕ti

3.4 高階掩碼AES算法流程

AES操作一個4*4的狀態(tài)矩陣,由明文初始化,加密結束時得到密文。AES加密1到9輪,每輪由4個階段組成:輪密鑰加、字節(jié)替換、行移位、列混淆。最后一輪沒有列混淆。AES加密有10、12和14輪,輪數(shù)取決于密鑰長度。

加密開始前密鑰已經(jīng)被掩碼屏蔽,并且把其分為d+1份作為加密輸入。開始的時候狀態(tài)矩陣(16個明文)被分為d+1個狀態(tài)s0,s1,…,sd。滿足s=s0⊕s1⊕…⊕sd。在加密結束時d+1份異或得到密文。

Masking AddRoundkey:每輪的輪密鑰加操作是每個狀態(tài)和對應輪的密鑰異或得出的,如下:s⊕kr=(s0⊕k0)⊕…⊕(sd⊕kd)

Masking ShiftRows and MixColumns:

行移位和列混淆都屬于線性變換[22],對于行移位,狀態(tài)的最后三行中每行分別循環(huán)移動1個字節(jié)、2個字節(jié)、3個字節(jié);對于列混淆,將狀態(tài)的每列看作有限域上的一個多項式,通過系數(shù)合并得到c(x)=3x2+2x2+x+2,然后在modulo(x4+1)下將它與一個固定多項式進行乘法操作。

因為這兩個算法都是線性的,所以對它們加入掩碼相對來說比較容易,只要將它們分別對應于每個狀態(tài)共享[23]即可。

ShiftRows(s)⊕ShiftRows(si)

MixColums(s)⊕MixColums(si)

完整AES加密算法過程:

1.s0←p

2.fori= 0toddo

3.si←rand(16*8)

4.s0←s0⊕si

1到9輪

5.forr= 0 toNr- 1 do

7.forl= 1 to 4,j= 1 to 4 do

8.((s0)l,j…(sd)l,j) ←SecSbox((s0)l,j…(sd)l,j)

9.fori= 0 toddo

si←MixColumns(ShiftRows(si))

最后一輪

11.forl= 1 to 4,j= 1 to 4 do

12.((s0)l,j…(sd)l,j) ←SecSbox((s0)l,j…(sd)l,j)

13.fori= 0toddosi←ShiftRows(si)

15.c←s0

16.fori=1 toddoc←c⊕si

4 實驗結果

驗證設計方案的正確性,中間16個字節(jié)被分為四份,四份的異或結果為密文。由于篇幅限制該文只給出最后一輪結果,見表1。由最后的密文可以看出,該方案設計是正確的。

表1 異或結果

ChipWhisperer[19]是一個完全開放的嵌入式硬件安全研究平臺,可用于基于硬件加密系統(tǒng)或軟件加密系統(tǒng)的側信道攻擊實驗平臺。它里面包含了一系列可用于側信道分析的軟硬件工具集,如目標加密設備、低功耗采集設備、功耗分析軟件等。用到的設備為ChipWhisperer-Lite Board和XMEGA[24]Target Board(CW303)。上述方案用C語言實現(xiàn),然后對XMEGA設備進行編程,將寫好的代碼傳到目標設備。實驗對沒有添加掩碼和添加掩碼的AES算法進行功耗攻擊,攻擊點選取在S盒之后。表2是攻擊結果,對16字節(jié)密鑰的攻擊。

表2 無掩碼AES算法CPA攻擊結果

表2中的結果是由ChipWhisperer平臺的 Analyzer工具分析實現(xiàn)的,圖中第一排即為破解出來的密鑰,在分析時,每一個字節(jié)所有猜測密鑰都進行計算,采用的是相關系數(shù)公式計算假設功耗和真實功耗的相關程度,相關度越高密鑰排名越靠前。由于沒有加入掩碼進行防護中間值很容易泄露,密鑰輕松地就被破解。

由表3可以看出,最后的密鑰都沒有被成功破解,原因在于S盒替換不同于之前的查表操作,而是采用按列的變換進行的,加密過程中所有敏感數(shù)據(jù)被隨機拆分為d+1份進行計算,每一份都與原來的狀態(tài)獨立,而且小于d份異或結果和原來的狀態(tài)也是獨立的。從表3可以看出,每個密鑰都沒有正確計算出來。該方案降低了中間狀態(tài)值和實際功耗的相關性,最終密鑰沒有被破解,而且加密出來的密文和未添加掩碼的結果是一樣的,表明了設計方案的正確性。

表3 文中方案結果

從表4可以看出,隨著明文條數(shù)的增加,添加了掩碼的AES算法因為消除了功耗之間的相關性,因此能抵抗高階功耗攻擊。

表4 隨機明文功耗相關性對比

5 結束語

提出了一種d+1的高階掩碼方案抵抗高階功耗攻擊。該方案以漢明重量為種子刷新掩碼,構造了有限域上的安全乘法,采用平方和實現(xiàn)有限域上的求逆變換,再結合仿射變換實現(xiàn)S盒的替換,提高了新S盒的替換速度,并且保證安全。實驗結果表明該方案相比已有的方法在一定程度上有很大優(yōu)勢。盡管該方案是運用在AES加密算法上來實現(xiàn)的,但可以運用到類似的密碼算法上來抵御功耗攻擊。加密算法作為芯片的靈魂,對芯片安全起著重要作用。隨著AI技術的快速發(fā)展,側信道攻擊結合AI技術使得加密算法變得更容易破解。如何在保證加密效率不變的情況下,加密算法可以抵御高階差分功耗攻擊將會是未來的研究重點。

猜你喜歡
明文高階字節(jié)
No.11 字節(jié)跳動計劃自研芯片:僅供內(nèi)部使用
高階時頻變換理論與應用
字節(jié)跳動瞄準教育等新業(yè)務
高階思維介入的高中英語閱讀教學
三個高階微分方程的解法研究
高階非線性慣性波模型的精確孤立波和周期波解
奇怪的處罰
奇怪的處罰
奇怪的處罰