CN1402465A - 一种动态矩阵排列加密方法 - Google Patents
一种动态矩阵排列加密方法 Download PDFInfo
- Publication number
- CN1402465A CN1402465A CN 02115081 CN02115081A CN1402465A CN 1402465 A CN1402465 A CN 1402465A CN 02115081 CN02115081 CN 02115081 CN 02115081 A CN02115081 A CN 02115081A CN 1402465 A CN1402465 A CN 1402465A
- Authority
- CN
- China
- Prior art keywords
- sub
- piece
- value
- plaintext
- secret key
- 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
Images
Landscapes
- Storage Device Security (AREA)
Abstract
用于数据加密的一种动态矩阵排列加密方法,涉及用密匙控制进行数据加密与解密相关技术,一加密方法包括:矩阵排列、分组排列、异或运算。具体讲,是一种对称分组加密方法,是取该加密算法的明文(Plaintext)P的长度为32,768比特,明文数据Pi=P1 P2 P3……P32767 P32768;设密匙(Keys)K的长度为65536比特,密匙的数据Ki=K1 K2 K3……K65535 K65536。加密过程可表达为:C=Ipi*X32*X31*X30…(ek)…X3*X2*X1*Ipi。解密过程可以表达为:P=IP-i*X1*X2*X3…(dk)…*X30*X31*X32*IP-I,其中Ipi是输入矩阵排列,Ipi是它的逆矩阵排列,本发明基本原理公开,清楚易懂,安全性高、通用性强。
Description
技术领域
本发明涉及加密技术领域,特别涉及用密匙控制进行数据加密与解密相关技术领域。
背景技术
在现代的电子时代中,通过在公共电信信道上交换的数据处理日常的商务、公务及私人事务与日俱增。敏感的数据常常是存储在不保密的存储器中。通过公共电信信道交换的数据或存储在存储器中的数据容易被他人在未经许可的情况下存取,因而就不能保其机密性。
数据加密就是防止数据在存储器中或在公共电信信道上传输时被非授权存取的一种方法。加密就是把明文转换为不可理解的密文的一种计算型式。解密就是把无法理解的密文恢复为明文的加密的逆计算。
在实践中,数据首先由加密者把明文加密成密文后才用公共电信信道传输或存储起来。当收到或检索这些数据时,再把密文解密成明文。
数据文件加密现有技术的主流是DES和IDEA加密方法。DES“数据加密标准”,有美国国家标准局于1977年在联邦信息标准(FIPS)出版物第46号上公布。自那以后,DES就被确定为一个标准的公共加密方法。DES的加密和解密是按块进行的,每块为64位(bit)。基本的算法包括一系列预定排列的16次迭代值。
在过去10年中DES被正式作为标准采用,但这种加密方法有以下以知的缺点。一个是:56位的密匙太短。它仅能产生大约1017个密匙。从现代高速或并行计算机来看,在此密匙长度的密匙数量的穷举在计算上是可能的(即尝试每个可能的密匙,看是否能解密该密文)。另一个缺点是基本设计原理,列如各种不同排列的选择、置换和所需的迭代次数都没有清楚的说明。对有关该系统中有“陷阱”(trapdoor)的可能性一直都存在争论。因此,如果用户不能精确地鉴定该系统的实际安全性,它就不能是一个真正的公共加密系统。
技术内容
本发明的目的是针对以上现有技术的不足,设计一种基本原理公开、清楚、易懂、安全性高、通用性强的动态矩阵排列加密方法。
本发明的目的是通过以下技术方案实现
A、选取明文(plaintext)P为32768比特的数据,如果长度不足32768比特则填充随机数据使它满足32768比特。
B、设密匙K为65536比特,如果长度不足65536比特,则把密匙K加长为65536比特。
把65536比特的K分成32768个子块,每一个子块2比特,令这32769个子块为密匙流的表示方法:KXi=KX1,KX2,KX3,KX4……KX32767,KX32768,KX32769;
C、IP矩阵排列:
把32768比特的明文数据按每比特、每个位置的顺序排入32纵32行32列的正方型的矩阵中。
从每个纵中的32行32列的矩阵中提取出1024个不同行和列的值的矩阵。
开始加密:
a首先定义,利用KXi中的值来确定每个矩阵中的不同排列方式.密匙的值为(0、1、2、3)表格中的排列分别为,当值为0时排列不变。当值为1时排列矩阵按顺时针的方向转动一下,即原来的行变成列,原来的列变成行。当值为2时排列矩阵按顺时针的方向转动两下,即上行变成下行,右列变成左列。当值为3时排列矩阵按逆时针的方向转动一下,即原来的列变成行,原来的行变成列。
b、把正方型的矩阵的六个面都定义一个值,分别用(A)、(B)、(C)、(D)、(E)、(F)来表示,如图(a)
从密匙K中指定的位置提取12个比特的数据,把这12比特分成6组每组2比特,再把(A)、(B)、(C)、(D)、(E)、(F)排成3行2列的表格形式如图(b),再用这6组密匙对这个表格,把表格分成(A)、(B)、(C)、(D)和(C)、(D)、(E)、(F)两个交叉的表格然后再进行6次排列运算运算方法用a的方法进行排列,输出正方型的阵矩的六个面的顺序表。
(1)对正方型的矩阵排列运算,从顺序表中的第一个面开始。
(2)把该面32乘32的矩阵分成32乘32、16乘16、8乘8、4乘4、2乘2的各种表格,并把密匙流分成32段,每个纵用一段,每次对不同的纵的排列密匙流都不同。
①、用该段的第1个密匙的值对32乘32的表格用a的方法进行排列。
②、用该段的第2到该段的第10个密匙的值对16乘16的表格用a的方法进行排列,32乘32的表格分成9个16乘16的表格。
③、用该段的第11到该段的第75个密匙的值对8乘8的表格用a的方法进行排列,32乘32的表格分成64个8乘8的表格。
④、用该段的第76到该段的第300个密匙的值对4乘4的表格用a的方法进行排列,32乘32的表格分成224个4乘4的表格。
⑤、用该段的第300到……个密匙的值对2乘2的表格用a的方法进行排列,32乘32的表格分成960个2乘2的表格。
(3)跳回(2)继续对下一个纵值进行排列,每次推进下一个纵。
(4)当32个纵向中的表格都排列完毕时跳回(1)继续对下一个面进行排列,并把密匙流从最高位向最低位移动6分之1,把移出的6分之1补到高位处。如果6个面都完成了就结束IP矩阵排列。
D、把排列完的明文P数据分组:
分组:32768比特的明文数据块分成1024个子块,每一子块32比特,令这1024个子块为明文子块Pxi,其表示:PXi=PX1,PX2,PX3,PX4……PX1022,PX1023,PX1024;
E、子密匙分组:把65536比特的Ki分成两个不同的组,每组为1024个子块,每一子块32比特,令这1024个子块为第1组:K1Xi=K1X1,K1X2,K1X3,K1X4……K1X1022,K1X1023,K1X1024;
第2组:K2Xi=K2X1,K2X2,K2X3,K2X4 … …K2X1022,K2X1023,K2X1024;
F、用第一组密匙K1Xi与排列后的明文子块PXi进行异或运算(^)运算,一共1024组运算。
G、把经过F步骤加密后的明文子块PX1与经过F步骤加密后的明文子块PX2进行异或运算(^),经过F步骤加密后的明文子块PX3与经过F步骤加密后的明文子块PX4进行异或运算(^)……经过F步骤加密后的明文子块PX1023与经过F步骤加密后的明文子块PX1024进行异或运算(^),一共512组运算。
H、下面的明文子块..全部为经过g步骤后的值:
明文子块PX1与明文子块PX2进行异或运算(^)运算其值去替换原本明文子块PX1的值,
明文子块PX2与明文子块PX3进行异或运算(^)运算其值去替换原本明文子块PX2的值,
明文子块PX3与明文子块PX4进行异或运算(^)运算其值去替换原本明文子块PX3的值,
明文子块PX1021与明文子块PX1022进行异或运算(^)运算其值去替换原本明文子块PX1021的值,
明文子块PX1022与明文子块PX1023进行异或运算(^)运算其值去替换原本明文子块PX1022的值,
明文子块PX1023与明文子块PX1024进行异或运算(^)运算其值去替换原本明文子块PX1023的值。
I、用第二组密匙K2Xi与经过H步骤后明文子块PXi进行异或运算(^)运算,一共1024。
J、下面的明文子块..全部为经过I步骤后的值:
明文子块PX1与明文子块PX1024进行异或运算(^)运算产生一个值P1,
明文子块PX2与值P1进行异或运算(^)运算产生一个值P2,
明文子块PX3与值P2进行异或运算(^)运算产生一个值P3,
明文子块PX1021与值1020进行异或运算(^)运算产生一个值P1021,
明文子块PX1022与值1021进行异或运算(^)运算产生一个值P1022,
明文子块PX1023与值1022进行异或运算(^)运算产生一个值P1023。
最后把明文子块PX1024的值替换为P1023的值。
K、再次调用(c)矩阵排列算法,把密匙流并把密匙流从最高位向最低位移动2分之1,把移出的2分之1补到高位处,再用该密匙流对经过J步骤后明文子块PXi进行排列运算。
L、把第2组的密匙与第1组的密匙之间做子异或(^)运算,把值再用矩阵排列算法,密匙流用上面同样的值进行排列运,再用它的值与经过J步骤后明文子块PXi进行异或(^)运算。
M、输出密文(ciphertext)为32768比特的数据,加密结束。
本发明技术进步在于,本方法密匙长,基本原理公开、清楚、易懂,安全性高,通用性强。
附图说明
图1为本发明的流程框图;
图2为本发明把正方形的矩阵的六个面定义为(A)、(B)、(C)、(D)、(E)、(F)示意图;
图3为本发明把(A)、(B)、(C)、(D)、(E)、(F)排列成3行2列表格形成图。
具体实施方法
加密方法包括:矩阵排列;分组排列;异或运算。
加密技术的实现方法,如附图1是该加密方法的流程图。
这是一种对称分组加密算法,该加密算法的明文(plaintext)P的长度为32,768比特。
Pi=P1 P2 P3 P4 P5 P5……P32764 P32765 P32766 P32767 P32768
Pi为明文的数据。
密匙(keys)K的长度为65,536比特
Ki=K1 K2 K3 K4 K5 K6……K65531 K65532 K65534 K65535 K65536
Ki为密匙的数据。
注:Pi、Ki=0或1。
加密过程可以表达如下:
C=Ipi*X32*X31*X30…(ek)…*X3*X2*X1*Ipi
解密过程可以表达如下:
P=IP-i*X1*X2*X3…(dk)…*X30*X31*X32*IP-I
加密的具体方法如下:
A、选取明文(plaintext)P为32768比特的数据,如果长度不足32768比特则填充随机数据使它满足32768比特。
B、设密匙K为65536比特,如果长度不足65536比特,则把密匙K加长为65536比特。
把65536比特的K分成32768个子块,每一个子块2比特,令这32769个子块为
密匙流的表示方法:KXi=KX1,KX2,KX3,KX4 ……KX32767,KX32768,KX32769;
C、IP矩阵排列:
把32768比特的明文数据按每比特、每个位置的顺序排入32纵32行32列的正方型的矩阵中。
从每个纵中的32行32列的矩阵中提取出1024个不同行和列的值的阵矩。
开始加密:
a首先定义,利用KXi中的值来确定每个矩阵中的不同排列方式。密匙的值为(0、1、2、3)表格中的排列分别为,当值为0时排列不变。当值为1时排列矩阵按顺时针的方向转动一下,即原来的行变成列,原来的列变成行。当值为2时排列矩阵按顺时针的方向转动两下,即上行变成下行,右列变成左列。当值为3时排列矩阵按逆时针的方向转动一下,即原来的列变成行,原来的行变成列。
把正方形的矩阵的六个面都定义一个值,分别用(A)、(B)、(C)、(D)、(E)、(F)来表示,如图2所示。
从密匙K中指定的位置提取12个比特的数据,把这12比特分成6组每组2比特,再把(A)、(B)、(C)、(D)、(E)、(F)排成3行2列的表格形式如图3,再用这6组密匙对这个表格,把表格分成(A)、(B)、(C)、(D)和(C)、(D)、(E)、(F)两个交叉的表格然后再进行6次排列运算运算方法用a的方法进行排列,输出正方型的矩阵的六个面的顺序表。
(1)对正方形的矩阵排列运算,从顺序表中的第一个面开始。
(2)把该面32乘32的矩阵分成32乘32、16乘16、8乘8、4乘4、2乘2的各种表格,并把密匙流分成32段,每个纵用一段,每次对不同的纵的排列密匙流都不同。
①、用该段的第1个密匙的值对32乘32的表格用a的方法进行排列。
②、用该段的第2到该段的第10个密匙的值对16乘16的表格用a的方法进行排列,32乘32的表格分成9个16乘16的表格。
③、用该段的第11到该段的第75个密匙的值对8乘8的表格用a的方法进行排列,32乘32的表格分成64个8乘8的表格。
④、用该段的第76到该段的第300个密匙的值对4乘4的表格用a的方法进行排列,32乘32的表格分成224个4乘4的表格。
⑤、用该段的第300到……个密匙的值对2乘2的表格用a的方法进行排列,32乘32的表格分成960个2乘2的表格。
(3)跳回(2)继续对下一个纵值进行排列,每次推进下一个纵。
(4)当32个纵向中的表格都排列完毕时跳回(1)继续对下一个面进行排列,并把密匙流从最高位向最低位移动6分之1,把移出的6分之1补到高位处。如果6个面都完成了就结束IP矩阵排列。
D、把排列完的明文P数据分组:
分组:32768比特的明文数据块分成1024个子块,每一子块32比特,令这1024个子块为
明文子块表示为:PXi=PX1,PX2,PX3,PX4 ……PX1022,PX1023,PX1024;
E、子密匙分组:把65536比特的Ki分成两个不同的组,每组为1024个子块,每一子块32比特,令这1024个子块为第1组:K1Xi=K1X1,K1X2,K1X3,K1X4……K1X1022,K1X1023,K1X1024;
第2组:K2Xi=K2X1,K2X2,K2X3,K2X4 … …K2X1022,K2X1023,K2X1024;
F、用第一组密匙K1Xi与排列后的明文子块PXi进行异或运算(^)运算,一共1024组运算。
G、把经过F步骤加密后的明文子块PX1与经过F步骤加密后的明文子块PX2进行异或运算(^),经过F步骤加密后的明文子块PX3与经过F步骤加密后的明文子块PX4进行异或运算(^)……经过F步骤加密后的明文子块Px1023与经过F步骤加密后的明文子块PX1024进行异或运算(^),一共512组运算。
H、下面的明文子块..全部为经过G步骤后的值:
明文子块PX1与明文子块PX2进行异或运算(^)运算其值去替换原本明文子块PX1的值,
明文子块PX2与明文子块PX3进行异或运算(^)运算其值去替换原本明文子块PX2的值,
明文子块PX3与明文子块PX4进行异或运算(^)运算其值去替换原本明文子块PX3的值,
明文子块PX1021与明文子块PX1022进行异或运算(^)运算其值去替换原本明文子块PX1021的值,
明文子块PX1022与明文子块PX1023进行异或运算(^)运算其值去替换原本明文子块PX1022的值,
明文子块PX1023与明文子块PX1024进行异或运算(^)运算其值去替换原本明文子块PX1023的值。
I、用第二组密匙K2Xi与经过H步骤后明文子块PXi进行异或运算(^)运算,一共1024组。
J、下面的明文子块..全部为经过I步骤后的值:
明文子块PX1与明文子块PX1024进行异或运算(^)运算产生一个值P1,
明文子块PX2与值P1进行异或运算(^)运算产生一个值P2,
明文子块PX3与值P2进行异或运算(^)运算产生一个值P3,
明文子块PX1021与值1020进行异或运算(^)运算产生一个值P1021,
明文子块PX1022与值1021进行异或运算(^)运算产生一个值P1022,
明文子块PX1023与值1022进行异或运算(^)运算产生一个值P1023。
最后把明文子块PX1024的值替换为P1023的值。
K、再次调用(c)矩阵排列算法,把密匙流并把密匙流从最高位向最低位移动2分之1,把移出的2分之1补到高位处,再用该密匙流对经过J步骤后明文子块PXi进行排列运算。
L、把第2组的密匙与第1组的密匙之间做子异或(^)运算,把值再用矩阵排列算法,密匙流用上面同样的值进行排列运,再用它的值与经过j步骤后明文子块PXi进行异或(^)运算。
M、加密结束,输出密文(ciphertext)为32768比特的数据。
解密的具体运算为:
A、取得加密过的密文(ciphertext)C为32768比特的数据。
B、设密匙K为65536比特,如果长度不足65536比特,则把密匙K加长为65536比特。
把65536比特的K分成32768个子块,每一个子块2比特,令这32769个子块为
密匙流的表示方法:KXi=KX1,KX2,KX3,KX4… …KX32767,KX32768,KX32768;
C、子密匙分组:把65536比特的Ki分成两个不同的组,每组为1024个子块,每一子块32比特,令这1024个子块为第1组:K1Xi=K1X1,K1X2,K1X3,K1X4……K1X1022,K1X1023,K1X1024;
第2组:K2Xi=K2X1,K2X2,K2X3,K2X4 … …K2X1022,K2X1023,K2X1024;
D、把密文C数据分组:
分组:32768比特的密文数据块分成1024个子块,每一子块32比特,令这1024个子块为
密文子块表示为:CXi=CX1,CX2,CX3,CX4 … …CX1022,CX1023,CX1024;
E、把第2组的密匙与第1组的密匙之间做子异或(^)运算,把值再用矩阵排列算法G步骤进行运算,密匙流的值不变,再进行排列运,再用它的值与密文子块CXi进行异或(^)运算。
F、把密匙流从最高位向最低位移动2分之1,把移出的2分之1补到高位处,再用该密匙流对经过E步骤后密文子块CXi进行排列运算:
G、IP矩阵排列:
把32768比特的密文数据按每比特、每个位置的顺序排入32纵32行32列的正方型的矩阵中。
从每个纵中的32行32列的矩阵中提取出1024个不同行和列的值的阵矩。
开始解密:
(a)首先定义,利用KXi中的值来确定每个矩阵中的不同排列方式。密匙的值为(0、1、2、3)表格中的排列分别为,当值为0时排列不变。当值为1时排列矩阵按顺时针的方向转动一下,即原来的行变成列,原来的列变成行。当值为2时排列矩阵按顺时针的方向转动两下,即上行变成下行,右列变成左列。当值为3时排列矩阵按逆时针的方向转动一下,即原来的列变成行,原来的行变成列。
把正方型的阵矩的六个面都定义一个值,分别用(A)、(B)、(C)、(D)、(E)、(F)来表示。如图
从密匙K中指定的位置提取12个比特的数据,把这12比特分成6组每组2比特,再把(A)、(B)、(C)、(D)、(E)、(F)排成3行2列的表格形式如图3,再用这6组密匙对这个表格,把表格分成(A)、(B)、(C)、(D)和(C)、(D)、(E)、(F)两个交叉的表格然后再进行6次排列运算运算方法用(a)的方法进行排列,输出正方型的阵矩的六个面的顺序表,在把该顺序表做一个逆转(即把原来的顺序完全倒过来)。
(1)对正方型的矩阵排列运算,从顺序表中的第一个面开始。
(2)把密匙流从最低位向最高位移动6分之一,把移出的6分之1补到低位处。
(3)把该面32乘32的矩阵分成32乘32、16乘16、8乘8、4乘4、2乘2的各种表格,并把密匙流分成32段,每个纵用一段,每次对不同的纵的排列密匙流都不同。
①、用该段的第300到……个密匙的值对2乘2的表格用a的方法进行排列,32乘32的表格分成960个2乘2的表格。
②、用该段的第76到该段的第300个密匙的值对4乘4的表格用a的方法进行排列,32乘32的表格分成224个4乘4的表格。
③、用该段的第11到该段的第75个密匙的值对8乘8的表格用a的方法进行排列,32乘32的表格分成64个8乘8的表格。
④、用该段的第2到该段的第10个密匙的值对16乘16的表格用a的方法进行排列,32乘32的表格分成9个16乘16的表格。
⑤、用该段的第1个密匙的值对32乘32的表格用a的方法进行排列。
(3)跳回(2)继续对下一个纵值进行排列,每次推进下一个纵。
(4)当32个纵向中的表格都排列完毕时跳回(1)继续对下一个面进行排列,并把密匙流从最低位向最高位移动6分之1,把移出的6分之1补到低位处。如果6个面都完成了就结束IP矩阵排列。
H、下面的密文子块..全部为经过g步骤后在用d的方法排列过的值:
密文子块CX1023与值1022进行异或运算(^)运算产生一个值C1023。
密文子块CX1022与值1021进行异或运算(^)运算产生一个值C1022,
密文子块CX1021与值1020进行异或运算(^)运算产生一个值C1021,
密文子块CX3与值C进行异或运算(^)运算产生一个值C3,
密文子块CX2与值C1进行异或运算(^)运算产生一个值C2,
密文子块CX1与密文子块CX1024进行异或运算(^)运算产生一个值C1,
最后把密文子块CX1024的值替换为C1中的值。
G、用第二组密匙K2Xi与经过h步骤后密文子块CXi进行异或运算(^)运算,一共1024组。
I、下面的密文子块..全部为经过G步骤后的值:
密文子块CX1023与密文子块CX1024进行异或运算(^)运算其值去替换原本密文子块CX1023的值,
密文子块CX1022与密文子块CX1023进行异或运算(^)运算其值去替换原本密文子块CX1022的值,
密文子块CX1021与密文子块CX1022进行异或运算(^)运算其值去替换原本密文子块CX1021的值,
密文子块CX3与密文子块CX4进行异或运算(^)运算其值去替换原本密文子块CX3的值,
密文子块CX2与密文子块CX3进行异或运算(^)运算其值去替换原本密文子块CX2的值,
密文子块CX1与密文子块CX2进行异或运算(^)运算其值去替换原本密文子块CX1的值。
J、把经过I步骤加密后的密文子块CX1与经过I步骤加密后的密明文子块CX2进行异或运算(^),经过I步骤运算后的密文子块CX3与经过I步骤运算后的密文子块CX4进行异或运算(^)……经过I步骤运算后的密文子块CX1023与经过I步骤运算后的密文子块CX1024进行异或运算(^),一共512组运算。
K、用第一组密匙K1Xi与经过j步骤后的密文子块CXi进行异或运算(^)加密运算,一共1024组运算。
L、用原密匙流用G的方法对经过k步骤的子密匙进行排列运算。
M、解密结束输出明文(plaintext)32768比特的数据。
Claims (1)
1、用于数据加密的一种动态矩阵排列加密方法,其特征在于,所述动态矩阵排列加密方法包括以下步骤:
A、选取明文(plaintext)P为32768比特的数据,如果长度不足32768比特则填充随机数据使它满足32768比特;
B、设密匙K为65536比特,如果长度不足65536比特,则把密匙K加长为65536比特;
把65536比特的K分成32768个子块,每一个子块2比特,令这32769个子块为密匙流Kxi,其表示为:KXi=KX1,KX2,KX3,KX4……KX32767,KX32768,KX32769;
C、IP矩阵排列:
把32768比特的明文数据按每比特、每个位置的顺序排入32纵32行32列的正方型的矩阵中;
从每个纵中的32行32列的矩阵中提取出1024个不同行和列的值的阵矩;
开始加密:
a首先定义,利用KXi中的值来确定每个矩阵中的不同排列方式。密匙的值为(0、1、2、3)表格中的排列分别为,当值为0时排列不变;当值为1时排列矩阵按顺时针的方向转动一下,即原来的行变成列,原来的列变成行;当值为2时排列矩阵按顺时针的方向转动两下,即上行变成下行,右列变成左列,当值为3时排列矩阵按逆时针的方向转动一下,即原来的列变成行,原来的行变成列;
b、把正方型的矩阵的六个面都定义一个值,分别用A、B、C、D、E、F来表示;
从密匙K中指定的位置提取12个比特的数据,把这12比特分成6组每组2比特,再把(A)、(B)、(C)、(D)、(E)、(F)排成3行2列的表格形式,再用这6组密匙对这个表格,把表格分成(A)、(B)、(C)、(D)和(C)、(D)、(E)、(F)两个交叉的表格然后再进行6次排列运算运算方法用a的方法进行排列,输出正方型的阵矩的六个面的顺序表;
(1)对正方型的矩阵排列运算,从顺序表中的第一个面开始。
(2)把该面32乘32的矩阵分成32乘32、16乘16、8乘8、4乘4、2乘2的各种表格,并把密匙流分成32段,每个纵用一段,每次对不同的纵的排列密匙流都不同;
①、用该段的第1个密匙的值对32乘32的表格用(a)的方法进行排列;
②、用该段的第2到该段的第10个密匙的值对16乘16的表格用a的方法进行排列,32乘32的表格分成9个16乘16的表格;
③、用该段的第11到该段的第75个密匙的值对8乘8的表格用a的方法进行排列,32乘32的表格分成64个8乘8的表格;
④、用该段的第76到该段的第300个密匙的值对4乘4的表格用a的方法进行排列,32乘32的表格分成224个4乘4的表格;
⑤、用该段的第300到……个密匙的值对2乘2的表格用的a方法进行排列,32乘32的表格分成960个2乘2的表格;
(3)跳回(2)继续对下一个纵值进行排列,每次推进下一个纵;
(4)当32个纵向中的表格都排列完毕时跳回(1)继续对下一个面进行排列,并把密匙流从最高位向最低位移动6分之1,把移出的6分之1补到高位处。如果6个面都完成了就结束IP矩阵排列;
D、把排列完的明文P数据分组:
分组:32768比特的明文数据块分成1024个子块,每一子块32比特,令这1024个子块为明文子块PXi表示为:PXi=PX1,PX2,PX3,PX4……PX1022,PX1023,PX1024;
E、子密匙分组:把65536比特的Ki分成两个不同的组,每组为1024个子块,每一子块32比特,令这1024个子块为第1组:K1Xi=K1X1,K1X2,K1X3,K1X4……K1X1022,K1X1023,K1X1024;
第2组:K2Xi=K2X1,K2X2,K2X3,K2X4 … …K2X1022,K2X1023,K2X1024;
F、用第一组密匙K1Xi与排列后的明文子块PXi进行异或运算(^)运算,一共1024组运算;
G、把经过F步骤加密后的明文子块PX1与经过F步骤加密后的明文子块PX2进行异或运算(^),经过F步骤加密后的明文子块PX3与经过F步骤加密后的明文子块PX4进行异或运算(^)……经过F步骤加密后的明文子块PX1023与经过F步骤加密后的明文子块PX1024进行异或运算(^),一共512组运算;
H、下面的明文子块..全部为经过G步骤后的值:
明文子块PX1与明文子块PX2进行异或运算(^)运算其值去替换原本明文子块PX1的值,
明文子块PX2与明文子块PX3进行异或运算(^)运算其值去替换原本明文子块PX2的值,
明文子块PX3与明文子块PX4进行异或运算(^)运算其值去替换原本明文子块PX3的值,
明文子块PX1021与明文子块PX1022进行异或运算(^)运算其值去替换原本明文子块PX1021的值,
明文子块PX1022与明文子块PX1023进行异或运算(^)运算其值去替换原本明文子块PX1022的值,
明文子块PX1023与明文子块PX1024进行异或运算(^)运算其值去替换原本明文子块PX1023的值;
I、用第二组密匙K2Xi与经过h步骤后明文子块PXi进行异或运算(^)运算,一共1024组。I、下面的明文子块..全部为经过I步骤后的值:
明文子块PX1与明文子块PX1024进行异或运算(^)运算产生一个值P1,
明文子块PX2与值P1进行异或运算(^)运算产生一个值P2,
明文子块PX3与值P2进行异或运算(^)运算产生一个值P3,
明文子块PX1021与值1020进行异或运算(^)运算产生一个值P1021,
明文子块PX1022与值1021进行异或运算(^)运算产生一个值P1022,
明文子块PX1023与值1022进行异或运算(^)运算产生一个值P1023。
最后把明文子块PX1024的值替换为P1023的值;
K、再次调用(c)矩阵排列算法,把密匙流并把密匙流从最高位向最低位移动2分之1,把移出的2分之1补到高位处,再用该密匙流对经过j步骤后明文子块PXi进行排列运算;
L、把第2组的密匙与第1组的密匙之间做子异或(^)运算,把值再用矩阵排列算法,密匙流用上面同样的值进行排列运,再用它的值与经过J步骤后明文子块PXi进行异或(^)运算。
M、加密结束,输出密文(ciphertext)为32768比特的数据,加密结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02115081 CN1402465A (zh) | 2002-04-10 | 2002-04-10 | 一种动态矩阵排列加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02115081 CN1402465A (zh) | 2002-04-10 | 2002-04-10 | 一种动态矩阵排列加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1402465A true CN1402465A (zh) | 2003-03-12 |
Family
ID=4743443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02115081 Pending CN1402465A (zh) | 2002-04-10 | 2002-04-10 | 一种动态矩阵排列加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1402465A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2440992A (en) * | 2006-08-02 | 2008-02-20 | Farhad Dalvi | Encryption of an ordered first set of bits using rearrangement which depends on at least two encryption keys |
CN101771493A (zh) * | 2008-12-31 | 2010-07-07 | 财团法人工业技术研究院 | 广播网络中数据封装的方法与装置 |
CN101834719B (zh) * | 2005-03-25 | 2012-06-27 | 索尼株式会社 | 加密处理装置用矩阵生成方法 |
CN102546156A (zh) * | 2012-02-01 | 2012-07-04 | 李智虎 | 一种分组加密方法、系统和装置 |
-
2002
- 2002-04-10 CN CN 02115081 patent/CN1402465A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834719B (zh) * | 2005-03-25 | 2012-06-27 | 索尼株式会社 | 加密处理装置用矩阵生成方法 |
GB2440992A (en) * | 2006-08-02 | 2008-02-20 | Farhad Dalvi | Encryption of an ordered first set of bits using rearrangement which depends on at least two encryption keys |
CN101771493A (zh) * | 2008-12-31 | 2010-07-07 | 财团法人工业技术研究院 | 广播网络中数据封装的方法与装置 |
CN101771493B (zh) * | 2008-12-31 | 2013-07-03 | 财团法人工业技术研究院 | 广播网络中数据封装的方法与装置 |
CN102546156A (zh) * | 2012-02-01 | 2012-07-04 | 李智虎 | 一种分组加密方法、系统和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1221032C (zh) | 密钥安装系统和实现这一系统的lsi以及密钥安装方法 | |
CN1324831C (zh) | 加密/解密系统和加密/解密方法 | |
CN1134933C (zh) | 安全性高的秘密键传送系统、发送装置及接收装置 | |
CN1949863A (zh) | 实现信号加密的视频监控系统和视频监控方法 | |
CN1282324C (zh) | 数据加密装置和方法 | |
CN1483271A (zh) | 安全通信包处理装置及其方法 | |
CN1852089A (zh) | 用于生成模数混合混沌信号的系统和方法 | |
CN1758178A (zh) | 非法分析/伪造预防系统 | |
CN1728634A (zh) | 伽罗瓦域中相乘的方法和设备与求逆设备及字节替换设备 | |
CN1527173A (zh) | 信息处理装置以及信息处理方法 | |
CN1845213A (zh) | 一种实现sms4密码算法中加解密处理的方法 | |
CN1879138A (zh) | 密码处理装置、密码处理方法及其计算机程序 | |
CN1921395A (zh) | 提高网络软件安全性的方法和系统 | |
CN1503503A (zh) | 数据加密、解密方法及装置 | |
CN1238988C (zh) | 密钥信息生成的方法和装置、内容信息加密与解密的方法和装置 | |
CN1523924A (zh) | Av数据无线通信系统、通信装置、和电子设备 | |
CN1771483A (zh) | 半导体存储装置 | |
CN1906622A (zh) | 机密信息处理方法、机密信息处理装置及内容数据再现装置 | |
CN1697369A (zh) | 分组密码加密解密的方法及其加密解密器 | |
CN101030852A (zh) | 含有人体信息的高度安全的加密解密方法 | |
CN1402920A (zh) | 使用单向函数的数学约束型密钥的生成 | |
CN1949235A (zh) | 税控设备软件版本智能升级加密验证方法 | |
CN1852432A (zh) | 一种对直播流媒体数据进行加密和解密的方法 | |
CN1663173A (zh) | 信息处理方法、信息处理设备、程序和存储媒体 | |
CN1180351C (zh) | 强化错乱的分组密码加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |