预备知识:
欧拉函数
在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(其中φ(1)=1)
通式为:其中p1,p2...pn为x所有质因数,x是不为0的整数。
特殊:若n为质数p的k次幂,因为除了p的倍数外,其他数都与n互质。
欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)
当n为奇数时,φ(2n)=φ(n)
当n为质数时,φ(n)=n-1
P.S.积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数。
完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数。
性质:
一 与算数基本定理有关。若将n表示为质因子分解式 n = p1a1p2a2 ...pnan ,则有f(n)=f(p1a1)f(p2a2 )...f(pnan)
二 若r为积性函数且有f(pn)=fn(p),则f为完全积性函数。
欧拉定理(数论)
在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则:应用:用来简化幂的模运算。
例如,计算7222的个位数。
分析:本质上就是求7222≡x(mod 10),而容易知道φ(10)=4。
7222=(74)55 72≡x(mod 10)
72≡x(mod 10)
9
所以答案就是9.
P.S. 费马小定理
a是不能被质数p整除的正整数,则有a(p-1) ≡ 1(mod p),他还有另外一个描述,ap ≡ a(mod p)
证明,p是质数,所以 φ(p) = p-1,带入欧拉即可。
应用:
密码学、信息论
对称加密,即对称算法:又是又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫密码密钥算法或单密钥算法。
非对称算法:也叫公开密钥加密,它是用两个数学相关的密钥对信息进行编码。其中一个密钥为公开密钥(公钥),另一个叫私有密钥(私钥)。
非对称算法运用过程:
1)乙方生成两把密钥,公钥是公开的,任何人都可以获得,私钥是保密的。
2)甲方获取乙方的公钥,然后它对信息加密。
3)乙方得到加密信息后,用私钥解密。
RSA算法
1)选择两个很大的素数P和Q 。
然后计算N=PQ和φ(N)=(P-1)(Q-1)
2)找到一个与φ(N)互质的整数E(也叫“模范元素”)
3)找一个整数D,使得ED ≡ 1 (mod φ(N))
其中公钥是(E,N),密钥是(D,N)
设密文为X,则
加密:XE ≡ Y (mod N)
获得Y
解密:YD ≡ X (mod N)
正确性讨论:
第一,不能直接通过公钥(E,N)推出X是不科学的,会有无数个X(比如23 ≡ 1 (mod 3),你可能推出X=2,4...)
第二,必须尝试推出D
1)ED ≡ 1 (mod φ(N)),只有知道E和φ(N),才能推D
2)φ(N)=(P-1)(Q-1),只有知道P和Q,才能推φ(N)
3)N=PQ,只有对N做因数分解,才能推出P和Q
对大整数的因数分解是一件非常困难的事情。
RSA算法的证明
要证明私钥解密出来的答案一定是正确的X,即证明
证明
网友评论