很多非对称密码都需要选取一个或几个大素数。实践中,这个大素数通过随机数产生,但并不是严格的测试其是不是素数,而是通过 Miller-Rabin 素性测试或其他素性测试的方法来判读的。
那么,假设随机到一个数,它通过了素性测试,但是实际上是一个合数。那么在加密和解密的过程中会发生什么?或者还是在安全性上大打折扣?
(我知道素性测试产生假素数的概率很低,但我只是好奇会发生什么。百度了一下也没有发现什么,Google 我并不知道该查找什么样的关键词)
1
lcdtyph 2017-10-19 19:38:02 +08:00 1
https://crypto.stackexchange.com/questions/25878/rsa-with-probable-primes
简单地说,由于产生了合数之后欧拉函数的计算结果会变得和约定不同,导致第一次使用这个密钥对的时候解密失败。 |
2
rrfeng 2017-10-19 19:40:45 +08:00 via Android
对端获得的参数就不一样了呀,肯定是失败的。
不知道实现里会不会重新处理这种情况...不过错误反馈上来肯定是连接失败,重连就好了。( ssl 的情况) |
3
hxndg 2017-10-19 19:46:00 +08:00
好问题,我要留个名字.
不过按照我的理解,当选择了合数的时候进行计算时会直接出错,直接就拒绝了. |
4
sbw 2017-10-19 20:00:15 +08:00
刚好之前毕设做的 rsa,刚亲测,解密会失败。
https://github.com/sbwtw/rsa |
5
CatCode OP 感谢各位 V 友的解答~
|