PGP邮件系统
PGP邮件系统
PGP简介
PGP(Pretty Good Privacy),是一个基于RSA公匙加密体系的邮件加密软件。可以用它对邮件保密以防止非授权者阅读,它还能对邮件加上数字签名从而使收信人可以确认邮件的发送者,并能确信邮件没有被篡改。它的功能强大,有很快的速度,而且它的源代码是免费的。
PGP包含了用于公钥加密的RSA, DSS和Diffie-Hellman算法,用于对称加密的CAST-128,IDEA和3DES算法以及用SHA1做Hash编码
下面的描述的一些符号的含义如下:
操作描述
PGP的实际操作有4类服务组成:认证、 保密、 压缩和电子邮件兼容性:
下面主要从3个方面来进行分析:
-
认证
- 发送方生成消息
- 用SHA-1算法生成消息的160位Hash码
- 用发送方的私钥按RSA算法加密该Hash码并将结果预先加入到消息中
- 接收方用发送方的公钥按RSA算法解密消息并回复Hash码
- 接收方对消息用相同的Hash函数生成新的Hash码,并比较该Hash码与解密得到的Hash码,如果两个匹配,则消息为可信的
SHA-1和RSA的结合提供了一个高效的数字签名方案。两者发挥的作用分别如下所示:
- 鉴于RSA的安全强度,接收者可以确信只有对应私钥的拥有者才能生成该签名
- 鉴于SHA-1的安全强度,接收者可以确信如果是不同的消息必定无法生成与该Hash码匹配Hash值
-
保密
- 发送方生成消息和仅用于加密该消息的会话**, 该会话**为128位的随机自然数
- 采用CAST-128(或IDEA或3DES)算法,使用该会话**加密消息
- 使用RSA算法,用接收者的公开**加密该会话**并预先发送给对方
- 接收者使用RSA算法,用自己的的私钥来解密并恢复会话**
- 用会话**解密消息
在上面的流程中,我们既使用了公钥加密RSA算法,又使用了CAST-128对称加密算法的理由如下:
- 必要性:公钥算法的使用能够解决会话**分配问题
- 重要性:减少加密时间(对称加密和公钥加密的结合在效率桑优于仅仅使用RSA或者ElGamal直接对消息进行加密)
保密和认证性
首先生成一个明文的签名,然后用CAST-128(或IDEA或3DES)算法对明文消息和签名进行加密,然后用RSA算法对会话**加密。
PGP消息(PGP Message Generation)
-
**标志
- 会话**本身是用接受者的公钥加密的,因此只有接受者才能恢复会话**并以此恢复消息。
- 由于任何用户都有多个公私**对,因此需要接受者确认对方是用自己的哪一个公钥加密会话**的方案为:PGP给每一个公钥都分配一个**标志,并且该**标志在一个用户标志内很大程度上是唯一的
-
PGP的消息产生:
消息签名:
1)PGP以“your_userid”作为索引将发送者的私钥从私钥环中恢复出来。若未提供“your_userid”则恢复**环中的第一个私钥
2)PGP提醒用户输入口令以恢复出私钥
3)执行消息的签名组件消息加密:
1)PGP生成会话**并加密消息
2)PGP以“her_userid”为检索将接收者从公钥环中取出
3)执行消息的会话**组件
-
PGP的消息接收处理
消息解密:
1)PGP以会话**组件中的**标志域为索引将接收者的私钥从私钥环中取出
2)PGP提醒用户输入口令以恢复出私钥
3)PGP恢复会话**并解密消息消息认证:
1)PGP以签名**组件中的**标志域为索引将发送者的公钥从公钥环中取出
2)PGP恢复出传输过来的消息的摘要
3)PGP对接收到的消息计算摘要并将之与2)中恢复的摘要进行比较以认证消息