密碼學簡單入門:對稱加密與非對稱加密到底是什麼?

本文摘自Hackernoon博文《How Does Symmetric and Asymmetric Public KeyCryptography Work?》,作者:Shiva Sai Kumar B。原文鏈接:https://hackernoon.com/how-does-symmetric-and-asymmetric-public-key-cryptography-work-i6dy37pl


我們一直都說區塊鏈能夠保護數據的隱私安全,這是怎麼辦到的呢?靠密碼學。


密碼學使用先進的數學原理方法傳輸和存儲數據,這種存儲方式使得只有掌握編譯規則的人才能讀取和處理數據。


在瞭解區塊鏈相關概念時,我們經常會看到一個術語“非對稱加密”。這個有點拗口的術語是什麼意思?它的原理是什麼?下文將用簡單易懂的例子來為大家科普什麼是非對稱加密。


加密是密碼學中的核心概念,它以一種“除接收者外任何人都無法解密的方式”對消息進行編碼,其他人無法讀取和理解數據格式,以此來保護數據免受攻擊。


據傳,第一個使用密碼學技術的是古羅馬愷撒大帝,他發明了“凱撒密碼(Caesar cipher)”來保護重要的軍事情報。凱撒密碼先將正常的文本內容通過一套規則編譯成密碼文本,然後通過通信渠道發送出去,接收者再用這套規則對密文進行解密。凱撒密碼的編譯規則是通過將字母按順序推後3位來起到加密作用的,如將字母A換作字母D,將字母B換作字母E。只有掌握這套密碼規則的接收者才能理解文本內容,其他人即使拿到了文件也理解不了是什麼意思。


密碼學技術有兩種類型:

1、對稱加密

2、非對稱加密


對稱加密

對稱加密與凱撒密碼技術相同,發送者和接收者使用同一套規則來對數據進行加密和解密。如下圖所示:


密碼學簡單入門:對稱加密與非對稱加密到底是什麼?


但對稱加密技術不是完美的,它有一些缺點。


首先,發送者和接收者都是用同一個密鑰(即同一套編譯規則)。使用同一個密鑰沒問題,問題在於,如果我們想從從“竊聽者”手裡共享密鑰,就會變得很難。


其次,我們使用對稱加密技術來保證數據安全傳輸的同時,也必須將密鑰共享給接收者。但是怎麼把這個“密鑰”安全地分享給接收者呢?這又是一個問題。


為了解決這個問題,於是有了“非對稱加密”,這也是區塊鏈裡常用的密碼學技術。


非對稱加密

非對稱加密比對稱加密複雜一些,它們之間的主要區別是:對稱加密使用共享密鑰來解密數據,而非對稱加密使用“密鑰對”來解密數據。


密鑰對包含兩部分:一個公鑰,一個私鑰


以發送郵件為例,假如我們使用郵箱給其他人發送郵件,首先需要有一個郵箱賬號,並設置一個密碼;接下來,輸入收件人的郵箱賬號;最後,收件人收到郵件並讀取信息。


非對稱加密的流程也和發送郵件一樣。


每個用戶都有一個公鑰,和郵箱用戶名一樣,其他人可以看到或者獲取這個“用戶名”,但無法訪問這個賬戶裡的數據。私鑰就和密碼一樣,只有賬戶擁有者知道。


發送數據時,我們需要使用私鑰(即密碼)和接收者公鑰(即用戶名)。接收者則使用他的私鑰(密碼)和發送者的公鑰(用戶名)來解密數據。整個流程如下圖所示:


密碼學簡單入門:對稱加密與非對稱加密到底是什麼?


區塊鏈不同於郵箱的地方在於:郵箱有一箇中心化的數據庫,如果我們丟失了密碼,還可以通過數據庫找回;區塊鏈則是去中心化的,私鑰一旦丟失就無法找回。


數字簽名

發送郵件後,收件人看到我的郵箱賬號就知道是我發送的。但有一個前提是,如果發送人沒有密碼,就無法發送信息。同樣地,在非對稱加密中,沒有私鑰,就沒有人可以通過你的公鑰發送消息。


當使用私鑰發送數據時,它由我們的“數字簽名”進行簽名。數字簽名(又稱公鑰數字簽名)是隻有信息的發送者才能產生的、別人無法偽造的一段數字串,這段數字串同時也是對信息發送者發送信息真實性的一個有效證明。


簡單一句話總結就是:信息發送者發信息時,會產生一串數字簽名,根據數字簽名,你無法否認這條信息不是你發的。


分享到:


相關文章: