當前位置:
首頁 > 最新 > 區塊鏈中的密碼學:非對稱加密

區塊鏈中的密碼學:非對稱加密

本文由幣乎(bihu.com)優質內容計劃支持

在區塊鏈世界中,我們都能經常看到一個詞,叫非對稱加密,究竟什麼是非對稱加密呢?

非對稱加密,又稱為公開密鑰加密,是密碼學的一種演算法,它需要兩個密鑰,一個是公開密鑰,另一個是私有密鑰;一個用作加密的時候,另一個則用作解密;

由私鑰可以推算出公鑰,但是知道公鑰,在實際情況中不可能推算出私鑰,所以公鑰是公開的,而私鑰由用戶自行秘密保管。

非對稱加密類似於一個公開的郵箱,投遞口是任何人都可以寄信進去的,這可視為公鑰;而只有郵箱主人擁有鑰匙可以打開郵箱,這就視為私鑰。

在了解非對稱加密前,我們需要了解什麼是對稱加密?

對稱加密,也稱為單密鑰加密,是指採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密。

用一個現實世界上的例子是,一個傳統保管箱,開門和關門都是使用同一條鑰匙,這是對稱加密;

但是對稱加密在互聯網中傳輸信息,就會產生兩個問題:

沒有創建安全通道前,如何實現安全通訊?

這是一個先有雞還是先有蛋的問題,如果在先發送加密數據,但是不知道解密密鑰,無法正確解密數據;如果先明文發送密鑰,這種加密又有什麼意義呢?

如何確保是由發送人發出的信息?

在這個虛擬的互聯網中,就算把數據加密,但是如果黑客劫持了你的網路,發送加密信息,這種數據又有什麼意義呢?

為了解決這兩個問題,所以產生了非對稱加密,這個加密思想是 1974 年由 Merkle 提出,1976 年由斯坦福大學的兩位教授 Diffie 和 Hellman 完善。

我們先來看看第一個問題,如何實現安全通訊?

維基百科上舉了一個愛麗絲與鮑伯的例子:

愛麗絲與鮑伯事先互不認識,也沒有可靠安全的溝通渠道,但愛麗絲現在卻要通過不安全的互聯網向鮑伯發送信息

愛麗絲撰寫好原文,原文在未加密的狀態下稱之為明文 x

鮑伯使用密碼學偽隨機數產生一對密鑰,其中一個作為公鑰為 c,另一個作為私鑰 d

鮑伯可以用任何方法發送公鑰 c 給愛麗絲,即使黑客在中間竊聽到 c 也沒問題

愛麗絲用公鑰 c 把明文 x 進行加密,得到密文 c(x)

愛麗絲可以用任何方法傳輸密文 c(x) 給鮑伯,即使伊夫在中間竊聽到密文 c(x) 也沒問題

鮑伯收到密文,用私鑰 d 對密文進行解密 d(c(x)),得到愛麗絲撰寫的明文 x

由於黑客沒有得到鮑伯的私鑰 d,所以無法得知明文 x

這個過程簡單來說就是公鑰加密明文 c(x) 只有用私鑰才能解密,即 d(c(x)),最終得出了明文 x。

我們再來看第二個問題,如何確保是由發送人發出的信息?

如果某一用戶使用他的私鑰加密明文,任何人都可以用該用戶的公鑰解密密文;由於私鑰只由該用戶自己持有,故可以肯定該文件必定出自於該用戶。

這就引申了一個概念叫:數字簽名,即只有信息的發送者才能產生的,別人無法偽造的數據,這段數據同時也是對信息的發送者,發送信息真實性的一個有效證明。

由此可見非對稱加密的優點:

創建了一個信息安全通道

為信息發送者提供數字身份的認證

但是缺點也很明顯,計算太複雜,性能欠佳。

常見的公鑰加密演算法有:RSA、橢圓曲線加密演算法、ElGamal等等,使用最廣泛的是RSA演算法。

由公鑰為什麼不能推算出私鑰呢?RSA 演算法又究竟是怎麼實現的呢?這個問題比較複雜,有興趣可以去看一下,華南理工大學的計算機網路安全課程公開密鑰密碼學。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 帶你學本書 的精彩文章:

什麼是比特幣的交易?是賬戶餘額的加減嗎?
關於程序員生涯的思考,30 歲以後的碼農們該何去何從?

TAG:帶你學本書 |