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)的解法 x2≡a (mod p)的解法
我们假定
a
∈
Q
R
(
p
)
a \in Q_{R}(p)
a∈QR(p),即上面的方程有解
1. p ≡ 3 ( m o d 4 ) 的 情 形 p \equiv 3\ (mod\ 4)的情形 p≡3 (mod 4)的情形
实现思路:随机选取
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) 就是方程的一个解。
2. p ≡ 5 ( m o d 8 ) 的 情 形 p \equiv 5\ (mod\ 8)的情形 p≡5 (mod 8)的情形
实现思路:随机选取
a
a
a,计算Legendre符号。若Legendre符号等于
1
1
1,再按照上图的逻辑来做。
3. 其 他 情 形 其他情形 其他情形
基本上没有向上面一样的简单方法。
只有使用一些数学原理相对复杂的算法:
Tonelli-Shanks algorithm
Cipolla-Lehmer algorithm(似乎是引入了复数,对域进行扩张,想学)
Adleman-Manders-Miller square root extraction
…
如果看懂了这篇文章的内容,AMM算法的原理是不难理解的。因为手法是相似的。