RSA算法和DH算法的区别

同是非对称算法,非对称算法的根本原理就是单向函数,f(a)=b,但是用b很难得到a。

RSA算法

RSA算法是基于大数难于分解的原理。不但可以用于认证,也可以用于密钥传输。那么用户A和B如何利用RSA算法来传输密钥呢?

1:A产生一个密钥K,用B的公钥加密K,然后将得到的密文发送给B。

2:B用自己的私钥解密收到的密钥,就可以得到密钥。


DH算法

DH算法的出现就是用来进行密钥传输的。DH算法是基于离散对数实现的。用户A和B如何利用RSA算法来传输密钥?

在通信前,用户A和B双方约定2个大整数n和g,其中1,这两个整数可以公开

1)   A随机产生一个大整数a,然后计算Ka=ga mod n。(a需要保密)

2)   B随机产生一个大整数b,然后计算Kb=gb mod n。(b需要保密)

3)   A把Ka发送给B,B把Kb发送给A

4)   A计算K=Kba mod n

5)   B计算K=Kab mod n

由于Kba mod n= (gb mod n)a mod n= (ga mod n)b mod n,因此可以保证双方得到的K是相同的,K即是共享的密钥。

相关推荐
©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页