一种AES加密方法和基于其的抗功耗攻击方法技术

技术编号:15058802 阅读:78 留言:0更新日期:2017-04-06 04:51
本发明专利技术公开了一种AES加密方法和基于其的抗功耗攻击方法,AES加密方法包括:对明文数据进行分组;将轮函数的输入与扩展的密钥进行异或操作;使用8位输入、32位输出的S盒进行数据替换;通过S盒输出的32位数据进行移位;对行移位操作输出的32位数据对应地进行异或操作;对扩展密钥进行异或;使用8位输入、8位输出的S盒进行数据替换;与扩展密钥进行异或;输出密文数据。本发明专利技术具有如下优点:加密方法中各个操作主要所需的操作只有查表、移位和异或,这在逻辑实现上是较为简单且高效的。抗功耗攻击方法带有列混淆,抗功耗攻击效果好。

【技术实现步骤摘要】

本专利技术涉及信息安全
,具体涉及一种AES加密方法和基于及的抗功耗攻击方法。
技术介绍
随着信息化的发展,信息安全问题也越来越重要,人们在这个过程中提出了各种不同的密码算法,在这繁多的密码算法中,AES(AdvancedEncryptionStandard,高级加密标准)广为全世界所使用且已成为一个国际通用的对称加密算法,以其密钥建立时间短、灵敏度高、内存要求低等优点,大量应用于信息安全领域,如电子商务和通讯加密等。随着人们对AES算法进行各种不同层次的分析,出现了很多对AES算法的攻击破解方式,在众多的攻击方式中,功耗攻击通过分析密码算法执行和功耗之间的关系,对使用该算法的密码芯片内部的密钥进行数学解析分析,如简单功耗分析(SPA)和差分功耗分析(DPA)等,并最终获取密钥,从而对密码芯片的安全性造成了很大的威胁。传统AES加密算法的实现中,主要的运算操作可分为“S盒变换、行变换、列混淆、与扩展密钥的异或”这四个步骤,很多学者在此基础上提出了各种不同抗功耗攻击的防御策略。本专利技术针对一种改进的AES实现方案,这种实现方案简化了AES实现过程中复杂的列混淆运算,并结合该实现方案提出了一种抗功耗攻击的方法,这种方法基于功耗的汉明重量模型理论,通过算法级上的互补操作来平衡功耗,使芯片上运算的功耗信息得以隐藏,并达到抗功耗攻击的目的。现有的以AES-128为例,图1展示了AES-128算法的实现过程,在这个实现过程中,以字节作为基本操作单元,需要将“S盒变换、行变换、列混淆、与扩展密钥的异或”作为一个轮函数循环操作10次。其中,所有的数学运算都是针对G(2^8)域上的运算而言。针对这种AES加密实现,人们提出了很多种不同的抗功耗攻击方法,常见的有对中间数据进行掩码(masking)操作,这种方法通过使用随机掩码来与加密运算产生的中间数据进行一定的结合运算,使中间数据随机化;或者使用功耗平衡电路,使得运算功耗保持平衡并与处理的数据无关;也有通过插入随机延时的方法,让加密操作执行的时间点不确定。AES加密的一种改进实现方式可以通过简化轮函数的四步操作,使得加密过程中没有复杂的列混淆操作。这种实现方式仅需要四个查找表、每轮每列的四次异或,以及存储这些数据的额外存储空间。但现有AES上抗功耗攻击的方法主要是针对传统的AES实现方案来设计的,缺乏针对这种不带列混淆,且更高效的加密实现过程的抗功耗攻击策略。
技术实现思路
本专利技术旨在至少解决上述技术问题之一。为此,本专利技术的第一个目的在于提出一种AES加密方法。本专利技术的第二个目的在于提出一种基于AES加密方法的抗功耗攻击方法。为了实现上述目的,本专利技术的实施例公开了一种AES加密方法,包括如下步骤:S1:对明文数据进行分组;S200:初始化循环次数为0;S201:将轮函数的输入与扩展的密钥进行异或操作;S202:使用N位输入、M位输出的S盒进行数据替换,其中,N和M均为自然数,M>N且M被N整除;S203:通过所述S盒输出的M位数据进行移位,得到分组矩阵列混淆操作的一个列的数据;S204:对行移位操作输出的M位数据对应地进行异或操作,得到一次轮函数的输出值,循环次数加1;S205:判断当前循环次数是否达到预设次数,如果没有当前循环次数达到预设次数则进入步骤S3,否则返回步骤S201;S3:对扩展密钥进行异或;S4:使用N位输入、P位输出的S盒进行数据替换,其中,P为自然数且P被N整除;S5:与扩展密钥进行异或;S6:输出密文数据。根据本专利技术实施例的AES加密方法,各个操作主要所需的操作只有查表、移位和异或,这在逻辑实现上是较为简单且高效的。另外,根据本专利技术上述实施例的AES加密方法,还可以具有如下附加的技术特征:进一步地,N为8,M为32且P为8。为了实现上述目的,本专利技术的实施例公开了一种基于AES加密方法的抗功耗攻击方法,包括以下步骤:SA:获取明文数据;SB:通过权利要求1或2所述的AES加密方法对所述明文数据进行加密,在对所述明文数据进行加密的过程中引入一个互补操作以使得加密操作产生的功耗和所述互补操作产生的功耗的和为近似一个常数,所述互补操作包括与扩展密钥的反进行异或、反S盒数据替换、反数据的行位移和同或运算;SC:输出密文。本专利技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本专利技术的实践了解到。附图说明本专利技术的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:图1是相关技术的AES-128实现过程的流程图;图2是本专利技术一个实施例的AES加密方法的流程图;图3是本专利技术一个实施例的AES加密方法中部分操作的数据变换图;图4是本专利技术一个实施例的基于AES加密方法的抗功耗攻击方法的抗功耗攻击实现框图。具体实施方式下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能理解为对本专利技术的限制。在本专利技术的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本专利技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本专利技术的限制。此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。在本专利技术的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本专利技术中的具体含义。参照下面的描述和附图,将清楚本专利技术的实施例的这些和其他方面。在这些描述和附图中,具体公开了本专利技术的实施例中的一些特定实施方式,来表示实施本专利技术的实施例的原理的一些方式,但是应当理解,本专利技术的实施例的范围不受此限制。相反,本专利技术的实施例包括落入所附加权利要求书的精神和内...

【技术保护点】
一种AES加密方法,其特征在于,包括如下步骤:S1:对明文数据进行分组;S200:初始化循环次数为0;S201:将轮函数的输入与扩展的密钥进行异或操作;S202:使用N位输入、M位输出的S盒进行数据替换,其中,N和M均为自然数,M>N且M被N整除;S203:通过所述S盒输出的M位数据进行移位,得到分组矩阵列混淆操作的一个列的数据;S204:对行移位操作输出的M位数据对应地进行异或操作,得到一次轮函数的输出值,循环次数加1;S205:判断当前循环次数是否达到预设次数,如果没有当前循环次数达到预设次数则进入步骤S3,否则返回步骤S201;S3:对扩展密钥进行异或;S4:使用N位输入、P位输出的S盒进行数据替换,其中,P为自然数且P被N整除;S5:与扩展密钥进行异或;S6:输出密文数据。

【技术特征摘要】
1.一种AES加密方法,其特征在于,包括如下步骤:
S1:对明文数据进行分组;
S200:初始化循环次数为0;
S201:将轮函数的输入与扩展的密钥进行异或操作;
S202:使用N位输入、M位输出的S盒进行数据替换,其中,N和M均
为自然数,M>N且M被N整除;
S203:通过所述S盒输出的M位数据进行移位,得到分组矩阵列混淆操
作的一个列的数据;
S204:对行移位操作输出的M位数据对应地进行异或操作,得到一次轮
函数的输出值,循环次数加1;
S205:判断当前循环次数是否达到预设次数,如果没有当前循环次数达到
预设次数则进入步骤S3,否则返回步骤S201;
S3:对扩展密钥进行异或;
S...

【专利技术属性】
技术研发人员:刘雷波朱敏吴有余罗凯尹首一魏少军
申请(专利权)人:清华大学无锡应用技术研究院
类型:发明
国别省市:江苏;32

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

1