CN107437990A - 加密方法、解密方法、加密装置和解密装置 - Google Patents
加密方法、解密方法、加密装置和解密装置 Download PDFInfo
- Publication number
- CN107437990A CN107437990A CN201710828285.1A CN201710828285A CN107437990A CN 107437990 A CN107437990 A CN 107437990A CN 201710828285 A CN201710828285 A CN 201710828285A CN 107437990 A CN107437990 A CN 107437990A
- Authority
- CN
- China
- Prior art keywords
- conversion
- truth table
- ciphering process
- realized
- decrypted
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 281
- 230000008569 process Effects 0.000 claims abstract description 233
- 238000006467 substitution reaction Methods 0.000 claims abstract description 9
- 238000006073 displacement reaction Methods 0.000 claims abstract description 8
- 238000006243 chemical reaction Methods 0.000 claims description 123
- 230000009466 transformation Effects 0.000 claims description 81
- 238000000844 transformation Methods 0.000 claims description 78
- 230000017105 transposition Effects 0.000 claims description 4
- 235000013399 edible fruits Nutrition 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
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
Abstract
本发明提供了加密方法、解密方法、加密装置和解密装置,该加密方法,包括:将字节代换、行移位、列混合和轮密钥加中能够通过真值表实现的步骤通过查找真值表的方式替代,生成第一加密过程、第二加密过程、第三加密过程和第四加密过程;将明文作为当前待加密数据;S4:将当前待加密数据依次经过第一加密过程、第二加密过程、第三加密过程和第四加密过程,输出中间加密结果,加密循环次数加一;判断加密循环次数是否为加密预设值,是则执行S6,否则,执行S7;S6:将中间加密结果依次经过第一加密过程、第二加密过程和第四加密过程的处理后,输出密文;S7:将中间加密结果作为当前待加密数据,返回S4。本发明能够提高运行效率。
Description
技术领域
本发明涉及计算机技术领域,特别涉及加密方法、解密方法、加密装置和解密装置。
背景技术
随着计算机技术的快速发展,数据安全越来越受到重视,也涌现了大量的加密/解密方法。
现有技术中,有些加密/解密方法中存在大量的处理函数,在加密/解密的过程中循环调用这些处理函数,这些处理函数对应的处理步骤一般比较繁琐,运行效率较慢。
发明内容
本发明实施例提供了加密方法、解密方法、加密装置和解密装置,能够提高运行效率。
第一方面,本发明实施例提供了一种加密方法,包括:
预先分别确定的SubByte变换(字节代换)、ShiftRow变换(行移位)、MixColumn变换(列混合)和AddRoundKey变换(轮密钥加)中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程;
S1:初始化加密循环次数;
S2:获取待加密的明文;
S3:将所述明文作为当前待加密数据;
S4:将所述当前待加密数据输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程、所述第三加密过程和所述第四加密过程的处理后,输出中间加密结果,将加密循环次数加一;
S5:判断所述加密循环次数是否为加密预设值,如果是,则执行S6,否则,执行S7;
S6:将所述中间加密结果输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程和所述第四加密过程的处理后,输出所述明文对应的密文;
S7:将所述中间加密结果作为当前待加密数据,返回S4。
进一步地,
在所述预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
进一步地,
在S3之后,在S4之前,进一步包括:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4。
第二方面,本发明实施例提供了一种加密装置,包括:
加密初始化单元和加密处理单元;
所述加密初始化单元,用于分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程;
所述加密处理单元,用于执行:
S1:初始化加密循环次数;
S2:获取待加密的明文;
S3:将所述明文作为当前待加密数据;
S4:将所述当前待加密数据输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程、所述第三加密过程和所述第四加密过程的处理后,输出中间加密结果,将加密循环次数加一;
S5:判断所述加密循环次数是否为加密预设值,如果是,则执行S6,否则,执行S7;
S6:将所述中间加密结果输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程和所述第四加密过程的处理后,输出所述明文对应的密文;
S7:将所述中间加密结果作为当前待加密数据,返回S4。
进一步地,
所述加密初始化单元,进一步用于:
在所述预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
进一步地,
所述加密处理单元,进一步用于:
在S3之后,在S4之前,执行:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4。
第三方面,本发明实施例提供了一种解密方法,包括:
预先分别确定的ShiftRow逆变换(逆行移位)、SubByte逆变换(逆字节代换)、AddRoundKey变换(轮密钥加)和MixColumn逆变换(逆列混合)中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程;
包括:
A1:初始化解密循环次数;
A2:获取待解密的密文;
A3:将所述密文作为当前待解密数据;
A4:将所述当前待解密数据输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程、所述第三解密过程和所述第四解密过程的处理后,输出中间解密结果,将解密循环次数加一;
A5:判断所述解密循环次数是否为解密预设值,如果是,则执行A6,否则,执行A7;
A6:将所述中间解密结果输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程和所述第三解密过程的处理后,输出所述密文对应的明文;
A7:将所述中间解密结果作为当前待解密数据,返回A4。
进一步地,
在所述预先分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
进一步地,
在A3之后,在A4之前,进一步包括:
将所述当前待解密数据输入到所述第三解密过程中,经过所述第三解密过程处理后,生成初始解密结果;
将所述初始解密结果作为当前待解密数据,执行A4。
第四方面,本发明实施例提供了一种解密装置,包括:
解密初始化单元和解密处理单元;
所述解密初始化单元,用于分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程;
所述解密处理单元,用于执行:
A1:初始化解密循环次数;
A2:获取待解密的密文;
A3:将所述密文作为当前待解密数据;
A4:将所述当前待解密数据输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程、所述第三解密过程和所述第四解密过程的处理后,输出中间解密结果,将解密循环次数加一;
A5:判断所述解密循环次数是否为解密预设值,如果是,则执行A6,否则,执行A7;
A6:将所述中间解密结果输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程和所述第三解密过程的处理后,输出所述密文对应的明文;
A7:将所述中间解密结果作为当前待解密数据,返回A4。
进一步地,
所述解密初始化单元,进一步用于:
在所述预先分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
进一步地,
所述解密处理单元,进一步用于:
在A3之后,在A4之前,执行:
将所述当前待解密数据输入到所述第三解密过程中,经过所述第三解密过程处理后,生成初始解密结果;
将所述初始解密结果作为当前待解密数据,执行A4。
在本发明实施例中,将SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤通过查找真值表的方式替代,由于查表是一个比较简单的处理过程,避免了处理过程过于繁琐,提高了运行效率。
在本发明实施例中,将ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤通过查找真值表的方式替代,由于查表是一个比较简单的处理过程,避免了处理过程过于繁琐,提高了运行效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种加密方法的流程图;
图2是本发明一实施例提供的一种加密装置的示意图;
图3是本发明一实施例提供的一种解密方法的流程图;
图4是本发明一实施例提供的一种解密装置的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种加密方法,该方法可以包括以下步骤:
S0:预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程;
S1:初始化加密循环次数;
S2:获取待加密的明文;
S3:将所述明文作为当前待加密数据;
S4:将所述当前待加密数据输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程、所述第三加密过程和所述第四加密过程的处理后,输出中间加密结果,将加密循环次数加一;
S5:判断所述加密循环次数是否为加密预设值,如果是,则执行S6,否则,执行S7;
S6:将所述中间加密结果输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程和所述第四加密过程的处理后,输出所述明文对应的密文;
S7:将所述中间加密结果作为当前待加密数据,返回S4。
在本发明实施例中,将SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤通过查找真值表的方式替代,由于查表是一个比较简单的处理过程,避免了处理过程过于繁琐,提高了运行效率。
在本发明实施例中,能够通过真值表实现的步骤通过查找真值表的方式替代是指查找真值表的步骤与对应的能够通过真值表实现的步骤在整个SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中的位置相同。举例来说,SubByte变换分为三个步骤,分别是步骤1、步骤2和步骤3。其中,步骤2为能够通过真值表实现的步骤,步骤1和步骤3为不能通过真值表实现的步骤。将步骤2通过查找真值表的方式替代后,生成的第一加密过程中包括:步骤1、查找真值表的步骤、步骤3。在替代前的SubByte变换中,步骤1将处理结果输出给步骤2,步骤2将处理结果输出给步骤3,在第一加密过程中,步骤1将处理结果输出给查找真值表的步骤,查找真值表的步骤将处理结果输出给步骤3。
为了进一步提高运行效率,在本发明实施例中,在所述预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
由于频繁的移位运算势必会降低数据处理速度,在本发明实施例中,将移位运算通过指针的方式来代替,能够将处理过程化繁为简,降低了资源消耗,提高了运行效率。
在本发明实施例中,将移位运算通过指针和文本之间的转换的特性来实现。
举例来说,在现有技术中,加密/解密、秘钥扩展和字节与字的转换等过程都涉及到频繁移位运算,比如128位的一段秘钥,将经过10轮运算,每个分组的加密、解密分别用了120次移位运算,160次与运算,而加密/解密的密钥扩展中也分别用了120次。对大数据量的加密传输来说,其低效性是非常明显的。
例如,现有的SubByte变换的代码为:
初始状态的四个列为sl,s2,s3,s4,加密所用的T表为Te0,Tel,Te2,Te3,s0,s1,s2,s3在经过SubByte变换后的对应值为t0,t1,t2,t3。可以看出,仅一轮SubByte变换就包含4个24位移位操作、4个16位移位操作,4个8位移位操作,执行效率较低。
在本发明实施例中,采用指针的方式替代移位运算后的代码为:
p=(u8*)(&s0);//p指向s0的最低位字节
t0=Te0[*(p+3)];//相当于Te0[s0>>24]
t1=Te3[*(p)];//相当于Te3[s0&0xff]
t2=Te2[*(p+1)];//相当于Te2[(s0>>8)&0xff]
t3=Te1[*(p+2)];//相当于Te1[(s0>>16)&0xff]
p=(u8*)(&s1);//p指向s1的最低位字节
t0^=Te1[*(p+2)];
t1^=Te0[*(p+3)];
t2^=Te3[*(p)];
t3^=Te2[*(p+1)];
p=(u8*)(&s2);//p指向s2的最低位字节
t0^=Te2[*(p+1)];
t1^=Te1[*(p+2)];
t2^=Te0[*(p+3)];
t3^=Te3[*(p)];
p=(u8*)(&s3);//p指向s3的最低位字节
t0^=Te3[*(p)]^rk[4];
t1^=Te2[*(p+1)]^rk[5];
t2^=Te1[*(p+2)]^rk[6];
t3^=Te0[*(p+3)]^rk[7];
可以看出,采用指针的方式替代移位运算后的代码避免了移位运算,减少了对运行资源的消耗,提高了运行效率。
在本发明一实施例中,在S3之后,在S4之前,进一步包括:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4。
下面通过具体的例子来详细说明本发明实施例提供的一种加密方法。
假设A是输入状态,E是输出状态,K是密钥数组,用ai,j、ei,j、ki,j分别表示A、E、K中第i行第j列的元素,aj、ej、kj分别A、E、K的第j列。那么,A经过SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换后,所得的结果可表示下式:
其中,S[a0,j]、S[a1,j-1]、S[a2,j-2]和S[a3,j-3]为对应a0,j、a1,j-1、a2,j-2和a3,j-3的S-Box变换值。
在本发明实施例中,基于上式定义四个真值表T0、T1、T2、T3如下式所示。它们都是8比特输入,32比特输出的函数。
利用这四个真值表达式可将SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换表示为下式。
其中,j=0,…,N。N为加密预设值。
这样,每一轮的每一列只需四次查表操作和四次异或操作即可完成。
在本发明实施例中,加密预设值为正整数。
在本发明实施例中,SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤,采用查表方式来实现,降低了耦合性。
如图2所示,本发明实施例提供了一种加密装置,包括:
加密初始化单元201和加密处理单元202;
所述加密初始化单元201,用于分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程;
所述加密处理单元202,用于执行:
S1:初始化加密循环次数;
S2:获取待加密的明文;
S3:将所述明文作为当前待加密数据;
S4:将所述当前待加密数据输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程、所述第三加密过程和所述第四加密过程的处理后,输出中间加密结果,将加密循环次数加一;
S5:判断所述加密循环次数是否为加密预设值,如果是,则执行S6,否则,执行S7;
S6:将所述中间加密结果输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程和所述第四加密过程的处理后,输出所述明文对应的密文;
S7:将所述中间加密结果作为当前待加密数据,返回S4。
在本发明一实施例中,所述加密初始化单元,进一步用于:
在所述预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
在本发明一实施例中,所述加密处理单元,进一步用于:
在S3之后,在S4之前,执行:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4。
如图3所示,本发明实施例提供了一种解密方法,包括:
A0:预先分别确定的逆行移位ShiftRow逆变换、逆字节代换SubByte逆变换、轮密钥加AddRoundKey变换和逆列混合MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程;
A1:初始化解密循环次数;
A2:获取待解密的密文;
A3:将所述密文作为当前待解密数据;
A4:将所述当前待解密数据输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程、所述第三解密过程和所述第四解密过程的处理后,输出中间解密结果,将解密循环次数加一;
A5:判断所述解密循环次数是否为解密预设值,如果是,则执行A6,否则,执行A7;
A6:将所述中间解密结果输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程和所述第三解密过程的处理后,输出所述密文对应的明文;
A7:将所述中间解密结果作为当前待解密数据,返回A4。
在本发明实施例中,将ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤通过查找真值表的方式替代,由于查表是一个比较简单的处理过程,避免了处理过程过于繁琐,提高了运行效率。
在本发明一实施例中,在所述预先分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
当在加密方法包括以下步骤时:
在S3之后,在S4之前,进一步包括:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4;
在本发明实施例提供的一种解密方法中,
在A3之后,在A4之前,进一步包括:
将所述当前待解密数据输入到所述第三解密过程中,经过所述第三解密过程处理后,生成初始解密结果;
将所述初始解密结果作为当前待解密数据,执行A4。
在本发明一实施例中,解密预设值为正整数。加密预设值和解密预设值相等。
如图4所示,本发明实施例提供了一种解密装置,包括:
解密初始化单元401和解密处理单元402;
所述解密初始化单元401,用于分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程;
所述解密处理单元402,用于执行:
A1:初始化解密循环次数;
A2:获取待解密的密文;
A3:将所述密文作为当前待解密数据;
A4:将所述当前待解密数据输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程、所述第三解密过程和所述第四解密过程的处理后,输出中间解密结果,将解密循环次数加一;
A5:判断所述解密循环次数是否为解密预设值,如果是,则执行A6,否则,执行A7;
A6:将所述中间解密结果输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程和所述第三解密过程的处理后,输出所述密文对应的明文;
A7:将所述中间解密结果作为当前待解密数据,返回A4。
在本发明一实施例中,所述解密初始化单元,进一步用于:
在所述预先分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
当加密装置中的具有以下功能时:
加密处理单元,进一步用于:
在S3之后,在S4之前,执行:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4;
在本发明实施例提供的一种解密装置中,所述解密处理单元,进一步用于:
在A3之后,在A4之前,执行:
将所述当前待解密数据输入到所述第三解密过程中,经过所述第三解密过程处理后,生成初始解密结果;
将所述初始解密结果作为当前待解密数据,执行A4。
本发明各个实施例至少具有如下有益效果:
1、在本发明实施例中,将SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤通过查找真值表的方式替代,由于查表是一个比较简单的处理过程,避免了处理过程过于繁琐,提高了运行效率。
2、由于频繁的移位运算势必会降低数据处理速度,在本发明实施例中,将移位运算通过指针的方式来代替,能够将处理过程化繁为简,降低了资源消耗,提高了运行效率。
3、在本发明实施例中,将ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤通过查找真值表的方式替代,由于查表是一个比较简单的处理过程,避免了处理过程过于繁琐,提高了运行效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃····〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种加密方法,其特征在于,包括:
预先分别确定的字节代换SubByte变换、行移位ShiftRow变换、列混合MixColumn变换和轮密钥加AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程;
包括:
S1:初始化加密循环次数;
S2:获取待加密的明文;
S3:将所述明文作为当前待加密数据;
S4:将所述当前待加密数据输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程、所述第三加密过程和所述第四加密过程的处理后,输出中间加密结果,将加密循环次数加一;
S5:判断所述加密循环次数是否为加密预设值,如果是,则执行S6,否则,执行S7;
S6:将所述中间加密结果输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程和所述第四加密过程的处理后,输出所述明文对应的密文;
S7:将所述中间加密结果作为当前待加密数据,返回S4。
2.根据权利要求1所述的方法,其特征在于,
在所述预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
3.根据权利要求1或2所述的方法,其特征在于,
在S3之后,在S4之前,进一步包括:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4。
4.一种加密装置,其特征在于,包括:
加密初始化单元和加密处理单元;
所述加密初始化单元,用于分别确定的字节代换SubByte变换、行移位ShiftRow变换、列混合MixColumn变换和轮密钥加AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程;
所述加密处理单元,用于执行:
S1:初始化加密循环次数;
S2:获取待加密的明文;
S3:将所述明文作为当前待加密数据;
S4:将所述当前待加密数据输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程、所述第三加密过程和所述第四加密过程的处理后,输出中间加密结果,将加密循环次数加一;
S5:判断所述加密循环次数是否为加密预设值,如果是,则执行S6,否则,执行S7;
S6:将所述中间加密结果输入到所述第一加密过程,依次经过所述第一加密过程、所述第二加密过程和所述第四加密过程的处理后,输出所述明文对应的密文;
S7:将所述中间加密结果作为当前待加密数据,返回S4。
5.根据权利要求4所述的装置,其特征在于,
所述加密初始化单元,进一步用于:
在所述预先分别确定的SubByte变换、ShiftRow变换、MixColumn变换和AddRoundKey变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成SubByte变换对应的第一加密过程、ShiftRow变换对应的第二加密过程、MixColumn变换对应的第三加密过程和AddRoundKey变换对应的第四加密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代;
和/或,
所述加密处理单元,进一步用于:
在S3之后,在S4之前,执行:
将所述当前待加密数据输入到所述第四加密过程中,经过所述第四加密过程处理后,生成初始加密结果;
将所述初始加密结果作为当前待加密数据,执行S4。
6.一种解密方法,其特征在于,包括:
预先分别确定的逆行移位ShiftRow逆变换、逆字节代换SubByte逆变换、轮密钥加AddRoundKey变换和逆列混合MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程;
包括:
A1:初始化解密循环次数;
A2:获取待解密的密文;
A3:将所述密文作为当前待解密数据;
A4:将所述当前待解密数据输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程、所述第三解密过程和所述第四解密过程的处理后,输出中间解密结果,将解密循环次数加一;
A5:判断所述解密循环次数是否为解密预设值,如果是,则执行A6,否则,执行A7;
A6:将所述中间解密结果输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程和所述第三解密过程的处理后,输出所述密文对应的明文;
A7:将所述中间解密结果作为当前待解密数据,返回A4。
7.根据权利要求6所述的方法,其特征在于,
在所述预先分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代。
8.根据权利要求6或7所述的方法,其特征在于,
在A3之后,在A4之前,进一步包括:
将所述当前待解密数据输入到所述第三解密过程中,经过所述第三解密过程处理后,生成初始解密结果;
将所述初始解密结果作为当前待解密数据,执行A4。
9.一种解密装置,其特征在于,包括:
解密初始化单元和解密处理单元;
所述解密初始化单元,用于分别确定的逆行移位ShiftRow逆变换、逆字节代换SubByte逆变换、轮密钥加AddRoundKey变换和逆列混合MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤,分别将能够通过真值表实现的步骤通过查找真值表的方式替代,生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程;
所述解密处理单元,用于执行:
A1:初始化解密循环次数;
A2:获取待解密的密文;
A3:将所述密文作为当前待解密数据;
A4:将所述当前待解密数据输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程、所述第三解密过程和所述第四解密过程的处理后,输出中间解密结果,将解密循环次数加一;
A5:判断所述解密循环次数是否为解密预设值,如果是,则执行A6,否则,执行A7;
A6:将所述中间解密结果输入到所述第一解密过程,依次经过所述第一解密过程、所述第二解密过程和所述第三解密过程的处理后,输出所述密文对应的明文;
A7:将所述中间解密结果作为当前待解密数据,返回A4。
10.根据权利要求9所述的装置,其特征在于,
所述解密初始化单元,进一步用于:
在所述预先分别确定的ShiftRow逆变换、SubByte逆变换、AddRoundKey变换和MixColumn逆变换中能够通过真值表实现的步骤和不能通过真值表实现的步骤之后,
在所述生成ShiftRow逆变换对应的第一解密过程、SubByte逆变换对应的第二解密过程、AddRoundKey变换对应的第三解密过程和MixColumn逆变换对应的第四解密过程之前,进一步包括:
分别将不能通过真值表实现的步骤中的移位运算通过指针的方式替代;
和/或,
所述解密处理单元,进一步用于:
在A3之后,在A4之前,执行:
将所述当前待解密数据输入到所述第三解密过程中,经过所述第三解密过程处理后,生成初始解密结果;
将所述初始解密结果作为当前待解密数据,执行A4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710828285.1A CN107437990A (zh) | 2017-09-14 | 2017-09-14 | 加密方法、解密方法、加密装置和解密装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710828285.1A CN107437990A (zh) | 2017-09-14 | 2017-09-14 | 加密方法、解密方法、加密装置和解密装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107437990A true CN107437990A (zh) | 2017-12-05 |
Family
ID=60461620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710828285.1A Pending CN107437990A (zh) | 2017-09-14 | 2017-09-14 | 加密方法、解密方法、加密装置和解密装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107437990A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474928A (zh) * | 2018-11-07 | 2019-03-15 | 电子科技大学 | 在移动群智感知系统中实现高效隐私保护的真值发现方法 |
CN109598134A (zh) * | 2018-12-07 | 2019-04-09 | 北京宏思电子技术有限责任公司 | 一种分组加密算法的高速运行方法和高速运行装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7106860B1 (en) * | 2001-02-06 | 2006-09-12 | Conexant, Inc. | System and method for executing Advanced Encryption Standard (AES) algorithm |
CN106506141A (zh) * | 2016-10-17 | 2017-03-15 | 中国电子技术标准化研究院 | 一种基于fpga的dcs数据加密方法 |
CN106599723A (zh) * | 2016-12-19 | 2017-04-26 | 武汉斗鱼网络科技有限公司 | 一种文件加密方法及装置、文件解密方法及装置 |
CN106850221A (zh) * | 2017-04-10 | 2017-06-13 | 四川阵风科技有限公司 | 信息加密、解密方法及装置 |
-
2017
- 2017-09-14 CN CN201710828285.1A patent/CN107437990A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7106860B1 (en) * | 2001-02-06 | 2006-09-12 | Conexant, Inc. | System and method for executing Advanced Encryption Standard (AES) algorithm |
CN106506141A (zh) * | 2016-10-17 | 2017-03-15 | 中国电子技术标准化研究院 | 一种基于fpga的dcs数据加密方法 |
CN106599723A (zh) * | 2016-12-19 | 2017-04-26 | 武汉斗鱼网络科技有限公司 | 一种文件加密方法及装置、文件解密方法及装置 |
CN106850221A (zh) * | 2017-04-10 | 2017-06-13 | 四川阵风科技有限公司 | 信息加密、解密方法及装置 |
Non-Patent Citations (2)
Title |
---|
夏冰: "加密电子监控档案的方法", 《HTTP://WWW.JIAMISOFT.COM/BLOG/11737-JIAMIDIANZIJIANKANGDANGAN.HTML》 * |
胡晓婷等: ""OpenSSL中AES算法的研究与优化"", 《微计算机信息》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109474928A (zh) * | 2018-11-07 | 2019-03-15 | 电子科技大学 | 在移动群智感知系统中实现高效隐私保护的真值发现方法 |
CN109474928B (zh) * | 2018-11-07 | 2020-06-16 | 电子科技大学 | 在移动群智感知系统中实现高效隐私保护的真值发现方法 |
CN109598134A (zh) * | 2018-12-07 | 2019-04-09 | 北京宏思电子技术有限责任公司 | 一种分组加密算法的高速运行方法和高速运行装置 |
CN109598134B (zh) * | 2018-12-07 | 2023-05-30 | 北京宏思电子技术有限责任公司 | 一种分组加密算法的高速运行方法和高速运行装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1993922B (zh) | 流密码组合系统和方法 | |
CN1322697C (zh) | 加密装置与加密方法 | |
Moldovyan et al. | A cipher based on data-dependent permutations | |
JP5272417B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
CN103503362B (zh) | 数据处理装置、数据处理方法以及程序 | |
US11606189B2 (en) | Method and apparatus for improving the speed of advanced encryption standard (AES) decryption algorithm | |
CN107257279A (zh) | 一种明文数据加密方法及设备 | |
CN109768854A (zh) | 一种轻量级分组密码算法Wheel的实现方法 | |
CN110880967B (zh) | 采用分组对称密钥算法对多消息并行加解密方法 | |
CN107204841B (zh) | 一种抵御差分功耗攻击的分组密码多s盒实现的方法 | |
US8370411B2 (en) | Generating unique random numbers for multiple instantiations | |
CN112636899A (zh) | 一种轻量化s盒设计方法 | |
CN107437990A (zh) | 加密方法、解密方法、加密装置和解密装置 | |
CN104618092A (zh) | 一种信息加密方法及系统 | |
CN101958790A (zh) | 无线通信网络数字信息加密或解密方法 | |
Murtaza et al. | Fortification of aes with dynamic mix-column transformation | |
CN105577362B (zh) | 一种应用于aes算法的字节替换方法及系统 | |
CN109033847A (zh) | Aes加密运算单元、aes加密电路及其加密方法 | |
CN110213037B (zh) | 一种适合硬件环境的流密码加密方法及系统 | |
US20100128870A1 (en) | Pseudo-random number generation device, program, and method for stream encoding | |
Polimón et al. | Automated design of a lightweight block cipher with genetic programming | |
Rajashekarappa et al. | Study on cryptanalysis of the tiny encryption algorithm | |
CN109962766A (zh) | 基于ieee802-15-4标准的安全服务协处理器的实现方法 | |
TWI776474B (zh) | 單回合高階加密標準電路模組 | |
Algazy et al. | Investigation of the different implementations for the new cipher Qamal |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171205 |
|
RJ01 | Rejection of invention patent application after publication |