专利名称:抗功耗攻击aes模块功能设计的方法和电路的制作方法
技术领域:
本发明涉及集成电路设计,尤其涉及在芯片设计中实现抗功耗攻击AES模块功能的设计。
背景技术:
目前对AES (ADVANCED ENCRYPTION STANDARD高级加密标准)算法的防护技术主要有对算法实现改进,通过向算法中引入随机产生的掩码来隐藏中间结果;增加噪声产生电路,以此来增大功耗攻击的难度。掩码抗攻击技术Kocher等人提出的功耗攻击利用了中间结果I的值可以通过选择函数进行预测的性质。当隐藏中间结果后,这种攻击就变得无能为力了,这种隐藏方法就是掩码技术。算术掩码和布尔掩码是两种最常用的掩码手段。很典型的一种算术掩码是乘法掩码,采用一个随机数m模乘中间结果a得到新的中间结果b = am(modn),使用b和m作为算法执行过程中的输入量,从而达到隐藏真正的中间结果a的目的。布尔掩码是通过与随机数m相异或来隐藏a,即b=a m。2001年,Akkar和Giraud最早将掩码技术用于AES算法防护,算法的整个过程采用异或掩码X,在SubBytes变换时添加了一个乘法掩码y, SubBytes变换是通过在有限域上的一系列加法、乘法、以及求逆运算来实现的,保证了变换前后掩码一致。 2002年Trichina进一步将这种方法简化,使用相同的随机数作为异或掩码和乘法掩码。 C. Tymen等人采用了类似的方法证明了所有中间结果的hamming weight具有相I叫的分布概率,与明文和密钥不相关。但是这种实现比较复杂,目前还没有基于这种掩码防护方案的具体算法实现。2004年,Norber Pranmstaller提出了一种AES算法的ASIC实现方案,采用一种新的掩码方案,SubBytes的实现是通过把有限域中的求逆运算转换成上的一系列运算得到,实现抗DPA (DIFFERENTIAL POWER ANALYSIS差分功耗分析)攻击和O值攻击。2006 年,E. Osward等人对采用掩码防护的AES算法在智能卡上的软件实现成功进行了二阶DPA 攻击,实验证明二阶DPA攻击对AES算法的掩码防护软件实现构成了巨大威胁。Christoph Herbst等人也实现了智能卡上的AES算法,在该实现中对所有的中间结果进行掩码,并对算法开始和最后的操作进行随机化防护,可以防止SPA、DPA攻击,有效抗HODPA(高阶差分功耗分析),这里所说的有效抗HODPA是指大幅增加HODPA的难度。2007年,S. Tillich等人在32位处理器上采用掩码和随机化相结合的技术实现了 AES算法软件防护抗功耗攻击。噪声电路通过引入噪声减小信噪比来增大功耗攻击的难度。信噪比越低,对假设功耗模型的正确猜测与器件的真实功耗的相关性就越小。随着数字信号处理技术的发展,常规随机噪声可以通过模式识别、白适应滤波、小波分析等技术手段滤除,增加噪声只是增加了功耗攻击所需要的样本数。目前,抗功耗攻击技术的主要发展方向如下(I)研究更加有效抗HODPA攻击的掩码技术。目前的掩码技术可以抗DPA攻击,结合了掩码和随机化技术的AES算法可以有效抗HODPA攻击。随着插入的伪操作的数量的增大,成功实施HODPA攻击所需要的样本数大量增加。同时算法执行速度、所需要的存储空间都会受到较大影响。在实际应用中,执行速度、存储空间受到一定限制,因此,需要研究更加有效抗HODPA攻击的掩码技术。(2)研究具有高防护性能的噪声防护技术。引入随机噪声是一种普遍使用的抗功耗攻击防护技术,但是随机噪声总是服从一定的概率分布,攻击者可以借助现代信号处理技术尽可能的滤除噪声,引入常规随机噪声只是增加了功耗攻击所需的样本数。(3)研究新型的功耗恒定逻辑单元。设计特定逻辑单元抗功耗攻击是以开发新的功耗恒定逻辑单元为基础的,其开发周期长、成本高、风险大,而且这种防护手段目前普遍存在功耗、芯片面积开销较大的缺陷,例如采用双轨动态逻辑单元实现在功耗和面积上是采用静态标准单元库实现的两倍。但是这种防护技术不受特定的算法限制,通用性强,许多机构已经投入到这方面的研究。现有的双轨动态逻辑,采用正向逻辑,原电路和辅助电路之间有交叉连接(cross connection)使得其在FPGA (FIELD-PROGRAMMABLE GATE ARRAY,现场可编程门阵列)上无法实现功耗平衡而不能抵抗DPA的攻击。
发明内容
本发明要解决的技术问题在于克服上述现有技术的不足,而提出一种采用双轨动态逻辑在FPGA上实现的、能抵抗DPA的攻击的设计。本发明解决上述技术问题所采用的技术手段包括,提出一种抗功耗攻击AES模块功能设计的方法,该方法包括构建用以实现AES模块功能的一原电路;构建用以遮掩该原电路的功耗的一辅助电路,使该辅助电路与原电路的结构完全匹配,但具有与原电路相反的逻辑,从而使该辅助电路与原电路相互之间不存在交叉连接;使该辅助电路与原电路同步工作,从而可通过动态双轨逻辑实现AES模块的抗功耗攻击。在每个时钟周期内,该原电路和辅助电路两者之中只有一个电路的门输出有0-1 之间的变换。该原电路和辅助电路对电容的负载能力是相同的。该辅助电路具有与原电路相反的逻辑是指在工作过程中该辅助电路输出的值总是与该原电路输出的值相反。构建该辅助电路的过程具体包括设计预充电电路;复制该原电路,得到与该原电路的结构完全的一初始辅助电路,该初始辅助电路的位置的布置,要确保该初始辅助电路和原电路耗费相同的路径资源;对该初始辅助电路进行改造,使其输出值与原电路的输出值相反,得到该辅助电路的设计。该方法还包括约束设计的面积,在每个寄存器旁边留下可以放置预充电电路的空间。
该方法还包括将该原电路中的IO连接移除,在完成该辅助电路的横行之后重新连接。该预充电电路可以由具有与原电路的相反逻辑的电路来实现。该预充电电路通过使用异步复位锁存器使得显示查找表的输出端口在预充电阶段一直保持逻辑0,如果使用了触发器,那么预充电电路必须放在离该触发器尽可能近的位置,以保证两层之间的路径最小化。本发明解决上述技术问题所采用的技术手段还包括,提出一种抗功耗攻击AES模块功能设计的电路,该电路是采用上述的方法实现的具有抗功耗攻击AES模块功能的FPGA 电路。与现有技术相比,本发明的抗功耗攻击AES模块功能设计的方法和电路,通过采用具有负向逻辑的辅助电路与原电路配合构成的双轨动态逻辑,可以在FPGA上实现能抵抗DPA的攻击的设计,以确保AES模块的安全。
图I是本发明的抗功耗攻击AES模块功能设计的方法实施例的流程图。图2是本发明的抗功耗攻击AES模块功能设计的电路实施例中的逻辑与非门的原电路与辅助电路相结合的电原理图。图3是本发明的抗功耗攻击AES模块功能设计的方法实施例在FPGA电路上实现的电原理图。
具体实施例方式为了进一步说明本发明的原理和结构,现结合附图对本发明的优选实施例进行详细说明。本发明的抗功耗攻击AES模块功能设计,在原来已有的电路基础上添加一个辅助电路,该电路的特征和原电路的特征完全相同,在工作过程中辅助电路输出的值总是原始电路的相反值。在进行辅助电路设计时有两个基本原则1.在每个时钟周期内原电路和辅助电路中只有一个电路的门输出有0-1之间的变换。2.两个电路对电容的负载能力都是相同的。该逻辑可称为多冗余平衡功耗逻辑。在多冗余平衡功耗逻辑中允许使用负向逻辑,这就使得多冗余平衡功耗逻辑在动态差分逻辑中具有更活的使用用途。如图I如示,负向逻辑可以当成一个预充电电路来使用,因为负向电路可以阻止预充电波的产生。由于负向逻辑的特性,原电路和辅助电路之间不需要进行交叉连接,因此这种对称电路的设计可以应用到FPGA当中,并能使FPGA的内部特征达到最优化。多冗余平衡功耗逻辑模型的具体设计步骤如下步骤I:预充电。如图2所示,预充电电路通过使用异步复位锁存器使得 LUT(L00K-UP-TABLE显示查找表)的输出端口在预充电阶段一直保持逻辑O。如果在一个设计中已经使用了一个触发器,那么预充电电路必须放在离触发器尽可能近的位置,这样能保证两层之间的路径最小化。FPGA中包含CLB (可编程逻辑单元),CLB单元包含有四层, 每层都包含两个LUT和两个触发器或锁存器类型的存储单元。每个触发器和锁存器都直接跟在LUT的后面。步骤2:复制电路。复制电路的第一步就是按原电路的特征设计一个ー模ー样的辅助电路。为保证辅助电路和原电路耗费的相同的路径资源,辅助电路安放的位置也必须
慎重考虑。步骤3 :辅助逻辑的设计。辅助逻辑输出值是直接路径(原始电路)的相反值。在直接路径中用方程f(x)定义ー个LUT,那么辅助电路的方程g(デ)可以表示为如下列公式所示g(x) = f(^) = fixj在前面的图2中可以看到具体的实现规则。步骤4:安全设计流程參见图3,多冗余平衡功耗逻辑设计流程大致包括第一阶段设计与综合约束设计的面积,并在每个寄存器旁边留下可以放置预充电逻辑的空间。第二阶段插入预充电逻辑,将第一阶段的设计转换成相应的描述文件。第三阶段构造辅助电路,首先将原设计中的IO连接移除,在完成辅助电路的横行之后重新连接。与现有技术相比,本发明的抗功耗攻击AES模块功能设计,通过在原有路上添加 ー个具有负向逻辑的辅助电路,使得这样处理之后的整体电路无论做什么操作都不会带来功耗上的差异,而功耗攻击依靠的就是芯片操作过程中与功耗的相关性来进行破解操作, 从而可为AES模块提供最大限度的保护,并且这种防护技术不受特定的算法限制,通用性强,对于功耗攻击有很强的防护性。以上仅为本发明的较佳可行实施例,并非限制本发明的保护范围,故凡运用本发明说明书及附图内容所做出的等效结构变化,均包含在本发明的保护范围内。
权利要求
1.一种抗功耗攻击AES模块功能设计的方法,其特征在于,该方法包括构建用以实现AES模块功能的一原电路;构建用以遮掩该原电路的功耗的一辅助电路,使该辅助电路与原电路的结构完全匹配,但具有与原电路相反的逻辑,从而使该辅助电路与原电路相互之间不存在交叉连接;使该辅助电路与原电路同步工作,从而可通过动态双轨逻辑实现AES模块的抗功耗攻击。
2.依据权利要求I所述的方法,其特征在于,在每个时钟周期内,该原电路和辅助电路两者之中只有一个电路的门输出有0-1之间的变换。
3.依据权利要求I所述的方法,其特征在于,该原电路和辅助电路对电容的负载能力是相同的。
4.依据权利要求I所述的方法,其特征在于,该辅助电路具有与原电路相反的逻辑是指在工作过程中该辅助电路输出的值总是与该原电路输出的值相反。
5.依据权利要求I所述的方法,其特征在于,构建该辅助电路的过程具体包括设计预充电电路;复制该原电路,得到与该原电路的结构完全的一初始辅助电路,该初始辅助电路的位置的布置,要确保该初始辅助电路和原电路耗费相同的路径资源;对该初始辅助电路进行改造,使其输出值与原电路的输出值相反,得到该辅助电路的设计。
6.依据权利要求5所述的方法,其特征在于,该方法还包括约束设计的面积,在每个寄存器旁边留下可以放置预充电电路的空间。
7.依据权利要求5所述的方法,其特征在于,该方法还包括将该原电路中的IO连接移除,在完成该辅助电路的横行之后重新连接。
8.依据权利要求5所述的方法,其特征在于,该预充电电路可以由具有与原电路的相反逻辑的电路来实现。
9.依据权利要求5所述的方法,其特征在于,该预充电电路通过使用异步复位锁存器使得显示查找表的输出端口在预充电阶段一直保持逻辑0,如果使用了触发器,那么预充电电路必须放在离该触发器尽可能近的位置,以保证两层之间的路径最小化。
10.一种抗功耗攻击AES模块功能设计的电路,其特征在于,该电路是采用权利要求I 至9中任一项所述的方法实现的具有抗功耗攻击AES模块功能的FPGA电路。
全文摘要
一种抗功耗攻击AES模块功能设计的方法和电路,该方法包括构建用以实现AES模块功能的一原电路;构建用以遮掩该原电路的功耗的一辅助电路,使该辅助电路与原电路的结构完全匹配,但具有与原电路相反的逻辑,而使该辅助电路与原电路相互之间不存在交叉连接;使该辅助电路与原电路同步工作,从而可通过动态双轨逻辑实现AES模块的抗功耗攻击。通过采用具有负向逻辑的辅助电路与原电路配合构成的双轨动态逻辑,可以在FPGA上实现能抵抗DPA的攻击的设计,以确保AES模块的安全。
文档编号G06F17/50GK102609556SQ20111003002
公开日2012年7月25日 申请日期2011年1月25日 优先权日2011年1月25日
发明者余思洋, 刘彦, 唐卓, 李肯立, 秦云川, 肖德贵 申请人:深圳市证通电子股份有限公司