欧拉定理
如果两个正整数m和n互质,那么m的φ(n)次方减去1,可以被n整除。
补充:公约数只有1的两个整数,叫做互质整数。公约数只有1的两个自然数,叫做互质自然数,后者是前者的特殊情形
定理一:
算术函数f如果满足对于任意两个互质的正整数m和n,均有f(mn)=f(m)f(n),就称f为积性函数(或乘性函数)。 如果对于任意两个正整数m和n,均有f(mn)=f(m)f(n),就称为完全积性函数。
定理二:
对于素数n,φ(n)=n−1,因为质数与小于它的每一个正整数都互质
定理三:
定理四:
如果n=pq,而且p,q互质,有φ(n)=φ( p q)=φ(p)φ(q)=(p-1)(q-1)
这一条的证明要用到"中国剩余定理":如果 a (a < p) 与 p 互质,b (b < q) 与 q 互质,c (c < pq) 与 pq 互质,则 c 与数对 (a , b) 是一一对应关系。由于 a 的值有φ(p)种可能,b 的值有φ(q)种可能,则数对(a,b)有φ(p)φ(q)种可能,而c的值有φ(pq)种可能,所以φ(pq)=φ(p)φ(q)
费马小定律
欧拉定理的特殊情况:如果两个正整数m和n互质,而且n为质数!那么φ(n)结果就是n-1。
注:欧拉定理着重表示由m,n和φ(n)推出公式;费马小定律着重表示由公式推出φ(n)
对称加密与非对称加密
对称加密:
加密和解密共用同一个密钥的方式称为对称加密,也称为共享密钥加密
非对称加密:
使用公开密钥进行加密,使用私有密钥进行解密,其中的公开密钥可以随意发布,任何人都可知道,而私有密钥不能让其他人知道,此方式也称为公开密钥加密
RSA算法数学原理
RSA算法可用于公开密钥加密,其原理如下:
导出问题:
令公钥:e 和 n ,私钥:d 和 n, 明文:m ,密文:c;
由公钥加密和私钥解密的过程中知道:m^e mod N = c
,c^d mod n = m
,则可得出m^(e*d) mod n ≡ m
,进而得出m^(e*d-1) mod n ≡ m
由欧拉定理可得m^φ(n) mod n ≡ 1
由上述两式可得ed = k*φ(n)+1
解析问题:
其中e和n是公开的
n会非常大,长度一般为1024个二进制位。(目前人类已经分解的最大整数,232个十进制位,768个二进制位)
要想求出私钥 d 。由于e*d = k*φ(n) + 1
,要知道e、k和φ(n),e是知道的;n也是知道的,由于 n=p1*p2
,必须要算出p1 和 p2,只有将n因数分解才能算出,然后根据欧拉定理得出φ(n) = (p1 -1) * (p2 - 1)
再算出φ(n) ,k是在运算过程中算出的能使d为整数的整数。
RSA算法的优缺点:
优点:相对安全
缺点:速度慢,需要用到一系列的数学运算