1. 程式人生 > >RSA演算法和DH演算法的區別

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即是共享的金鑰。

--------------------- 本文來自 龍骨 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/qq_31780525/article/details/54579439?utm_source=copy