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系统兼容。
德国人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同样也使用各种其他非专利的算法: