当前位置:文档之家› 分组密码算法发展及安全性研究概要

分组密码算法发展及安全性研究概要

分组密码算法发展及安全性研究高彩云中国矿业大学计算机学院,江苏徐州 (221116E-mail:摘要:分组密码一直以来都是人们普遍使用的密码体制,其典型代表为DES ,但DES 的安全性很脆弱,在实际应用中,人们通常使用扩展的三重DES 。

AES 作为新的,高级加密标准,其设计的基本要求就是比三重DES 快并且至少与三重DES 一样安全。

关键词:分组密码;DES ;三重DES ;AES ;安全性1. 引言数据加密作为一项基本技术是所有通信安全的基石。

数据加密过程是由形形色色的加密算法来具体实施,它以很小的代价提供很大的安全保护。

在多数情况下,数据加密是保证信息机密性的唯一方法。

据不完全统计,到目前为止,已经公开发表的各种加密算法多达数百种。

如果按照收发双方密钥是否相同来分类,可以将这些加密算法分为私钥密码算法和公钥密码算法,而分组密码算法属于私钥密码算法。

粗略地讲,分组密码是用一个固定的变换对一个比较大的明文数组进行操作。

2. 分组密码算法发展分组密码即对明文进行加密时,首先需要对明文进行分组,每组的长度都不相同,然后对每组明文分别加密得到等长的密文。

分组加密算法的特点是加密密钥与解密密钥相同。

分组加密算法主要有DES (数据加密标准),AES (高级加密标准)。

2.1 DES 数据加密算法DES 算法是由IBM 公司的W. TuChMan 和 C. Meyer 开发,并由美国国家标准局于1977年1月15日正式发布实施的数据加密标准。

[1]DES 利用56比特串长度的密钥K 来加密长度为64位的明文,得到长度为64位的密文。

其主要流程如图1:图1 DES迭代流程图图2 DES获取子密钥流程图由四个部分组成:1. 初始置换函数IP : X 0 = IP(M = L 0R 0;2.获取子密钥K i :流程图如图2所示,其中第1、2、9、16轮是循环左移1位,其余轮是循环左移2位;3.计算函数F :F 函数由扩展置换(E、异或、S 盒替代和P 盒置换组成,可表示为f (R i -1 , Ki = P (S (E (R i -1 ⊕ K i ;4.末置换函数IP -1:C = IP -1(R 16L 1616次迭代可表示为:L i := Ri -1R i := Li -1 ⊕ f (R i -1 , K i ,i = 1, 2, …, 162.2 多重DES为提高DES 的安全性能,并充分利用有关DES 的现有软件和硬件资源,可以使用多重DES 。

多重DES 就是是用多个密钥利用DES 对明文进行多次加密。

使用多重DES 可以增加密钥量,从而大大提高抵抗对密钥的穷举搜索攻击的能力。

(1)双重DES设K 1和K 2是两个长度为56为的密钥,给定明文M ,则密文为C = Ek2(Ek1(M。

其模型为:图3 双重DES 模型如果对于任意两个56为的密钥K 1和K 2,都存在一个56位的密钥K 3,使得DES K2(DES K1(M ))=DESK3(M ),则双重DES 就等价于是用一个56位的单重DES 。

在这种情况下,双重DES 以及任意多重DES 都没有任何实际价值,因为它们不仅没有提高安全性能,反而增加了计算量。

幸运的是,已经证明双重DES并不等价于是用一个56位密钥的单重DES 。

(2)三重DES设K 1,K 2,K 3是三个长度为56位的密钥。

给定明文M ,则密文为C=DESK3(DESK2-1(DESK1(M,其模型为:M图4 三重DES 模型在三重DES 中,如果K 1=K2或K 2=K3,则三重DES 就退化为使用一个56位密钥的单重DES 。

在三重DES 的中间一步采用解密形式的目的仅仅是为了可以和用三重DES 对单重DES 加密的数据进行解密。

2.3 AES 高级加密标准1997年4月15日美国国家标准技术研究所NIST 发起征集AES 算法的活动,目的是为了确定一个安全性能更好的分组密码算法用于取代DES 。

在众多参加算法中,比利时密码专家Joan DaeMen和VinCent RijMen提出的“Rijndael数据加密算法”[2]最终获胜。

“Rijndael数据加密算法”成为高级加密标准AES 。

2001年11月26日,NIST 正式公布高级加密标准AES ,并于2002年5月26日正式生效。

AES 被设计为支持128/192/256 bit (/32=Nb 数据块大小,128/192/256 bit(/32=Nk 密钥长度,在10进制里,对应3.4×1038、6.2×1057、1.1×1077个密钥。

AES 的迭代次数N r ,分组长度N b ,与密钥长度N k 的关系如表1:表1 AES的迭代次数N r 与密钥长度N k 的关系图密钥长度(N k 个字)分组长度(N b 个字)迭代次数(N r 个字)AES中,各种运算是以字节为单位来进行处理,分组长度为128位,分为16个字节,按顺序排列为4×4的矩阵。

每一轮迭代都经历字节代替变换SubBytes(,行移位变换ShiftRows(,列混合变换MixColuMns(,和圈密钥加法变换AddRoundKey(。

需要注意的是第一轮迭代之先进行一个AddRoundKey(,最后一轮迭代只进行SubBytes(,ShiftRows(和AddRoundKey(。

字节代替变换是一个关于字节的可逆非线性变换,包括有限域GF (28)上的求逆运算和有限域GF (2)上的放射运算。

可以通过查字节代替表来完成字节代替变换;行移位变换对一个状态的每一行循环左移不同的位移量。

第0行不移位,第一行循环左移1个字节,第二行循环左移2个字节,第三行循环左移3个字节;列混合变换对一个状态逐列进行变换,它将一个状态的每一列视为有限域GF(28 上的一个多项式,并与固定多项式a(x={03}x3+{01}x2+{01}x+{02}相乘后模x 4+1。

圈密钥加法变换将一个圈密钥按位异或到一个状态上,圈密钥的长度为4个字节,圈密钥按顺序取自扩展密钥。

扩展密钥是由原始密钥经过扩展后得到的。

AES 流程图如图5:图5 AES迭代流程图 3. 分组密码算法安全性3.1 DESDES 的安全性主要集中在(1)DES 的密钥长度( 56 位)可能太小;(2)DES 的迭代次数可能太少;(3)S 盒中可能有不安全因素;(4)DES 的一些关键部分不应当保密;(5)DES 的密钥中存在弱密钥,半弱密钥和互补密钥。

3.2 双重DES双重DES 无法抵抗中途相遇攻击,设K 1和K 2是两个长度为56位的密钥,C=DESK2(DESK1(M, 则显然有DES K1(M=DESK2-1(C。

假设明文M 以及与之对应的C 已知,密钥K 1和K 2未知。

现在我们来利用中途相遇攻击的方法找到正确的K 1和K 2。

首先,用所有256个可能的密钥K1’对M 进行加密,得到256各密文C’,将所有的(K 1’,C’)按C’从小到大或从大到小的顺序排成一个表L 。

然后,用每一个可能的密钥K 2’对C 进行解密得到C’’,在表L 中查找C’’。

满足C’’= C’的(K 1’,C’)和(K 1’,C’’)可能有很多。

因此,当C’’= C’时,再选择一个明文M’以及对应的密文C1,检验C1=DESK2’(DESK1’(M’是否成立。

如果上式成立,则我们就接受K 1’和K 2’为正确的K 1和K 2.3.3 三重DES三重DES 可抵抗中途相遇攻击,可以很好的抗穷举攻击,使用3个不同的密钥,密钥将达到 168位,安全性是很好的(目前没有什么密码分析方法可以不使用穷举密钥来攻击DES )。

但3重DES 使用不同的3个密钥会增加你系统秘钥管理的负担, 软件实现的效率低(每个分组作3次DES 变换,DES 变换的设计初衷本来就是方便用硬件实现),只支持64位分组(对大量数据来说,分组太小了)。

3.4 AESAES 对密钥的选取没有任何限制,每轮常数的不同消除了密钥的对称性,密钥扩展的非线性消除了相同密钥的可能性,加解密使用不同的变换,消除了在DES 里出现的弱密钥和半弱密钥存在的可能性。

能有效地抵抗密钥已知的攻击方法的攻击,目前最有效的攻击还是穷尽密钥搜索攻击。

4. 总结分组密码的安全性主要依赖于密钥,通过某个置换来实现对明文分组的加密变换。

为了保证密码算法的安全强度,对密码算法应有如下要求:(1)分组长度足够大。

当分组长度较小时,分组密码类似于古典的代替密码,它仍然保留了明文的统计信息,这种统计信息将给攻击者留下可乘之机,攻击者可以有效地穷举明文空间,得到密码变换本身。

(2)密钥量足够大。

分组密码的密钥所确定密码变换只是所有置换中极小一部分。

如果这一部分足够小,攻击者可以有效地穷举明文空间所确定所有的置换。

这时,攻击者就可以对密文进行解密,以得到有意义的明文。

(3)密码变换足够复杂。

使攻击者除了穷举法以外,找不到其他快捷的破译方法。

对于分组密码算法中的DES 和AES ,在应用方面,尽管DES 在安全上是脆弱的,但由于快速DES 芯片的大量生产,使得DES 仍能暂时继续使用,为提高安全强度,通常使用独立密钥的三级DES 。

但是DES 迟早要被AES 代替。

而随着密码技术,破译技术的发展,AES 的安全性也会受到质疑,分组密码会经受更多的考验。

参考文献[1] Douglas R. Stinson. Cryptography theory and praCtiCe[M]. seCond edition. Beijing: Publishing house of eleCtroniCs industry, 2002.[2] Joan Daemen, Vincent Rijmen. AES Proposal: Rijndael,1998Cipher algorithm development and security researchGAO CaiyunSchool of Computer Science and Technology, China University of Mining and Technology.Xuzhou, Jiangsu ( 221116AbstractCipher has been the widespread use as cryptography, the typical representative is DES, but the safety of DES is very fragile, so in practical application, people often use itsexpansion -the Triple DES. AES as a new, Advanced Encryption Standard, the basic requirement for its design is faster than Triple DES and it should at least the same security as Triple DES.。

相关主题