專利名稱:功耗感知的功耗平衡s盒單元電路及其應(yīng)用方法
功耗感知的功耗平衡S盒單元電路及其應(yīng)用方法技術(shù)領(lǐng)域
本發(fā)明屬于抗功耗攻擊技術(shù)領(lǐng)域,特別涉及功耗感知的功耗平衡S盒單元電路及其應(yīng)用方法。
背景技術(shù):
功耗分析攻擊是針對密碼算法芯片特別是智能IC卡的有效側(cè)信道攻擊手段,對金融、安防等重要領(lǐng)域構(gòu)成了威脅,它主要的工作原理為密碼算法(在硬件中實現(xiàn)時)產(chǎn)生的功率消耗與運算的中間結(jié)果的數(shù)值相關(guān),主要體現(xiàn)為與中間結(jié)果數(shù)據(jù)變化前后的漢明距離近似成正比。由于一般情況下數(shù)據(jù)變化前的數(shù)值很難確定,所以在實際攻擊中往往以中間結(jié)果的漢明重量作為數(shù)據(jù)的特征變量(近似認為數(shù)據(jù)的漢明重量與功耗成正比)。所謂的漢明重量是指數(shù)值以二進制表示時1的個數(shù),兩個數(shù)的漢明距離即等于兩個數(shù)值均以二進制表示時取值不同的位數(shù)(兩個數(shù)值異或的漢明重量)。
分組密碼算法又稱對稱密碼算法,也就是加密密鑰和解密密鑰相同的密碼算法, S盒運算是一類在現(xiàn)代分組密碼算法中非常普遍的運算操作,它的本質(zhì)是一種預(yù)定義的非線性運算,對密碼算法的安全性具有重要作用,也是功耗分析攻擊的主要目標,往往是分組密碼算法電路設(shè)計中最需要保護的。所謂S盒運算是一種置換操作,一般輸入和輸出具有相同的位數(shù),其函數(shù)可以用一個查找表來描述,具體運算過程如下輸入對應(yīng)表格的行數(shù)和 /或列數(shù),該行列坐標所對應(yīng)的表格內(nèi)容就是輸出數(shù)值;表格的內(nèi)容不同,S盒的函數(shù)也不同;這樣的查找表運算在數(shù)字電路實現(xiàn)時可以采用一個組合邏輯電路實現(xiàn),也可以采用一個存放有查找表內(nèi)容的存儲器實現(xiàn)。由于S盒運算是非線性運算,因此往往具有較大開銷, 特別是在進行功耗平衡設(shè)計和掩碼保護時通常是面積和功耗開銷的主要來源。
功耗平衡方法使得電路在各種數(shù)據(jù)輸入的情況下產(chǎn)生的功耗情況相同,消除了數(shù)據(jù)與功耗間的相關(guān)性,是防御功耗分析攻擊的重要方法,具有很高的安全強度,是抵抗功耗攻擊的有效措施之一?,F(xiàn)有功耗平衡方法大多采用基于雙軌編碼的對稱型邏輯電路(如 WDDL, SABL等),數(shù)據(jù)的漢明距離保持為一常數(shù),與功耗無關(guān);上述電路的面積相當于普通電路的兩倍,而且,無論數(shù)據(jù)是何種取值,漢明距離都等于數(shù)據(jù)位數(shù),也就是說,功耗平衡的結(jié)果總是近似于普通電路時各種輸入情況下功耗的最大值;在實際運用中,由于電路開銷的存在,上述電路功耗值要大于普通電路的最大功耗。這樣大的功耗開銷使得功耗平衡技術(shù)無法在低功耗應(yīng)用中采用,例如,非接觸式智能卡。其它的功耗攻擊防御措施(用隨機數(shù) (掩碼)保護中間結(jié)果,隨機插入延時等)也同樣存在冗余的運算操作和時鐘周期,最終都使得功耗水平遠高于普通設(shè)計。
除此之外,采用功耗平衡技術(shù)需要滿足平衡的各個數(shù)據(jù)線的負載都相同,這一要求對于雙軌編碼數(shù)據(jù)的兩條信號線的匹配程度要求很高,如果需要滿足更多位數(shù)據(jù)線的負載都相同,則不可能在實際工程實現(xiàn)。發(fā)明內(nèi)容
本發(fā)明針對上述缺陷公開了功耗感知的功耗平衡S盒單元電路及其應(yīng)用方法,其中功耗感知的功耗平衡S盒單元電路的結(jié)構(gòu)如下s盒運算邏輯模塊和功耗感知補償邏輯模塊共同擁有一個操作數(shù)輸入端口,循環(huán)移位器的輸入端通過互連線分別連接S盒運算邏輯模塊的結(jié)果輸出端口和取反標志位輸出端口以及功耗感知補償邏輯模塊的補償信號輸出端口,循環(huán)移位器的輸出端通過互連線連接反向循環(huán)移位器的輸入端,反向循環(huán)移位器的輸出端口為結(jié)果輸出端口、取反標志位輸出端口和補償信號輸出端口,以上三個輸出端口通過互連線連接下一級電路;循環(huán)移位器和反向循環(huán)移位器采用相同的偏移量信號。
所述S盒運算邏輯模塊的取反標志位輸出端口輸出一位編碼;
所述補償信號輸出端口輸出的編碼的位數(shù)等于S盒運算邏輯模塊的結(jié)果輸出端口輸出的編碼位數(shù)的一半。
所述操作數(shù)輸入端口連接1/n編碼邏輯模塊。
功耗感知的功耗平衡S盒單元電路的應(yīng)用方法的工作流程如下操作數(shù)輸入端口從1/n編碼邏輯模塊接收編碼,然后將其輸入至S盒運算邏輯模塊和功耗感知補償邏輯模塊中;
以上述編碼對應(yīng)的原碼為索引,在S-盒置換表中查出對應(yīng)的輸出數(shù)值out,當out 的原碼的漢明重量小于或等于out的位數(shù)的1/2時,S盒運算邏輯模塊的結(jié)果輸出端口輸出 out的原碼,取反標志位輸出端口輸出0 ;當out的原碼的漢明重量大于out的位數(shù)的1/2 時,S盒運算邏輯模塊的結(jié)果輸出端口輸出out按位取反后的數(shù)值outl,取反標志位輸出端口輸出1 ;
將out的原碼的漢明重量記為hl,將S盒運算邏輯模塊的取反標志位輸出數(shù)值的漢明重量記為h2,兩者相加所得數(shù)值為h ;功耗感知補償邏輯模塊的輸出的漢明重量等于 out位數(shù)的1/2減去h ;
循環(huán)移位器對綜合輸出數(shù)值進行循環(huán)移位操作,移位操作的偏移量是一個0到 out位數(shù)的1.5倍的隨機數(shù),所得數(shù)值采用反向循環(huán)移位器進行反向循環(huán)移位操作,反向移位操作的偏移量與移位操作的偏移量相同。
所述綜合輸出數(shù)值為S盒運算邏輯模塊的結(jié)果輸出端口輸出數(shù)值和取反標志位輸出端口輸出數(shù)值以及功耗感知補償邏輯模塊的補償信號輸出端口輸出數(shù)值的組合。
本發(fā)明的有益效果為本發(fā)明針對S盒電路的保護問題,提出了一種新型的功耗平衡方法,該方法利用功耗感知技術(shù)——根據(jù)輸入數(shù)據(jù)預(yù)測實際輸出結(jié)果的漢明重量,并產(chǎn)生相應(yīng)的補償翻轉(zhuǎn),實現(xiàn)了功耗平衡后的功耗水平低于普通設(shè)計的最大值的目標,從而大大降低了功耗平衡的功耗開銷。并針對多位數(shù)據(jù)線的負載平衡難題,提出通過隨機交換互連線的方式實現(xiàn)多個數(shù)據(jù)線的等效負載平衡。本發(fā)明可用于包含S盒類操作的密碼算法芯片或IC卡。
圖1是本發(fā)明的電路結(jié)構(gòu)示意圖2為AES算法的Srd運算結(jié)構(gòu)框圖;具體實施方式
下面結(jié)合附圖對本發(fā)明進一步詳細說明
如圖1所示,功耗感知的功耗平衡S盒單元電路的結(jié)構(gòu)如下S盒運算邏輯模塊和功耗感知補償邏輯模塊共同擁有一個操作數(shù)輸入端口,循環(huán)移位器的輸入端通過互連線分別連接S盒運算邏輯模塊的結(jié)果輸出端口和取反標志位輸出端口以及功耗感知補償邏輯模塊的補償信號輸出端口,循環(huán)移位器的輸出端通過互連線連接反向循環(huán)移位器的輸入端,反向循環(huán)移位器的輸出端口為結(jié)果輸出端口、取反標志位輸出端口和補償信號輸出端口,以上三個輸出端口通過互連線連接下一級電路。循環(huán)移位器和反向循環(huán)移位器采用相同的偏移量信號。
S盒運算邏輯模塊的取反標志位輸出端口輸出一位編碼;
補償信號輸出端口輸出的編碼的位數(shù)等于S盒運算邏輯模塊的結(jié)果輸出端口輸出的編碼位數(shù)的一半。
操作數(shù)輸入端口連接1/n編碼邏輯模塊(1/n編碼邏輯模塊對二進制數(shù)值進行1/ η編碼操作)。
功耗感知的功耗平衡S盒單元電路的應(yīng)用方法的工作流程如下操作數(shù)輸入端口從1/n編碼邏輯模塊接收編碼,然后將其輸入至S盒運算邏輯模塊和功耗感知補償邏輯模塊中;
以上述編碼對應(yīng)的原碼為索引,在S-盒置換表中查出對應(yīng)的輸出數(shù)值out,當out 的原碼的漢明重量小于或等于out的位數(shù)的1/2時,S盒運算邏輯模塊的結(jié)果輸出端口輸出 out的原碼,取反標志位輸出端口輸出0 ;當out的原碼的漢明重量大于out的位數(shù)的1/2 時,S盒運算邏輯模塊的結(jié)果輸出端口輸出out按位取反后的數(shù)值outl,取反標志位輸出端口輸出1 ;
將out的原碼的漢明重量記為hl,將S盒運算邏輯模塊的取反標志位輸出數(shù)值的漢明重量記為h2,兩者相加所得數(shù)值為h ;功耗感知補償邏輯模塊的輸出的漢明重量等于 out位數(shù)的1/2減去h ;
循環(huán)移位器對綜合輸出數(shù)值進行循環(huán)移位操作,移位操作的偏移量是一個0到 out位數(shù)的1. 5倍的隨機數(shù),所得數(shù)值采用反向循環(huán)移位器進行反向循環(huán)移位操作(與上述的移位操作方向相反),反向移位操作的偏移量與移位操作的偏移量相同,使得反向循環(huán)移位器的所有輸出端口的平均互連線負載都相同。
綜合輸出數(shù)值為S盒運算邏輯模塊的結(jié)果輸出端口輸出數(shù)值和取反標志位輸出端口輸出數(shù)值以及功耗感知補償邏輯模塊的補償信號輸出端口輸出數(shù)值的組合。(該組合指將三個輸出數(shù)值排列在一起組成一個新的數(shù)值)
實施例
如圖2所示,AES算法輪變換部分的Srd運算是一個8位輸入8位輸出的S盒運算, 對于任意8位輸入in,其對應(yīng)的輸出是置換表中以in為索引的表項的數(shù)值(也是8位)。
功耗感知的功耗平衡Srd運算單元的結(jié)構(gòu)如下S盒運算邏輯模塊和功耗感知補償邏輯模塊共同擁有一個操作數(shù)輸入端口,循環(huán)左移器的輸入端通過互連線分別連接S盒運算邏輯模塊的結(jié)果輸出端口和取反標志位輸出端口以及功耗感知補償邏輯模塊的補償信號輸出端口,循環(huán)左移器的輸出端通過互連線連接反向循環(huán)移位器的輸入端,循環(huán)右移器的輸出端口為結(jié)果輸出端口、取反標志位輸出端口和補償信號輸出端口,以上三者通過互連線連接下一級電路;循環(huán)移位器和反向循環(huán)移位器采用相同的偏移量信號。
S盒運算邏輯模塊的取反標志位輸出端口輸出一位編碼;
補償信號輸出端口輸出的編碼的位數(shù)等于S盒運算邏輯模塊的結(jié)果輸出端口輸出的編碼位數(shù)的一半。
操作數(shù)輸入端口同時驅(qū)動S盒運算邏輯模塊和功耗感知補償邏輯模塊,S盒運算邏輯模塊根據(jù)輸入數(shù)據(jù)計算結(jié)果輸出端口的輸出數(shù)值(8位)和取反標志位輸出端口的輸出數(shù)值(1位);功耗感知補償邏輯模塊根據(jù)輸入數(shù)據(jù)計算補償信號輸出端口的輸出數(shù)值G 位),因此輸出數(shù)值的位數(shù)共計13位。為了提高邏輯電路的對稱性,首先對輸入數(shù)值進行 1/4編碼,然后再通過操作數(shù)輸入端口輸入至S盒運算邏輯模塊和功耗感知補償邏輯模塊。 (1/4編碼的規(guī)則是把原碼編碼中的相鄰2位映射成4位的編碼,每種取值對應(yīng)編碼后的1 位,原碼取值對應(yīng)的位等于1,其它3位則都等于0,這樣的編碼方式對于任何數(shù)值漢明重量都等于1,也可以看作是4位的one-hot編碼。)
這樣,一個功耗感知的功耗平衡Srd運算單元有16位輸入信號,用in W] in [15]表示,in
in [3]為一組,對應(yīng)原碼表示的輸入數(shù)值的第0位和第1位;in [4] in[7]對應(yīng)對應(yīng)原碼表示的輸入數(shù)值的第1位和第2位;……,依次類推,共有4組信號。
S-盒運算邏輯也可以表示成一個新的置換表,新置換表的生成方法如下
根據(jù)16位1/4編碼的索引數(shù)值計算出對應(yīng)的8位原碼表示(如(0001 0010 0100 1000)2對應(yīng)于原碼表示的輸入數(shù)值是(00011011)2),以原碼表示為索引,在S-盒置換表中查出對應(yīng)的輸出數(shù)值,用OUt表示,如果out的漢明重量小于或等于4,S盒運算邏輯模塊的結(jié)果輸出端口輸出out的原碼,取反標志位輸出端口輸出0,兩個輸出端口輸出數(shù)值將作為新置換表的內(nèi)容;否則,S盒運算邏輯模塊的結(jié)果輸出端口輸出out按位取反后的數(shù)值 outl,取反標志位輸出端口輸出1 ;兩個輸出端口輸出數(shù)值將作為新置換表的內(nèi)容;
功耗感知補償邏輯模塊的計算過程(也可以看作補償邏輯置換表的形成過程)如下根據(jù)16位1/4編碼的索引數(shù)值查找其在新置換表中的對應(yīng)數(shù)值(結(jié)果輸出端口的輸出數(shù)值和取反標志位輸出端口的輸出數(shù)值排列在一起形成的數(shù)值),用out’表示,out'的漢明重量用h表示,則應(yīng)使補償信號輸出端口的輸出數(shù)值的4-h位取1,其余h位取0,補償信號輸出端口的輸出數(shù)值將作為補償邏輯置換表的內(nèi)容。
上述的S盒運算的新置換表和補償邏輯置換表的計算過程只需預(yù)先計算一次。在電路實現(xiàn)時,把它們作為邏輯電路的真值表,利用邏輯綜合工具可以直接映射成組合邏輯電路。
為了實現(xiàn)功耗感知的功耗平衡AES算法Srd運算的所有輸出端口的負載平均平衡,在上述方案中應(yīng)在分別在功耗感知的功耗平衡Srd運算單元與下一級電路(如 MixColumn運算單元)之間的互連線兩端插入循環(huán)左移器和循環(huán)右移器,循環(huán)左移器對綜合輸出數(shù)值進行循環(huán)左移位操作,循環(huán)右移器對綜合輸出數(shù)值進行循環(huán)右移位操作,循環(huán)左移器和循環(huán)右移器的偏移量受同一個信號控制,該信號是一個4位信號,由隨機數(shù)發(fā)生器產(chǎn)生,取值在0-12的范圍內(nèi)均勻分布,每次計算偏移量信號的值改變一次。綜合輸出數(shù)值為S盒運算邏輯模塊的結(jié)果輸出端口輸出數(shù)值和取反標志位輸出端口輸出數(shù)值以及功耗感知補償邏輯模塊的補償信號輸出端口輸出數(shù)值的組合,該組合指將三個輸出數(shù)值排列在一起組成一個新的數(shù)值。
權(quán)利要求
1.功耗感知的功耗平衡S盒單元電路,其特征在于,它的結(jié)構(gòu)如下s盒運算邏輯模塊和功耗感知補償邏輯模塊共同擁有一個操作數(shù)輸入端口,循環(huán)移位器的輸入端通過互連線分別連接S盒運算邏輯模塊的結(jié)果輸出端口和取反標志位輸出端口以及功耗感知補償邏輯模塊的補償信號輸出端口,循環(huán)移位器的輸出端通過互連線連接反向循環(huán)移位器的輸入端,反向循環(huán)移位器的輸出端口為結(jié)果輸出端口、取反標志位輸出端口和補償信號輸出端口,以上三個輸出端口通過互連線連接下一級電路;循環(huán)移位器和反向循環(huán)移位器采用相同的偏移量信號。
2.根據(jù)權(quán)利要求1所述的功耗感知的功耗平衡S盒單元電路,其特征在于,所述S盒運算邏輯模塊的取反標志位輸出端口輸出一位編碼;所述補償信號輸出端口輸出的編碼的位數(shù)等于S盒運算邏輯模塊的結(jié)果輸出端口輸出的編碼位數(shù)的一半。
3.根據(jù)權(quán)利要求1所述的功耗感知的功耗平衡S盒單元電路,其特征在于,所述操作數(shù)輸入端口連接1/n編碼邏輯模塊。
4.功耗感知的功耗平衡S盒單元電路的應(yīng)用方法,其特征在于,其工作流程如下操作數(shù)輸入端口從1/n編碼邏輯模塊接收編碼,然后將其輸入至S盒運算邏輯模塊和功耗感知補償邏輯模塊中;以上述編碼對應(yīng)的原碼為索引,在S-盒置換表中查出對應(yīng)的輸出數(shù)值out,當out的原碼的漢明重量小于或等于out的位數(shù)的1/2時,S盒運算邏輯模塊的結(jié)果輸出端口輸出out 的原碼,取反標志位輸出端口輸出0 ;當out的原碼的漢明重量大于out的位數(shù)的1/2時,S 盒運算邏輯模塊的結(jié)果輸出端口輸出out按位取反后的數(shù)值outl,取反標志位輸出端口輸出1 ;將out的原碼的漢明重量記為hl,將S盒運算邏輯模塊的取反標志位輸出數(shù)值的漢明重量記為h2,兩者相加所得數(shù)值為h ;功耗感知補償邏輯模塊的輸出的漢明重量等于out位數(shù)的1/2減去h ;循環(huán)移位器對綜合輸出數(shù)值進行循環(huán)移位操作,移位操作的偏移量是一個O到out位數(shù)的1. 5倍的隨機數(shù),所得數(shù)值采用反向循環(huán)移位器進行反向循環(huán)移位操作,反向移位操作的偏移量與移位操作的偏移量相同。
5.根據(jù)權(quán)利要求4所述的功耗感知的功耗平衡S盒單元電路的應(yīng)用方法,其特征在于, 所述綜合輸出數(shù)值為S盒運算邏輯模塊的結(jié)果輸出端口輸出數(shù)值和取反標志位輸出端口輸出數(shù)值以及功耗感知補償邏輯模塊的補償信號輸出端口輸出數(shù)值的組合。
全文摘要
本發(fā)明公開了屬于抗功耗攻擊技術(shù)領(lǐng)域的功耗感知的功耗平衡S盒單元電路及其應(yīng)用方法。功耗感知的功耗平衡S盒單元電路由S盒運算邏輯模塊、功耗感知補償邏輯模塊、循環(huán)移位器和反向循環(huán)移位器構(gòu)成;操作數(shù)輸入端口同時驅(qū)動S盒運算邏輯模塊和功耗感知補償邏輯模塊,S盒運算邏輯模塊根據(jù)輸入數(shù)據(jù)計算結(jié)果輸出端口的輸出數(shù)值和取反標志位輸出端口的輸出數(shù)值;功耗感知補償邏輯模塊根據(jù)輸入數(shù)據(jù)計算補償信號輸出端口的輸出數(shù)值;本發(fā)明的有益效果為本發(fā)明降低了功耗平衡的功耗開銷。并針對多位數(shù)據(jù)線的負載平衡難題,提出通過隨機交換互連線的方式實現(xiàn)多個數(shù)據(jù)線的等效負載平衡。
文檔編號G06K19/073GK102509145SQ20111029699
公開日2012年6月20日 申請日期2011年9月30日 優(yōu)先權(quán)日2011年9月30日
發(fā)明者李翔宇, 王飛宇 申請人:清華大學(xué)