CN102509145A - 功耗感知的功耗平衡s盒单元电路及其应用方法 - Google Patents
功耗感知的功耗平衡s盒单元电路及其应用方法 Download PDFInfo
- Publication number
- CN102509145A CN102509145A CN2011102969957A CN201110296995A CN102509145A CN 102509145 A CN102509145 A CN 102509145A CN 2011102969957 A CN2011102969957 A CN 2011102969957A CN 201110296995 A CN201110296995 A CN 201110296995A CN 102509145 A CN102509145 A CN 102509145A
- Authority
- CN
- China
- Prior art keywords
- output port
- output
- power
- power consumption
- numerical value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Power Sources (AREA)
Abstract
本发明公开了属于抗功耗攻击技术领域的功耗感知的功耗平衡S盒单元电路及其应用方法。功耗感知的功耗平衡S盒单元电路由S盒运算逻辑模块、功耗感知补偿逻辑模块、循环移位器和反向循环移位器构成;操作数输入端口同时驱动S盒运算逻辑模块和功耗感知补偿逻辑模块,S盒运算逻辑模块根据输入数据计算结果输出端口的输出数值和取反标志位输出端口的输出数值;功耗感知补偿逻辑模块根据输入数据计算补偿信号输出端口的输出数值;本发明的有益效果为:本发明降低了功耗平衡的功耗开销。并针对多位数据线的负载平衡难题,提出通过随机交换互连线的方式实现多个数据线的等效负载平衡。
Description
技术领域
本发明属于抗功耗攻击技术领域,特别涉及功耗感知的功耗平衡S盒单元电路及其应用方法。
背景技术
功耗分析攻击是针对密码算法芯片特别是智能IC卡的有效侧信道攻击手段,对金融、安防等重要领域构成了威胁,它主要的工作原理为:密码算法(在硬件中实现时)产生的功率消耗与运算的中间结果的数值相关,主要体现为与中间结果数据变化前后的汉明距离近似成正比。由于一般情况下数据变化前的数值很难确定,所以在实际攻击中往往以中间结果的汉明重量作为数据的特征变量(近似认为数据的汉明重量与功耗成正比)。所谓的汉明重量是指数值以二进制表示时1的个数,两个数的汉明距离即等于两个数值均以二进制表示时取值不同的位数(两个数值异或的汉明重量)。
分组密码算法又称对称密码算法,也就是加密密钥和解密密钥相同的密码算法,S盒运算是一类在现代分组密码算法中非常普遍的运算操作,它的本质是一种预定义的非线性运算,对密码算法的安全性具有重要作用,也是功耗分析攻击的主要目标,往往是分组密码算法电路设计中最需要保护的。所谓S盒运算是一种置换操作,一般输入和输出具有相同的位数,其函数可以用一个查找表来描述,具体运算过程如下:输入对应表格的行数和/或列数,该行列坐标所对应的表格内容就是输出数值;表格的内容不同,S盒的函数也不同;这样的查找表运算在数字电路实现时可以采用一个组合逻辑电路实现,也可以采用一个存放有查找表内容的存储器实现。由于S盒运算是非线性运算,因此往往具有较大开销,特别是在进行功耗平衡设计和掩码保护时通常是面积和功耗开销的主要来源。
功耗平衡方法使得电路在各种数据输入的情况下产生的功耗情况相同,消除了数据与功耗间的相关性,是防御功耗分析攻击的重要方法,具有很高的安全强度,是抵抗功耗攻击的有效措施之一。现有功耗平衡方法大多采用基于双轨编码的对称型逻辑电路(如WDDL,SABL等),数据的汉明距离保持为一常数,与功耗无关;上述电路的面积相当于普通电路的两倍,而且,无论数据是何种取值,汉明距离都等于数据位数,也就是说,功耗平衡的结果总是近似于普通电路时各种输入情况下功耗的最大值;在实际运用中,由于电路开销的存在,上述电路功耗值要大于普通电路的最大功耗。这样大的功耗开销使得功耗平衡技术无法在低功耗应用中采用,例如,非接触式智能卡。其它的功耗攻击防御措施(用随机数(掩码)保护中间结果,随机插入延时等)也同样存在冗余的运算操作和时钟周期,最终都使得功耗水平远高于普通设计。
除此之外,采用功耗平衡技术需要满足平衡的各个数据线的负载都相同,这一要求对于双轨编码数据的两条信号线的匹配程度要求很高,如果需要满足更多位数据线的负载都相同,则不可能在实际工程实现。
发明内容
本发明针对上述缺陷公开了功耗感知的功耗平衡S盒单元电路及其应用方法,其中:功耗感知的功耗平衡S盒单元电路的结构如下:S盒运算逻辑模块和功耗感知补偿逻辑模块共同拥有一个操作数输入端口,循环移位器的输入端通过互连线分别连接S盒运算逻辑模块的结果输出端口和取反标志位输出端口以及功耗感知补偿逻辑模块的补偿信号输出端口,循环移位器的输出端通过互连线连接反向循环移位器的输入端,反向循环移位器的输出端口为结果输出端口、取反标志位输出端口和补偿信号输出端口,以上三个输出端口通过互连线连接下一级电路;循环移位器和反向循环移位器采用相同的偏移量信号。
所述S盒运算逻辑模块的取反标志位输出端口输出一位编码;
所述补偿信号输出端口输出的编码的位数等于S盒运算逻辑模块的结果输出端口输出的编码位数的一半。
所述操作数输入端口连接1/n编码逻辑模块。
功耗感知的功耗平衡S盒单元电路的应用方法的工作流程如下:操作数输入端口从1/n编码逻辑模块接收编码,然后将其输入至S盒运算逻辑模块和功耗感知补偿逻辑模块中;
以上述编码对应的原码为索引,在S-盒置换表中查出对应的输出数值out,当out的原码的汉明重量小于或等于out的位数的1/2时,S盒运算逻辑模块的结果输出端口输出out的原码,取反标志位输出端口输出0;当out的原码的汉明重量大于out的位数的1/2时,S盒运算逻辑模块的结果输出端口输出out按位取反后的数值out1,取反标志位输出端口输出1;
将out的原码的汉明重量记为h1,将S盒运算逻辑模块的取反标志位输出数值的汉明重量记为h2,两者相加所得数值为h;功耗感知补偿逻辑模块的输出的汉明重量等于out位数的1/2减去h;
循环移位器对综合输出数值进行循环移位操作,移位操作的偏移量是一个0到out位数的1.5倍的随机数,所得数值采用反向循环移位器进行反向循环移位操作,反向移位操作的偏移量与移位操作的偏移量相同。
所述综合输出数值为S盒运算逻辑模块的结果输出端口输出数值和取反标志位输出端口输出数值以及功耗感知补偿逻辑模块的补偿信号输出端口输出数值的组合。
本发明的有益效果为:本发明针对S盒电路的保护问题,提出了一种新型的功耗平衡方法,该方法利用功耗感知技术——根据输入数据预测实际输出结果的汉明重量,并产生相应的补偿翻转,实现了功耗平衡后的功耗水平低于普通设计的最大值的目标,从而大大降低了功耗平衡的功耗开销。并针对多位数据线的负载平衡难题,提出通过随机交换互连线的方式实现多个数据线的等效负载平衡。本发明可用于包含S盒类操作的密码算法芯片或IC卡。
附图说明
图1是本发明的电路结构示意图;
图2为AES算法的Srd运算结构框图;
具体实施方式
下面结合附图对本发明进一步详细说明:
如图1所示,功耗感知的功耗平衡S盒单元电路的结构如下:S盒运算逻辑模块和功耗感知补偿逻辑模块共同拥有一个操作数输入端口,循环移位器的输入端通过互连线分别连接S盒运算逻辑模块的结果输出端口和取反标志位输出端口以及功耗感知补偿逻辑模块的补偿信号输出端口,循环移位器的输出端通过互连线连接反向循环移位器的输入端,反向循环移位器的输出端口为结果输出端口、取反标志位输出端口和补偿信号输出端口,以上三个输出端口通过互连线连接下一级电路。循环移位器和反向循环移位器采用相同的偏移量信号。
S盒运算逻辑模块的取反标志位输出端口输出一位编码;
补偿信号输出端口输出的编码的位数等于S盒运算逻辑模块的结果输出端口输出的编码位数的一半。
操作数输入端口连接1/n编码逻辑模块(1/n编码逻辑模块对二进制数值进行1/n编码操作)。
功耗感知的功耗平衡S盒单元电路的应用方法的工作流程如下:操作数输入端口从1/n编码逻辑模块接收编码,然后将其输入至S盒运算逻辑模块和功耗感知补偿逻辑模块中;
以上述编码对应的原码为索引,在S-盒置换表中查出对应的输出数值out,当out的原码的汉明重量小于或等于out的位数的1/2时,S盒运算逻辑模块的结果输出端口输出out的原码,取反标志位输出端口输出0;当out的原码的汉明重量大于out的位数的1/2时,S盒运算逻辑模块的结果输出端口输出out按位取反后的数值out1,取反标志位输出端口输出1;
将out的原码的汉明重量记为h1,将S盒运算逻辑模块的取反标志位输出数值的汉明重量记为h2,两者相加所得数值为h;功耗感知补偿逻辑模块的输出的汉明重量等于out位数的1/2减去h;
循环移位器对综合输出数值进行循环移位操作,移位操作的偏移量是一个0到out位数的1.5倍的随机数,所得数值采用反向循环移位器进行反向循环移位操作(与上述的移位操作方向相反),反向移位操作的偏移量与移位操作的偏移量相同,使得反向循环移位器的所有输出端口的平均互连线负载都相同。
综合输出数值为S盒运算逻辑模块的结果输出端口输出数值和取反标志位输出端口输出数值以及功耗感知补偿逻辑模块的补偿信号输出端口输出数值的组合。(该组合指将三个输出数值排列在一起组成一个新的数值)
实施例:
如图2所示,AES算法轮变换部分的Srd运算是一个8位输入8位输出的S盒运算,对于任意8位输入in,其对应的输出是置换表中以in为索引的表项的数值(也是8位)。
功耗感知的功耗平衡Srd运算单元的结构如下:S盒运算逻辑模块和功耗感知补偿逻辑模块共同拥有一个操作数输入端口,循环左移器的输入端通过互连线分别连接S盒运算逻辑模块的结果输出端口和取反标志位输出端口以及功耗感知补偿逻辑模块的补偿信号输出端口,循环左移器的输出端通过互连线连接反向循环移位器的输入端,循环右移器的输出端口为结果输出端口、取反标志位输出端口和补偿信号输出端口,以上三者通过互连线连接下一级电路;循环移位器和反向循环移位器采用相同的偏移量信号。
S盒运算逻辑模块的取反标志位输出端口输出一位编码;
补偿信号输出端口输出的编码的位数等于S盒运算逻辑模块的结果输出端口输出的编码位数的一半。
操作数输入端口同时驱动S盒运算逻辑模块和功耗感知补偿逻辑模块,S盒运算逻辑模块根据输入数据计算结果输出端口的输出数值(8位)和取反标志位输出端口的输出数值(1位);功耗感知补偿逻辑模块根据输入数据计算补偿信号输出端口的输出数值(4位),因此输出数值的位数共计13位。为了提高逻辑电路的对称性,首先对输入数值进行1/4编码,然后再通过操作数输入端口输入至S盒运算逻辑模块和功耗感知补偿逻辑模块。(1/4编码的规则是把原码编码中的相邻2位映射成4位的编码,每种取值对应编码后的1位,原码取值对应的位等于1,其它3位则都等于0,这样的编码方式对于任何数值汉明重量都等于1,也可以看作是4位的one-hot编码。)
这样,一个功耗感知的功耗平衡Srd运算单元有16位输入信号,用in[0]~in[15]表示,in[0]~in[3]为一组,对应原码表示的输入数值的第0位和第1位;in[4]~in[7]对应对应原码表示的输入数值的第1位和第2位;……,依次类推,共有4组信号。
S-盒运算逻辑也可以表示成一个新的置换表,新置换表的生成方法如下:
根据16位1/4编码的索引数值计算出对应的8位原码表示(如(0001 0010 0100 1000)2对应于原码表示的输入数值是(00011011)2),以原码表示为索引,在S-盒置换表中查出对应的输出数值,用out表示,如果out的汉明重量小于或等于4,S盒运算逻辑模块的结果输出端口输出out的原码,取反标志位输出端口输出0,两个输出端口输出数值将作为新置换表的内容;否则,S盒运算逻辑模块的结果输出端口输出out按位取反后的数值out1,取反标志位输出端口输出1;两个输出端口输出数值将作为新置换表的内容;
功耗感知补偿逻辑模块的计算过程(也可以看作补偿逻辑置换表的形成过程)如下:根据16位1/4编码的索引数值查找其在新置换表中的对应数值(结果输出端口的输出数值和取反标志位输出端口的输出数值排列在一起形成的数值),用out’表示,out’的汉明重量用h表示,则应使补偿信号输出端口的输出数值的4-h位取1,其余h位取0,补偿信号输出端口的输出数值将作为补偿逻辑置换表的内容。
上述的S盒运算的新置换表和补偿逻辑置换表的计算过程只需预先计算一次。在电路实现时,把它们作为逻辑电路的真值表,利用逻辑综合工具可以直接映射成组合逻辑电路。
为了实现功耗感知的功耗平衡AES算法Srd运算的所有输出端口的负载平均平衡,在上述方案中应在分别在功耗感知的功耗平衡Srd运算单元与下一级电路(如MixColumn运算单元)之间的互连线两端插入循环左移器和循环右移器,循环左移器对综合输出数值进行循环左移位操作,循环右移器对综合输出数值进行循环右移位操作,循环左移器和循环右移器的偏移量受同一个信号控制,该信号是一个4位信号,由随机数发生器产生,取值在0-12的范围内均匀分布,每次计算偏移量信号的值改变一次。综合输出数值为S盒运算逻辑模块的结果输出端口输出数值和取反标志位输出端口输出数值以及功耗感知补偿逻辑模块的补偿信号输出端口输出数值的组合,该组合指将三个输出数值排列在一起组成一个新的数值。
Claims (5)
1.功耗感知的功耗平衡S盒单元电路,其特征在于,它的结构如下:S盒运算逻辑模块和功耗感知补偿逻辑模块共同拥有一个操作数输入端口,循环移位器的输入端通过互连线分别连接S盒运算逻辑模块的结果输出端口和取反标志位输出端口以及功耗感知补偿逻辑模块的补偿信号输出端口,循环移位器的输出端通过互连线连接反向循环移位器的输入端,反向循环移位器的输出端口为结果输出端口、取反标志位输出端口和补偿信号输出端口,以上三个输出端口通过互连线连接下一级电路;循环移位器和反向循环移位器采用相同的偏移量信号。
2.根据权利要求1所述的功耗感知的功耗平衡S盒单元电路,其特征在于,所述S盒运算逻辑模块的取反标志位输出端口输出一位编码;
所述补偿信号输出端口输出的编码的位数等于S盒运算逻辑模块的结果输出端口输出的编码位数的一半。
3.根据权利要求1所述的功耗感知的功耗平衡S盒单元电路,其特征在于,所述操作数输入端口连接1/n编码逻辑模块。
4.功耗感知的功耗平衡S盒单元电路的应用方法,其特征在于,其工作流程如下:操作数输入端口从1/n编码逻辑模块接收编码,然后将其输入至S盒运算逻辑模块和功耗感知补偿逻辑模块中;
以上述编码对应的原码为索引,在S-盒置换表中查出对应的输出数值out,当out的原码的汉明重量小于或等于out的位数的1/2时,S盒运算逻辑模块的结果输出端口输出out的原码,取反标志位输出端口输出0;当out的原码的汉明重量大于out的位数的1/2时,S盒运算逻辑模块的结果输出端口输出out按位取反后的数值out1,取反标志位输出端口输出1;
将out的原码的汉明重量记为h1,将S盒运算逻辑模块的取反标志位输出数值的汉明重量记为h2,两者相加所得数值为h;功耗感知补偿逻辑模块的输出的汉明重量等于out位数的1/2减去h;
循环移位器对综合输出数值进行循环移位操作,移位操作的偏移量是一个0到out位数的1.5倍的随机数,所得数值采用反向循环移位器进行反向循环移位操作,反向移位操作的偏移量与移位操作的偏移量相同。
5.根据权利要求4所述的功耗感知的功耗平衡S盒单元电路的应用方法,其特征在于,所述综合输出数值为S盒运算逻辑模块的结果输出端口输出数值和取反标志位输出端口输出数值以及功耗感知补偿逻辑模块的补偿信号输出端口输出数值的组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110296995.7A CN102509145B (zh) | 2011-09-30 | 2011-09-30 | 功耗感知的功耗平衡s盒单元电路及其应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110296995.7A CN102509145B (zh) | 2011-09-30 | 2011-09-30 | 功耗感知的功耗平衡s盒单元电路及其应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102509145A true CN102509145A (zh) | 2012-06-20 |
CN102509145B CN102509145B (zh) | 2014-09-24 |
Family
ID=46221225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110296995.7A Active CN102509145B (zh) | 2011-09-30 | 2011-09-30 | 功耗感知的功耗平衡s盒单元电路及其应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102509145B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158651A (zh) * | 2014-07-15 | 2014-11-19 | 南京航空航天大学 | 基于数据冗余实时检错机制的全展开结构aes加/解密电路 |
CN104158652A (zh) * | 2014-07-15 | 2014-11-19 | 南京航空航天大学 | 基于数据冗余实时检错机制的循环展开结构aes加/解密电路 |
CN104700047A (zh) * | 2014-08-27 | 2015-06-10 | 北京中电华大电子设计有限责任公司 | 一种抵抗信息泄漏的安全设计方法 |
CN107682020A (zh) * | 2017-10-26 | 2018-02-09 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080019524A1 (en) * | 2006-06-29 | 2008-01-24 | Kim Moo S | Apparatus and method for low power aes cryptographic circuit for embedded system |
CN201039199Y (zh) * | 2007-04-13 | 2008-03-19 | 华中科技大学 | 一种抗功耗攻击的字节替换电路 |
CN101488846A (zh) * | 2009-02-24 | 2009-07-22 | 深圳先进技术研究院 | 密码保护方法和系统 |
-
2011
- 2011-09-30 CN CN201110296995.7A patent/CN102509145B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080019524A1 (en) * | 2006-06-29 | 2008-01-24 | Kim Moo S | Apparatus and method for low power aes cryptographic circuit for embedded system |
CN201039199Y (zh) * | 2007-04-13 | 2008-03-19 | 华中科技大学 | 一种抗功耗攻击的字节替换电路 |
CN101488846A (zh) * | 2009-02-24 | 2009-07-22 | 深圳先进技术研究院 | 密码保护方法和系统 |
Non-Patent Citations (1)
Title |
---|
FRAIDY BOUESSE等人: "《Cryptographic Hardware and Embedded Systems》", 31 December 2006, SPRINGER * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158651A (zh) * | 2014-07-15 | 2014-11-19 | 南京航空航天大学 | 基于数据冗余实时检错机制的全展开结构aes加/解密电路 |
CN104158652A (zh) * | 2014-07-15 | 2014-11-19 | 南京航空航天大学 | 基于数据冗余实时检错机制的循环展开结构aes加/解密电路 |
CN104158651B (zh) * | 2014-07-15 | 2017-05-24 | 南京航空航天大学 | 基于数据冗余实时检错机制的全展开结构aes加/解密电路 |
CN104158652B (zh) * | 2014-07-15 | 2017-05-24 | 南京航空航天大学 | 基于数据冗余实时检错机制的循环展开结构aes加/解密电路 |
CN104700047A (zh) * | 2014-08-27 | 2015-06-10 | 北京中电华大电子设计有限责任公司 | 一种抵抗信息泄漏的安全设计方法 |
CN107682020A (zh) * | 2017-10-26 | 2018-02-09 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
CN107682020B (zh) * | 2017-10-26 | 2020-09-04 | 北京邮电大学 | 一种基于Turbo码的编码、解码方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102509145B (zh) | 2014-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104933008B (zh) | 可重构系统和可重构阵列结构及其应用 | |
CN101521504B (zh) | 一种用于低功耗加密系统的可逆逻辑单元的实现方法 | |
CN102509145B (zh) | 功耗感知的功耗平衡s盒单元电路及其应用方法 | |
CN101834720B (zh) | 加密处理设备 | |
CN102509036B (zh) | 一种可重构密码处理器及抗功耗攻击方法 | |
CN101197668B (zh) | 基于随机化带符号标量乘法的椭圆曲线抗旁路攻击方法 | |
CN105656619B (zh) | 一种aes加密方法和基于其的抗功耗攻击方法 | |
CN102707924B (zh) | 一种rfid智能卡芯片的rsa协处理器 | |
CN101241482B (zh) | 数据总线的转位装置及执行数据总线转位的方法 | |
CN103067155A (zh) | 一种防止基于功耗分析的des算法攻击的方法及测试电路 | |
CN103795527A (zh) | 防止基于功耗分析攻击aes算法的软件掩码防护方案 | |
CN107204841B (zh) | 一种抵御差分功耗攻击的分组密码多s盒实现的方法 | |
CN101763241B (zh) | 实现ecc密码体制中签名算法的大整数求模运算装置及求模方法 | |
CN103916236A (zh) | 面向aes算法的抗功耗攻击方法及电路实现 | |
CN101547087B (zh) | 一种基于可逆逻辑门的des加密系统的控制单元设计方法 | |
CN101488846A (zh) | 密码保护方法和系统 | |
CN103731822A (zh) | 一种祖冲之算法的实现系统及其方法 | |
CN103853524A (zh) | 一种乘法器装置和实现乘法运算的方法 | |
CN106452725A (zh) | 一种基于寄存器掩码的面向aes算法的抗功耗攻击方法 | |
CN103412737A (zh) | 基4-Booth编码方法及门电路和流水线大数乘法器 | |
CN1957384B (zh) | 电子元件和数据处理方法 | |
CN104158651A (zh) | 基于数据冗余实时检错机制的全展开结构aes加/解密电路 | |
CN103916235A (zh) | 随机插入伪轮运算对的抗功耗攻击方法 | |
CN104158652A (zh) | 基于数据冗余实时检错机制的循环展开结构aes加/解密电路 | |
CN105024806A (zh) | 一种基于可逆逻辑门的加密系统的模逆电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |