随着互联网应用的普及和发展,电子邮件已成为主要的信息交流方式之一。一般来说,网络安全问题的类型可分成以四种:信息保密、身份鉴别、数字签名、完整性确认。PGP(端到端的安全邮件协议)集网络鉴别安全问题的防护,有效阻止信息被非法查看、篡改和伪造。 PGP支持三种RSA密钥长度:384bit(偶尔使用)、512bit(商用)和1024bit(军用)。
一、PGP使用的基本加密算法
(一)IDEA算法(Internation Date Encryption Algorithm)。IDEA 叫对称加密算法算法,其机理是用一个128bit的密钥加密明文,解密时再使用相同的密钥解密密文,此处的密钥在PGP中叫会话密钥。IDEA算法优点是加密速度较快,缺点是收发双方不能确保有一个安全渠道来传送会话密钥。在PGP中,IDEA算法被用来加密邮件正文。
(二)RSA算法(Rivest-Shamir-Adleman)。RSA叫非对称加密算法,其原理是找两个很大的质数,其中一个对外界公开,称为公匙,另一个称为私匙,用公匙加加密的密文可以用私匙,反之亦然。发信人需用收信人的公匙将传输信息加密,通过网络传给收信人。收信人再用自己的私匙才能解密,此时只有收信人的私匙才能解密,由此可确认能读懂信的人必是正确的收信人,从而实现身份的鉴别。另一方面,如果发信人用自己的私匙将传输信息加密,就相当于在此消息上作了签名。收信人只有用发信人的公匙才能将其解开。这样可以证明信件确实是由原发件人发出,别人无法假冒他的名义,便实现了数字签名功能。RSA算法的不足之处是其计算量很大,加密正文信息效率低,加密正文信息效率低,速度慢。
(三)SHA算法(Secure Hash Algorithm)。SHA叫单向散列算法,在PGP中,信息摘要是一串能表达内容的160bit或128bit的二进制特征数。信息内容和信息摘要是一一对应的,不同的内容所产生的信息摘要不同,即使内容有一个字节的改变信息摘要的结果都会发生较大的变化。单向散列算法不能够由信息摘要反推出原邮件内容。因SHA可以保证邮件的完整性。
二、加密电子邮件的过程
一:数字签名。明文P是原始的未加密的邮件正文,经过SHA算法产生唯一的信息摘要P1,以便收信人验证P的完整性,即使如此,如果在邮件传输过程中有第三者利用另一份明文P及其相应的信息摘要P1来同时篡改这里的P和 P1,那么收信人将无法识别这一篡改为。为了防止篡改,PGP采用RSA算法的数字签名功能,用发信人的私匙Da再次把P1加密成P2具备完整性检测和数字签名的双重功能,以保证不被别人篡改或假冒。PGP再将数字签名P2连接到明文P的尾部组成P3。
二:信息压缩。PGP将 P3经过PKZIP算法压缩成P4,信息压缩一方面可以减少传输量,另一方面实现对P3的另一种加密。收件人收到后在此处进行解压即可。
三:信息加密。PGP再用IDEA算法将P4加密。IDEA的会话密钥由随机数产生器产生,它根据用户输入的一串随机数,结合用户键入字符的速度来产生一个128bit的随机生成会话密钥Km,加密后即生成P5,同时会话密钥Km也要被传输给收信人以便解密。
为增强保密性,PGP采用RSA算法利用收信人的公匙Eb对此会话密钥进行加密形成P6,并附加到P5之后形成P7输出。收信人收到后在此处首先用自己的RSA私匙解密后得出会话密钥Km利用IDEA解密得到P4。此法利用了IDEA加密速度快这一特点,同时用RSA的公匙来加密IDEA的会话密钥Km既克服了直接传送会话密钥安全性的缺点,也弥补了RSA的加密速度慢、适合于处理信息量小但非常重要的信息这一特点。而用RSA的公匙加密又同时时验证了收信人的身份。
PGP结合这两种算法,充分发挥各自的特长,取长补短,既增强了功能又不失较快的速度,使得PGP具有较大的安全性和实用性。