PyCrypto:有多少随机数据被认为是安全的?

时间:2011-08-27 17:12:35

标签: cryptography rsa public-key-encryption pycrypto

我在PyCrypto中使用RSA实现。关于加密(自身,明文,K)方法,K是随机数据的参数。我想知道需要传递多少随机数据才能使加密数据被认为是安全的。例如,在我的实现中,我通过Crypto.Util.number模块传递强大的1024位素数,如下所示:

enc_data = public_key.encrypt(data, number.getPrime(1024))

这被认为是'足够安全'吗?

由于

1 个答案:

答案 0 :(得分:3)

RSA实施使用K参数。你可以忽略它; RSA实施确实如此。

查看pycrypto-2.3/lib/Crypto/PublicKey/RSA.py的第59-60行,您会看到以下内容:

def _encrypt(self, c, K):
    return (self.key._encrypt(c),)

证明K(如果提供)将被忽略。

官方文档

另外,开发人员在文档中明确声明 。实际上,如果您创建公钥public_key并键入

help(public_key.encrypt)

您将获得他们的文档,明确说明:

encrypt(self, plaintext, K) method of Crypto.PublicKey.RSA._RSAobj instance
Encrypt a piece of data with RSA.

...
...

:Parameter K: A random parameter (*for compatibility only. This
 value will be ignored*)
:Type K: byte string or long