GPG 密钥对生成:加号和减号是什么意思?

ibl*_*lue 8 gpg

我刚刚生成了一个新的 GPG 密钥对,gpg 显示了一些随机的加号、减号、大于、小于和抑扬符符号。我一直想知道他们是什么意思。你能给我解释一下吗?

iblue@nerdpol:~$ gpg --gen-key
[... snip ...]

We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
.........+++............<+++++>.+++++...............>..+++++..<
...+++++............>+++++<.+++++.....................<+++++..>
.................................................+++++^^^^
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 12

这些是来自密钥生成过程的进度指示。由于密钥生成可能很慢,因此您会得到一些动画显示。显示的细节非常模糊,除了(一点点)用于调试 GPG 的某些非常特定的部分外,没有任何用处。

您正在看到El Gamal密钥对生成。GPG 需要生成多个具有特定数学属性的数字。其中一些数字,例如质数,是通过反复试验生成的(生成大约正确范围内的随机数,测试它是否具有必要的属性,req)。GPG 打印:

  • 成功生成素数或生成器后的换行符;
  • <并且>如果一个随机生成的素数拒绝在适当的范围内并非;
  • ! 如果素数因为根本不适合而被拒绝;
  • ^ 尝试候选生成器时;
  • .如果随机生成的候选素数p结果不是素数并且 GPG 尝试p +2;
  • : 如果随机生成的候选素数结果不是素数并且 GPG 尝试新的随机数;
  • . 如果简单的素性测试失败;
  • + 如果长时间的素性测试成功。

如果您想详细清单,看看来电progresscipher/dsa.ccipher/elgamal.ccipher/primegen.c在GPG源。