
✓この記事でわかること
- 1長さ×log₂(文字集合)の式は、各文字を独立・一様に選ぶランダム生成を前提とする
- 2数値が高くても、辞書語・連番・キーボード配列・使い回しがあると実際の安全性は下がる
- 3強度チェックの数値は比較用の推定で、保存側の方式や攻撃条件により実際の耐性は変わる

1. エントロピーとは何か
情報理論における「エントロピー」は、ある情報の不確かさを表す量です。パスワードでは、候補をどの集合からどの確率で選んだかという生成方法のモデルに基づいて計算します。表示された文字列だけから、人が選んだ本当の確率分布を正確に求められるものではありません。
単位はビット(bit)です。独立・一様なランダム生成という同じ前提で比べると、1bit増えるごとに候補数は2倍、10bitで1,024倍(2¹⁰)になります。
独立・一様なランダム生成を仮定した計算式
エントロピー(bit)= 文字数 × log₂(使用できる文字の総数)
例:小文字26種から各文字を独立・一様に選ぶ8文字 → 8 × log₂(26) ≈ 37.6 bit。人が意味のある語や規則で選んだ文字列には、そのまま適用できません。
2. 文字の種類(文字集合)がエントロピーに与える影響
各文字を独立・一様に選ぶ場合、使用できる文字の種類が増えると1文字あたりの理論値(log₂ の値)が増加します。主な文字集合とそのサイズは以下のとおりです。
| 文字の種類 | 文字数 | 1文字あたりのエントロピー |
|---|---|---|
| 小文字(a〜z) | 26種 | 約4.7 bit |
| 小文字 + 大文字 | 52種 | 約5.7 bit |
| 小文字 + 大文字 + 数字 | 62種 | 約5.95 bit |
| 小文字 + 大文字 + 数字 + 記号 | 94種 | 約6.55 bit |
たとえば、小文字のみ(26種)と全種類(94種)では、独立・一様という前提で1文字あたり約1.85bitの差があります。一方、全94種から選ぶ文字を1文字増やすと理論値は約6.55bit増えます。ただし、NISTの要件はこの単純計算だけから導かれるものではなく、利用者が作りがちな規則、ブロックリスト、レート制限、保存方法なども含めて設計されています。
3. 文字数とエントロピーの関係(具体例)
| パスワードの条件 | エントロピー | 計算の前提 |
|---|---|---|
| 数字のみ・8文字 | 約27 bit | 数字10種から一様選択 |
| 小文字のみ・6文字 | 約28 bit | 小文字26種から一様選択 |
| 小文字+数字・8文字 | 約41 bit | 英小文字・数字36種から一様選択 |
| 小文字+大文字+数字・12文字 | 約71 bit | 英大小・数字62種から一様選択 |
| 全種類(小大数記号)・20文字 | 約131 bit | 印字可能ASCII 94種から一様選択 |
4. 固定のbit区分だけで「安全」と判定しない
NIST SP 800-63B-4は、単一要素で使うパスワードについて検証側の最小長を15文字とし、文字種の組み合わせ規則を課さず、よく使われる・侵害済みと想定される値のブロックリスト照合を求めています。一方で「60bitなら安全」のような固定のエントロピー区分を認証要件として定めてはいません。
bit数は、同じ生成モデルで候補空間を比較する材料として使います。実際の耐性を判断するときは、生成方法、使い回し、侵害済みリスト、保存側のハッシュ・KDF、オンラインのレート制限、多要素認証を分けて確認します。
表示値は条件付きの比較値です
同じbit数でも、人が選んだ語や規則が含まれる場合と、暗号学的乱数で一様に生成した場合では推測されやすさが異なります。解読時間も試行速度の仮定に比例するため、単独の数値で合否を決めないでください。
5. エントロピーだけでは測れないリスク
エントロピーはあくまで「総当たり攻撃への理論的な耐性」を示す指標です。以下のリスクはエントロピーの高さで防ぐことができません。
- 辞書攻撃:「password123」や「qwerty」のような一般的な文字列は、エントロピー計算上は「普通」程度でも辞書攻撃で瞬時に破られます
- 漏洩パスワードリスト:過去の情報流出で外部に知られたパスワードは、再利用していれば即座に試されます
- フィッシング:どれほど強いパスワードでも、偽サイトに入力すれば意味がありません
- パスワードの使い回し:1か所で漏洩すると、他のすべてのサービスに不正アクセスされるリスクがあります
実務では、暗号学的乱数で生成した十分に長い候補をサービスごとに使い分け、パスワードマネージャーへ保存し、利用できる場合は多要素認証を組み合わせます。
6. 強度チェックで見るべき項目
パスワード強度チェックでは、エントロピーの数字だけを見るのではなく、どの理由で弱い判定になっているかを分けて確認することが大切です。たとえば同じ60bit前後でも、完全にランダムな文字列と、辞書語や連番を含む文字列では、実際の推測されやすさが変わります。
| 確認項目 | 見落としやすい弱点 | 見直し方 |
|---|---|---|
| 解読時間 | 一般PCでは長く見えても、GPU攻撃では短くなる場合がある | 1つの時間だけでなく、複数シナリオの目安を見る |
| 辞書語 | password、summer、admin などは総当たりより先に試されやすい | 意味のある単語を避け、ランダム生成や長いパスフレーズへ置き換える |
| 連番・繰り返し | 1234、aaaa、2026 などは人間が作りがちな規則として読まれやすい | 規則を足すのではなく、十分な長さのランダム文字列にする |
| キーボード配列 | qwerty、asdf、1qaz のような配列は入力しやすい分、攻撃側にも知られている | 入力のしやすさだけで決めず、配列に沿っていない文字列を使う |
Tool Factoriaのパスワード強度チェックでは、数値だけで判断せず、推測されやすい並びや改善案も一緒に見ます。結果が悪い場合は、文字を少し足すより、元の考え方ごと作り直す方が早いケースもあります。
7. 安全なパスワードを作るための実践
理論を踏まえると、安全なパスワードを作るうえで重要なのは以下の点です。
- 登録先の要件を確認し、十分に長くする:NIST SP 800-63B-4の単一要素パスワードでは、検証側の最小長は15文字です
- ランダムに生成する:意味のある単語や誕生日の組み合わせは辞書攻撃に弱い
- サービスごとに異なるパスワードを使う:1か所の漏洩が他に波及しない
- パスワードマネージャーを活用する:ランダムな長いパスワードを安全に管理できる
人がランダムな文字列を考えるのは難しいため、診断後に作り直す場合は暗号学的乱数を使う生成ツールやパスワードマネージャーを利用します。
エントロピーを上げても、同じパスワードを複数サービスで使うと安全性は大きく下がります。なぜ使い回しが危険なのかはパスワード使い回しのリスク、最近のパスワード要件の考え方はパスワード設定基準の解説で詳しく整理しています。重要なアカウントでは二段階認証も必ず組み合わせましょう。
