「パスワードは8文字以上、大文字・小文字・数字・記号を混ぜて」——何年も前から同じことが言われていますが、 実はそのルール自体が時代遅れになっています。この記事では、パスワードの「強さ」を 数学的に考える方法と、現実的な運用戦略を解説します。
パスワード強度は「エントロピー」で測る
パスワードの強度はエントロピー(ビット単位)で数値化できます。これは 「そのパスワードに何通りのバリエーションがありうるか」を対数で表したもので、 計算式はlog₂(文字種数 ^ 桁数)です。
| パスワードの条件 | エントロピー | 総当たり想定 |
|---|---|---|
| 英小文字のみ8桁(26^8) | 約38ビット | 数分〜数時間 |
| 英大小+数字8桁(62^8) | 約48ビット | 数日〜1週間 |
| 英大小+数字+記号12桁(94^12) | 約78ビット | 現実的には突破不可 |
| 英大小+数字+記号16桁(94^16) | 約105ビット | 宇宙の年齢級 |
一般に70ビット以上あれば現実的な攻撃では破られないとされます。 本サイトのパスワード生成ツールは既定で16〜20文字を推奨しており、このラインを大きく超えます。
「文字種を増やす」より「桁を伸ばす」方が効く
よく「大文字・小文字・数字・記号を全部使え」と言われますが、その効果は限定的です。 記号を加えて文字種を62→94に増やしても、エントロピーが増えるのは1文字あたり約0.6ビットだけ。 それに対して桁数を1つ伸ばすと、英大小+数字なら約5.95ビット増えます。 「記号を入れる」より「2文字伸ばす」ほうが圧倒的に強化効果が高いのです。
パスフレーズという選択肢
覚える必要があるパスワード(パスワードマネージャーのマスターパスワードなど)では、 ランダム16文字より単語を4〜5個つないだパスフレーズの方が実用的です。
例:correct-horse-battery-staple(有名なXKCD 936のネタ)。7,776語の辞書から4語をランダムに選んだ場合、エントロピーは約51ビット。 5語にすれば約65ビットです。数字や記号を交えればさらに強化できます。
パスフレーズは脳内で画像化できるのが強みで、ランダム文字列よりはるかに覚えやすく、 それでいて十分な強度を確保できます。
使い回しが最大のリスク
どれだけ強いパスワードを作っても、複数サービスで使い回していたら無意味です。 1つのサービスで情報漏洩が起きれば、同じメールアドレス+同じパスワードの組み合わせが 他のサービスでも試されます(クレデンシャルスタッフィング攻撃)。
解決策はパスワードマネージャー一択です。1Password・Bitwarden・ブラウザ組み込みの マネージャーなどを使えば、サービスごとに独立した20文字ランダムパスワードを使え、 覚える必要があるのはマスターパスワード1つだけになります。
実務で使える運用ルール
- マスターパスワードは5語以上のパスフレーズで覚える
- 各サービスはランダム16〜20文字をマネージャーで管理
- 使える場面では必ず2段階認証(2FA)を有効化
- 漏洩チェックサービス(Have I Been Pwned など)で定期的に確認
- 重要アカウント(銀行・メール)は特に長いパスワードを使う
関連するツール
- パスワード生成(16〜32文字ランダム)
- ランダム文字列生成(APIキーやトークン向け)
- ハッシュ値生成(SHA256など)
- テキスト暗号化(AES-256)
まとめ
パスワード強度はエントロピー(ビット)で数値化でき、70ビット以上が現実的な安全ラインです。 重要なのは桁数を伸ばすことと使い回さないこと。 覚えるのが難しければパスフレーズ+パスワードマネージャーの組み合わせが、 現代において最もバランスの取れた解です。