V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
CatCode
V2EX  ›  问与答

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

  •  
  •   CatCode · 2017-10-19 19:12:44 +08:00 · 1641 次点击
    这是一个创建于 2626 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    5 条回复    2017-10-20 15:03:11 +08:00
    lcdtyph
        1
    lcdtyph  
       2017-10-19 19:38:02 +08:00   ❤️ 1
    https://crypto.stackexchange.com/questions/25878/rsa-with-probable-primes

    简单地说,由于产生了合数之后欧拉函数的计算结果会变得和约定不同,导致第一次使用这个密钥对的时候解密失败。
    rrfeng
        2
    rrfeng  
       2017-10-19 19:40:45 +08:00 via Android
    对端获得的参数就不一样了呀,肯定是失败的。
    不知道实现里会不会重新处理这种情况...不过错误反馈上来肯定是连接失败,重连就好了。( ssl 的情况)
    hxndg
        3
    hxndg  
       2017-10-19 19:46:00 +08:00
    好问题,我要留个名字.
    不过按照我的理解,当选择了合数的时候进行计算时会直接出错,直接就拒绝了.
    sbw
        4
    sbw  
       2017-10-19 20:00:15 +08:00
    刚好之前毕设做的 rsa,刚亲测,解密会失败。
    https://github.com/sbwtw/rsa
    CatCode
        5
    CatCode  
    OP
       2017-10-20 15:03:11 +08:00
    感谢各位 V 友的解答~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   946 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:05 · PVG 04:05 · LAX 12:05 · JFK 15:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.