摘要电子邮件是分布式网络环境中使用最为普遍的应用过程,其安全可靠性要求系统能提
供保密和认证业务,而pgp恰好提供了保密和认证服务。pgp是一个基于rsa公钥加密体系
的邮件加密软件,本文介绍了pgp的算法设计和工作流程并分析了它的安全性,发现pgp具
有较高的安全性。
关键词pgp认证安全性
中图分类号:tp393文献标识码:a
1pgp算法的工作流程
1.1数字签名
发送消息时pgp操作的第一步是数字签名过程。数字签名的工作步骤如下:
(l)发送者形成一个消息;
(2)pgp采用mds算法派生消息的128bit散列码;
(3)发送者规定此次操作所采用的秘密密钥,且提供一个密语,以此启动pgp解密发送
者的秘密密钥;
(4)pgp用发送者的秘密密钥采用rsa算法加密散列码,将结果附到该消息。对应发送
者的公钥的密钥id附到签名后。
接收者的pgp按以下3个步骤处理数字签名:
(1)pgp取附到签名后的密钥id,以此从公开密钥环上提取正确的公开密钥;
(2)pgp以发送者的公钥采用rsa算法解密,恢复散列码;
(3)pgp将此消息派生出散列码,且与解密的散列码比较。若两者一致,消息得到确认
予以接收。
mds与rsa的组合构成有效的数字签名机制。鉴于rsa体制的强度,接收者应确信只有
相应秘密密钥的拥有者才能产生此签名。此外鉴于mds的强度,接收者还能确信,没有别人
能产生与此散列码相配的新消息,从而也确信原消息的签名。
1.2消息加密
pgp提供的另外一项基本服务是加密,即对需传输的消息或在本地需存贮的文件进行加
密。在这两种情况下,采用普通加密算法idea。
自然,人们必须解决密钥分配问题。对pgp而言,每一个密钥仅使用一次,即对每个消
息产生一组128bit随机数作为新的密钥。虽然这个密钥在文件中叫做消息密钥,然而实际上
它仅用一次。正因为它仅用一次,所以消息密钥仅限定在该消息,且与消息一道传输。为
护密钥,将密钥用接收者公开密钥采用rsa算法加密。操作过程如下:
(1)pgp产生128bit随机数,仅用作这次消息的消息密钥。
(2)pgp以此消息密钥采用idea算法对消息加密。
(3)pgp以接收者的公开密钥采用rsa算法加密消息密钥,将结果附到消息后。接收者
的公开密钥id附到已加密的消息密钥之后。
接收端需完成以下4个操作:
(1)pgp取得附到消息的密钥id,以此从秘密密钥环提取正确的秘密密钥。自然一个用
户可能有多于一个的秘密密钥;
(2)接收者提供密语,以启动pgp解密接收者的秘密密钥;
(3)pgp以上述秘密密钥,采用rsa算法解密并恢复消息密钥;
(4)pgp以上述消息密钥采用idea算法解密消息。
对同一个消息采用两种密码服务,首先,对原文消息产生数字签名,并附到消息的后面。
其次,在压缩之后,对已压缩的原文和签名利用idea算法进行加密,且消息密钥用rsa加密。
总之,加密过程完成两种服务,发方用其秘密密钥对消息签名,之后,用消息密钥对消息加
密,用收方的公开密钥对消息密钥加密。
1.3邮件兼容
当使用pgp时,至少传输报文的一部分需要加密,因此,部分或全部的结果报文由任意
的8比特流组成。但由于很多的电子邮件系统只允许使用由ascⅱ正文组成的块,所以pgp
提供了基数64转换,将原始二进制流转化为可打印的ascⅱ字符。
1.4数据分段
电子邮件设施经常受限于最大报文长度(50000个)八位组的限制。为了适应这个限
制,pgp自动将长消息分段使之可以通过电子邮件发送。分段是在所有其他的操作之后进行,
包括基数64转换。因此,会话密钥和签名部分仅在第一个报文段的开始位置出现一次。在
接收端,pgp必须剥掉所在的电子邮件首部,并且重新装配成原来的完整的分组。
2pgp安全性分析
pgp在安全性问题上的审慎考虑体现在pgp的各个环节。pgp程序对随机数的产生是很审
慎的,关键的随机数(像rsa密钥)的产生是从用户敲键盘的时间间隔上取得随机数种子的。
pgp在加密前使用pkzip算法对明文进行预压缩处理。一方面对电子邮件而言,压缩后加密
再经过7bits编码