✓この記事でわかること
- 1エントロピーは「パスワードの推測しにくさ」を表すビット数で、長さと使用文字種から計算できる
- 2数値が高くても、辞書語・連番・キーボード配列・使い回しがあると実際の安全性は下がる
- 3強度チェックではエントロピー、解読時間、危険パターン、改善案をセットで見るのが安全
パスワード強度チェッカーを使うと「エントロピー:72 bit」のような数値が表示されます。この「エントロピー」とは何を意味し、どう計算されているのでしょうか。仕組みを理解すると、なぜ「長いパスワード」が強いのかが具体的な数値で実感できます。
1. エントロピーとは何か
情報理論における「エントロピー」は、ある情報の「不確かさ」や「予測しにくさ」を数値化したものです。パスワードの文脈では、攻撃者がパスワードを総当たりで試す際に必要な試行回数の対数(log₂)として表現されます。
単位はビット(bit)です。エントロピーが1bit増えるごとに、総当たりに必要な試行回数が2倍になります。つまり、10bit増えれば試行回数は1,024倍(2¹⁰)、20bit増えれば約100万倍(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.85 bitの差があります。一方、文字数を1文字増やすと全種類の場合で約6.55 bit増加します。「数字を1種類加える(8文字で約2 bit増)」といった1種類だけの追加より、1文字増やす方がエントロピーへの貢献が大きいことが多いのはこのためです。NIST SP 800-63Bが複雑さより長さを重視する理由もここにあります。
3. 文字数とエントロピーの関係(具体例)
| パスワードの条件 | エントロピー | 評価の目安 |
|---|---|---|
| 数字のみ・8文字 | 約27 bit | 非常に弱い |
| 小文字のみ・6文字 | 約28 bit | 弱い |
| 小文字+数字・8文字 | 約41 bit | 普通 |
| 小文字+大文字+数字・12文字 | 約71 bit | 強い |
| 全種類(小大数記号)・20文字 | 約131 bit | 非常に強い |
4. エントロピーの安全な目安
米国国立標準技術研究所(NIST)が発行する「NIST SP 800-63B」(デジタルアイデンティティガイドライン)は、パスワード強度に関する代表的な公的指針のひとつです。同ガイドラインでは、定期的な変更の強制や大文字・記号の必須化よりも、十分な長さの確保と流出済みパスワードとの照合を重視する方向を示しています。
エントロピーについて一般的に言われる目安は以下のとおりです。ただしこれは総当たりに対する耐性の理論値であり、辞書攻撃や漏洩パスワードリストへの対策は別途必要です。
非常に弱い
現代のPCで数秒以内に総当たり可能
弱い
数時間〜数日で解読される恐れがある
普通
一般的な用途では許容範囲だが、重要なアカウントには不十分
強い
現実的な総当たり攻撃への耐性が十分ある
非常に強い
現在の技術で総当たりは事実上不可能
5. エントロピーだけでは測れないリスク
エントロピーはあくまで「総当たり攻撃への理論的な耐性」を示す指標です。以下のリスクはエントロピーの高さで防ぐことができません。
- 辞書攻撃:「password123」や「qwerty」のような一般的な文字列は、エントロピー計算上は「普通」程度でも辞書攻撃で瞬時に破られます
- 漏洩パスワードリスト:過去の情報流出で外部に知られたパスワードは、再利用していれば即座に試されます
- フィッシング:どれほど強いパスワードでも、偽サイトに入力すれば意味がありません
- パスワードの使い回し:1か所で漏洩すると、他のすべてのサービスに不正アクセスされるリスクがあります
強いパスワードとは、エントロピーが高く、かつ辞書に載らないランダムな文字列を、サービスごとに異なるものを使う——という条件を同時に満たすものです。
6. 強度チェックで見るべき項目
パスワード強度チェックでは、エントロピーの数字だけを見るのではなく、どの理由で弱い判定になっているかを分けて確認することが大切です。たとえば同じ60bit前後でも、完全にランダムな文字列と、辞書語や連番を含む文字列では、実際の推測されやすさが変わります。
| 確認項目 | 見落としやすい弱点 | 見直し方 |
|---|---|---|
| 解読時間 | 一般PCでは長く見えても、GPU攻撃では短くなる場合がある | 1つの時間だけでなく、複数シナリオの目安を見る |
| 辞書語 | password、summer、admin などは総当たりより先に試されやすい | 意味のある単語を避け、ランダム生成や長いパスフレーズへ置き換える |
| 連番・繰り返し | 1234、aaaa、2026 などは人間が作りがちな規則として読まれやすい | 規則を足すのではなく、十分な長さのランダム文字列にする |
| キーボード配列 | qwerty、asdf、1qaz のような配列は入力しやすい分、攻撃側にも知られている | 入力のしやすさだけで決めず、配列に沿っていない文字列を使う |
Tool Factoriaのパスワード強度チェックでは、エントロピー、3種類の解読時間、辞書語、連番、キーボード配列、改善案をまとめて確認できます。数字が高いか低いかだけでなく、「どこを直せばよいか」まで見ると、実際の変更作業につなげやすくなります。
7. 安全なパスワードを作るための実践
理論を踏まえると、安全なパスワードを作るうえで重要なのは以下の点です。
- 12文字以上を目安にする:多くの場合、十分なエントロピーを確保できます
- ランダムに生成する:意味のある単語や誕生日の組み合わせは辞書攻撃に弱い
- サービスごとに異なるパスワードを使う:1か所の漏洩が他に波及しない
- パスワードマネージャーを活用する:ランダムな長いパスワードを安全に管理できる
自分でランダムなパスワードを考えるのは難しいため、ツールを使って生成するのが確実です。
エントロピーを上げても、同じパスワードを複数サービスで使うと安全性は大きく下がります。なぜ使い回しが危険なのかはパスワード使い回しのリスク、最近のパスワード要件の考え方はパスワード設定基準の解説で詳しく整理しています。重要なアカウントでは二段階認証も必ず組み合わせましょう。
