简介
RSA(
发明数学家名字第一字母合起来的简写)
算法属于非对称加密算法,亦即加解密使用的密钥不同,使用公钥密码体制,加密时使用公钥,解密时使用私钥,RSA
基于欧拉定理实现,算法可用来加密、数字签名及交换密钥等。
整体加解密流程
加解密流程
身份验证
身份验证加数字加密
欧拉函数与欧拉定理
欧拉函数得到的是某个整数n
,小于等于其本身互质的整数有多少个,用φ(n)
来表示。当n=1
时,φ(n)=1,1
和任何数构成互质关系;当n
为质数时,φ(n)=n-1;
当n
为质数p
的某一次方时,亦即n = p^k (k >= 1),
则φ(n)= p^k – p^(k-1) = p^k*(1 – 1/p)
;当n
为两个质数p1
、p2
之积时,φ(n) =φ(p1p2) =φ(p1)* φ(p2)
;由于任意的正整数,都可以写成一系列的质数的积n = p1^k1 * p2^k2 * … *pr^kr
,φ(n) = n*(1-1/p1)*(1-1/p2)*…*(1-1/pr)
。欧拉定理指出,如果两个正整数a
和n
互质,则a^φ(n) % n = 1
。
RSA
密钥生成
P
和q
为质数,n=p*q
,欧拉定义φ(n) = (p-1) * (q-1)
。e
和d
满足e*d = 1 + k*φ(n),
因此C^d = M^(e*d) = M*(M^φ(n))^k
,当mod n
是M
如果和n
互质M^φ(n)%n = 1(
不互质时也成立,n
的生成特性?e
常用值65537)
。
RSA
加密算法
在使用RSA
加解密时,要求明文不能超过对应的n
。
RSA
解密算法