聊聊對稱加密和非對稱加密

最近在知乎上讀了一篇講非對稱加密的帖子?如何用通俗易懂的話來解釋非對稱加密??正好借此機(jī)會來總結(jié)下對稱加密和非對稱加密的知識。

對稱加密

在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。對稱加密的優(yōu)點是效率更高;缺點是加解密雙方使用相同的密鑰,對密鑰保存和傳輸?shù)陌踩砸筝^高。

非對稱加密

加密和解密使用的是兩個不同的密鑰,這兩個不同的密鑰一個叫作公開密鑰,另一個叫私有密鑰,公開密鑰對外公開,任何人均可獲取,而私有密鑰則由自己保存。公鑰和私鑰都是成對出現(xiàn)的,用公鑰加密的內(nèi)容只能用私鑰解密,而用私鑰加密的內(nèi)容也只能用公鑰解密。

例如 A 有公鑰和私鑰兩把鑰匙,他把公鑰給了他的朋友 B,如果 B 想給 A 發(fā)送信息,只要用公鑰加密發(fā)送信息,只要 A 的私鑰不泄露,信息就是安全的,即使落在別人手里,也無法解密。

數(shù)字簽名

數(shù)字簽名就是對非對稱加密和摘要算法的一種應(yīng)用。

摘要算法

摘要算法是將任意長度的一塊數(shù)據(jù)轉(zhuǎn)換為一個定長的、不可逆轉(zhuǎn)的數(shù)字,其長度通常在 128~256 位之間。摘要算法有如下特點:

只要源文本不同,計算得到的結(jié)果,必然不同(或者說機(jī)會很少)。

無法從結(jié)果反推出源數(shù)據(jù)。

摘要算法用于對比信息源是否一致,因為只要源數(shù)據(jù)發(fā)生變化,得到的摘要必然不同。

簽名

為了防止發(fā)布內(nèi)容中途被篡改,發(fā)布者可以通過摘要算法提取發(fā)布內(nèi)容的摘要,用私鑰加密之得到密文即簽名,這時候?qū)⒓用軆?nèi)容、簽名以及公鑰一起發(fā)布出去。

接收者收到數(shù)據(jù)時,首先驗證公鑰是否是發(fā)布者的公鑰,然后用公鑰對密文進(jìn)行解密,得到摘要,使用發(fā)布者對文本同樣的摘要算法得到摘要文本,比對摘要是否一致即可確認(rèn)信息是否被篡改或者是指定發(fā)布者發(fā)布的。

還有個問題是怎么確認(rèn)公鑰沒有被中途替換,是合法的?

數(shù)字證書

數(shù)字證書就是網(wǎng)絡(luò)通訊中標(biāo)志通訊各方身份信息的一系列數(shù)據(jù),其作用類似于現(xiàn)實生活中的身份證。它是由一個權(quán)威機(jī)構(gòu)發(fā)行的,人們可以在交往中用它來識別對方的身份。

HTTPS

HTTPS 其實是有兩部分組成:HTTP + SSL/ TLS,也就是在 HTTP 上又加了一層處理加密信息的模塊。服務(wù)端和客戶端的信息傳輸都會通過 TLS 進(jìn)行加密,所以傳輸?shù)臄?shù)據(jù)都是加密后的數(shù)據(jù)。

RSA 性能是非常低的,原因在于尋找大素數(shù)、大數(shù)計算、數(shù)據(jù)分割需要耗費很多的 CPU 周期,所以一般的 HTTPS 連接只在第一次握手時使用非對稱加密,通過握手交換對稱加密密鑰,在之后的通信走對稱加密。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容