gpt4 book ai didi

python - 如何使用 GnuPG 快速生成 OpenPGP key 对进行测试?

转载 作者:行者123 更新时间:2023-11-28 16:26:47 25 4
gpt4 key购买 nike

我正在测试一些使用 python-gnupg 的代码加密/签名/解密一些明文,我想即时生成一个 key 对。 GnuPG(当然)在生成 key 对时非常偏执,它从我的系统中吸收了大量的熵。

我找到了 this answerunix.stackexchange.com 上,但使用 rngd/dev/random/dev/urandom 拉取听起来像是个坏主意。

由于我正在测试,所以我不需要很高的安全性,我只需要尽快生成 key 对即可。

一个想法是离线预生成一些 key ,并在我的测试中使用这些 key 。无论如何,我想在执行测试时以编程方式生成我的临时 key 对。

这是我现在使用的代码(也就是说, super 慢而且不适合测试):

from tempfile import mkdtemp
import gnupg

def temp_identity():
identity = gnupg.GPG(gnupghome=mkdtemp())
input_data = gpg.gen_key_input(key_type='RSA', key_length=1024)
identity.gen_key(input_data)
return identity

最佳答案

使用任何方法更改 /dev/random 以退出 /dev/urandom 完全没问题,一旦熵池以适当的随机状态启动(这在硬件 x86 机器上不是问题,但可能需要讨论其他设备)。强烈推荐观看The plain simple reality of entropy -- Or how I learned to stop worrying and love urandom , 32C3 的讲座。

如果您想加速即时 key 生成,请考虑使用较小的 key 大小,例如 RSA 512(1k key 也不是很安全)。这会导致 key 不安全,但如果这对测试没问题——那就去做吧。使用另一种算法(例如,如果您已经拥有 GnuPG 2.1,则使用椭圆曲线)也可能会加快 key 生成速度。

如果你真的想坚持使用 /dev/random 并且较小的 key 大小不能提供足够的性能,你可以很好地预生成 key ,使用 gpg 导出它们 -- export-secret-keys 并导入它们而不是创建新的。

gpg-agent 也知道选项 --debug-quick-random,它似乎适合您的用例,但我以前从未使用过它。来自 man gpg-agent:

--debug-quick-random

This option inhibits the use of the very secure random quality level (Libgcrypt’s GCRY_VERY_STRONG_RANDOM) and degrades all request down to standard random quality. It is only used for testing and shall not be used for any production quality keys. This option is only effective when given on the command line.

关于python - 如何使用 GnuPG 快速生成 OpenPGP key 对进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35987023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com