如果非对称密码中,需要选取的素数,选成合数了,会发生什么?

2017-10-19 19:12:44 +08:00
 CatCode

很多非对称密码都需要选取一个或几个大素数。实践中,这个大素数通过随机数产生,但并不是严格的测试其是不是素数,而是通过 Miller-Rabin 素性测试或其他素性测试的方法来判读的。

那么,假设随机到一个数,它通过了素性测试,但是实际上是一个合数。那么在加密和解密的过程中会发生什么?或者还是在安全性上大打折扣?

(我知道素性测试产生假素数的概率很低,但我只是好奇会发生什么。百度了一下也没有发现什么,Google 我并不知道该查找什么样的关键词)

1519 次点击
所在节点    问与答
5 条回复
lcdtyph
2017-10-19 19:38:02 +08:00
https://crypto.stackexchange.com/questions/25878/rsa-with-probable-primes

简单地说,由于产生了合数之后欧拉函数的计算结果会变得和约定不同,导致第一次使用这个密钥对的时候解密失败。
rrfeng
2017-10-19 19:40:45 +08:00
对端获得的参数就不一样了呀,肯定是失败的。
不知道实现里会不会重新处理这种情况...不过错误反馈上来肯定是连接失败,重连就好了。( ssl 的情况)
hxndg
2017-10-19 19:46:00 +08:00
好问题,我要留个名字.
不过按照我的理解,当选择了合数的时候进行计算时会直接出错,直接就拒绝了.
sbw
2017-10-19 20:00:15 +08:00
刚好之前毕设做的 rsa,刚亲测,解密会失败。
https://github.com/sbwtw/rsa
CatCode
2017-10-20 15:03:11 +08:00
感谢各位 V 友的解答~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/399036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX