理論空間大小
- MD5: 128 bits → 3.4 × 1038 個可能值
- SHA-1: 160 bits → 1.5 × 1048
- SHA-256: 256 bits → 1.2 × 1077
**可觀測宇宙原子數估計 ~ 1080**。SHA-256 空間已超過宇宙原子總數,**自然耗盡幾乎不可能**。
真正風險:碰撞攻擊
雖然空間極大,但**鴿巢原理**決定不同輸入必存在相同雜湊。關鍵在於「找到碰撞的難度」:
- 生日攻擊複雜度: O(2n/2)。SHA-256 需 2128 次運算,當前算力不可行。
- 人為構造碰撞: 王小雲教授團隊破解 MD5/SHA-1 碰撞,證明演算法結構弱點可被利用,**非空間用盡**,而是數學結構被攻破。
實務意義
- 軟體發布雜湊 (SHA-256/SHA-512): 空間足夠大,自然碰撞概率可忽略;主要防範**惡意構造同雜湊惡意軟體** (需演算法抗碰撞性)。
- Git 物件 ID (SHA-1): 空間較小 (160 bits),但 Git 內部機制 (長度前綴、物件類型) 降低碰撞風險;正逐步遷移至 SHA-256。
- 區塊鏈 (雙重 SHA-256): 依賴極大空間與工作量證明,確保歷史不可竄改。
結論
雜湊值「用完」在物理意義上不會發生;真正威脅是**演算法被破解導致可人為製造碰撞**。選用 SHA-256 以上、定期評估密碼學最新進展、啟用簽名驗證 (GPG/代碼簽章) 才是正道。