如果Alice想传送一份只有Bob能读的信给他,她应以Bob的公开密钥为信件加密,之后Bob再使用它的私密密钥将信件解密。只要Bob妥善保管其私密密钥,Alice便可确信只有Bob能读取她的信件。
对整个信息加密其实是没有必要的:相对的,如果只有文件的校验和加密,它就等于有数字签名(digital signature)了。如果信息本身是公开的,这种方法便相当有用,不过还需要有方法验证它的真实性。要完整说明公开密钥加密机制,需要整本书才行,可参考《安全性与密码学》。
计算机越来越容易受到攻击,下载文件或软件要很注意安全。一般软件存档文件都并入了文件校验和信息的数字签名,如果不确定下载的东西是否安全,可以验证它。举例:
$ ls -l coreutils-5.0.tar*
-rw-rw-r-- 1 jones devel 6020616 Apr 2 2003 coreutils-5.0.tar.gz
-rw-rw-r-- 1 jones devel 65 Apr 2 2003 coreutils-5.0.tar.gz.sig
$gpg coreutils-5.0.tar.gz.sig #尝试验证此签名
gpg: Signature made Wed Apr 2 14:26:58 2003 MST using DSA key ID D333CBA1
gpg: Can't check signature: public key not found
验证失败,是因为我们还未将签名者的公开密钥加入gpg密钥环。我们可以在签名作者的个人网站找到公开密钥或者通过email询问。然而幸好使用数字签名的人多半会将他们的公开密钥注册到第三方(thrid-party)的公开密钥服务器,且该注册会自动地提供给其他的密钥服务器共享。
将密钥内容存储到临时文件如”temp.key",加到密钥环中:
$ gpg --import temp.key
然后就可以成功验证签名了。










