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

Cryptography PyCrypto:有多少随机数据被认为是安全的?,cryptography,rsa,public-key-encryption,pycrypto,Cryptography,Rsa,Public Key Encryption,Pycrypto,我正在PyCrypto中使用RSA实现。对于加密(self,plaintext,K)方法,K是随机数据的一个参数。我想知道需要传递多少随机数据才能将加密数据视为安全数据。例如,在我的实现中,我通过Crypto.Util.number模块传递1024位的强素数,如下所示: enc_data = public_key.encrypt(data, number.getPrime(1024)) 这被认为是“足够安全”吗 谢谢RSA实现没有使用K参数。你可以忽略它;RSA实现确实如此 查看pycrypt

我正在PyCrypto中使用RSA实现。对于加密(self,plaintext,K)方法,K是随机数据的一个参数。我想知道需要传递多少随机数据才能将加密数据视为安全数据。例如,在我的实现中,我通过Crypto.Util.number模块传递1024位的强素数,如下所示:

enc_data = public_key.encrypt(data, number.getPrime(1024))
这被认为是“足够安全”吗


谢谢

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\u 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

@汤姆:是的,我正在使用Crypto.PublicKey.RSA。在本文中,它讨论了使用Crypto.Util.number模块生成适当长度的素数。我的问题是什么被认为是“合适的”或“安全的”长度。我下载了这个包,但现在我找不到该类的源代码。我一定是疯了。@Greg你在找数字课吗?它在Lib\site packages\Crypto\utility中。我不明白为什么你需要在这里传递一个素数,如果你的目标是要有一个随机数,那么这个随机数的熵会比这个大小的普通随机数小(而且更难创建)。你有参考资料吗?