
一、什么是對稱加密和非對稱加密
1、對稱加密
在對稱加密算法中,加密使用的密鑰和解密使用的密鑰是相同的。也就是說,加密和解密都是使用的同一個密鑰。
2、對稱加密算法的缺點(diǎn)
1、要求提供一條安全的渠道使通訊雙方在首次通訊時協(xié)商一個共同的密鑰。直接的面對面協(xié)商可能是不現(xiàn)實(shí)而且難于實(shí)施的,所以雙方可能需要借助于郵件和電話等其它相對不夠安全的手段來進(jìn)行協(xié)商;
2、密鑰的數(shù)目難于管理。因?yàn)閷τ诿恳粋€合作者都需要使用不同的密鑰,很難適應(yīng)開放社會中大量的信息交流;
3、對稱加密算法一般不能提供信息完整性的鑒別。它無法驗(yàn)證發(fā)送者和接受者的身份;
4、對稱密鑰的管理和分發(fā)工作是一件具有潛在危險(xiǎn)的和煩瑣的過程。對稱加密是基于共同保守秘密來實(shí)現(xiàn)的,采用對稱加密技術(shù)的貿(mào)易雙方必須保證采用的是相同的密鑰,保證彼此密鑰的交換是安全可靠的,同時還要設(shè)定防止密鑰泄密和更改密鑰的程序。
3、非對稱加密
非對稱加密:指加密和解密使用不同密鑰的加密算法。非對稱加密算法需要兩個密鑰:公鑰(publickey)和私鑰(privatekey)。
公鑰與私鑰是一對存在,如果用公鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私鑰才能解密;如果用密鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公鑰才能解密。因?yàn)榧用芎徒饷苁褂玫氖莾蓚€不同的密鑰,所以這種算法叫作非對稱加密算法。
4、兩種加密體制的特點(diǎn)
非對稱密碼體制的特點(diǎn):算法強(qiáng)度復(fù)雜、安全性依賴于算法與密鑰但是由于其算法復(fù)雜,而使得加密解密速度沒有對稱加密解密的速度快。
對稱密碼體制中只有一種密鑰,并且是非公開的,如果要解密就得讓對方知道密鑰,所以保證其安全性就是保證密鑰的安全。而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了。這樣安全性就大了很多。
假設(shè)兩個用戶要加密交換數(shù)據(jù),雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。
如果企業(yè)中有n個用戶,企業(yè)需要生成n對密鑰,并分發(fā)n個公鑰。由于公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發(fā)將變得 十分簡單。同時,由于每個用戶的私鑰是唯一的,其他用戶除了可以通過"信息發(fā)送者的公鑰"來驗(yàn)證信息的來源是否真實(shí),還可以確保發(fā)送者無法否認(rèn)曾發(fā)送過該信息。非對稱加密的缺點(diǎn)是加解密速度要遠(yuǎn)遠(yuǎn)慢于對稱加密,在某些極端情況下,甚至能比對稱加密慢上1000倍。
非對稱的好處顯而易見,非對稱加密體系不要求通信雙方事先傳遞密鑰或有任何約定就能完成保密通信,并且密鑰管理方便,可實(shí)現(xiàn)防止假冒和抵賴,因此,更適合網(wǎng)絡(luò)通信中的保密通信要求。
二、數(shù)字證書和數(shù)字簽名簡介
1、什么是數(shù)字證書
1.1、數(shù)字證書就是互聯(lián)網(wǎng)通訊中標(biāo)志通訊各方身份信息的一串?dāng)?shù)字,提供了一種在Internet上驗(yàn)證通信實(shí)體身份的方式,數(shù)字證書不是數(shù)字身份證,而是身份認(rèn)證機(jī)構(gòu)蓋在數(shù)字身份證上的一個章或?。ɑ蛘哒f加在數(shù)字身份證上的一個簽名)。
1.2、它是由權(quán)威機(jī)構(gòu)——CA機(jī)構(gòu),又稱為證書授權(quán)(Certificate Authority)中心發(fā)行的,人們可以在網(wǎng)上用它來識別對方的身份。
1.3、數(shù)字證書綁定了公鑰及其持有者的真實(shí)身份,它類似于現(xiàn)實(shí)生活中的居民身份證,所不同的是數(shù)字證書不再是紙質(zhì)的證照,而是一段含有證書持有者身份信息并經(jīng)過認(rèn)證中心審核簽發(fā)的電子數(shù)據(jù),廣泛用在電子商務(wù)和移動互聯(lián)網(wǎng)中。
2、什么是數(shù)字簽名
2.1、數(shù)字簽名是將摘要信息用發(fā)送者的私鑰加密,與原文一起傳送給接收者。接收者只有用發(fā)送者的公鑰才能解密被加密的摘要信息,然后用HASH函數(shù)對收到的原文產(chǎn)生一個摘要信息,與解密的摘要信息對比。
如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改;
否則說明信息被修改過,因此數(shù)字簽名能夠驗(yàn)證信息的完整性。
如果中途數(shù)據(jù)被纂改或者丟失。那么對方就可以根據(jù)數(shù)字簽名來辨別是否是來自對方的第一手信息數(shù)據(jù)。
2.2、數(shù)字簽名是個加密的過程,數(shù)字簽名驗(yàn)證是個解密的過程。
2.3、數(shù)字簽名用來,保證信息傳輸?shù)耐暾?、發(fā)送者的身份認(rèn)證、防止交易中的抵賴發(fā)生。
非對稱加密算法實(shí)現(xiàn)機(jī)密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機(jī)密信息進(jìn)行加密后再發(fā)送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進(jìn)行解密。
三、非對稱加密和對稱加密在HTTPS協(xié)議中的應(yīng)用
3.1、瀏覽器向服務(wù)器發(fā)出請求,詢問對方支持的對稱加密算法和非對稱加密算法;服務(wù)器回應(yīng)自己支持的算法。
3.2、瀏覽器選擇雙方都支持的加密算法,并請求服務(wù)器出示自己的證書;服務(wù)器回應(yīng)自己的證書。
3.3、瀏覽器隨機(jī)產(chǎn)生一個用于本次會話的對稱加密的鑰匙,并使用服務(wù)器證書中附帶的公鑰對該鑰匙進(jìn)行加密后傳遞給服務(wù)器;服務(wù)器為本次會話保持該對稱加密的鑰匙。第三方不知道服務(wù)器的私鑰,即使截獲了數(shù)據(jù)也無法解密。非對稱加密讓任何瀏覽器都可以與服務(wù)器進(jìn)行加密會話。
3.4、瀏覽器使用對稱加密的鑰匙對請求消息加密后傳送給服務(wù)器,服務(wù)器使用該對稱加密的鑰匙進(jìn)行解密;服務(wù)器使用對稱加密的鑰匙對響應(yīng)消息加密后傳送給瀏覽器,瀏覽器使用該對稱加密的鑰匙進(jìn)行解密。第三方不知道對稱加密的鑰匙,即使截獲了數(shù)據(jù)也無法解密。對稱加密提高了加密速度 。
四、完整的非對稱加密過程
假如現(xiàn)在 你向支付寶 轉(zhuǎn)賬(術(shù)語數(shù)據(jù)信息),為了保證信息傳送的保密性、真實(shí)性、完整性和不可否認(rèn)性,需要對傳送的信息進(jìn)行數(shù)字加密和簽名,其傳送過程為:
1、首先你要確認(rèn)是否是支付寶的數(shù)字證書,如果確認(rèn)為支付寶身份后,則對方真實(shí)可信??梢韵?qū)Ψ絺魉托畔ⅲ?br>
2、你準(zhǔn)備好要傳送的數(shù)字信息(明文)計(jì)算要轉(zhuǎn)的多少錢,對方支付寶賬號等;
3、你 對數(shù)字信息進(jìn)行哈希運(yùn)算,得到一個信息摘要(客戶端主要職責(zé));
4、你用自己的私鑰對信息摘要進(jìn)行加密得到 你 的數(shù)字簽名,并將其附在數(shù)字信息上;
5、你隨機(jī)產(chǎn)生一個加密密鑰,并用此密碼對要發(fā)送的信息進(jìn)行加密(密文);
6、你用 支付寶的公鑰對剛才隨機(jī)產(chǎn)生的加密密鑰進(jìn)行加密,將加密后的 DES 密鑰連同密文一起傳送給支付寶;
7、支付寶收到 你 傳送來的密文和加密過的 DES 密鑰,先用自己的私鑰對加密的 DES 密鑰進(jìn)行解密,得到 你隨機(jī)產(chǎn)生的加密密鑰;
8、支付寶 然后用隨機(jī)密鑰對收到的密文進(jìn)行解密,得到明文的數(shù)字信息,然后將隨機(jī)密鑰拋棄;
9、支付寶 用你 的公鑰對 你的的數(shù)字簽名進(jìn)行解密,得到信息摘要;
10、支付寶用相同的哈希算法對收到的明文再進(jìn)行一次哈希運(yùn)算,得到一個新的信息摘要;
11、支付寶將收到的信息摘要和新產(chǎn)生的信息摘要進(jìn)行比較,如果一致,說明收到的信息沒有被修改過;
12、確定收到信息,然后進(jìn)行向?qū)Ψ竭M(jìn)行付款交易,一次非對稱密過程結(jié)束。
五、參考
1、詳解HTTPS是如何確保安全性的?
2、【安全加密技術(shù)】非對稱加密
3、再談加密-RSA非對稱加密的理解和使用
4、一個故事教你看懂什么是數(shù)字證書,它的原理是什么?它的作用是什么?
5、關(guān)于Https協(xié)議中的ssl加密解密流程
6、對稱加密和非對稱加密介紹和區(qū)別
7、理解SSL(https)中的對稱加密與非對稱加密
8、非對稱加密算法
9、基于OpenSSL自建CA和頒發(fā)SSL證書
10、OpenSSL 與 SSL 數(shù)字證書概念貼