作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是否有任何算法可以计算 (bN mod p), 给定 a, b, p(这是一个素数)和 (aN mod p) 但N 未知?
一个简单的方法是离散对数得到 N,但有没有更有效的方法?或者问题等价于离散对数?
最佳答案
总的来说是没有办法的。这是因为你的条件不足以固定bN (mod p)的值。
例如,设 a = 4、b = 2、p = 5 和 aN (mod p) = 1。那么 N 可以是 2 或 4,因为 4 2 = 1(模 5)和 44 = 1(模 5)。但是,22 = 4 (mod 5) 和 24 = 1 (mod 5),所以给出的信息不足以确定 2 的值N.
如果给你更多的信息——也许你被告知a和b的阶数模p相等,或者b的阶数除以a的阶数,或者a是原根——那么有可能.但我不知道执行此操作的有效算法。
关于algorithm - 从 a、b 和 a^n 以模 p 计算 b^n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50765903/
我是一名优秀的程序员,十分优秀!