淺談區(qū)塊鏈中用到的幾種加密技術

國網甘肅信通公司創(chuàng)新研發(fā)團隊
王軍
通常我們把密碼學分為古典加密和現代加密。古典加密常見的是字母表移位,在加密傳輸中,其特點是強調方法不可泄露,一旦方法遭遇泄露,則原始加密信息可被獲取與篡改;現代加密是伴隨著計算機的發(fā)展出現的,其特點是強調秘鑰的不可泄露,但加密方法可以公開?,F代加密方法主要分為三類:對稱加密、非對稱加密和單向散列加密。

比特幣的火爆,讓區(qū)塊鏈技術得到不斷地關注、應用和推廣。區(qū)塊鏈的關鍵技術有:P2P網絡協議、共識機制、密碼學技術、賬戶和區(qū)塊的鏈式存儲技術等。其中,密碼學與共識機制最為核心。今天我們來聊一聊密碼學在區(qū)塊鏈中的應用。

通常我們把密碼學分為古典加密和現代加密。古典加密常見的是字母表移位,在加密傳輸中,其特點是強調方法不可泄露,一旦方法遭遇泄露,則原始加密信息可被獲取與篡改;現代加密是伴隨著計算機的發(fā)展出現的,其特點是強調秘鑰的不可泄露,但加密方法可以公開?,F代加密方法主要分為三類:對稱加密、非對稱加密和單向散列加密。

對稱加密

對稱加密指的是加密和解密使用同一秘鑰(即秘鑰A和B相同),即私鑰。常見的對稱加密算法有:DES,AES,3DES等。

非對稱加密

非對稱加密指的是加密和解密使用不同的秘鑰(秘鑰A和B是不一樣),一把作為公開的公鑰,另一把作為私鑰。公鑰加密的信息,只有私鑰才能解密。私鑰加密的信息,只有公鑰才能解密。常見的非對稱加密算法有:RSA,ECC等。

單向散列加密

單向散列加密即不可逆加密算法,又稱為哈希(Hash)算法,其密鑰是由加密散列函數生成的。單向散列函數一般用于消息摘要的產生、密鑰加密等。常見的單向加密算法有:MD5、SHA、CRC-32等。

區(qū)塊鏈用到的加密算法

非對稱加密算法

區(qū)塊鏈中有一個很關鍵的點就是交易內容和交易雙方身份的認證,也就是大家常說的交易雙方如何安全的進行轉賬交易?這里就不得不提到非對稱加密。非對稱加密的私鑰和公鑰功能可以概括為16個字:公鑰加密-私鑰解密、私鑰簽名和公鑰確認。其中公鑰加密-私鑰解密可以實現交易雙方對交易內容的確認;私鑰簽名和公鑰確認可以實現對交易雙方身份的確認(也稱為數字簽名)。

哈希算法

哈希算法是區(qū)塊鏈中應用最多的一種算法,它在交易信息和區(qū)塊的標識、確認、防篡改等方面都有重要的應用。Hash算法有4大基本特性:1.輸入可以是任意長度的字符串序列,但輸出必須為固定長度字符串序列;2.在盡可能短的時間段內(毫秒級,ms)完成加密;3.對于不同的輸入,輸出序列也是不同的。(實際應用中要求碰撞幾率極其微小,同時輸入容納的域也要非常大);4.不可逆,在哈希函數y=Hash(x)中,通過輸入x,可以計算輸出y,但是通過y幾乎反推不到x(如果想要從y逆推x,唯一的方法就是暴力枚舉,在現有的算力下算上幾百年或者更多)。

在區(qū)塊鏈中,哈希算法主要就是把交易數據生成交易摘要(標識),同時哈希算法也對區(qū)塊數據生成區(qū)塊摘要(標識)。當前區(qū)塊里面包含上一個區(qū)塊的哈希值,后面一個區(qū)塊又包含當前區(qū)塊的哈希值,區(qū)塊通過哈希指針相連,形成一個哈希指針鏈表,如下圖:

-PreHash:記錄前一個區(qū)塊的hash地址,也稱為hash。

-Timestamp:對當前區(qū)塊加蓋時間節(jié)點,表明區(qū)塊是在什么時間生成的。

-Hash:記錄前當前區(qū)塊的hash值,當前區(qū)塊的標識符。

-Merkle根:記錄當前區(qū)塊內所有交易信息的數據摘要hash值。

-Nonce:隨機數,碰撞找到滿足特定條件的hash值。

Merkle tree,默克爾樹,哈希算法的另一個重要應用。二叉樹依靠哈希指針建立。樹的頂端叫做默克爾根(Merkle Root),Merkle Root也是一個hash值,它是怎么計算出來的呢?區(qū)塊鏈中對每一筆交易做一個hash計算,然后把每2個交易的hash合并再做hash計算,例如交易A的hash值是h(A),交易B的hash值是h(B),對這2個交易合并Hash后就是h(hA&hb),依次不斷往上合并計算,最后就得到Merkle Root了。

THEEND

最新評論(評論僅代表用戶觀點)

更多
暫無評論