廖小平
(四川文理学院 计算机科学系,四川 达州 635000)
网络技术的飞速发展,网络安全问题越发凸显重要。数据加密技术是对计算机信息进行保护的最实用和最可靠的方法,它是网络安全技术的核心技术。对信息进行加密可以防止攻击者窃取网络机密信息,可以使系统信息不被无关者识别,也可以检测出非法用户对数据的插入、删除、修改及滥用有效数据的行为。
对数据进行加密用到的技术有很多种,按密钥的类型划分,密码体制可以分为对称密码体制和非对称密码体制,“密码学新方向[1]”的发表和美国数据加密标准DES的颁布实施标志着现代密码学的诞生,从此揭开了商用密码研究的序幕。此后实用密码的研究基本上在沿着2个方向在进行,即以DES(大多数是基于Feistel分组密码结构[2])为代表的秘密密钥分组密码和以RSA为代表的公开密钥密码,分组密码具有速度快、易于标准化和便于软硬件实现等特点,它在计算机网络通信领域的应用相当广泛,可以实现数据加密、消息鉴别、认证及密钥管理的核心密码算法,目前市场上有许多法律认可的分组密码芯片(如DES芯片),自从DES被采纳为美国联邦标准,对它的安全性就一直争论不休,焦点主要集中在密钥的长度和算法本身的安全性,特别是差分密码攻击和线性密码攻击的出现,使分组密码受到致命的打击,因此很多专家学者在想办法用某种更加安全的算法替代它,例如AES。但由于目前分组密码的使用特别的广泛,在分组密码上的投资比较大,不可能在较短时间内淘汰分组密码,因此,提出了密码强化的思想,用算法进行多次加密,而且使用多个密钥,比如双重DES,三重DES[3]。这样能够保护已有软件和硬件使用分组密码(如DES)的投资,将一个分组密码算法组合成一个新的算法有很多种途径,这些途径是在人们不想设计新的算法,又想增加密码算法强度的情况下产生的。
密码体制是指一个密码系统采用的基本工作方式。密码体制的基本要素是密钥算法和密钥,其中密码算法是一些公式、法则或者程序,而密钥是密码算法中的可变参数。密码算法分为加密和解密算法,前者将明文变换成密文,后者将密文变换成明文,密钥相应的也分为加密密钥和解密密钥。一个密码系统由明文、密文、加密算法、解密算法和密钥5个部分组成,数据加密过程就是通过加密系统把明文(原始的数据信息),按照加密算法变换成与明文完全不同的数字信息,该数字信息就是密文。一个简单的密码系统如图1所示。
图1 密码的简化模型Fig.1 Simplified model of encryption
加密过程可以看出是对明文M进行某种函数的数学变换,即:
C=EKe(M) (1)
密钥可以看成是密码算法中的可变参数。从数学的角度来看,改变了密钥,实际上也就改变了明文与密文之间等价的数学函数关系。密码算法是相对稳定的,在这种意义上,可以把密码算法视为常量,而密钥则是一个变量。
现代密码学的一个基本原则是一切秘密应寓于密钥之中,即在设计密码系统时,密码算法是可以公开的,真正需要保密的是密钥,密码算法的特点是在已知密钥的条件下,加密算法是有效的;而在不知道密钥的情况下,解密技术是不可行。同样,解密过程是对密文C进行某种函数的数学变换,即
多重加密[4]就是将一个加密算法多次使用的技术。在第一次使用中,明文通过加密算法转化为密文,然后将该密文作为输入从新执行加密算法,该过程可以重复多次,每次都使用相互独立的密钥对明文依次进行加密,过程如下:
多重加密最简单的模型是进行2次加密,每次使用不同的密钥,给定明文M及密钥k1,k2,产生密文C的过程如下:
解密时逆序使用这2个密钥:
如果算法采用DES,称为双重DES算法,这种方法的密钥长度为56×2=112,密码强度增加了。不过对这种两次加密的DES算法,容易受到基于观察的中间相遇攻击[5]的威胁,对付中间相遇攻击的一个明显办法是使用3个密钥进行3次加密,这样已知明文攻击的代价将升级为2112数量级,这超出了现在的可行性能力,然而,它需要长为56×3=168的密钥,这无疑是个缺点。为此Tuchman提出了三重加密的思想[6],在两个不同密钥作用下将加解密算法交叉使用,即:
第二步采用解密算法并没用什么密码学上的深层次含义,这仅仅是为了使用三重DES的用户可以利用该算法解密单DES加密的数据,这是因为:
使用2个密钥的三重DES已经广泛地代替了DES,并已经用于密钥管理标准ANS X9.17和ISO 8732中。尽管三重加密在二重加密基础上安全性有所改善,但由于仅使用两个密钥,使得攻击的复杂度并没有达到三倍于原算法的效果。Merkle和 Hellman提出了一种“时空折衷方法[7],可以用 2l-1次加密和2l个存贮记录即可破译三重加密,这里l为单个算法的密钥长度。尽管使用两个密钥的三重加密安全性有所加强,但是所有使用双密钥的三重DES算法的人还是感觉有点悬,因此,很多人觉得采用3个密钥的三重DES算法才是最好的方案,即:
要想和单DES兼容,只需设k3=k2或者k1=k2。
为了进一步改善加密效果并增强算法强度,设计了一个新的三重加密方案 ANTE(Another New Triple Encryption),加密过程如图2所示,解密过程如图3所示。
加密过程:
图2 ANTE方案加密过程Fig.2 ANTE encryption
解密过程:
图3 ANTE方案解密过程Fig.3 ANTE decryption
在该方案中,加密和解密过程中用到的密钥k1,k2,k3均要求是独立的,随机分布选取的,所使用的密钥长度可以设为l,明文分组M的长度应该与密钥的长度相等。第二步采用解密算法并没用什么密码学上的深层次含义,这仅仅是为了使用三重DES的用户可以利用该算法解密单DES加密的数据。
对该方案的安全特性进行分析,可以得出该方案有以下的一些安全性特点:
1)该方案中使用到的算法D和算法E是安全的,则该方案是安全的。
2)该方案中使用到密钥长度为3l,使得攻击者对密钥的穷举攻击、强力攻击等不是一件容易的事情。
4)在方案的每一个加密阶段都加入了密钥进行异或运算,每次做异或运算都有密钥的参与,加密密钥也是采取了级联的方式,使得每一次加密所产生的明文与每一个密钥都有联系,当然,明文所对应的密文也不同,使得整个算法的安全性得到了加强,攻击者分析出密钥的可能性更加的降低。
5)本方案中使用了密钥级联技术,每一轮加密用的密钥都是前面密钥进行异或运算得出,使得攻击者即使取得大量的、真实的明密文对,要实施已知明文攻击和选择明文攻击变得困难。
6)方案中使用到的 3个密钥 k1,k2,k3具有随机性、独立性,可以有效的避免中间相遇和时空折中方法的攻击。
7)在该方案中,由于单个的算法抗击差分分析和线性分析,因此该方案也能抗击对差分分析和线性分析。
当前,数据加密技术发展很快,各种算法层出不穷,密码的多重加密技术可以有效的提高现有密码算法的强度,比如Copper Smith[8]分析后认为对三重DES的穷举攻击的代价是2112≈(5×1033)数量级的,且估计用差分密码分析的代价是按指数增长的,与单DES比较超出1052倍。文中提出了一个三重加密方案,并分析了其安全性特点,该方案使密码算法的强度有一定的提高。
[1]冯登国,裴定一.密码学引论[M].北京:科学出版社,1994.
[2]Feistel H.Cryptography and computer privacy[J].Scientific American,1973,228(5):15-23.
[3]Stallings W.密码编码学与网络安全—原理与实践[M].4版.孟庆树,王丽娜,傅建明,等译.北京:电子工业出版社,2008.
[4]谷大武.分组密码理论与某些关键技术研究 [D].西安:西安电子科技大学,1998.
[5]Diffie W,Hellman M.Exhaustive cryptanalysis of the NBS data encryption standard[J].Computer,1977,10(6):74-84.
[6]Tuchman W.Hellman presents no shortcut solutions to DES[J].IEEE Spectrum,1979,16(7):40-41.
[7]Denning D.The clipper chip:a tchnical summary[J].Personal Communications,1993,6(3):22-27.
[8]Coppersmith D.The eata encryption standard (DES) and its strength against attack[J].IBM Jorunal of Research and Development,1994,38(3):243-250.