パスワードのエントロピー・強度の測り方|ビット計算と早見表
パスワードの「強さ」を感覚ではなく数値で表す指標が、エントロピー(情報量、単位はビット)です。エントロピーは、そのパスワードを総当たりで破るのにどれだけの試行が必要かを表します。1ビット増えるごとに、破るのに必要な試行回数が2倍になります。この記事では、ビット数の計算式、桁数別の早見表、そして「何ビットあれば安全か」の目安を、具体的な数字で示します。生成したパスワードのビット数を意識したい場合はパスワード生成ツールの文字数設定と合わせて読んでください。
エントロピー(ビット)とは何か
エントロピーは、パスワードの「当てにくさ」を対数で表したものです。攻撃者が総当たりする場合、平均しておよそ全組み合わせの半分を試せば当たります。エントロピーが n ビットなら組み合わせは 2 の n 乗通りあり、n が1増えるだけで総当たりの手間が倍になります。だからこそ、わずかな文字数の差が強度に大きく効きます。
ここで重要な前提があります。この計算が成り立つのは、パスワードが本当にランダムに作られている場合だけです。人が考えた単語ベースのパスワードは、見かけの文字数からビットを計算しても、実際にはずっと低い強度しかありません。
ビット数の計算式
ランダムなパスワードのエントロピーは、次の式で求めます。
エントロピー(ビット)= 文字数 × log2(使える文字の種類数)
「使える文字の種類数」は、パスワードに含みうる文字集合の大きさです。文字種ごとの、1文字あたりのビット数は次のとおりです。
| 文字種 | 種類数 | 1文字あたりのビット(約) |
|---|---|---|
| 数字のみ | 10 | 3.32 |
| 英小文字のみ | 26 | 4.70 |
| 英大文字+小文字 | 52 | 5.70 |
| 英大小+数字 | 62 | 5.95 |
| 英大小+数字+記号 | 約95 | 約6.57 |
たとえば英大小・数字・記号(約95種)で12文字なら、12 × 6.57 = 約79ビットとなります。
桁数別・文字種別の強度早見表
ランダム生成を前提とした、代表的な組み合わせのエントロピーです。
| 構成 | 8文字 | 12文字 | 16文字 |
|---|---|---|---|
| 数字のみ | 約27ビット | 約40ビット | 約53ビット |
| 英小文字のみ | 約38ビット | 約56ビット | 約75ビット |
| 英大小+数字 | 約48ビット | 約71ビット | 約95ビット |
| 英大小+数字+記号 | 約53ビット | 約79ビット | 約105ビット |
表から分かるとおり、記号を足して文字種を増やすより、桁数を増やすほうがビットの伸びが大きいことが読み取れます。これが「複雑さより長さ」と言われる数値的な根拠です。関連する考え方は強いパスワードの条件でも触れています。
何ビットあれば安全か
必要なビット数は、攻撃の種類と、サイト側がパスワードをどう保管しているかで変わります。目安を示します。
| エントロピー | 毎秒1兆回の総当たりでの平均探索時間 | 評価 |
|---|---|---|
| 40ビット | 1秒未満 | 危険 |
| 52ビット | 約38分 | 不十分 |
| 60ビット | 約7日 | 心もとない |
| 70ビット | 約19年 | おおむね安全 |
| 80ビット | 約2万年 | 安全 |
| 100ビット | 天文学的 | 非常に安全 |
この表は「毎秒1兆回(10の12乗回)」という強力な攻撃者を仮定した目安です。ここで2つの注意があります。
- サイト側の保管方法で難易度が激変する:パスワードが適切なハッシュ(bcryptやArgon2などの計算コストの高い方式)と組み合わせて保管されていれば、攻撃者の試行速度は毎秒数千回まで落ち、上表よりはるかに破りにくくなります。逆に古い高速なハッシュだと、攻撃はもっと速く進みます。
- オンライン攻撃とオフライン攻撃は別物:ログイン画面から試すオンライン攻撃は回数制限で遅く、少ないビットでも耐えます。問題は、データが流出してから手元で試すオフライン攻撃で、上表はこちらを想定しています。
結論として、オフライン攻撃も想定するなら80ビット前後以上を目標にするのが無難です。これは英大小・数字・記号で12〜13文字、単語をランダムに選んだパスフレーズなら6語程度に相当します。
強度メーターの落とし穴
入力欄の「強度:強い」といったメーターは便利ですが、鵜呑みにできません。単純なメーターは文字種と長さだけを見ており、「P@ssw0rd123」のような、辞書と規則で簡単に破られる文字列を「強い」と誤判定することがあります。
- 文字種と桁数だけで判定するメーターは、パターンや辞書語を考慮しない。
- より賢いメーターは、よくある単語・並び・置き換えを検出して減点する。
- 最も確実なのは、人が考えず生成ツールで本当のランダム文字列を作り、桁数からビットを見積もることです。
メーターの表示に安心せず、「ランダムに作られているか」「桁数から計算したビットが十分か」で判断するのが、強度を正しく測るコツです。
よくある質問
パスワードのエントロピーはどう計算しますか?
ランダムなパスワードなら、文字数×log2(使える文字の種類数)で求めます。たとえば英大小・数字・記号の約95種で12文字なら、12×6.57で約79ビットです。ただしこの式は本当にランダムな場合のみ成り立ち、単語ベースのパスワードには当てはまりません。
何ビットのパスワードなら安全ですか?
オフラインの総当たりも想定するなら、80ビット前後以上が目安です。これは英大小・数字・記号で12〜13文字、ランダムに選んだ単語のパスフレーズなら6語程度に相当します。ログイン画面からのオンライン攻撃だけを考えるなら、より少ないビットでも耐えられます。
長さと文字種はどちらがエントロピーに効きますか?
長さのほうが効きます。桁数を増やすとビットが一定量ずつ積み上がるのに対し、文字種を増やす効果は1文字あたりのビットがわずかに上がるだけです。早見表でも、記号を足すより桁数を増やすほうがビットの伸びが大きいことが分かります。
強度メーターで『強い』と出れば安心ですか?
必ずしも安心できません。単純なメーターは文字種と長さだけを見るため、辞書語や規則的な置き換えを含む弱いパスワードを『強い』と誤判定することがあります。生成ツールでランダムに作り、桁数からビットを見積もるほうが確実です。
参考・出典
- NIST SP 800-63B 付録 パスワードのエントロピーと推測攻撃に関する記述(2017年公開・その後改訂)
- 情報量(エントロピー)の定義 log2 に基づく一般的な計算方法
- 各種パスワードハッシュ(bcrypt・scrypt・Argon2)の計算コストに関する一般資料(2025年参照)