簡述區(qū)塊鏈中的加密技術(shù)

眾所周知,比特幣等加密貨幣的快速發(fā)展,離不開去中心化的區(qū)塊鏈,而區(qū)塊鏈的發(fā)展一樣離不開加密技術(shù)幫助。那么今天我們就來了解一下區(qū)塊鏈中的那些加密技術(shù)。

區(qū)塊鏈

哈希算法

哈希算法是一種常見的單向加密算法,它將一串?dāng)?shù)據(jù)加密生成一串固定長度的二進(jìn)制字符串,這段二進(jìn)制字符串就是哈希值,但不能由哈希值還原到原來的輸入數(shù)據(jù)。

密碼學(xué)中的哈希函數(shù)有3個重要的性質(zhì),即抗碰撞性、原像不可逆、難題友好性。

抗碰撞性:是指兩個不同的數(shù)據(jù)在同一哈希函數(shù)作用下,生成相同的哈希值。首先,兩個不同的輸入產(chǎn)生相同哈希值答案是肯定的,但在于它需要像十億年后的所有計算機(jī)一樣來尋找碰撞,以目前計算機(jī)的運(yùn)算能力可以忽略不計。在區(qū)塊鏈中,哈希函數(shù)的抗碰撞性可以用來做區(qū)塊和交易的完整性驗(yàn)證。

不可逆性:是指根據(jù)輸出的二進(jìn)制字符串很難計算出輸入的數(shù)據(jù)。因?yàn)檩敵龅墓V甸L度遠(yuǎn)遠(yuǎn)小于輸入的長度,所以在運(yùn)算過程中會丟棄大量的信息,由于缺失了很多信息,所以根本無法逆向出任何一個輸入值。

難題友好性:是指沒有便捷的方法去產(chǎn)生一個滿足特殊要求的哈希值。通俗地講,就是沒有捷徑,需要一步一步算出來。假如要求得到的哈希結(jié)果以若干個0開頭,那么計算找到前3位均為0的哈希值和找到前6位均為0的哈希值,其所需的哈希計算次數(shù)是呈一定數(shù)量關(guān)系。

哈希算法

常用的哈希算法有MD5、SHA256和RIPEMD等。在區(qū)塊鏈中很多地方用了哈希算法,比如對區(qū)塊計算哈希值、區(qū)塊和交易的完整性驗(yàn)證等等。

對稱加密技術(shù)

對稱加密技術(shù)是采用同一個密鑰,然后使用加密算法對輸入的信息進(jìn)行加密,得到加密后的數(shù)據(jù)。之后,采用相同的密鑰進(jìn)行逆運(yùn)算,可以得到原始的輸入值。

它的特點(diǎn)是使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進(jìn)行加密和解密,要求解密方事先必須知道加密密鑰。

對稱加密技術(shù)

如果有人在傳輸過程中截取了密文和密鑰,就一樣能解密出明文,這就導(dǎo)致了安全性問題。目前區(qū)塊鏈領(lǐng)域最常用的對稱加密算法是AES、PBKDF2和SCRYPT。

非對稱加密技術(shù)

非對稱加密技術(shù)需要兩個密鑰:公鑰和私鑰。公鑰與私鑰是一對,私鑰可以推導(dǎo)出公鑰,而公鑰不可以推導(dǎo)出私鑰。如果用公鑰對數(shù)據(jù)進(jìn)行加密,只有用對應(yīng)的私鑰才能解密;如果用私鑰對數(shù)據(jù)進(jìn)行加密,那么只有用對應(yīng)的公鑰才能解密。簡單的說是“公鑰加密,私鑰解密;私鑰加密,公鑰解密”。

非對稱加密技術(shù)

在區(qū)塊鏈中,數(shù)字簽名就是基于上述非對稱加密技術(shù),不同點(diǎn)在于數(shù)字簽名使用私鑰生成一個簽名,接收方使用公鑰進(jìn)行校驗(yàn)。比如用私鑰解密得到明文后,用私鑰進(jìn)行簽名進(jìn)行回復(fù),收到回復(fù)后用公鑰解密,得到的內(nèi)容與數(shù)據(jù)相同即可證明簽名正確。

因?yàn)楣€和私鑰是成對的,唯一對應(yīng)的,私鑰只有對方擁有,所以對方也不能對簽名進(jìn)行抵賴。

在區(qū)塊鏈技術(shù)中常見的簽名算法是橢圓曲線加密技術(shù)。其算法用對橢圓曲線上的點(diǎn)進(jìn)行加法或乘法運(yùn)算來表達(dá)。

區(qū)塊鏈中私鑰是一個隨機(jī)數(shù),通過橢圓曲線簽名算法生成公鑰。但反向從公鑰計算出私鑰幾乎是不可能的。橢圓曲線簽名算法還具有安全性高和存儲空間占用小的特點(diǎn)。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。