在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

區塊鏈科普:哈希函數算法

如意 ? 來源:以太坊愛好者 ? 作者:zhiachong ? 2020-06-28 09:25 ? 次閱讀

哈希值和哈希函數的概念是初次入門區塊鏈的人常聽到的兩個關鍵詞,而且似乎對安全性來說特別關鍵。(實際上也確實是。)對于像比特幣和以太坊這樣由成千上萬的節點通過 P2P 方法組成的去中心網絡來說,“免信任性” 和驗證效率無疑是關鍵。也就是說,這些系統需要找到方法把信息編碼成緊湊的形式,同時讓參與者能夠安全快速地進行驗證。

比特幣和以太坊網絡所處理的主要內容叫做“區塊”,指的是由交易、時間戳和其他重要元數據所組成的數據結構。比特幣和以太坊網絡的安全性的關鍵一環是:它能將表達網絡全局狀態的大塊信息壓縮成一個簡短的消息。在有需要之時,我們可以高效地驗證這個消息的真實性。這個過程就是用哈希函數來完成的,而得到的結果(消息)就是哈希值。

即使只更改輸入中的一個字符,最后得出的哈希值也會完全不同

密碼學哈希廣泛應用于口令存儲和文件驗證系統。簡單來說,密碼學哈希函數是一種確定性的算法,不論輸入什么值,都能得到一個固定長度的字符串。也就是說,同一個輸入值始終對應同一個輸出值。

對哈希函數來說,重要的不僅是確定性(還有結果的隨機性):即使只更改輸入中的一個比特位,也會導致最終得到的哈希值截然不同。

哈希算法有一個無可回避的問題叫碰撞可能性。因為哈希值是固定長度的字符串,同一個輸出哈希值有可能對應多個輸入。碰撞會造成很嚴重的后果。如果有人能夠按需要發起碰撞攻擊,他就可以用恰當的哈希值將惡意文件或數據偽裝成合法的、能夠通過驗證的文件。好的哈希函數的設計目標是讓攻擊者極難找到方法來找出對應同一個哈希的不同輸入。

哈希計算的效率不應過高,以免讓攻擊者可以更簡單地人為計算出碰撞。哈希算法必須能夠抵御“原像攻擊(pre-image attack)”。也就是說,對于特定哈希值,攻擊者很難通過確定性計算步驟倒推出輸入值(即,原像)。

假設 s = hash(x),倒推 x 應該是近乎不可能的。

總的來說,“好的” 哈希算法需要具備以下 3 個特性:

更改輸入中的一個比特位會產生雪崩效應,導致最后得出的哈希值截然不同

出現哈希碰撞的概率非常低

在無需犧牲抗碰撞性的前提下計算效率過得去

破解哈希算法

哈希算法的初始標準之一是 MD5 哈希。MD5 哈希廣泛應用于文件完整性驗證(校驗和),以及在網絡應用數據庫中存儲經過哈希計算的賬號口令。MD5 的功能非常簡單,因為它會將每個輸入轉換成一個固定的 128 位字符串輸出,并通過多輪簡單的單向操作來計算確定性輸出。由于輸出值長度較短,操作又較為簡單,MD5 很容易被破解,一種常見的攻擊方法叫生日攻擊。

什么是生日攻擊?你有沒有聽說過這樣一個事實?如果你將 23 個人放到一個房間里,其中兩個人生日相同的概率為 50% 。如果將 70 個人放到一個房間里,其中兩個人生日相同的概率高達 99.9% 。這就是我們所說的鴿籠原理(pigeonhole principle),即將 100 只鴿子裝進 99 個鴿籠,必然有兩只鴿子分享同一個鴿籠。也就是說,固定長度的輸出意味著所有輸入輸出組合中一定存在碰撞。

籠子不夠時,鴿子就會湊對

事實上,MD5 的抗碰撞性太差,以至于一臺家用 2.4 GHz 奔騰處理器都能在幾秒內計算出哈希碰撞。此外,由于 MD5 在互聯網早期階段得到了廣泛應用,網絡上有大量 MD5 原像遭到泄漏,通過谷歌搜索它們的哈希值就能找到。

哈希算法的多樣性發展

NSA (沒錯,就是美國國家安全保障局)是哈希算法標準的先驅。安全哈希算法(Secure Hashing Algorithm,SHA1)是最早提出的標準,將輸出值的長度固定在 160 位。遺憾的是,SHA1 只是在 MD5 的基礎上增加了輸出值長度、單向操作的次數和復雜度,但是并沒有作出能夠抵御更強大機器攻擊的根本性改進。

我們如何才能做得更好?

在 2006 年,美國國家標準技術研究所(NIST)舉辦了一場競賽,旨在找到一個本質上不同于 SHA2 的替代標準。因此,SHA3 應運而生,它是 KECCAK 哈希算法的一種方案。

雖然 SHA 3 在名稱上與 SHA1 和 SHA2 一脈相承,但是在本質上差異很大,因為它采用了一種名為海綿結構(sponge construct)的機制。該機制使用隨機排列來吸收并輸出數據,同時為將來用于哈希算法的輸入值提供隨機性。

KECCAK256 海綿結構是如何進行輸入操作的

SHA3 的內部狀態相較于輸出值擁有更多信息,突破了以往算法的局限性。NIST 于 2015 年正式認可了 SHA3 標準。

哈希計算和工作量證明

就整合進區塊鏈協議的哈希算法而言,比較早的比特幣選擇了 SHA256 ,而以太坊采用了改進后的 SHA3 (KECCAK256)作為工作量證明算法。對于采用工作量證明的區塊鏈來說,選擇哈希函數的一大重要標準是哈希運算效率。

使用一類名為專用集成電路ASIC)的硬件,我們可以大幅提高比特幣 SHA256 算法的哈希運算的效率。有很多文章已經闡述了礦池是如何利用 ASIC 的,以及 ASIC 是如何讓協議趨向于計算中心化的。也就是說,工作量證明會激勵計算效率較高的機器聚集成礦池,從而形成較大的哈希算力(算力大小的衡量標準就是礦機在每個時間間隔內可以完成多少次哈希運算)。

以太坊選擇的是改進后的 SHA3 算法(叫做 KECCAK256 )。此外,以太坊的工作量證明算法 Dagger-Hashimoto 被設計成了內存密集型模式,計算硬件需要加大內存才能提高計算效率。

那么,為什么比特幣采用雙重 SHA256 ?有趣的是,比特幣協議(的工作量證明)需要重復運行兩遍 SHA256 算法。請注意,這不是為了抵御生日攻擊,畢竟在 hash(x) = hash(y) 的情況下,hash(hash(x)) = hash(hash(y)) 。雙重 SHA256 旨在抵御長度擴展攻擊。

從本質上來說,所謂的長度擴展攻擊,指的是如果惡意攻擊者知道了某個哈希輸入的長度,就可以在哈希值上添加一個秘密的字符串、欺騙哈希函數從其內部狀態的一個特定部分開始計算。作為 SHA2 算法家族的一員,SHA256 也存在這一缺陷。因此,比特幣采取執行兩遍哈希計算的方式來解決這一缺陷。

SHA3 并非哈希算法競賽取得的唯一突破。雖然最終勝出的是 SHA3 ,但是 BLAKE 算法緊隨其后,位居第二。對于以太坊 2.0 的分片實現來說,更高效的哈希算法可以說是一項功能性要求,研究團隊對此非常重視。BLAKE2b 哈希算法是 BLAKE 算法的高度升級版本。與 KECCAK256 相比,BLAKE2b 哈希算法在保持高度安全性的同時,在提升效率方面也進行了深入探索。

使用一臺現代 CPU 計算 BLAKE2b 的速度比計算 KECCAK 快了 3 倍。

哈希算法的前景展望

這么看來,無論我們做了什么,無非就是(1)增加內部哈希操作的復雜度,或者(2)增加哈希輸出值的長度,讓攻擊者的計算機無法足夠快地有效計算出碰撞。

我們依靠單向操作的原像模糊性來保護網絡的安全性。也就是說,哈希算法的安全性目標是在有無限多可能的沖突的情況下,讓找出哈希碰撞的難度盡可能高。

如果量子計算時代到來,哈希算法依然安全嗎?

就目前來看,答案是肯定的,哈希算法將經受時間的考驗,抵御量子計算。量子計算能夠解決的是那些嚴格按照某些小技巧或 RSA 加密理論打造底層結構的數學問題。另一方面,哈希算法的內部構造沒那么形式化。

量子計算機確實能夠提高哈希等非結構化問題的計算速度,但它們最終還是會像如今的計算機一樣采取暴力破解手段。

無論我們為協議選擇了哪種算法,我們顯然都在邁向計算高效化的未來。為此,我們必須慎重選擇最合適的工具,使之經受住時間的檢驗。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 哈希函數
    +關注

    關注

    0

    文章

    43

    瀏覽量

    9484
  • 區塊鏈
    +關注

    關注

    111

    文章

    15562

    瀏覽量

    106210
收藏 人收藏

    評論

    相關推薦

    dap協議的基本概念 dap協議在區塊中的應用

    DAP協議,即分布式應用協議(Distributed Application Protocol),是一種旨在促進去中心化應用(DApps)在區塊網絡上的構建和運行的框架。DAP協議的核心目標是提供
    的頭像 發表于 11-22 15:39 ?304次閱讀

    YOGO ROBO智能機器人助力區塊行業發展

    日前,上海靜安區成功舉辦了全國首個區塊主題的場景集市——“數通谷”區塊+醫療場景集市。本次活動匯聚了來自
    的頭像 發表于 11-22 11:33 ?301次閱讀

    RNN的損失函數與優化算法解析

    RNN的損失函數 RNN(循環神經網絡)在處理序列數據的過程中,損失函數(Loss Function)扮演著重要的角色,它可以測量模型在訓練中的表現,并推動模型朝著正確的方向學習。RNN中常見的損失
    的頭像 發表于 11-15 10:16 ?463次閱讀

    華納云:Chord算法如何管理節點間的聯系?

    Chord算法是一種分布式哈希表(DHT)協議,它通過構建一個環狀結構來管理節點間的聯系。以下是Chord算法如何管理節點間聯系的具體方式: 環狀結構: Chord算法將所有節點和鍵
    發表于 11-08 16:03

    華為云、上海鈞達數科 發布區塊數據要素聯合解決方案

    【摘要】 9 月 19 日,在華為全聯接大會 2024 期間,華為云與上海鈞達數科在上海世博展覽館聯合發布了基于華為云區塊打造“區塊數據要素解決方案”。 9 月 19 日,在華為全
    的頭像 發表于 10-09 20:16 ?469次閱讀
    華為云、上海鈞達數科 發布<b class='flag-5'>區塊</b><b class='flag-5'>鏈</b>數據要素聯合解決方案

    科技少年夢 科普粵海行|芯海科技科普基地啟迪智慧未來

    9月28日,由深圳市南山區粵海街道辦事處主辦,深圳市高科技協同創新促進會、深愛人才館策劃執行的“科技少年夢科普粵海行”系列活動之“芯片探秘啟未來”芯海科技產品體驗日成功舉行,吸引了眾多青少年及家長
    的頭像 發表于 10-01 08:07 ?289次閱讀
    科技少年夢 <b class='flag-5'>科普</b>粵海行|芯海科技<b class='flag-5'>科普</b>基地啟迪智慧未來

    京準電鐘:GPS北斗衛星校時服務器助力區塊數據網

    京準電鐘:GPS北斗衛星校時服務器助力區塊數據網
    的頭像 發表于 09-27 10:43 ?291次閱讀
    京準電鐘:GPS北斗衛星校時服務器助力<b class='flag-5'>區塊</b><b class='flag-5'>鏈</b>數據網

    開源物聯網技術--哈希算法MD5加密功能技術分享

    MD5(Message-Digest Algorithm 5)是一種常用的哈希函數,通常用于數據加密和安全校驗等場合。MD5 算法可以將任意長度的消息輸入計算出一個固定長度的摘要,其生成的摘要具有
    的頭像 發表于 09-21 09:57 ?1759次閱讀
    開源物聯網技術--<b class='flag-5'>哈希</b><b class='flag-5'>算法</b>MD5加密功能技術分享

    探索無限可能:華為云區塊 +X,創新融合新篇章

    ? 6 月 23 日,華為開發者大會 2024(HDC 2024)期間,?“「區塊+X」多元行業場景下的創新應用”分論壇在東莞松山湖舉行,區塊技術再次成為焦點。本次論壇以"
    的頭像 發表于 07-09 12:27 ?3989次閱讀
    探索無限可能:華為云<b class='flag-5'>區塊</b><b class='flag-5'>鏈</b> +X,創新融合新篇章

    科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲芯片

    科普EEPROM 科普 EVASH Ultra EEPROM?科普存儲芯片
    的頭像 發表于 06-25 17:14 ?589次閱讀

    區塊互操作標準化應用及經驗,華為云 BCS 獲評團體標準示范項目

    區塊技術發展的關鍵 區塊作為一種分布式賬本技術,具多方共識、分布式存儲、難以篡改等 特點,在金融科技、政務民生、司法存證、供應協同、稅
    的頭像 發表于 02-23 22:00 ?684次閱讀
    <b class='flag-5'>區塊</b><b class='flag-5'>鏈</b>互操作標準化應用及經驗,華為云 BCS 獲評團體標準示范項目

    如何使用Rust從零開發區塊

    區塊的Body部分是一個普通的字符串向量,而頭部看起來更有趣。在所有的字段中,prev_hash 是最有趣的,它存儲了前一個區塊哈希字段值,我們將在這篇文章后面的部分討論它。
    的頭像 發表于 01-22 13:58 ?1317次閱讀
    如何使用Rust從零開發<b class='flag-5'>區塊</b><b class='flag-5'>鏈</b>

    區塊是什么樣的數據結構組織

    區塊是一種特殊的數據結構,它以分布式、去中心化的方式組織和存儲數據。區塊的核心原理是將數據分布在網絡的各個節點上,通過密碼學算法保證數據
    的頭像 發表于 01-11 10:57 ?2283次閱讀

    區塊技術發展現狀和趨勢

    進行詳盡的分析。 一、區塊技術的起源和原理 區塊技術最早在2008年由中本聰提出,而該技術的最著名應用就是比特幣。比特幣是基于去中心化的區塊
    的頭像 發表于 01-11 10:31 ?2348次閱讀

    區塊系統軟件開發與應用

    區塊技術是近年來備受矚目的創新技術,被廣泛應用于金融、供應管理、物聯網等領域。區塊系統軟件開發是實現
    的頭像 發表于 01-10 18:18 ?2550次閱讀
    主站蜘蛛池模板: 亚洲二区视频| 伊人久久大香线蕉资源| 国产精品久久久久天天影视| 久久免费精品| 777影院| 欧美黄色精品| 亚洲一区免费视频| 美女扒开下面让男人捅| 中文字幕第8页| 四虎成人在线视频| 黄色网址日本| www.碰| 亚洲综合图片人成综合网| 黄视频在线观看网站| 熊出没之环球大冒险旧版免费观看| 四虎4hu永久免费国产精品| 欧美成人免费全部观看天天性色| 黄色美女网站在线观看| 午夜影院在线观看免费| 国产精品福利午夜在线观看| 91av视频| 午夜免费福利片| 另类视频色综合| 97爱爱| 久久精品免看国产| 一区卡二区卡三区卡视频| 伊人成综合| 欧美人与禽| 91一区二区三区四区五区| 久久久久女人精品毛片九一| 综合欧美一区二区三区| 亚洲色图久久| 免费观看a黄一级视频| 97色爱| 在线视频91| 一级毛片aaaaaa视频免费看| 欧美猛妇色xxxxxbbbb| 在线观看免费高清| 在线观看h网站| 中国业余老太性视频| 麻豆国产三级在线观看|