第 3 章 使用钥匙

目录

1. 产生钥匙
2. 输出钥匙
3. 引进钥匙
4. 取消钥匙
5. 钥匙管理
6. 钥匙签名

1. 产生钥匙

使用以下命令

gpg --gen-key

以产生一个新的钥匙对(一个钥匙对包括一把隐密钥匙和相应的一把公开钥匙)。运行时,第一个问题是选择使用哪个算法。你可以在 PGP DH vs. RSA FAQ(http://www.hertreg.ac.uk/ss/pgpfaq.html) 或 Applied Cryptography (http://www.gnupg.org/(en)/howtos/ch/GPGMiniHowto-6.html#BSchneier)中读到更多算法方面的信息。对这个问题可以很容易地选择DSA/ElGamal。该算法没有专利。

下一个问题是钥匙长度。对这个问题的答案因人而异。你需要在安全和计算时间二者选一。如果钥匙长些,讯息被截获后被破解的风险就小些。但是使用时计算时间也要长些。如果计算时间是考虑的重要因素,你仍然应该考虑到你将使用这把钥匙一段时间。我们都知道由于新处理器越来越快,使得数值计算速度增加非常快。因此,选择钥匙长度时,要考虑到这个因素。GnuPG要求的最短钥匙长度是768字位。不过,有人认为你应该使用2048位的钥匙(这实际也是GnuPG目前允许的最大长度)。就DSA而言,1024位是一个标准的长度。当安全是首要考虑因素而速度相对次要时,你应该选用最大可能的长度。

程序现在要你输入你的名字,介绍和电子邮件地址。密码将根据以上输入的内容产生出来。你可以在将来改变这些设置。见钥匙管理。你应该用一个较长的真实的电子邮件地址,因为以上完整的用户身份识别(包括名字,介绍和电子邮件地址)都被签名。如果你修改了地址,签名就将与修改后的内容不符。最后一点,你可以输入一些介绍性内容。在此你输入什么都行,可以相当有用。

最后,你得敲入密码,或称通行字(实际上,由于允许使用空格,叫作通行句更合适)。该密码使你可以使用与你的密钥有关的各项功能。一个好的通行句具有下列要素:

  • 长度要长,

  • 包含特殊字符(非英文字母或阿拉伯数字),

  • 要是某种特殊的东西(不能是姓名),

  • 要很难被猜到(因此请万勿使用姓名,生日,电话号码,信用卡号码,支票帐号号码,小孩的姓名或人数等)

在通行句中,用大小写混杂的方式你可以进一步增进安全。当你想出密码时,一定要保证你不会忘掉它。如果你忘掉了,发给你的讯息就再也没法解密因而再也没法读了,你的密钥也再也用不成了。产生包含这个信息的某种形式的证书可能是一种明智之举。(当然要小心不要让别人得到你的通行句)。见取消钥匙.

在上述所有都输入之后,系统开始产生钥匙。这会花一些时间。在这段时间,它需要收集许多随机数据。如果你在这段时间在另一个窗口工作,你就可以帮助系统收集随机数据。正如你现在已经懂得的,产生出的钥匙总是不同的。如果你在现在和五分钟后输入完全相同的数据来产生钥匙,你会得到两把不同的钥匙。现在你一定明白为什么你不应该忘记你的通行句了。