数论基础:模奇素数的二次剩余 (2)

TODO:

解读 Adleman-Manders-Miller square root extraction method
python实现求解模奇素数的二次同余方程
Cipolla-Lehmer and Tonelli-Shanks algorithms 学习

x 2 ≡ a   ( m o d   p ) 的 解 法 x^2 \equiv a\ (mod\ p)的解法 x2a (mod p)

我们假定 a ∈ Q R ( p ) a \in Q_{R}(p) aQR(p),即上面的方程有解

p ≡ 3   ( m o d   4 ) 的 情 形 p \equiv 3\ (mod\ 4)的情形 p3 (mod 4)

数论基础:模奇素数的二次剩余 (2)_第1张图片
实现思路:随机选取 a a a,计算Legendre符号。若Legendre符号等于 1 1 1,那么 a p + 1 4 ( m o d   p ) a^{\frac{p+1}{4}}(mod\ p) a4p+1(mod p) 就是方程的一个解。

p ≡ 5   ( m o d   8 ) 的 情 形 p \equiv 5\ (mod\ 8)的情形 p5 (mod 8)

数论基础:模奇素数的二次剩余 (2)_第2张图片
实现思路:随机选取 a a a,计算Legendre符号。若Legendre符号等于 1 1 1,再按照上图的逻辑来做。

其 他 情 形 其他情形

基本上没有向上面一样的简单方法。
只有上一些数学原理相对复杂的算法:
Tonelli-Shanks algorithms
Cipolla-Lehmer algorithms(原理有点神奇,想学)
Adleman-Manders-Miller square root extraction

实际上如果看懂了这篇文章的内容,AMM算法的原理还是不难理解的。许多手法是很相似的。

你可能感兴趣的:(#,数论知识和相关算法)