密碼熵的密碼學數學:為什麼長度勝過複雜性
幾十年來,企業 IT 政策迫使員工創建笨拙、難以記憶的密碼,其中包含大寫字母、數字和特殊符號的任意組合,結果卻要求每 90 天強制輪調一次。現代計算密碼學和美國國家標準與技術研究院 (NIST) 的實證研究證明,這種範式不僅過時,而且會嚴重降低帳戶安全性。
克勞德·香農的資訊熵公式 ($H = L \log_2 N$)
在資訊理論中,秘密的基本強度被量化為熵位($H$),以數學家克勞德·香農 (Claude Shannon) 的名字命名。隨機選擇的字串的原始熵由以下公式決定:
香農資訊熵方程
H = L × 對數2(N)
哪裡L表示總字元長度,且N表示字元池的大小(例如,26 表示小寫字母,62 表示字母數字,95 表示可列印 ASCII 字元)。
因為總組合規模為 $N^L$,長度 ($L$) 充當指數,而池大小 ($N$) 只是基礎。與將“a”替換為“@”或將“e”替換為“3”相比,僅在密碼中添加 4 個額外字元即可將暴力搜尋空間擴展幾個數量級。
| 密碼圖案 | 水池尺寸(N) | 長度(L) | 香農熵 | RTX 4090 破解時間 |
|---|---|---|---|---|
Tr0ub4dor&3 | 95 個符號 | 11 個字符 | 約 42.4 位 | 約 4.2 分鐘 |
correct-horse-battery-staple | 26個字母 | 28 個字符 | 約 78.5 位 | 約 3,400 年 |
k9#mP$2vL!9xQ@4z | 95 個符號 | 16 個字符 | 約 105.1 位 | 約2.8兆年 |
NIST 特別出版品 800-63B:現代數位身分標準
在NIST SP 800-63B(數位身分指南:身分驗證與生命週期管理),聯邦安全研究人員系統性地廢除了傳統的企業密碼教條:
- 廢除定期到期:強制使用者每 30 到 90 天更改一次密碼會導致可預測的增量變更(例如
Winter2025!成為Spring2026!)。僅當存在洩漏證據時才應更改密碼。 - 消除組合規則:強制使用大寫、小寫、數字和符號的特定組合會導致使用者採用可預測的結構模式(例如,大寫第一個字母並在末尾附加感嘆號和年份)。
- 黑名單篩選(違規憑證審核):系統必須根據受損憑證、常見字典術語和重複序列的清單來篩選新密碼,而不是強制執行任意複雜性規則。
Diceware 密碼架構:可用性與加密強度的結合
最初由 Arnold Reinhold 於 1995 年發明,骰子軟體方法透過滾動物理六面骰子從 7,776 個單字的字典中選擇隨機單字來產生密碼短語 ($6^5 = 7,776$)。
因為每個單字大約提供12.9 位元熵($log_2(7776) 約 12.92$),一個 4 字密碼短語大致可提供52 位元純熵,以及 5 個單字的密碼短語65位。人類可以毫不費力地記住生動的敘事短語,例如crystal-falcon-harbor-orbit,而攻擊者的離線破解集群必須耗盡字典排列中的數十億種組合。
現代攻擊者如何破解哈希值:掩碼攻擊和記憶體困難 KDF
現實世界中的威脅行為者很少透過登入表單逐個字來暴力破解密碼;速率限制、Web 應用程式防火牆 (WAF) 和驗證碼會在幾次嘗試後阻止線上攻擊。相反,99% 的密碼破解發生在離線狀態在攻擊者破壞應用程式的資料庫並竊取儲存的密碼雜湊之後。
類似的工具散列貓和開膛手約翰利用大量消費性 GPU(例如 NVIDIA GeForce RTX 4090)叢集每秒計算數十億個候選哈希。
為什麼哈希演算法的選擇決定安全性
如果應用程式使用快速通用加密雜湊來儲存密碼,例如MD5或SHA-256,單一RTX 4090可以計算超過每秒 150 億次猜測。相反,現代的難記憶金鑰導出函數,例如氬氣2id或加密需要專用 RAM(例如,每次哈希迭代 64MB),限制 GPU 並行化,並將破解速度從每秒數十億次哈希降低到數千次。