微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > PGP 简介

PGP 简介

时间:04-14 来源: 点击:
3.下面,再介绍如何通过电话认证密匙。

每个密匙有它们自己的标识(keyID),keyID是一个八位十六进制数,两个密匙具有相同keyID的可能性是几十亿分之一,而且PGP还提供了一种更可靠的标识密匙的方法:"密匙指纹"(key's fingerprint)。每个密匙对应一串数字(十六个两位十六进制数),这个指纹重复的可能就更微乎其微了。而且任何人无法指定生成一个具有某个指纹的密匙,密匙是随机生成的,从指纹也无法反推出密匙来。这样当拿到某人的公匙后就可以和他在电话上核对这个指纹,从而认证他的公匙。如果无法直接和通信的另一方直接通电话,可以和公钥介绍机制中的中间介绍人通电话认证该介绍人的公匙,从而通过介绍人认证了通信另一方的公匙,这就是直接认证和间接介绍的结合。

这样又引出一种方法,就是把具有不同人签名的自己的公匙收集在一起,发送到公共场合,这样可以希望大部分人至少认识其中一个人,从而间接认证了你的公匙。同样你签了朋友的公匙后应该寄回给他,这样就可以让他可以通过你被你的其他朋友所认证。和现实社会中人们的交往一样。PGP会自动为你找出你拿到的公匙中有哪些是你的朋友介绍来的,那些是你朋友的朋友介绍来的,哪些则是朋友的朋友的朋友介绍的……它会帮你把它们分为不同的信任级别,让你参考决定对它们的信任程度。你可以指定某人有几层转介公匙的能力,这种能力是随着认证的传递而递减的。

转介认证机制具有传递性,这是个有趣的问题。PGP的作者Phil Zimmermann说过一句话:" 信赖不具有传递性;我有个我相信决不撒谎的朋友。可是他是个认定总统决不撒谎的傻瓜,可很显然我并不认为总统决不撒谎。"

上面所说的是关于公匙的安全性问题,这是PGP安全的核心。另外,和传统单密匙体系一样,私匙的保密也是决定性的。相对公匙而言,私匙不存在被篡改的问题,但存在泄露的问题。RSA的私匙是很长的一个数字,用户不可能将它记住,PGP的办法是让用户为随机生成的RSA私匙指定一个口令(pass phase)。只有通过给出口令才能将私匙释放出来使用,用口令加密私匙的方法保密程度和PGP本身是一样的。所以私匙的安全性问题实际上首先是对用户口令的保密。当然私匙文件本身失密也很危险,因为破译者所需要的只是用穷举法(强力攻击)试探出口令了,虽说很困难但毕竟是损失了一层安全性。需要说明的是:最好不要把私钥写在纸上或者某一文件里,因为这样很容易被别人得到在这里。

PGP在安全性问题上的审慎考虑体现在PGP的各个环节。比如每次加密的实际密匙是个随机数,大家都知道计算机是无法产生真正的随机数的。PGP程序对随机数的产生是很审慎的,关键的随机数像RSA密匙的产生是从用户敲键盘的时间间隔上取得随机数种子的。对于磁盘上的 randseed.bin 文件是采用和邮件同样强度的加密的。这有效地防止了他人从randseed.bin文件中分析出加密实际密匙的规律来。

4.最后提一下PGP的加密前预压缩处理,PGP内核使用PKZIP算法来压缩加密前的明文。

一方面对电子邮件而言,压缩后加密再经过7bits编码密文有可能比明文更短,这就节省了网络传输的时间。另一方面,明文经过压缩,实际上相当于经过一次变换,信息更加杂乱无章,对明文攻击的抵御能力更强。PKZIP算法是一个公认的压缩率和压缩速度都相当好的压缩算法。在PGP中使用的是PKZIP 2.0版本兼容的算法。

5.参考书目:

Philip Zimmermann : "PGP User’s Guide Volume I : Essential Topics"
NAI
microsoft

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top