一种抗高阶差分功耗攻击的AES硬件实现方法与流程

文档序号:14717636发布日期:2018-06-16 01:53阅读:487来源:国知局
一种抗高阶差分功耗攻击的AES硬件实现方法与流程

本发明属于集成电路技术领域,具体涉及一种抗高阶差分功耗攻击的AES硬件实现方法。



背景技术:

高级加密标准(AES)是美国国家标准技术研究所2001发布的加密技术,由于它难于被正面攻击和利于利用硬件实现而被广泛的使用。AES加密一直以来正面都难以破解,但是差分功耗攻击(DPA)技术使得通过对功耗的分析便可以得到密钥。

DPA是通过统计分析和分段攻击的方式来找出密钥的。首先,攻击者选择一个函数的某一个位,这个函数是明文与部分密钥计算的结果。常见的选择是AES加密或解密的第一轮的字节代换的输出的某一位。或者第一次密钥与明文异或操作的结果的某位也可以被选择。通过按部就班的执行攻击的每一个步骤,攻击者可以找出密钥的部分位。在最坏的情况下,攻击者需要测试部分密钥的所有可能情况,但是因为攻击者是对密钥分段进行攻击,因此实际的攻击强度指数性减少。比如说,如果攻击者选择AES加密的第一轮的第一个Sbox(密码学中的非线性替换组件)输出的第一位进行攻击,则每次攻击的对象是8位子密钥,则他在最坏情况下需要做256次猜测,如果密钥的总位数是128,则他需要分16次攻击。总数是256*16,即212。而如果直接对128位密钥进行猜测,强度为2128,而这个强度在有意义的时间范围内是无法被攻击出来的。

针对DPA攻击,IBM团队在论文[CRYPTO 1999]中提出了利用掩膜的方案可以有效的抑制边信道信息的泄露,但是实现的方案难以用硬件实现。格拉茨技术大学在论文[ACNS 2006] 提出利用随机数来掩盖边信道信息的泄露,但是后来发现效果并不理想。论文 [Chari-Jutla-Rao-Rohatgi CRYPTO'99]提出的抗DPA方案也被证明在某些条件下才能够成立。抗d阶DPA攻击的Ishai-Sahai-Wagner Scheme(ISW)防护方案被Ishai证明只有d/2阶安全的。经典的RP10算法也在Sbox的d加掩过程中出现了d/2阶的安全泄露。并且ISW算法对于硬件实现而言面积过大,RP10算法随着阶数的增加,算法复杂度指数增长,也不利于硬件实现。



技术实现要素:

本发明的目的,就是针对上述问题,提出了一种新的抗高阶的AES硬件实现方法,可以有效的隐藏密钥。

本发明所采用的技术方案为:

抗高阶差分功耗攻击的AES硬件实现方法,其特征在于,包括以下步骤:

a、将AES的加密的输入明文x分为d+1个随机变量的异或和:

x=x0+x1+…+xd (1)

b、对于AES加密电路中的行移位、列混淆和轮秘钥加的模块,按照线性函数进行抗d阶加掩:

addRound(x)=addRound(x0)+addRound(x1)+…+addRound(xd) (2)

shiftRows(x)=shiftRows(x0)+shiftRows(x1)+…+shiftRows(xd) (3)

mixColumns(x)=mixColumns(x0)+mixColumns(x1)+…+mixColumns(xd) (4)

其中,shiftRows代表AES电路的行移位,mixColumns代表AES电路的列混淆, addRoundKey代表AES电路的轮密钥加;

c、对非线性部分Sbox,非线性部分Sbox的抗DPA设计为本发明的核心,主要思想就是将复杂的非线性的Sbox分解为低维度的非线性部分和线性部分,从而减少对非线性部分加掩的复杂性,将其分解为低维度的非线性部分和线性部分,具体为:

Sbox是将128比特的数据分解为8bit的并行数据来处理的,即x=(x0,x1,…,x7),每个 8bit的数据处理都是一样的,所以对其中的第一个8bitx0进行说明:

c1、将Sbox分解为仿射变换Af以及GF(28)域的乘法逆Inv:

Sbox(x)=Af(Inv(x)) (5)

c2、仿射变换Af是线性运算,采用下式进行加掩:

Af(x)=Af(x0+x1+…+xd) (6)

c3、将GF(28)域的乘法逆运算降维到GF((24)2)域,降维之后获得线性部分GF(28)域映射、 GF(24)的常量乘法×λ以及加法,非线性部分GF(24)的乘法逆Inv4和乘法Mult,线性部分的加掩与前述步骤同理;

c4、GF(24)的乘法Mult的加掩过程如下:

c41、设置a,b分别是两个乘数,a=a0+a1+…+ad,b=b0+b1+…+bd;

c42、设置参数i,从i=0到d,迭代执行步骤c43:

c43、设置参数j,从j=i+1到d,r代表随机数,n是随机数种子,迭代执行:

ri,j←rand(n)

c44、从i=0到d,c是a和b的乘积,迭代执行:

ci←ajbi

c45、从i=0到d,在约束条件j≠i下,迭代执行:

c5、GF(24)的乘法逆加掩如下式:

x-1=x14=x2x4x8 (7)

x2,x4,x8是线性的,采用线性加掩方式。

本发明的有益效果为,本发明具有抗d阶DPA攻击的效果,并且无任何的低阶泄露;算法的复杂的较低,线性部分只有O(d),非线性部分只有O(d(d-1));并且本方法极其适合专用集成电路(ASIC)实现,非常容易就可以用折叠和插入流水的算法让其适用于不同速率的场景。

附图说明

图1Sbox从GF(28)域降到GF(24)电路结构图;

图2GF(24)的平方运算电路图;

图3GF(24)的常数乘法运算电路图;

图4GF(24)的乘法运算结构图;

图5GF(24)的乘法的抗d阶DPA攻击防护;

图6GF(24)的乘法逆的抗d阶DPA攻击防护。

具体实施方式

下面结合附图给出本发明的具体实现方法:

本发明的方案中,随机数的产生使用线性反馈移位寄存器(LSFR)生成,然后将输入明文表示为d+1个随机数的和;

shiftRows、mixColumns、addRoundKey都是AES电路的原始算法模块,可以根据算法标准直接参考实现;

Sbox降维的电路实现框图如图1所示。图2、图3、图4分别表示图1中对应框图的实现。降维之后,再对电路的线性模块用发明内容的方法处理,非线性模块用下面描述的方法处理:

图5实现了一个抗d=4阶的GF(24)乘法抗DPA方案。其中x=x0+x1+x2+x3, y=y0+y1+y2+y3。代表GF(24)域的普通乘法,代表GF(24)域的加法运算,r代表随机数。输出

图6实现GF(24)的乘法逆的抗DPA攻击。X就是GF(24)域的数,这里代表GF(24)域的平方运算。如果z=X4=z1+z2+z3+z4,那么refresh模块代表刷新一下z分量的随机数,使得z=X4=z5+z6+z7+z8,这样就能和X2的随机数分量的相关性去除,从而抗DPA攻击。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1