對稱加密與非對稱加密

1 對稱加密

對稱加密是最快速、最簡單的一種加密方式,加密與解密用的是同樣的密鑰。對稱加密有很多種算法,由於它效率很高,所以被廣泛使用在很多加密協議的核心當中。

對稱加密通常使用的是相對較小的密鑰,一般小於256 bit。因爲密鑰越大加密越強,但加密與解密的過程越慢。若只用1 bit來做這個密鑰,那黑客們可以先試着用0來解密,不行的話就再用1解密。但密鑰有足夠大,黑客們可能永遠也無法破解,但加密和解密的過程要花費很長的時間。密鑰的大小既要照顧到安全性,也要照顧到效率。

2000年10月2日,美國國家標準與技術研究所選擇了Rijndael算法作爲新的高級加密標準(AES-Advanced Encryption Standard)。

對稱加密的一大缺點是密鑰的管理與分配,換句話說,如何把密鑰發送到需要解密你的消息的人的手裏是一個問題。在發送密鑰的過程中,密鑰有很大的風險會被黑客們攔截。現實中通常的做法是將對稱加密的密鑰進行非對稱加密,然後傳送給需要它的人。

2 非對稱加密

非對稱加密爲數據的加密與解密提供了一個非常安全的方法,它使用了一對密鑰公鑰和私鑰

私鑰只能由一方安全保管,不能外泄,而公鑰則可以發給任何請求它的人。非對稱加密使用這對密鑰中的一個進行加密,而解密則需要另一個密鑰。比如你向銀行請求公鑰,銀行將公鑰發給你,你使用公鑰對消息加密,那麼只有私鑰的持有人銀行才能對你的消息解密。與對稱加密不同的是,銀行不需要將私鑰通過網絡發送出去,因此安全性大大提高。


目前最常用的非對稱加密算法是RSA算法,是Rivest, Shamir, 和Adleman於1978年發明,他們那時都是在MIT。

雖然非對稱加密很安全,但是和對稱加密比起來非常慢,所以還是要用對稱加密來傳送消息,但對稱密鑰可以通過非對稱加密的方式發送出去。請看下面的例子:

1) Alice需要在銀行的網站做一筆交易,她的瀏覽器首先生成了一個隨機數作爲對稱密鑰。
2) Alice的瀏覽器向銀行的網站請求公鑰。
3) 銀行將公鑰發送給Alice。
4) Alice的瀏覽器使用銀行的公鑰將自己的對稱密鑰加密。
5) Alice的瀏覽器將加密後的對稱密鑰發送給銀行。
6) 銀行使用私鑰解密得到Alice瀏覽器的對稱密鑰。
7) Alice與銀行可以使用對稱密鑰來對溝通的內容進行加密與解密了。

3 總結

1) 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由於需要將密鑰在網絡傳輸,所以安全性不高。
2) 非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進行加密,然後發送出去,接收方使用私鑰進行解密得到對稱加密的密鑰,然後雙方可以使用對稱加密來進行溝通。


原貼地址:http://www.cnblogs.com/jfzhu/p/4020928.html


發佈了535 篇原創文章 · 獲贊 1165 · 訪問量 451萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章