關於DH和RSA演算法的簡單比較

來源:互聯網
上載者:User

標籤:加解密   RSA演算法   DH演算法   

本文簡單地談下關於安全中最為常用的兩個非對稱式加密的DH演算法及RSA演算法,文中無意於涉及一些數學原理,這個在網上已經有很多文章敘述了,再重複也沒有太多意思(這類文章只要關注兩點,**其一是密鑰產生方法,其二就是資料的加解密公式**),此文僅僅是協助一般使用者能夠明確地區別下這兩種演算法的異同和應用場合,故不會太長。 對於DH和RSA演算法而言,其最大的相同點就在於它們的理論基礎就是“初等數論”,既然是初等那麼就意味著如果需要看懂其原理,我們只要有中學數學基礎就可以了,甚至是初中數學,而不會應用到大學數學的相關內容,你無需關注什麼極限、微分、積分等等,只不過RSA演算法是基於所謂的“歐拉定理”(費馬定理是其特例),而DH中沒有非常明顯的涉及,但其中有兩個內容可能需要證明,本文就不涉及了,都是關於同餘問題的(初等數論中的許多問題都和同餘相關,其中最著名的恐怕是“孫子定理”,或可稱之為”中國剩餘定理“,在任何一般有關數論的書中都會描述)。 那麼不同點在何處呢?其中最顯著的不同之處就是DH用於動態交換密鑰,它其實會在伺服器和用戶端各產生一個金鑰組,也就是兩對密鑰,而且注意它是動態;而RSA只包含一組金鑰組,而且是靜態,即一旦產生了私密金鑰就不會更改,除非顯示地替換,最明顯的就是更換私密金鑰檔案(因為密鑰太長,一般產生後會放到檔案中)。 通過簡單分析,我們就能看出為什麼使用DH演算法產生的共用密鑰是無法擷取的,因為它們分別在伺服器和用戶端的記憶體中(對於共用密鑰,通訊雙方可以通過自我計算即可,不用交換,因為用戶端和伺服器通過計算所得的密鑰是相同的,只要它們交換了各自的公開金鑰),所以除了暴力破解別無它法,而且由於大質數的問題,以及密鑰產生的隨機性(隨機的私密金鑰大小在1到這個大質數減一之間,所以肯定是互質的),故在目前的條件下無法保證破解。 另外,由於RSA運算過於消耗計算資源,所以它只被用於簽名(即只對少量資料進行驗證,如可對數位憑證的部分內容的摘要進行簽名),不會被用於真正的資料內容加密;而DH演算法僅是交換密鑰,產生的密鑰被用於資料的加解密,所使用的對真正資料加解密的對稱演算法一般為AES(SSL、HTTPS通常都使用此演算法,而不太用以前的3DES了);所以在OPENSSL中有所謂密碼編譯演算法套件的說法,它們是用於不同用途的,而且在OPENSSL中有一整套關於大數(Big Number)的計算方法,不過使用者一般不會直接調用吧。

關於DH和RSA演算法的簡單比較

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.