当前位置: 首页 > 专利查询>重庆大学专利>正文

防止基于功耗分析攻击AES算法的软件掩码防护方案制造技术

技术编号:10041520 阅读:333 留言:0更新日期:2014-05-14 12:19
本发明专利技术公开了一种防止基于功耗分析攻击AES算法的软件掩码防护方案。引入掩码矩阵M,在加密运算的每一轮设置三个随机掩码防护点;每次加密过程生成M的一组掩码序列对上述三处防护点进行保护;在密码芯片内部设置计数器C,每加密一次进行初始值叠加,当达到阈值T1时矩阵M构造完成;当达到阈值T2时,重置计数器C并从下次加密开始更新矩阵M,以此反复;由于设置的三个随机掩码防护点对至少在穷举少量子密钥时能计算出的重要中间值进行了掩码防护,因此能有效抵抗高阶差分功耗攻击,保护AES密钥安全;同时掩码矩阵采用队列模式进行动态更新,减少了随机掩码更换的频率,降低了防护成本。

【技术实现步骤摘要】

   本专利技术涉及一种防止基于功耗分析攻击AES算法的软件掩码防护方案,具体是一种防止基于功耗分析攻击AES算法的软件掩码防护方案,能够利用非对称随机掩码矩阵防止对智能卡中软件实现的AES算法的功耗攻击,提高防护效率,属于信息安全领域。
技术介绍
   高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是由美国联邦政府采用的一种加密算法,该标准用来替代原有的DES,是迄今为止世界上最为广泛使用和流行的一种对称加密算法。虽然国内很多加密芯片仍然在使用DES算法,但随着智能CPU卡的逐渐普及,越来越多的加密芯片必将选择安全等级更高的AES算法来保护智能卡的安全。 侧信道攻击(side channel attack 简称SCA),又称旁路攻击:针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法被称为侧信道攻击。这类新型攻击的有效性远高于密码分析的数学方法,因此给密码设备带来了严重的威胁。对边信道攻击的学术研究起于1996-1999年。传统的分组密码分析技术局限于算法的数学结构,其攻击效果往往不佳。国内外密码学界都在加强及预算法实现的分析方法研究,边信道分析技术作为一种新的密码分析方法迅速成为研究热点。对于智能卡密码设备而言,功耗攻击是最有效的攻击方法。 1998年和1999年:P.Kocher等人提出了功耗分析的思想,即简单功耗攻击(SPA,Simple Power Analysis)和差分功耗攻击(DPA,Different Power Analysis)方法,2004年,相关系数功耗攻击(CPA,Correlation Power Analysis)方法的提出使其迅速成为主流功耗分析方法,利用这种方法对采用对称加密算法的智能卡进行攻击的案例也频繁出现。  现有的智能卡无论其内部加密算法是由硬件系统还是软件系统实现,最终一定是运行在硬件上的,而密码设备的电路部分基本都是由CMOS(Complementary Metal Oxide Semiconductor,互补金属氧化物半导体)电路构成的,因此加密过程中采用不同的密钥所消耗的功耗也不同。功耗的变化能间接反映出所采用密钥的内容,功耗分析便是基于此进行攻击的。 差分功耗攻击:功耗攻击的一种,攻击者无须了解关于被攻击设备的详细内容,通过分析加密密钥与功耗数据之间的相关性,利用统计分析方法寻找与密钥相关的有用信息,从而完成攻击;相关系数功耗攻击可以看作是对差分功耗分析方法的优化与改进,它利用功耗模型首先求出假设功耗,然后计算假设功耗和实测功耗之间的相关系数,通过比较相关系数来确定密钥。  对采用AES加密算法的智能卡芯片的功耗攻击流程通常是:第一,首先选择AES算法中一个与密钥相关联的中间值;第二,测量加密或解密时设备的功耗,此时明文或密文通常需要是已知的;第三,计算假设的中间值,该中间值由第一步中与密钥相关的函数关系所计算得到,该中间值可映射为一个中间值矩阵;第四,利用功耗模型(汉明距离或汉明重量模型)计算得到假设中间值矩阵对应的功耗矩阵;第五,将映射得到的功耗矩阵与实际功耗相比较,根据相关性计算方法可计算得到相关系数最高的功耗值,据此可对应找出可能性最大的密钥值,从而完成攻击。  目前针对软件实现的密码系统的功耗攻击防护方法主要采用以下所述的几种措施:  1)算法级防护。在不改变算法执行结果的情况下,改变算法执行流程;使其具有一定的随机性,干扰旁路信息的获取。最具代表性的方法为掩码防护,其核心思想是在数据运行的过程中为数据掩上一个掩码(异或上一个与计算无关的值),并在得到最后的结果前去除该掩码;由于掩码数据和密码计算本身无关,可以是任何一个值,因此掩码数据本身拥有不可预知性;虽然掩码防护的安全性较高,然而对于软件实现的密码算法,一次加密用于生成全部随机掩码的时间甚至超过加密所用的全部时间,大大降低了加密效率。 2)逻辑级防护。改变密码电路中逻辑单元的设计,使运算时数据产生的功耗不具有区分性。最具代表性的方法为双轨逻辑,其核心思想是利用冗余的编码技术,重新设计了电路的逻辑单元,使不同数据的编码产生相同的功耗;该设计虽然可达到很好的安全防护效果,然而对于软件实现的密码算法,对于表存储空间的需求会翻倍,大大降低了加密效率。
技术实现思路
   专利技术目的:针对现有技术存在的问题与不足,本专利技术提供一种防止基于功耗分析攻击AES算法的软件掩码防护方案,能够防范对智能卡中软件实现的AES算法的功耗攻击,尤其是目前主流的相关系数功耗攻击,使攻击者无法通过该分析方法得到AES的密钥,从而获取智能卡内部的敏感信息;同时方案的设计也充分考虑到了加密效率问题,采取队列更新模式降低了防护成本;   技术方案:一种防止基于功耗分析攻击AES算法的软件掩码防护方案,其实施步骤如下:   引入掩码矩阵M,在加密运算的每一轮设置三个随机掩码防护点,分别为子密钥异或结果,即S盒输入;字节代换结果,即S盒输出;以及轮加密结果;   第1轮加密过程中,首个子密钥K1未对数据进行操作之前,加密算法流程保持和AES流程相同。在第1轮子密钥K1对明文进行异或操作后引入掩码X,字节代换操作后引入掩码X1,第1轮加密操作结束时引入掩码X2;   第2轮至第9轮的加密过程,操作方式与第1轮加密过程类似,即在三个随机掩码防护点处设置随机掩码,只是异或的随机数值与第1轮不相同(记为Xi,3<=i<=19);   在第10轮字节代换操作后引入掩码X20,加密结果输出前引入掩码X21,最后经过逆置换操作引入掩码Y还原真实的密文信息。   掩码矩阵M在第一次加密过程中的密钥初始化阶段随机生成第一组掩码序列,第二次加密过程随机生成第二组掩码序列,以此反复,每次加密过程均从M中随机选取一组掩码序列进行防护设置;当达到计数器C的阈值T1(i=N)时,矩阵M构造完成,此后的加密过程不再变更M的大小;当达到阈值T2(i=2N)时,重置计数器C(i=0),之后的加密过程以阈值T1为计数周期,T2为重置周期,采用队列模式更新掩码矩阵M,即第j次加密生成的掩码序列将替换M中的第j组掩码序列(1<=j<=N),更新完成之后当达到重置周期T2时才进行下一次替换,以此反复完成多次加密过程中掩码矩阵的动态更新;   有益效果:相对于现有技术,本专利技术中,由于在AES加密运算的每一轮所设置的三个随机掩码防护点对至少在穷举少量子密钥时能计算出的重要中间值进行了掩码防护,因此能有效抵抗高阶差分功耗攻击;并且使用的掩码矩阵M并非在密钥初始化阶段全部生成,而是每次加密运算动态产生一组掩码序列以供防护设置,降低和控制了运算成本及加密流程的效率损失;同时队列模式的更新方法能有效防止攻击者通过寄存器劫持获取掩码序列的方式进行高阶差分攻击,进一步增强了防护方案的安全性。附图说明   图1为本专利技术实施例的AES加密流程图;  图2为本发本文档来自技高网
...

【技术保护点】
一种防止基于功耗分析攻击AES算法的软件掩码防护方案,其特征在于该方案主要针对的是软件实现的AES算法的掩码防护,对至少在穷举少量子密钥时能计算出的重要中间值进行了保护;防止了攻击者通过寄存器劫持获取掩码序列的方式进行高阶差分攻击,减少了随机掩码更换的频率,降低了防护成本,其实施步骤如下:引入掩码矩阵M用于生成随机数序列,在加密运算的每一轮设置三个随机掩码防护点,分别为子密钥异或结果,即S盒输入;字节代换结果,即S盒输出;以及轮加密结果;第1轮加密过程中,首个子密钥K1未对数据进行操作之前,加密算法流程保持和AES流程相同;在第1轮子密钥K1对明文进行异或操作后引入掩码X,字节代换操作后引入掩码X1,第1轮加密操作结束时引入掩码X2;第2轮至第9轮的加密过程,操作方式与第1轮加密过程类似,即在三个随机掩码防护点处设置随机掩码,只是异或的随机数值与第1轮不相同;在第10轮字节代换操作后引入掩码X20,加密结果输出前引入掩码X21,最后经过逆置换操作引入掩码Y还原真实的密文信息;掩码矩阵M在第一次加密过程中的密钥初始化阶段随机生成第一组掩码序列,第二次加密过程随机生成第二组掩码序列,以此反复,每次加密过程均从M中随机选取一组掩码序列进行防护设置;当达到计数器C的阈值T1(i=N)时,矩阵M构造完成,此后的加密过程不再变更M的大小;当达到阈值T2(i=2N)时,重置计数器C(i=0),之后的加密过程以阈值T1为计数周期,T2为重置周期,采用队列模式更新掩码矩阵M,即第j次加密生成的掩码序列将替换M中的第j组掩码序列(1<=j<=N),更新完成之后当达到重置周期T2时才进行下一次替换,以此反复完成多次加密过程中掩码矩阵的动态更新。...

【技术特征摘要】
1.一种防止基于功耗分析攻击AES算法的软件掩码防护方案,其特征在于该方案主要
针对的是软件实现的AES算法的掩码防护,对至少在穷举少量子密钥时能计算出的重要中间值进行了保护;防止了攻击者通过寄存器劫持获取掩码序列的方式进行高阶差分攻击,减少了随机掩码更换的频率,降低了防护成本,其实施步骤如下:
引入掩码矩阵M用于生成随机数序列,在加密运算的每一轮设置三个随机掩码防护点,分别为子密钥异或结果,即S盒输入;字节代换结果,即S盒输出;以及轮加密结果;
第1轮加密过程中,首个子密钥K1未对数据进行操作之前,加密算法流程保持和AES流程相同;在第1轮子密钥K1对明文进行异或操作后引入掩码X,字节代换操作后引入掩码X1,第1轮加密操作结束时引入掩码X2;
第2轮至第9轮的加密过程,操作方式与第1轮加密过程类似,即在三个随机掩码防护点处...

【专利技术属性】
技术研发人员:徐佩姬晨刘自强张瑜李思遥傅鹂向宏陈京浩
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1