Sha256
地球上所有智能手機需要多長時間才能完全反轉 SHA-256 雜湊?
我知道,從理論上講,沒有辦法保證反向散列實際上是輸入到散列函式的內容。但是,假設我有一張圖像,我記下該圖像的文件大小,然後通過 SHA-256 散列算法執行它。然後,我將散列以及初始文件大小分發到我們星球上所有約 65 億部智能手機。地球上現有的所有智能手機需要多長時間才能完全暴力破解 SHA-256 雜湊,不像比特幣,你只需要反轉其中的一部分?
- Apple M1 CPU 可以在單個核心上執行大約 2 GB/s 的 SHA256(基於PR24115中添加的比特幣核心中優化的 2 路硬體加速 ARMv8 程式碼)。
- 由於電源使用限制,智能手機比 M1 筆記型電腦 CPU 慢得多,但讓我們忽略這一點,保守地高估每部智能手機都有一個可以做到這一點的六核 CPU,因此每台設備的總速度為 12 GB/s。
- SHA256 對 64 字節的塊進行操作。讓我們假設攻擊者選擇了一個固定的前綴,然後只需要研磨文件的最後 64 字節 + 填充(一個額外的塊)。所以他們只是散列 128 個字節。(12 GB/s) / 128 B ≈ 每台設備每秒 9400 萬次嘗試。
- 65 億設備次,這意味著每秒總共6×10 17 個文件。
- 每次文件嘗試產生正確原像的機率為 2 -256 。這意味著需要大約 2 256次嘗試有合理的機會找到原像。
- 2 256 / 6×10 17 ≈ 2 197秒
- 宇宙的年齡約為 137 億年,即 2 58.5秒。
- 因此,攻擊將花費大約 2 197 / 2 58.5 ≈ 400000000000000000000000000000000000000000 倍的宇宙年齡。