【发布时间】:2011-08-27 17:12:35
【问题描述】:
我在 PyCrypto 中使用 RSA 实现。关于 encrypt(self, plaintext, K) 方法,K 是随机数据的参数。我想知道需要传递多少随机数据才能使加密数据被认为是安全的。例如,在我的实现中,我通过 Crypto.Util.number 模块传递了一个 1024 位的强素数,如下所示:
enc_data = public_key.encrypt(data, number.getPrime(1024))
这是否被认为“足够安全”?
谢谢
【问题讨论】:
-
@Tom 是的,我正在使用 Crypto.PublicKey.RSA。在docs 中,它谈到了使用 Crypto.Util.number 模块生成合适长度的素数。我的问题集中在什么被认为是“合适”或“安全”的长度上。
-
我下载了这个包,但是现在我找不到那个类的源代码。我一定是疯了。
-
@Greg 你在找数字类吗?它在 Lib\site-packages\Crypto\Util
-
我不明白为什么你需要在这里传递一个 素数,如果目标是有一个随机数 - 这将比正常随机数具有更少的熵这个大小的数量(并且更难创建)。
标签: cryptography rsa public-key-encryption pycrypto