更新时间:2022-08-25 16:15
GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。
GNU Privacy Guard(GnuPG或GPG)是一种加密软件,它是PGP加密软件的满足GPL的替代物。GnuPG依照由IETF订定的OpenPGP技术标准设计。GnuPG用于加密、数字签名及产生非对称钥匙对的软件。
IETF正在为PGP协议进行标准化,标准化的PGP称为OpenPGP。当前版本的PGP及Veridis' Filecrypt与GnuPG或其他OpenPGP系统兼容。
GnuPG是自由软件基金会的GNU计划的一部分,目前受德国政府资助。以GNU通用公共许可证第三版许可。
德国人Werner Koch于1997年9月,在一个兴趣组(BoF session)上听了理查德·斯托曼的请求欧洲自由软件编写者实现公开密钥软件的演讲。美国密码技术出口限制禁止在美国境内编写这样的软件,甚至在境外的美国公民也不行。Koch用Blowfish算法代替IDEA算法,用Elgamal算法代替RSA算法,实现了流加密,增加了一些密钥管理,获得Peter Gutmann的授权使用随机数代码(适用于没有/dev/random的系统)。于1998年2月24日发布了第一个版本(gnupg-0.2.8)。1998年7月,第一个几乎与OpenPGP兼容的版本。1998年底,Matthew Skala贡献了Twofish代码,Michael Roth贡献了Triple-DES实现。这样,OpenPGP所需的一套算法就完成了。
1.0.0版于1999年9月7日发布。2010年9月18日发布了专利刚刚失效的RSA的1.0.3版。德国联邦经济及科技部于2000年资助31.8万马克推动把它移植至Microsoft Windows。GnuPG是按照OpenPGP标准的软件,因此OpenPGP的历史与GnuPG的关系密切。电子邮件加密协议则由Phil Zimmermann开发。2000年修改的美国出口控制条款最终允许美国公民可以参与GnuPG的开发。
德国政府于2005年资助开发S/MIME。GnuPG 2.0于2006年11月13日发布,加入了S/MIME-多用途网际邮件扩充协议(Secure Multipurpose Internet Mail Extensions.RFC 2311)。因为GnuPG 2.0的新的软件架构不支持某些用途,所以1.x与2.0是两个分支版本。
虽然基本的GnuPG程序有一个命令行界面,仍然存在许多提供图形用户界面的前端。例如GnuPG加密被集成进了Linux里流行的桌面环境KDE和GNOME里的图形化电子邮件客户端:KMail和Novell Evolution。也有GnuPG的图形化前端(GNOME里的Seahorse,KDE里的KGpg)。在Mac OS X上,Mac GPG项目提供Aqua作为操作系统集成的加密前端和密钥管理器和GnuPG安装一样通过Installerpackages进行安装。此外,GPGMail项目可以使Apple Mail使用GnuPG加密。Instant messaging程序,例如,当GnuPG已经安装并配置好了时,Psi和Fire可以自动安全的传递消息。像Horde这类的基于互联网的软件也可以使用GnuPG。跨平台插件Enigmail为Mozilla Thunderbird和SeaMonkey提供了GnuPG支持。类似的,Enigform和FireGPG为Mozilla Firefox提供了GnuPG支持。
在2005年,G10 Code和Intevation发行了Gpg4win,一个包含GnuPG for Windows,WinPT、Gnu Privacy Assistant,和为Windows Explorer和Outlook提供的GnuPG插件的mail软件套装。这些工具被包装进了一个标准的微软安装包里,使得它可以很容易的使GnuPG在Windows系统上安装和使用。
GnuPG使用用户自行生成的非对称密钥对来加密信息,由此产生的公钥可以同其他用户以各种方式交换,如密钥服务器。他们必须小心交换密钥,以防止得到伪造的密钥。GnuPG还可以向信息添加一个加密的数字签名,这样,收件人可以验证信息完整性和发件人。 GnuPG不利用专利或其他方式限制软件或算法,就像IDEA算法一开始出现在PGP中一样。(可以通过下载相关插件在GnuPG中使用IDEA算法,不过如果在一些IDEA算法为专利的国家中使用,可能需要一份许可)。GnuPG同样也使用各种其他非专利的算法:
GnuPG是一个混合加密软件程序,它使用常规对称密钥提高加密速度,使用公钥便于交换。通常使用一次性的收件人公钥用以加密会话。
支持GPG的应用程序、前端及浏览器扩展: