パスワードエントロピーを理解する
パスワードエントロピーの計算方法とその重要性を学びます。文字セットのサイズ、パスワードの長さ、エントロピービットの関係を理解します — パスワード強度の真の尺度。
Advanced
詳細な説明
パスワードエントロピーとは?
エントロピーはパスワードのランダム性の数学的尺度です。攻撃者がブルートフォースでパスワードを解読するために平均して必要な推測回数を定量化します。エントロピーはビットで測定されます。
公式
H = L * log2(C)
各項目:
- H = エントロピー(ビット)
- L = パスワードの長さ
- C = 文字プールのサイズ
1ビットのエントロピーは可能な組み合わせの数を2倍にします。
文字プールのサイズ
| 文字セット | プールサイズ (C) | 1文字あたりのビット |
|---|---|---|
| 数字のみ | 10 | 3.32 |
| 小文字のみ | 26 | 4.70 |
| 小文字 + 数字 | 36 | 5.17 |
| 大小文字混合 | 52 | 5.70 |
| 英数字 | 62 | 5.95 |
| 全印刷可能ASCII | 95 | 6.57 |
エントロピーの例
8文字小文字: 8 * 4.70 = 37.6ビット
8文字英数字: 8 * 5.95 = 47.6ビット
8文字全ASCII: 8 * 6.57 = 52.6ビット
12文字英数字: 12 * 5.95 = 71.4ビット
16文字全ASCII: 16 * 6.57 = 105.1ビット
4語Diceware: 4 * 12.9 = 51.7ビット
6語Diceware: 6 * 12.9 = 77.5ビット
エントロピーセキュリティレベル
| ビット | セキュリティレベル | 用途 |
|---|---|---|
| < 28 | 非常に弱い | なし(簡単に解読) |
| 28-35 | 弱い | 低価値アカウントのみ |
| 36-59 | 中程度 | 標準オンラインアカウント |
| 60-79 | 強い | 重要なアカウント |
| 80-99 | 非常に強い | 金融、メール、管理者 |
| 100+ | 優秀 | 暗号化キー、マスターパスワード |
重要な注意事項
エントロピーは真にランダムなパスワードにのみ適用されます。 ユーザーがPassword1!を選択した場合、10文字の混合文字セットパスワードの理論的エントロピー(約66ビット)は意味がありません — 実際のエントロピーはほぼゼロです。すべての辞書攻撃リストに含まれているためです。
エントロピー vs クラック時間
クラック時間は攻撃者の速度に依存します:
時間 = 2^(H-1) / 毎秒推測数
毎秒100億推測(ハイエンドGPUクラスター)の場合:
| エントロピー | 平均クラック時間 |
|---|---|
| 40ビット | 約55秒 |
| 60ビット | 約1.8年 |
| 80ビット | 約190万年 |
| 100ビット | 約20億年 |
| 128ビット | 約5.4 x 10^17年 |
エントロピーを超えて:実践的なセキュリティ
高いエントロピーは必要ですが十分ではありません。安全なパスワードには以下も必要です:
- 一意性 — サービス間で再利用しない
- 安全な保存 — サーバー側でArgon2id/bcryptでハッシュ
- 侵害監視 — 既知の侵害データベースと照合
- MFA — エントロピーは単一の層;追加の要素を加える
ユースケース
エントロピーを理解することで、開発者は適切なパスワードポリシーを設定し、セキュリティ監査人はシステム構成を評価し、ユーザーはパスワードの長さと複雑さについて情報に基づいた判断を下すことができます。「このパスワードは本当にどのくらい強いのか?」という質問に答えるための数学的基盤を提供します。