パスワードの強度とエントロピーの関係
この記事は約 9 分で読めます
「このパスワードは強い」「このパスワードは弱い」という判断は、何を基準に行われているのでしょうか。パスワードの強度を客観的に測定する指標として、情報理論における「エントロピー」が広く用いられています。本記事では、エントロピーの数学的な定義から、文字種や長さが強度に与える影響、そしてパスつく.com の強度メーターがどのように計算を行っているかを詳しく解説します。
エントロピーとは何か
エントロピーは、 情報理論の創始者クロード・シャノンが 1948 年に発表した 論文 "A Mathematical Theory of Communication" で提唱した概念です。 シャノンは通信路上のノイズに対して情報をどれだけ効率的に符号化できるかを研究する中で、 情報の「不確実性」を定量化する尺度としてエントロピーを定義しました。 熱力学のエントロピーから着想を得たこの概念は、情報量の基本単位「ビット」と結びつき、 現代の暗号学やセキュリティ評価の基盤となっています。
パスワードの文脈では、エントロピーは攻撃者がパスワードを推測するために必要な試行回数の対数として理解できます。エントロピーが高いほど、パスワードの推測が困難であることを意味します。シャノンの情報理論が重要なのは、パスワードの強度を「感覚」ではなく「数学的に証明可能な指標」で評価できる点にあります。これにより、「なんとなく長いから安全」ではなく、「何ビットのエントロピーがあるから、解読に何年かかる」という定量的な議論が可能になるのです。
エントロピーの概念を体系的に学ぶには、情報理論の入門書 (Amazon)も参考になります。
エントロピーの計算式
ランダムに生成されたパスワードのエントロピー H は、以下の式で計算されます。
H = L × log₂(N)
ここで L はパスワードの文字数、 N は使用可能な文字の種類数です。log₂ は 2 を底とする対数で、結果はビット単位で表されます。たとえば、 1 ビットのエントロピーは「 2 通りのうちの 1 つ」、 2 ビットは「 4 通りのうちの 1 つ」を意味します。この式が成立する前提条件は、各文字が独立かつ一様にランダムに選ばれることです。人間が選んだパスワードではこの前提が崩れるため、後述する「落とし穴」に注意が必要です。
文字種別エントロピー比較表
パスワードに使用する文字種によって、 1 文字あたりのエントロピー (log₂(N)) とパスワード全体の強度は大きく変わります。以下の表で比較してみましょう。
| 文字種の組み合わせ | N (文字数) | 1 文字あたり (ビット) | 8 文字 (ビット) | 12 文字 (ビット) | 16 文字 (ビット) |
|---|---|---|---|---|---|
| 数字のみ (0-9) | 10 | 3.32 | 26.6 | 39.9 | 53.2 |
| 英小文字のみ (a-z) | 26 | 4.70 | 37.6 | 56.4 | 75.2 |
| 英小文字 + 英大文字 | 52 | 5.70 | 45.6 | 68.4 | 91.2 |
| 英小文字 + 英大文字 + 数字 | 62 | 5.95 | 47.6 | 71.5 | 95.3 |
| 全 ASCII 印字可能文字 | 95 | 6.57 | 52.6 | 78.8 | 105.1 |
この表から読み取れる重要なポイントは、文字種を増やすと 1 文字あたりのエントロピーが増加するものの、その増加幅は対数的であるということです。数字のみ (3.32 ビット) から全 ASCII (6.57 ビット) に拡張しても、 1 文字あたり約 2 倍にしかなりません。一方、文字数を 8 文字から 16 文字に倍増させれば、エントロピーは正確に 2 倍になります。
具体的な計算例と解読時間
例 1: 英小文字のみ 8 文字
H = 8 × log₂(26) = 8 × 4.70 = 約 37.6 ビット。 これは 2 の 37.6 乗、すなわち約 2,090 億通りの組み合わせに相当します。 2025 年の Hive Systems の調査によると、 NVIDIA RTX 5090 を使った オフライン攻撃 (bcrypt ハッシュ対象) では前世代の RTX 4090 と比較して 処理性能が大幅に向上しており、 MD5 ハッシュでは毎秒数千億回の試行が可能です。 MD5 のような弱いハッシュ関数で保存されている場合、 37.6 ビットのパスワードは 1 秒程度で解読されます。 bcrypt であっても約 13 日で突破される計算です。 セキュリティとしては不十分です。
例 2: 全 ASCII 16 文字
H = 16 × log₂(95) = 16 × 6.57 = 約 105.1 ビット。 2 の 105.1 乗は約 4 × 10 の 31 乗通りです。仮に毎秒 1 兆回 (10 の 12 乗) の試行が可能な攻撃者がいたとしても、全パターンを試すには約 1.3 × 10 の 19 乗秒、つまり約 4,000 億年かかります。宇宙の年齢 (約 138 億年) の約 30 倍に相当し、現在のコンピュータ技術では総当たりによる解読は事実上不可能です。金融サービスや重要なアカウントに十分な強度といえます。
例 3: 英大文字 + 英小文字 + 数字 12 文字
H = 12 × log₂(62) = 12 × 5.95 = 約 71.5 ビット。 一般的なウェブサービスには適切な強度ですが、 金融サービスにはやや心もとない水準です。記号を追加するか、 文字数を増やすことで強度を向上させられます。安全なパスワードの作り方の記事で解説している推奨設定も参考にしてください。
長さと文字種、どちらが重要か
計算式 H = L × log₂(N) から分かるように、エントロピーは文字数 L に対して線形に増加し、文字種数 N に対しては対数的に増加します。つまり、文字数を 2 倍にすればエントロピーも 2 倍になりますが、文字種を 2 倍にしてもエントロピーは 1 ビット分しか増えません。
この性質から、パスワードの強度を効率的に高めるには、 文字種を増やすよりも文字数を増やす方が効果的です。 ただし、文字種を増やすことにも意味があります。ブルートフォース攻撃だけでなく辞書攻撃への耐性も向上し、攻撃者が探索すべき空間が広がるためです。 理想的には、十分な長さと多様な文字種の両方を確保することが推奨されます。
暗号技術の数学的な背景を深く理解するには、暗号技術の数学的基礎に関する書籍 (Amazon)が役立ちます。
エントロピー計算の落とし穴
上記の計算式はパスワードが完全にランダムに生成された場合にのみ成立します。人間が自分で考えたパスワードは、辞書に載っている単語、誕生日、キーボード配列 (qwerty 、 1234 など) といったパターンに偏りやすく、理論上のエントロピーよりも実効的な強度が大幅に低下します。
たとえば、英小文字 8 文字のパスワードは理論上 37.6 ビットのエントロピーを持ちますが、「 password 」のような一般的な単語を選んだ場合、辞書攻撃では上位数千語に含まれるため、実質的なエントロピーは 12 ビット程度まで低下します。 NIST SP 800-63B でも、ユーザーが選択したパスワードに対しては単純なエントロピー計算ではなく、漏洩パスワードリストとの照合を推奨しています。パスつく.com のようなランダム生成ツールを使うことで、この理論値と実効値の乖離を解消できます。
よくある誤解として「記号を 1 つ追加すればエントロピーが大幅に上がる」と 考える人がいますが、これは正しくありません。 たとえば「 Summer2024!」のように既知の単語 + 年号 + 記号 1 文字という構成は、 攻撃者のルールベース辞書に含まれる典型的なパターンです。 この場合、理論上は 11 × log₂(95) = 約 72 ビットですが、 実効エントロピーは辞書サイズ (数万語) × 年号パターン (数十) × 記号 (数十) の 対数で計算され、せいぜい 25 ビット程度にしかなりません。レインボーテーブル攻撃と 組み合わせれば、さらに短時間で突破される可能性があります。 パスワードの強度は「見た目の複雑さ」ではなく「生成過程のランダム性」で決まるのです。
パスつく.com の強度メーターの仕組み
パスつく.com に搭載されている強度メーターは、上記のエントロピー計算に基づいて パスワードの強度をリアルタイムで評価しています。ユーザーが文字種や 文字数の設定を変更するたびに、エントロピーが再計算され、 メーターの表示が即座に更新されます。 内部では暗号学的に安全な乱数を使用しており、 生成されたパスワードは理論上のエントロピーと実効エントロピーが一致します。 この点が、人間が考えたパスワードとの決定的な違いです。 乱数の品質について詳しくはパスワード生成における乱数の品質の記事を参照してください。生成したパスワードの運用方法についてはパスワード管理のベストプラクティスも参考になります。
強度の判定基準は以下のとおりです。
- 40 ビット未満: 弱い - オンラインサービスには不十分
- 40-59 ビット: やや弱い - 重要でないサービスなら許容範囲
- 60-79 ビット: 普通 - 一般的なウェブサービスに適切
- 80-127 ビット: 強い - 金融サービスやメールアカウントに推奨
- 128 ビット以上: 非常に強い - 最高レベルのセキュリティ
パスつく.com で英大文字・英小文字・数字・記号の 4 種類をすべて有効にし、 16 文字以上で生成すれば、約 105 ビットのエントロピーが得られます。強度メーターを参考に、用途に応じた適切な強度のパスワードを生成してください。
用途別エントロピー推奨値と実践チェックリスト
エントロピーの理論を理解したうえで、実際にどのような設定でパスワードを生成すべきかを用途別にまとめます。
- SNS やフォーラム (低リスク): 60 ビット以上 - 英大小文字 + 数字で 12 文字
- メール、クラウドストレージ (中リスク): 80 ビット以上 - 全文字種で 14 文字
- 金融サービス、暗号資産 (高リスク): 100 ビット以上 - 全文字種で 16 文字
- パスワードマネージャーのマスターパスワード: 128 ビット以上 - 全文字種で 20 文字
以下のチェックリストで、現在のパスワード運用を点検してみてください。
- パスつく.com などのランダム生成ツールでパスワードを作成しているか
- 重要なアカウントのパスワードは 80 ビット以上のエントロピーがあるか
- サービスごとに異なるパスワードを使い分けているか
- パスワードマネージャーで一元管理しているか
- マスターパスワードは 128 ビット以上の強度を確保しているか
- 漏洩チェック (Have I Been Pwned 等) を定期的に実施しているか
今すぐできること
- パスつく.com で現在使っているパスワードと同じ文字数・文字種の設定を試し、強度メーターでエントロピーを確認する
- エントロピーが 80 ビット未満のアカウントを特定し、パスつく.com で全文字種 16 文字以上のパスワードに更新する
- 金融サービスやメールアカウントのパスワードは 100 ビット以上 (全文字種 16 文字以上) を目標に設定する
- パスワードマネージャーのマスターパスワードを 128 ビット以上 (全文字種 20 文字以上) に強化する
よくある質問
- パスワードのエントロピーとは何ですか?
- エントロピーはパスワードの予測困難さを数値化した指標で、ビット単位で表されます。使用する文字種と長さから計算され、値が大きいほど総当たり攻撃に対する耐性が高くなります。
- エントロピーが高ければ安全と言えますか?
- 理論上のエントロピーが高くても、辞書に載っている単語の組み合わせや既知の漏洩パスワードは攻撃者のリストに含まれているため安全とは限りません。ランダム生成されたパスワードで初めてエントロピーの理論値が実効的な強度になります。
- 安全なパスワードに必要なエントロピーは何ビットですか?
- 一般的なオンラインアカウントでは 60 ビット以上、重要なアカウントでは 80 ビット以上が推奨されます。英数字記号を含む 16 文字以上のランダムパスワードで約 100 ビットのエントロピーを確保できます。
この記事は役に立ちましたか?