本文主要介绍RSA算法的加解密、签名验签,RSA是公钥密码体制或非对称算法体制
RSA加解密算法
1、随机选择两个大素数p和q,而且保密;
2、计算n=pq,将n公开;
3、计算 φ ( n ) = ( p − 1 ) ( q − 1 ) \varphi(n)=(p-1)(q-1) φ(n)=(p−1)(q−1),对 φ ( n ) \varphi(n) φ(n)保密;
4、随机地选取一个正整数e, 1 < e < φ ( n ) 且( e , φ ( n ) = 1 1<e<\varphi(n)且(e,\varphi(n)=1 1<e<φ(n)且(e,φ(n)=1,将e公开;
5、根据 e d = 1 m o d φ ( n ) ed=1\quad mod\quad \varphi(n) ed=1modφ(n),求出的,并对d保密。
6、加密运算 C = M e m o d n C=M^e\quad mod \quad n C=Memodn
7、解密运算 M = C d m o d n M=C^d\quad mod\quad n M=Cdmodn
其中公开加密密钥 K e A = < n , e > {K_e}_A=<n,e> KeA=<n,e>,保密的解密密钥(私钥) K d A = < n , d > {K_d}_A=<n,d> KdA=<n,d>。
RSA数字签名
设M为明文,那么
A对M的签名过程是:
S A = D ( M , K d A ) = ( M d ) m o d n S_A=D(M,{K_d}_A)=(M^d)mod\quad n SA=D(M,KdA)=(Md)modn
验证签名的过程是:
E ( S A , K e A ) = ( M d ) e m o d n = M E(S_A,{K_e}_A)={(M^d)}^emod\quad n=M E(SA,KeA)=(Md)emodn=M