thecmt

导航

 

定义:对于一个正整数n,欧拉函数为小于等于n且与n互质的数的个数,记为φ(n)

先说明下以下含义:

1)gcd(a, b) = t,即a和b的最大公因数为t

2)a ≡ b mod n,即a = b + k * n,k∈ Z

再说明下求模的性质

1)若gcd(a, b) = n,则gcd(a + b, b) = gcd(a - b, b) = gcd(a mod b, b) = n

2)a * b mod n = (a mod n * b mod n) mod n,即求模中先进行模运算和乘法运算计算结果相同

3)当n为质数,φ(n) = n - 1,因为1 ~ n - 1都与n互质

开始推导欧拉函数:

证明:设与n互质的数为t1、t2、……、tφ(n),设存在a,满足gcd(a, n) = 1,我们很容易得到a*t1、a*t2、……a * tφ(n),其中每项mod n都不相同(反证法,设其中有x、y,1 <= x < y <= φ(n),满足a * tx mod n = a * ty mod n,即a * (tx - ty) ≡ 0 mod n,又因为gcd(a, n) = 1,则|tx - ty| mod n = 0,而 |tx - ty| < n且不相等,则等式不成立,证毕),且每项 mod n 都满足gcd(a * ti, n) = 1(此处仅对t1进行证明,因为gcd(a, n) = 1,gcd(t1, n) = 1,则gcd(a * t1, n) = 1,也可以得到gcd(a * t1 mod n, n) = 1(性质1)),则可以得到a*t1、a*t2、……a * tφ(n) mod n 后都与n互素,,且数量为φ(n),因此我们可以得出:t1 * t2 * …… *tφ(n) ≡ a * t1 * a * t2 * …… * a*tφ(n) mod n(性质2),两边化简可以得到:

证毕

 

后续:你可以发现费马小定理就是欧拉函数计算公式的特殊情况,即当n(这里用p代替n)质数时,由性质3化简该式可以得到:

欧拉函数计算公式是RSA算法的基础,在学习RSA算法之前能自己推导一下该计算公式对你大有帮助。

 

 

 

 

posted on 2022-09-17 14:56  Thecmt  阅读(605)  评论(0)    收藏  举报