gnu privacy guard(gnupg 或 gpg)是一个密码学软件,用于加密、签名通信内容及管理非对称密码学的密钥。gnupg 是自由软件,遵循 ietf 订定的 openpgp 技术标准设计,并与 pgp 保持兼容。
gnu privacy guard( 或 )是一个软件,用于加密、签名通信内容及管理非对称密码学的密钥。gnupg 是自由软件,遵循 ietf 订定的 openpgp 技术标准设计,并与 pgp 保持兼容。
历史
gnupg 的早期版本由维尔纳·科赫开发,经过近两年迭代后于 1999 年 9 月 7 日正式发布 1.0.0 版。软件实现遵循 openpgp 标准,兼容菲尔·齐默尔曼开发的 pgp。2000 年,德国联邦经济及科技部资助了 31.8 万马克,用于移植 gnupg 到 microsoft windows。
德国政府于 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 1.x 使用了一个集成的加密库,而 gnupg 2.x 则用 libgcrypt 取代了加密库。
使用
虽然基本的 gnupg 程序有一个命令行界面,仍然存在许多提供图形用户界面的前端。例如 gnupg 加密被集成进了 linux 里流行的桌面环境 kde 和 gnome 里的图形化电子邮件客户端:kmail 和 novell evolution。也有 gnupg 的图形化前端(gnome 里的 seahorse,kde 里的 kgpg 和 kleopatra)。
在 mac os x 上,mac gpg 项目提供 aqua 作为操作系统集成的加密前端和密钥管理器和 gnupg 安装一样通过 installer packages 进行安装。此外,gpgmail 项目可以使 apple mail 使用 gnupg 加密。instant messaging 程序,例如,当 gnupg 已经安装并配置好了时,psi 和 fire 可以自动安全的传递消息。
像 horde 这类的基于互联网的软件也可以使用 gnupg。跨平台插件 enigmail 为 mozilla thunderbird 和 seamonkey 提供了 gnupg 支持。类似的,enigform 和 firegpg 为 mozilla firefox 提供了 gnupg 支持。mailvelope 为在浏览器中使用 gnupg 操作电子邮件提供了支持。
在 2005 年,g10 code 和 intevation 发行了 gpg4win,一个包含 gnupg for windows, winpt、gnu privacy assistant,和为 windows explorer 和 outlook 提供的 gnupg 插件的 mail 软件套装。这些工具被包装进了一个标准的微软安装包里,使 gnupg 可以在 windows 系统上安装和使用。
过程
gnupg 使用用户自行生成的非对称密钥对来加密信息,由此产生的公钥可以同其他用户以各种方式交换,如密钥服务器。他们必须小心交换密钥,以防止得到伪造的密钥。gnupg 还可以向信息添加一个数字签名,这样,收件人可以验证信息完整性和发件人。
gnupg 支持的各种加密算法:
- 对称加密:cast5、camellia、triple des、aes、blowfish、twofish、chacha20、idea (从 1.4.13 和 2.0.20 开始被添加)
- 非对称加密:elgamal、rsa、dsa、ecdsa、eddsa
- 密码散列函数:ripemd-160、md5、sha-1、sha-2、tiger
- 数字签名:dsa、rsa、ecdsa、eddsa