姜久興,厚嬌,黃海,趙玉迎,馮新新
(1. 哈爾濱理工大學理學院,黑龍江 哈爾濱 150080;2. 哈爾濱理工大學軟件與微電子學院,黑龍江 哈爾濱 150080;3. 哈爾濱理工大學計算機科學與技術學院,黑龍江 哈爾濱 150080)
高級加密標準(AES, advanced encryption standard)算法因安全性、效率、靈活性等方面具有良好的性能,因此被廣泛地應用在實踐中。側信道攻擊(SCA, side-channel attack)技術[1]的出現(xiàn)對加密芯片的安全性構成了很大的威脅,典型的SCA包括時間分析攻擊、電磁輻射攻擊、功耗分析攻擊[2]等,其中差分功耗攻擊(DPA, differential power attack)[3],尤其是高階DPA,對芯片的硬件安全的威脅最大,采用掩碼方案是抵御DPA最有效的方法。AES加密算法的安全性將隨著掩碼階數(shù)的增加而提高,但掩碼階數(shù)的增加會帶來硬件成本成倍的增加。目前,掩碼方案主要有查找表掩碼[4-5]、加法鏈掩碼[6]和復合域掩碼[7]這3種,相較于后2種方案,查找表掩碼方案具有實現(xiàn)速度快、易于實現(xiàn)等特點,但存在存儲空間大的不足,難以應用到資源受限的設備中。針對這一問題,Nassar等[8]提出了一種循環(huán)移位S盒掩碼(RSM, rotating S-box masking)方案,該方案能夠有效地降低面積復雜度,是一種安全性和性能的折中方案,能夠抵抗一階和二階 SCA。然而,對于一些面積受限的設備,例如智能卡、物聯(lián)網(wǎng)終端設備等,RSM仍不能滿足實際的應用需求[9]。
本文在RSM方案的基礎上,分析了RSM方案掩碼值的特點,提出了一種基于S盒共用的方案,所提方案能使面積復雜度進一步降低,并針對AES進行了掩碼方案架構設計與硬件實現(xiàn),對整體架構進行了流水線的設計。所提方案與RSM方案相比,大幅度降低了面積復雜度,從理論上和實驗上證明了具有更高的安全性和更好的性能。所提方案在滿足性能和安全性的前提下,能夠有效地節(jié)約硬件資源,降低實現(xiàn)成本,對資源受限的設備和民用小型服務器具有重要的意義。
AES加密算法的掩碼方案中,基于查找表的掩碼方案通過采用S盒重計算技術增加攻擊難度來抵御SCA。1999年,Chari等[10]首次提出了隨機查找表方案,對S盒進行了T(u)=S(u⊕r)⊕s的隨機化處理,其中,u是明文,r是輸入掩碼,s是輸出掩碼。但是該方案沒有對AES的所有輪都添加掩碼,因此僅能抵御一階DPA。文獻[11]對文獻[10]中所提方案采用中間輪攻擊操作,得到了正確的密鑰。2001年,Itoh等[12]采用固定值掩碼方案抵御中間輪攻擊,但所有輪操作都采用同一掩碼值。該方案著重考慮AES加密算法的加密速度,將隨機掩碼和根據(jù)隨機掩碼計算得到的S盒存儲在ROM中,減少了 RAM 的空間。但是該方案只能抵御一階SCA,不能抵抗二階及以上的SCA,因為通過對2個經(jīng)過掩碼的中間結果進行異或處理,就可以去掉掩碼值。
Nassar等[8]提出了RSM方案,采用了低熵掩碼設計,利用16個不同的S盒,解決了固定值掩碼方案難以抵抗二階SCA攻擊的問題。RSM掩碼原理如式(1)所示。
其中,SB表示128位數(shù)據(jù)的字節(jié)替代操作,X表示需要掩碼的 128位數(shù)據(jù)j的選取在第一輪,之后每輪都是固定值(即掩碼值循環(huán)左移),因此掩碼值的選取共有 16種可能。在每輪加密操作結束后需要進行掩碼補償,即去掉上次的掩碼,添加新的掩碼。為了提高 AES加密算法的計算速度,使用重計算的16個S盒存儲在ROM中。
RSM 方案的優(yōu)點在于以犧牲少量面積和性能為代價,達到抵御一階SCA攻擊、二階SCA攻擊、零值攻擊等攻擊,有效地提高了 AES的安全性。2014年,Yamashita等[13]公布了一種變種的RSM方案 vRSM(variant RSM),該方案去掉了中間輪的重新掩碼操作(這些操作對于 RSM 方案是不可或缺的),在不影響安全性的前提下,進一步降低掩碼的復雜度,其面積開銷為RSM方案的90%,但該方案的輸出掩碼值是由輸入掩碼值決定的。2015年,徐佩[14]提出了改進的RSM方案,該方案充分考慮了掩碼值的漢明質(zhì)量,對隨機掩碼的選取進行了優(yōu)化設計,同時對S盒循環(huán)移位的次數(shù)進行了隨機化設計,能夠抵抗基于一階偏移量的相關性功耗分析(CPA, correlation power analysis),這是RSM方案不具備的。為了增加算法的加密速度,文獻[14]對AES的前兩輪和最后兩輪采用隨機掩碼的方式,其他中間輪采用固定值掩碼的方式,這樣中間輪能夠采用相同的掩碼S盒,減少計算掩碼S盒數(shù)量,提高速度??梢钥闯觯墨I[14]提出的方案是RSM方案的改進方案,但存在不能抵御中間輪的攻擊和面積相對于其他方案面積有所增加的缺點,從安全性方面看,仍不是一個最優(yōu)的方案。
綜上,現(xiàn)有的基于查找表掩碼的掩碼方案難以兼顧安全性和復雜度。本文在分析 RSM 方案掩碼值特點的基礎上,提出了一種低熵掩碼方案,通過S盒共用思想減少掩碼S盒的數(shù)量,從而進一步降低RSM方案的面積復雜度。
根據(jù)文獻[15]可知,RSM方案的掩碼值必須是正交的,這樣才能確保算法的安全性。因此,本文掩碼值的選擇方法采用文獻[16]中的方法,具體如下。假設正交矩陣的維度是Q,列數(shù)是N,行數(shù)是Q^J,J的選取需滿足,首先利用置換方法獲得正交矩陣[16],其中,Q=2,N=15,J=4,生成的正交矩陣A有 15列,如式(2)所示。這 15列的值分別為00ff、0f0f、0ff0、3333、33cc、3cc3、3c3c、5555、55aa、5a5a、5aa5、6666、6699、6969、6996,然后從正交矩陣A中隨機選擇8列構造滿足約束條件的16個掩碼值。通過分析矩陣A能夠看出,每一列中的4個十六進制數(shù)的要么相同,要么取反,這也是本文設計S盒共用掩碼方案能夠?qū)崿F(xiàn)的基礎。
S盒共用掩碼方案是一個通用方案,適用于掩碼值滿足正交向量要求的任意掩碼方案。以隨機選取{0x00 0x0f 0x36 0x39 0x53 0x5c 0x65 0x6a 0x95 0x9a 0xa3 0xac 0xc6 0xc9 0xf0 0xff }為例,對該方案進行詳細說明。能夠看出隨機選取的 16位掩碼值中,高4位和低4位不是相同就是互補。根據(jù)這一特征,進行如下分組,用Mt表示,t∈[1,4]。
在每組掩碼分組中選用的掩碼值滿足如式(7)所示的條件。
其中,x是無掩碼的8位數(shù)據(jù),Mtr為第t個掩碼分組中的第r個掩碼值,是S盒的輸入掩碼,Mt(r+1)mod4是S盒的輸出掩碼,S代表S盒操作,Sm代表帶掩碼的S盒操作。
全部128位明文的掩碼滿足
其中,P、Q、H、N∈t,表示在上述掩碼分組中挑選任意一組;p,q,j,n∈[1,4],表示從每組中選擇第幾個值為掩碼分組的第一個掩碼值。上述的掩碼分組中能夠隨機挑選一組作為共用S盒,假設在第t組中可選共用的S盒輸入掩碼為mt2,輸出掩碼為mt3。例如在M2中,選擇“39”為輸入掩碼,則“c6”為輸出掩碼,表示為Sbox_M22_M23,第t組的共用S盒表示為Sbox_Mtr_Mt(r+1)mod4。S盒共用掩碼方案原理如圖1所示。
圖1 S盒共用掩碼方案原理
在每組掩碼分組中,首先根據(jù)選擇的輸入輸出掩碼計算得到共用S盒,剩余的3組掩碼值與所選擇的輸入輸出掩碼存在固定關系,即掩碼值的高低位不是相同,就是互補。按照這個規(guī)律,利用S盒共用掩碼方案可以有效地降低掩碼 S盒的數(shù)量,具體過程如下。當32位的中間值異或一組掩碼值時,能夠通過判斷該組掩碼值的輸入掩碼和共用 S盒輸入掩碼高低位關系來選擇地址;如果值相同,那么S盒的地址不變,否則,S盒的地址取反;同樣能夠通過判斷該組掩碼值的輸出掩碼和該組共用S盒的輸出掩碼的高低位關系來選擇輸出;如果值相同,那么S盒的輸出不變,否則,S盒輸出取反。因此,每組就能夠利用同一個S盒(8位)來實現(xiàn)字節(jié)替代操作。
4.1.1 線性操作的掩碼實現(xiàn)
1) XOR掩碼——密鑰加操作
XOR(exclusive-OR)操作將輪密鑰與輸入數(shù)據(jù)進行異或操作,其結果進行字節(jié)替代操作,該中間結果和密鑰有很強的關系,所以一定要對 XOR操作進行掩碼。密鑰加是線性操作,能夠利用異或操作實現(xiàn)掩碼,但必須注意和掩碼值異或的順序,一定要確保所有中間值都是經(jīng)過掩碼的,不能存在某個中間值沒有進行掩碼就直接進行某個變換,這樣才能夠保證XOR操作不泄露任何的中間結果。
2) SR掩碼——行移位操作
SR(shift row)操作在字節(jié)替代變換之后,由式(7)可以看出,經(jīng)過字節(jié)替代操作的中間值仍受掩碼保護,所以不需要再添加新的掩碼值。
3) MC掩碼——列混合操作
SR之后進行MC(mix column)操作,與SR類似,該操作的中間值也是具有掩碼的,因此不需要再添加新的掩碼值。
4.1.2 掩碼補償
本文方案的掩碼補償發(fā)生在每輪加密結束時,通過異或操作去掉原掩碼值,增加新掩碼來實現(xiàn)掩碼更新。為了得到正確的密文,最后一輪僅需去除現(xiàn)在的掩碼值,不需要添加新掩碼。進行字節(jié)替代操作之后,中間值是具有掩碼的,根據(jù)式(7)~式(9),把掩碼值按照矩陣形式進行排列,其每輪的行變換關系如圖2所示。
圖2 掩碼值每輪的行變換關系
對非最后一輪的輸入掩碼依次進行行變換(LT,line transformation)操作、SR掩碼、MC掩碼和添加新的掩碼操作,而最后一輪僅需對輸入掩碼進行LT操作和SR操作。為了保證算法的安全性,在每輪 XOR操作結束時,需要進行掩碼補償操作,即先添加新掩碼然后去掉之前的掩碼,具體操作如圖3所示。
圖3 掩碼補償操作
AES算法中字節(jié)替代是唯一的非線性操作,為了滿足掩碼的基本原則,設計的式(7)能夠滿足對字節(jié)替代操作的掩碼,在進行字節(jié)替代時要通過重新計獲得新的S盒。在4個掩碼值分組中,分別計算4個掩碼分組中每組內(nèi)的共用S盒,該組內(nèi)共用S盒的選擇有4種情況,能夠隨機挑選任意一個作為共用的掩碼S盒,所以需要4個共用S盒。
S盒共用掩碼方案在進行字節(jié)替代操作時,輸入值為32位,32位的數(shù)據(jù)被分為4組,每一組為8位。進行字節(jié)替代操作時,根據(jù)輪操作中間值的掩碼值,選擇相應的共用S盒完成操作。在進行字節(jié)替代操作時,這4組數(shù)據(jù)是并行執(zhí)行的。S盒共用掩碼方案字節(jié)替代模塊的原理如圖4所示。首先32位明文被分為4組,每組8位,這4組數(shù)據(jù)分別與MP、MQ、MH和MN進行異或操作,然后進行字節(jié)替代操作,最后把這4組字節(jié)替代后的值組合成32位的數(shù)據(jù)。
AES的密鑰擴展是把初始的128位密鑰平均分為4組,進行密鑰擴展操作,共產(chǎn)生44組密鑰(包括初始密鑰),每組32位,當分組的組數(shù)是4的倍數(shù)時,需要進行字節(jié)替代操作,這也是密鑰擴展模塊唯一的非線性操作,字節(jié)替代操作共需要4個S盒,其中,S盒與輪操作中的S盒相同,因此共用S盒方案也能夠用于密鑰擴展模塊。對于密鑰擴展操作而言,其線性部分和S盒都可按照輪操作的掩碼方式進行掩碼,從而提高安全性。在進行密鑰擴展時,首先128位密鑰與掩碼值進行異或操作,然后分為4組進行密鑰擴展,由于應用S盒共用的掩碼方案,因此在進行字節(jié)替代操作時僅需要4個掩碼S盒。由于密鑰擴展產(chǎn)生的密鑰添加了掩碼,為了得到正確的密文,在進行密鑰加操作之后要去掉密鑰的掩碼值,因為列混合操作之后的中間結果是帶有掩碼值的數(shù)據(jù),所以并不會泄露真實的中間結果。
圖4 S盒共用掩碼方案的字節(jié)替代模塊
為了提高算法的執(zhí)行效率,對S盒共用掩碼方案進行了流水線設計[17-19]。根據(jù)文獻[19]可知,若交換算法的行移位模塊與字節(jié)替代模塊的操作順序,不會對密文有影響,從而可實現(xiàn)流水線設計。由于S盒共用掩碼方案字節(jié)替代用到了4個S盒,最終實現(xiàn)128位數(shù)據(jù)的字節(jié)替代操作需要4個周期,本文設計的流水線時空圖如圖5所示,其中“(1)”~ “(4)”表示要加密的4個32位數(shù)據(jù)。當128位明文輸入時,按照順序每組32位進行拆分。每組數(shù)據(jù)按照字節(jié)替代、MC、XOR與掩碼補償?shù)捻樞蜻M行操作,再對其他32位數(shù)據(jù)依次進行同樣的操作,直至執(zhí)行完128位的數(shù)據(jù)。這樣的方式能夠確保每個周期所有的硬件模塊都在工作,增加了硬件使用率,提高了S盒共用掩碼方案的加密速度。
S盒共用掩碼方案的流水線設計數(shù)據(jù)加密結構框架如圖6所示,該框架主要包括18個模塊,其中,拆分模塊對數(shù)據(jù)進行拆分,選擇模塊對多組數(shù)據(jù)進行選擇,重組模塊對數(shù)據(jù)進行重組處理,緩存器主要對數(shù)據(jù)的傳輸進行緩沖和存儲。
圖5 流水線時空圖
圖6 流水線設計數(shù)據(jù)加密結構框架
本文設計的AES掩碼方案如圖7所示。該方案首先將明文與隨機選擇的4組掩碼值進行異或,然后進行 XOR操作,這個結果即為中間輪的輸入。對于非最后一輪的所有中間輪依次進行 SR、字節(jié)替代、MC、XOR與掩碼補償操作,最后一輪加密依次進行 SR、字節(jié)替代、XOR,并進行掩碼補償操作得到最后的密文并輸出。圖7中K0~K43表示的是44組密鑰值,每組32位。
為提高算法的安全性,在數(shù)據(jù)進行加密時采用亂序的方式對4組數(shù)據(jù)進行字節(jié)替代、MC、XOR和掩碼補償?shù)炔僮?。因為增加了亂序執(zhí)行這4組32 位數(shù)據(jù)的操作,所以在這128位數(shù)據(jù)完成上述操作后,要對其進行重新排序,排序之后的結果為下一輪的數(shù)據(jù)輸入,該操作能夠確保正確密文的輸出。
圖7 AES掩碼實現(xiàn)
字節(jié)替代操作采用串行查找方式進行,每128位數(shù)據(jù)需要進行4次字節(jié)替代操作,通過比較RSM方案和S盒共用掩碼方案可知,RSM 方案共占用16個掩碼S盒,S盒共用掩碼方案僅占用4個,為RSM方案的25%。但進行S盒操作時,128位數(shù)據(jù)采用串行查找的方式,依次處理32位數(shù)據(jù),這樣使字節(jié)替代操作的吞吐量變?yōu)樵瓉淼?,適用于面積受限的應用。
為了增加算法的運算速度,S盒共用掩碼方案利用與固定值掩碼方案相同的空間存儲方式,在進行加密之前,提前選好掩碼值,根據(jù)選擇的掩碼值計算好與之對應的共用S盒,并把共用S盒存儲在ROM 中。在進行加密時,根據(jù)設計方案選取隨機掩碼和與之對應的掩碼S盒執(zhí)行操作,這種方式能夠降低占用的RAM空間。S盒共用掩碼方案需要在ROM中存儲的值如下。
1) 具有正交向量特征的掩碼值Mt。
2) 根據(jù)設計規(guī)則選擇的每組掩碼值的偏移量p、q、h、n。
3) 根據(jù)選擇的輸入輸出掩碼計算得到的掩碼S盒,即共用S盒,數(shù)目為4。
4) 根據(jù)輸出掩碼計算每輪的掩碼補償值。
通過上述的設計方案,能夠直接從ROM中調(diào)用需要的值進行加密運算,RAM 只需要存儲臨時的變量,如XOR、SR等操作的中間值。因為計算共用S盒需要花費很多的時間,所以對整個算法的時間花費主要集中在初始階段[9],之后的操作當需要某些中間值時,直接從ROM中調(diào)用即可,通過這樣的方式提高了算法的運算速度。與 RSM 方案相比,S盒共用掩碼方案占用更少的面積,并且安全性也有所提高。
為了驗證S盒共用掩碼方案的功能正確性,對S盒共用掩碼方案進行了Verilog HDL建模,通過Modelsim SE 10.0c仿真軟件進行仿真。無掩碼AES方案、RSM方案和S盒共用掩碼方案的字節(jié)替代的仿真結果分別如圖8~圖10所示。
圖8 無掩碼AES方案字節(jié)替代操作
圖9 RSM方案字節(jié)替代操作
圖10 S盒共用掩碼方案字節(jié)替代操作
在測試3種方案字節(jié)替代的功能時,RSM方案和 S盒共用掩碼方案采用相同的測試數(shù)據(jù)。圖 8~圖10中data_in和data是需要進行字節(jié)替代操作的128位數(shù)據(jù),data_out是進行字節(jié)替代之后的128位輸出數(shù)據(jù),m是掩碼值,dm是去除掩碼后的值,m1是共用S盒對應輸入掩碼的輸出掩碼。可以看出,圖9和圖10中的dm值與圖8中的data_out值相同,從而證明了S盒共用掩碼方案中字節(jié)替代的正確性。
基于S盒共用掩碼方案的整個AES掩碼方案仿真結果如圖11所示,流水線設計的功能仿真結果如圖12所示。圖11中,cipher_key 是密鑰值,plain_text是明文數(shù)據(jù),m是掩碼值,cipher_text 是加密得到的密文。從圖12中能夠看出,128位密文“cipher_text”需要4個周期輸出,每個周期輸出32位。從測試結果可以看出,根據(jù)輸入的明文和密鑰,能夠輸出正確的密文,可以驗證本文所提方案的功能正確性。
圖11 S盒共用掩碼方案實現(xiàn)AES算法
圖12 流水線設計的仿真
SCA是利用AES操作過程中的中間結果與密鑰之間的相關性進行攻擊的,因此證明中間結果的概率分布與密鑰無關,即可證明算法的安全性。把128位的輸入數(shù)據(jù)分為4個32位的數(shù)據(jù)進行處理,只用一個字節(jié)替代架構,依然能夠保證AES算法自身的安全性。
引理 1若被掩碼的中間值可表示為'u=ux,其中,u為計算得到的中間值,x是隨機掩碼。那么u'的概率分布與密鑰是不相關的[20]。
文獻[20]中給出了引理 1論證,因此根據(jù)該理論可以證明S盒共用掩碼方案可以抵抗一階SCA。定義評估的相關系數(shù)[21]為
利用 SAT(SAT-solver)求解[22]對 S盒共用掩碼方案有 RSM 方案具有的安全性進行證明,即可以抵抗一階與二階零偏移量的CPA,有以下結果。
2) 若2個隨機變量互補,那么它們的交互信息為MIA=1.817 6 B。對于2個互補的掩碼,m是均勻分布的一對,例如但。所以主要的目標是清掉,1.817 6 B對交互信息來說仍是相當大的。
能夠發(fā)現(xiàn)交互信息I[HW(x⊕m);x]是0.216 8 B。
根據(jù)以上引理和結果可證明,S盒共用掩碼方案可以抵抗一階和二階SCA,有RSM具有的安全性。
因為 CPA是利用中間值與密鑰間的聯(lián)系對加密方案進行攻擊的,所以通過證明中間值的概率分布不受密鑰的影響,即不相關,就可以證明加密方案可抗 CPA。在文獻[14]中給出了一種掩碼方案能否抵御CPA的定理,如定理1所示。
定理 1若掩碼方案存在n個中間值它們的概率分布都與密鑰無關,而且的聯(lián)合概率分布也不受密鑰的任何影響,就可以證明該方案能抵御一階和高階CPA。
假設經(jīng)過掩碼的中間值'u=ux,其中,u是算法運算的中間值,x是隨機掩碼。那么'u的概率分布與密鑰沒有關系,因此可證明該算法能夠抵御一階CPA。同理,假設有n(n>1)個中間值,且均服從均勻分布,并且被隨機變量進行掩碼,同樣相互獨立,并滿足
此外,文獻[14-15]指出,RSM方案的安全性存在以下2個漏洞。
1) RSM 方案的掩碼值經(jīng)過異或操作,得到的值的漢明質(zhì)量存在特定的規(guī)律,即 HW(mjXORmj+1)=4,HW(m0XORm15)=8。
2) 該方案的S盒循環(huán)偏移量是一個常數(shù),為1。
S盒共用掩碼方案相鄰掩碼值經(jīng)過異或操作后不存在1)的特征,并且S盒共用掩碼方案不需要循環(huán)移位,因此也沒有2)的缺陷。表1給出了4種方案的安全性對比。
綜上所述,S盒共用掩碼方案的所有中間值與密鑰不相關,可以抵抗一階和高階的CPA;采用掩碼值隨機選取和字節(jié)替代順序隨機執(zhí)行,使相鄰掩碼進行異或操作之后的漢明質(zhì)量為隨機值,因此可以抵御基于偏移量的CPA。
在相同的實現(xiàn)方式下,對AES加密算法的無掩碼AES方案、RSM方案[8]、vRSM方案[13]和S盒共用掩碼方案法進行Verilog建模,并在FPGA上實現(xiàn)。所采用的FPGA芯片為擇Cyclone III系列(EP3C120F78017),邏輯綜合結果如表2所示。
表2中,括號內(nèi)的百分比是相比于無掩碼方案所占用的資源,“+”號代表增加的百分比,“-”號代表減少的百分比。從表2中能夠看出,本文提出的 S盒共用掩碼方案需要的掩碼 S盒數(shù)目是RSM方案的(不包括密鑰擴展模塊),因此很大程度地減少了面積開銷。S盒共用掩碼方案需要3 184個總邏輯單元,總邏輯單元數(shù)為RSM方案的58%、vRSM方案的61%、無掩碼AES方案的63%;其中,時序邏輯單元有2 766個,組合邏輯單元有1 838個,所需的存儲位是84 545位,其大小為RSM方案、vRSM方案和無掩碼方案的21%。本文所提方案在執(zhí)行字節(jié)替代操作時采用串行方式,因此每輪字節(jié)替代操作需4個周期,是其他3種方案的4倍。
表1 安全性分析
表2 4種S盒實現(xiàn)方案比較
表3 流水線實現(xiàn)方案的對比
對無掩碼AES方案、RSM方案及S盒共用掩碼方案采用流水線的方式實現(xiàn),得到的結果如表 3所示。從表3可知,S盒共用掩碼方案使用了4 352個總邏輯單元,是RSM方案的39%;組合邏輯單元為1 986個,是RSM方案的31%;時序邏輯單元為4 220個,是RSM方案的40%;存儲位為81 956位,是RSM方案的20%。結果顯示,S盒共用掩碼方案在占用資源的花費上有著特別大的優(yōu)勢。采用本文設計的流水線設計實現(xiàn)本文方案,4個128位明文加密需要91個周期;采用非流水線設計實現(xiàn)本文方案,一個128位明文加密需要79個周期。因此,對于4個128位明文加密來說,采用流水線設計和非流水線設計地加速比為
式(12)中S值大于1,說明本文設計的流水線方案能夠提高AES加密算法的加密速度。
綜上,相比于RSM方案,S盒共用掩碼方案所需硬件資源大幅度減少。此外,在使用相同數(shù)目掩碼值(16個)的情況下,RSM方案和vRSM方案的掩碼值選取僅有16種可能。本文提出的S盒共用掩碼方案在選取掩碼值時可以隨機選擇 4組數(shù)據(jù),因此可選擇的掩碼值共有24(即2×3×4)種可能,在選擇每組中的第一個掩碼值時又有 256(即4×4×4×4)種可能,因此本文提出的方案中掩碼值選擇一共有6 144(即24×256)種可能,相當于RSM方案和vRSM方案的384倍。掩碼方案的安全性與掩碼值的隨機性成正比,可以看出,本文所提方案的安全性高于RSM方案和vRSM方案。
本文在文獻[8]的基礎上,提出了一種S盒共用的低熵掩碼方案,并把這種方案應用到AES算法上。該方案的輪操作中加密的最小單元為32位,而不是128位,并利用流水線技術提高系統(tǒng)性能。實驗結果表明,本文所提方案相對于RSM方案大幅度降低了面積復雜度,S盒的數(shù)量從16個降低到4個。從理論上證明本文所提方案比RSM方案有更高的安全性,可以抗一階、高階的SCA與基于偏移量的CPA攻擊。