一种抗高阶功耗分析的AES掩码加密方法与流程

文档序号:11523899阅读:389来源:国知局

本发明涉及信息安全技术领域中aes对称密码技术,特别涉及一种考虑侧信道安全的aes对称掩码加密算法实现技术,采用该方法能够抵抗高阶差分功耗分析。



背景技术:

随着信息化的发展,信息技术给人们生活以及工作造成了巨大影响,同时也带来了信息安全问题。密码算法是防护信息安全的有效手段,但是集成电路的不断发展使嵌入式系统得到大规模的应用,因此对密码算法硬件实现仅仅进行数学上的研究已远远不够的,数据在存储的过程中都存在被攻击的可能性。

功耗分析利用密码设备执行加解密操作过程中所处理的数据与能量消耗间的关联进行攻击,尤其是差分功耗分析技术。随着对侧信道攻击技术的研究不断深入,国内外关于防御方面的研究也从没有间断过,其中主流的防御方法包括掩码技术和隐藏技术,由于掩码防护成本相对低廉,且易于实现,而受到研究者的广泛关注。

2001年,akkar提出一阶乘法掩码方案,以解决aes对称加密方法s盒求逆受到功耗分析的问题,其主要思想是利用乘法运算过程中,积的求逆运算可以化简为求逆运算的积,但是易受到零值攻击和高阶功耗分析。零值攻击的原理是当需要替换的字节为0时,aes乘法掩码加密算法中主要的中间数据全部为0,那么掩码对能量消耗没有造成任何的影响。



技术实现要素:

本发明的目的在于,提供一种抗高阶功耗分析的aes掩码加密方法,以解决aes算法不能抵抗高阶差分功耗分析的问题。

为了实现上述目的,本发明采用如下的技术解决方案,一种抗高阶功耗分析的aes掩码加密方法,即抗高阶差分功耗分析的掩码防护方案的设计。

aes对称密码算法里大部分为线性运算,能量消耗比较均匀,但是s盒求逆非线性运算硬件实现消耗能量较大,容易产生数据信息的泄漏。本发明基于ishai-sahai-wagner可证明安全框架,解决一阶乘法掩码方案保护aes算法存在零值攻击的安全问题,进一步设计保护aess盒求逆非线性运算的高阶掩码方案。主要包括如下步骤:

步骤1,s盒求逆非线性运算的高阶掩码方案初始化:

(1)假设a是需要进行求逆运算的敏感数据,令a=g(k),b=h(k),g(*)和h(*)为域f2的线性关系,b和k为域的随机数;

(2)随机拆分i∈[0:d],满足ai是a的d+1个份额,且每个份额都不等于0。针对a为0时,s盒求逆非线性运算不能抵抗零值攻击的问题,需要进行如表1所示防范零值攻击原理进行处理。

表1防范零值攻击的处理

表1所示的原理具体为:当a为0时,即为假。首先将a随机拆分成两个相等的份额c1和c2,然后将c1随机拆分成(d/2)+1个份额,最后再将c2随机拆分成d/2个份额。

步骤2,根据定义1,引入随机数变量值k,推导出公式(1):

定义1(f映射:),x表示随机数份额ki,y表示随机数份额kj。

步骤3,公式(1)中ki和kj容易同一时间被攻击者分析功耗信息得到,根据定义2,引入随机变量值v′i,j,推导出公式(2):

定义2

步骤4,公式(2)存在四个异或运算和四个域相乘运算,为了提高运算效率,且防护份额ki,由定义3和定义4推导公式(2)得到本发明高阶掩码方案的随机数生成表达式,即(3):

定义3w(x)=h(x)·g(x)(w映射:)

定义4

步骤5,用表2所示高阶掩码方案的原理生成(d+1)2-d-1个随机数,保护敏感数据a的d+1个份额进行s盒求逆运算。

表2高阶掩码方案伪代码实现

表2所示的原理具体为:设随机数组v的下标为i和j,vi,j(i<j)是由随机数生成器产生,vi,j(i>j)是由本发明设计的生成随机数公式产生;利用(d+1)2-d-1个随机数vi,j,保护敏感数据a的d+1个份额进行s盒求逆运算的结果;本发明使用的随机数都是相互独立的。

本发明的有益效果:

本发明所述抗高阶功耗分析的aes掩码加密方法,通过设计掩码方案改进无保护的aes密码算法,使其应用在嵌入式设备中可以抵抗高阶差分功耗分析。

附图说明

图1是本发明方法实施的aes算法s盒求逆运算处理流程示意图。

具体实施方式

以下是本发明的具体实施例,并结合附图对本发明的技术方案作进一步清楚、完整地描述。

aes对称密码算法里大部分为线性运算,能量消耗比较均匀,但是s盒求逆非线性运算硬件实现消耗能量较大,容易产生数据信息的泄漏。本发明基于ishai-sahai-wagner可证明安全框架,解决一阶乘法掩码方案保护aes算法存在零值攻击的安全问题,进一步设计保护aess盒求逆非线性运算的高阶掩码方案。主要包括如下步骤(涉及到具体数值,均以十六进制的形式表示):

步骤1,s盒求逆非线性运算的高阶掩码方案初始化:

(1)假设a=0是需要进行求逆运算的敏感数据,令0=g(22),88=h(22),g(*)和h(*)为域f2的线性关系,b=88和k=22为域的随机数;

(2)随机拆分i∈[0:2],满足ai是a的3个份额,且每个份额都不等于0。针对a为0时,s盒求逆非线性运算不能抵抗零值攻击的问题,则需要进行如表1所示的防范零值攻击原理进行处理。

表1防范零值攻击的处理

表1所示的原理具体为:当a为0时,即为假。首先将a随机拆分成两个相等的份额c1和c2,然后将c1随机拆分成2个份额,最后再将c2随机拆分成1个份额。

步骤2,根据定义1,引入随机数变量值k,推导出公式(1):

定义1(f映射:),x表示随机数份额ki,y表示随机数份额kj。

步骤3,公式(1)中ki和kj容易同一时间被攻击者分析功耗信息得到,根据定义2,引入随机变量值v′i,j,推导出公式(2):

定义2

步骤4,公式(2)存在四个异或运算和四个域相乘运算,为了提高运算效率,且防护份额ki,由定义3和定义4推导公式(2)得到本发明高阶掩码方案的随机数生成表达式,即(3):

定义3w(x)=h(x)·g(x)(w映射:)

定义4

步骤5,用表2所示高阶掩码方案的原理生成6个随机数,保护敏感数据a的3个份额进行s盒求逆运算。

表2高阶掩码方案伪代码实现

表2所示的原理具体为:设随机数组v的下标为i和j,vi,j(i<j)是由随机数生成器产生,vi,j(i>j)是由本发明设计的生成随机数公式产生;利用6个随机数vi,j,保护敏感数据a的3个份额进行s盒求逆运算的结果;本发明使用的随机数都是相互独立的。本发明设计的aes算法s盒掩码求逆运算的过程如图1所示。

上面所述的实施例仅仅是对本发明的实施方式进行描述,并非对本发明的构思和范围进行限定,在不脱离本发明设计构思的前提下,本领域中普通工程技术人员对本发明的技术方案做出的各种变型和改进,均应落入本发明的保护范围。

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