标签:不同 最小公倍数 表示 phi 函数 alpha 公倍数 数论 spl
定义6-1: 设\((a,m)=1,m>0\),那么使得\(a^l\equiv1(mod\;m)\)成立的最小正整数\(l\)称为\(a\)模\(m\)的阶,记为\(ord_m(a)\),或者简记为\(ord(a)\)。
如果\((a,m)=1\),那么\(a\)模\(m\)的阶总是存在的。因为根据欧拉定理,至少有正整数\(\varphi(m)\)满足\(a^{\varphi(m)}\equiv1(mod\;m)\)。
例子: 模10元素的阶
\(a\) | 1 | 3 | 7 | 9 |
---|---|---|---|---|
\(ord(a)\) | 1 | 4 | 4 | 2 |
定理6-1 若\((a,m)=1\),对于任意的正整数\(d\)满足\(a^d\equiv1(mod\;m)\),则有\(ord(a)|d\)。
证明:
通过带余除法将\(d\)表示为\(d=ord(a)q+r,0\le r\lt ord(a)\),我们的目标就是证明\(r=0\)。
\[
\begin{aligned}
1\equiv a^d &\equiv a^{ord(a)q+r}\&\equiv (a^{ord(a)})^q\cdot a^r\&\equiv a^r\mod m
\end{aligned}
\]
如果\(r\ne0\),说明我们找到了比\(ord(a)\)更小的正整数,使得\(a^r\equiv1(mod\;m)\)成立。这显然与整数阶的定义相矛盾,于是\(r=0\),即\(ord(a)|d\)。
根据欧拉定理,我们有\(a^{\varphi(m)}\equiv1(mod\;m)\)。根据定理6-1我们便可以得出结论:\(ord(a)|\varphi(m)\),也就是说整数的阶一定是欧拉函数的因子。
定理6-2 设\((a,m)=1,m>0,r=ord_m(a)\),那么有以下结论成立:
证明:
不妨假设\(s\ge t\),于是我们有
\[
\begin{aligned}
a^s\equiv a^t(mod\;m)&\Leftrightarrow m|a^t(a^{s-t}-1)\\end{aligned}
\]
由于\(a,m\)互素,因此我们还可以得到
\[
m|(a^{s-t}-1)\Leftrightarrow a^{s-t}\equiv1(mod\;m)
\]
根据定理6-1可知\(r|(s-t)\),所以\(s\equiv t(mod\;r)\)。
在\((a,m)=1\)的前提下,上述推导都是等价的,因此结论1成立。
根据结论1,可以很容易得到结论2成立。
接着证明结论3,假设\(a^n\)的阶为\(d\),那么
\[
(a^n)^d\equiv a^{nd}\equiv1\mod m
\]
根据定理6-1,我们得到\(r|nd\),所以
\[
r|nd\Rightarrow \frac{r}{(r,n)}|\frac{n}{(r,n)}d
\Rightarrow \frac{r}{(r,n)}|d
\]
这是因为\(r/(r,n)\)和\(n/(r,n)\)互素。
又因为
\[
(a^n)^{\frac{r}{(r,n)}}\equiv(a^r)^{\frac{n}{(r,n)}}\equiv1\mod m
\]
所以\(d|\frac{r}{(r,n)}\),因此\(d=r/(r,n)\),即结论3成立。
结论3的一个简单推论: 假设\(a\)的阶可以被表示为\(r=r_1r_2\),那么\(a^{r_1}\)的阶为\(r_2\)
\[
ord(a^{r_1})=\frac{r}{(r,r_1)}=\frac{r_1r_2}{(r_1,r_1)}=\frac{r_1r_2}{r_1}=r_2
\]
从最小公倍数的角度理解结论3: 求得\(a^n\)的阶,相当于找到一个最小的正整数\(d\),使得\(a^{nd}\equiv1(mod\;m)\),这也相当于是找到整数\(n\)的一个最小倍数\(nd\)使得同余式成立。根据定理6-1,\(nd\)又一定得是\(r\)的倍数,于是,\(nd\)就只能是\(n,r\)的最小公倍数,根据最小公倍数的公式,我们可以得到
\[
nd=\frac{rn}{(r,n)}\Rightarrow d=\frac{r}{(r,n)}
\]
定理6-3 若\((a,m)=1,(b,m)=1,ord(a)=d_1,ord(b)=d_2\)且\((d_1,d_2)=1\),那么\(ab\)模\(m\)的阶为
\[
ord(ab)=d_1d_2
\]
证明:
假设\(d=ord(ab)\),那么
\[
\begin{aligned}
1\equiv(ab)^{dd_1}&\equiv(a^{d_1})^d\cdot(b^{dd_1})
\equiv b^{dd_1}\mod{m}
\end{aligned}
\]
因此\(d_2|dd_1\),根据\(d_1,d_2\)互素,可以得到\(d_2|d\);同理可得\(d_1|d\)。
所以\(d_1d_2|d\),即\(d\)是\(d_1d_2\)的倍数,根据阶的最小性,可知\(d=d_1d_2\)。
定义6-2 如果\((a,m)=1,ord_m(a)=\varphi(m)\),那么称\(a\)为模\(m\)的原根,简称为\(m\)的原根。
例子: 7的原根:3,5
定理6-4 设\(p\)为奇素数,\(g\)为\(p\)的一个原根,那么\(g^s\)模\(p\)的阶为\((p-1)/(s,p-1)\)。当且仅当\((s,p-1)=1\)时,\(g^s\)为模\(p\)的一个原根。
证明:
因为\(p\)是奇素数,所以\(\varphi(p)=p-1\)。
因为\(g\)是\(p\)的一个原根,所以\(g\)模\(p\)的阶为\(\varphi(p)=p-1\)。
于是根据定理6-2中的结论3,立马就可以得到\(g^s\)的阶为\((p-1)/(s,p-1)\)。
如果\((s,p-1)=1\),那么我们立马可以知道\(g^s\)就是\(p\)的一个原根。反过来,如果\(g^s\)是\(p\)的一个原根,那么也必然有\((s,p-1)=1\)。
原根的个数:
如何寻找一个整数\(m\)的原根?从模\(m\)的简化剩余系中找,对于简化剩余系中的每一个数进行测试,寻找其中阶是\(\varphi(m)\)的整数。
假设模\(m\)存在一个原根\(a\),此时构造集合\(A=\{a,a^2,\cdots,a^{\varphi(m)}\}\)。根据定理6-2的结论2,我们知道集合\(A\)中的\(\varphi(m)\)个元素两两模\(m\)不同余。又因为\((a,m)=1\),所以\((a^s,m)=1(1\le s\le\varphi(m))\),即集合\(A\)中的元素均与\(m\)互素,所以集合\(A\)就是模\(m\)的一个简化剩余系。
因此,我们只需知道一个原根\(a\),就可以通过幂运算得到一个简化剩余系。利用定理6-2中的结论3,我们知道\(a^s\)的阶为\(\varphi(m)/(s,\varphi(m))\)。于是,\(a^s\)是原根当且仅当\((s,\varphi(m))=1\)。
又因为\(1\le s\le\varphi(m)\),因此使得\((s,\varphi(m))=1\)成立的整数\(s\)的个数(即原根的个数)就等于闭区间\([1,\varphi(m)]\)内与\(\varphi(m)\)互素的整数的个数。这显然就是欧拉函数的定义。
综合可知,如果整数\(m\)有原根,那么原根的个数为:\(\varphi(\varphi(m))\)。
定理6-5 素数\(p\)一定存在原根。
证明:
当\(p=2\)的时候,其原根就是1,因此我们只需要考虑\(p\)是奇素数的情况。
模\(p\)简化剩余系\(A=\{1,2,\cdots,p-1\}\)每个元素对应的阶为:\(ord(1),ord(2),\cdots,ord(p-1)\),我们令
\[
d=[ord(1),ord(2),\cdots,ord(p-1)]
\]
由阶的性质与欧拉定理,我们可以得到\(\forall a\in A,ord(a)|\varphi(p)\)。
根据最小公倍数的性质,可以得到\(d|\varphi(p)\),即\(d\le p-1\)。
因为对于任意的整数\(a\in A\),都有\(a^d\equiv1(mod\;p)\),即同余方程\(x^d\equiv1(mod\;p)\)至少有\(p-1\)个根。结合定理3-5可知,\(d\ge p-1\)。因此\(d=p-1\)。
利用算数基本定理,令\(d=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}\),其中\(p_i(1\le i\le k)\)都是素数。
利用最小公倍数的(定理1-11)求法,可以知道对于任意一个\(p_i^{\alpha_i}\)必然来自于某一个\(ord(a_i)(a_i\in A)\),这意味着
\[
\forall 1\le i\le k,\;\exists a_i\in A,p_i^{\alpha_i}|ord(a_i)\Rightarrow
\exists b_i\in\mathbb{N}^*,a_i\in A,ord(a_i)=b_ip_i^{\alpha_i}
\]
利用定理6-2结论3的推论,可以得到\(ord(a^{b_i})=p_i^{\alpha_i}\)。
由于\(p_1^{\alpha_1},p_2^{\alpha_2},\cdots,p_k^{\alpha_k}\)两两互素,根据定理6-3我们可以得到:\(ord(a_1^{b_1}a_2^{b_2}\cdots a_k^{b_k})=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}=d\)。
于是我们找到了模\(p\)的一个原根:\(a_1^{b_1}a_2^{b_2}\cdots a_k^{b_k}\)。
综上可知,模素数的原根一定存在。
定理6-6 整数\(m\)有原根的充要条件是:\(m\)属于下列几种情况之一:
\[
m=2,4,2p^l,p^{l}\;(l\ge1)
\]
其中\(p\)是奇素数。
2的原根是1,4的原根是3。
设\(p\)的原根为\(g\),\(p^l(l\ge2)\)的原根为\(g_1\),\(2p^l\)的原根为\(g_2\),那么
当\(g^{p-1}\not\equiv1(mod\;p^2)\)时,\(g_1=g\);否则,\(g_1=g+p\)。
当\(g_1\)是奇数时,\(g_2=g_1\);否则\(g_2=g_1+p^l\)。
证明如下:
设\(m=\prod{p_i^{\alpha_i}}\),则\(\varphi(m)=\prod{\varphi(p_i^{\alpha_i})}\)。
令\(d=[\varphi(p_1^{\alpha_1}),\varphi(p_2^{\alpha_2}),\cdots,\varphi(p_k^{\alpha_k})]\),那么根据最小公倍数的性质有\(d\le\varphi(m)\),并且\(\varphi(p_i^{\alpha_i})|d\)。
如果一个整数\(a\),满足\((a,m)=1\),说明\(a\)与\(m\)没有大于1的公共素因子,因此\((a,p_i^{\alpha_i})=1\)。
\[
\begin{aligned}
a^d\equiv1\mod p_i^{\alpha_i}& \Rightarrow p_i^{\alpha_i}|(a^d-1)\&\Rightarrow p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}|(a^d-1)\&\Rightarrow m|(a^d-1)\&\Rightarrow a^d\equiv1\mod m
\end{aligned}
\]
如果\(m\)存在一个原根,为了使得\(a^d\equiv1(mod\;m)\)仍然能够成立,必须要求\(\varphi(m)|d\),即\(d\ge\varphi(m)\)。
因此\(d=\varphi(m)\),这意味着\(\varphi(p_i^{\alpha_i})\)两两互素。
又因为在\(p_i\)是奇数的情况下,一定有\(\varphi(p_i^{\alpha_i})=p_i^{\alpha_i}-p_i^{\alpha_i-1}\)为偶数,所以\(m\)一定不能同时有两个或两个以上的奇素数因子,否则它们将会有公因子2。因此,整数\(m\)一定可以被表示成\(m=2^{\alpha}p^\beta\)的形式。
为了保证\(\varphi(2^\alpha)\)和\(\varphi(p^\beta)\)互素,整数\(m\)可以被进一步划分为以下三种情况:
\[
m=2^\alpha,p^\beta,2p^\beta
\]
其中\(p\)是奇素数,以下将分别对这三种情况进行讨论。
已知\(p\)的原根,求\(p^2\)的原根:
根据定理6-5,奇素数一定具有原根,这里假设\(p\)的原根为\(g\)。
我们的目标就是通过\(g\)求得\(p^2\)的一个原根,假设\(g\)在模\(p^2\)下的阶为\(d\),那么\(d|\varphi(p^2)\),\(d|p(p-1)\),并且
\[
g^d\equiv1(mod\;p^2)\Rightarrow g^d\equiv1(mod\;p)\Rightarrow (p-1)|d
\]
所以\((p-1)|d|p(p-1)\)。因此\(g\)在模\(p^2\)下的阶要么是\(p-1\),要么是\(p(p-1)\)。如果\(d=p(p-1)\)显然\(g\)就是\(p^2\)的原根。
对于\(d=p-1\)这种情况,我们考虑\(g+pt\)形式的数,看看是否能够找到合适的\(t\)。假设\(g+pt\)在模\(p^2\)下的阶为\(r\),那么
\[
\begin{aligned}
(g+pt)^{r}\equiv1(mod\;p^2)&\Rightarrow(g+pt)^r\equiv1(mod\;p)\&\Rightarrow g^r+p(\cdots)\equiv1(mod\;p)\&\Rightarrow g^r\equiv1(mod\;p)\&\Rightarrow (p-1)|r
\end{aligned}
\]
此时仍然有\((p-1)|r|p(p-1)\)成立,即\(r=p-1\)或\(r=p(p-1)\)。
\[
\begin{aligned}
(g+pt)^{p-1}&\equiv g^{p-1}+(p-1)g^{p-2}pt+p^2(\cdots)\&\equiv g^{p-1}-g^{p-2}pt\&\equiv 1-g^{p-2}pt\mod p^2
\end{aligned}
\]
只需要\((g+pt)^{p-1}\not\equiv1(mod\;p^2)\),就可以保证\(g+pt\)的阶为\(p(p-1)\)。
因为\((g,p)=1\),所以只要\(p\nmid t\),就可以使得\(g+pt\)的阶为\(p(p-1)\),取\(t=1\)即可。
综上可知,若\(g\)为\(p\)的原根,那么当\(g^{p-1}\not\equiv1(mod\;p^2)\)时,\(g\)是\(p^2\)的原根,否则\(g+p\)是\(p^2\)的原根。
已知\(p^l(l\ge2)\)的原根,求\(p^{l+1}\)的原根:
假设\(p^l(l\ge2)\)的一个原根为\(g\),且\(g\)在模\(p^{l+1}\)的阶为\(d\),仿照之前的证明,我们可以得到\(p^{l-1}(p-1)|d|p^l(p-1)\)。
因为\(g\)是模\(p^l\)的原根,所以
\[
g^{p^{l-2}(p-1)}\not\equiv1(mod\;p^l)
\]
因为\(\varphi(p^{l-1})=p^{l-2}(p-1)\),所以
\[
g^{\varphi(p^{l-1})}\equiv g^{p^{l-2}(p-1)}\equiv1\mod p^{l-1}
\]
因此,存在整数\(t\),使得\(g^{p^{l-2}(p-1)}=1+p^{l-1}t\),那么
\[
g^{p^{l-2}(p-1)}=1+p^{l-1}t\not\equiv1\mod p^l
\Rightarrow p\nmid t
\]
因为
\[
g^{\varphi(p^l)}\equiv g^{p^{l-1}(p-1)}=(1+p^{l-1}t)^p=1+p^lt+p^{l+1}(\cdots)
\]
由于已经知道\(p\nmid t\),所以
\[
g^{p^{l-1}(p-1)}\equiv1+p^lt+p^{l+1}(\cdots)\equiv1+p^lt\not\equiv1\mod p^{l+1}
\]
因此\(d=p^l(p-1)\),即\(g\)在模\(p^{l+1}\)下的阶为\(\varphi(p^{l+1})\),于是\(g\)是\(p^{l+1}\)的一个原根。
我们已经知道对于任意奇素数\(p,p^2\)均存在原根,结合上述我们证明的结论可知,\(p^2\)的原根也是\(p^l(l\ge2)\)的原根。
因此,我们可以得到结论对于任意的\(p^\beta(\beta\ge1)\)(\(p\)是奇素数)都有原根。
已知\(p^{l+1}\)的原根求\(p^l(l\ge1)\)的原根:
假设\(p^{l+1}\)的原根\(g\),因为\(g\)可能大于\(p^l\),因此利用带余除法可以将\(g\)表示为:\(g=p^lt+r(0<r<p^l)\)。
假设\(r\)在模\(p^l\)的阶为\(d\),那么\(d|\varphi(p^l)\),并且\(r^d\equiv1(mod\;p^l)\)。
因此存在整数\(\delta\),使得\(r^d=1+p^l\delta\),于是我们可以得到
\[
r^{pd}\equiv(1+p^l\delta)^p\equiv1+p^{l+1}\delta+p^{l+2}(\cdots)\equiv1\mod p^{l+1}
\]
并且
\[
1\equiv r^{pd}\equiv(g-p^lt)^{pd}\equiv g^{pd}+p^{l+1}(\cdots)\equiv g^{pd}\mod p^{l+1}
\]
因为\(g\)是\(p^{l+1}\)的原根,所以\(\varphi(p^{l+1})|pd\),于是有\(\varphi(p^l)|d\),因此\(d=\varphi(p^l)\)。
综上可知,\(g\)也会是模\(p^l\)的一个原根。
可以验证2的原根为1,4的原根为3。接着我们证明对于其他情况下,不存在原根。
引理 设\(l\ge3\),则5模\(2^l\)的阶为\(2^{l-2}\)。
证明:
5的阶的所有可能值为
\[
2,2^2,\cdots,2^{l-2},2^{\varphi(2^l)}=2^{l-1}
\]
为证明\(5\)的阶为\(2^{l-2}\),就需要说明\(2^r(1\le r\le l-3)\),满足\(5^{2^r}\not\equiv1(mod\;2^l)\)并且\(5^{2^{l-2}}\equiv1(mod\;2^l)\)。
因为对于\(1\le r\le l-3\),都有\(2^r|2^{l-3}\)。因此我们只需要证明\(5^{2^{l-3}}\not\equiv1(mod\;2^l)\)并且\(5^{2^{l-2}}\equiv1(mod\;2^l)\)。
为了证明上述结论,首先证明下面同余式
\[
\forall l\ge3,5^{2^{l-3}}\equiv1+2^{l-1}\mod 2^l
\]
当\(l=3\)时,上述式子成立。
假设当\(l=k\)时,上述式子成立,即
\[
5^{2^{k-3}}\equiv1+2^{k-1}\mod 2^k
\]
于是存在整数\(\delta\),使得\(5^{2^{k-3}}=1+2^{k-1}+2^k\delta\)
\[
\begin{aligned}
5^{2^{k-2}}\equiv(5^{2^{k-3}})^2&\equiv(1+2^{k-1}+2^k\delta)^2\&\equiv1+2^{2k-2}+2^{2k}\delta^2+2^k+2^{k+1}\delta+2^{2k}\delta\&\equiv1+2^k\mod 2^{k+1}
\end{aligned}
\]
即当\(l=k+1\)时,上述式子也成立。于是根据数学归纳法可知,上述式子对于\(l\ge3\)均成立。
可以验证,下面两个式子成立:
\(5^{2^{l-3}}\not\equiv1+2^{l-1}\mod 2^l\)
\(5^{2^{l-2}}\equiv(1+2^{l-1})^2\equiv1\mod 2^l\)
综上可知,当\(l\ge3\)时,5模\(2^l\)的阶为\(2^{l-2}\)。
构造两个集合:\(A=\{5^b|1\le b\le 2^{l-2}\},B=\{-5^b|1\le b\le 2^{l-2}\}\),根据上述我们证明的引理和定理6-2中的结论2,可以知道集合\(A\)内的元素两两模\(2^l\)不同余,集合\(B\)也是如此。
因为\(A\)中的元素模4余1,而\(B\)中的元素模4余-1,所以\(A\)和\(B\)中的元素两两不同余,所以集合\(A\cup B\)中一共有\(\varphi(2^l)=2^{l-1}\)个模\(2^l\)两两不同余的数。
又因为\((5,2)=1\),所以集合\(A\cup B\)内的元素也和\(2^l\)互素。这意味着\(A\cup B\)就是模\(2^l\)的一个简化剩余系。
集合定理6-2的结论3和上述引理,可以知道\(A\cup B\)中元素的阶都不超过\(2^{l-2}(<\varphi(2^l))\),因此模\(2^l\)不存在原根。
假设\(p^\beta\)的一个奇数原根为\(g\),那么\(g\)也是\(2p^\beta\)的原根。
证明如下:
先假设奇原根\(g\)在模\(2p^\beta\)下的阶为\(d\)
因为\(\varphi(2p^\beta)=\varphi(2)\varphi(p^\beta)=\varphi(p^\beta)\),并且\(d|\varphi(2p^\beta)\),所以\(d|\varphi(p^\beta)\)。
因为\(g^d\equiv1(mod\;2p^\beta)\),所以\(g^d\equiv1(mod\;p^\beta)\),于是有\(\varphi(p^\beta)|d\)。
因此\(d=\varphi(p^\beta)\),即\(g\)是\(2p^\beta\)的一个原根。
对于\(p^\beta\)的原根是偶数的情况,即\(g\)是偶数。显然这种情况,\(g\)不是模\(2p^\beta\)的原根,因为偶数和\(2p^\beta\)不互素。
此时考虑\(g+p^\beta\)(奇数),同样假设\(g+p^\beta\)在模\(2p^\beta\)的阶为\(d\),在这种情况下仍然有\(d|\varphi(p^\beta)\),并且
\[
(g+p^\beta)^d\equiv1(mod\;2p^\beta)\Rightarrow (g+p^\beta)^d\equiv1(mod\;p^\beta)
\]
所以
\[
\begin{aligned}
1&\equiv(g+p^\beta)^d\equiv g^d+p^\beta(\cdots)\equiv g^d\mod p^\beta
\end{aligned}
\]
因此\(\varphi(p^\beta)|d\),于是有\(d=\varphi(p^\beta)\),即\(g+p^\beta\)是\(2p^\beta\)的原根。
由定理6-4可知只要知道了素数的一个原根,那么其它的原根也可以通过该原根写出来,因此下面我们讨论如何寻找一个素数的原根。
方法一: 对于\(a=2,3,\cdots,p-1\)进行逐个判断,我们知道一个整数的阶一定是欧拉函数的因子,因此检验整数\(a\)是素数\(p\)的原根方法如下:
(1)求出\(\varphi(p)=p-1\)的所有非平凡因子(即真因子)\(d\)。
(2)对每一个\(d\),都计算\(a^d(mod\;p)\)。
(3)如果每一个\(a^d(mod\;p)\)都不为1,那么\(a\)就是\(p\)的一个原根。
方法二: 定理6-3提供了一个思路,如果已知\(ord_p(a)=u,ord_p(b)=v,(u,v)=1\),并且满足\(\varphi(p)=uv\),那么\(ab\)就是模\(p\)的一个原根。但这个方法并不实用。
方法三: 该方法是一个判断整数是否为原根的充要条件。
如果\(p\)是奇素数,\(q_1,q_2,\cdots,q_k\)为\(\varphi(p)=p-1\)的所有不同素因子,则\(g\)是模\(p\)的原根的充要条件为
\[
g^{\frac{p-1}{q_i}}\not\equiv1\mod p,\;i=1,2,\cdots,k
\]
必要性证明:如果\(g\)是原根,显然\(g^{(p-1)/q_i}\not\equiv1(mod\;p)\)成立,否则\(g\)的阶将小于\(p-1\)。
充分性证明:
假设\(g\)不是原根,那么\(g\)的阶一定是\(p-1\)的某一个真因子\(d\)。
因此存在大于1的正整数\(s\),使得\(p-1=sd\)。因为\((s,p-1)=s>1\),所以\(s\)和\(p-1\)必然存在公共素因子\(q_i\)。
于是
\[
\frac{p-1}{q_i}=\frac{s}{q_i}d\Rightarrow d|\frac{p-1}{q_i}
\Rightarrow g^{\frac{p-1}{q_i}}\equiv1\mod p
\]
因此该充要条件得到证明。
说明: 如果是找合数的原根,那么方法一和方法二也是可以使用的。并且只需要在简化剩余系内寻找即可。
离散对数问题: 已知\(g\)是素数\(p\)的原根,给定\(1<y<p\),求\(x\)使得\(y\equiv g^x(mod\;p)\)。这样的问题称为离散对数问题。
我们知道在实数域上,我们要求解\(x\)就需要进行取对数,即\(x=\log_ay\)。而在数论中我们研究的对象是整数,而整数是离散的,所以称之为离散对数问题。
签名算法: 常见的几种数字签名算法都需要利用到原根的性质,例如:DSA,ElGamal等。
标签:不同 最小公倍数 表示 phi 函数 alpha 公倍数 数论 spl
原文地址:https://www.cnblogs.com/philolif/p/number-theory-6.html