欧拉函数:对于正整数n,表示不超过n且和n互素的正整数个数。
若m,n互质,。
若n为质数,。
欧拉定理:若n,a为正整数,且n,a互质,则:。
证:对于从1-n中与n互质的数,由小到大排列。
记
1)对于任意,它们对n取模后的余数都不相同。
假设存在
则有,即
能被n整除,又有a与n互质,
小于n,假设不成立。
即有任意,它们对n取模后的余数都不相同。
2)任意与n互质。
假设余数与n有公因子r,则,即
与n非互质,假设不成立。
所以除以n的余数在
中。
由条件1)和2)可以得到
其中
由k与n互质可得,证毕。
一个取模运算:(a^b)%c=((a%c)^b)%c。
rsa算法:
对于两个质数p,q,记n=pq。
则,
寻找一个数e使得1<e<,且e和
互质。
再有数d满足。
(由于e和互质,根据欧拉定理d一种取值是
)
其中(n,e)为公钥。(n,d)为私钥。
对m加密: (1) (注意m小于n,m大于n时????)
对c解密: (2)
证:要证明成立,以
为条件,
可得: (3)
将(3)带入(2)中可得: (4)
要证(4)成立即证: (5)
又由条件可得
(6)
将(6)带入(5)中可得 (7)
因此只需证明(7)成立便可。
当m和n互质时:
有 可由模运算得到
。得证。
当m和n非互质时:
由于n=pq,则可记m=kp。
而且k和q互质:
反证法:由于q为质数,如k与q非互质,则有k=sq,又从上文可知m<n,m=kp=sqp>n。矛盾。
由于k和q互质,有式:成立,可构建式
,
根据式(6)有,
可得 (8),
此处t必能被p整除(将式(8)两边同时除以p即可),记,
带入(8)得:,
又由m=kp,n=pq,可得
证毕。