密碼熵值與密碼強度:數學背後的安全
你可能聽過「你的密碼應該要夠強」,但「強」到底是什麼意思?在密碼學中,密碼的強度可以用一個精確的數學指標來衡量:熵值(Entropy)。了解熵值,你就能理解為什麼某些密碼比其他密碼安全得多。
什麼是熵?
熵(Entropy)是資訊理論的核心概念,由 Claude Shannon 在 1948 年提出。在密碼學中,熵衡量的是密碼的不可預測性。熵值越高,密碼越難被猜中或暴力破解。
密碼熵的計算公式為:
H = L × log2(R)
- H = 熵值(單位:位元 / bits)
- L = 密碼長度(字元數)
- R = 字元池大小(可能的字元數量)
重點摘要:熵值每增加 1 位元,暴力破解所需的嘗試次數就翻倍。一個 128 位元的密碼意味著需要嘗試 2^128 次才能保證破解,這個數字大約是 3.4 × 10^38 — 即使用全世界最快的超級電腦也需要數十億年。
不同字元集的熵值比較
| 字元集 | 字元池大小 | 每字元熵值 | 8 字元密碼總熵 |
|---|---|---|---|
| 純數字(0-9) | 10 | 3.32 bits | 26.6 bits |
| 小寫字母 | 26 | 4.70 bits | 37.6 bits |
| 大小寫字母 | 52 | 5.70 bits | 45.6 bits |
| 大小寫+數字 | 62 | 5.95 bits | 47.6 bits |
| 大小寫+數字+符號 | 95 | 6.57 bits | 52.6 bits |
密碼長度 vs 字元種類
從熵值的計算可以看出,增加密碼長度比增加字元種類更有效:
- 8 個字元(大小寫+數字+符號)= 52.6 bits
- 12 個字元(只用小寫字母)= 56.4 bits
- 12 個字元(大小寫+數字+符號)= 78.8 bits
- 16 個字元(大小寫+數字+符號)= 105.1 bits
這就是為什麼 NIST 建議「長度比複雜度更重要」。一個 12 字元的全小寫密碼,在數學上比一個 8 字元的「複雜」密碼更安全。
破解時間估算
假設攻擊者每秒可以嘗試 100 億次(10^10,現代 GPU 的能力):
| 熵值 | 可能組合數 | 平均破解時間 |
|---|---|---|
| 30 bits | ~10 億 | 不到 1 秒 |
| 40 bits | ~1 兆 | 約 2 分鐘 |
| 50 bits | ~1,000 兆 | 約 1.5 天 |
| 60 bits | ~10^18 | 約 3.6 年 |
| 80 bits | ~10^24 | 約 380 萬年 |
| 128 bits | ~10^38 | 宇宙年齡的數十億倍 |
密碼短語的熵值
密碼短語(Passphrase)是由多個隨機詞彙組成的密碼。如果使用 7,776 個常見英文單字的字典(Diceware 標準),每個詞提供約 12.9 bits 的熵值。四個隨機單字組成的密碼短語約有 51.7 bits 的熵值,六個單字則有 77.5 bits。
使用密碼產生器確保安全
人類在「隨機」選擇方面表現很差。研究顯示,人類自行創建的密碼的實際熵值通常遠低於理論值,因為人們傾向使用可預測的模式。使用密碼產生器可以確保真正的隨機性,達到最大的熵值。
立即使用密碼產生器 →結語
密碼熵值是衡量密碼安全性的科學指標。了解熵值背後的數學原理,能幫助你做出更明智的密碼選擇。記住:長密碼勝過複雜密碼,隨機密碼勝過人為選擇。
參考文獻
- Shannon, Claude E. "A Mathematical Theory of Communication." Bell System Technical Journal, 27(3), 1948, pp. 379-423. https://doi.org/10.1002/j.1538-7305.1948.tb01338.x
- NIST. "Digital Identity Guidelines: Authentication and Lifecycle Management." NIST SP 800-63B, 2020. https://pages.nist.gov/800-63-3/sp800-63b.html
- Bonneau, Joseph. "The Science of Guessing: Analyzing an Anonymized Corpus of 70 Million Passwords." IEEE Symposium on Security and Privacy, 2012. https://doi.org/10.1109/SP.2012.49