區塊鏈的密碼技術有數位簽章演算法和雜湊演算法。數位簽章演算法是數位簽章標準的子集,表示了只用作數位簽章的一個特定的公鑰演算法;而雜湊演算法是將任意長度的二進制明文映射為較短的二進位串的演算法,並且不同的明文很難映射為相同的Hash值。
本教學操作環境:windows7系統、Dell G3電腦。
密碼學技術是區塊鏈技術的核心。 區塊鏈的密碼技術有數位簽章演算法和雜湊演算法。
數位簽章演算法
數位簽章演算法是數位簽章標準的子集,表示了只用來當作數位簽章的一個特定的公鑰演算法。金鑰運行在由SHA-1產生的消息哈希:為了驗證一個簽名,要重新計算訊息的哈希,使用公鑰解密簽名然後比較結果。縮寫為DSA。
數位簽章是電子簽章的特殊形式。到目前為止,至少已經有20 多個國家通過法律認可電子簽名,其中包括歐盟和美國,我國的電子簽名法於2004 年8 月28 日第十屆全國人民代表大會常務委員會第十一次會議通過。數位簽章在ISO 7498-2 標準中定義為: 「附加在資料單元上的一些數據,或是對資料單元所作的密碼變換,這種資料和變換允許資料單元的接收者用以確認資料單元來源和資料單元的完整性,並保護數據,防止被人(例如接收者)進行偽造」。數位簽章機制提供了一種鑑別方法,以解決偽造、抵賴、冒充和篡改等問題,利用資料加密技術、資料變換技術,使收發資料雙方能夠滿足兩個條件:接收方能夠鑑別發送者所宣稱的身分;發送方以後不能否認其發送過該資料。
數位簽章是密碼學理論中的重要分支。它的提出是為了對電子文檔進行簽名,以 替代傳統紙質文檔上的手寫簽名,因此它必須具備 5 個特性。
(1)簽名是可信的。
(2)簽名是不可偽造的。
(3)簽章是不可重複使用的。
(4)簽署的檔案是無法改變的。
(5)簽名是不可抵賴的。
雜湊(hash)演算法
Hash,就是把任意長度的輸入(又叫做預映射, pre-image),透過雜湊演算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,其中散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,但是不可反向推導出輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的訊息摘要的函數。
雜湊(Hash)演算法,它是一種單向密碼體制,即它是一個從明文到密文的不可逆的映射,只有加密過程,沒有解密過程。同時,雜湊函數可以將任意長度的輸入經過變化以後得到固定長度的輸出。哈希函數的這種單向特徵和輸出資料長度固定的特徵使得它可以產生訊息或資料。
以比特幣區塊鏈為代表,其中工作量證明和金鑰編碼過程中多次使用了二次哈希,如SHA(SHA256(k))或RIPEMD160(SHA256( K)),這種方式帶來的好處是增加了工作量或在不清楚協議的情況下增加破解難度。
以比特幣區塊鏈為代表,主要使用的兩個雜湊函數分別是:
1.SHA-256,主要用於完成PoW(工作量證明)計算;
2.RIPEMD160,主要用於產生比特幣位址。如下圖1所示,為比特幣從公鑰產生地址的流程。
更多相關知識,請造訪常見問題欄位!
以上是區塊鏈的密碼技術有數位簽章演算法和什麼演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!