分组密码算法的自相关检测参数选择_范丽敏

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2009年7月Journal on Communications July 2009 第30卷第7期通信学报V ol.30No.7分组密码算法的自相关检测参数选择

范丽敏1,2, 冯登国1, 周永彬1

(1. 中国科学院软件研究所信息安全国家重点实验室,北京 100190;2. 中国科学院研究生院,北京 100039)

摘要:自相关检测是一种用以检测一个长度为n的二元序列与其左移d位后序列的关联程度的随机性检测算法。

d的选择范围很大,对所有参数逐一进行检测不现实,需要研究检测参数之间的关系。定义了检测参数之间可能存在的3种关系,以分组长度为m的分组密码随机性检测为对象,综合考虑分组密码和自相关检测的特点,利用统计实验研究了自相关检测参数子集D={1,2,m/4,m/2,3m/4,m,2m}中参数的关系。研究结果表明,对分组密码进行自相关检测时,检测参数应该首选d=m。该方法和结果为研究其他类型密码算法的随机性检测参数选择提供了新思路。

关键词:信息安全;分组密码;统计检测;自相关检测;参数选择

中图分类号:TP309.7 文献标识码:B 文章编号:1000-436X(2009)07-0086-05

Parameter selection of autocorrelation test for block ciphers

FAN Li-min1,2, FENG Deng-guo1, ZHOU Yong-bin1

(1. State Key Laboratory of Information Security,Institute of Software ,Chinese Academy of Sciences, Beijing 100190, China;

2. Graduate University of Chinese Academy of Sciences, Beijing 100049, China)

Abstract: Autocorrelation test was a statistical test to evaluate the correlation between one sequence and the corresponding non-cyclic left-shifted d bits sequence. It was impractical to adopt all the values of d since its range was often very wide.

Three relations between parameters of randomness test were defined firstly. Then the relationships among the subclass D={1,2,m/4,m/2,3m/4,m,2m}of autocorrelation test for block cipher were studied by statistical experiments, where m was block length. The experiments show that the prefer choice of parameter d is m when doing autocorrelation test for block cipher. The method is also available for parameter selection of other randomness test for other types of cryptosystem.

Key words: information security; block cipher; statistical test; autocorrelation test; parameter selection

1引言

一个好的密码算法应该能够保证其输出序列的随机性,使得该密码产生的输出序列在统计上难以与真随机序列区别开来。检测一个序列与真随机序列之间的差距通常采用统计检测方法。事实上,统计检测已经成为密码算法检测中重要的量化检测手段。目前,已经存在多种不同的随机性检测项目[1~3],并且很多检测项目还带有参数。对检测项目的参数研究并不多见,主要成果集中在正确参数的选择和错误参数

收稿日期:2007-08-01;修回日期:2009-05-23

基金项目:国家自然科学基金资助项目(60503014,60603013);国家高技术研究发展计划(“863”计划)基金资助项目(2007AA01Z470, 2008AA01Z417);北京市自然科学基金资助项目(4072026)

Foundation Items: The National Natural Science Foundation of China (60503014,60603013); The National High Technology Research and Development Program of China (863 Program) (2007AA01Z470, 2008AA01Z417); The Natural Science Foundation of Beijing (4072026)

第7期 范丽敏等:分组密码算法的自相关检测参数选择 ·87·

的剔除上[4~6]。文献[7]从统计学角度给出了参数之间相关性的研究方法,但是该方法不考虑具体密码算法的应用。本文从另一个角度研究随机性检测项目的参数选择问题,首先定义参数之间可能存在的关系,综合考虑检测项目的基本特点和被测密码的基本结构,研究典型参数子集中各参数的相关性。

在众多的随机性检测项目中,自相关检测是一种十分重要的检测项目。该项目在文献[8]中首次被提出,在文献[9,10]中进行了详细的描述。此后,自相关检测被广泛地应用于随机性检测工具中。其中,“使用自相关的随机性测试”作为实时检测由随机数发生器生成的随机数的方法和设备已被荷兰的L·哈尔斯申请为中国专利。同时,我国科研与测评机构研制的相关工具也将自相关作为一项基础的检测项目。

自相关检测是用于检测一个长度为n 的二元序列与其左移(逻辑左移)d 位后的序列之间的关联程度。除非特别说明之外,本文所指序列均为二元序列。自相关检测中用到一个参数左移的位数d ,其取值通常有一个与序列长度有关的范围。但是,在实际的检测中,要选择所有的参数进行逐一检测是不现实的。此外,在实际的检测中还需要综合考虑被检测密码的结构特点。例如,对分组密码算法的检测而言,对其进行自相关检测时,就应该考虑其按块加密的特点。本文定义了参数之间可能存在的3种关系,并以分组密码为实例,设计大量的实验,给出了与分组长度m 有关的自相关检测参数子集D ={1,2,m /4,m /2,3m /4,m ,2m }中各参数的关系。同时根据实验结果和最小冗余原则给出结论:对分组密码进行自相关检测时,应该优先选择d=m 。文中制定的参数之间的关系、参数选择策略和采用的实验方法也可以应用于其他类型的密码算法以及随机性检测项目的参数相关性研究之中。

2 背景知识

2.1 自相关检测

自相关检测用来检测一个序列与其左移d 位的序列的关联程度。一个随机序列应该与其左移任意位的序列都是统计独立的,关联程度应该很低。用

10

()n d i

i d i A d ε

ε??+==

⊕∑表示待检序列与将其左移d 位

的序列之间不同的元素个数,d 称为时延。根据独立同分布的中心极限定理,可构造统计量为

2(())n d

A d V ??

=

(1) V 应该服从标准正态分布,记作~01V N (,)。 使用统计方法来检测一个密码算法输出序列的随机性时,需要进行多次统计检测,并利用通过检测的比例来刻画算法输出随机性的优劣。检测的阈值通过式(2)计算求得[11]。

S A ?±??? (2) 其中,S 为样本数量,A =1?a ,a 为显著性水平,K 通常取3[11]。

2.2 分组密码的随机性检测

当前,对分组密码的随机性检测通常是检测分组密码算法产生密文流的随机性。也就是说,检测密码算法产生的密文流能否与真随机序列区分开来,如果能够区分,则认为密码算法输出不随机;否则,则认为密码算法的输出是随机的。在AES 的评选过程中,NIST(national institute of standard technology)对候选密码算法的两轮评估均采用了随机性检测方法,它选用了6种方式产生密文流[12]。这种方法将分组密码看成一个伪随机数发生器,却忽略了分组密码按分块加密的这一重要结构性特点。在实际检测密文流的随机性时,如果在参数选择上考虑分组密码的这种结构特点,不同的参数选择可能会有不同的检测结论。因此,对分组密码随机性检测的参数选择,不能简单照搬随机数发生器或者流密码的参数选择规则,而必须要考虑具体检测项目的特点和分组密码的结构特性,进行合理的参数设置。 2.3 参数之间的关系和参数子集选择基本原则

一个随机性检测项目可能会包含多个参数,每个参数有一个选择范围。为了研究的方便,首先定义参数之间可能存在的3种关系。

1) 包含关系

对于同一个检测项目的2个不同参数A 和B ,对于任何序列,如果该序列能够通过参数A 的检测,那么它一定能通过参数B 的检测,反之不能成立,此时,称A 包含B 。

2) 等价关系

对于同一个检测项目的2个不同参数A 和B ,对于任何序列,如果该序列能够通过参数A 的检测,那么它一定能通过参数B 的检测,反之亦然,此时,称A 等价B 。

·88·通信学报第30卷

3) 不相关关系

对于参数A和B,如果不存在包含和等价关系,则统称其不相关。

根据参数之间的关系,本文同时制定选择有效参数子集的2条基本原则。

①完备性

选择出的参数子集应该尽可能可以代表参数选择范围内的所有参数。即对于任何一个序列,通过参数子集中各参数的检测,就可以判定该序列通过了该项目的检测。完备性原则需要将不相关的参数尽量多地包含到检测参数子集之中。

②最小冗余

去除参数集之中的冗余参数。无冗余原则需要去除包含关系中的被包含参数,多个等价的参数中只需选择其中的一个。

本文所定义的参数之间的关系和参数选择基本准则不仅适用于自相关检测,同时也适用于其他带有参数的检测项目的参数选择研究中。

3 分组密码自相关检测参数研究

分组密码是按分组长度逐块加密的,如果分组密码的随机性好,则密文流应该去除分组块之间可能存在的各种关系[13]。换句话说,若密码算法的随机化程度好,则无论明文形式如何,密文流从任何方面来看都是随机的。本文对当前比较流行的多种结构的分组密码算法DES、IDEA、Rijndael、Seed、Twofish、Frog、Camellia等进行了自相关检测的统计实验。关于各密码算法的详细介绍,可参见文献[13]。其中,除DES和IDEA的分组长度是64bit 之外,其他分组密码的分组长度均为128bit。

数据加密标准DES是世界上曾经广泛流行和使用的分组密码,它的结构是典型的Feistel结构,分组长度和密钥长度均为64bit。国际数据加密算法IDEA是分组长度为64bit、密钥长度为128bit的算法,该算法所依据的设计思想是“混合使用来自于不同代数群中的运算”,基于该算法形成了Lai-Massey结构。Rijndael算法是NIST评选AES 的最后获胜算法,Rijndael算法采用SPN网络,对应不同的密钥长度128bit、192bit和256bit,算法轮数分别是10轮、12轮和14轮。Twofish算法是AES 的一个候选算法,包括三部分:前期白化、16轮Feistel结构的加密和后期白化,其主要特点是S盒由密钥控制。Seed算法是韩国的密码算法标准化工作评选出的用于工业标准的分组算法,其结构是16轮的Feistel结构,分组长度和密钥长度都为128bit。FROG算法是非正规结构的密码,其基本设计思想是通过内部密钥隐藏大多数计算过程。FROG的密钥长度是可变的,从5个字节到125个字节。Camellia算法是欧洲NESSIE计划评选出的2个128bit分组密码算法之一,Camellia算法采用扩展的Feistel结构,每6轮加一个变换函数,对应3种不同长度的密钥,算法轮数分别为18轮、24轮和30轮。在一定程度上,本文所选择的分组密码的结构可以涵盖当前分组密码设计通常所采用的结构。总结各算法的主要特点如表1所示。

表1实验采用分组密码算法的结构特点

算法名称分组长度/bit 结构特点

DES 64

典型的Feistel结构的算法

IDEA 64

Lai-Massey结构

Rijndael 128 典型的SPN结构

Twofish 128 前后期白化、Feistel结构、S盒由密

钥控制

Seed 128

16轮Feistel结构

Frog 128

非正规结构,密钥编排工作量较大Camellia 128 扩展的Feistel结构

3.1实验设计

本文所采用的实验方法参照NIST评选AES中对分组密码的统计检测的方法,采用的样本类型为高密样本、低密样本和随机样本。具体实验过程描述如下。

对于每一个密码算法和每一种样本,依次进行如下的实验。

step1随机产生S个密钥,对样本按照ECB 的方式逐个使用密钥从1轮到R轮(R为算法总轮数)进行加密,每一轮均得到S个密文流。这里S=1 000。(注:由于FROG算法速度过慢,对FROG进行实验时选用S=300)。

step2对step1得到的每一轮中的每个密文流序列L i(0

step3统计S个序列中各个参数对应的P-value值大于显著性水平的个数。这里显著性水平α=0.01,并计算其占有总序列条数百分比。通过式

第7期范丽敏等:分组密码算法的自相关检测参数选择·89·

(2)可以求得,当a取作0.01时,阈值的下限是98%,即通过检测的序列超过980条(Frog算法294条),则认为通过了该参数下的自相关检测。

3.2实验结果

记录对各个分组密码进行自相关检测的检测结果,通过对检测结果的观察、比较和分析可以得出基本的结论:针对参数子集D中的各个参数,所有的分组密码都表现了相近的趋势。限于篇幅,本文只对2个典型代表DES和Rijndael的检测结果进行详细的描述。另外,当样本文件为随机文件时,各分组密码在第1轮各种参数的自相关检测均能通过,该类检测结果对本文的研究没有参考意义,因此也将其略过。并且高密样本和低密样本得出类似的检测结论。这里仅将高密样本作为代表。表2和表3列出Rijndael、DES在高密样本时的部分结果。

表2Rijndael算法自相关检测结果

参数1轮2轮3轮4轮5轮6轮7轮8轮9轮10轮

1 88 44 1 000 1 000 1 000 998 1 000 1 000 1 000 1 000

2 44 7

3 1 000 1 000 1 000 1 000 993 1 000 1 000998

32 40 124 1 000 1 000 1 000 995 1 000 1 000 1 000 1 000 64 52 56 999 1 000 997 999 1 000 1 000 995996

96 26 137 1 000 992 1 000 1 000 1 000 1 000 1 000 1 000 128 0 0 422 1 000 1 000 996 1 000 1 000 1 000991 256 0 0 616 1 000 1 000 998 1 000 992 1 000 1 000

表3DES算法自相关检测结果

参数1轮2轮3轮4轮5轮8轮 10轮 12轮 14轮16轮

1 104 227 903 1 000 1 000 1 000 996 1 000 998 1 000

2 0 138 341 1 000 1 000 1 000 99

3 995 1 000996 16 0 190 598 1 000 1 000 993 1 000 1 000 1 000 1 000 32 0 79 470 1 000 997 999 1 000 995 1 000996 48 0 171 561 992 1 000 1 000 997 995 1 000 1 000 6

4 0 0 0 986 992 996 1 000 1 000 1 000998 128 0 0 0 983 998 1 000 1 000 992 998 1 000

文献[11]给出结论:P-Value是介于0与1之间的实数,如果一个算法产生的输出是随机的,其得到的P-Value值应该服从均匀分布。因此将[0,1]区间分成10个子区间:[0,0.1),[0.1,0.2),[0.9,1]

",然后统计P-Value在各个子区间所占的比例。图1和图2分别列出了4轮DES和3轮AES算法参数分别为1和m时P-Value的分布。图3给出了DES算法自相关检测参数为64时4、5轮P-Value分布。

图1 4轮DES算法自相关检测参数为1和64时P-Value分布

图2 3轮Rijndael算法自相关检测参数为1和128时P-Value分布

图3 DES算法自相关检测参数为64时4和5轮P-Value分布

3.3实验结果分析

通过3.2节的实验结果可以得出,利用自相关检测对分组密码进行统计检测时,参数的不同选择的会对检测结论产生影响。

如表2所示,这里列出了不同自相关参数下的Rijndael检测结果。在第3轮时,选择参数1、2、32、64、96,密码的输出序列满足随机性要求;但是,若选择参数d=128或者d=256,在算法第3轮时的检测结果分别是412和616,低于980,所以未通过相关检测,到了第4轮才能满足自相关检测的随机性要求。

表3列出了不同自相关参数下DES的检测结果。DES第4轮时能通过参数为1、2、16、32、48、64、128的自相关检测(通过检测的百分比均超过检测阈值的下限980)。但是对于参数d=64,从图3可以看出,此时各个子区间中P-Value所占比例的分布并不趋近于均匀分布,因此也不能得出在第4轮DES通过了参数为64的自相关分布。到了DES 第5轮,在d=64时P-Value的分布才趋近于均匀分布。其他密码也表现出相近的趋势,如图2所示。

·90· 通 信 学 报 第30卷

范丽敏(1978-),女,内蒙古赤峰人,中国科学院博士生,中国科学院软件所助理研究员,主要研究方向为密码学与信息安全。

对比检测结果可知,在分组密码进行自相关检测时,仅选择1,2这样的参数是不充分的。因为参数1或者2并不能检测出分组密码在高轮时可能存在的自相关方面的缺陷。所以在实际的检测中,要考虑到分组密码的加密特点,研究各参数的关系,采用更合适的检测参数。根据对实验结果的详细比较分析,可以得出参数子集D ={1,2,m /4,m /2, 3m /4,m ,2m }中参数可能存在的几个关系:m 包含1,2,m /4,m /2,3m /4,并且m 与2m 是无关的。通过对多种结构的分组密码进行大量的统计实验,可以得出如下结论:在对分组密码进行自相关检测时,参数为m 的检测可以包含参数为1、2、m /4、m /2、3m /4的检测;参数m 与参数2m 得不出等价或者包含的关系,因此二者可以看作不相关的。

因此,根据最小冗余原则,在对分组算法进行自相关检测时,应该首选参数d=m 。

4 结束语

统计检测是目前比较成熟的密码算法检测手段,

它的目标是检测密码输出的随机特性。目前已有30多种检测项目,并且很多检测项目都有参数。这些参数往往有一个很大的范围,在实际中对所有参数一一进行检测是不现实的。因此需要研究这些参数之间的关系,以期找到一个比较小合理的检测参数子集。由于各种检测项目基本原理和提出背景不尽相同,检测项目各个参数之间的关系比较复杂,不好统一定论。对各参数之间的相关性研究结果也比较少见。本文定义了检测参数之间可能存在的3种关系,综合考虑分组密码和自相关检测的特点,研究了自相关检测参数子集中各参数的关系,并得出结论,在对分组密码进行自相关检测时,考虑到最小冗余原则,首先应该考虑选择参数d=m 。另外,本文定义的检测参数之间可能存在的关系以及参数选择基本原则,也适用于其他带有参数的随机性检测参数关系研究。本文的研究结果也为其他类型密码算法统计检测中参数相关性研究提供了一种有益的思路。 参考文献:

[1] KNUYH D. The Art of Computer Programming, V olume 2:

Seminumerical Algorithms[M]. 3rd Ed, New Jersey: Addison-Wesley, 1981. 59-73.

[2] RUKHIN A, SOTO J, NECHV ATAL J, et al. A Statistical Test Suite

for Random and Pseudorandom Number Generators for Cryptographic Applications[R]. SP 800-22, 2001.

[3] FILIOL E. A new statistical testing for symmetric ciphers and hash

functions[A]. Information and Communications Security: 4th International Conference[C]. Berlin : Springer, 2002. 342-353. [4] TSANG W, HUI L, CHOW K. Tuning the collision test for power[A].

Proceedings of the 27th Australasian Conference on Computer Science - V olume 26 Dunedin[C]. New Zealand: Australian Computer Society, 2004. 23-30.

[5] HAMANO K, KANEKO T. Correction of overlapping template

matching test included in nist randomness test suite[J]. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2007,90(19): 1788-1792.

[6] PARESCHI F, ROV ATTI R, SETTI G . Second-level NIST randomness

tests for improving test reliability[A]. International Symposium on Circuits and Systems (ISCAS 2007)[C]. New Orleans, Louisiana, USA, 2007.1437-1440.

[7] 范丽敏, 冯登国, 陈华. 随机性检测参数选择[J].通信学

报,2009,30(1):1-6.

FAN L M, FENG D G , CHEN H. On the parameter selection of randomness test[J]. Journal on Communications, 2009,30(1):1-6. [8] PHILIPS J . Algorithms AS 49: autocorrelation function for a binary

sequence[J].Applied Statistics, 1972,21(1): 100-103.

[9] BEKER H, PIPER F. Secure Speech Communications[M]. Academic

Press, 1985.104-109.

[10] MENEZED A, V AN O, V ANSTONE S. Handbook of Applied

Cryptography[M]. IEEE Press, 1996.182-183.

[11] SOTO J. Statistical testing of random number generators[A].

Proceedings of the 22nd National Information Systems Security Conference[C]. Crystal City, Virginia, 1999.

[12] SOTO J, LAWRENCE B H. Randomness Testing of the Advanced

Encryption Standard Finalist Candidates[R]. Computer Security Division, NIST, 2000.

[13] 冯登国, 吴文玲. 分组密码设计与分析[M]. 北京:清华大学出版社,

2000. 82-83.

FENG D G , WU W L. Design and Analysis of Block Cipher[M]. Beijing: Tsinghua University Press, 2000.82-83.

作者简介:

冯登国(1965-),男,陕西靖边人,中国科学院软件所研究员、博士生导师,主要研究方向为密码学与信息安全。

周永彬(1973-),男,山东滨州人,博士,中国科学院软件所副研究员,主要研究方向为密码学、网络与信息安全理论与技术。

相关文档
最新文档