非对称加密RSA算法原理和DH密钥交换的简单理解

RSA非对称加密
1)独立的选取两大素数P和Q,计算两者之积N=PXQ
计算φ(N)= (P-1)X(Q-1)
2)选一整数e(1≤e≤φ(N),φ(N)与e互素)使得
de≡1 mod(φ(N))
3)取公钥为(N,e),私钥为(N,d)
加密的过程:
CipherText = M**emod N
plainText = C**emod N
比如取两个素数47和59,两者之积N=2773
φ(N)= 2668
选一整数e=63,对应的d为847
取消息M=244我们看看
c=M**d%n = 244**847%2773 =465
m=c**e%n=465**63%2773 = 244
我们通常称呼多少位数的RSA,通常是指RSA的位数

DH密钥交换:
1)B方产生一个整数P,G,P为素数,G为2或者5,取Xb<P
计算出Yb=G**Xb mod P
2)将P,G和Yb送给另外一方A,A选取Xa<p
计算出Ya=G**Xa mod P,并将Ya返还给A方
3)双方分别计算
K= ((Ya)**Xb) mod P=((Yb)**Xa) mod p 则K为共享密钥
由Xa,Xb计算出Ya,Yb容易,但反过来由Ya,Yb计算出Xa,Xb很难
安全性基于求有限域上求离散对数的难度

《非对称加密RSA算法原理和DH密钥交换的简单理解》

点赞