當新人在學區塊鏈技術的時候,都會聽到哈希和哈希算法,這似乎是無處不在的安全性保證。例如比特幣或者以太坊這種運行去中心化網絡和共識的機器,都會有上萬個節點通過P2P連接,并且需要“無需可信”和可驗證的效率。這些系統需要將信息寫入緊湊的格式,從而通過參與者進行保證安全和快速驗證。
比特幣和以太坊主要的primitive是區塊的notion,這是包含轉賬信息,時間戳和其他重要數據的數據結構。他們安全性的重要部件,就是能夠壓縮網絡全部的狀態信息,變成很短,并且標準的信息,在需要的時候可以進行有效驗證,這就被稱之為哈希。
到處都會使用加密哈希,從密碼存儲到文件驗證系統。使用確定性算法的基本原理,就是使用一個輸入,并且每次都產生一個固定長度的字符串。也就是說,使用同樣的輸入總是會導致同樣的輸出。
確定性不僅對哈希很重要,而且可以改變輸入的單個字符會產生完全不同的哈希。
哈希算法的問題是碰撞(collisions)的必然性。哈希是固定的字符串,意味著對于每個輸入,不同的輸入都會產生同樣的輸出。碰撞(collisions)是不好的。這意味著如果有攻擊者能夠根據需求創建這種collisions,那么他就可以讓欺詐文件或者數據看起來像正確的,合適的哈希,并且冒充合法。優質哈希功能的目標是讓攻擊者很難找到,獲得輸入數據的方法。
計算哈希不應該太簡單,因為這會讓對于攻擊者來說,計算collisions也變得很容易。哈希算法需要對“預攻擊”有抵抗性。也就是說,給定哈希,應該很難計算追溯確定性的步驟來重新產生由哈希創建的數值。
Given s= hash(x), finding x should be near impossible.
概括來看,“好的”哈希算法會有以下3種特性:
-在輸入中改變一個字符,應該會創建雪崩效應,從而導致完全不同的哈希
-很低的概率會產生collisions
-提高效率,但是不會犧牲collision的對抗性
破散哈希
其中一個初始哈希算法標準是MD5哈希,這是被廣泛用來進行文件整合驗證,而且存儲哈希密碼在網頁應用數據庫。這個功能非常簡單,因為輸出是固定的,128個字符串對于每個輸入,并且使用幾輪微不足道的單向運算來計算其確定性輸出。它的輸出長度短,操作簡單,使得MD5徹底易碎,被稱為生日攻擊。
“生日攻擊”是什么?
我們曾經聽過,如果你把23個人放在一個房間,就會有50%的概率,其中的2人會有同樣的生日?將這個數字提升到70人在一個房間,就會有99.9%的概率。這就是我們所說的鴿巢原理,也就說如果把100個各自放到99個箱子,你就必須在1個盒子里面放2個鴿子。換句話說,固定的輸出意味著collisions 可能會找到固定的排序。
其實,MD5對于collision的抵抗是很脆弱的,家庭使用的2.4GHz處理器就可以在幾秒鐘算出哈希collision。而且,對于現在網頁的早期使用,還可以在網絡上創建很多MD5的預圖形,如果搜索哈希,就可以在谷歌上很容易找到。
哈希算法的多樣化和革新
開始:SHA1 &SHA2
NAS被稱為哈希算法標準的先驅,最初的想法是安全哈希算法或者SHA1,創建了160固定長度的輸出。不幸地是,SHA1通過增加了輸出長度,單向操作的數量,還有單向操作的復雜性,從而形成了MD5算法,但是這不會提供任何基礎的提升,來對抗更有力量的機器來嘗試不同的攻擊。
我們怎么才能做得更好呢?
審核編輯:符乾江
-
智能計算
+關注
關注
0文章
178瀏覽量
16468 -
以太坊
+關注
關注
14文章
1838瀏覽量
31974
發布評論請先 登錄
相關推薦
加密算法在網絡安全中扮演什么角色?
深入了解Java泛型——從前世今生到PECS原則
![深入了解Java泛型——從<b class='flag-5'>前世</b><b class='flag-5'>今生</b>到PECS原則](https://file1.elecfans.com/web1/M00/F5/88/wKgZoWc-yI-AH3xTAAAGKrj46JM836.jpg)
無人駕駛的前世今生:一部充滿爭議的革命史
![無人駕駛的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>:一部充滿爭議的革命史](https://file1.elecfans.com//web1/M00/F4/E0/wKgaoWcy7OeAbvjVAAHbcjmLvL0435.png)
華納云:Chord算法如何管理節點間的聯系?
400Hz中頻電源前世今生未來
帶你揭秘:功率放大器的前世今生~
![帶你揭秘:功率放大器的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>~](https://file.elecfans.com/web2/M00/43/14/pYYBAGJ8ZjKAAv8ZAAAYa7MwZKc717.jpg)
什么是默克爾樹(Merkle Tree)?如何計算默克爾根?
![什么是默克爾樹(Merkle Tree)?如何計算默克爾根?](https://file1.elecfans.com/web2/M00/08/98/wKgZomb5BIOAUyZlAABq4c1F4ng416.png)
開源物聯網技術--哈希算法MD5加密功能技術分享
![開源物聯網技術--<b class='flag-5'>哈希</b><b class='flag-5'>算法</b>MD5加密功能技術分享](https://file1.elecfans.com//web2/M00/08/0B/wKgaombtOz-ASVxHAABR-lJVFg0463.jpg)
燒結銀膠成為功率模塊封裝新寵
“寧”聚創新,“融”耀未來——康寧熔融博物館亮相DIC 2024
![“寧”聚創新,“融”耀<b class='flag-5'>未來</b>——康寧熔融博物館亮相DIC 2024](https://file1.elecfans.com//web2/M00/F8/E2/wKgaomaGDwyAMuV9AAV3Fpz-YN0946.png)
嵌入式系統的前世今生
![嵌入式系統的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>](https://file.elecfans.com/web2/M00/20/B3/pYYBAGGfNNmAK-PZAAJsGM5Cgk0227.jpg)
炬芯科技趙新中:無線音頻SoC的AI算法未來和應用
![炬芯科技趙新中:無線音頻SoC的AI<b class='flag-5'>算法</b><b class='flag-5'>未來</b>和應用](https://file1.elecfans.com//web2/M00/C7/B7/wKgZomYWA-qAS7t5AACDSoyjZcI93.jpeg)
FPGA中競爭與冒險的前世今生
探索世界軍用無人機的前世今生
機器人的前世今生
![機器人的<b class='flag-5'>前世</b><b class='flag-5'>今生</b>](https://file1.elecfans.com/web2/M00/B9/D4/wKgZomWObcGAT4vNAAAa9Q1XWhw498.png)
評論