PGP

维基百科,自由的百科全书
跳转至: 导航搜索
PGP
PGP.gif
PGP软件截图(Windows
開發者 菲利普·齐默曼英语Phil Zimmermann
类型 密码学
網站 pgp.com

PGPPretty Good Privacy的英文缩写,中文直译:绝好的隐私(保护)。PGP是一套用于消息加密、验证的应用程序,其加密/验证机制采用名为IDEA算法英语International Data Encryption Algorithm的散列算法。PGP及其同类产品均遵守OpenPGP数据加解密标准(RFC 4880)。

PGP的主要开发者是菲利普·齐默曼英语Phil Zimmermann(Philip R. Zimmermann)。齐默曼曾在志愿者的帮助下突破美国政府的禁止令,于1991年将PGP在互联网上免费发布。

注:PGP是商业应用程序;开源并具有同类功能的工具名为GPGGnuPG)。

PGP加密如何工作[编辑]

PGP加密由一系列散列数据压缩对称密钥加密,以及公钥加密的算法组合而成。每个步骤支持几种算法,可以选择一个使用。每个公钥均绑定唯一的用户名和/或者E-mail地址。这个系统的第一个版本通常称为可信Web或X.509系统;X.509系统使用的是基于数字证书认证机构的分层方案,该方案后来被加入到PGP的实现中。当前的 PGP 加密版本通过一个自动密钥管理服务器来进行密钥的可靠存放。

兼容性[编辑]

随着PGP的版本更新,新版本的PGP系统开始支持新的特征和算法,新系统生成的加密消息不能直接被旧的PGP系统解密,即使是使用旧版存储的有效私钥也不行。因此,在PGP通讯中的通信双方应统一版本,或者至少协商好PGP的具体设置。

机密性[编辑]

PGP可以用来发送机密消息。这是通过对称的一组密钥-公钥组合来实现的。消息采用对称加密算法加密,采用一组对称密钥。每个对称密钥只使用一次,所以也叫做会话密钥。会话密钥通过接收方的公钥来加密保护,因此只需确保仅接收方能解密会话密钥即可。加密的消息和加密的会话密钥一起发送给接收方。

数字签名[编辑]

PGP支持消息认证和完整性检测:完整性检测被用来检查消息在传输过程中是否被更改(即验证消息完整性);消息认证则被用来决定消息是否确由某特定的人或实体发出(即数字签名验证)。在PGP中,这些特性默认是和消息加密同时开启的,而且同样可以被应用到明文的验证。发送者只需使用PGP为消息建立一个数字签名(签名算法采用RSADSA)。具体步骤:PGP从明文建立一个散列(Hash,参见消息摘要),然后使用发送者的私钥利用散列生成数字签名

可信Web[编辑]

不管是在加密消息时还是在验证签名时,都需要注意用来发送消息的公钥是否确实属于期望的接收者。简单的从某个位置下载一个公钥是没有保障的。蓄意的(或者意外的)冒名顶替是可能的。PGP 从它的第一个版本起,总是包含在一个'身份证书'中发布用户公钥,身份证书也是经过加密构造的,所以任何的篡改(或者意外的修改)都可以被迅速的检测出来。但是仅通过建立一个即使最简单的篡改都会被发现证书仍然不够,这样的检测机制只能在证书创建之后用于避免篡改,而不是创建之前。用户也必须用某种形式确保证书中的公钥真正的属于特定的人/实体。从第一个发行版开始,PGP产品就包含一个内部的'审查方案'来协助。一个信任模型被叫做可信Web(Web of Trust)。一个给定的公钥(或者更明确些:一个用户名到对应其密钥的绑定信息)可以被第三方用户数字签名,来证明某人(实际上一个用户名)和一个密钥关联。可以在这样的签名中包含几个信任级别,只不过许多程序都会读写这个信息,而只有少数会通过信任级别来决定是否信任一个密钥。

可信Web协议(Trusted-Web Protocol)首先在 1992 年的 PGP 版本 2.0 的手册中被 菲利普·齐默曼(Philip R. Zimmermann) 描述为:

As time goes on, you will accumulate keys from other people that you may want to designate as trusted introducers. Everyone else will each choose their own trusted introducers. And everyone will gradually accumulate and distribute with their key a collection of certifying signatures from other people, with the expectation that anyone receiving it will trust at least one or two of the signatures. This will cause the emergence of a decentralized fault-tolerant web of confidence for all public keys.

信任 Web 机制比象用在S/MIME中的集中管理的公钥基础设施方案有优势,但是没有被普遍采用。用户乐意接收证书然后手动的验证它们的有效性,或者简单的接收它们。对于这些潜在的问题还没有找到满意的解决方案。

历史[编辑]

早期历史[编辑]

菲利普·齐默曼(Philip R. Zimmermann) 在1991年建立第一个版本的 PGP 加密,其名称 'Pretty Good Privacy' 的灵感来自于一个名为"Ralph's Pretty Good Grocery"的杂货店---电台主播Garrison Keillor虚构出来的一个名为Lake Wobegon的城市的一个杂货店。

软件第一个版本包含一个齐默曼自己设计的对称密钥算法,与周六夜现场的一个小品BassOmatic同名。作为一个老牌的反核能活跃分子,齐默曼为了让所有有相似倾向的人们可以安全的使用BBS并且安全存储消息和文件而创造了 PGP 加密。在非商业用途上是不需要授权的,无须任何费用,并且在所有的发行中附带了完整的源代码

在2001年6月5号发表的一篇标题为"PGP 10周年" [1] 的文章中,齐默曼描述了他最初开发PGP时的情景:

“1991年的某天,我把PGP的第一版发给我几个朋友,以便上传到互联网。我最先发给Allan Hoeltje,他把这个程序发到了Peacenet,一个针对草根政治组织--特别是“和平运动”--的ISP。当时全球政治活跃分子都能访问到Peacenet。然后我又把它上传给了Kelly Goen,他接着就把源码转发到了一个专门分发源代码的Usenet新闻组。基于我的请求,他把该Usenet权限改为了“仅限美国”。 Kelly还把PGP传到了(美国)国内很多BBS上面。我记不太清刚开始在网上贴是6月5号还是6号。


说出来吓人,1991年的时候,我对Usenet新闻组确是知之甚少。我并不知道那个“仅限美国”的标签只是个“建议”作用,基本上对贴子的传播(范围)毫无影响。当时,我以为这个标签会控制这个帖子的传播范围。当时我不知道如何在新闻组发贴,甚至不明白新闻组究竟是什么。”

PGP 找到了它通往互联网的路,并且在这个世界上获得了非常多的拥护者。用户和支持者包括在极权主义国家持不同政见的人们(一些给 齐默曼的感人信件被发表了,一些在美国国会之前被包括到证据中),在世界其它地方的 自由意志主义支持者(参考齐默曼在各个听政会上发表的证据),以及'自由通讯'激进主义分子,他们称他们自己为 加密爱好者(who provided both publicity and distribution).

刑事侦察[编辑]

在发行后不久,PGP 加密走出了美国,在 1993 年二月,齐默尔曼变成了美国政府针对 "没有授权的军需品出口" 犯罪调查的正式目标。根据美国出口管理法案中的定义,加密系统使用大于 40位 的密钥将被认为是军需品。PGP 从没有使用小于 128 位的密钥,因此在那时被如此认定。违规处罚,如果被判有罪,将会是严重的罪行。几年后,对齐默尔曼的调查未经备案即被关闭,也没有提起针对他本人或其他任何人的刑事指控。

商業應用[编辑]

PGP一般在企业资源规划(即ERP)软件连接到银行系统时使用,防止信息在传输过程中被删改或盗取,从而减少商业秘密泄露和遭遇诈骗的风险。

参考文献[编辑]

  1. ^ PGP Marks 10th Anniversary. Phil Zimmermann. [2010-08-23]. 

外部链接:[编辑]