首页> 中国专利> 一种AES算法的快速安全硬件结构

一种AES算法的快速安全硬件结构

摘要

本发明公开了一种AES算法的快速安全硬件结构。本发明包括密钥扩展模块和加密模块;加密模块中的初始密钥加模块生成初始输入发送给四选二选择器;掩码字节替换模块对共享因子进行掩码字节替换后分别输出给行移位模块;行移位模块将移位处理结果输入列混淆模块;行移位模块及与其连接的列混淆模块将处理结果发送给一二选一选择器;其中一二选一选择器的输出端与轮密钥加模块输入端连接,轮密钥加模块的另一输入端与密钥扩展模块的轮密钥输出端连接,轮输出端与四选二选择器的轮输入端连接;另一二选一选择器的轮输出端与该四选二选择器的轮输入端连接;两二选一选择器的密文输出端分别与密文生成单元的输入端连接。本发明可保证敏感数据的安全。

著录项

  • 公开/公告号CN107070630A

    专利类型发明专利

  • 公开/公告日2017-08-18

    原文格式PDF

  • 申请/专利权人 中国科学院信息工程研究所;

    申请/专利号CN201710035186.8

  • 发明设计人 张锐;张倩;周永彬;邱爽;

    申请日2017-01-17

  • 分类号H04L9/00(20060101);H04L9/06(20060101);H04L9/08(20060101);

  • 代理机构11200 北京君尚知识产权代理事务所(普通合伙);

  • 代理人司立彬

  • 地址 100093 北京市海淀区闵庄路甲89号

  • 入库时间 2023-06-19 03:07:54

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-11

    授权

    授权

  • 2017-09-12

    实质审查的生效 IPC(主分类):H04L9/00 申请日:20170117

    实质审查的生效

  • 2017-08-18

    公开

    公开

说明书

技术领域

本发明提出了一种AES算法的快速安全硬件结构,该方法抗一阶侧信道攻击。硬件设计人员可利用该方法高效安全的实现AES算法,抵抗一阶CPA、DPA攻击,保证敏感数据的安全。属于信息安全技术领域,主要用于保证加密硬件的侧信道安全。

背景技术

加密模块是保密通信、认证、电子签名等系统中必不可少的部分。随着物联网应用的飞速发展,加密模块必须可被植入微型设备或嵌入式系统中,因此,保证加密模块的高效性具有十分重要的意义。与此同时,硬件加密设备受到侧信道攻击严重威胁,绝大多数密码算法的直接实现都可被侧信道攻击轻易破解,因此,保证加密模块的侧信道安全至关重要。综上,设计安全且高效的加密模块成为亟待解决的问题。

一方面,为保证密码模块的高效性,需要采用高效的S盒(线性部件)实现方案降低硬件开销。现有S盒实现方案包括两类:LUT(Look-Up Table)实现法和多项式实现法。其中LUT实现法将S盒存储在LUT查找表中,并通过询问LUT查找表实现S盒功能。该方法的优点是速度快,缺点是面积开销大。多项式实现法首先将S盒运算表示为有限域上的多项式,然后利用有限域模乘、模加等基本运算构造出S盒运算。该实现方法虽然计算速度没有LUT快,但比LUT方法节省面积。在原始多项式实现的基础上,衍生出了更加高效的塔域方法(TowerField Approach),它在计算过程中将GF(28)域转换为塔域,如GF((24)2)或GF(((22)2)2)。具体的,塔域方法包含非冗余的PB(Polynomial>

另一方面,为保证算法实现的侧信道安全性,需要在实现过程中加入抗侧信道技术。现有抗侧信道技术主要分两大类:掩码技术和隐藏技术。其中掩码技术的安全性有理论保证,并且可以达到理论可证明的安全性,因此本发明考虑采用掩码技术来抵御侧信道攻击。现有主流的掩码防护方案有ISW(Ishai-Sahai-Wagner)方案、RSM(Rotating S-boxesMasking)方案、TI(Threshold Implementation)方案等。其中ISW方案为可证明安全方案,是基于多项式实现的一种防护技术,它被证明在探针模型下可达到d阶安全性。RSM掩码方案是低熵掩码方案,是基于LUT实现的一种防护技术。由于本发明中采用的是多项式实现,所以采取的防护技术是ISW方案。

ISW方案主要针对与运算(或模乘)和非门(或模加)设计了d阶安全实现,其中d阶安全的与门(模乘)具体步骤如下:

算法1.ISW算法乘法模块

输入:a1,a2,…,ad,b1,b2,…,bd

输出:c1,c2,…,cd,c=a*b

该安全模乘的探针模型下的d阶安全性可被理论证明,属于可证明安全的防护方案。给定一硬件实现布尔函数表达式,将该安全与门替换硬件电路中的与门,将非门替换成安全的非门,即可得到d阶安全的硬件实现电路。

本发明是将塔域实现方法与ISW防护方案相结合所得到的AES快速一阶侧信道安全硬件实现。本发明在保证侧信道安全的前提下尽可能的降低硬件开销。

发明内容

基于有限域的AES硬件实现不具备抗侧信道攻击的特性,直接应用到加密系统中会带来严重安全隐患。为此,本发明提供一种针对硬件AES的、安全高效的GF(28)求逆电路,该电路可以应用在AES的S盒中,使AES抗一阶侧信道攻击(包括一阶DPA、CPA、EMA)。

方法描述:塔域实现方法将AES模逆分解为一系列与门、异或门与或门,并使得该分解方式具有最高实现效率(如,门数最少)。ISW方案是由Ishai等人提出的,以与门和非门为基本单元的安全编译器。因此,将ISW方案应用到塔域AES实现需要三个步骤:

1.给出异或门的ISW方案;

2.给出或门的ISW方案;

3.将ISW方案代入塔域分解式。

在步骤1中,由于异或门是线性的(异或运算可视为IF2域上线性函数),因此可直接得到异或门的ISW方案;在步骤2中,由于或门可以由与门、异或门和非门构造,而这三种门的ISW方案都已知,直接代入即可得到或门的ISW方案。

本发明将高效的塔域实现方法和安全的ISW掩码技术相结合,得到既具有优化的效率,又具有较高侧信道安全性的AES硬件实现。

本发明的技术方案为:

如图1所述,本发明一种AES算法的快速安全硬件结构,其特征在于,包括:密钥扩展模块、加密模块。密钥扩展模块与加密模块相连,将初始密钥及生成的10个轮密钥分11个周期依次输入到加密模块中,此部分与公知的密钥扩展模块一致。加密模块包括初始密钥加模块、四选二选择器、二选一选择器、掩码字节替换模块、行移位模块、列混淆模块、轮密钥加模块及密文加模块;所述初始密钥加模块的一个输入是明文与随机数异或后的结果,另一个输入时初始密钥;所述四选二选择器根据状态机的状态在轮输入与初始输入之间选择,当使用初始密钥进行第一轮加密的状态时选择初始输入即随机数及明文异或随机数,其他10个轮密钥的加密运算选择轮输入1、2;所述掩码字节替换模块的输入由四选二选择器给出,并将外部输入的轮随机数也作为掩码字节替换模块的输入,输出分别与两个行移位模块相连接;所述两个行移位模块的输出分别与一个列混淆模块及一个二选一选择器相连接;所述的两个列混淆模块的输出分别与一个二选一选择器相连;所述二选一选择器的输出由当前状态机的状态决定,当使用第10个轮密钥进行加密的状态时,选择行移位作为二选一选择器的输出,其他状态选择列混淆作为其输出;所述其中一个二选一选择器的输出与轮密钥加模块相连,此轮密钥加模块的另一个输入是密钥扩展模块产生的轮密钥,随着轮数的不同,轮密钥值不同;所述另一个二选一选择器与轮输出2相连,同时也与密文2输出相连;轮密钥加模块的输出与轮输出1相连,同时也与密文1输出相连;轮输出1和轮输出2的值存放在寄存器中,在下一个周期时分别作为轮输入1和轮输入2的值;密文1与密文2异或后输出密文。本发明的各个模块描述:

一、密钥扩展模块

当外部输入密钥信息时,密钥扩展模块每个周期产生一个轮密钥,具体为当外部输入密钥有效时,内部状态机控制,第1个周期输出初始密钥,接下来的10个周期按照算法本身描述,每个周期产生一个轮密钥作为加密模块的轮密钥输入,此部分与公知的实现一致。

二、加密模块

当密钥有效且外部输入明文有效时,加密模块开始运行,运行周期为11个周期。每个周期的操作包含如下模块:

a)初始密钥加模块

对明文进行随机化处理,分成两个共享因子,第一个共享因子是随机数本身,第二个共享因子是明文异或随机数的值。将第二个共享因子与初始密钥进行异或运算的过程,即构成初始密钥加模块。

b)四选二选择器模块

四选二选择器即输入四个,输出两个的选择器,具体从四个中选哪两个作为输出由状态机的状态决定,根据状态机的状态在轮输入与初始输入之间选择,当使用初始密钥进行第一轮加密的状态时选择初始输入即随机数及明文异或随机数,其他10个轮密钥的加密运算选择轮输入1、2。

c)掩码字节替代模块

掩码字节替换模块是非线性部分,由16个S盒构成,每一个S盒都由原始的输入经过同构映射、塔域求逆,逆同构映射及仿射变换后输出两个经过字节替换后的共享因子。

第一步,两个共享因子信息流经过同构映射,同构映射是将信息由多项式基PB转换到正规基NB的一个8行8列的矩阵,并列输出两个正规基NB上的8行8列的结果;

第二步,两个信息流分别在塔域上求逆具有速度快,资源消耗低的特点,输出分别为两个信息流的逆运算结果;

第三步,在塔域上求逆后,两个信息流分别进行逆同构映射,将塔域上输出映射为多项式域,并将此输出经过仿射变换后输出结果即为两个信息流的单个S盒结果。

第四步,如上述相似的信息流由两个128比特数据构成,按照前面三步的结果并列执行16次,可以将两个128比特的数据流处理完毕,即为第三步结果的16份,是字节替换的结果。字节替换结果为两个128比特的输出。

d)行移位模块

行移位模块与公知的AES实现中的行移位模块并无不同,但由于字节替换的结果为两个128比特输出,因此需要两个行移位模块同步操作。

e)列混淆模块

同理,列混淆模块也是公知的,也需要两个模块同步执行。

f)二选一选择器

二选一选择器即输入两个个,输出一个的选择器,具体从两个中选哪一个作为输出由状态机的状态决定,当使用第10个轮密钥进行加密的状态时,选择行移位作为二选一选择器的输出,其他状态选择列混淆作为其输出。

g)密钥加模块

只需要对一个信息流进行密钥加模块即可,另一个信息流模块直接进行下一步操作,保证在掩码的情况下,多个共享因子异或后,保证结果的正确性。

h)密文生成单元

密文生成单元是将密文1与密文2异或后得到的过程,异或后的结果即为最终生成的密文。

与现有技术相比,本发明的积极效果为:

首先创新性的提出了或门的掩码实现,可以将或门进行掩码保护,抵抗一阶侧信道攻击;其次将文献1(Ueno,R.,Homma,N.,Sugawara,Y.,Nogami,Y.,Aoki,T.:Highlyefficient GF(28)inversion>

附图说明

图1为本发明的快速安全硬件结构图;

图2为有限域GF(28)上Sbox求逆的过程图;

图3为与门的掩码实现图;

图4为或门的掩码实现图;

图5为非门的掩码实现图。

图6传统实现与本发明实现攻击结果成功率图。

具体实施方式

下面结合附图对本发明具体技术,尤其是核心部分的掩码字节替换部分的S盒求解做进一步详细描述。AES的S盒求解过程如图2所示,从输入开始包含同构映射、塔域求逆、逆同构映射及仿射变换及输出过程。在塔域求逆的过程中用到了图3、图4及图5中的与门、或门或非门的掩码实现。对于图3的实现用符号AND Masked Gate表示简写为(&M),对于图4用符号XOR Masked Gate表示简写为(∪M),对于图5用符号NOT Masked Gate表示简写为(!M)。

一、同构映射

同构映射f为一个8行8列的矩阵变换,并不包含非线性的与门、或门和非门,只包含线性的异或运算,因此可以首先将输入的两路向量分别通过该矩阵运算得出两个输出向量。

即:输入x1,经过同构映射f变为输出f1;输入x2,经过同构映射f变为输出f2。

二、塔域求逆

将第一步输出的f1和f2作为第二步的输入,在塔域上求逆,塔域求逆的步骤及流程如图3所示,包含三个主要的计算步骤,分别为由输入a求a17,其次再求(a17)-1,最后求a16与(a17)-1的乘积即为a-1。下面说明如何将高效的塔域实现方法和安全的ISW掩码技术相结合的方法,计算中以单比特为例。

1.传统公式

首先,以a17最低位的计算为例,其他位的计算公式类似,a17最低位的原始计算公式为:

d0=H1,2∪L1,2+H3,4∪L3,4+h2∪l2+h3l3

上述的“+”表示异或Hi,j=hi+hj,Li,j=li+lj,输入8位称为x,含高四位h4,h3,h2,h1和低四位l4,l3,l2,l1

2.本发明公式推导

●求a17的公式推导

由于是一阶掩码操作,将输入分成并列的两份x1,x2,每个x1和x2都含有高四位和低四位,保证x1+x2=x即可。那么对应的a17的计算输出也分成两份d14:0、d24:0,由x1的高四位h14,h13,h12,h11和低四位l14,l13,l12,l11得出d14:0,由x2的高四位h24,h23,h22,h21和低四位l24,l23,l22,l21得出d24:0

令H1i,j=h1i+h1j,L1i,j=l1i+l1j,H2i,j=h2i+h2j,L2i,j=l2i+l2j。将H1i,j、H2i,j作为第一个输入的第一共享因子和第二共享因子;L1i,j、L2i,j作为第二个输入的第一共享因子和第二共享因子。

a)与门掩码电路

进一步的,将D1和D2操作中的与或门操作用掩码电路替代,对于d0公式中的非线性部分分别通过与门的掩码实现、或门的掩码来实现,本发明通过图4的与门掩码电路进行处理,其中与门的计算公式为:

c1=a1b1+r

c2=(r+a1b2)+a2b1+a2b2

简称为

c1,2=a1,2(&M)b1,2

其中a1,a2是一个输入a的两个共享因子;b1,b2是一个输入b的两个共享因子,可以看出AES加密模块运算中,一直都是两个共享因子同时出现,只需要按照输入各自带入即可。r是由轮随机数输入的比特。

b)或门掩码电路

对于或门,本发明通过图4的或门掩码电路进行处理,其中或门的计算公式为:

表1或门真值表

ABA&BA+BAUB00000010111001111101

因此,由表1的真值表推导出:A∪B=AB+(A+B),同比得出A(∪M)B=A(&M)B+(A+B)即由与门的掩码计算公式再异或A+B即为A(∪M)B的输出,可得出如下公式:

c1=a1b1+r+a1+b1

c2=(r+a1b2)+a2b1+a2b2+a2+b2

简称为

c1,2=a1,2(∪M)b1,2

如图4所示,或门掩码电路由4个与门和8个或门构成。其中a1,a2是一个输入a的两个共享因子;b1,b2是一个输入b的共享因子,可以看出AES加密模块运算中,一直都是两个共享因子同时出现,只需要按照输入各自带入即可。r是由轮随机数输入的比特。a1、a2,a1、b2,a2、b1及a2、b2为4个与门的计算,将a1b1的结果与r进行异或,输出的结果与a1进行异或,再与b1进行异或,输出c1;将a1b2的结果与r进行异或,输出的结果与a2b1进行异或,输出的结果再与a2b1的结果进行异或,输出的结果再与a2b2的结果进行异或,输出的结果再与a2异或,输出的结果再与b2异或,输出即为c2。即由输入a1,a2,b1,b2,r,输出c1,c2构成的电路为或门掩码电路。

c)异或门掩码实现

或门是线性部门,因此或门掩码电路与普通或门一致,将两个输入的第一、第二因子分别相加,得到或门掩码输出的第一、第二个输出,如公式所示:

c1=a1+b1

c2=a2+b2

简称为

c1,2=a1,2+b1,2

d)将与门或门掩码实现应用到d0的公式中

将与门或门掩码实现应用到d0的操作中,公式变为:

由图3、图4可知,(∪M)及(&M)的输出分别是两个,如上所示的x1、x2是第一项H1,2(∪M)L1,2的输出,此时可以得出两个d0,分别称为d10、d20。即可知:

d1[0]=x1+y1+z1+w1

d2[0]=x2+y2+z2+w2

同理可以得出d14:0和d24:0共10比特数据。

●求(a17)-1的公式推导

开始计算(a17)-1,以(a17)-1的次低位为例详解公式推导,原始计算公式为:

e1=((d4+1)(d1+d2))∪(d0d4(d2∪d3))

同第一步a17计算相似,将第一步的结果d14:0、d24:0作为本部分的输入,输出分别为e14:0、e24:0。与门和或门的处理方式也是同a17类似,特殊的部分是非门的处理di+1=~di,此时应按照非门处理而不是异或门。

a)非门掩码电路

非门的处理如图5所示,具体公式为:

c1=a1

c2=!a2

即(!M)的输出为两个,第一个是第一共享因子a1本身,第二个是第二共享因子的非。

b)将与门或门非门掩码实现应用到e1的公式中

由e1公式可得出:

u1,2=x1,2(&M)y1,y2

v1,2=z1,2(&M)w1,w2

m1,2=u1,2(&M)v1,v2

e11=m1

e21=m2

以u1,2的输出为例,u1,2是经过(&M)运算的结果,输入为x的两个共享因子x1,x2,简称为x1,2,y的两个共享因子y1,y2,简称为y1,2,随机数的输入为随机任意的,在表示形式上忽略。

三、逆同构映射及放射变换

逆同构映射及仿射变换两者的运算可以进行组合,组合后为一个8行10列的矩阵,此操作可以将塔域上10位的求逆输出变回为GF(28)的正常输出。由于逆同构映射及仿射变换两者的运算并不包含非线性的与门、或门和非门,只包含线性的异或运算,因此将塔域求逆得到的两路向量分别按照此矩阵进行运算即可。

综合上述一、二、三步骤可以实施掩码字节替换中一个字节的替代过程,其他15个字节替代过程类似。而其他各个部分的实施方式属于公知,在此不做赘述。

评估结果

本发明的优势是将高效的塔域实现方法和安全的ISW掩码技术相结合,得到既具有优化的效率,又具有较高侧信道安全性的AES硬件实现。下面对本发明AES实现安全性进行评估。

如图6所示,使用一阶CPA对文献[1]的实现进行攻击,在X万条时,成功率为1,表示在X万条时,能完成攻击成功。对本发明提出的高效塔域和ISW方法相结合方法的AES实现使用一阶CPA进行攻击,无法攻击成功使用10万条能量迹攻击,成功率仍为0,不能攻击成功任意字节。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号