PGP功能简介

PGP 是 1990 年左右由 菲利普·齐墨尔曼(Phil Zimmermann)个人编写的密码软件,现在依然在世界上被广泛使用。 PGP 这个名字是 Pretty Good Privacy(很好的隐私)的缩写。GNU Privacy Guard(GnuPG)是一款基于 OpenPGP 标准开发的密码软件,支持加密、数字签名、密钥管理、S/MIME、ssh 等多种功能。
PGP的功能:

1.对称加密

支持对称密码算法包括 AES、IDEA、CAST、三重 DES、Blowfish、Twofish、Camellia 等。分组密码模式使用的是 CFB 模式。

以会话密钥的形式对传输的数据进行加密,一次会话一次密钥

2.非对称加密

支持可以使用的公钥密码算法包括 RSA 和 ElGamal 等。

使用非对称密钥对会话密钥进行加密传输。

3.数字签名

PGP 支持数字签名的生成和验证,也可以将数字签名附加到文件中,或者从文件中分离出数字签名。

支持使用的数字签名算法包括 RSA、DSA、ECDSA(椭圆曲线 DSA)、EdDSA(爱德华兹曲线 DSA)等。
PGP 的私钥是保存在用户的钥匙串中的。为了防止钥匙串被盗,私钥都是以加密状态保存的,并在保存时使用了基于口令的密码(PBE)。口令是由多个单词组成的短语,没有正确的口令就无法使用相应的私钥。如果攻击者想要使用你的私钥,就必须先窃取保存私钥的钥匙串,然后再破译加密私钥的密码。

4.消息散列

PGP 可以用单向散列函数计算和显示消息的散列值。

可以使用的单向散列函数算法包括 MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512 和 RIPEMD-160 等。

5.证书支持

 PGP 可以生成 OpenPGP 中规定格式的证书,以及与 X.509 规范兼容的证书。但不需要PKI

图片来源:http://www.pgp.cn/index.htm

6.支持压缩

PGP 支持数据的压缩和解压缩,压缩采用 ZIP、ZLIB、BZIP2 等格式。

7.文件格式转换

PGP 可以将二进制数据和文本数据相互转换、例如,当不得不使用某些无法处理二进制数据软件进行通信时,可以将二进制数据转换成文本数据(ASCII radix-64 格式),这些软件就能够进行处理了。

8.支持大文件拆分和合并

在文件过大无法通过邮件进行发送的情况下,PGP 可以将一个大文件拆分成多个文件,反过来也可以将多个文件拼合成一个文件。

9.如何交换公钥

PGP 所采用的一种确认公钥合法性的方法 —— 信任网。

在使用 PGP 时,确认自己所得到的公钥是否真的属于正确的人(公钥合法性)是非常重要的,因为公钥可能会通过中间人攻击被替换。
证书是确认公钥合法性的方法之一。证书就是由认证机构对公钥所施加的数字签名,通过验证这个数字签名就可以确认公钥的合法性。
然而,PGP 中却没有使用认证机构,而是采用了一种叫做信任网的方法。在这种方法中,PGP 用户会互相对对方的公钥进行数字签名。
信任网的要点是 “不依赖认证机构,而是建立每个人之间的信任关系”。换言之,就是能够自己决定要信任哪些公钥。

这里面有两个点:

对方的公钥要导入自己的系统中

可以对对方的公钥设置信任等级

图片来源:https://www.jianshu.com/p/0ad45d9644cc

关于PGP的密钥的创建

图片来源:http://www.pgp.cn/index.htm

关于PGP的使用:

加密:发送者生产会话密钥,使用接收者的公钥加密会议密钥,使用会话密钥加密数据,将两个消息打包发送给接受者。接受者使用对称密钥中私钥解密获得会话密钥,使用会话密钥解开数据

数字签名:发送者使用散列哈希计算数据的哈希值,使用自己的私钥对哈希值进行加密。接受者使用哈希算法计算出数据的哈希值,使用发送者的公钥解密对方发过来的哈希值,并进行对比

数字签名及加密:结合了以上两者功能,其中数字签名信息在加密消息范围内。

对于公钥中的私钥保存方式是:私钥都是以加密状态保存的,并在保存时使用了基于口令的密码(PBE)。口令是由多个单词组成的短语,没有正确的口令就无法使用相应的私钥。如果攻击者想要使用你的私钥,就必须先窃取保存私钥的钥匙串,然后再破译加密私钥的密码。

对于公钥的信任关系:通过信任网设置,自己在导入公钥证书时候进行设置。

关于PGP的用途:

可以用于邮件加密、文件加密

 

以上描述内容的更详细内容,详见https://www.jianshu.com/p/91c98a27fd16



posted @ 2020-08-10 14:40  worter  阅读(1945)  评论(0编辑  收藏  举报