先に結論
記号は「必須ではない」が、「無価値でもない」——結論はこの一点に集約されます。
記号を必須にしても、到達しうる強度の上限は上がりません。8文字のパスワードは、使える文字をすべて動員しても52.56ビットが上限で、記号を必須にすると52.51ビットへわずかに下がります。上限そのものを動かすのは長さだけです。一方、漏えいした100万件を調べると、記号を含むパスワードの73.25%は記号を外すか leet 表記を戻すだけで攻撃者の辞書の語に還元できました。記号を課す費用(作成の失敗と手間)に見合う強度の利得は、測定上は確認できません。
規範は「推奨しない」から「禁止」へ変わった
NIST SP 800-63B は2017年版で、文字種の混在を強制する規則を「課すべきでない(SHOULD NOT)」としていました。2025年の第4改訂版(SP 800-63B-4)はこれを「課してはならない(SHALL NOT)」に格上げし、同時に単一要素認証の最低長を8文字から15文字へ引き上げています(MFAの一部として用いる場合は8文字)。
同じ方向の判断は他の機関にもあります。英国NCSC は「複雑さの要件を用いてはならない。攻撃者はこれらの戦略に通じている」と述べ、OWASP も文字種の制限を禁じたうえで、保存側の対策(bcrypt の work factor 最低10、Argon2id の推奨パラメータなど)を優先するよう求めています。
ただし、この方針は国際的に一致しているわけではありません。フランス ANSSI の PG-078 は複雑性規則を推奨しており(オンライン攻撃への有効性を根拠としています)、ドイツ BSI は「20〜25文字・2文字種」と「8〜12文字・4文字種」を等価な選択肢として並べています。オーストラリア ACSC は長さを15・17・20文字に段階化しています。日本の国家サイバー統括室のガイド(令和8年6月改定)は、長さと文字種の交換関係を明示し、一律の閾値を置いていません。
争点は「記号が効くか」ではなく、どの攻撃層を支配的と見るか、そして長さの上限をどう扱うかにあります。以下、実測と計算でこの争点を分解します。
同じ規則が、基準次第で +14.91ビットにも −1.13ビットにもなる
「記号を必須にすると強度が上がる」という主張が成り立つかどうかは、何を比較の基準に置くかで決まります。長さ8文字について、3つの基準で同じ規則を測ったものが表1です。
表1:同じ規則を3つの基準で測る(長さ8文字)
| 基準とする集合 | 探索空間 | ビット | 規則を課した場合との差 |
|---|---|---|---|
| 制約なし(印字可能ASCII 95文字) | 6.634 × 10¹⁵ | 52.56 | −1.13 bits(4文字種すべてを必須にした場合) |
| 英数字のみ(62文字) | 2.183 × 10¹⁴ | 47.63 | +4.88 bits(記号1文字以上を必須にした場合) |
| 小文字のみ(26文字) | 2.088 × 10¹¹ | 37.60 | +14.91 bits(同上) |
「記号を強制されなければ英数字しか使わなかった利用者」を基準にすれば、記号1文字以上の必須化は29.4倍、4.88ビットの増加になり、0.82文字分に相当します。ところが「制約なし」を基準にすると話が逆転します。印字可能ASCII 95文字を使える8文字の空間は52.56ビットですが、4文字種すべてを必須にすると包除原理により51.43ビットへ狭まります。同じ規則が、基準次第で +14.91ビットから −1.13ビットまで動くのです。
つまり「記号は強度を上げる」という主張は、英数字しか使わない利用者を基準にした場合にのみ成立します。記号を必須にすることは、利用者をより広い文字集合へ引き上げるのではなく、利用可能な空間の一部を禁止する操作だからです。
上限を動かすのは長さだけ
強度を倍率ではなく上限(その条件で達成しうる最大値)で見ると、構造がはっきりします。8文字のパスワードは、印字可能ASCIIのすべてを使えたとしても52.56ビットが上限です。ここに記号を必須にすると52.51ビットとなり、上限は上がりません。12文字の小文字のみの上限は56.41ビットで、8文字で記号を必須にした52.51ビットを上回ります。記号を使わないという条件を課しても、長さだけで上回るのです。
表2:長さが決める強度の上限(ビット)
| 長さ | 小文字のみ(26) | 英数字(62) | 印字可能ASCII(95) |
|---|---|---|---|
| 8 | 37.60 | 47.63 | 52.56 |
| 12 | 56.41 | 71.45 | 78.84 |
| 15 | 70.50 | 89.31 | 98.55 |
| 20 | 94.00 | 119.08 | 131.40 |
この表の値は「その長さと文字集合で達成しうる最大値」であり、実際のパスワードの強度ではありません。実測では、利用者が選ぶパスワードの推測困難性は、Bonneau (2012) の7,000万件の分析でおおよそ20ビット相当にとどまります。
文字種を増やすことは強度の再配分であり、長さを増やすことは上限そのものを動かす操作です。これが「文字種より長さ」という主張の構造的な根拠です。長さの考え方についてはパスワードは何文字あれば安全かで詳しく扱っています。
統制実験の「+4.87ビット」は、探索空間からは導けない
記号を必須にする効果が実測で確認された研究もあります。Komanduri et al. (2011) は5,103名を対象とした統制実験で、同じ8文字でも4文字種すべてを必須にすると34.30ビット、規則なしでは29.43ビットという結果を得ました。差は+4.87ビットです。
しかし、この増加は探索空間の計算からは導けません。同じ8文字で4文字種を必須にすると、空間は52.56ビットから51.43ビットへ1.13ビット狭くなります。実験が測ったのは「利用者が実際に選んだ文字列」の変化であって、空間の大きさではないのです。規則を課された利用者が、より広い文字集合から、より推測しにくい文字列を選ぶようになった、という行動の変化が+4.87ビットの正体です。
この解釈は、別の数字で裏づけられます。同じ実験で16文字・規則なしは44.67ビットに達し、8文字・4文字種必須との差は10.37ビット、規則による利得の2倍以上になります。しかも推測予算が10¹²回に達すると順序が逆転します。Kelley et al. (2012) も同じ構造を報告しており、10億回では8文字・全文字種が突破率1.4%で最強だったものが、1兆回では16文字の14.6%に対して8文字は63.0%へ悪化します。
実サービスの利用者を対象とした Tan et al. (2020) の比較も同じ結論です。強度のしきい値を揃えた条件では、文字クラス数を増やすより最小長を伸ばすほうが突破率は下がります。
表3:しきい値を揃えた比較(10¹⁴回の推測での突破率)
| 条件 | 最小長 | 10⁶回での突破率 | 10¹⁴回での突破率 |
|---|---|---|---|
| 3文字種 + 8文字以上 | 8 | 0.4% | 41.3% |
| 1文字種 + 8文字以上 | 8 | 1% | 48.3% |
| 2文字種 + 12文字以上 | 12 | 0% | 29.6% |
| 3文字種 + 12文字以上 | 12 | 0% | 27.6% |
| 1文字種 + 16文字以上 | 16 | 0.4% | 15.2% |
出典:Tan et al. (2020) Experiment 1 の結果表より。条件名の「+NN6」は数字6文字以上の要求を表します。
さらに、しきい値を課さずに同じ8文字で文字クラス数だけを変えた比較では、1文字種で48.2%、3文字種で44.8%、4文字種で48.4%となり、文字クラス数を増やしても突破率は下がりません。規則による利得は、攻撃者の規則集合が整備されるほど吸収されていきます。
忘れてはならないのは費用の側です。4文字種を必須にした8文字では、作成の試行回数が1.13回から3.35回へ、作成失敗率が8.5%から57.6%へ、実験からの脱落率が14.7%から25.0%へ増えました。16文字・規則なしの作成失敗率が49.9%であることと比べても、複雑さの要求は利用者にとって高くつくことが分かります。
実データでは、記号を含むパスワードの73.25%が辞書の語に戻る
では現実のパスワードで、記号はどう使われているのか。漏えいした100万件を攻撃者の辞書(約100万語)と照合すると、記号を含むパスワードの73.25%が、記号を除去するか leet 表記を戻すだけで辞書の語に還元できました。独立した英国NCSC の集合でも85.70%で、値は一致しないものの過半数が還元可能である点は共通します。
表4:記号を含むパスワードの攻撃者辞書への還元可能性
| 分類 | D-01(100万件・記号を含む7,186件) | D-02(NCSC・記号を含む1,805件) |
|---|---|---|
| 記号を除去すると辞書の語 | 51.67% | 66.59% |
| 記号・数字を文字に戻すと辞書の語(leet逆変換) | 21.58% | 19.11% |
| 英数字のコアはあるが辞書にない | 26.37% | 13.91% |
| その他 | 0.38% | 0.39% |
つまり、攻撃者が変換規則を数十通り追加するだけで、記号の過半を辞書攻撃の内側に吸収できてしまうということです。記号を含む割合そのものも0.719%(NCSC 集合では1.808%)にとどまり、大多数の利用者は記号を使っていません。使われ方にも偏りがあり、単一の記号は末尾(32.08%)より中央(63.61%)に置かれる傾向があります。
記号の実効利得は0.21〜0.43ビットで、条件を変えると符号が反転する
同じ長さのパスワードを「記号なし」と「記号あり」に分けて比較すると、記号1文字あたりの実効的な利得は+0.211〜+0.432ビットでした。長さ7〜9文字についてはブートストラップ法による95%信頼区間も算出されており、いずれも0を含みません。
表5:同一長での記号の実効利得(D-01)
| 長さ | 記号なしに対する比 | 実効利得(ビット) | 95%信頼区間 |
|---|---|---|---|
| 7 | 1.157 | +0.211 | [+0.130, +0.251] |
| 8 | 1.287 | +0.364 | [+0.317, +0.419] |
| 9 | 1.217 | +0.284 | [+0.212, +0.355] |
| 10 | 1.230 | +0.298 | 算出せず(n が少ない) |
| 11 | 1.317 | +0.397 | 算出せず(n が少ない) |
| 12 | 1.349 | +0.432 | 算出せず(n が少ない) |
ただしこの利得は不安定です。NCSC の集合で同じ計算をすると、長さ8で比0.888(−0.171ビット)、長さ10で比0.695(−0.526ビット)と符号が反転します。推測予算の取り方を変えても、10⁴回で反転し、10⁵回ではすべての長さで比が1を下回ります。差は高々0.5ビットです。
さらに、大文字を対照にとって同じ計算をしても同程度の差が出ます(長さ7で比1.157)。記号に固有の効果と、単に「いつもと違う文字種を使った」ことによる効果を、この測定では区別できません。したがって「記号に意味がある/ない」を、この差から断定することはできないのです。
どこで効くのか:3つの攻撃層に分けて見る
記号の効き目は、攻撃の層によって変わります。攻撃を①辞書+変換規則、②小規模なマスク攻撃、③大規模なマスク攻撃(完全探索に近づく)の3層に分け、推測回数ごとに所要時間を計算したものが表6です。
表6:推測回数と、3つの攻撃層での所要時間
| 推測回数 | 想定される攻撃内容 | オンライン(100回上限) | MD5保存 | bcrypt cost=10 |
|---|---|---|---|---|
| 10⁹ 回 | 辞書+変換規則(第1・2層) | 到達不能 | 5.0 ミリ秒 | 3.5 日 |
| 10¹² 回 | 小規模なマスク攻撃(第3層) | 到達不能 | 5.0 秒 | 9.6 年 |
| 10¹⁵ 回 | 大規模なマスク攻撃 | 到達不能 | 1.4 時間 | 9,600 年 |
| 95⁸(52.6 bit) | 8文字・全ASCIIの完全探索 | 到達不能 | 9.2 時間 | 6.4 万年 |
| 2⁷⁰ | 12文字級の強度 | 到達不能 | 187 年 | 10¹⁰ 年 |
攻撃速度は MD5 が 2.0 × 10¹¹回/秒、bcrypt(cost=10)が 3.3 × 10³回/秒(いずれも2016年の実測に基づく換算)。10¹²回の推測は Blocki et al. (2018) の算術では約0.007ドルに相当します。
表6から読み取れるのは、層によって効く防御が違うということです。オンライン攻撃には試行回数の制限が効き、100回の上限のもとでは10¹²回の推測はそもそも到達できません。第1・2層(辞書と変換規則)に対してはブロックリストが効きます。記号の必須化が効くのは、利用者が記号を予測不能な位置・組み合わせで使う場合の第3層ですが、前述のとおり実データでは記号の73.25%が正規化で吸収されます。
よく見かける「8文字の解読に164年」といった表は、ゼロからの完全な総当たりを前提とした数字で、実際の攻撃を過大評価しています。攻撃者は辞書と規則から始めます。100万件規模の解析で記号の73.25%が辞書語に戻るという事実は、その出発点の効率を示しています。
長さにも効かない条件がある
ここまでで「長さのほうが効率的」という結論が出ましたが、長さにも限界があります。辞書攻撃の内側では、長さ1文字あたりの実効増加は次のとおりでした。
- 小文字のみ:+0.067ビット(理論値は +4.70ビット)
- 小文字+数字:+0.034ビット(理論値 +5.17ビット)
- 小文字+大文字:+0.100ビット(理論値 +5.70ビット)
- 小文字+大文字+数字:+0.001ビット(理論値 +5.95ビット)
小文字のみの場合でさえ、実効増加は理論値の1.4%です。追加された文字が予測可能な系列で埋められると、長さは機能しません。部分文字列「1234」を含むパスワードの突破率は43.6%で、含まない場合の13.9%を大きく上回ります(Shay et al., 2014、8,143名。無作為割付ではないため相関の提示にとどまります)。
したがって「長さ優先」は、単独の処方ではありません。最低長の引き上げ・ブロックリスト・試行回数制限・多要素認証と組み合わせたときにのみ成立する方針です。この点はNIST が15文字をなぜ選んだのかの分析とも一致します。
実務での処方
3つの水準の数値(集合の大きさ・利用者が実際に選ぶ文字列の推測困難性・打ち切り集合内での順位)をつなぐと、実務的な処方は次のようになります。
- 最低長を確保する。単一要素認証では15文字、MFAの一部として用いる場合は8文字が基準です。
- 文字種の混在を要求しない。NIST と OWASP は禁止しており、費用対効果の測定もそれを支持します。
- ブロックリストを導入する。第1・2層の攻撃を直接ふさぐ、最も効率のよい統制です。
- 試行回数を制限する。オンライン攻撃にはこれが効きます。
- 最大長を64文字以上確保し、切り詰めない。パスフレーズとパスワードマネージャーを活かすための条件です。
- 貼り付けとパスワードマネージャーを許可し、強度の案内を提供する。長いパスワードを入力するコストを下げる方向の設計です。
利用者側は、MFAを有効にし、パスワードは自分で考えずにパスワード生成ツールや管理アプリに生成させるのが確実です。文字種を混ぜるより長さを確保するほうが効率的で、文字制限のあるサービスでは記号なしパスワードの考え方が役立ちます。現在のパスワードの文字構成を確認する場合は、実物ではなく特徴を再現した近似サンプルをパスワード強度チェックで診断してください。
まとめ
- 記号は必須ではないが、無価値でもない。記号を強制されなければ英数字しか使わなかった利用者にとっては、0.82文字分の意味があります。ただしそれ以外の基準では効果が説明できません。
- 統制実験の+4.87ビットは空間から導けない。同じ8文字で4文字種必須の空間はむしろ1.13ビット狭く、+4.87ビットは利用者行動の変化に由来します。
- 規則の利得は吸収され、長さの利得は残る。16文字・規則なしは44.67ビットで、10¹²回の推測では順序が逆転します。
- 実データでは記号の73.25%が辞書語に還元される。実効利得は0.21〜0.43ビットで、集合と予算の取り方により符号が反転し、大文字対照との区別もつきません。
- 上限を動かすのは長さだけ。8文字は全文字種でも52.56ビット、記号必須では52.51ビットへ下がります。12文字の小文字のみ(56.41ビット)が8文字の全文字種を上回ります。
- 「長さ優先」も条件付き。辞書層の内部では長さ1文字あたり+0.067ビットにとどまり、最低長・ブロックリスト・試行回数制限・MFAとの組み合わせでのみ機能します。
本記事の調査範囲と限界
- 観測データは反実仮想ではありません。記号を使ったパスワードと使わなかったパスワードの比較は、利用者の属性や作成時期の違いを含みます。効果の識別は1ビット未満の水準で困難であり、本記事の数字は相関の提示にとどまります。
- 右打ち切りと選択バイアスがあります。漏えい集合に含まれるパスワードは、漏えいしたから含まれているのであり、母集団を代表しません。
- 分析対象は英語圏の集合です。日本語話者のパスワード集合に対する同種の分析は行われていません。
- 記号に固有の効果は分離できていません。大文字を対照にとっても同程度の差が出るためです。
- 攻撃速度は2016年の実測に基づきます。Argon2id と scrypt については、一次資料で攻撃速度を確認できていないため、本記事では数値を主張していません。
- ISO/IEC 27002 5.17 と PCI DSS 8.3.6 の原文は取得できていません。したがって本記事はこれらの規格の内容について何も主張しません。
- ビット値は上限であり、研究間で横並びに比較できるものではありません。また、アルゴリズムの進歩が長さに有利に働くという見方は推論であり、実測で検証されたものではありません。
参考資料
- NIST SP 800-63B-4(2025・構成規則の禁止と単一要素15文字)
- NIST SP 800-63B(2017・構成規則は SHOULD NOT だった版)
- 英国NCSC・Password policy: updating your approach
- OWASP・Authentication Cheat Sheet
- OWASP・Password Storage Cheat Sheet(bcrypt の work factor 最低10 など)
- ANSSI-PG-078(フランス・複雑性規則を推奨する立場)
- 国家サイバー統括室・国民のためのサイバーセキュリティガイド(令和8年6月改定)
- Komanduri et al. (2011)・Of passwords and people(5,103名の統制実験)
- Kelley et al. (2012)・Guess Again(推測予算による順位の逆転)
- Tan et al. (2020)・文字クラス数と長さの比較実験
- Shay et al. (2014)・Can long passwords be secure and usable?
- Bonneau (2012)・The Science of Guessing(7,000万件の実測)
- Kanta et al. (2021)・39億アカウントの分析
- Melicher et al. (2016)・ニューラルネットワークによる推測
- Lee et al. (2022)・実サービスにおけるパスワードポリシーの実装状況
- Gosney (2016)・攻撃コストの換算に用いた実測ベンチマーク
- Hive Systems・Are your passwords in the green?(一般的な解読時間表)
- ACSC・Guidelines for system access(長さを段階化する立場)
著者・編集:passwordgenjp.com 情報セキュリティ研究チーム。公開資料の確認日:2026年9月15日。