PyCrypto:有多少随机数据被认为是安全的?
我正在 PyCrypto 中使用 RSA 实现。对于 encrypt(self, plaintext, K) 方法,K 是随机数据的参数。我想知道需要传递多少随机数据才能使加密数据被认为是安全的。例如,在我的实现中,我通过 Crypto.Util.number 模块传递 1024 位的强素数,如下所示:
enc_data = public_key.encrypt(data, number.getPrime(1024))
这是否被认为“足够安全”?
谢谢
I'm using the RSA implementation in PyCrypto. With regard to the encrypt(self, plaintext, K) method K is a parameter of random data. I want to know how much random data needs to be passed in order for the encryted data to be considered secure. For example in my implementation I am passing a strong prime number of 1024 bits via the Crypto.Util.number module like so:
enc_data = public_key.encrypt(data, number.getPrime(1024))
Is this considered 'secure enough'?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
RSA 实现不使用 K 参数。你可以忽略它; RSA 实现确实如此。
查看 pycrypto-2.3/lib/Crypto/PublicKey/RSA.py 的第 59-60 行,您会看到以下内容:
这证明了
K
(如果提供)将被忽略。官方文档
另外,开发人员在文档中明确声明了这一点。事实上,如果您创建一个公钥
public_key
并输入,您将获得他们的文档,其中明确指出:
The RSA implementation does not use the K parameter. You may ignore it; the RSA implemention does.
Looking at lines 59-60 of
pycrypto-2.3/lib/Crypto/PublicKey/RSA.py
you see the following:Which proves that
K
, if supplied, is ignored.Official documentation
Plus, the developers declare this explicitly in the documentation. In fact, if you create a public key
public_key
and you typeyou will obtain their documentation, which explicitly says: