CN1697369A - 分组密码加密解密的方法及其加密解密器 - Google Patents

分组密码加密解密的方法及其加密解密器 Download PDF

Info

Publication number
CN1697369A
CN1697369A CN 200510013807 CN200510013807A CN1697369A CN 1697369 A CN1697369 A CN 1697369A CN 200510013807 CN200510013807 CN 200510013807 CN 200510013807 A CN200510013807 A CN 200510013807A CN 1697369 A CN1697369 A CN 1697369A
Authority
CN
China
Prior art keywords
key
input
ciphertext
register
circuit
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
Application number
CN 200510013807
Other languages
English (en)
Inventor
武优西
武金木
洪流涛
姚芳
李艳
刘依
张邑博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hebei University of Technology
Hebei Polytechnic University
Original Assignee
Hebei University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hebei University of Technology filed Critical Hebei University of Technology
Priority to CN 200510013807 priority Critical patent/CN1697369A/zh
Publication of CN1697369A publication Critical patent/CN1697369A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明涉及一种分组密码加密解密的方法及其加密解密器。使用一个变动的Key,每个、或者每几个分组使用一个不同的Key,这样可以使用Key1,Key2,Key3..........。加密后的密文再换一次密钥加密一遍或分组重复多遍;包括先是每个分组加密多遍,然后再进行下一个分组的加密和整个明文加密完后再换一个密钥重新加密,可以重复多编。本发明进一步提高了分组密码加密的强度。在不增加分组长度的情况下提高加密强度,既达到相同的加密强度,又可以使加密设备做得更简单。利用本发明可以设计出加密强度可以大于2n的加密方法,适用于一切可以利用分组密码加密的场合,可以用于存储的数字量加密,又可以用于传输的数字信号加密,还可以用于实时系统的加密中。

Description

分组密码加密解密的方法及其加密解密器
技术领域
本发明涉及数据传输或存储过程中的加密技术,特别是一种分组密码加密解密的方法及其加密解密器,本发明可以进一步提高分组密码加密的强度。
技术背景
21世纪是信息化的时代,信息日益网络化,体现在商务电子化、金融电子化、政府办公网络化等方面,随之而来的信息的安全与保密就变得越来越重要,而加密技术又是信息安全的基础,加密强度、加密速度都要提高,加密成本要降低。随着计算技术的飞速发展,破密能力也惊人地发展,这就使得加密技术面临严峻的挑战。在20世纪末,一路领先的美国的DES已被攻破,还有一些其它分组密码,比如DES的变形(包括NewDES、多重DES、白化了的DES、s-盒可选择的DES、s-盒可变的DES、使用独立子密钥的DES、广义DES等),Rc系列分组密码(包括RC2、RC5、RC6等)Lucifer、Madryga、Feal-N、RedocII、RedocIII、LOKI系列分组密码(包括LOKI89、LOKI91、LOKI97等),Khufa、Khafre、Safer系列分组密码(包括Safer64、Safer128、Safer+等),MMB、CAST、3WAY、TEA、MacGuffin、SHARK、BEAR、LION、CA.1.1、CRAB、Blowfish、GOST、SQUARE、MISTY、SXAL8、MBAL、Akelarre、15个AES候选算法等;目前国际公开的分组密码不下100种,包括2001年美国出台的AES,在这些算法中并没有引进新的思维、新的概念、新的理论,只能依靠提高分组长度来提高加密强度,且破密能力与加密能力正在同步增长。中国专利z199107959.8公开了一种排列码加密解密方法及其排列码加密解密器。
发明内容
本发明的目的是提供一种分组密码加密解密的方法及其加密解密器,可以克服现有技术的缺点和不足。本发明也是对现有技术的改进,提出了一种新的加密概念模型构成和方法,以求达到在不增加分组长度的情况下提高加密强度,并且与其它加密解密方法相比,可达到相同的加密强度,又可以使加密设备做得更简单。使用排列码加密法时,当分组长度n=4时就可以做到有足够大的加密强度,比n=64的DES的加密强度还大。分组长度小,就可以是加解密设备做得更简单。
本发明对于任意的分组密码,基本构成:
设明文为:m1,m2,m3.........。
对应的密文为:c1,c2,c3.........。
Key为密钥。f(m,Key)是分组加密函数,f-1(c,Key)是分组解密函数。
现有的加密方法是:c1=f(m1,Key),c2=f(m2,Key),c3=f(m3,Key).........。
现有的解密方法是:m1=f-1(c1,Key),m2=f-1(c2,Key),m3=f-1(c3,Key).........。
为了增加密码分析的难度,本发明是:使用一个变动的Key,每个、或者每几个分组使用一个不同的Key,这样可以使用Key1,Key2,Key3..........。
具体的方法是:输入密钥Key,计算Key1=Key,Key2=F(Key1,m1),Key3=F(Key2,m2),以下文中F是由两个已知变量计算一个新变量的函数,后面不再解释。例如,Key3=F(Key2,m2)可以表示为Key3=Key2+m2,也可以表示为Key3=Key2-m2,还可以表示为Key3=Key2m2(表示是异或运算,一种标准的逻辑运算),只要已知(Key2,m2),计算出Key3的所有方法都可以。
........Keyi=F(Keyi-1,mi-1)...........。
加密方法是:c1=f(m1,Key1),c2=f(m2,Key2),c3=f(m3,Key3).........。
对应的解密方法是:m1=f-1(c1,Key1),m2=f-1(c2,Key2),m3=f-1(c3,Key3).........;
或者这样加密:c1=f(m1,Key1),c2=f(m2,Key1),c3=f(m3,Key1).........;
ci+1=f(mi+1,Key2),ci+2=f(mi+2,Key2),ci+3=f(mi+3,Key2).........;
c2i+1=f(m2i+1,Key3),c2i+2=f(m2i+2,Key3),c2i+3=f(m2i+3,Key3).........;
.......。
对应的解密方法是:
m1=f-1(c1,Key1),m2=f-1(c2,Key1),m3=f-1(c3,Key1).........;
mi+1=f-1(ci+1,Key2),mi+2=f-1(ci+2,Key2),mi+3=f-1(ci+3,Key2).........;
m2i+1=f-1(c2i+1,Key3),m2i+2=f-1(c2i+2,Key3),m2i+3=f-1(c2i+3,Key3).........;
..........;
如果加密强度仍不能满足既定的要求,可以把加密后的密文再换一次密钥加密一遍。这个过程可以重复多遍。当然这样会产生很大的延迟,为了少产生延迟,可以每个分组加密多遍,再进行下一个分组的加密和整个明文加密完后再换一个密钥重新加密,这个过程根据需要可以重复多编。
逻辑尺的应用
因为加密与解密是对称的,所以还可以用一个0、1序列的密钥控制加密或解密,比明文组短时让密钥循环使用,可以用0代表加密,1代表解密,也可以反过来用1代表加密,0代表解密,只要先加密后解密,或者先解密后加密都行。这个逻辑尺就是输入的密钥,在多遍加密中也可以使用逻辑尺来控制究竟哪一遍加密,哪一遍解密。
假如加密一遍的密钥为k比特,加密j遍,可以输入j*k比特的密钥,依次每次使用k比特,输入的密钥也可以小于j*k比特,最小可以是k比特,在这种情况下,在多次加密时,循环使用密钥序列即可。
本发明的具体实施方案包括下述步骤:
一、加密的做法是:
1)输入密钥Key(包括Key1,Key1 1,......Key1 j),取出明文m1,用分组加密算法f(m1,Key1)产生密文c1 1和Key2(Key2=F(Key1,m1)),再用分组加密算法f(c1 1,Key1 1)产生密文c1 2和Key2 1(Key2 1=F(Key1 1,c1 1),......,最后再用分组加密算法f(c1 j,Key1 j)产生密文c1,至此完成了第一个分组m1的加密;
2)取出明文m2,用分组加密算法f(m2,Key2)产生密文c2 1和Key3(Key3=F(Key2,m2)),再用分组加密算法f(c2 1,Key2 1)产生密文c2 2和Key3 1(Key3 1=F(Key2 1,c2 1)),......,最后再用分组加密算法f(c2 j,Key2 j)产生密文c2,至此完成了第二个分组m2的加密;
3)取出明文m3,用分组加密算法f(m3,Key3)产生密文c3 1和Key4(Key4=F(Key3,m3)),再用分组加密算法f(c3 1,Key3 1)产生密文c3 2和Key4 1(Key4 1=F(Key3 1,c3 1)),......,最后再用分组加密算法f(c3 j,Key3 j)产生密文c3,至此完成了第三个分组m3的加密;
.......,
4)一直把所有的明文分组都加密完成。
二、解密的做法是:
1)输入密钥Key(包括Key1,Key1 1,......Key1 j),取出密文c1,用分组解密算法f-1(c1,Key1 j)产生密文c1 j和Key2 j(Key2 j=F(Key1 j,c1 j)),再用分组解密算法f-1(c1 j,Key1 j-1)产生密文c1 j-1和Key2 j-1(Key2 j-1=F(Key1 j-1,c1 j-1)),......最后再用分组加密算法f-1(c1 1,Key1)产生明文m1,至此完成了第一个分组c1的解密;
2)取出密文c2,用分组解密算法f-1(c2,Key2 j)产生密文c2 j和Key3 j(Key3 j=F(Key2 j,c2 j)),再用分组解密算法f-1(c2 j,Key2 j-1)产生密文c2 j-1和Key3 j-1(Key3 j-1=F(Key2 j-1,c2 j-1)),......最后再用分组加密算法f-1(c2 1,Key1)产生明文m2,至此完成了第二个分组c2的解密;
3)取出密文c3,用分组解密算法f-1(c3,Key3 j)产生密文c3 j和Key4 j(Key4 j=F(Key3 j,c3 j)),再用分组解密算法f-1(c3 j,Key3 j-1)产生密文c3 j-1和Key4 j-1(Key4 j-1=F(Key3 j-1,c3 j-1)),......最后再用分组加密算法f-1(c3 1,Key1)产生明文m3,至此完成了第三个分组c3的解密;.......
4)一直把所有的密文分组都解密完成。
三、逻辑尺的应用
因为加密与解密是对称的,所以还可以用一个0、1序列的密钥控制加密或解密,比明文组短时让密钥循环使用,可以用0代表加密,1代表解密,也可以反过来用1代表加密,0代表解密,只要先加密后解密,或者先解密后加密都行。这个逻辑尺就是输入的密钥,在多遍加密中也可以使用逻辑尺来控制究竟哪一遍加密,哪一遍解密。
假如加密一遍的密钥为k比特,加密j遍,可以输入j*k比特的密钥,依次每次使用k比特,输入的密钥也可以小于j*k比特,最小可以是k比特,在这种情况下,在多次加密时,循环使用密钥序列即可。
本发明提供的分组密码加密解密器包括:
所述的分组密码加密器包括:明文输入线,明文寄存器MR1、MR2、......明文寄存器MRj;密钥Key1、Key2、......密钥Keyj,密钥寄存器R1、R2、......密钥寄存器Rj,时钟CLK,j分频器,时序电路,明文寄存器MR2,延时电路,控制端R1、R2......Rj控制端,子密钥电路,加密运算电路和密钥运算电路构成。
明文输入线接明文寄存器MR1输入端;密钥Key1接密钥寄存器R1输入端、密钥Key2接密钥寄存器R2输入端......密钥Keyj接密钥寄存器Rj输入端;时钟CLK接j分频输入端、同时接时序电路输入端、同时接明文寄存器MR2输入端、同时接延时电路输入端;j分频输出端接明文寄存器MR1输入端;时序电路输出信号Q1接R1控制端和Rj控制端、时序控制信号Q2接R2控制端和R1控制端......;R1、R2......Rj的输出端接子密钥电路的输入端;MR1的输出端接MR2的输入端;MR2的输出端接加密运算电路的输入端和密钥运算电路的输入端;子密钥电路的输出端接加密运算的输入端和密钥运算电路的输入端;加密运算电路的输出端接密文寄存器ER1的输入端;ER1的输出端接MR2的输入端,同时输出密文;密钥运算电路的输出端接R1、R2......Rj的输入端。
所述的分组密码解密器包括:密文输入端,密文寄存器ERj、ERj-1、......、密文寄存器ER2、密文寄存器ER1;密钥Keyj、密钥Keyj-1、......密钥Key1,密钥寄存器Rj、Rj-1、......密钥寄存器R1,时钟CLK,j分频器,时序电路,延时电路,控制端Rj、Rj-1、......R1控制端,子密钥电路,加密运算电路和密钥运算电路构成。
密文输入线接密文寄存器ER2输入端;密钥Keyj接密钥寄存器Rj输入端、密钥Keyj-1接密钥寄存器Rj-1输入端......密钥Key1接密钥寄存器R1输入端;时钟CLK接j分频输入端、同时接时序电路输入端、同时接密文寄存器ER3输入端、同时接延时电路输入端;j分频输出端接密文寄存器ER3输入端;时序电路输出信号Q1接Rj控制端和R1控制端、时序控制信号Q2接Rj-1控制端和Rj控制端......;R1、R2......Rj的输出端接子密钥电路的输入端;ER2的输出端接ER3的输入端:ER3的输出端接解密运算电路的输入端和密钥运算电路的输入端;子密钥电路的输出端接解密运算电路的输入端和密钥运算电路的输入端;解密运算的输出端接明文寄存器MR3的输入端;MR3的输出端接ER3的输入端,同时输出明文;密钥运算电路的输出端接R1、R2......Rj的输入端。
本发明与现有技术相比有如下有益效果:
对于美国的DES算法,其分组长度n=64的算法被破密后,只能靠加大分组长度n来提高加密强度。而现在我们提供的方法用于排列码加密法时,当分组长度n=4时就可以做到有足够大的加密强度,比n=64的DES的加密强度还大。分组长度n小的好处是:设备的复杂度降低,可靠性增加,加密速度加快。
利用本发明可以设计出加密强度可以大于2n的加密方法。适用于一切可以利用分组密码加密的场合,可以用于存储的数字量加密,又可以用于传输的数字信号加密,由于它的快速性,还可以用于实时系统的加密中。
附图说明
图1:当Key=4时的比特交换示意图;
图2:加密过程示意图;
图3:解密过程示意图;
图4:Key的构成示意图。
图5:Key的另一种构成示意图。
图6:对一个明文分组进行加密时逻辑尺的应用。
图7:对一个密文分组进行解密时逻辑尺的应用。
图8:对所有明文分组进行纵向多遍加密过程中逻辑尺的应用。
图9:对所有密文分组进行纵向多遍解密过程中逻辑尺的应用。
图10:对所有明文分组进行横向多遍加密过程中逻辑尺的应用。
图11:对所有密文分组进行横向多遍解密过程中逻辑尺的应用。
图12:对明文进行纵向加密过程中以密钥序列与明文作为逻辑尺的应用。
图13:加密电路图。
图14:解密电路图。
具体实施方式
本发明可通过实施例详细说明,但它们不是对本发明做任何限制。
实施例1
n=4的排列码程序设计说明
1.建立1个n=4的排列码表
Key    0    1    2    3
0      0    1    2    3
1      0    1    3    2
2      0    2    1    3
3      0    2    3    1
4      0    3    1    2
5      0    3    2    1
........
23     3    2    1    0
这样的表有24!个,我们随机建立其中的256个。当Key=4时,有如下的映射关系:0→0,1→3,2→1,3→2。附图1描述了Key=4时的比特交换示意图。
为了节省存储空间,0→00,1→01,2→10,3→11,Key用存储地址来表示。这样1个排列码表占24个字节。
图2:加密过程示意图;图3:解密过程示意图;注:加密解密执行的顺序既可以按行进行,又可以按列进行。
2.密钥的设计
用1个字节作整数,它表示的范围是0~255。根据其值就可以确定一个排列码表。
在这个排列码表中,再对该值进行模24运算。得到一个0~23的整数,恰好对应排列码表中的Key值,由此可确定比特的交换顺序。
3.关于求非的运算,为了进一步增加破密的难度,我们在交换顺序的同时,在某些路径上求反。因为n=4,0点有可能有4个路径,1、2、3点都有可能有4个路径,所以可能的路径数共有16条,每一bit对应一条路径,使用16bit或者说2个字节控制哪个路径上是否加非。用0表示不加非,用1表示加非,或者反之。
4.综合以上密钥的长度为24bit。附图4和附图5描述了密钥Key的构成。
5.为了进一步增加加密强度,第二个分组的密钥选取,是在原密钥的基础上与3个字节的明文进行一种函数运算,输入都是已知,所以方法可行。(若明文不是3个字节,首先通过任意定义的规则转换成3个字节。)
6.这样一来每个分组的密钥都是一个伪随机数。但必定有明文的特征。但产生的密文随机性很强。
7.以上过程连续执行多遍,每遍都用不同的24bit的密钥。
8.为了提高速度,并不是一遍加密结束后再进行下一遍,而是一个分组连续进行多遍加密。
这种做法理论上进行4遍,加密强度已经远远超过了24=16,因为加密强度是关于n的函数,因此加密强度会远远大于2n
实施例2
以密钥序列作为逻辑尺在加密解密过程中的应用
加密和解密是两个相逆的过程,可以先加密后解密,也可以先解密后加密。我们可以用长为1比特的二进制0或1作为密钥来控制当前要运行加密模块还是解密模块。即:可将输入的密钥序列Key作为逻辑尺,在多遍加密解密过程中来控制哪些遍进行加密、哪些遍进行解密。
现于该实施例中采用如下的符号约定:
执行一遍加密需k bit密钥,则执行j遍加密解密,可输入j*k bit长的密钥;在每一遍加密解密时依次使用密钥序列Key中的k bit;也可以输入长度小于j*k bit长的密钥,在这种情况下,循环使用该密钥作为逻辑尺即可进行j遍的加密过程。
在附图6中,描述了在对一个明文分组进行加密时逻辑尺的应用;在该过程中,可把1代表加密而0代表解密。以p作为循环变量,其初值为1、终值为j;在每轮循环中,首先判断是否满足循环条件p<=j,若不满足,则进行下一个分组的运算;若满足p<=j,则读取密钥序列Key中的第p个比特Kp,再对Kp进行判定,若Kp=1,则第p遍应该执行加密模块,反之若Kp=0,则第p遍应该执行解密模块。
至此,完成了对于该明文分组的加密过程。
对所有明文分组均利用上述方法,完成对所有明文分组的加密,也就完成了对于整个明文的加密。
注:若密钥序列Key的长度<j,则循环使用密钥序列Key即可,直至利用密钥序列Key完成对于明文的加密。
附图8描述了对于所有明文分组进行纵向多遍加密过程中逻辑尺的应用。
附图8中的符号约定如下:明文分组为m1,m2,...mL;即明文分组个数为L;q为外层循环变量,其初值为1、终值为L;p为内层循环变量,其初值为1、终值为j;K仍为密钥序列,K中的第p个比特仍以Kp表示。
外层循环的判定条件为q<=L是否满足:如果不满足q<=L,则已经完成对所有明文分组的运算,所有明文分组的加密过程全部完成,即:完成了对于整个明文的加密过程;若满足q<=L,则进入内层循环,开始对于下一个分组的j遍加密过程。内层循环的原理同附图6,在此不再赘述。
附图7描述了对于一个密文分组进行解密时的逻辑尺的应用。在对该分组进行解密时,以1代表解密而0代表加密。仍以p作为循环变量,其初值为1、终值为j;在每轮循环过程中,首先判断是否满足循环条件p<=j:若不满足,则进行下一个分组的运算;若满足p<=j,则读取密钥序列Key中的第p个比特Kp,再对Kp进行判定:若Kp=1,则第p遍应该执行解密模块,反之若Kp=0,则第p遍应该执行加密模块。
至此,完成了对于该密文分组的解密过程。
对所有密文分组均利用上述方法,完成对所有密文分组的解密,也就完成了对于整个密文的解密。
附图9描述了对于所有密文分组进行纵向多遍解密过程中逻辑尺的应用。
附图9中的符号约定如下:密文分组为c1,c2,...cL;即密文分组个数为L;q为外层循环变量,其初值为1、终值为L;p为内层循环变量,其初值为1、终值为j;K仍为密钥序列,K中的第p个比特仍以Kp表示。
外层循环的判定条件为q<=L是否满足:如果不满足q<=L,则已经完成对所有密文分组的运算,所有密文分组的解密过程全部完成,即:完成了对于整个密文的解密过程;若满足q<=L,则进入内层循环,开始对于下一个密文分组的运算。内层循环的原理同附图7,在此不再赘述。
在此需补充一点:在附图6中,对于同一分组沿纵向执行了多遍的加密或解密模块,从而完成了对该分组的加密过程;然后对其他分组执行上述过程,从而完成对整个明文的加密过程;附图8中描述了对于所有明文分组进行纵向多遍加密过程中逻辑尺的应用;在附图7中,对于同一分组沿纵向执行多遍加密或解密模块,从而完成了对该分组的解密过程;然后对其他分组执行上述过程,从而完成对整个密文的解密过程。附图9中描述了对于所有密文分组进行纵向多遍解密过程中逻辑尺的应用;上述过程都是沿纵向完成的,另一种实施方案是沿横向完成:参见附图2,可以先计算出c1 1,c2 1,c3 1......后,再去计算c1 2,c2 2,c3 2......,直至计算出所有的密文分组c1,c2,c3......为止,则横向完成了对于整个明文的加密。
同理,在附图3中,解密过程不仅可沿纵向进行,也可以沿横向进行。
附图10中描述了对于所有明文分组实现横向多遍加密过程中逻辑尺的应用。
附图10中的符号约定如下:明文分组为m1,m2,...mL;即明文分组个数为L;q为外层循环变量,其初值为1、终值为j;p为内层循环变量,其初值为1、终值为L;K仍为密钥序列,K中的第p个比特仍以Kp表示。
外层循环判定条件为是否满足q<=j;若不满足q<=j,则表明已横向完成对所有明文明文分组的j遍运算,则对明文的横向多遍加密过程完成;若满足q<=j,则进入内层循环,沿横向执行对于所有分组的下一遍加密模块或解密模块。
附图11中描述了对于所有密文分组实现横向多遍解密过程中逻辑尺的应用。
附图11中的符号约定如下:密文分组为c1,c2,...cL;即明文分组个数为L;q为外层循环变量,其初值为1、终值为j;p为内层循环变量,其初值为1、终值为L;K仍为密钥序列,在此作为逻辑尺使用;K中的第p个比特仍以Kp表示。
外层循环判定条件为是否满足q<=j;若不满足q<=j,则表明已横向完成对所有密文分组的j遍运算,则对密文的横向多遍解密过程完成;若满足q<=j,则进入内层循环,沿横向执行对于所有分组的下一遍加密模块或解密模块。
注:在该实施例的上述所有附图内,在对明文的加密过程中,均以1代表执行加密模块而以0代表解密模块,而对于密文的解密过程中,均以0代表加密模块而以1代表解密模块;也可以在对明文的加密过程中以0代表加密模块而以1代表解密模块,在对密文的解密过程中以1代表加密模块而以0代表解密模块。只要加密过程中所采用的逻辑与解密过程中的逻辑相反即可。
实施例3
以密钥序列和明文分组作为逻辑尺在加密解密过程中的应用
在实施例2各例中,均以密钥序列Key作为逻辑尺,来控制哪一遍执行加密模块、哪一遍执行解密模块;在该实施例中,以密钥序列和明文分组作为逻辑尺。
图12描述了对明文进行纵向加密过程中以密钥序列与明文作为逻辑尺的应用。在该图中,对各明文分组m1,m2,...mL进行纵向加密;首先使用密钥序列Key作为逻辑尺,当密钥序列Key作为逻辑尺用完时,使用明文分组m1的各个比特作为逻辑尺继续使用,来控制在哪一遍执行加密、哪一遍执行解密。若明文分组m1仍然不够,则当m1用完后,开始使用明文分组m2的各个比特作为逻辑尺继续使用,来控制在哪一遍执行加密、哪一遍执行解密。。。。。。直到整个加密过程完成。
实施例4
以n=4为例描述硬件加密和解密过程,取j=3,即子密钥为3组,每一分组加(解)密3次。
加密过程如下:
输入明文(01000000)B,输入(100101010010101010101010)B到Key1,(101000110101001010110110)B到Key2,输入密钥(110101110011001010101000)B到Key3。
CLK到来,3分频输出高电平,第一组明文(0100)B由寄存器MR1输入MR2;时序电路输出Q1为高电平,其余为低电平,密钥寄存器R1打开,其余密钥寄存器关闭,Key1输入到子密钥电路,子密钥电路对Key1前8位对(24)D取模得到(5)D;子密钥电路处理子密钥后输入到加密运算和密钥运算;CLK到来,明文输入到加密运算和密钥运算;第一组明文经第一次加密为(0011)B,输入到MR2;密钥运算输出(100101010010101010101110)B输入到R1为Key1’;
CLK到来,时序电路输出Q2为高电平,其余为低电平,R2打开,其余密钥寄存器关闭,Key2输入到子密钥电路,子密钥电路对Key2前8位对(24)D取模得到(19)D;子密钥电路处理子密钥后输入到加密运算和密钥运算;CLK到来,第一次中间秘文输入到加密运算和密钥运算;第一次中间秘文经第二次加密为(1000)B,输入到MR2;密钥运算输出(101000110101001010111001)B输入到R2为Key2’;
CLK到来,时序电路输出Q3为高电平,其余为低电平,R3打开,其余密钥寄存器关闭,Key3输入到子密钥电路,子密钥电路对Key3前8位对(24)D取模得到(23)D;子密钥电路处理子密钥后输入到加密运算和密钥运算;CLK到来,第二次中间秘文输入到加密运算和密钥运算;第二次中间秘文经第三次加密为(1100)B,输入到MR2;密钥运算输出(110101110011001010100000)B输入到R3为Key3’;输出第一组密文(1100)B。
CLK到来,3分频输出高电平,第二组明文(0000)B由寄存器MR1输入MR2;时序电路输出Q1为高电平,其余为低电平,密钥寄存器R1打开,其余密钥寄存器关闭,Key1’输入到子密钥电路,子密钥电路对Key1’前8位对(24)D取模得到(5)D;子密钥电路处理子密钥后输入到加密运算和密钥运算;CLK到来,明文输入到加密运算和密钥运算;第二组明文经第一次加密为(0011)B,输入到MR2;密钥运算输出(100101010010101010101110)B输入到R1为Key1”;
CLK到来,时序电路输出Q2为高电平,其余为低电平,R2打开,其余密钥寄存器关闭,Key2’输入到子密钥电路,子密钥电路对Key2’前8位对(24)D取模得到(19)D;子密钥电路处理子密钥后输入到加密运算和密钥运算;CLK到来,第一次中间秘文输入到加密运算和密钥运算;第一次中间秘文经第二次加密为(1101)B,输入到MR2;密钥运算输出(101000110101001010111100)B输入到R2为Key2’;
CLK到来,时序电路输出Q3为高电平,其余为低电平,R3打开,其余密钥寄存器关闭,Key3输入到子密钥电路,子密钥电路对Key3前8位对(24)D取模得到(23)D;子密钥电路处理子密钥后输入到加密运算和密钥运算;CLK到来,第二次中间秘文输入到加密运算和密钥运算;第二次中间秘文经第三次加密为(0101)B,输入到MR2;密钥运算输出(110101110011001010101101)B输入到R3为Key3’;输出第二组密文(0101)B。
解密过程如下:
输入密文(11000101)B,输入(100101010010101010101010)B到Key1,(101000110101001010110110)B到Key2,输入密钥(110101110011001010101000)B到Key3。
CLK到来,3分频输出高电平,第一组密文(1100)B由寄存器ER2输入ER3;时序电路输出Q1为高电平,其余为低电平,密钥寄存器R3打开,其余密钥寄存器关闭,Key3输入到子密钥电路,子密钥电路对Key3前8位对(24)D取模得到(23)D;子密钥电路处理子密钥后输入到解密运算和密钥运算;CLK到来,密文输入到解密运算和密钥运算;第一组密文经第一次解密为(1000)B,输入到MR3;密钥运算输出(110101110011001010110000)B输入到R3为Key3’;
CLK到来,时序电路输出Q2为高电平,其余为低电平,R2打开,其余密钥寄存器关闭,Key2输入到子密钥电路,子密钥电路对Key2前8位对(24)D取模得到(19)D;子密钥电路处理子密钥后输入到解密运算和密钥运算;CLK到来,第一次中间明文输入到解密运算和密钥运算;第一次中间明文经第二次解密为(0011)B,输入到ER3;密钥运算输出(101000110101001010111001)B输入到R2为Key2’;
CLK到来,时序电路输出Q3为高电平,其余为低电平,R1打开,其余密钥寄存器关闭,Key1输入到子密钥电路,子密钥电路对Key1前8位对(24)D取模得到(5)D;子密钥电路处理子密钥后输入到解密运算和密钥运算;CLK到来,第二次中间明文输入到解密运算和密钥运算;第二次中间明文经第三次解密为(0100)B,输入到MR3;密钥运算输出(100101010010101010101110)B输入到R1为Key1’;输出第一组明文(0100)B。
CLK到来,3分频输出高电平,第二组密文(0101)B由寄存器ER2输入ER3;时序电路输出Q1为高电平,其余为低电平,密钥寄存器R3打开,其余密钥寄存器关闭,Key3’输入到子密钥电路,子密钥电路对Key3’前8位对(24)D取模得到(23)D;子密钥电路处理子密钥后输入到解密运算和密钥运算;CLK到来,密文输入到解密运算和密钥运算;第二组密文经第一次解密为(1101)B,输入到ER3;密钥运算输出(110101110011001010111101)B输入到R3为Key3”;
CLK到来,时序电路输出Q2为高电平,其余为低电平,R2打开,其余密钥寄存器关闭,Key2’输入到子密钥电路,子密钥电路对Key2’前8位对(24)D取模得到(19)D;子密钥电路处理子密钥后输入到解密运算和密钥运算;CLK到来,第一次中间明文输入到解密运算和密钥运算;第一次中间明文经第二次解密为(0011)B,输入到ER3;密钥运算输出(101000110101001010111100)B输入到R2为Key2”;
CLK到来,时序电路输出Q3为高电平,其余为低电平,R1打开,其余密钥寄存器关闭,Key1’输入到子密钥电路,子密钥电路对Key1’前8位对(24)D取模得到(5)D;子密钥电路处理子密钥后输入到解密运算和密钥运算;CLK到来,第二次中间明文输入到解密运算和密钥运算;第二次中间明文经第三次解密为(0000)B,输入到ER3;密钥运算输出(100101010010101010101110)B输入到则为Key1”;输出第二组明文(0000)B。

Claims (9)

1、一种分组密码加密解密的方法,它包括下述步骤:
设明文为:m1,m2,m3.........;
对应的密文为:c1,c2,c3.........;
Key为密钥;f(m,Key)是分组加密函数,f-1(c,Key)是分组解密函数;
加密方法是:c1=f(m1,Key),c2=f(m2,Key),c3=f(m3,Key).........;
解密方法是:m1=f-1(c1,Key),m2=f-1(c2,Key),m3=f-1(c3,Key).........;
其特征在于:
使用一个变动的Key,每个、或者每几个分组使用一个不同的Key:Key1,Key2,Key3..........;
输入密钥Key,计算Key1=Key,Key2=F(Key1,m1),Key3=F(Key2,m2)
........Keyi=F(Keyi-1,mi-1)...........;F是由两个已知变量计算一个新变量的函数;
加密方法是:c1=f(m1,Key1),c2=f(m2,Key2),c3=f(m3,Key3).........;或者:
c1=f(m1,Key1),c2=f(m2,Key1),c3=f(m3,Key1).........;
ci+1=f(mi+1,Key2),ci+2=f(mi+2,Key2),ci+3=f(mi+3,Key2).........;
c21+1=f(m2i+1,Key3),c2i+2=f(m2i+2,Key3),c2i+3=f(m2i+3,Key3).........;
对应的解密方法是:m1=f-1(c1,Key1),m2=f-1(c2,Key2),m3=f-1(c3,Key3).........;或者:
解密方法是:
m1=f-1(c1,Key1),m2=f-1(c2,Key1),m3=f-1(c3,Key1).........;
mi+1=f-1(ci+1,Key2),mi+2=f-1(ci+2,Key2),mi+3=f-1(ci+3,Key2).........;
m2i+1=f-1(c2i+1,Key3),m2i+2=f-1(c2i+2,Key3),m2i+3=f-1(c2i+3,Key3).........;..........。
2、按照权利要求1所说的分组密码加密解密的方法,其特征在于把所说的加密后的密文再换一次密钥加密一遍或分组重复多遍;所说的换密钥加密重复多遍中,包括先是每个分组加密多遍,然后再进行下一个分组的加密和整个明文加密完后再换一个密钥重新加密,这个过程根据需要可以重复多编。
3、按照权利要求1或2所说的分组密码加密解密的方法,其特征在于应用逻辑尺控制加密或解密。
4、按照权利要求3所说的分组密码加密解密的方法,其特征在于所说的逻辑尺是0、1序列,用0代表加密,1代表解密,或用1代表加密,0代表解密。
5、一种分组密码加密解密的方法,其特征在于它包括下述步骤:
加密的做法:
1)输入密钥Key,包括Key1,Key1 1,......Key1 j,取出明文m1,用分组加密算法f(m1,Key1)产生密文c1 1和Key2,Key2=F(Key1,m1)再用分组加密算法f(c1 1,Key1 1)产生密文c1 2和Key2 1,Key2 1=F(Key1 1,c1 1),......最后再用分组加密算法f(c1 j,Key1 j)产生密文c1,至此完成了第一个分组m1的加密;
2)取出明文m2,用分组加密算法f(m2,Key2)产生密文c2 1和Key3,Key3=F(Key2,m2),再用分组加密算法f(c2 1,Key2 1)产生密文c2 2和Key3 1,Key3 1=F(Key2 1,c2 1),......最后再用分组加密算法f(c2 j,Key2 j)产生密文c2,至此完成了第二个分组m2的加密;
3)取出明文m3,用分组加密算法f(m3,Key3)产生密文c3 1和Key4,Key4=F(Key3,m3),再用分组加密算法f(c3 1,Key3 1)产生密文c3 2和Key4,Key4 1=F(Key3 1,c3 1),......最后再用分组加密算法f(c3 j,Key3 j)产生密文c3,至此完成了第三个分组m3的加密;.......;
4)一直把所有的明文分组都加密完成;
解密的做法:
1)输入密钥Key,包括Key1,Key1 1,......Key1 j,取出密文c1,用分组解密算法f-1(c1,Key1 j)产生密文c1 j和Key2 j,Key2 j=F(Key1 j,c1 j),再用分组解密算法f-1(c1 j,Key1 j-1)产生密文c1 j-1和Key2 j-1,Key2 j-1=F(Key1 j-1,c1 j-1),......,最后再用分组加密算法f-1(c1 1,Key1)产生明文m1,至此完成了第一个分组c1的解密;
2)取出密文c2,用分组解密算法f-1(c2,Key2 j)产生密文c2 j和Key3 j,Key3 j=F(Key2 j,c2 j),再用分组解密算法f-1(c2 j,Key2 j-1)产生密文c2 j-1和Key3 j-1,Key3 j-1=F(Key2 j-1,c2 j-1),......,最后再用分组加密算法f-1(c2 1,Key1)产生明文m2,至此完成了第二个分组c2的解密;
3)取出密文c3,用分组解密算法f-1(c3,Key3 j)产生密文c3 j和Key4 j,Key4 j=F(Key3 j,c3 j),再用分组解密算法f-1(c3 j,Key3 j-1)产生密文c3 j-1和Key4 j-1,Key4 j-1=F(Key3 j-1,c3 j-1),......,最后再用分组加密算法f-1(c3 1,Key1)产生明文m3,至此完成了第三个分组c3的解密;
.......;
4)一直把所有的密文分组都解密完成。
6、按照权利要求5所说的分组密码加密解密的方法,其特征在于把所说的加密后的密文再换一次密钥加密一遍或分组重复多遍;所说的换密钥加密重复多遍中,包括先是每个分组加密多遍,然后再进行下一个分组的加密和整个明文加密完后再换一个密钥重新加密,这个过程根据需要可以重复多编。
7、按照权利要求5所说的分组密码加密解密的方法,其特征在于应用逻辑尺控制加密或解密。
8、按照权利要求7所说的分组密码加密解密的方法,其特征在于所说的逻辑尺是0、1序列,用0代表加密,1代表解密;或用1代表加密,0代表解密。
9、一种分组密码加密解密器,其特征在于:
所述的分组密码加密器包括:明文输入线,明文寄存器MR1、MR2、......明文寄存器MRj;密钥Key1、Key2、......密钥Keyj,密钥寄存器R1、R2、......密钥寄存器Rj,时钟CLK,j分频器,时序电路,明文寄存器MR2,延时电路,控制端R1、R2......Rj控制端,子密钥电路,加密运算电路和密钥运算电路构成;
明文输入线接明文寄存器MR1输入端;密钥Key1接密钥寄存器R1输入端、密钥Key2接密钥寄存器R2输入端......密钥Keyj接密钥寄存器Rj输入端;时钟CLK接j分频输入端、同时接时序电路输入端、同时接明文寄存器MR2输入端、同时接延时电路输入端;j分频输出端接明文寄存器MR1输入端;时序电路输出信号Q1接R1控制端和Rj控制端、时序控制信号Q2接R2控制端和R1控制端......;R1、R2......Rj的输出端接子密钥电路的输入端;MR1的输出端接MR2的输入端;MR2的输出端接加密运算电路的输入端和密钥运算电路的输入端;子密钥电路的输出端接加密运算的输入端和密钥运算电路的输入端;加密运算电路的输出端接密文寄存器ER1的输入端;ER1的输出端接MR2的输入端,同时输出密文;密钥运算电路的输出端接R1、R2......Rj的输入端。
所述的分组密码解密器包括:密文输入端,密文寄存器ERj、ERj-1、......、密文寄存器ER2、密文寄存器ER1;密钥Keyj、密钥Keyj-1、......密钥Key1,密钥寄存器Rj、Rj-1、......密钥寄存器R1,时钟CLK,j分频器,时序电路,延时电路,控制端Rj、Rj-1、......R1控制端,子密钥电路,加密运算电路和密钥运算电路构成;
密文输入线接密文寄存器ER2输入端;密钥Keyj接密钥寄存器Rj输入端、密钥Keyj-1接密钥寄存器Rj-1输入端......密钥Key1接密钥寄存器R1输入端;时钟CLK接j分频输入端、同时接时序电路输入端、同时接密文寄存器ER3输入端、同时接延时电路输入端;j分频输出端接密文寄存器ER3输入端;时序电路输出信号Q1接Rj控制端和R1控制端、时序控制信号Q2接Rj-1控制端和Rj控制端......;R1、R2......Rj的输出端接子密钥电路的输入端;ER2的输出端接ER3的输入端;ER3的输出端接解密运算电路的输入端和密钥运算电路的输入端;子密钥电路的输出端接解密运算电路的输入端和密钥运算电路的输入端;解密运算的输出端接明文寄存器MR3的输入端;MR3的输出端接ER3的输入端,同时输出明文;密钥运算电路的输出端接R1、R2......Rj的输入端。
CN 200510013807 2005-06-14 2005-06-14 分组密码加密解密的方法及其加密解密器 Pending CN1697369A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200510013807 CN1697369A (zh) 2005-06-14 2005-06-14 分组密码加密解密的方法及其加密解密器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200510013807 CN1697369A (zh) 2005-06-14 2005-06-14 分组密码加密解密的方法及其加密解密器

Publications (1)

Publication Number Publication Date
CN1697369A true CN1697369A (zh) 2005-11-16

Family

ID=35349910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200510013807 Pending CN1697369A (zh) 2005-06-14 2005-06-14 分组密码加密解密的方法及其加密解密器

Country Status (1)

Country Link
CN (1) CN1697369A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013938B (zh) * 2007-01-12 2010-04-07 广州市诚毅科技软件开发有限公司 一种分组密码加密方法
CN101938352A (zh) * 2010-09-23 2011-01-05 北京航空航天大学 一种分组密码软件加密方法
CN101969374A (zh) * 2010-10-27 2011-02-09 北京航空航天大学 分组密码算法中混淆层的实现方法
CN101984574A (zh) * 2010-11-29 2011-03-09 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
CN102064936A (zh) * 2010-11-29 2011-05-18 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
CN101882991B (zh) * 2009-05-06 2012-05-16 上海华虹集成电路有限责任公司 基于分组密码算法的通讯数据流加密方法
CN101877634B (zh) * 2009-04-28 2013-10-09 华为技术有限公司 以太网无源光网络系统的数据加密和解密方法及设备
CN103886464A (zh) * 2014-03-10 2014-06-25 上海理工大学 防伪码生成方法
CN108566270A (zh) * 2018-04-26 2018-09-21 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN117240604A (zh) * 2023-11-10 2023-12-15 深圳市互盟科技股份有限公司 基于云计算的数据安全存储和优化节能方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101013938B (zh) * 2007-01-12 2010-04-07 广州市诚毅科技软件开发有限公司 一种分组密码加密方法
CN101877634B (zh) * 2009-04-28 2013-10-09 华为技术有限公司 以太网无源光网络系统的数据加密和解密方法及设备
CN101882991B (zh) * 2009-05-06 2012-05-16 上海华虹集成电路有限责任公司 基于分组密码算法的通讯数据流加密方法
CN101938352B (zh) * 2010-09-23 2012-07-04 北京航空航天大学 一种分组密码软件加密方法
CN101938352A (zh) * 2010-09-23 2011-01-05 北京航空航天大学 一种分组密码软件加密方法
CN101969374A (zh) * 2010-10-27 2011-02-09 北京航空航天大学 分组密码算法中混淆层的实现方法
CN101969374B (zh) * 2010-10-27 2012-06-20 北京航空航天大学 分组密码算法中混淆层的实现方法
CN102064936B (zh) * 2010-11-29 2012-08-22 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
CN102064936A (zh) * 2010-11-29 2011-05-18 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
CN101984574B (zh) * 2010-11-29 2012-09-05 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
CN101984574A (zh) * 2010-11-29 2011-03-09 北京卓微天成科技咨询有限公司 一种数据加解密方法及装置
CN103886464A (zh) * 2014-03-10 2014-06-25 上海理工大学 防伪码生成方法
CN108566270A (zh) * 2018-04-26 2018-09-21 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN108566270B (zh) * 2018-04-26 2021-10-01 成都盛拓源科技有限公司 使用双分组密码的新型加密方法
CN117240604A (zh) * 2023-11-10 2023-12-15 深圳市互盟科技股份有限公司 基于云计算的数据安全存储和优化节能方法
CN117240604B (zh) * 2023-11-10 2024-02-27 深圳市互盟科技股份有限公司 基于云计算的数据安全存储和优化节能方法

Similar Documents

Publication Publication Date Title
CN1697369A (zh) 分组密码加密解密的方法及其加密解密器
US10693634B2 (en) Key generation method and apparatus using double encryption
CN1168041A (zh) 加密和解密方法以及加密和解密装置
US8194858B2 (en) Chaotic cipher system and method for secure communication
CN1992589A (zh) 加扰和解扰数据单元的方法
CN1172235C (zh) 扩充密钥发生器、加密/解密单元、扩充密钥产生方法
CN1801693A (zh) 分组加密算法中对短分组的处理方法
CN101061661A (zh) 加密方法
CN1859081A (zh) 一种即时消息加密传输方法和系统
CN108123794A (zh) 白盒密钥的生成方法和加密方法、装置及系统
CN102255725A (zh) 随机混合密钥加解密方法
US20130308774A1 (en) Method and System for Conducting High Speed, Symmetric Stream Cipher Encryption
Kushwaha et al. A novel selective encryption method for securing text over mobile ad hoc network
CN1108040C (zh) 解密方法及电子装置
CN102664730A (zh) 基于高级加密标准aes的128比特位密钥扩展方法
CN1677921A (zh) 通过可编程器件实现数据加密的方法
EP2904731A1 (en) Method and device for digital data blocks encryption and decryption
CN1835586A (zh) 流密码生成器、随机数生成方法、加密系统及加密方法
CN1180351C (zh) 强化错乱的分组密码加密方法
CN116488795A (zh) 一种gcm-aes处理方法和装置
CN108494554B (zh) 一种基于双明文的数据对称加密方法
CN1833399A (zh) 瑞恩多尔块密码装置及其加密/解密方法
KR20160099864A (ko) 블록암호 lea 의 암호화/복호화 장치
CN1617493A (zh) 基于群复合轮函数和128比特分组的对称密钥加密方法
EP1456997A1 (en) System and method for symmetrical cryptography

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20051116