セキュリティ5分で読めます

パスワードの強度はエントロピーで決まる|計算方法と安全な目安をわかりやすく解説

この記事でわかること

  • エントロピーは「パスワードの推測しにくさ」を表すビット数で、長さと使用文字種から計算できる
  • 文字種を増やすより文字数を増やす方がエントロピーへの貢献が大きい
  • NIST SP 800-63Bは定期変更や複雑さ強制より「十分な長さ」と「使い回しをしないこと」を重視する

パスワード強度チェッカーを使うと「エントロピー: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」(デジタルアイデンティティガイドライン)は、パスワード強度に関する代表的な公的指針のひとつです。同ガイドラインでは、定期的な変更の強制や大文字・記号の必須化よりも、十分な長さの確保流出済みパスワードとの照合を重視する方向を示しています。

エントロピーについて一般的に言われる目安は以下のとおりです。ただしこれは総当たりに対する耐性の理論値であり、辞書攻撃や漏洩パスワードリストへの対策は別途必要です。

28 bit未満

非常に弱い

現代のPCで数秒以内に総当たり可能

28〜35 bit

弱い

数時間〜数日で解読される恐れがある

36〜59 bit

普通

一般的な用途では許容範囲だが、重要なアカウントには不十分

60〜127 bit

強い

現実的な総当たり攻撃への耐性が十分ある

128 bit以上

非常に強い

現在の技術で総当たりは事実上不可能

5. エントロピーだけでは測れないリスク

エントロピーはあくまで「総当たり攻撃への理論的な耐性」を示す指標です。以下のリスクはエントロピーの高さで防ぐことができません。

  • 辞書攻撃:「password123」や「qwerty」のような一般的な文字列は、エントロピー計算上は「普通」程度でも辞書攻撃で瞬時に破られます
  • 漏洩パスワードリスト:過去の情報流出で外部に知られたパスワードは、再利用していれば即座に試されます
  • フィッシング:どれほど強いパスワードでも、偽サイトに入力すれば意味がありません
  • パスワードの使い回し:1か所で漏洩すると、他のすべてのサービスに不正アクセスされるリスクがあります

強いパスワードとは、エントロピーが高く、かつ辞書に載らないランダムな文字列を、サービスごとに異なるものを使う——という条件を同時に満たすものです。

6. 安全なパスワードを作るための実践

理論を踏まえると、安全なパスワードを作るうえで重要なのは以下の点です。

  • 12文字以上を目安にする:多くの場合、十分なエントロピーを確保できます
  • ランダムに生成する:意味のある単語や誕生日の組み合わせは辞書攻撃に弱い
  • サービスごとに異なるパスワードを使う:1か所の漏洩が他に波及しない
  • パスワードマネージャーを活用する:ランダムな長いパスワードを安全に管理できる

自分でランダムなパスワードを考えるのは難しいため、ツールを使って生成するのが確実です。