AMM算法简要理解(Adleman-Mander-Miller Method)
概念引入:
全稱為Adleman-Mander-Miller Method。在1977年他們發表的論文里只涉及了開平方根的方法,開n次方根并沒有很詳細的介紹。《Adleman-Manders-Miller Root Extraction Method Revisited》里三位中國人補充了他們開n次方根的方法。
?可參考論文:AMM算法論文原稿
算法思路:?
一、平方根(≡ a?mod p)
即是我們常說的二次剩余定理的求解,在AMM算法中求解思路如下:
求解步驟如下:
1、由二次剩余定理成立條件可知,? ——(1)成立;
2、我們可以找到一個q值滿足? ?? ——(2);
3、將(1)中表達式開方即可求得? ——(3)
=>由a^2 = 1 mod p? ?==>? ?a = 1or-1 mod p推導可得
4、判斷等于1還是-1:(且奇數時)
當等于1時:不做任何多余操作;
但等于-1時:將(3)式和(2)式相乘成為新的(3)式;
5、將(3)進行重復上式中的3和4操作,直到我們推導得(奇數時)
兩邊同乘(2)式,并開方即是我們所需的x值。
?
二、n次方根()?
1、我們可知費馬小定理:? ——(1)
=>???=> 代入,將a用替換即可代換為(1)式;
2、我們可知AMM算法求解的情況為 r | (p-1) 的情況,所以我們可以寫出以下條件:
p-1 = r^t * s
3、找到一個q值使其滿足??? ——(2)
4、找到一個值,使其滿足 s | (r*-1),可推導得:——(3)
分類討論:
(1)t=1時:
直接兩邊同乘a值,再對兩邊同時開r次方導,帶入(1)式,即可求得x的值;
(2)t>=2時:
=>取(2)式可推導得:
其中K是對(3)式開r次方所有可能解的集合
當我們算Ki^r時,通過歐拉定理,我們可知Ki^r == 1 mod p
=>Ki * Kr-i =,通過歐拉定理可得Ki*Kr-i == 1 mod p
接下來,開始像第一個中解平方根的思路開始求解第二種情況:
1、對(3)式開r次方,得到
2、可得到
兩邊同時乘以Kj可得
即是
?判斷r^(t-j)是否為r,重復進行上述的1和2操作
3、當結束后,我們可得以下等式:
4、兩邊同時乘以a值,可得
帶入(1)式,對兩邊同時開r次方,我們可以求得我們所需的x值:
?得證
?
?
?
總結
以上是生活随笔為你收集整理的AMM算法简要理解(Adleman-Mander-Miller Method)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Postman的API授权、Cookie
- 下一篇: 零跑科技赴港上市:销量“数据打架”,真假