CN112910630B - 扩展密钥的置换方法及装置 - Google Patents
扩展密钥的置换方法及装置 Download PDFInfo
- Publication number
- CN112910630B CN112910630B CN202110144438.7A CN202110144438A CN112910630B CN 112910630 B CN112910630 B CN 112910630B CN 202110144438 A CN202110144438 A CN 202110144438A CN 112910630 B CN112910630 B CN 112910630B
- Authority
- CN
- China
- Prior art keywords
- keys
- group
- key
- round
- replacement
- 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.)
- Active
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种扩展密钥的置换方法及装置,包括:将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;确定第一组置换密钥与第i组置换密钥的组合为扩展密钥的置换密钥。通过本发明,解决了对称加密算法安全性较低的问题。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种扩展密钥的置换方法及装置。
背景技术
随着科学技术的发展,敏感数据的保护越来越受到人们的重视。由于个人敏感数据覆盖面较广,逐渐引起了大量攻击者的窥探。而对称加密算法因其算法特点(加解密使用同一个密钥,且算法运行过程中密钥会以明文的形式暴露在内存中),使得越来越多的攻击者使用先进的技术对算法运行时进行动态调试,从而获取密钥明文。
针对以上问题,业界根据对称加密算法的实现逻辑提出了白盒密码,通过结合代数、概率、混淆、软件保护、信息隐藏等知识,将密钥融合入查找表中,使得攻击者无法获取到明文密钥。但白盒密码也存在一定的问题,特别是在工程实施时,如白盒密码需配合查找表(密钥固定在查找表中,且一个密钥对应一份查找表,用户无法自己设定密钥),且白盒密码强度取决于查找表的大小(表越大,强度越高)等。
针对相关技术中,对称加密算法安全性较低的问题,目前尚未存在有效的解决方案。
发明内容
本发明实施例提供了一种扩展密钥的置换方法及装置,以至少解决相关技术中对称加密算法安全性较低的问题。
根据本发明的一个实施例,提供了一种扩展密钥的置换方法,包括:将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥。
可选地,所述方法包括:建立i与j之间第一映射关系,并将所述第一映射关系存储在第一映射关系表中。
可选地,所述方法包括:获取轮密钥的下角标k,其中,k是自然数;在所述轮密钥的下角标k为0的情况下,确定所述轮密钥为第一组轮密钥;在所述轮密钥的下角标k大于0的情况下,确定所述轮密钥为第i组轮密钥,其中,i=k+1。
可选地,在将扩展密钥的第一组轮密钥与随机初始值进行异或操作之前,所述方法还包括:将对称密钥进行扩展,得到所述扩展密钥。
根据本发明的一个实施例,提供了一种扩展密钥的还原方法,包括:将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥。
可选地,在将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作之前,所述方法还包括:在第一映射关系表中确定与i具有第一映射关系的j;获取所述第j组轮密钥。
根据本发明的另一个实施例,提供了一种扩展密钥的置换装置,包括:第一操作模块,用于将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;第二操作模块,用于将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;第一确定模块,用于确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥。
根据本发明的另一个实施例,提供了一种扩展密钥的还原装置,包括:第三操作模块,用于将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;第四操作模块,用于将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;第二确定模块,用于确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,由于将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,第i组轮密钥是扩展密钥中除第一组轮密钥之外的密钥,i>1,1≤j≤i;确定第一组置换密钥与i组置换密钥的组合为所述扩展密钥的置换密钥。因此,可以达到对扩展密钥进行置换的目的,达到提高安全性的效果,进而可以解决对称加密算法安全性较低的问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种扩展密钥的置换方法的移动终端的硬件结构框图;
图2是根据本发明实施例的扩展密钥的置换方法的流程图;
图3是根据本发明可选实施例的扩展密钥置换方法的流程示意图;
图4是根据本发明实施例的扩展密钥的还原方法的流程图;
图5是根据本发明可选实施例的密钥还原流程示意图;
图6是根据本发明实施例的扩展密钥的置换装置的结构框图;
图7是根据本发明实施例的扩展密钥的还原装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种扩展密钥的置换方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的扩展密钥的置换方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的扩展密钥的置换方法,图2是根据本发明实施例的扩展密钥的置换方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;
步骤S204,将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;
步骤S206,确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥。
通过上述步骤,由于将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,第i组轮密钥是扩展密钥中除第一组轮密钥之外的密钥,i>1,1≤j≤i;确定第一组置换密钥与i组置换密钥的组合为所述扩展密钥的置换密钥。因此,可以达到对扩展密钥进行置换的目的,达到提高安全性的效果,进而可以解决对称加密算法安全性较低的问题。
可选地,上述步骤的执行主体可以为终端等,但不限于此。
作为一个可选的实施方式,可以包括扩展密钥的置换方法可以包括密钥映射模块,其中,密钥映射模块用于计算扩展密钥时,对每个扩展密钥数组进行运算随机置换,使得最终生成的密钥为置换后的密钥,可以将得到的置换密钥记为Key’。
密钥映射模块主要用于对轮密钥随机置换等操作,从而保证轮密钥不以明文进行显示。其中的随机置换,需保证在密钥还原模块中根据该置换方式进行还原。本提案提供一种基于随机数的运算随机置换方式,如图3所示是根据本发明可选实施例的扩展密钥置换方法的流程示意图,其中,包括:
针对输入的扩展密钥进行判断,若为第一组轮密钥,则生成随机初始值r,使用r与第一组轮密钥w[0]进行异或,得到第一组轮密钥的第一组置换密钥w[0]’;
若是第i组轮密钥,第i组轮密钥是扩展密钥中除了第一组轮密钥之外的其他组轮密钥,如第2组轮密钥w[1]、第3组轮密钥w[2]等。则从0至i之间随机选择j,并记录i与j的对应关系,使用第i组轮密钥w[i-1]与第j组轮密钥w[j-1]进行异或,得到第i组轮密钥的第i组置换密钥w[i-1]’。
可将以上逻辑归纳为如下表达式:
其中,当i=1时,w[i-1]为第一组轮密钥,当i>1时,w[i-1]为第i组轮密钥。
随机初始值r以及i与j的对应关系作为关键信息,需使用代码混淆等保护措施防止动态调试获取内存中这两个关键信息。
可选地,所述方法包括:建立i与j之间第一映射关系,并将所述第一映射关系存储在第一映射关系表中。
作为一个可选的实施方式,为了将置换密钥可以还原成扩展密钥,可以将i与j的映射关系进行记录保存,这样在密钥还原时,可以通过查找映射关系表即可确定与第i组轮密钥具有映射关系的第j组轮密钥,进而通过第i组置换密钥与第j组轮密钥进行异或即可还原成第i组轮密钥。在本实施例中,通过建立i与j的映射关系,可以达到对置换密钥进行还原的目的。
可选地,所述方法包括:获取轮密钥的下角标k,其中,k是自然数;在所述轮密钥的下角标k为0的情况下,确定所述轮密钥为第一组轮密钥;在所述轮密钥的下角标k大于0的情况下,确定所述轮密钥为第i组轮密钥,其中,i=k+1。
作为一个可选的实施方式,扩展密钥中的每组轮密钥可以用w[k]表示,例如,w[0]表示扩展密钥中的第一组轮密钥,w[1]表示扩展密钥中的第二组轮密钥。在本实施例中可以通过判断k值确定是第一组轮密钥还是第i组轮密钥,若k值为0则w[0]是第一组轮密钥,若k值不为0,则w[k]是第i组轮密钥。本实施例通过判断k值是否为0判断扩展密钥中的第一组轮密钥和第i组轮密钥,可以达到提高密钥置换速率的效果。
可选地,在将扩展密钥的第一组轮密钥与随机初始值进行异或操作之前,所述方法还包括:将对称密钥进行扩展,得到所述扩展密钥。
作为一个可选的实施方式,作为一个可选的实施方式,对称加密算法作为应用较早的加密算法,其技术较成熟,目前主要使用的有DES、3DES、AES等。其中AES的密钥长度可以使用128位、192位或256位。本申请以128位密钥为例进行说明。
AES128的实现过程如下:对密钥Key进行扩展,扩展为轮密钥(Roundkeys),之后以128bit(16字节)为单位进行加密;加密过程主要包含4步,分别是字节代换(SubBytes)、行位移(ShiftRows)、列混合(MixColumns)、轮密钥加(AddRoundKey)。这4步操作根据密钥长度大小,分别进行10、12、14轮。最后一轮不进行MixColumns操作,最终得到的state即为输出的密文。在本实施例中,对称密钥的扩展可以采用现有技术中的密钥扩展方法。
在本实施例中提供了一种扩展密钥的还原方法,图4是根据本发明实施例的扩展密钥的还原方法的流程图,如图4所示,该流程包括:
步骤S402,将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;
步骤S404,将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i是大于1的自然数,j大于1且小于i;
步骤S406,确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥。
作为一个可选的实施方式,密钥还原模块主要用于在AES加解密运算RaddRoundKey过程中,数据state与轮密钥进行异或操作时还原轮密钥。
可以推导出:使用第j组轮密钥异或第i组置换密钥可以得到第i组轮密钥的原始值,故密钥还原模块进行的是密码映射模块的逆运算,即通过随机初始值r以及i与j的对应关系,对传入的扩展密钥进行异或运算,得到原始轮密钥。
可选地,在将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作之前,所述方法还包括:在第一映射关系表中确定与i具有第一映射关系的j;获取所述第j组轮密钥。
作为一个可选的实施方式,如图5所示是根据本发明可选实施例的密钥还原流程示意图,其中,包括:
针对输入的置换密钥进行判断,若为第一组置换密钥,则读取随机初始值r,使用r与第一组置换密钥进行异或,得到第一组轮密钥并返回;若i不为第一组置换密钥,则根据i与j的关系获取第j组轮密钥,使用第j组轮密钥与第i组置换密钥进行异或,得到第i组轮密钥并返回。
可将以上逻辑归纳为如下表达式:
其中,当i=1时,w[i-1]为第一组轮密钥,w'[i-1]为第一组置换密钥;当i>1时,w[i-1]为第i组轮密钥,w'[i-1]为第i组置换密钥。
因密钥在密钥扩展、AddRoundKey等计算过程中会短暂的出现明文,故为了保护密钥在软件不安全的环境下免遭动态调试攻击的风险,故需要对整个计算过程进行代码混淆等保护,从而保证密钥的安全性。
本申请通过对密钥的随机置换运算,使得密钥在整个加解密运算过程中不会以全明文的形式存在于内存中,从而有效的避免了攻击者的动态调试,最终达到保护密钥的目的;通过对当前对称加密算法(特别是AES)密钥处理逻辑的修改来保证密钥的安全性,使得对称加密算法实现的代码量增长较少,从而避免了因引入白盒密码导致软件大小膨胀的问题;通过对当前对称加密算法(特别是AES)密钥处理逻辑的修改来保证密钥的安全性,用户可以根据自身业务,使用多个不同的密钥实现对应业务数据的加解密,从而避免了不同的业务因使用白盒密码,只能使用相同的密钥对数据进行加解密的缺点。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种扩展密钥的置换装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6是根据本发明实施例的扩展密钥的置换装置的结构框图,如图6所示,该装置包括:第一操作模块62,用于将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;第二操作模块64,用于将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;第一确定模块66,用于确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥。
可选地,上述装置还用于建立i与j之间第一映射关系,并将所述第一映射关系存储在第一映射关系表中。
可选地,上述装置还用于获取轮密钥的下角标k,其中,k是自然数;在所述轮密钥的下角标k为0的情况下,确定所述轮密钥为第一组轮密钥;在所述轮密钥的下角标k大于0的情况下,确定所述轮密钥为第i组轮密钥,其中,i=k+1。
可选地,上述装置还用于在将扩展密钥的第一组轮密钥与随机初始值进行异或操作之前,将对称密钥进行扩展,得到所述扩展密钥。
在本实施例中还提供了一种扩展密钥的还原装置,图7是根据本发明实施例的扩展密钥的还原装置的结构框图,如图7所示,该装置包括:第三操作模块72,用于将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;第四操作模块74,用于将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;第二确定模块76,用于确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥。
可选地,上述装置还用于,在将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作之前,在第一映射关系表中确定与i具有第一映射关系的j;获取所述第j组轮密钥。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;
S2,将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;
S3,确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥。
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
S1,将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;
S2,将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;
S3,确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;
S2,将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i;
S3,确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥。
可选地,处理器还可以被设置为通过计算机程序执行以下步骤:
S1,将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;
S2,将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;
S3,确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种扩展密钥的置换方法,其特征在于,包括:
将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;
将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i,j是随机选择得到的;
确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥;
所述方法还包括:建立i与j之间第一映射关系,并将所述第一映射关系存储在第一映射关系表中。
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
获取轮密钥的下角标k,其中,k是自然数;
在所述轮密钥的下角标k为0的情况下,确定所述轮密钥为第一组轮密钥;
在所述轮密钥的下角标k大于0的情况下,确定所述轮密钥为第i组轮密钥,其中,i=k+1。
3.根据权利要求1所述的方法,其特征在于,在将扩展密钥的第一组轮密钥与随机初始值进行异或操作之前,所述方法还包括:
将对称密钥进行扩展,得到所述扩展密钥。
4.一种扩展密钥的还原方法,其特征在于,包括:
将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;
将置换密钥的第i组置换密钥与所述第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;
确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥;
在将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作之前,所述方法还包括:在第一映射关系表中确定与i具有第一映射关系的j;获取所述第j组轮密钥,其中,j是在生成所述第i组置换密钥的过程中随机选择的。
5.一种扩展密钥的置换装置,其特征在于,包括:
第一操作模块,用于将扩展密钥的第一组轮密钥与随机初始值进行异或操作,得到第一组置换密钥;
第二操作模块,用于将扩展密钥的第i组轮密钥与第j组轮密钥进行异或操作,得到第i组置换密钥,其中,所述第i组轮密钥是所述扩展密钥中除所述第一组轮密钥之外的密钥,i>1,1≤j≤i,j是随机选择得到的;
第一确定模块,用于确定所述第一组置换密钥与所述第i组置换密钥的组合为所述扩展密钥的置换密钥;
所述装置还用于,建立i与j之间第一映射关系,并将所述第一映射关系存储在第一映射关系表中。
6.一种扩展密钥的还原装置,其特征在于,包括:
第三操作模块,用于将置换密钥的第一组置换密钥与随机初始值执行异或操作,得到第一组轮密钥;
第四操作模块,用于将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作,得到第i组轮密钥,其中,i>1,1≤j≤i;
第二确定模块,用于确定所述第一组轮密钥与所述第i组轮密钥的组合为置换密钥对应的扩展密钥;
所述装置还用于,在将置换密钥的第i组置换密钥与第j组轮密钥进行异或操作之前,在第一映射关系表中确定与i具有第一映射关系的j;获取所述第j组轮密钥,其中,j是在生成所述第i组置换密钥的过程中随机选择的。
7.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述程序可被终端设备或计算机运行时执行所述权利要求1至3或4任一项中所述的方法。
8.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至3或4任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110144438.7A CN112910630B (zh) | 2021-02-02 | 2021-02-02 | 扩展密钥的置换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110144438.7A CN112910630B (zh) | 2021-02-02 | 2021-02-02 | 扩展密钥的置换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112910630A CN112910630A (zh) | 2021-06-04 |
CN112910630B true CN112910630B (zh) | 2022-12-06 |
Family
ID=76121567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110144438.7A Active CN112910630B (zh) | 2021-02-02 | 2021-02-02 | 扩展密钥的置换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112910630B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117131517B (zh) * | 2023-10-27 | 2024-03-19 | 鼎铉商用密码测评技术(深圳)有限公司 | 加密算法的安全性检测方法、终端设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993922A (zh) * | 2004-07-30 | 2007-07-04 | 英特尔公司 | 流密码组合系统和方法 |
CN101478392A (zh) * | 2009-01-19 | 2009-07-08 | 山东大学 | 利用vlsi实现128位密钥长度aes算法的装置 |
CN104601321A (zh) * | 2013-10-31 | 2015-05-06 | 上海复旦微电子集团股份有限公司 | 密钥扩展方法和装置 |
CN109218008A (zh) * | 2017-07-05 | 2019-01-15 | 北京同方微电子有限公司 | 一种针对sm4密钥扩展算法的模板攻击方法 |
WO2020101325A1 (ko) * | 2018-11-13 | 2020-05-22 | (주)블루팝콘 | 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966279B2 (en) * | 2010-12-21 | 2015-02-24 | Apple Inc. | Securing the implementation of a cryptographic process using key expansion |
KR101977823B1 (ko) * | 2012-04-02 | 2019-05-13 | 삼성전자주식회사 | 랜덤 순열 생성 방법, 랜덤 순열 생성 장치 및 이를 구비하는 암복호화 장치 |
US9602273B2 (en) * | 2015-05-06 | 2017-03-21 | Nxp B.V. | Implementing key scheduling for white-box DES implementation |
CN106209358B (zh) * | 2016-07-12 | 2019-03-12 | 黑龙江大学 | 一种基于长密钥的sm4密钥扩展算法的实现系统及其方法 |
CN106411518B (zh) * | 2016-09-26 | 2019-05-07 | 北京梆梆安全科技有限公司 | 一种密钥不固定的对称白盒加密方法和装置 |
CN108123791B (zh) * | 2017-12-26 | 2019-03-08 | 衡阳师范学院 | 一种轻量级分组密码scs的实现方法与装置 |
CN112202547B (zh) * | 2020-11-11 | 2022-04-12 | 衡阳师范学院 | 一种轻量级分组密码gfcs实现方法、装置及可读存储介质 |
-
2021
- 2021-02-02 CN CN202110144438.7A patent/CN112910630B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1993922A (zh) * | 2004-07-30 | 2007-07-04 | 英特尔公司 | 流密码组合系统和方法 |
CN101478392A (zh) * | 2009-01-19 | 2009-07-08 | 山东大学 | 利用vlsi实现128位密钥长度aes算法的装置 |
CN104601321A (zh) * | 2013-10-31 | 2015-05-06 | 上海复旦微电子集团股份有限公司 | 密钥扩展方法和装置 |
CN109218008A (zh) * | 2017-07-05 | 2019-01-15 | 北京同方微电子有限公司 | 一种针对sm4密钥扩展算法的模板攻击方法 |
WO2020101325A1 (ko) * | 2018-11-13 | 2020-05-22 | (주)블루팝콘 | 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법 |
CN112199696A (zh) * | 2020-10-09 | 2021-01-08 | 西安电子科技大学 | 基于白盒分组密码的加解密方法 |
Non-Patent Citations (1)
Title |
---|
AES密钥扩展算法的研究;何丰等;《微电子学与计算机》;20171005(第10期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112910630A (zh) | 2021-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105940439B (zh) | 使用排列应对对密码算法的旁通道攻击的对策 | |
Saraf et al. | Text and image encryption decryption using advanced encryption standard | |
CN104468089A (zh) | 数据保护装置及其方法 | |
US10790962B2 (en) | Device and method to compute a block cipher | |
EP2367316B1 (en) | Method and circuitry for detecting a fault attack | |
US10547449B2 (en) | Protection against relay attacks in a white-box implementation | |
CN109428867A (zh) | 一种报文加解密方法、网路设备及系统 | |
CN111066077B (zh) | 加密装置、加密方法、解密装置以及解密方法 | |
US9847879B2 (en) | Protection against passive sniffing | |
CN112054896B (zh) | 白盒加密方法、装置、终端及存储介质 | |
KR20170097509A (ko) | 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말 | |
CN112910630B (zh) | 扩展密钥的置换方法及装置 | |
US8958556B2 (en) | Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component | |
CN111373464B (zh) | 加密装置、加密方法、解密装置以及解密方法 | |
Riaz et al. | Development of a secure SMS application using advanced encryption standard (AES) on android platform | |
Kofuji | Performance analysis of encryption algorithms on mobile devices | |
CN115766244A (zh) | 车联网信息加密方法、装置、计算机设备和存储介质 | |
CN116248316A (zh) | 文件加密方法、文件解密方法、装置及存储介质 | |
CN104363584B (zh) | 一种短消息加、解密的方法、装置及终端 | |
Kenekayoro Patrick | The data encryption standard thirty four years later: An overview | |
EP3258639A1 (en) | Cryptography apparatus protected against side-channel attack using constant hamming weight substitution-box | |
Huang et al. | A 3D encryption with shifting mapping substitution mechanism | |
EP2293488B1 (en) | Method for cryptographic processing of data units | |
Das et al. | A Fault Based Attack on MDS-AES. | |
CN110138811B (zh) | 一种用于物联网数据传输的加密方法 |
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 |