1.3 加密算法
在对称密钥加密方法中, 对信息的加密和解密都使用相同的密钥, 通信双方都采用相同的加密算法并交换共享的专用密钥。通常使用的加密算法比较简便、高效, 密钥简短, 破译极其困难。但是传送和保管密钥是一个严峻的问题, 通信双方之间要确保密钥安全交换, 因而在使用对称加密技术进行数据加密的系统中还必须强化密钥管理体系。比较著名的对称加密密码算法有:美国的DES及其各种变形, 如Triple DES,GDES,New DES和DES的前身Lucifer; 欧洲的IDEA; 日本的FEAL-N,LOKI-91,Skipjack,RC4,RC5以及以代换密码和转轮密码为代表的古典密码等。在众多的常规密码中影响最大的是DES密码[11]。
在非对称加密体系(即公开密钥密码体系) 中, 密钥被分解为一对(即一把公开密钥或加密密钥和一把专用密钥或解密密钥)。这对密钥中的任何一把都可作为公开密钥(加密密钥) 通过非保密方式向他人公开, 而另一把则作为专用密钥(解密密钥) 。公开密钥用于对机密信息的加密, 专用密钥则用于对加密信息的解密。专用密钥只能由生成密钥对的通信方掌握, 公开密钥可广泛发布, 但它只对应于生成的该密钥的通信方。非对称加密的代表算法有RSA、DSA、Diffie-Hellman、背包体制、POHLIG-Hellman 算法和Rabin 算法, 还可以在有限域上的椭圆曲线上建立RSA, EIGamal 等算法。使用非对称加密方法的主要问题是运算速度较慢[11]。
密码技术所提供的安全性来源于破解密码计算上的困难性。计算机技术发展到今天,计算能力已经对像DES这样的加密算法构成了威胁,比如,DES的密钥太短,有效密钥只有56位;DES加密算法中还存在弱密钥和半弱密钥;DES加密标准的算法存在互补对称性等,为此,急需制定新的密码标准来取代DES。2000年10月,美国商务部宣布Rijndael成为AES加密标准的算法,标志着信息技术有了新的安全工具,它的出现将为计算机网络数据保密提供强有力的支持[1]。
2 研究历史
2.1 几种常见的现代加密技术
数据加密算法有很多种,密码算法标准化是信息化社会发展得必然趋势,是世界各国保密通信领域得一个重要课题。按照发展进程来分, 经历了古典密码、对称密钥密码和公开密钥密码阶段,古典密码算法有替代加密、置换加密;对称加密算法包括DES和AES;非对称加密算法包括RSA、背包密码、McEliece 密码、Rabin、椭圆曲线、EIGamal D_ H等。目前在数据通信中使用最普遍的算法有DES 算法、RSA算法和PGP算法等[5]。
2.1.1 DES加密算法
DES是一种对二元数据进行加密的算法,数据分组长度为64位,密文分组长度也是64位,使用的密钥为64位,有效密钥长度为56位,有8位用于奇偶校验,解密时的过程和加密时相似,但密钥的顺序正好相反。DES算法的数据流程图如下图所示:
图2.1 DES加密过程[23]
DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位长的密钥的穷举空间为256,这意着如果一台计算机的速度是每一秒钟检测一百万个密钥,则它搜索完全部密钥就需要将近2285 年的时间。随着科学技术的发展,当出现超高速计算机后,可将DES密钥的长度再增长来达到更高的保密程度[8]。后来又提出了三重DES或3DES系统,使用3个不同的密钥对数据块进行(两次或)三次加密,该方法比进行普通加密的三次块。其强度大约和112比特的密钥强度相当[5]。
2.1.2 RSA算法
RSA算法既能用于数据加密,也能用于数字签名,RSA的理论依据为:寻找两个大素数比较简单,而将它们的乘积分解开则异常困难。在RSA算法中,包含两个密钥,加密密钥PK,和解密密钥SK,加密密钥是公开的,其加密与解密方程为: AES加密算法的设计+文献综述(2):http://www.751com.cn/jisuanji/lunwen_6006.html