(一)對稱加密(Symmetric Cryptography)
對稱加密是最快速楣富、最簡單的一種加密方式伴榔,加密(encryption)與解密(decryption)用的是同樣的密鑰(secret key)。對稱加密有很多種算法踪少,由于它效率很高,所以被廣泛使用在很多加密協(xié)議的核心當(dāng)中兼犯。
對稱加密通常使用的是相對較小的密鑰集漾,一般小于256 bit。因為密鑰越大纬霞,加密越強(qiáng)驱显,但加密與解密的過程越慢。如果你只用1 bit來做這個密鑰伏恐,那黑客們可以先試著用0來解密栓霜,不行的話就再用1解;但如果你的密鑰有1 MB大胳蛮,黑客們可能永遠(yuǎn)也無法破解,但加密和解密的過程要花費(fèi)很長的時間闻鉴。密鑰的大小既要照顧到安全性茂洒,也要照顧到效率督勺,是一個trade-off。
對稱加密的一大缺點是密鑰的管理與分配智哀,換句話說,如何把密鑰發(fā)送到需要解密你的消息的人的手里是一個問題屯吊。在發(fā)送密鑰的過程中摹菠,密鑰有很大的風(fēng)險會被黑客們攔截。現(xiàn)實中通常的做法是將對稱加密的密鑰進(jìn)行非對稱加密蔽介,然后傳送給需要它的人煮寡。
(二)非對稱加密(Asymmetric Cryptography)
非對稱加密為數(shù)據(jù)的加密與解密提供了一個非常安全的方法,它使用了一對密鑰薇组,公鑰(public key)和私鑰(private key)杈帐。私鑰只能由一方安全保管,不能外泄累铅,而公鑰則可以發(fā)給任何請求它的人站叼。非對稱加密使用這對密鑰中的一個進(jìn)行加密,而解密則需要另一個密鑰投储。比如,你向銀行請求公鑰玛荞,銀行將公鑰發(fā)給你勋眯,你使用公鑰對消息加密,那么只有私鑰的持有人--銀行才能對你的消息解密客蹋。與對稱加密不同的是讶坯,銀行不需要將私鑰通過網(wǎng)絡(luò)發(fā)送出去番电,因此安全性大大提高。
目前最常用的非對稱加密算法是RSA算法辆琅,是Rivest, Shamir, 和Adleman于1978年發(fā)明漱办,他們那時都是在MIT。
雖然非對稱加密很安全涎跨,但是和對稱加密比起來洼冻,它非常的慢,所以我們還是要用對稱加密來傳送消息隅很,但對稱加密所使用的密鑰我們可以通過非對稱加密的方式發(fā)送出去撞牢。為了解釋這個過程,請看下面的例子:
(1) Alice需要在銀行的網(wǎng)站做一筆交易叔营,她的瀏覽器首先生成了一個隨機(jī)數(shù)作為對稱密鑰屋彪。
(2) Alice的瀏覽器向銀行的網(wǎng)站請求公鑰。
(3) 銀行將公鑰發(fā)送給Alice绒尊。
(4) Alice的瀏覽器使用銀行的公鑰將自己的對稱密鑰加密。
(5) Alice的瀏覽器將加密后的對稱密鑰發(fā)送給銀行婴谱。
(6) 銀行使用私鑰解密得到Alice瀏覽器的對稱密鑰蟹但。
(7) Alice與銀行可以使用對稱密鑰來對溝通的內(nèi)容進(jìn)行加密與解密了。
(三)總結(jié)
(1) 對稱加密加密與解密使用的是同樣的密鑰谭羔,所以速度快华糖,但由于需要將密鑰在網(wǎng)絡(luò)傳輸,所以安全性不高瘟裸。
(2) 非對稱加密使用了一對密鑰客叉,公鑰與私鑰,所以安全性高,但加密與解密速度慢兼搏。
(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進(jìn)行加密卵慰,然后發(fā)送出去,接收方使用私鑰進(jìn)行解密得到對稱加密的密鑰佛呻,然后雙方可以使用對稱加密來進(jìn)行溝通裳朋。
原文鏈接:http://www.cnblogs.com/jfzhu/p/4020928.html