PGP加密原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PGP加密原理(邮件内部加密过程)

作者:萧萧<<-----------转自此人

PGP是一个基于RSA公匙加密体系的邮件加密软件。有收费版本,也有免费版本,免费版本对一般用户来说功能足够了。可以用它对你的邮件保密以防止非授权者阅读,它还能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见过

PGP是一个基于RSA公匙加密体系的邮件加密软件。有收费版本,也有免费版本,免费版本对一般用户来说功能足够了。

可以用它对你的邮件保密以防止非授权者阅读,它还能对你的邮件加上数字签名从而使收信人可以确信邮件是你发来的。它让你可以安全地和你从未见过的人们通讯,事先并不需要任何保密的渠道用来传递密匙。它采用了:审慎的密匙管理,一种RSA和传统加密的杂合算法,用于数字签名的邮件文摘算法,加密前压缩等,还有一个良好的人机工程设计。它的功能强大有很快的速度。而且它的源代码是免费的。

实际上PGP的功能还不止上面说的:;PGP可以用来加密文件,还可以用PGP代替UUencode;生成;RADIX;64;格式(就是MIME;的;BASE;64格式)的编码文件。

PGP;的创始人是美国的;Phil;Zimmermann。他的创造性在于他把RSA公匙体系的方便和传统加密体系的高速度结合起来,并且在数字签名和密匙认证管理机制上有巧妙的设计。因此PGP成为几乎最流行的公匙加密软件包。

PGP是一种供大众使用的加密软件。加密是为了安全,私密权是一种基本人权。在现代社会里,电子邮件和网络上的文件传输已经成为生活的一部分。邮件的安全问题就日益突出了,大家都知道在Internet上传输的数据是不加密的。如果你自己不保护自己的信息,第三者就会轻易获得你的隐秘。;还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,就需要数字签名技术。RSA公匙体系的特点使它非常适合用来满足上述两个要求:

保密性(Privacy)和认证性(Authentication)。

RSA(Rivest-Shamir-Adleman)算法是一种基于大数不可能质因数分解假设的公匙体系。简单地说就是找两个很大的质数,一个公开给世界,一个不告诉任何人。一个称为“公匙”,另一个叫“私匙”(Public;key;&;Secretkey;or;Private;key)。这两个密匙是互补的,就是说用公匙加密的密文可以用私匙解密,反过来也一样。假设甲要寄信给乙,他们互相知道对方的公匙。甲就用乙的公匙加密邮件寄出,乙收到后就可以用自己的私匙解密出甲的原文。由于没别人知道乙的私匙所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面由于每个人都知道乙的公匙,他们都可以给乙发信,那么乙就无法确信是不是甲的来信。认证的问题就出现了,这时候数字签名就有用了。

在说明数字签名前先要解释一下什么是“邮件文摘”(message;digest),单地讲就是对一封邮件用某种算法算出一个能体现这封邮件“精华”的数来,一旦邮件有任何改变这个数都会变化,那么这个数加上作者的名字(实际上在作者的密匙里)还有日期等等,就可以作为一个签名了。确切地说PGP是用一个128位的二进制数作为“邮件文摘”的,用来产生它的算法叫MD5(message;digest;5),MD5的提出者是Ron;Rivest,PGP中使用的代码是由Colin;Plumb 编写的,MD5本身是公用软件。所以PGP的法律条款中没有提到它。MD5是一种单向散列算法,它不像CRC校验码,很难找到一份替代的邮件而与原件具有一样的“精华”。

回到数字签名上来,甲用自己的私匙将上述的128位的“精华”加密,附加在邮件上,再用乙的公匙将整个邮件加密。这样这份密文被乙收到以后,乙用自己的私匙将邮件解密,得到甲的原文和签名,乙的PGP也从原文计算出一个128位的“精华”来再用甲的公匙解密签名得到的数比较,如果符合就说明这份邮件确实是甲寄来的。这样两个要求都得到了满足。

PGP还可以只签名而不加密,这适用于公开发表声明时,声明人为了证实自己的身份(在网络上只能如此了),可以用自己的私匙签名。这样就可以让收件人能确认发信人的身份,也可以防止发信人抵赖自己的声明。这一点在商业领域有很大的应用前途,它可以防止发信人抵赖和信件被途中篡改。

那么为什么说PGP用的是RSA和传统加密的杂合算法呢?因为RSA算法计算量极大在速度上不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用了一种叫IDEA的传统加密算法。我先解释一下什么叫传统加密,简单地说就是用一个密匙加密明文,然后用同样的密匙解密。这种方法的代表是DES(US;Fed eral;DataEncryption;Standard),也就是乘法加密,它的主要缺点就是密匙的传递渠道解决不了安全性问题,不适合网络环境邮件加密需要。

IDEA;是一个有专利的算法,专利持有者是ETH和一个瑞士公司:Ascom-Tech;AG。

非商业用途的IDEA实现不用向他们交纳费用。IDEA的加(解)密速度比RSA快得多,所以实际上PGP是用一个随机生成密匙(每次加密不同)用IDEA算法对明文加密,然后用RSA算法对该密匙加密。这样收件人同样是用RSA解密出这个随机密匙,再用IDEA解密邮件本身。这样的链式加密就做到了既有RSA体系的保密性,又有IDEA算法的快捷性。PGP的创意有一半就在这一点上了,为什么RSA体系70年代就提出来,一直没有推广应用呢?速度太慢!那么PGP创意的另一半在哪儿呢?下面我再谈PGP的密匙管理。

一个成熟的加密体系必然要有一个成熟的密匙管理机制配套。公匙体制的提出就是为了解决传统加密体系的密匙分配难保密的缺点。比如网络hacker们常用的手段之一就是“监听”,如果密匙是通过网络传送就太危险了。举个例子:NovellNetware;的老版本中,用户的密码是以明文在线路中传输的,这样监听者轻易就获得了他人的密码。当然;Netware;4.1;中数据包头的用户密码现在是加密的了。对PGP来说公匙本来就要公开,就没有防监听的问题。但公匙的发布中仍然存在安全性问题,例如公匙的被篡改(Public;Key;Tampering),这可能是公匙密码体系中最大的漏洞,因为大多数新手不能很快发现这一点。你必须确信你拿到的公匙属于它看上去属于的那个人。为了把这个问题说清楚,我举个例子,然后再说如何正确地用PGP堵住这个漏洞。

相关文档
最新文档