Sha-256

這個 SHA256 雜湊實現對彩虹表是否安全,暴力攻擊?

  • December 27, 2021

所以我有一個實現,我們有一個 $ 8 $ -字節隨機輸入(完全隨機,不是使用者定義的),我們用它來散列 $ \text{SHA256} $ . 雜湊與許多方共享,以至於我們認為它實際上是公開的,因此我們擔心可能會攻擊以反轉雜湊。

有了這個輸入,有 $ 1.8 \times 10^{19} $ 雜湊。

因此,我對蠻力可行性的計算是在考慮到報告的比特幣挖礦設備和 ASIC 的雜湊率的情況下完成的:

https://en.bitcoin.it/wiki/Mining_hardware_comparison 目前最佳 $ 7,722,000 $ MHash/s 需要 27 天( $ \frac{1.8 \times 10^{19}}{7722000000000 \times 60 \times 60 \times 24} $ ).

https://en.bitcoin.it/wiki/Non-specialized_hardware_comparison 目前最佳 $ 2,568 $ MHash/s 需要 227 年( $ \frac{1.8 \times 10^{19}}{2568000000 \times 60 \times 60 \times 24 \times 365} $ ).

另外,我假設由於比特幣挖礦是 $ \text{SHA256}(\text{SHA256}(x)) $ ,或者上述時間可以大致減半,或者在 ASIC 的情況下可能不夠靈活,無法進行單次雜湊,暴力嘗試將簡單地針對 $ \text{SHA256}(target_{hash}) $ 反而?

至於計算彩虹表,我猜在基本層面,每條記錄都是 $ 40 $ 字節 ( $ 8 $ 字節輸入 + $ 32 $ 字節雜湊),導致 $ 1.8 \times 10^{19} \times (8 + 32) = 7.2 \times 10^{20} $ 字節 $ = 720,000,000 $ 太字節

為了得到這些數字,我已經放了很多腦筋,所以我對它們的準確性並不完全有信心,雖然我已經閱讀了許多有關相關主題的文章,但我擔心它們似​​乎都針對密碼破解,因此不要假設 $ 8 $ 字節輸入實際上是 $ 8 $ 字節的熵,特別是因為它們經常促進字典攻擊。

請問有人可以確認上述數字的準確性以及我的方法是否合理嗎?

TL;DR:64 位熵對於嚴重的攻擊者來說還遠遠不夠

是的,您已經正確計算了最壞的情況。

您的第二個計算不是關於彩虹表,而是關於完整的雜湊表。

現在,如果您使用 SHA-256 散列一個完全隨機的 8 字節字元串,“您能阻止一個嚴重的攻擊者多長時間”。如果攻擊者有足夠的錢,他們可以為此設計自己的 ASIC,或者很好地要求 AntMiner 等公司生產這樣的 ASIC。因此,假設您多付一點錢,您可能會以 1000 美元獲得 1GHash/s(目前 AntMiner 的 S7 以 4.7THash/s 的價格獲得 575 美元 + 能源、網路……目前)。所以要使用一個礦工(1THash/s)破解雜湊,你需要 213 天,而如果你購買其中的 427 個,你最多可以在半天之內破解雜湊,並期望在四分之一天之內破解它平均而言,此時您甚至無法享受他們提供的最高折扣(500 件或更多)。

彩虹桌應該允許安全的快速休息,並通常減少所需的儲存空間 $ 2^{2n/3} $ 和計算要求 $ 2^{2n/3} $ 每次查找或更一般地,給定 $ 2^m $ 儲存,查找時間將在 $ 2^{2(n-m)} $ .

如果你想防禦彩虹表,是不可避免的,因為你需要每個獨特的鹽都有一個完整的彩虹表,這在計算和儲存方面都是密集的。至於彩虹桌的效率,需要完整空間的全通(全部 $ 2^{64} $ 值)來建構表格。有關彩虹表的原始(首次)出版物,請參閱Oechslin的“做出更快的密碼分析時間-記憶體權衡” (PDF)

  1. 採礦 ASIC 不適用於 SHA256 蠻力/彩虹表,它們由初始矽設計固定,僅適用於比特幣雙 sha256 採礦。他們在內部丟棄 10^9 個不合適的雜湊(甚至丟棄未完成的輪次),只是為了提供每個修復匹配標準 1 個
  • 雜湊應該從 0x0000000000xxx 開始 最終塊的唯一合適的解決方案
  • 採礦 ASIC 的外部通信也具有非常差的慢速匯流排鏈路,在大多數情況下是 i2c - 它絕對足以用於採礦,但是即使在 4x100Gbps 介面的情況下,僅下載 1s 的採礦 ASIC 工作以防暴力破解也需要幾天到幾週的時間

ASIC 的速度很快,但如果你想重新設計,添加更多記憶體、PCI-e 匯流排——這將需要更複雜的設計,PCIe/RAM IP 成本很高——這將使 ASIC 的暴力破解速度達到 100- 1000 倍以上的高成本設備,在大多數情況下不值得。

忘記使用 AntMiner、Cannnan、Bitfury,定制設備設計需要一年多的時間,每個 uniq 設計將花費數百萬美元。作為選項,您可能會問像 Innosilicon 這樣的 IC 設計工作室,價格會更高 - 條款會更長 1.5-2+ 年,仍然需要 xx 百萬投資,但這可能有效。

引用自:https://crypto.stackexchange.com/questions/34158