CN1829142B - 一种强化密钥流序列的方法 - Google Patents

一种强化密钥流序列的方法 Download PDF

Info

Publication number
CN1829142B
CN1829142B CN2005100511718A CN200510051171A CN1829142B CN 1829142 B CN1829142 B CN 1829142B CN 2005100511718 A CN2005100511718 A CN 2005100511718A CN 200510051171 A CN200510051171 A CN 200510051171A CN 1829142 B CN1829142 B CN 1829142B
Authority
CN
China
Prior art keywords
byte
mnemon
content
input
sequence
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
Application number
CN2005100511718A
Other languages
English (en)
Other versions
CN1829142A (zh
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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN2005100511718A priority Critical patent/CN1829142B/zh
Publication of CN1829142A publication Critical patent/CN1829142A/zh
Application granted granted Critical
Publication of CN1829142B publication Critical patent/CN1829142B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种强化密钥流序列的方法,可增强序列的抗分析能力。输入字节序列x=(x0,x1,x2,......),输出经扰乱后的字节序列zi。包括:预置2m个记忆单元0,1,2,......2m-1,每个记忆单元中存放一个字节内容;对输入字节序列的每个字节xi做如下操作:取xi的高m比特的值为h;用第h个记忆单元中的内容yh与xi作异或操作,输出zi,即;更新记忆单元,取出第h个记忆单元中的内容yh的低m比特的值t,将第h个记忆单元中的内容yh更新为,将第t个记忆单元中的内容yt更新为,其中S为一个非线性函数变换,是一个从字节到字节的置换,变换的输入输出均为8比特字符,S(yt)、S(xi)分别是以yt、xi为输入,计算S的函数值。

Description

一种强化密钥流序列的方法
技术领域
本发明涉及一种信息传输与处理的安全技术,更确切地说是涉及一种强化乱源序列或密钥流序列的方法。采用基于字节操作的混合型带记忆逻辑,以增强序列密码算法的抗分析强度。
背景技术
序列密码的设计一般都是以计算保密为前提,即依据当前的计算力,让任何可预料得到的攻击手段变得徒劳无益。然而,序列密码设计者一般不能完全预料到攻击者会使用什么技巧,如果攻击者通过研究加密算法的逻辑结构、密钥流序列与用户密钥间的关系、以及密文与明文间的关系,找到了某种可供利用的规律,就有可能使攻击的难度大大降低。由于设计者往往不能事先将各种可供利用的规律都认识清楚,因而为了提高加密算法的潜在抗分析性能,就应尽可能地使变换逻辑复杂化。
目前人们对序列密码进行攻击的前提条件是:密钥流序列已知,且该序列很长,可通过统计分析对加密算法达成攻击。其攻击结果一般分为密钥恢复(Key Recovery);密钥预测(Prediction)和密钥区分(Distingwishing)三种。从设计角度来看,最难以抵御的是区分攻击。不过,对序列密码算法的这种基于统计的分析,其成败在很大程度上依赖于密钥流序列生成逻辑的设计。
本技术领域普遍认为,加密算法中采用带记忆逻辑是强化密钥流生成逻辑的一种基本措施,它可以增强算法抵抗线性分析和差分分析的性能,因此带记忆逻辑的合理运用很可能是抵御区分攻击的最佳选择。
随着电子计算机和微电子技术的迅猛发展和信息时代的到来,人们对信息传输和信息处理的能力不断提出更高要求。基于单个比特的逻辑操作将被逐渐淘汰,在密码设计方面,由于单比特记忆越来越难以适应信息时代对密码产品高效性的要求,因而必定要采用整字带记忆逻辑。与单比特带记忆逻辑相比,基于字节的带记忆逻辑不但易于加大记忆单元的规模,增强抵抗线性和差分分析方面的性能,而且易于保证效率(所谓”字”主要指8比特、16比特、32比特、64比特这四种字,本发明只涉及整字为8比特的情形)。
其实,在序列密码算法设计中,将整字带记忆逻辑作为非线性变换组件已经成为近年来的主流设计思想,因为带记忆逻辑具有很强的抗分析性能。纵观目前已公开的序列密码算法,整字带记忆逻辑的应用已经初具规模,而且表现出很多种具体的整字记忆形式。RC4和ISAAC算法其实是一种以搅拌器型整字带记忆逻辑为核心的算法。WAKE算法的主体是简单的四级串联组合型(或称级联记忆式)整字带记忆逻辑。MUGI算法属于基于整字带记忆的PANAMA类密钥流发生器。SNOW中所采用的所谓有限自动机实质上是一种复杂的累加器型整字带记忆逻辑。
研究整字带记忆逻辑的分类、各类整字带记忆逻辑在抗分析方面的强点与弱点及易实现性,对一些序列密码算法的分析与设计极其重要,这无疑会成为序列密码设计者们必须了解和钻研的课题。另外,整字带记忆逻辑的研究成果也可应用于Hash函数、消息认证码、身份识别和分组密码算法的分析与设计中。
整字带记忆逻辑,既来自于密码算法设计实践,又运用于指导密码算法设计,有着极强的实用性,其研究成果可直接应用于最新的密码算法设计。但目前整字带记忆逻辑的理论研究,还是一个比较新的课题,这方面的研究成果和产品都比较少。但正是由于整字带记忆逻辑有着广阔的应用前景,需要通过深入研究,而设计一种具有独特设计思想、良好抗分析性能、较高数据处理效率和可嵌入性灵活的密钥流序列的产品。
发明内容
本发明的目的是设计一种强化密钥流序列的方法,也就是说让密钥流序列以字节为单位输入,通过一个扰乱器后再以字节为单位输出,该扰乱器是一个强化字符序列的整字带记忆非线性逻辑。在序列密码设计中,通过增设该扰乱器,使密钥流序列的抗分析能力从脆弱变得坚强。
实现本发明目的的技术方案是这样的:一种强化密钥流序列的方法,应用于信息传输与处理的安全领域,输入字节序列,输出经扰乱后的字节序列,其步骤包括:
A.预置2m个记忆单元,0,1,2,......2m-1,每个记忆单元中存放一个字节内容;
B.对输入的字节序列x=(x0,x1,x2,......)中的每个字节xi,做如下操作:
a.取xi的高m比特的值h,h是小于2m的值;
b.在已知h后,用第h个记忆单元中的内容yh与输入字节xi作异或操作,输出经扰乱后的字节zi,即
Figure B2005100511718D00031
c.更新记忆单元,取出第h个记忆单元中的内容yh的低m比特的值t,t是小于2m的值,在已知t后,将第h个记忆单元中的内容yh更新为
Figure B2005100511718D00032
Figure B2005100511718D00033
将第t个记忆单元中的内容yt更新为
Figure B2005100511718D00034
Figure B2005100511718D00035
Figure B2005100511718D00036
其中S表示一个非线性函数变换,是一个从字节到字节的置换,S(yt)、S(xi)分别是以yt、xi为输入,计算S的函数值,该非线性函数变换的输入输出均为8比特字符;
所述步骤A中,用密码算法的基本密钥或初始向量初始预置所述的2m个记忆单元中每个记忆单元初始存放的字节内容。
所述步骤a中,取xi的高m比特的值为h,是对字节xi做右移(8-m)位的操作,即h=xi>>(8-m);所述步骤c中,计算的低m比特的值为t,是用第h个记忆单元的内容yh模2m,即t=yhmod 2m
所述的m为3或4或5或6。
记忆单元的规模对算法安全性具有重要影响,本发明的序列扰乱方法,在设计基于单字节输入输出、整字运算的带记忆逻辑时,合理地加大了记忆单元规模,增强了该记忆逻辑在抗线性和差分分析方面的性能。与单比特带记忆逻辑相比,基于字节的带记忆逻辑不但易于加大记忆单元的规模,而且在应用效率上会成倍提高。本发明的强化密钥流序列的方法基于字节操作的混合型带记忆逻辑(根据Byte-o riented memorial mixer的英文表达可缩写成BOMM算法)的序列扰乱方法,包括变换函数及S盒,它对输入的每一个字节利用变换函数及S盒进行扰乱后再按字节输出。一条抗分析能力比较脆弱的密钥流序列,经过它的扰乱,序列复杂度会得到增强。之所以说这类带记忆逻辑是混合型的,是因为它兼有累加器型带记忆逻辑和搅拌器型带记忆逻辑的双重特性。
附图说明
图1是m=4时的16个记忆单元分布示意图;
图2是在输入字符0x4B时该16个记忆单元中的内容;
图3是在输入0x4B,经过扰乱输出字符0x56后,更新16个记忆单元中的内容;
图4是在又输入字符0xB8,并输出经扰乱后的字符0xFF后更新16个记忆单元中的内容;
图5是在再输入字符0x4D,并输出经扰乱后的字符0x39后更新16个记忆单元中的内容;
图6是实施例所使用的S盒部分代替表示意图;
图7是本发明产品的一种简单型应用举例;
图8是本发明产品的一种组合型应用举例。
具体实施方式
在实施本发明的技术方案时,当选择的S盒质量较好,基于字节操作的混合型带记忆逻辑在抗击相关攻击、分别征服攻击、相关密钥攻击和区分攻击等方面都有很好的性能。可以方便地用于序列密码算法和Hash函数的设计,只要与一个基于字节运算的乱源序列相联就行了。
本发明内容涉及到变换函数及S盒,2m个字节记忆单元内容的初始预置,依据具体应用方式,可以由密码算法的基本密钥提供,也可以由随意产生的随机数-初始向量预置。S盒的设置可以看作是系统密钥,也可以在某些情形下不保密。m可为3-6中的任一个数,例如在m=4时有24共16个记忆单元0,1,2,......15;输入字符序列x,输出字符序列为z,输出字符序列z的随机性与抗分析性优于输入字符序列x;每输出一个字符后,一般要更新16个记忆单元中的两个记忆单元的内容,但有时也会出现对同一个记忆单元更新两次的情况。
下面用m=4的例子并结合附图对本发明的方法进行详细描述。
参见图1,16个记忆单元0,1,2,......,15(也可以表示成0,1,2,...,A,...,F)排列成4×4图框式结构。在每个图框中存放一个字节内容,表示为y1,y2,......,y15,图框中字节内容随着对输入字符序列x的扰乱处理而不断更新。
例如,当存放在图框0,1,2,......,E,F中的字符内容如图2所示,输入字符序列x=0x4B,假设所选择的S盒的部分代替表如图6所示。
首先计算h的值(因为m=4,因此h是小于24的数)。取0x4B(01001011)中的高m比特(即高4比特),得到h=4,该操作可通过对4B作右移4(即8-m)位的操作而获得h=4(00000100);
然后用图2中图框第4记忆单元中的内容1D(00011101)与输入字节4B(01001011)作异或操作,获得结果(01010110)。如图中所示:输入0x4B,输出经扰乱后的0x56。
取图2中图框第4记忆单元中内容1D(00011101)的低m比特(即低4比特),得到t=13(1101),该操作可通过0x1D模24求出,t=0x1D mod 16=13(因为m=4,因此t是小于24的数)。
获得t=13后就可对记忆单元进行更新了,更新结果如图3的图框中所示。
其更新过程是:将S盒中输入为第13(即D)记忆单元中内容0xA0(即X=0xA0)的置换结果S[0xA0]=0x69(01101001)取出(查询图6中代替表),再与第4记忆单元中内容1D(00011101)作异或操作,获得操作结果0x74(01110100),然后将0x74更新在第4记忆单元中,即新的
Figure B2005100511718D00061
Figure B2005100511718D00062
由于上述操作动用了第13记忆单元中的内容,故还需对该记忆单元作更新,其更新过程是:将S盒中输入为0x4B的置换结果S[0x4B]=0X09(00001001)取出(查询图6中代替表),再与第13(即D)记忆单元中内容A0(10100000)作异或操作,获得操作结果0xA9(10101001),然后将0xA9更新在第13记忆单元中,即新的
Figure B2005100511718D00063
图3中用斜体字74、A9表示的就是更新的字节内容。
若接下来输入的字符序列x中的字节是0xB8,参见图3。
首先计算h的值。取0xB8(10111000)中的高m比特(即高4比特),得到h=11,该操作可通过对B8作右移4(即8-m)位的操作而获得h=11(00001011);
然后用图3中图框第11(B)记忆单元中的内容47(01000111)与输入字节B8(10111000)作异或操作,获得结果(11111111)。如图3中所示:即输入0xB8,输出经扰乱后的0xFF。
取图3中图框第11记忆单元中内容47(01000111)的低m比特(即低4比特),得到t=7(0111),该操作可通过0x47模24求出,t=0x47mod 16=7。
获得t=7后就可对记忆单元进行更新了,更新结果如图4中所示。
其更新过程是:将S盒中输入为第7记忆单元中内容0x12(X=0x12)的置换结果S[0x12]=0X35(00110101)取出(查询图6中代替表),再与第11记忆单元中内容47(01000111)作异或操作,获得操作结果0x72(01110010),然后将0x72更新在第11记忆单元中,即新的
Figure B2005100511718D00065
Figure B2005100511718D00066
由于上述操作动用了第7记忆单元中的内容,故还需对该记忆单元作更新,其更新过程是:将S盒中输入为0xB8(X=0xB8)的置换结果S[0xB8]=0x19(00011001)取出(查询图6中代替表),再与第7记忆单元中内容12(00010010)作异或操作,获得操作结果0x0B(00001011),然后将0x0B更新在第7记忆单元中,即新的
Figure B2005100511718D00071
图4中用斜体字72、0B表示的就是更新后的内容。
若接下来输入的字符序列x中的字节是0x4D,参见图4。
首先计算h的值。取0x4D(01001101)中的高m比特(即高4比特),得到h=4,该操作可通过对4D作右移4(即8-m)位的操作而获得h=4(00000100);
然后用图4中图框第4记忆单元中的内容74(01110100)与输入字节4D(01001101)作异或操作,获得结果(00111001)。如图中所示:输入0x4D,输出经扰乱后的0x39。
取图4中图框第4记忆单元中内容74(01110100)的低m比特(即低4比特),得到t=4(1011),该操作可通过0x74模24求出,t=0x 74mod 16=4。
获得t=4后就可对记忆单元进行更新了,更新结果如图5中所示。
其更新过程是:将S盒中输入为第4记忆单元中内容0x74(X=0x74)的置换结果S[0x74]=0X31(00110001)取出(查询图6中代替表),再与第4记忆单元中内容74(01110100)作异或操作,获得操作结果0x45(01000101),然后将0x45更新在第4记忆单元中,即新的
由于m=t,故还需对该记忆单元再作更新,其更新过程是:将S盒中输入为0x4D(X=0x4D)的置换结果S[0x4D]=0x48(01001000)取出(查询图6中代替表),再与第4记忆单元中内容45(01000101)作异或操作,获得操作结果0x0D(00001101),然后将0x0D更新在第4记忆单元中,即新的
Figure B2005100511718D00074
Figure B2005100511718D00075
图5中用斜体字0D表示的就是更新的内容。本例中对同一个记忆单元-第4记忆单元中的字节内容进行了两次更新。
下面给出两个采用本发明的基于字节操作的混合型带记忆逻辑的序列密码算法示例。包括图7所示的简单型应用及图8所示的组合型应用。
参见图7,当算法中用于状态变换的S盒不公开时,输入到记忆单元中的字符序列的复杂度可以稍低一点。将字符序列输入本发明的产品10中,输出K序列。
产品10入口序列α i 是一条由GF(28)域上9级本原线性反馈移位寄存器合成的非线性组合序列,如果不设置本发明的产品10,当攻击者已知α i 序列时,就容易求出9级移位寄存器的初态。但是,当设置了本发明的产品10后,在仅仅已知K序列的情况下,如果不采用穷举方法,无法求出9级移位寄存器的初态。此时即使已知了S盒,仍然很难求出9级移位寄存器的初态。
参见图8,为了加强密码算法的抗分析强度,可将两个(或多个)基于字节操作的混合型带记忆逻辑20、21并行组合起来。输出的K序列拥有很高的复杂度,在攻击者已知K序列和S盒的情况下,求取基于字节操作的混合型带记忆逻辑20中各记忆单元中内容Y0,Y1,...,Y15和基于字节操作的混合型带记忆逻辑21中各记忆单元中内容L0,L1,...,L15及9级移位寄存器的状态是非常困难的。即使进入两个基于字节操作的混合型带记忆逻辑20、21的序列是线性序列(省去图中f函数和g函数),仍然有很好的抗分析强度。因此,并行组合的基于字节操作的混合型带记忆逻辑可以做为一个逻辑插件,与一个由两条字符序列为输出的任意乱源生成器相接。
本发明的方法适用于m为3或4或5或6的情况,当m=3时设置23=8个记忆单元,计算的h、t值都是小于8的数;当m=5时设置25=32个记忆单元,计算的h、t值都是小于32的数,依次类推。单字节输入输出带记忆逻辑部件,对密钥流字符序列进行扰乱处理,输入字符序列x,输出字符序列z,z序列的随机性和抗分析性优于x序列。

Claims (2)

1.一种强化密钥流序列的方法,应用于信息传输与处理的安全领域,输入字节序列,输出经扰乱后的字节序列,其步骤包括:
A.预置2m个记忆单元,0,1,2,......2m-1,每个记忆单元中存放一个字节内容,所述的m为3或4或5或6;
B.对输入的字节序列x=(x0,x1,x2,......)中的每个字节xi,做如下操作:
a.取xi的高m比特的值h,h是对字节xi做右移(8-m)位的操作,即h=xi>>(8-m);h是小于2m的值;
b.在已知h后,用第h个记忆单元中的内容yh与输入字节xi作异或操作,输出经扰乱后的字节zi,即
Figure F2005100511718C00011
c.更新记忆单元,取出第h个记忆单元中的内容yh的低m比特的值t,t是用第h个记忆单元的内容yh模2m,即t=yhmod 2m,t是小于2m的值,在已知t后,将第h个记忆单元中的内容yh更新为
Figure F2005100511718C00012
Figure F2005100511718C00013
将第t个记忆单元中的内容yt更新为
Figure F2005100511718C00014
Figure F2005100511718C00015
其中S为一个非线性函数变换,是一个从字节到字节的置换,S(yt)、S(xi)分别是以yt、xi为输入,计算S的函数值,该非线性函数变换的输入输出均为8比特字符。
2.根据权利要求1所述的方法,其特征在于:所述步骤A中,用密码算法的基本密钥或初始向量初始预置所述的2m个记忆单元中每个记忆单元初始存放的字节内容。
CN2005100511718A 2005-03-02 2005-03-02 一种强化密钥流序列的方法 Expired - Fee Related CN1829142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2005100511718A CN1829142B (zh) 2005-03-02 2005-03-02 一种强化密钥流序列的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2005100511718A CN1829142B (zh) 2005-03-02 2005-03-02 一种强化密钥流序列的方法

Publications (2)

Publication Number Publication Date
CN1829142A CN1829142A (zh) 2006-09-06
CN1829142B true CN1829142B (zh) 2010-09-29

Family

ID=36947295

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100511718A Expired - Fee Related CN1829142B (zh) 2005-03-02 2005-03-02 一种强化密钥流序列的方法

Country Status (1)

Country Link
CN (1) CN1829142B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848078A (zh) * 2010-04-30 2010-09-29 中国科学院软件研究所 一种密钥流序列扰动方法及加密方法
CN105739946A (zh) * 2014-12-08 2016-07-06 展讯通信(上海)有限公司 随机数生成方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143437A (zh) * 1994-03-14 1997-02-19 威廉·Y·肖 密钥可变的加密系统
CN1560823A (zh) * 2004-02-19 2005-01-05 李春林 基于动态变长码的数据加密与解密系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1143437A (zh) * 1994-03-14 1997-02-19 威廉·Y·肖 密钥可变的加密系统
CN1560823A (zh) * 2004-02-19 2005-01-05 李春林 基于动态变长码的数据加密与解密系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CN 1560823 A,全文.
US 2003/0007639 A1,全文.
张玉安,冯登国.序列密码设计中的整字带记忆逻辑.北京邮电大学学报29 2.2006,29(2),16-17.
张玉安,冯登国.序列密码设计中的整字带记忆逻辑.北京邮电大学学报29 2.2006,29(2),16-17. *

Also Published As

Publication number Publication date
CN1829142A (zh) 2006-09-06

Similar Documents

Publication Publication Date Title
Sun et al. MILP‐aided bit‐based division property for primitives with non‐bit‐permutation linear layers
CN108809626A (zh) 一种白盒sm4密码算法方案与系统
CN107943450A (zh) 随机数生成方法、装置、计算机设备及计算机可读介质
CN112398639B (zh) 一种Fountain轻量级加密算法的实现装置、方法及应用
CN101431405B (zh) Des加密方法及其硬件电路实现方法
Moradi et al. On the Portability of Side-Channel Attacks-An Analysis of the Xilinx Virtex 4, Virtex 5, and Spartan 6 Bitstream Encryption Mechanism
Pashakolaee et al. Hyper-chaotic Feeded GA (HFGA): a reversible optimization technique for robust and sensitive image encryption
CN109033892A (zh) 基于合成矩阵的轮变换复用电路及aes解密电路
CN1829142B (zh) 一种强化密钥流序列的方法
Cai et al. A novel multi-wing chaotic system with FPGA implementation and application in image encryption
Papapagiannopoulos High throughput in slices: the case of PRESENT, PRINCE and KATAN64 ciphers
Pain et al. Novel true random number generator based hardware cryptographic architecture using quantum-dot cellular automata
CN106230580A (zh) 一种可变密钥多重加密方法
CN101848078A (zh) 一种密钥流序列扰动方法及加密方法
CN109039583A (zh) 复用轮变换电路、aes加密电路及加密方法
CN109150495A (zh) 一种轮变换复用电路及其aes解密电路
CN100353703C (zh) 可重构线性反馈移位寄存器
CN100449986C (zh) 一种提高键入-散列法运算速度的方法
Mohammed et al. A new secure encryption algorithm based on RC4 cipher and 4D hyperchaotic Sprott-S system
CN108566271A (zh) 复用轮变换电路、aes加密电路及其加密方法
CN101848079B (zh) 一种面向字、带记忆的序列扰动方法及加密方法
CN109033893A (zh) 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
Wadi et al. A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor
Groß et al. On using instruction-set extensions for minimizing the hardware-implementation costs of symmetric-key algorithms on a low-resource microcontroller
Reddy et al. An efficient data transmission approach using IAES-BE

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100929

Termination date: 20170302

CF01 Termination of patent right due to non-payment of annual fee