首页> 中国专利> 一种AES加密方法和基于及的抗功耗攻击方法

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

摘要

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

著录项

  • 公开/公告号CN105656619A

    专利类型发明专利

  • 公开/公告日2016-06-08

    原文格式PDF

  • 申请/专利权人 清华大学无锡应用技术研究院;

    申请/专利号CN201610074012.8

  • 申请日2016-02-02

  • 分类号H04L9/06(20060101);H04L29/06(20060101);

  • 代理机构北京清亦华知识产权代理事务所(普通合伙);

  • 代理人张大威

  • 地址 214072 江苏省无锡市滨湖区建筑西路777号国家集成电路设计中心A3栋

  • 入库时间 2023-12-18 15:46:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-26

    授权

    授权

  • 2016-07-06

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

    实质审查的生效

  • 2016-06-08

    公开

    公开

说明书

技术领域

本发明涉及信息安全技术领域,具体涉及一种AES加密方法和基于及的 抗功耗攻击方法。

背景技术

随着信息化的发展,信息安全问题也越来越重要,人们在这个过程中提出 了各种不同的密码算法,在这繁多的密码算法中,AES(AdvancedEncryption Standard,高级加密标准)广为全世界所使用且已成为一个国际通用的对称加 密算法,以其密钥建立时间短、灵敏度高、内存要求低等优点,大量应用于信 息安全领域,如电子商务和通讯加密等。

随着人们对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加密方法。

图1是本发明一个实施例的AES加密方法的流程图。请参考图1,一种 AES加密方法,包括以下步骤:

S1:对明文数据进行分组。

S200:初始化循环次数为0。

S201:将轮函数的输入与扩展的密钥进行异或操作。该步骤与原始AES 的实现完全一样,将轮函数的输入与扩展的密钥执行模2加操作,逻辑上表现 为异或操作。

S202:使用N位输入、M位输出的S盒进行数据替换,其中,N和M均 为自然数,M>N且M被N整除。在本发明的一个示例中,N为8、M为32, 即通过使用一个8位输入,32位输出的改进S盒执行字节替换。该32位输出 是在原始AES加密过程中S盒变换的8位输出数据基础上,预先设定好而得 到的。

S203:通过S盒输出的M位数据进行移位,得到原来AES算法中分组矩 阵列混淆操作的一个列的数据。

S204:对行移位操作输出的M位数据对应地进行异或操作,得到一次轮 函数的输出值,循环次数加1。具体地,对行移位操作输出的32位数据对应 地进行模2加(异或),最终得到一次轮函数的输出值。

S205:判断当前循环次数是否达到预设次数,如果没有当前循环次数达到 预设次数则进入步骤S3,否则返回步骤S201。

S3:对扩展密钥进行异或。

S4:使用N位输入、P位输出的S盒进行数据替换,其中,P为自然数且 P被N整除。其中,P为8。

S5:与扩展密钥进行异或。

S6:输出密文数据。

根据本发明实施例的AES加密方法,各个操作主要所需的操作只有查表、 移位和异或,这在逻辑实现上是较为简单且高效的,与传统算法实现的不同之 处是“改进的S盒变换、行移位、32位数据异或”这三个操作。

图3是本发明一个实施例的AES加密方法中部分操作的数据变换图,在 本发明的一个示例中,图3中每一个Sxx均代表一个字节数据,字节数据前的 系数代表G(2^8)有限域上的乘法运算(乘以该系数),“+”为G(2^8)有限 域上的加法(逻辑上即异或)运算,{a,b,c,d}代表a,b,c,d这四个字节数据拼接 成的32位数据。

以下将结合附图描述根据本发明实施例的一种基于AES加密方法的抗功 耗攻击方法。

请参考图4,一种基于AES加密方法的抗功耗攻击方法,包括以下步骤:

SA:获取明文数据。

SB:通过上述的AES加密方法对所述明文数据进行加密,在对所述明文 数据进行加密的过程中引入一个互补操作以使得加密操作产生的功耗和所述 互补操作产生的功耗的和为一个常数,所述互补操作包括与扩展密钥的反进行 异或、反S盒数据替换、反数据的行位移和同或运算。

具体地,在上述实施例的AES加密方法中,随着输入数据的不同,运算 过程产生中间数据的汉明重量会有很大区别,通过汉明重量模型可知,相应的 运算功耗差别也会很明显。典型的功耗攻击方法(如DPA),便是通过捕捉不 同猜测密钥时产生的功耗曲线,利用运算不同中间数据的过程中产生功耗的差 别来得以实现。针对上文提出的这种改进AES算法的实现,通过在加密运算 执行过程中同时引入一个互补操作。

加密过程中假定某次操作可视为函数F(x),产生的汉明重量为HW(F (x)),相应的功耗为:

P≈kHW(F(x))+d

与此同时,互补操作进行F’(x)运算,产生的汉明重量为HW(F’(x)) 并且F’和F所做的操作方式近似一样(也即下式k相同),相应的功耗为:

P′≈kHW(F′(x))+d

这个过程整个硬件功耗为L=L1+L’,这样只要保证:

HW(F(x))+HW(F′(x))=C

就使得互补操作和正常加密操作,这二者的产生的功耗之和近似恒定,而 与加密运算产生的中间数据数值无关,这就隐藏了运算过程中的功耗和数据信 息并实现抗功耗攻击的目的。

在平衡功耗的互补操作中,具体需要引入的运算为:与扩展密钥的反进行 异或、反S盒字节替换、反数据的行移位以及同或运算。

互补操作一:与扩展密钥的反进行异或。扩展密钥异或操作同时,执行互 补操作“与扩展密钥的反进行异或”,二者的输出互为反数据,则二者的汉明重 量之和将恒定为一个常数,由此实现功耗近似平衡。

数据x与密钥进行异或:

F1(x)=x⊕k1

互补操作:

F1,(x)=xk1

即可保证

HW(F1(x))⊕HW(F1′(x))=C1

其中,k1为扩展密钥,C1为常数。

互补操作二:反S盒字节替换。在上述实施例的AES加密方法中,改进 的S盒替换是8位输入32位输出,这个过程往往通过一个矩阵查找表来实现, 变换函数记为F2(x),则:

F2(x)={x′,x′,3x′,2x′}

取互补操作使其输出均为正常加密输出的反:

F2(x)={x,x,3x,2x}

其中,x’代表传统的字节输入经过S盒变换得到的字节输出。”{}”代表数 据的拼接,这样同样能保证:

HW(F2(x))+HW(F2′(x))=C2

如此一来同样实现了汉明重量恒定,相应的总功耗近似恒定,而与加密数 据的中间值无关。

互补操作三:反数据的行移位。在执行行移位的过程中,由于上一级操作 的输出中,除了一个正常输出,还有一个反数据的输出,由此,在对数据行移 位的同时引入额外操作,即对其反数据执行相同的行移位,二者的功耗之和在 汉明重量的模型下也实现了平衡。

互补操作四:同或运算。在上述实施例的AES加密方法中,32位数据 异或是针对4个数据进行异或操作,需要顺序执行三次异或,在执行第一次异 或的同时,互补操作执行同或运算,操作的输入数据与正常加密操作输入数据 相同,后两次加密异或操作的同时互补操作也为异或运算,则引入操作所得的 中间数据和有用的加密中间数据一直处于互补关系。同样能实现恒定的汉明重 量,仍有近似的运算功耗恒定,而与中间数据无关。

另外,本发明实施例的一种AES加密方法和基于及的抗功耗攻击方法的 其它构成以及作用对于本领域的技术人员而言都是已知的,为了减少冗余,不 做赘述。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、 “具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、 结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中, 对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具 体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适 的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解: 在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、 替换和变型,本发明的范围由权利要求及其等同限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号