エントロピー理論:パスワード強度の数学的基礎
エントロピーとは何か
パスワード強度を測る指標として、情報理論におけるエントロピー(予測困難性)が用いられます。エントロピーはビット単位で表され、値が大きいほど総当たり攻撃に必要な試行回数が増加します。
エントロピーの計算式:
H = log₂(N^L) H: 一様ランダム生成時の候補空間の大きさ(ビット換算) N: 使用可能な文字種の数 L: パスワードの長さ(文字数)以下の計算は、各文字を独立かつ一様にランダム選択した場合に限る理論値です。人が作ったパスワードや、固定パターンのある文字列にはそのまま当てはまりません。
文字種ごとのエントロピー比較
| 文字種 | 文字数 | 12文字 | 16文字 | 20文字 |
|---|---|---|---|---|
| 数字のみ | 10 | 40ビット | 53ビット | 66ビット |
| 英小文字のみ | 26 | 56ビット | 75ビット | 94ビット |
| 英数字(大小文字) | 62 | 72ビット | 95ビット | 119ビット |
| 英数字+記号(全種) | 94 | 79ビット | 105ビット | 132ビット |
重要な発見:16文字英数字 > 12文字全種
上記の表から、16文字の英数字パスワード(95ビット)は、12文字の記号込みパスワード(79ビット)よりも強度が高いことがわかります。つまり、記号を使わなくても、長さで補えば十分な強度を確保できます。
総当たり攻撃に必要な時間
保存されたハッシュが漏洩し、毎秒100億回の候補をオフラインで試せると仮定した場合の平均探索時間(候補空間の半分を試す時間、1年=365.25日):
- 12文字英数字(約71.5ビット):平均約5,100年
- 16文字英数字(約95.3ビット):平均約755億年
- 12文字・94種(約78.7ビット):平均約75万年
これは仮定したオフライン速度での理論上の目安です。実際の速度はハッシュ方式やハードウェアで大きく変わり、オンライン攻撃には別途レート制限が働きます。漏洩・フィッシング・再利用への耐性をこの計算から判断することはできません。
NIST SP 800-63B:文字種より長さが重要
NIST推奨の変遷
米国国立標準技術研究所(NIST)の現行デジタルアイデンティティガイドラインでは、従来の「複雑さ要件」よりも長さ、漏洩パスワードのブロック、使い回し防止を重視する考え方が示されています。組織へ適用する際は、参照版と対象範囲を公式ページで確認してください。
NIST SP 800-63B-4(2025年)パスワード要件
| 項目 | 旧来の運用例 | 現在の推奨 |
|---|---|---|
| 最小長 | 8文字 + 複雑さ要件 | 単一要素認証では15文字以上。MFAの一部としてのみ使う場合は8文字以上。少なくとも64文字の最大長を許容することを推奨 |
| 文字種の強制 | 大文字・小文字・数字・記号を必須 | 強制しない |
| 定期変更 | 定期的な変更を一律に要求 | 一律の定期変更は推奨しない |
| 辞書チェック | 漏洩リスト照合を行わない | 漏洩データベースとの照合を推奨 |
出典:NIST SP 800-63B-4 Passwords(公式)。最低長は認証方式別の検証者向け要件であり、64文字は最低許容上限の推奨値です。
なぜ文字種強制が推奨されなくなったのか
NIST の研究により、以下の問題が明らかになりました:
- 予測可能なパターン:「Password1!」のように、ユーザーは最小限の変更で要件を満たそうとする
- 記憶負荷の増大:複雑なルールはユーザーのパスワード再利用や紙メモを助長する
- 実効性の低さ:「P@ssw0rd」は複雑さ要件を満たすが、辞書攻撃で簡単に破られる
- 長さの方が効果的:同じ記憶負荷なら、複雑さより長さを増やす方がエントロピーが高まる
英数字パスワードを選ぶ際の目安
単一要素認証の最小長:15文字以上(個人向けの目安は16文字以上)
文字種:英数字からランダムに選ぶ(各文字種の使用を強制しない)
避けたい選び方:
- 辞書単語の単純な組み合わせ
- 連続した文字(abcd、1234)
- 繰り返し(aaaa、1111)
- ユーザー名やメールアドレスの部分文字列
- 過去に漏洩したパスワード(Have I Been Pwned等で確認)システム互換性:記号を避けるべき実務的理由
入力文字の制限があるレガシーシステム
一部の古いサービスでは、入力欄が許可する文字を制限しています。利用先の公式な入力仕様を確認し、記号を使えない場合は英数字の長さで候補空間を確保してください。
重要:記号を除いたパスワードはSQLインジェクション対策ではありません。入力を正しく扱えないサービスは運営側がパラメータ化クエリなどで修正すべきであり、不具合が疑われる場合はサービスへ報告してください。
Excel・VBAの文字コード制限
Excelのシート保護やVBAプロジェクト保護は、一部の記号や非ASCII文字で予期しない動作をする場合があります:
- Excel 2003以前:特定の記号がShift-JISエンコーディングで正しく処理されない
- VBA保護:パスワードに使用できる文字が実装により制限される場合がある
- 互換性問題:異なるExcelバージョン間で記号の扱いが変わることがある
詳細はExcelパスワードの安全性を参照してください。
日本の銀行システムにおける記号制限
銀行のログインパスワード、取引用パスワード、暗証番号は別の認証情報で、文字数と文字種は金融機関・サービス・確認時点によって変わります。銀行名だけを見て一般化せず、登録画面と各行の公式案内を確認してください。
制限へ対応するときの確認項目:
- サービスごとの仕様:入力欄、連携先、認証基盤が許可する文字種を確認する
- 既存システムとの互換性:古い実装では制限が残る場合があるが、個別の公式仕様で判断する
- 根本対策との区別:文字制限はSQLインジェクション等のサーバー側対策の代わりにならない
詳細は銀行パスワード要件の完全ガイドを参照してください。
記号なしパスワードの推奨設定
最低16文字、推奨20文字
記号を使用しない場合、以下の長さを推奨します:
- 12文字:理論上約71.5ビット。ただしNISTの単一要素認証の最低長15文字には達しない
- 16文字:推奨(95ビット)、一般的なオンラインサービス向け
- 20文字:高セキュリティ(119ビット)、金融・業務システム向け
似た文字の除外オプション
手入力が必要な場合、視覚的に混同しやすい文字を除外することを推奨します:
除外推奨文字:
I(アイ大文字)⇔ l(エル小文字)⇔ 1(数字イチ)
O(オー大文字)⇔ 0(数字ゼロ)
5(ゴ)⇔ S(エス)
2(ニ)⇔ Z(ゼット)
除外後の文字セット:
英大文字:ABCDEFGHJKLMNPQRSTUVWXY(23文字)
英小文字:abcdefghijkmnopqrstuvwxyz(25文字)
数字:3456789(7文字)
合計:55文字
16文字の候補空間:log₂(55^16) ≈ 92.5ビット(一様ランダム生成時)ランダム生成ツールの使用
実践ツール
記号なしパスワードを生成するには、以下のツールをご利用ください:
→ 記号なしパスワード生成ツールを使う英数字のみで16〜20文字のランダムパスワードを生成できます。似た文字の除外オプションも利用可能です。
まとめ:安全性と実用性の両立
記号なしパスワードは、以下の条件を満たせば、記号込みパスワードと同等以上の安全性を確保できます:
- 十分な長さ:16文字は理想化した候補空間の目安であり、サービス側の制限・漏洩・フィッシングは別に評価する
- ランダム生成:辞書単語や推測可能なパターンを避ける
- 漏洩チェック:過去の漏洩データベース(Have I Been Pwned等)と照合する
- パスワードマネージャー:長いパスワードの記憶負荷を軽減する
NIST標準が示すとおり、パスワードの安全性は「複雑さ」ではなく「長さ」と「予測困難性」で決まります。記号が使えないシステムでも、適切な長さのランダムな英数字パスワードを使用すれば、十分な安全性を確保できます。