良好隱私密碼法

维基百科,自由的百科全书
(重定向自PGP
跳转至: 导航搜索
PGP
PGP.gif
PGP软件截图(Windows
開發者 菲爾·齊默爾曼
类型 密码学
網站 pgp.com

良好隱私密碼法英语Pretty Good Privacy,縮寫為 PGP),一套用於訊息加密、驗證的應用程序,採用IDEA的散列演算法作為加密與驗證之用。

PGP的主要开发者是菲爾·齊默爾曼(Phil Zimmermann)。齐默曼于1991年将PGP在互联网上免费发布。PGP本身是商业应用程序;开源并具有同类功能的工具名为GPGGnuPG)。PGP及其同类产品均遵守OpenPGP数据加解密标准(RFC 4880)。

PGP加密如何工作[编辑]

PGP加密由一系列散列数据压缩对称密钥加密,以及公钥加密的算法组合而成。每个步骤支持几种算法,可以选择一个使用。每个公钥均绑定唯一的用户名和/或者E-mail地址。这个系统的第一个版本通常称为可信Web或X.509系统;X.509系统使用的是基于数字证书认证机构的分层方案,该方案后来被加入到PGP的实现中。当前的 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 在互联网上传播开来,并且在这个世界上获得了非常多的拥护者。PGP 用户和支持者也包括在极权主义国家持不同政见的人们(一些给齐默曼的感人信件被发表了,其中一些在美国国会之前被包括到证据中)。在世界其它地方的自由意志主义支持者(参考齐默曼在各个听政会上发表的证据),以及“自由通讯”激进主义分子,他们称他们自己为加密爱好者,进行宣传和分发。

刑事侦察[编辑]

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

齐默曼使用了一种富有想象力的方法来对抗这一规定。他将 PGP 的全套源代码出版成一本书,[2]MIT出版社发行,受到了广泛欢迎。任何想要构建自己的 PGP 版本的人只需买下这本 60 美元的书,切掉封面,分离页面,然后使用OCR程序进行扫描和文字识别(或者直接输入),生成一系列的源代码文本文档。接下来便可以使用自由分发的 GCC 来编译程序。PGP 就是这样在全世界变得可用。声明的原则很简单:对军需品——枪支炸药、飞机软件——的出口是被限制的,然而书本出口受到第一修正案的保护。这个问题从未再在法庭中检查过。

商業應用[编辑]

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

OpenPGP[编辑]

参考文献[编辑]

  1. ^ PGP Marks 10th Anniversary. Phil Zimmermann. [2010-08-23]. 
  2. ^ Zimmermann, Philip. PGP Source Code and Internals. MIT Press. 1995. ISBN 0-262-24039-4. 

外部链接:[编辑]