CN108964872B - 一种基于aes的加密方法及装置 - Google Patents
一种基于aes的加密方法及装置 Download PDFInfo
- Publication number
- CN108964872B CN108964872B CN201810811483.1A CN201810811483A CN108964872B CN 108964872 B CN108964872 B CN 108964872B CN 201810811483 A CN201810811483 A CN 201810811483A CN 108964872 B CN108964872 B CN 108964872B
- Authority
- CN
- China
- Prior art keywords
- square matrix
- key
- encryption
- plaintext
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于AES的加密方法及装置,其中的方法包括:首先获取待加密的数据和标准AES算法的预设密钥;然后生成循环移位的位数r,并将所述待加密的数据转换成第一明文方阵,将预设密钥转换成第一密钥方阵;接下来将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;并将第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;接着基于第二密钥方阵对第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;最后将第一输出方阵循环右移r列,获得第二输出方阵,以第二输出方阵作为加密结果。本发明实现了提高抗侧信道攻击能力的技术效果。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种基于AES的加密方法及装置。
背景技术
AES是国际高级加密算法标准,被美国政府采用为分组密码的标准。AES算法的分组长度为128bit(比特),而密钥的长度可以是128比特,192比特或者256比特,对应的变换轮数分别是10轮,12轮以及14轮。
AES在抗传统密码攻击方面该算法的安全性是经过理论论证与实践检验的。但面对侧信道攻击时该算法是不安全的,有许多种侧信道攻击方法可以攻击AES算法。侧信道攻击是针对加密电子设备在运行过程中的侧信道信息泄露而对加密设备进行攻击的方法。侧信道信息主要包括密码设备运行时设备泄露的一些物理信号,例如电磁信号,能耗信息,时间信息等,这些信息往往与所处理的数据是紧密相关的,比如计算机在处理0和处理1所消耗的能量是不一样的。密码学家根据这些泄露的信息分别发明了电磁攻击,能耗攻击,定时攻击,模板攻击等众多侧信道攻击方法。
由此可见,现有技术存在抗侧信道攻击能力较弱的技术问题。
发明内容
本发明实施例提供了一种基于AES的加密方法及装置,用以解决或者至少部分解决现有技术存在的抗侧信道攻击能力较弱的技术问题。
第一方面,本发明提供了一种基于AES的加密方法,包括:
获取待加密的数据和标准AES算法的预设密钥;
生成循环移位的位数r,其中,r=0,1,2或3;
将所述待加密的数据转换成第一明文方阵,将所述预设密钥转换成第一密钥方阵;
将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;
将所述第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;
基于所述第二密钥方阵对所述第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;
将所述第一输出方阵循环右移r列,获得第二输出方阵,以所述第二输出方阵作为加密结果。
基于上述方法,所述生成循环移位的位数r,包括:
采用随机数生成器生成所述循环移位的位数r或者从预设随机源中获取随机数的方式生成所述循环移位的位数r。
基于上述方法,所述基于所述第二密钥方阵对所述第二明文方阵执行AES加密,包括:
根据循环移位的位数r,获得对应的新密钥扩展算法;
基于所述新密钥扩展算法对所述第二密钥方阵进行扩展,获得扩展后的密钥字;
根据所述扩展后的密钥字和所述标准AES算法,生成新对偶算法;
根据所述新对偶算法对所述第二明文方阵进行加密。
基于上述方法,所述根据所述新对偶算法对所述第二明文方阵进行加密包括:
将所述扩展后的密钥字用于所述新对偶算法的轮密钥;
加密过程包括:轮密钥加操作和10轮加密操作,其中,所述轮密钥加操作在所述10轮加密操作之前执行以及在所述10轮加密操作中每轮加密过程中执行,前9轮包括字节代替、行移位、列混淆以及所述轮密钥加操作,第10轮包括字节代替、行移位和所述轮密钥加操作。
基于上述方法,所述抗差分能耗分析的侧信道防护方法包括基于RSM掩码的防护方法和基于内积的掩码防护方法。
基于同样的发明构思,本发明第二方面提供了一种基于AES的加密装置,包括:
获取模块,用于获取待加密的数据和标准AES算法的预设密钥;
生成模块,用于生成循环移位的位数r,其中,r=0,1,2或3;
转换模块,用于将所述待加密的数据转换成第一明文方阵,将所述预设密钥转换成第一密钥方阵;
第一循环左移模块,用于将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;
第二循环左移模块,用于将所述第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;
加密模块,用于基于所述第二密钥方阵对所述第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;
循环右移模块,用于将所述第一输出方阵循环右移r列,获得第二输出方阵,以所述第二输出方阵作为加密结果。
基于上述装置,所述生成模块具体用于:
采用随机数生成器生成所述循环移位的位数r或者从预设随机源中获取随机数的方式生成所述循环移位的位数r。
基于上述装置,所述加密模块具体用于:
根据循环移位的位数r,获得对应的新密钥扩展算法;
基于所述新密钥扩展算法对所述第二密钥方阵进行扩展,获得扩展后的密钥字;
根据所述扩展后的密钥字和所述标准AES算法,生成新对偶算法;
根据所述新对偶算法对所述第二明文方阵进行加密。
基于同样的发明构思,本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被执行时实现第一方面所述的方法。
基于同样的发明构思,本发明第四方面一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
在本发明提供的方法中,首先获取待加密的数据和标准AES算法的预设密钥,然后生成循环移位的位数r,接着将待加密的数据转换成第一明文方阵,并将预设密钥转换成第一密钥方阵;再将第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;并将第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;基于第二密钥方阵对第二明文方阵执行AES加密,获得第一输出方阵,最后将第一输出方阵循环右移r列,获得第二输出方阵,以第二输出方阵作为加密结果。一方面,执行AES加密的第二密钥方阵是通过第一密钥方阵进行循环左移得到的,并且循环左移的位数是随机生成的,则不同的循环左移的位数将得到不同的第二密钥方阵,也就可以得到不同的加密算法,那么在基于第二密钥方阵对第二明文方阵执行AES加密时,采用的加密算法也不是唯一的,从而可以增加攻击者破解的数据复杂度与难度,故而达到提高抗侧信道攻击能力的技术效果;另一方面,在执行AES加密时结合抗差分能耗分析的侧信道防护方法,那么可以将执行AES加密时的加密算法与抗差分能耗分析的侧信道防护方法结合在一起,从而能够抗多维度的侧信道攻击,进一步提高了抗侧信道攻击能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种基于AES的加密方法的流程图;
图2为本发明实施例中一种基于AES的加密装置的结构图;
图3为本发明实施例中一种计算机可读存储介质的结构图;
图4为本发明实施例中一种计算机设备的结构图。
具体实施方式
本发明实施例提供了一种基于AES的加密方法及装置,用以改善现有技术存在的抗侧信道攻击能力较弱的技术问题。
本申请实施例中的技术方案,总体思路如下:
首先获取待加密的数据和标准AES算法的预设密钥;然后生成循环移位的位数r,其中,r=0,1,2或3;接着将所述待加密的数据转换成第一明文方阵,将所述预设密钥转换成第一密钥方阵;接下来将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;然后将所述第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;基于所述第二密钥方阵对所述第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;最后将所述第一输出方阵循环右移r列,获得第二输出方阵,以所述第二输出方阵作为加密结果。
通过本发明的上述方法,对标准AES加密算法的输入输出做循环移位变换后即可以用于加密,没有引入其他的变换,所需的额外开销较少。一方面可以增加攻击者的数据复杂度,从而提高抗侧信道攻击能力,另一方面结合后的算法能够抗多维度的侧信道攻击。比如有的防护方法能够抗相关能耗分析,但无法抗模板攻击。通过本发明中的加密算法的改变来实现防护,这种随机的变换可能会使得模板攻击变得不可能或更加困难。这是因为随机对偶算法(通过循环左移后的第二密钥方阵和标准AES算法得到)的采用,即基于第二密钥方阵对第二明文方阵执行AES加密时,攻击者建模就困难。即使攻击者获得源码并修改源码后能够建模,但在攻击阶段,攻击者无法区分每次所采能耗轨迹对应哪个具体的对偶密码(即通过哪个第二密钥方阵对第二明文方阵执行AES加密),从而可以大大增加攻击的难度,进一步提高抗侧信道攻击的能力。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种基于AES的加密方法,请参见图1,该方法包括:
步骤S101:获取待加密的数据和标准AES算法的预设密钥。
具体来说,标准AES算法(Advanced Encryption Standard),AES算法的分组长度为128bit,预设密钥即为AES算法用来加密操作的密钥,其包括密钥字(也成为种子密钥)。在具体的实施过程中,可以将预设密钥转换成矩阵的形式,矩阵的某一列则为一个密钥字,例如一个4*4的矩阵,则包括4个密钥字。
步骤S102:生成循环移位的位数r,其中,r=0,1,2或3。
具体来说,可以采用随机数生成器生成循环移位的位数r,或者从预设随机源中获取随机数的方式生成循环移位的位数r,也可以采用轮询的方式生成循环移位的位数r,在此不做具体限定。
步骤S103:将待加密的数据转换成第一明文方阵,将预设密钥转换成第一密钥方阵。
具体来说,待加密的数据即为明文,通过数据转换将待加密的数据转换为第一明文方阵,第一密钥方阵则包括四个密钥字,例如,第一明文方阵的结构与第一密钥方阵相同,也是4行4列。
步骤S104:将第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵。
在具体的实施过程中,当预设密钥的密钥字为4个时,则r可以为0、1、2、3,当r为0时,则表示采用的是原来的第一明文方阵,当r为1时,则可以将第一明文方阵的列循环左移1位,获得循环左移后的第二明文方阵,当r为2或3时,依次类推。举例来说,若第一明文矩阵的形式如下:
步骤S105:将第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;
在具体的实施过程中,当预设密钥的密钥字为4个时,则r可以为0、1、2、3,当r为0时,则表示采用的是原来的第一密钥方阵,当r为1时,则可以将第一密钥方阵的列循环左移1位,获得循环左移后的第二密钥方阵,当r为2或3时,依次类推。举例来说,若第一密钥矩阵的形式如下:
则将第一密钥矩阵进行循环左移一位后,得到的矩阵为:如果将第一密钥矩阵改写成密钥字的形式,则为:W[0],W[1],W[2],W[3],其中,W[0]包括第一列的k0、k1、k2和k3,W[1]、W[2]、W[3]与W[0]类似,分别表示第二列、第三列和第四列。
步骤S106:基于第二密钥方阵对第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法。
具体来说,基于第二密钥方阵对第二明文方阵执行AES加密,获得第一输出方阵,也就是将第二密钥方阵作为基于AES加密的密钥,并执行标准AES的加密操作,对第二明文方阵进行加密后,输出结果即为第一输出方阵。抗差分能耗分析的侧信道防护方法可以是RSM掩码(Rotating S-Box Masking)方法,也可以是基于内积的掩码方法或者其它的AES防护方法。
由于执行AES加密的第二密钥方阵是通过对第一密钥方阵进行循环左移得到的,并且循环左移的位数是随机生成的,那么在基于第二密钥方阵对第二明文方阵执行AES加密时,采用的加密算法也不是唯一的,从而可以增加攻击者破解的数据复杂度与难度,故而达到提高抗侧信道攻击能力的技术效果;并且在执行AES加密时结合抗差分能耗分析的侧信道防护方法,那么可以将执行AES加密时的加密算法与抗差分能耗分析的侧信道防护方法结合在一起,从而能够抗多维度的侧信道攻击,进一步提高了抗侧信道攻击能力。
步骤S107:将第一输出方阵循环右移r列,获得第二输出方阵,以第二输出方阵作为加密结果。
在具体的实施过程中,将第一输出方阵做循环右移,移动的位数与循环左移的位数相同,则可以得到第二输出方阵,即加密后的输出,至此完成了对待加密数据的加密过程。
作为一种可选实施方式,基于第二密钥方阵对第二明文方阵执行AES加密,包括:
根据循环移位的位数r,获得对应的新密钥扩展算法;
基于所述新密钥扩展算法对所述第二密钥方阵进行扩展,获得扩展后的密钥字;
根据所述扩展后的密钥字和所述标准AES算法,生成新对偶算法;
根据所述新对偶算法对所述第二明文方阵进行加密。
具体来说,由于新密钥扩展算法是根据移位的位数确定的,而扩展后的密钥字是根据新密钥扩展算法得到的,新对偶算法则是通过扩展后的密钥字和标准AES算法生成的。那么由于移位的位数不是确定的,则根据移位的位数可以得到不同的扩展后的密钥字,也就可以得到不同的新对偶算法,新对偶算法不需要对标准AES算法进行其他的变换即可以用于加密,所需的额外开销非常少,因而计算效率较高。并且,在执行AES加密时结合抗差分能耗分析的侧信道防护方法,则可以随机将新对偶算法与侧信道防护方法结合在一起进行防护,一方面可以使得攻击者的数据复杂度增加4倍,另一方面使得结合后的算法能够抗多维度的侧信道攻击。比如有的防护方法能够抗相关能耗分析,但无法抗模板攻击。新对偶密码通过算法的改变来实现防护,这种随机的变换会使得模板攻击更为困难。首先因为随机对偶算法的采用,攻击者建模就困难。即使击者获得源码并修改源码并且能够建模,但在攻击阶段,攻击者无法区分每次所采能耗轨迹对应哪个具体的对偶密码,从而大大提高了抗模板攻击的强度。
需要说明的是,在执行本发明提供的加密方法时,步骤S101和步骤S102的执行顺序不分先后,可以先执行步骤S101:获取待加密的数据和标准AES算法的预设密钥,也可以先执行步骤S102:生成循环移位的位数r,步骤S104和步骤S105的执行顺序也不分先后。
基于对应的新密钥扩展算法对预设密钥进行扩展,获得扩展后的密钥字,可以通过下述方式来实现:
以循环左移1位为例,对应的新密钥扩展算法的输入为列循环左移1位后的密钥字KW'[0],KW'[1],KW'[2],KW'[3];其输出为扩展后的40个密钥字;
For(i=4;i<44;i+=4){
KW'[i+3]=KW'[i-1]+g(KW'[i-2]);
KW'[i]=KW'[i-4]+KW'[i+3];
KW'[i+1]=KW'[i-3]+KW'[i];
KW'[i+2]=KW'[i-2]+KW'[i+1];
}
循环左移1位后的密钥的每一列的4个字节构成一个32比特的字,从左到右分别记为KW'[0],KW'[1],KW'[2],KW'[3];按照上述代码的执行方式,依次求取其它轮所用的轮密钥KW'[i],i=4,5,…,43,其中,函数g为AES的规范中的标准变换,其包括:将KW'[i]循环左移一个字节,然后分别对每个字节按S盒进行映射;再与32bits的常量(RC[j/4],0,0,0)进行异或,RC是一个一维数组,其值如下RC={00,01,02,04,08,10,20,40,80,1B,36},RC的值只需要有10个,而此处用了11个,实际上RC[0]在运算中未用到,增加RC[0]是为了便于程序中用数组表示。由于j的最小取值是4,j/4的最小取值则是1,因此不会产生错误。
对于循环左移2位和循环左移3位的情况与循环左移1位类似,循环左移2位对应的获得扩展后的密钥字的方法如下:
其输入为列循环左移2位后的密钥字KW”[0],KW”[1],KW”[2],KW”[3];
输出:扩展的40个密钥字;
For(i=4;i<44;i+=4){
KW”[i+2]=KW”[i-2]+g(KW”[i-3]);
KW”[i+3]=KW”[i-1]+KW”[i+2];
KW”[i]=KW”[i-4]+KW[i+3];
KW[i+1]=KW”[i-3]+KW”[i];
}
循环左移3位对应的获得扩展后的密钥字的方法如下:
输入:列循环左移3位后的密钥字KW”'[0],KW”'[1],KW”'[2],KW”'[3];
输出:扩展的40个密钥字;
For(i=4;i<44;i+=4){
KW”'[i+1]=KW”'[i-3]+g(KW”'[i-4]);
KW”'[i+2]=KW”'[i-2]+KW”'[i+1];
KW”'[i+3]=KW”'[i-1]+KW”'[i+2];
KW”'[i]=KW”'[i-4]+KW”'[i+3];
}
作为一种可选实施方式,根据所述新对偶算法对所述第二明文方阵进行加密,包括:
将扩展后的密钥字用于新对偶算法的轮密钥;
采用新对偶算法执行加密,加密过程包括:轮密钥加操作和10轮加密操作,其中,所述轮密钥加操作在所述10轮加密操作之前执行以及在所述10轮加密操作中每轮加密过程中执行,前9轮包括字节代替、行移位、列混淆以及所述轮密钥加操作,第10轮包括字节代替、行移位和所述轮密钥加操作。
具体来说,轮密钥则为执行加密中,轮密钥加操作过程中所采用的密钥,由于新对偶算法是根据扩展后的密钥字和标准AES算法得到的,则利用新对偶算法加密时,执行的是AES的加密过程。轮密钥加操作在进行10轮加密操作前执行,并在10轮加密操作中每轮加密过程中执行。
作为一种可选实施方式,抗差分能耗分析的侧信道防护方法包括基于RSM掩码的防护方法或者基于内积的掩码防护方法。
具体来说,基于RSM掩码的防护方法,又称为循环S盒掩码方案(Rotating S-BoxMasking)。由于功耗分析具有强大的破坏力,因而在执行AES加密的过程中结合掩码的方式可以提高算法的防护能力。针对某个具体算法,首先提取出算法运行过程中的中间数值,然后对这些中间数值进行隐藏,这样的技术手段称为掩码操作:异或一个随机值。上述所称的随机值即掩码,它与算法的运行没有任何关联,在算法开始前或执行过程中添加,在算法结束时通过相应的操作消除。而关于掩码的使用,对于攻击者来说是无法感知的,因此具有很好的隐藏效果。同时,由于掩码的随机性使得算法在加密过程中泄露的功耗信息将不再与密钥产生关联,对于攻击者来说,也就无法利用功耗分析的手段来进行攻击。在执行AES加密时,结合掩码技术可以从算法层面对加密算法进行防护和加强,不需要改变算法的逻辑结构,只需要为中间数据异或上一个随机值即可完成算法的优化,实现起来比较简单。同时,与双轨逻辑等逻辑层面的防护措施相比,掩码技术不需要增加表空间的大小或逻辑电路的面积,在同样保证算法安全性的前提下防护成本相对较低。在具体的实施过程中,可以根据实际需要选取相应的掩码方案,即防护方法,从而进一步提高算法的抗多维度攻击的能力。
基于同一发明构思,本申请还提供了与实施例一中与基于AES的加密方法对应的装置,详见实施例二。
实施例二
本实施例提供一种基于AES的加密装置,请参见图2,该装置包括:
获取模块201,用于获取待加密的数据和标准AES算法的预设密钥;
生成模块202,用于生成循环移位的位数r,其中,r=0,1,2或3;
转换模块203,用于将所述待加密的数据转换成第一明文方阵,将所述预设密钥转换成第一密钥方阵;
第一循环左移模块204,用于将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;
第二循环左移模块205,用于将所述第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;
加密模块206,用于基于所述第二密钥方阵对所述第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;
循环右移模块207,用于将所述第一输出方阵循环右移r列,获得第二输出方阵,以所述第二输出方阵作为加密结果。
作为可选,在本实施例提供的装置中,生成模块202具体用于:
采用随机数生成器生成循环移位的位数r或者从预设随机源中获取随机数的方式生成循环移位的位数r。
作为可选,在本实施例提供的装置中,加密模块206具体用于:
根据循环移位的位数r,获得对应的新密钥扩展算法;
基于所述新密钥扩展算法对所述第二密钥方阵进行扩展,获得扩展后的密钥字;
根据所述扩展后的密钥字和所述标准AES算法,生成新对偶算法;
根据所述新对偶算法对所述第二明文方阵进行加密。
作为可选,在本实施例提供的装置中,加密模块206具体用于:
将所述扩展后的密钥字用于将所述扩展后的密钥字用于所述新对偶算法的轮密钥;
加密过程包括:轮密钥加操作和10轮加密操作,其中,所述轮密钥加操作在所述10轮加密操作之前执行以及在所述10轮加密操作中每轮加密过程中执行,前9轮包括字节代替、行移位、列混淆以及所述轮密钥加操作,第10轮包括字节代替、行移位和所述轮密钥加操作。
作为可选,在本实施例提供的装置中,
所述抗差分能耗分析的侧信道防护方法包括基于RSM掩码的防护方法或者基于内积的掩码防护方法。
由于本发明实施例二所介绍的装置,为实施本发明实施例一中基于AES的加密方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
实施例三
基于同一发明构思,本申请还提供了一种计算机可读存储介质300,请参见图3,其上存储有计算机程序311,该程序被执行时实现实施例一中的方法。
由于本发明实施例三所介绍的计算机可读存储介质,为实施本发明实施例一中基于AES的加密方法所采用的计算机可读存储介质,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机可读存储介质都属于本发明所欲保护的范围。
实施例四
基于同一发明构思,本申请还提供了一种计算机设备,请参见图4,包括存储401、处理器402及存储在存储器上并可在处理器上运行的计算机程序403,处理器402执行上述程序时实现实施例一中的方法。
由于本发明实施例三所介绍的计算机设备,为实施本发明实施例一中基于AES的加密方法所采用的计算机设备,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该计算机设备的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的计算机设备都属于本发明所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种基于AES的加密方法,其特征在于,包括:
获取待加密的数据和标准AES算法的预设密钥,其中,标准AES算法为高级加密标准算法;
采用随机数生成器生成循环移位的位数r或者从预设随机源中获取随机数的方式生成循环移位的位数r,其中,r为整数,r的取值范围为0至3;
将所述待加密的数据转换成第一明文方阵,将所述预设密钥转换成第一密钥方阵;
将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;
将所述第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;
基于所述第二密钥方阵对所述第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;
将所述第一输出方阵循环右移r列,获得第二输出方阵,所述第二输出方阵作为加密结果。
2.如权利要求1所述的方法,其特征在于,所述基于所述第二密钥方阵对所述第二明文方阵执行AES加密,包括:
基于密钥扩展算法对所述第二密钥方阵进行扩展,获得扩展后的密钥字;
根据所述扩展后的密钥字和所述标准AES算法,生成新对偶算法;
根据所述新对偶算法对所述第二明文方阵进行加密。
3.如权利要求2所述的方法,其特征在于,所述根据所述新对偶算法对所述第二明文方阵进行加密,包括:
将所述扩展后的密钥字用于所述新对偶算法的轮密钥;
加密过程包括:轮密钥加操作和10轮加密操作,其中,所述轮密钥加操作在所述10轮加密操作之前执行以及在所述10轮加密操作中每轮加密过程中执行,前9轮的每一轮包括字节代替、行移位、列混淆以及所述轮密钥加操作,第10轮包括字节代替、行移位和所述轮密钥加操作。
4.如权利要求1所述的方法,其特征在于,所述抗差分能耗分析的侧信道防护方法包括基于RSM掩码的防护方法和基于内积的掩码防护方法,RSM掩码为循环s盒掩码。
5.一种基于AES的加密装置,其特征在于,包括:
获取模块,用于获取待加密的数据和标准AES算法的预设密钥;
生成模块,用于采用随机数生成器生成循环移位的位数r或者从预设随机源中获取随机数的方式生成循环移位的位数r,其中,r为整数,r的取值范围为0至3;
转换模块,用于将所述待加密的数据转换成第一明文方阵,将所述预设密钥转换成第一密钥方阵;
第一循环左移模块,用于将所述第一明文方阵的列循环左移r位,获得循环左移后的第二明文方阵;
第二循环左移模块,用于将所述第一密钥方阵的列循环左移r位,获得循环左移后的第二密钥方阵;
加密模块,用于基于所述第二密钥方阵对所述第二明文方阵执行AES加密,获得第一输出方阵,其中,在执行AES加密时结合抗差分能耗分析的侧信道防护方法;
循环右移模块,用于将所述第一输出方阵循环右移r列,获得第二输出方阵,以所述第二输出方阵作为加密结果。
6.如权利要求5所述的装置,其特征在于,所述加密模块具体用于:
基于密钥扩展算法对所述第二密钥方阵进行扩展,获得扩展后的密钥字;
根据所述扩展后的密钥字和所述标准AES算法,生成新对偶算法;
根据所述新对偶算法对所述第二明文方阵进行加密。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项权利要求所述的方法。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810811483.1A CN108964872B (zh) | 2018-07-23 | 2018-07-23 | 一种基于aes的加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810811483.1A CN108964872B (zh) | 2018-07-23 | 2018-07-23 | 一种基于aes的加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108964872A CN108964872A (zh) | 2018-12-07 |
CN108964872B true CN108964872B (zh) | 2020-05-26 |
Family
ID=64463463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810811483.1A Expired - Fee Related CN108964872B (zh) | 2018-07-23 | 2018-07-23 | 一种基于aes的加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108964872B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314053B (zh) * | 2018-12-12 | 2023-02-10 | 上海领甲数据科技有限公司 | 一种数据加密和解密方法 |
CN109873700B (zh) * | 2019-01-16 | 2023-10-10 | 内蒙古惠强科技有限公司 | 密钥生成方法、装置、计算机可读存储介质及终端设备 |
CN110071794B (zh) * | 2019-04-28 | 2022-06-07 | 苏州国芯科技股份有限公司 | 一种基于aes算法的信息加密方法、系统及相关组件 |
CN110572251B (zh) * | 2019-08-13 | 2020-09-22 | 武汉大学 | 一种模板攻击方法以及设备抗模板攻击的评估方法 |
US11704443B2 (en) * | 2019-11-19 | 2023-07-18 | Silicon Laboratories Inc. | Block cipher side-channel attack mitigation for secure devices |
CN112153046B (zh) * | 2020-09-24 | 2023-04-07 | 施耐德电气(中国)有限公司 | 数据加密和数据解密的方法、相关设备以及存储介质 |
CN112469036B (zh) * | 2020-10-23 | 2023-10-20 | 百果园技术(新加坡)有限公司 | 一种消息加解密方法、装置、移动终端和存储介质 |
CN112543094B (zh) * | 2020-12-07 | 2022-09-27 | 山东华翼微电子技术股份有限公司 | 一种基于多随机数的des掩码抗侧信道攻击实现方法 |
CN115643003B (zh) * | 2022-12-23 | 2023-03-14 | 飞腾信息技术有限公司 | 用于侧信道分析的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101197660A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击标准加密标准的加密方法及其加密芯片 |
CN101237321A (zh) * | 2008-02-03 | 2008-08-06 | 西北农林科技大学 | 基于循环队列移位规则的加密方法 |
WO2008106789A1 (en) * | 2007-03-06 | 2008-09-12 | Research In Motion Limited | Method and apparatus for generating a public key in a manner that counters power analysis attacks |
DE102005012098B4 (de) * | 2004-03-16 | 2010-04-08 | Samsung Electronics Co., Ltd., Suwon | Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren |
CN101729241A (zh) * | 2008-10-23 | 2010-06-09 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN104639502A (zh) * | 2013-11-08 | 2015-05-20 | 国家电网公司 | 一种sm4算法抗能量攻击的掩码方法及装置 |
CN107819569A (zh) * | 2017-12-14 | 2018-03-20 | 平安科技(深圳)有限公司 | 登录信息的加密方法及终端设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5198526B2 (ja) * | 2010-09-21 | 2013-05-15 | 株式会社東芝 | 暗号化装置および復号装置 |
-
2018
- 2018-07-23 CN CN201810811483.1A patent/CN108964872B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102005012098B4 (de) * | 2004-03-16 | 2010-04-08 | Samsung Electronics Co., Ltd., Suwon | Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren |
CN101197660A (zh) * | 2006-12-07 | 2008-06-11 | 上海安创信息科技有限公司 | 防攻击标准加密标准的加密方法及其加密芯片 |
WO2008106789A1 (en) * | 2007-03-06 | 2008-09-12 | Research In Motion Limited | Method and apparatus for generating a public key in a manner that counters power analysis attacks |
CN101237321A (zh) * | 2008-02-03 | 2008-08-06 | 西北农林科技大学 | 基于循环队列移位规则的加密方法 |
CN101729241A (zh) * | 2008-10-23 | 2010-06-09 | 国民技术股份有限公司 | 抵御差分能量攻击的aes加密方法 |
CN104639502A (zh) * | 2013-11-08 | 2015-05-20 | 国家电网公司 | 一种sm4算法抗能量攻击的掩码方法及装置 |
CN107819569A (zh) * | 2017-12-14 | 2018-03-20 | 平安科技(深圳)有限公司 | 登录信息的加密方法及终端设备 |
Non-Patent Citations (2)
Title |
---|
基于ECC和HFE的纠错密码构造;杨敏等;《计算机工程与应用》;20080921;第27卷(第44期);第105-107页 * |
能量分析攻击及其防御策略研究;李欣等;《信息安全与通信保密》;20050730(第7期);第31-32页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108964872A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108964872B (zh) | 一种基于aes的加密方法及装置 | |
US9553722B2 (en) | Generating a key based on a combination of keys | |
JP5911654B2 (ja) | 乱数生成器及びストリーム暗号 | |
US8428251B2 (en) | System and method for stream/block cipher with internal random states | |
US20130156180A1 (en) | Method And Device For Securing Block Ciphers Against Template Attacks | |
RU2502201C2 (ru) | Устройство обработки шифрования/дешифрования, способ обработки шифрования/дешифрования, устройство обработки информации и компьютерная программа | |
KR101623503B1 (ko) | Lea 블록암호의 화이트박스 암호 구현 장치 및 방법 | |
WO2016206504A1 (zh) | 一种数据加密的方法、解密的方法及装置 | |
CN107005415A (zh) | 用于加密/解密消息的块加密方法以及实现该方法的密码设备 | |
US20140270165A1 (en) | Cryptographic system based on reproducible random sequences | |
CN1989726A (zh) | 用于执行加密计算的方法和装置 | |
KR102169369B1 (ko) | 경량 블록 암호화에 대한 1차 부채널 공격에 대응하는 방법 및 이를 이용한 장치 | |
Abd Ali et al. | Novel encryption algorithm for securing sensitive information based on feistel cipher | |
CN107967414B (zh) | 微控制芯片指令加密方法、解密方法及加/解密系统 | |
CN116846542A (zh) | 一种数据加密和解密方法、装置及电子设备 | |
JP6046870B1 (ja) | テーブルネットワークの繰り返し適用のための計算装置 | |
US9049004B2 (en) | Low-power encryption apparatus and method | |
JP4586163B2 (ja) | 暗号化システム | |
CN107835070B (zh) | 一种简单的嵌入式加密方法 | |
CN106921486A (zh) | 数据加密的方法和装置 | |
CN115987490A (zh) | 一种适用于arx结构的轻量级分组密码算法白盒化构造方法 | |
CN112737767B (zh) | 抗差分功耗分析与时间攻击的消息认证码生成方法及系统 | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
Shirazi et al. | An innovative design of substitution-box using Trigonometric-Multiplicative Functions Using Square Root Arguments: A Data-driven study. | |
Bale et al. | Modification of Vigenère Cipher to Overcome Kasiski and Friedman Attacks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200526 Termination date: 20210723 |
|
CF01 | Termination of patent right due to non-payment of annual fee |