一种抗功耗攻击的字节替换电路的制作方法

文档序号:7671568阅读:241来源:国知局
专利名称:一种抗功耗攻击的字节替换电路的制作方法
技术领域
本实用新型属于数字集成电路领域,具体涉及一种抗功耗攻击的字节替换电路,该字节替换电路专用于实现AES(高级数据加密标准)算法,尤其 适用于有可能受到功耗攻击的智能卡、电子密钥芯片和无线传感器等硬件口广叩o背景技术2000年10月2日,美国国家标准与技术研究所(NIST)正式宣布选 择Rijndael算法作为新的高级加密标准AES (Advanced Encryption Standard),以替代旧的数据加密标准DES (Data Encryption Standard)。 AES被设计成一种具有坚固的安全性能的加密算法,而且能够支持各种小型设 备。作为DES的继承者,AES自从被接纳为标准之日起就已经被工业界、 银行业和行政部门作为事实上的密码标准。AES加密算法流程一般包括字节替换、行移位变换、列混合变换和轮 密钥加操作,结尾轮稍有不同,没有列混合变换,其加密流程如图l所示, 其中轮逻辑如下数据经过S盒完成字节替换,然后进行4个32比特的行 移位变换,再经过列混合变换,最后与由初始密钥扩展出来的轮密钥进行 轮密钥加变换。实现密码算法的方式主要有两种, 一种是软件方式,另一种是硬件方 式。通过硬件方式实现密码算法时,又分为嵌入式方式、现场可编程门阵 列(FPGA)方式和专用集成电路(ASIC)方式。能够直接实现或支持密码 算法实现的ASIC芯片称为密码芯片,或信息安全芯片。针对密码芯片,传 统攻击方法采用数学手段进行攻击,密码破译者通常将密码算法当作一种 理想的数学对象进行建模,从而对密码系统的安全性进行分析。1990年代 早期引入的差分和线性分析技术是传统数学攻击方法的典型代表。他们利 用加密算法的统计特性来揭示算法的潜在弱点。另一种方法通过大量的数 学计算来搜索密码系统的密钥。该类攻击方法的一个直接的例子就是暴力 攻击尝试所有可能的密钥,直至找到正确的密钥。随着计算机性能的增 强,这种方法也越来越具有可行性,但是仍需要耗费大量的时间和物力, 而且如果密钥的长度增加,攻击难度则会急剧增加。目前,针对AES芯片的最有效的攻击方法是功耗分析。功耗分析是旁路攻击中的一种。它是指在加密设备运行时通过分析其功率消耗来推导出 加密系统所进行的操作和在操作中所涉及到的密钥参量。通常根据对功率消耗的不同分析方法,又分为简单功率分析(Simple Power Analysis, SPA)、差 分功率分析(Differential Power Analysis, DPA)和相关性功率分析(Correlation Power Analysis, CPA)。针对FPGA和ASIC的AES实现可以采用DPA或者 CPA攻击最终获得AES的密钥,已有文献报道,采用CPA方法成功针对 AES的ASIC进行了攻击。AES加密电路的总功耗包括字节替换单元、行移位变换单元、列混合 变换单元、轮密钥加、密钥扩展单元以及内部寄存器的功耗。通常结构的 AES加密电路中包含了字节替换单元的16个S盒和密钥扩展单元的4个S 盒,精简结构的AES加密电路中也包含了4个或8个S盒,消耗了电路中 大部分的能量;另一方面,字节替换单元直接与寄存器相连,它的输入被 时钟所同步,可以大幅度减少由于毛刺和噪声所引起的无关的功率消耗。 因此,字节替换单元的实现决定着加密芯片的面积和功耗的大小,同时也 对芯片的安全性有重要影响。S盒可以采用不同的硬件结构设计。最简单直接的就是査找表(LUT) 结构,事先计算好求逆过程中每个输入对应的输出,将GF(2S)上的求逆运 算加上仿射变换用査找一个8输入8输出的表来表示。Bertoni等人针对智能卡、移动通信设备及电池供电设备中低功耗的需 求,提出了 DSE (Decoder-Switch-Encoder)结构的S盒[参见Bertoni G" Macchetti M., Negri L., Fragneto P.. Power-efficient ASIC Synthesis of Cryptographic Sboxes, In Proceedings of the 14th ACM Great Lakes Symposium on VLSI (GLSVLSI 2004), pp. 277 -281. ACM Press, 2004 ],包括译码模块、交换模块和编码模块三个部分。其
中,交换模块只执行连线而不消耗能量;译码模块将传统的直接译码分解 成多级译码,并寻找合适的级数;编码模块也可以采用多级编码结构。采用传统的二叉决策图(Binary Decision Diagram, BDD)算法也可以 实现S盒[参见Bryant R. E.. Graph-Based algorithms for Boolean function manipulation. IEEE Trans. Computers, vol. C-35, no. 8, pp. 677 - 691, 1986.]。 BDD是一种表示布尔 表达式的有向无环图(DirectAcyclic Graph, DAG),其原理是将逻辑函数中 的所有变量作为BDD中的节点,按照自顶向下的方法,对每一节点的取值 按香农公式进行分叉选择。Wolkerstorfer等人提出了有限域分解的实现方法[Wolkerstorfer J., Oswald E., Lamberger M.. An ASIC Implementation of the AES SBoxes[C]. In Topics in Cryptology -CT-RSA 2002, vol. 2271 of Lecture Notes in Computer Science, pp.67-78. Springer-Verlag, 2002.],它充分利用了有限域上的数学运算规则。由于在GF(2"上做乘法逆 则相对简单,因此,把GF(2"看作GF(2,上的二次扩展,从而把GF(2"上 的每一个元素映射为GF(2"上的元素。最后,再通过一个逆映射把在GF(24) 上的计算结果转化到GF(2"上。这种结构占用最小的芯片面积。Marioka和Satoh提出的3级PPRM结构S盒是对有限域分解结构S盒 的改进采用了异或门来减小动态冒险的传播[S. Morioka and A. Satoh. An optimized S-Box circuit architecture for low power AES design. In Cryptographic Hardware and Embedded Systems — CHES 2002, vol. 2523 of Lecture Notes in Computer Science, pp. 172 - 186. Springer-Verlag,2002.];采用延时链来平衡路径的延时使信号到达门的 时间尽可能一致,以此来减小动态冒险引起的器件无效翻转,以达到降低 功耗的目的。一般情况下,字节替换单元直接由16个相同结构的8输入8输出的査 找表结构S盒组成。图2所示为采用单一的查找表结构实现S盒的原理图, 图3为其具体电路结构图(参见[l] S. Morioka and A. Satoh. A 10-Gbps Full-AES Crypto Design With a Twisted BDD S-Box Architecture. IEEE Transactions on Very Large Scale Integration(VLSI) Systems, vol.12, No.7, July 2004; [2]—种AES加解密电路中Sbox模块优化方法及优化电路,专利申 请号200510085160)。
对于CMOS电路,占总能耗比例最大的动态功耗取决于时钟变化时在该逻辑门引起消耗功率事件的概率、每时钟周期发生开关的平均电容值、 供电电压以及时钟频率。功耗分析攻击正是利用了动态能耗对数据处理的 依赖关系。实际电路的拓扑结构很复杂,动态能耗取决于整体翻转率的统 计特性和电路工艺。但可以简化认为电路的总能耗与整体翻转率有一定比 例关系。基于这种相关性建立起来的电路能耗模型能够反映当前处理数据 的变换导致瞬时电路能耗的改变,因此功耗攻击可以利用多次测量的能耗 曲线统计分析出电路中相应数据位的变化。在实际的功耗攻击中,如果对整128比特进行攻击,则需要进行2128 次测试,在实际攻击中是不可接受的。因此,常用的方法是仅对部分密钥 进行攻击,然后逐段累加。针对AES时,由通常的AES加密电路结构可知, 输入128比特的数据对应16个S盒,因此可以选择8位进行攻击,这样总 的测试次数为28X 16=212。图3所示通常结构的字节替换单元为同一结构 的16个S盒,其功耗特性一致,字节替换单元整体功耗和每个S盒的功耗 是一个简单的线性关系。这样,进行局部攻击时可以很容易攻击出正确的 结果。抗功耗攻击的AES设计有两种基本的方法 一种是采用特殊的电路逻 辑形式实现AES,如使用差分级联开关逻辑(DCVSL, Differential Cascade Voltage Switch Logic),或者波动动态数字逻辑(WDDL, Wave Dynamic Digital Logic)并且在版图设计中采用差分布线技巧,或者随机开关逻辑 (RSL, Random Switching Logic)等;也可以采用异步电路设计方法,增强 AES硬件电路的抗功耗攻击特性。另一种方法是采用掩蔽(mask)技术, 将AES中加密解密的中间结果随机化。以上方法的不足是实现较为复杂且 代价较高。如采用特殊的电路逻辑实现形式,基本的逻辑门电路需要增加 一些附加的电路用以平衡功耗,这样在面积和功耗上会有损失;另外一些 特殊的逻辑形式不与现有的芯片工艺和版图库兼容,这样设计和生产起来 需要付出额外的成本。另一方面,如果采用掩蔽技术,需要在芯片中增加 随机数产生器以及额外的掩蔽逻辑和恢复逻辑,这样使AES的硬件实现代 价增加而性能降低。发明内容本实用新型的目的在于提供一种抗功耗攻击的字节替换电路,该电路能够以较小的代价显著的增强AES加密电路的抗功耗攻击特性。本实用新型提供的一种抗功耗攻击的字节替换电路,其特征在于该 电路包括编码单元、随机开关单元、S盒单元和恢复单元;其中,所述编码 单元对输入数据进行运算,产生一个随机数,并将该随机数传送给随机开 关单元和恢复单元,控制随机开关单元和恢复单元的操作;随机开关单元接收n组8bit的轮数据和编码单元产生的随机数,并对n组输入数据进行 交换,使各组数据随机地进入异构S盒Sl Sn; S盒单元由n个S盒构成,n 的取值范围为4 16, n个S盒中至少有一个S盒的结构不同于其它S盒的 结构;S盒单元对接收的各组数据进行字节替换;恢复单元接受与随机开关 单元的相同的随机数以及S盒单元发送来的变换后的数据,将这些变换后 的数据恢复到随机开关单元交换之前的排列顺序。本实用新型电路采用不同结构的S盒单元代替传统的单一结构的S盒 单元,在S盒单元的输入端之前插入了开关单元,在S盒单元的输出端之 后添加了恢复单元。开关单元和恢复单元都由随机数控制,而随机数则由 编码单元对输入的轮数据进行运算后产生。不同于一般的掩蔽方法,在受 到攻击时,该字节替换电路结构能够巧妙利用攻击时的输入数据来进行选 择,不需要另外的随机数发生器。另一方面,增加输入随机明文的个数的 方法对本实用新型提出的电路的攻击是无效的。同时,此方法也不需要采 用特殊的电路结构和逻辑形式,从而能与已有的AES加密电路实现方式兼 容。本实用新型能够在与现有工艺兼容的情况下,以较小的代价显著的增 强字节替换电路的抗功耗攻击特性,采用本实用新型的技术方案后,能够 在AES硬件加密和解密时有效掩蔽密钥,从而使功耗攻击得不到正确的密 钥。

图1为AES加密算法的流程图;图2为现有技术字节替换单元的原理图;图3为现有技术字节替换单元的电路结构图;图4为本实用新型抗功耗攻击的字节替换电路的结构图(n-16时); 图5为本实用新型字节替换电路的一种应用实例; 图6为S盒单元的一种实施方法;图7为单一査找表结构的字节替换电路的AES攻击结果;图8为单一有限域分解结构的字节替换电路的AES攻击结果;图9为采用本实用新型的字节替换电路的AES攻击结果。
具体实施方式
在AES加密算法中的每一轮中都要用到字节替换。字节替换是AES算 法中唯一的非线性变换,它是一个砖匠置换,该置换包含一个作用在状态 字节上的S盒,对于状态的每一个字节,都经过S盒替换成一个对应的字节。 S盒是由下述两种变换的合成构造出来的 ;["]=/(g(")) (l)首先,取元素a在有限域GF (28)中的乘法逆g(a),规定'OO'的逆是它 自身;其次,再经过GF(2)上的仿射变换f得到结果。下面参照附图,以16个S盒为例详细说明本实用新型的抗功耗攻击的 字节替换电路。所给出的附图仅用于说明,并不限制本实用新型。如图4所示,本实用新型字节替换电路采用掩蔽技术抗功耗攻击,包 括编码单元l、随机开关单元2、 S盒单元3和恢复单元4。编码单元1对输入数据进行运算,产生一个随机数,并将该随机数传 送给随机开关单元2和恢复单元4,控制随机开关单元2和恢复单元4的操 作。编码单元1的输入为每一轮数据,输入数据所要进行的运算可以根据 电路结构任意设置。例如,可以选择128bit轮数据的低16位作为输入,将 这16个比特位上的"1"或"0"相加得到结果作为输出。此时,若轮数据 的低16位全为"1",则输出结果为16;若轮数据的低16位全为"0",则 输出结果为0。也可以直接选取轮数据的部分比特位直接构成一个二进制 数,作为输出结果。由于每次进入字节替换单元的轮数据不同,编码单元l 的输入数据一般都不同,其输出结果是一个随机数。如图4所示,随机开关单元2的输入分为两部分, 一部分为编码单元1 产生的随机数,另一部分为n组8bit的轮数据,n为S盒单元3中的S盒 的数量。当n=16时,随机开关单元2完成的功能是对16组输入数据进行 交换,使各组数据随机地进入异构S盒S1 S16,以达到掩蔽的目的。随机开关单元2所使用的开关函数的设计相当于对如下样本 {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15} 进行全排列,因此,共计有16!种排列结果。在实际的硬件电路实现时, 仅需要取其中的一部分结果构成可供选择的排列,这一部分结果根据编码 单元1输出的随机数进行选择。开关函数可以采用各种各样的交换方式。 例如,当开关函数采用循环右移,编码单元1输出的随机数为4时,随机 开关单元2将16组输入数据循环右移4次。这样,第1组输入数据移到了 第5组,进入S盒S5;第2组输入数据移到了第6组,进入S盒S6;其余 依此类推。S盒单元3由n个异构S盒构成,n=4 16, S盒的结构可以是査找表 结构、DSE (Decoder-Switch-Encoder)结构、二叉决策图(Binary Decision Diagram, BDD)结构、有限域分解结构、PPRM(Positive Polarity Reed-Muller)结构等结构。S盒单元3中至少有一个S盒的结构与其它S盒的结构不同。 这种结构代替了传统的单--结构的S盒,它们可以是由任何不同硬件结构 实现的S盒,排列顺序也可以任意组合,可用于通常结构或精简结构的AES 加密电路。S盒单元3对输入数据的进行字节替换。输入数据的每一个字节,都经 过S盒替换成一个对应的字节。对各种不同结构的S盒而言,其fi更件电路 结构不同,所产生功耗也不同,故不能将此S盒单元所产生的功耗等效为n 个相同S盒产生功耗的累加。因此只要对这些不同结构的S盒进行随机选 择,就可以达到抗功耗攻击的效果。
恢复单元4是随机开关单元2的一个逆过程。恢复单元4和随机开关 单元2的随机数输入值相同,经过随机开关单元2交换后的n组输入数据, 在经过S盒单元3变换后传送给恢复单元4,恢复单元4将这些数据恢复到 随机开关单元2交换之前的排列顺序,以保证后续操作的正确性。如上文 随机开关单元2的开关函数采用循环右移时,恢复单元4则采用循环左移。实例如图5所示,编码单元1选取轮数据的低16位逐位相加得到随机数输 出,开关单元2的函数设计为循环右移,恢复单元4的函数相应地设计为 循环左移,异构S盒S1-S16采用上文中图6所示的5种S盒结构和排列顺 序。如上文所述,当编码单元1输出的随机数为4时,第1组8bit数据输 入随机开关单元2,经循环右移4次进入S5,完成字节替换变换后进入恢 复单元4,再循环左移4次,恢复为第1组处理后的8bit数据。同样,第2 组,第3组,…,第16组输入数据都将进行类似流程的操作。此时的编码 单元1为加法器结构,随机开关单元2为一个17输入16输出的循环右移 结构,恢复单元4为一个17输入16输出的循环左移结构。与通常的字节替换电路相比,该发明字节替换电路重点在于采用了异 构S盒S1 S16代替传统的单 一结构的S盒,增加了由轮数据控制的编码单 元,与随机开关单元和恢复单元一起作用,使S1 S16的顺序随着输入轮数 据的变化而变化,这样整个AES加密电路功耗呈现随机化的特点,因此可 以达到抗功耗攻击的效果。且该发明电路能够巧妙利用攻击时输入的轮数 据来产生随机数以实现掩蔽,而不需要在芯片中增加随机数产生器以及额 外的掩蔽逻辑和恢复逻辑,从而可降低实现成本。AES解密电路也可以采用与AES加密电路中相似的字节替换电路,采 用不同结构的S盒代替传统的同种结构S盒,并用密文编码作为开关单元 和恢复单元的控制信号,具体实现方法与AES加密电路类似。另外,由于 密钥扩展单元也需要4个S盒,因此在密钥扩展单元亦可采用本实用新型 所提出的异构字节替换电路,以增强AES的硬件电路的抗功耗攻击的效果。该发明的技术效果实验如下:采用AES标准算法实现AES加解密引擎,
完成硬件描述语言的设计和仿真后,采用UMC 0.25 u m工艺进行电路综合 和实现。进行了 CPA攻击实验[S.B.Ors, F.Gurkaynak, E. Oswald, B. Preneel "Power-Analysis Attack on an ASIC AES implementation", in the proceedings of ITCC 2004, Las Vegas, April 5-7 2004.],部分密钥为0X9C (156)时,输入1000个随机明 文,进行功耗攻击。传统的字节替换电路实现方法均可以被攻击,如图7、图8所示为传统 的单一结构S盒实现的AES加密电路结构被攻击时的结果。图7中字节替 换电路采用16个单一的査找表结构S盒,图8中字节替换电路采用16个 单一的有限域分解结构S盒。由图中可以看出,相关系数最大值处对应的 猜测密钥值正是0X9C (156),这表明正确的部分密钥值已经被成功攻击出 来,并且多次仿真攻击实验的结果表明,只要随机输入明文数目在400以 上,所有的单一结构S盒都能被成功攻击出密钥值。如图9所示为采用本实用新型提出的字节替换电路的AES加密电路结 构被攻击时的结果,可以看出密钥0X9C (156)己经被成功掩蔽。此时, 相关系数的最高点显著偏离0X9C,因此功耗攻击将得不到正确的部分密 钥。实验对不同的密钥进行了攻击,均证明本字节替换电路对功耗攻击防 护的有效性。攻击实验同时证明,由于电路采用的特殊结构,增加随机明 文的个数同样无法对采用本实用新型提出的字节替换电路实现的AES加密 电路构成威胁。
权利要求1、 一种抗功耗攻击的字节替换电路,其特征在于该电路包括编码单 元(l)、随机开关单元(2)、 S盒单元(3)和恢复单元(4),其中,所述编码单元(l)对输入数据进行运算,产生一个随机数,并将该随机 数传送给随机开关单元(2)和恢复单元(4),控制随机开关单元(2)和恢复单元 (4)的操作;随机开关单元(2)接收n组8bit的轮数据和编码单元(l)产生的随机数, 并对n组输入数据进行交换,使各组数据随机地进入异构S盒Sl Sn;S盒单元(3)由n个S盒构成,n的取值范围为4 16, n个S盒中至少 有一个S盒的结构不同于其它S盒的结构;S盒单元(3)对接收的各组数据 进行字节替换;恢复单元(4)接受与随机开关单元(2)的相同的随机数以及S盒单元(3)发 送来的变换后的数据,将这些变换后的数据恢复到随机开关单元(2)交换之 前的排列顺序。
专利摘要本实用新型公开了一种抗功耗攻击的字节替换电路,包括编码单元、随机开关单元、S盒单元和恢复单元,S盒单元由4~16个异构S盒组成。本实用新型采用异构S盒单元代替传统的单一结构的S盒单元,在S盒单元的输入端前插入开关单元,其输出端后添加恢复单元。在受到攻击时,本实用新型能够巧妙利用攻击时的输入数据来进行选择,不需要另外的随机数发生器。另一方面,增加输入随机明文的个数的方法对本实用新型提出的电路的攻击是无效的。本实用新型不需要采用特殊的电路结构和逻辑形式,能与已有的AES加密电路实现方式兼容。本实用新型能够以较小的代价显著的增强字节替换电路的抗功耗攻击特性,能够在AES硬件加密和解密时有效掩蔽密钥,使功耗攻击得不到正确的密钥。
文档编号H04L9/06GK201039199SQ20072008417
公开日2008年3月19日 申请日期2007年4月13日 优先权日2007年4月13日
发明者菊 刘, 刘政林, 邹雪城, 陈毅成 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1