密码学RSA

对称加密算法:加密解密使用同一种算法,加密解密的规则简称密钥
非对称加密算法:迪菲赫尔曼密钥交换(RSA)

互质关系

两个正整数,除了1以外,没有其他公因数,我们就称这两个数是互质关系

欧拉函数

任意给定正整数n,在小于等于n的正整数之中,与n构成互质关系的个数就是欧拉函数φ(n)
如:n = 8,φ(8) = {1,3,5,7} = 4
n = 7,φ(7) = {1,2,3,4,5,6} = 6
n = 56,φ(56) = φ(8) * φ(7) = 4*6 = 24

欧拉函数特点

1.当n是质数的时候,φ(n) = n-1
2.如果n可以分解成两个质数之积,如n = AB,则φ(AB) = φ(A)φ(B) ()
由12两点可得:如果N是两个质数P1和P2的乘积,则φ(N) = φ(P1)
φ(P2) = (P1-1)*(P2-1)

欧拉定理

如果两个正整数m和n互质,那么m的φ(n)次方减去1,可以被n整除。
公式:m^φ(n) % n ≡ 1 ()

费马小定理

如果两个正整数m和n互质,而且n为质数!那么φ(n)的结果就是n-1。
公式:m^(n-1) % n ≡ 1
(费马小定理就是欧拉函数的特殊情况,m和n互质,而且n为质数,φ(n)就可以替换成n-1)

欧拉定理公式转化

m^φ(n) % n ≡ 1
由于1^k ≡ 1 (等式两边同乘以k次方)
m^kφ(n) % n ≡ 1
由于1
m ≡ m (等式两边同乘以m),且满足m m^k*φ(n)+1 % n ≡ m

模反元素

如果两个正整数e和x互质,那么一定可以找到整数d,使得ed-1被x整除,那么d就是e对于x的模反元素 (找到的整数d不止一个)
ed % x ≡ 1
e
d ≡ K*x + 1

结合欧拉定理公式转化,使x等于φ(n)可得

m^kφ(n)+1 % n ≡ m --> m^ed % n ≡ m
(m就是要加密的数据,e和n是公钥,d和n是私钥)

你可能感兴趣的:(密码学RSA)