Suzu macOS Playground

M00 · CTF

SHA-256 雪崩:改一個 bit,輸出全變

在密碼學玩具裡輸入一段字串,觀察 SHA-256(32-byte 輸出);接著只改動 1 個字元, 比對前後兩個雜湊。確認「兩者沒有任何接近、約一半 bit 翻轉」,建立 M03 CDHash 雪崩的前置直覺。

← 先讀 M00 章節

SHA-256 雪崩玩具

sha256(A):

sha256(B):

0 / 256 bit 不同(0%)改一個字元 → 約一半 bit 翻轉、毫無「接近」可言(雪崩)。

Web Crypto 真算(crypto.subtle.digest('SHA-256'))。這個「改一點 → 全變」是 macOS 敢用「雜湊一致=沒被動過」的基礎——直接接 M03 的 CDHash 雪崩。

過關目標

解答是「操作模擬器到對的狀態 + 能說出原理」,非提交 flag 字串。互動式自動評分為 roadmap 項目;目前以自我檢核完成。

提示

卡住時

SHA-256 輸出固定 32 bytes(64 hex)。把「改前」與「改後」兩串並排逐字元比,不要找相似——應該完全沒有規律。

走錯方向時

雪崩不是「改一點、雜湊變一點」。輸入差 1 bit,輸出約一半 bit 翻轉,這正是 macOS 能用「雜湊一致」當「未被竄改」證明的原因。

想更深入

雜湊保證「完整性(沒被改)」,但不保證「來源(誰做的)」——來源要靠數位簽章。下一關談這個。

相關指令

shasumopenssl
← 回 CTF 場