|
|
一般的数据加密模型如下图所示。在发送端,把明文X用加密算法E和加密密钥K加密,变换成密文Y,即Y=EK(X);在接收端利用解密算法D和解密密钥K对密文Y进行解密,得到明文X。
|
|
|
|
|
加/解密函数E和D是公开的,而密钥K是秘密的。在传送过程中,偷听者得到的是无法理解的密文,而他又得不到密钥,这就达到了对第三者保密的目的。
|
|
|
|
经典加密方法主要使用了替换加密、换位加密和一次性填充3种加密技术。
|
|
|
|
|
(3)一次性填充:把明文变为位串,选择一个等长的随机位串作为密码,对二者进行按位异或,得到密文。
|
|
|
|
对称密钥加密的发送和接收数据的双方必须使用相同的/对称的密钥对明文进行加密和解密运算。常用的对称加密算法有DES、IDEA、TDEA、AES、RC2、RC4、RC5等。
|
|
|
|
数据加密标准(Data Encryption Standard, DES)是20世纪70年代美国联邦注册大会上,美国国家标准局(NBS)公开征集标准密码的算法。
|
|
|
DES属于分组密码体制,它将分组为64位的明文加密成64位的密文;或反之。整个加密过程由16个独立的加密循环构成,每一个循环使用自己的密钥K1,K2,…,K16和加密函数。解密使用与加密相同的过程,但顺序与加密相反,从K16开始变换,直至K1。主密钥为56位,用于生成每轮循环各自的密钥K1,K2,…,K16。加密函数是DES加密运算的核心,分为扩展置换(E盒)、S盒置换和后变位(P盒置换)。
|
|
|
DES的加密密钥和解密密钥相同,属于对称密码体制。其安全性依赖于密钥,但目前可利用差分密码分析的思想对其选择明文攻击方法,因此56位的密钥长度的DES原则上不再是安全的。增加密钥长度和采用多重DES的加密是有意义的加强办法。
|
|
|
|
三重DES是指使用两个密钥,执行3次DES算法,如下图所示。其密钥长度是112位。
|
|
|
|
|
|
国际数据加密数据算法(International Data Encryption Algorithm, IDEA)是瑞士苏黎世联邦工业大学(ETH)的Xuejia Lai和James L.Massey于1991年提出的。该算法形式上和DES类似,也是使用循环加密方式,把分组为64位的明文加密为64位的密文;或反之。所不同的是,IDEA使用128位的密钥,扩展成52个16位循环密钥,安全性强于DES。若采用强行攻击,对付IDEA将是对付DES工作量的272=4.7×1021倍,因此,它的安全性是比较好的,是目前数据加密中应用较为广泛的一种密码体制。
|
|
|
由于加密密钥和解密密钥都由同一个主密钥派生而来,IDEA仍属于对称密码体制,而且其设计倾向于软件实现,目前尚未找到破译方法。
|
|
|
|
公开密钥密码体制也称为非对称密钥加密。每个用户都有一对密钥:公开密钥和私有密钥。公钥对外公开,私钥由个人秘密保存;用其中一把密钥来加密,另一把密钥来解密。虽然秘密密钥(SK)是由公开密钥(PK)决定的,但却不能根据PK计算出SK。公开密钥密码算法原理如下图所示。
|
|
|
|
|
|
此算法的基础是在数论中寻求两个大素数比较简单,而将它们的乘积分解开则极其困难。每个用户有两个密钥:加密密钥PK={e,n}和解密密钥SK={d,n}。用户把加密密钥公开,使得系统中任何其他用户都可使用,而对解密密钥中的d则保密。N为两个大素数p和q之积(素数p和q一般为100位以上的十进制数),e和d满足一定的关系。攻击者已知e和n时也并不能求出d。
|
|
|
|
ElGamal算法也是一种常用的公钥加密算法,它是基于公钥密码体制和椭圆曲线加密体系,既能用于数据加密,也能用于数字签名。
|
|
|