パスワードエントロピー解説:強力なパスワードの条件とは
Webサイトがパスワードを「弱い」や「強い」と評価するとき、エントロピー(パスワードの数学的ランダム性)を測定しています。エントロピーを理解すれば、単に入力が難しいだけでなく、本当に安全なパスワードを作成できます。
エントロピーとは?
エントロピーはビット単位で測定され、パスワードの予測不可能性を定量化します。エントロピーが1ビット増えるごとに、攻撃者が試す必要のあるパスワードの候補数が2倍になります。計算式は以下の通りです:
Entropy = log₂(C^L)
ここで:
- C = 文字セットのサイズ
- L = パスワードの長さ
別の表現:Entropy = L × log₂(C)
文字セット別エントロピー
| 文字セット | プールサイズ (C) | 1文字あたりのビット数 |
|---|---|---|
| 数字のみ (0-9) | 10 | 3.32 |
| 小文字 (a-z) | 26 | 4.70 |
| 小文字 + 数字 | 36 | 5.17 |
| 大小文字混合 (a-z, A-Z) | 52 | 5.70 |
| 大小文字混合 + 数字 | 62 | 5.95 |
| 印刷可能ASCII全体 | 95 | 6.57 |
計算例:
password(小文字8文字):8 × 4.70 = 37.6ビット — 数秒で解読可能P@ssw0rd(混合8文字):8 × 6.57 = 52.6ビット — 数時間で解読可能correct-horse-battery-staple(小文字28文字 + 記号):長さにより実効エントロピーはるかに高い
長さ vs. 複雑さ
直感に反する事実:長さは複雑さよりもエントロピーに大きく貢献します。
| パスワード | 長さ | エントロピー | 解読時間(10億回推測/秒) |
|---|---|---|---|
Xy7! | 4 | 26.3ビット | 1秒未満 |
Xy7!Qp2$ | 8 | 52.6ビット | 142年 |
mysimplepassword | 16 | 75.2ビット | 12億年 |
correct horse battery | 22 | 103ビット | 宇宙の熱的死 |
16文字の小文字パスワードは、あらゆる文字種を含む8文字のパスワードよりも強力です。これが、現代のセキュリティガイダンス(NIST SP 800-63B)が短い複雑なパスワードよりも長いパスフレーズを推奨する理由です。
「複雑さルール」の問題点
従来のパスワードポリシー(大文字、小文字、数字、記号を含める必要がある)は逆効果です:
- 予測可能なパターン:ユーザーは最初の文字を大文字にし、末尾に
1!を追加 →Password1! - 記憶力の低下:複雑なパスワードは付箋に書かれてしまう
- 偽のセキュリティ:8文字の「複雑な」パスワードは16文字のシンプルなものよりエントロピーが低い
NISTの最新ガイダンス:
- 最小8文字、推奨15文字以上
- 構成ルールなし(大文字、記号など)
- 漏洩パスワードデータベースとの照合
- スペースを含むすべての印刷可能文字を許可
- 定期的な強制変更なし
パスフレーズ戦略
パスフレーズはランダムな文字ではなくランダムな単語を使用します:
method: pick 4-6 random words from a dictionary
example: "timber quantum spoon velocity"
entropy: 4 words × ~12.9 bits/word (from 7,776-word list) ≈ 51.7 bits
better: 6 words ≈ 77.5 bits
Diceware方式は7,776語のリスト(6^5、5つのサイコロの目に対応)を使用します。各単語が12.9ビットのエントロピーを追加します。
利点:
- 記憶しやすい(単語をイメージできる)
- 長い(自然に20〜35文字)
- 十分な単語数で高いエントロピー
- 入力が簡単
安全なランダムパスワードとパスフレーズの生成はパスワードジェネレーターをご利用ください。
実際の攻撃速度
エントロピーは攻撃速度との相対で意味を持ちます:
| 攻撃タイプ | 速度 | 40ビットパスワード | 60ビットパスワード | 80ビットパスワード |
|---|---|---|---|---|
| オンライン(レート制限) | 1,000/秒 | 12.7日 | 36,559年 | 3,800万年 |
| オフライン(CPU) | 10億/秒 | 1.1秒 | 36.5年 | 38,334年 |
| オフライン(GPUクラスタ) | 1兆/秒 | 1秒未満 | 13日 | 38年 |
| 国家レベル | 1P/秒 | 1秒未満 | 1秒未満 | 14日 |
レート制限とロックアウトのあるオンラインアカウントには40ビット以上で十分です。オフライン攻撃(盗まれたパスワードハッシュ)には80ビット以上が最低限必要です。これが、Argon2やbcryptのようなパスワードハッシュアルゴリズムが存在する理由です。各推測のコストを高くします。
パスワードマネージャーの数学
パスワードマネージャーは方程式を根本的に変えます:
- 1つの強力なマスターパスワード:80ビット以上のエントロピー(6語以上のパスフレーズ)
- その他すべてのパスワード:ランダムに生成、128ビット以上、サイトごとに固有
- 使い回しなし:1つのサイトの漏洩が他に影響しない
パスワードマネージャーを支持する数学は圧倒的です。どんなに強力でも、使い回しされた1つのパスワードは、サイトごとの固有の弱いパスワードよりも脆弱です。なぜなら、1回の漏洩ですべてのアカウントが危険にさらされるからです。
パスワードの評価
パスワードの強度を評価する際の考慮点:
- 漏洩データベースにあるか? — 「強い」パスワードでも漏洩済みなら脆弱(haveibeenpwned.comで確認)
- ランダムか? — 人間が選んだパスワードはランダムなものよりはるかにエントロピーが低い
- どのように保存されているか? — コストファクター12のbcryptはプレーンMD5と比較して約22ビットの実効エントロピーを追加
安全なパスワード生成の詳細については、包括的なパスワード生成ガイドをご覧ください。
FAQ
何ビットのエントロピーが必要ですか?
レート制限のあるオンラインアカウントには最低40〜50ビット。暗号化データを保護するパスワード(ディスク暗号化、パスワードマネージャーのマスターパスワード)には80ビット以上。暗号鍵には128ビット以上。正しい答えは、何を保護しているか、誰が攻撃する可能性があるかによって異なります。
パスワードに記号を追加すると大幅に強くなりますか?
1つの記号を追加すると文字プールが62から95に増え、1文字あたり約0.6ビット追加されます。8文字のパスワードの場合、約5ビットの追加です。これは小文字1文字を追加するのと同等です。文字種を増やすよりも長さを増やす方がほぼ常に効果的です。
関連リソース
- パスワードジェネレーター — 暗号学的に安全なパスワードを生成
- 強力なパスワードの生成 — 包括的なパスワードセキュリティガイド
- ハッシュアルゴリズム比較 — パスワードの安全な保存方法