CN1089205C - 一种高速数据置乱方法 - Google Patents
一种高速数据置乱方法 Download PDFInfo
- Publication number
- CN1089205C CN1089205C CN 94116286 CN94116286A CN1089205C CN 1089205 C CN1089205 C CN 1089205C CN 94116286 CN94116286 CN 94116286 CN 94116286 A CN94116286 A CN 94116286A CN 1089205 C CN1089205 C CN 1089205C
- Authority
- CN
- China
- Prior art keywords
- byte
- bytes
- key
- array
- mould
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种数据加密方法。该方法主要解决现有技术加密数据速率低,且不便在多数智能卡上使用的问题。其技术关键是提供了一种基于“圈”或含么元拟群的代数结构的轮函数,并在此轮函数结构中采用了四种基于字或字节的运算,设计了一种以用户密钥长度KL和轮函数迭代次数R(在一定范围可选)为参数的工作密钥生成程序。本发明的加密速率比已有技术提高了12%~68%,其中的模乘法运算速度在IBM 386/486微机上可提高6%,在MC68HC05单片机上可提高130%。
Description
本发明涉及信息处理技术,特别是一种数据加密方法。
随着现代信息技术的高速发展,信息的安全保护问题已成为一个普遍关注的课题。目前对于通信和计算机网络上所传输的大量信息的保护以防窃取、伪造和非法修改为目的,主要的技术措施是使用秘密密钥的迭代类型分组密码,简称“分组密码”(Block cipher)。当前世界上广泛使用的分组密码方法是美国国家标准局1977年公布的“数据加密标准”,即DES。这种用户密钥56比特的DES在九十年代已经不再是安全的分组密码方法。最近十年间,国际上又提出了一些新的分组密码方法。例如,1992年出版的《分组密码设计和安全》一书中所提出的分组密码加密方法IDEA,就是其中的一种。IDEA方法的目的是取代DES,成为新的国际数据加密方法。IDEA作为迭代类型的分组密码,其构成加密迭代的轮函数为基于群(Group)的代数结构的轮函数,即
f(X,Z)=P(In(XZ1A,Z1B)) (1)其中,X是被加密数据,Z=(ZA,ZB)是工作密钥子块,是群运算,In是对合变换,P是置换(均定义在Z2 16上)。IDEA加密过程的计算图如图4所示。IDEA方法虽说是实现了抗差分攻击的密码安全性的证明,但由于其方法强调加密与解密(算法程序)的严格相似,以及将轮函数中的基本运算严格限于三种对字的操作,特别是其中的模(216+1)乘法运算⊙16(即图4中用⊙标记的运算)要使用32比特长数据的普通乘法,因而造成以下几种缺陷与不足:
1.IDEA加密数据的速率不够高;
2.IDEA中的模(216+1)乘法运算⊙16需要利用32比特数据乘法来完成,这既需要较长的数据处理器才有利于其实现,同时也不利于加密数据速率的提高;
3.IDEA中的模(216+1)乘法运算⊙16很难用查表法(实现)来提高加密速率。因为即使使用(双表)查表法实现模(216+1)乘法运算⊙16至少也需要256K字节的存储空间;使用(单表)查表法实现乘法运算⊙16的代价则是完全无法承受的(存储空间需求为8388千K字节);
4.由于IDEA不适合由8比特CPU实现,因此不适合在多数智能卡上使用。
本发明的目的在于避免上述已有技术的不足,在保持其密码安全性是部分地可以证明的前提之下,提供数据加密速率高于现有方法(如IDEA)适合各类32、16、8比特字长CPU实现,且能用于大多数智能卡的数据加密方法。
实现本发明目的的技术方案是使用秘密密钥的迭代类型分组密码,并由构成加密迭代的轮函数确定该分组密码,轮函数中的基本运算包括16比特子块的逐比特异或,16比特整数的模216加,以及基于字节的模(2m+1)乘法运算⊙m,根据所确定的基本运算,设计软件具体实现。其技术关键有以下几点:
1.提供一种基于“圈”(Loop)或“含元拟群”(Quasi-group withidentity)的代数结构的轮函数,即
f(X,Z)=P(InP1,P2(P0(XBZA),ZB)) (2)其中,X是被加密数据,Z=(ZA,ZB)是工作密钥子块,B是群运算、In是对合变换、P是置换(均定义在Z2 16上),而P0、P1、P2是定义在Z2 16上,受密钥控制的三个可逆变换(族)。我们称式(2)为第V型轮函数。即使式(2)中的可逆变换P0、P1、P2都取为恒等变换,此轮函数与IDEA的轮函数式(1)相比仍有实质性区别。这是因为:①加密过程中的模(2m+1)乘法运算⊙m,采用基于字节的模(28+1)乘法⊙8的直积,以取代现有技术IDEA的模(216+1)乘法运算⊙16,同时仍然提供了一种
上的群(Group)结构;②与IDEA加密过程计算图的MA结构中的一个⊙16对应的运算(在HDEP加密过程计算图中用☆标记)是新引入的第四种基于字节(byte)的运算,它可以不必是上的群运算。
2.提供了一种以用户密钥长度KL和轮函数迭代次数R(限定范围内可选)为参数的工作密钥生成算法KEY(KL,R,UK,Z),(5≤KL≤8,8≤R≤14),如图三所示。它以16KL(=80~128)比特长用户密钥UK为输入,给出16(6R+4)比特的工作密钥。 其中,ZA (r)、ZB (r)是第r轮迭代时使用的密钥子块,简记为ZA、ZB,迭代按式(2)进行,而ZA R+1则是如下输出变换使用的密钥:
3.重新改进了加密迭代函数结构中的基本运算设计,如图1所示。图1的计算过程是在已有IDEA加密过程的三种基于字(Word)的群运算,田和⊙的基础上增加了基于字节(byte)的第四种基本运算☆,并用基于字节(byte)的模(28+1)乘法⊙8的直积群运算,○取代IDEA加密过程中的模(216+1)乘法运算⊙16,同时仍然提供了一种上的群运算。
4.将分组密码的明、密文分组长度设计为64比特,且分别将其记为:
X=(X1,X2,X3,X4)
Y=(Y1,Y2,Y3,Y4)其加密变换由按式(2)的R次轮函数迭代,紧接一次按式(3)的输出变换构成: 其中定义在Z2 16上、受密钥控制的三个可逆变换(族)P0、P1、P2的设计选取,以及在加密过程计算图中用☆标记的第四种基本运算的设计,决定了分组密码方法具体的子模式。这组可选参量实际上向用户提供了区别于用户密钥的一种“体制—子模式”“密钥”。
5.本发明在若干相互区别的分组密码子模式中,特别提出如下两类分组密码基本模式HDSS分组密码子模式HDSS-A(R)
HDSS-A(R)THDSS分组密码子模式HDSS-B(R)
HDSS-B(R)T其中,HDEP是本发明名称“高速数据加密方法”的英文(the High-spccd Data Scramble Scheme)缩写。HDSS-A(R)1、HDSS-B(R)是两种相互区别的基本模式;记号(R)表示该方法使用基本的轮函数进行迭代的总次数,文中约定,当R=8时记号(R)可以省略。而下标T(Table)表示使用(单表)查表法实现模(28+1)乘法运算⊙8的相应子模式。这两种分组密码基本模式的加密变换算法用软件实现时,其程序框图如图2所示。
本发明具有如下优点:
①由于使用了比群代数结构更广泛一种“圈”或“含 元拟群”的轮函数结构,以及第四种基本运算☆的引入,使本方法提供了更丰富的分组密码子模式。这一方面使用户拥有更大的选择不同子模式的自由,另一方面,也使得设计具有更高密码安全性的子模式的工作成为理所当然的事情。
②本发明特别提出的两类基本模式HDSS-A(R)及HDSS-B(R).均实现了由1比特开关量控制的加密与解密共用的函数子程序。同时,就硬件实现本发明的加密过程而论,以上两种基本模式中引入的乘法⊙8的直积○、第四种基本运算☆以及可逆变换(族)P1,并未增大硬件实现本发明的复杂度(与已有技术IDEA相比)。
③由于本发明采用基于字节(byte)的模(28+1)乘法运算⊙8的直积○取代已有IDEA加密过程计算图中的模(216+1)乘法运算⊙16,因而,在IBMPC386/486机上其运算速度(○比⊙16)可提高6%以上,在MC68HC05(8位)单片机上实现时,运算速度可提高130%以上。
④在1BMPC386/486微机上用软件实现本发明的两种分组密码模式HDSS-A(R)及HDSS-A(R)T、HDSS-B(R)及HDSS-B(R)T,其数据加密速率比已有的IDEA方法提高了12%到68%,如表1所示。在16比特或8比特字长CPU的机型上用软件实现时,其数据加密速率的提高则更大。
⑤分别将HDSS与IDEA的明密文分组长度缩小为8比特,有所谓1/8缩小模型HDSS(8)及IDEA(8)。对HDSS(8)及IDEA(8)的数值试验表明,当使用相同的加密时间时,本发明抗差分攻击的密码安全性与已有技术IDEA抗差分攻击的密码安全性相当甚至更高,如表2所示。
⑥本发明提供的以用户密钥长度KL和轮函数迭代次数R(限定范围内可选)为参数的工作密钥生成算法KEY(KL,R,UK,Z),(5≤KL≤8,8≤R≤14),不但方便用户使用本数据加密方法,而且有避免产生弱(工作)密钥的功能。
以下给出本发明的图表说明
图1是本发明的加密过程计算图
图2是本发明分组密码加密变换流程图
图3是本发明工作密钥Z生成流程图
图4是已有技术IDEA的加密过程计算图
表1是本发明HDSS与已有技术IDEA数据加密速率的比较
表2是本发明HDSS的1/8缩小模型HDSS(8)和已有技术IDEA的1/8缩小模型IDEA(8)的数值分析结果。
参照图1
Xi: 表示16比特明文子块
Yi: 表示16比特密文子块
Zi (r):表示16比特密钥子块
: 表示16比特子块的逐比特异或
◎: 表示基于字节(byte)的模(28+1)乘法⊙8的直积群运算(其中全零字节对应于28)
R=R+1
参照图2,本发明的加密变换步骤如下:
I 将明文以字方式组织,命名为Xi,作为算法的输入;
II 自r=1到r=R,取本轮密钥子块
ZA=(Z[1][r]、Z[2][r]、Z[3][r]、Z[4][r])
ZB=(Z[5][r]、Z[6][r])按式(2):
f(X,Z)=P(InP1,P2(P0(XBZA),ZB))进行轮函数计算。其中,B是群运算, P0(XBZA)构成X与ZA的圈(Loop)运算,Inp1,p2(*,*)为参量为P1、P2的对合运算,而P则是一个对合置换;
III 对于r=R+1,取密钥子块
ZA=(Z[1][R+1]、Z[2][R+1]、Z[3][R+1]、Z[4][R+1])按式(3):
Y=P0(XBZA)计算出密文Y,其中,B是群运算,P0(BZA)构成X与ZA的圈(Loop)运算;
IV输出密文Y=(Y1、Y2、Y3、Y4)。
其中Xi(1≤i≤4)是待加密的明文子块(16比特字),Yi(1≤i≤4)是算法输出的密文子块(16比特字),而Z[][]是已知的工作密钥数组,r是当前加密轮数。
参照图3,本发明的工作密钥Z生成算法即实现文中用
KEY(KL,R,GK,Z)表示的函数变换的算法,其中KL、R、UK是算法的输入,Z是算法的输出。整数KL指出用户密钥UK为KL个字(即16KL比特),整数R指出工作密钥Z=Z[i][r]的数据量为6R+4个字(1≤r≤R时1≤i≤6,r=R+1时1≤i≤4)。其步骤如下:
(1)将用户密钥以字节方式存于数组UK[];
(2)将UK前12字节作为数组S[]的前12字节(若UK仅有10字节,则由此10字节扩展出UK的第11、第12字节);
(3)将S的前12字节逐比特取反后作为S的第二段的12个字节;
(4)若用户密钥长度超过12字节,则将UK自第13字节开始的字节赋给S(自第25字节起);
(5)使用基于字节的运算,利用多个非线性移位寄存器生成S的其余字节。
(6)将基于字节的S数组内容转移到按字组织的工作密钥数组Z[i][r]之中;
(7)输出工作密钥数组Z
其中,UK[]是用户密钥数组,Z[][]是工作密钥数组,S[]是辅助存储数组。
图4中,⊙表示16比特整数的模(216+1)乘法(其中全零子块对应于216),其它标记与图1相同。
表1中,带下标T的AT,BT表示使用(单表)查表法的相应方法子模式,其存储空间需求64K字节。试验时,选用非零用户密钥对非零明文进行加密,轮函数迭代次数R=8,测试加密速率的试验在IBMPC386/486微机上进行。
表2中的AT、BT与表1相同,即表示使用(单表)查表法的相应方法子模式,存储空间需求为64K字节。表中的“抗差分攻击达标轮数”的结论仅按1/8缩小模型的数值分析结果推定,表中的“相同加密时间对应的迭代次数R”出现的分数值由线性插值方法求得。
方法与子模式名 称 | IDEA | HDSS-AA/AT | HDSS-BB/BT |
加密50万×64比特明文所用机时(秒)(IBM386-40MHz) | 146 | 128/90 | 121/90 |
加密50万×64比特明文所用机时(秒)(IBM486-33MHz) | 146 | 130/90 | 124/90 |
相对加(解)密速率(按上栏数据计算) | 1.00 | 1.12/1.68 | 1.18/1.68 |
表1
方法与子模式名 称 | IDEA | HDSS-AA/AT | HDSS-AA/AT | HDSS-BB/BT | HDSS-BB/BT |
差分定义方式 | I | I | II | I | II |
转移矩阵П=(pij)的非对称性证实 | p(5,17)=.25p(17,5)=0 | p(11,99)=.5p(99,11)=0 | p(11,35)=.25p(35,11)=0 | p(11,99)=.5p(99,11)=0 | p(11,35)=.25p(35,11)=0 |
λnext-max | 0.442097 | 0.610292 | 0.610292 | 0.610292 | 0.610292 |
抗差分攻击达标轮数max(p(r-1)ij)-1/255<1/128之 | 7 | 8 | 8 | 8 | 8 |
按上栏达标轮数加密所需加密时间对比 | 1.00 | 1.02/ 0.68 | 1.02/0.68 | 0.97/0.68 | 0.97/0.68 |
相同加密时间对应的迭代次数R | 8.00 | 8.96/13.44 | 8.96/13.44 | 9.44/13.44 | 9.44/13.44 |
表2
Claims (2)
1.一种数据加密方法,是使用秘密密钥的迭代类型分组密码,并由构成加密迭代的轮函数确定该分组密码,轮函数中的基本运算包括16比特子块的逐比特异或,16比特整数的模216加,以及基于字节的模(2m+1)乘法⊙m,根据所确定的基本运算,设计软件具体实现,其特征在于:
(1)提供了一种基于“圈”或“含元拟群”的代数结构的轮函数,即 其中,B是群运算,In是对合变换,P是定义在Z2 16上的置换,P0、P1、P2是定义在Z2 16上,受密钥控制的三个可逆变换(族);
(2)提供了一种以用户密钥长度KL和轮函数迭代次数R(在一定范围可选)为参数的工作密钥生成程序;
(3)增设了涉及字的高低位字节换位的16比特子块的运算☆并选用基于字节的模(28+1)乘法⊙8的直积群运算○(全零字节均对应于28);
2.根据权利要求1所述的方法,其特征在于所说的工作密钥生成程序采用下列步骤:
(1)将用户密钥以字节方式存于数组UK[];
(2)将UK前12字节作为数组S[]的前12字节(若UK仅有10字节,由此10字节扩展出UK的第11、第12字节);
(3)将S的前12字节逐比特取反后作为S的第二段的12个字节;
(4)若用户密钥长度超过12字节,则将UK自第13字节开始的字节赋给S(自第25字节起);
(5)使用基于字节的运算,利用多个非线性移位寄存器生成S的其余字节;
(6)将基于字节的S数组内容转移到按字组织的工作密钥数组Z[i][r]之中;
(7)输出工作密钥数组Z。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94116286 CN1089205C (zh) | 1994-09-24 | 1994-09-24 | 一种高速数据置乱方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 94116286 CN1089205C (zh) | 1994-09-24 | 1994-09-24 | 一种高速数据置乱方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1119316A CN1119316A (zh) | 1996-03-27 |
CN1089205C true CN1089205C (zh) | 2002-08-14 |
Family
ID=5037845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 94116286 Expired - Fee Related CN1089205C (zh) | 1994-09-24 | 1994-09-24 | 一种高速数据置乱方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1089205C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6947560B1 (en) * | 1999-04-26 | 2005-09-20 | Telefonaktiebolaget L M Ericsson (Publ) | Method and device for effective key length control |
US11190339B2 (en) * | 2019-05-14 | 2021-11-30 | Baffle, Inc. | System and method for performing equality and less than operations on encrypted data with quasigroup operations |
-
1994
- 1994-09-24 CN CN 94116286 patent/CN1089205C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1119316A (zh) | 1996-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Andem | A cryptanalysis of the tiny encryption algorithm | |
JP2610773B2 (ja) | Ansi x3.92データ暗号化アルゴリズム標準のパフォーマンスを強化したデータ暗号化アルゴリズムを実行するデータ処理システム | |
USRE44594E1 (en) | Method and circuit for data encryption/decryption | |
EP1833190B1 (en) | Table splitting for cryptographic processes | |
WO1997044935A1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
CN1527531A (zh) | 一种数据加密标准或三重数据加密标准的实现方法 | |
CN101335616B (zh) | 一种具有无限密钥空间的对称加密方法 | |
AU2004240359B2 (en) | Device and method for encrypting and decrypting a block of data | |
CN1286077C (zh) | 基于动态变长码的数据加密与解密系统 | |
CN106982116B (zh) | 一种基于可逆逻辑电路的aes的本地文件加密方法 | |
CN1445681A (zh) | 高安全等级对称密钥算法的加密、解密方法及加密器 | |
CN1089205C (zh) | 一种高速数据置乱方法 | |
CN110601817B (zh) | 一种数据处理方法及装置 | |
CN111314054B (zh) | 一种轻量级eceg分组密码实现方法、系统及存储介质 | |
CN107171782A (zh) | 一种基于可逆逻辑电路的aes私密日志加密方法 | |
CN114826560B (zh) | 一种轻量级分组密码cref实现方法及系统 | |
CN110247754B (zh) | 一种分组密码fbc的实现方法及装置 | |
CN114978475A (zh) | 基于aes-128算法的汽车仪表加解密处理方法和系统 | |
CN1168058C (zh) | 一种动态密码编制的数据加密方法 | |
JP3039334B2 (ja) | 暗号装置 | |
KR100350207B1 (ko) | 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법 | |
CN114337993B (zh) | 一种应用于边缘物联代理的白盒sm4加解密方法及系统 | |
US20050129228A1 (en) | Modular computerized encryption scheme | |
CN111669273B (zh) | 一种基于元胞自动机理论的加密方法 | |
JP2002091295A (ja) | Feistel構造とSPN構造とを組み合わせた演算装置および演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |