「證明」原根和離散對數相關性質及證明


先定義階的概念:如果$gcd(a,p)==1$,那么對於方程$a^r \equiv 1 (mod\ p)$來說,首先根據歐拉定理$ a^{\phi(p)}\equiv 1 (mod\ p) $,解一定存在所以$ r\leq \phi(p) $,最小的$r$稱為$a$關於$p$的階,記作$ ord_p(a) $

 

定義原根概念:一個模$ p $意義下的$ 0->p-1 $次冪各不相同,取遍$ [0,p-1] $,也就是說$ ord_p(g)=\phi(p) $。

先說一下什么樣的數具有原根。

結論是:對於奇質數$ p $,有原根的數是:$ 2,4,p^e,2p^e $證明比較麻煩,$Niven$和$Zuckerman$證明,略去過程。

因為最小原根一般都比較小,所以可以直接枚舉出來,而這種方法有時候就顯得過於慢。

怎么更快。

有一個結論可以用:對於一個有原根的數$p$,如果$g$的$\phi(p)$的所有因子次方在$mod\ p$條件下均不為1,那么$g$是$p$的原根。

證明:首先結論可以轉化為,如果對於任意的$b|\phi(p)$,均不滿足$ g^b \equiv 1 (mod\ p)$那么,對於任意的$1\leq b\leq\phi(p)-1$ ($b$不滿足$b|\phi(p)$),均不滿足$g^b \equiv 1 (mod\ p)$。

反證:

  假設存在一個$b$,($b$不滿足$b|\phi(p)$),滿足$g^b \equiv 1 (mod\ p)$,設其中小的為$c$,那么$g^c\equiv 1 (mod\ p)$成立。

  令$d=\phi(p)-c,d>=c$

  根據歐拉定理。

  $ g^d \equiv g^{\phi(p)-c} \equiv g^{-c} \equiv 1 (mod\ p) $

  引理:$c|d$不成立。

  反證:假設成立。

    令$d=kc$

    那么:$\phi(p)=d+c=(k+1)c$

    不滿足$c|\phi(p)$。

    所以假設不成立。

  引理$c|d$不成立得證。

  那么$gcd(c,d)\leq c$

  因為:

  $g^c \equiv 1 (mod\ p)$

  $g^d \equiv 1 (mod\ p)$

  那么:

  $g^{c-d} \equiv 1 (mod\ p)$

  模擬更相損益術重復相減得到最終的$gcd$的過程,發現最終結果是:

  $ g^{gcd(d,c-d)} \equiv g^{gcd(c,d)} \equiv 1 (mod\ p) $;

  因為$gcd(c,d)<c$與假設的$c$是最小的$b$不成立。

  所以假設不成立。

證畢。

所以用這種方式可以較快的驗證原根。

 

int primert(int p,int phi)
{
    int d=0;
    for(int i=2;1LL*i*i<=phi;i++)
        if(phi%i==0)
            dp[++d]=i,dp[++d]=phi/i;
    for(int i=2;;i++)
    {
        int j;
        for(j=1;j<=d;j++)
            if(qw(i,dp[j],p)==1)
                break;
        if(j==d+1) return i;
    }
    return 0;
}
速求原根代碼

 

關於離散對數,也稱作指標。

定義概念:如果$g$是$p$的一個原根,那么對於方程$g^x \equiv a(mod p)$的解$x$,稱$x$為對模$p$到基$g$上的$a$的一個離散對數或指標。記作$ind_{p,g}(a)$

 

離散對數定理:當且僅當$x \equiv y (mod\ \phi(p))$成立時,$ g^x \equiv g^y (mod\ \phi(p)) $成立。

(當且僅當和充分必要是等價表述)

先證必要性:因為$g$的各個次冪在$mod\ p$條件下各不相同,而以$\phi(p)$為循環節,那么也就是說在每個長度為$\phi(p)$的循環節中都存在某一個值和之前的循環節中的某個值相同,如果$x$和$y$在$mod\ phi(p)$條件下不同余,他們就不可能的到相同的同余於$p$的g的次方的答案。

再證充分性:

  假設$x \equiv y(mod \phi(p))$成立。

  那么:

  $ g^x \equiv g^{y+k \phi(p)} $   $(mod\ p) $

    $ \equiv g^y (g^{\phi(p)})$  $(mod\ p)$

    $ \equiv g^y 1^k $           $(mod\ p)$

    $ \equiv g^y      $          $(mod\ p)$

  導出結論,證明充分。

這是離散對數定理。

寫一下推論。

  $x^A \equiv B (mod\ p) \Leftrightarrow Aind_{p,g}(x) \equiv ind{p,g}(B) (mod\ p)$

於是我們成功的把高次同余方程等價轉化為了線性同余方程,而離散對數可以用$BSGS$算法求得。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM