PGP是于1990年左右由菲利普·季默曼个人编写的密码软件,现在依然在世界上被广泛使用。PGP这个名字是 Pretty Good Privary(很好的隐私)的缩写。
你有没有过发送“性命攸关”的邮件的经历呢?自己发送的邮件如果能够平安到达指定的接收者就能活命,相反,如果万一被人窃听到就没命了。出于政治等原因,世界上有很多人都处于这样一种状况之中,而PGP就是为了保护处于这样极端状况下的人们的隐私而开发的密码软件。
PGP的功能
PGP具备现代密码软件所必需的几乎全部功能,下面我们来列举一些,如下所示。
对称密码
PGP支持用对称密码进行加密和解密。对称密码可以单独使用,也可以和公钥密码组合成混合密码系统使用。
可以使用的对称密码算法包括AES、IDEA、CAST、三重DES、 Blowfish、 Twofish
Camellia等。
公钥密码
PGP支持生成公钥密码的密钥对,以及用公钥密码进行加密和解密。实际上并不是使用公钥密码直接对明文进行加密,而是使用混合密码系统来进行加密操作。可以使用的公钥密码算法包括RSA和 Elgamal等。
数字签名
PGP支持数字签名的生成和验证,也可以将数字签名附加到文件中,或者从文件中分离出数字签名。
可以使用的数字签名算法包括RSA、DSA、 ECDSA(椭圆曲线DSA)、 Edda(爱德华兹曲线DSA)等。
单向散列函数
PGP可以用单向散列函数计算和显示消息的散列值。
可以使用的单向散列函数算法包括SHA-1、SHA-224、SHIA-256、SHA-384、SHA-512和RIPEMD-160等。MD5也依然可以使用,但并不推荐。
证书
PGP可以生成 Opengpg中规定格式的证书,以及与X.509规范兼容的证书。此外,还可以颁发公钥的作废证明( revocation certificate),并可以使用CRL和OSCP对证书进行校验。
压缩
PGP支持数据的压缩和解压缩,压缩采用ZIP、ZLIB、 BZIPZ等格式。
文本数据
PGP可以将二进制数据和文本数据相互转换。例如,当不得不使用某些无法处理二进制数据的软件进行通信时,可以将二进制数据转换成文本数据( ASCII radix-64格式),这些软件就能够进行处理了。
三大文件的拆分和拼合
在文件过大无法通过邮件发送的情况下,PGP可以将一个大文件拆分成多个文件,反过来也可以将多个文件拼合成一个文件。
钥匙串管理
PGP可以管理所生成的密钥对以及从外部获取的公钥。用于管理密钥的文件称为钥匙串。