パスワードエントロピー計算機
パスワードの長さと使用する文字の種類(小文字・大文字・数字・記号)を選ぶと、エントロピー(ビット)、強度評価、可能な組み合わせの総数、おおよその解読予想時間を計算します。
この計算の仕組み
エントロピーは、ランダムに生成されたパスワードがどれだけ予測しにくいかを示す指標です。計算式は ビット = 長さ × log2(文字プールのサイズ) で、プールサイズは各桁で使える文字の種類数を表します。小文字26、大文字26、数字10、一般的な記号32です。選ぶ文字種を増やすほどプールが大きくなり、プールに加わる文字ひとつひとつがすべての桁にわずかなエントロピーを足していきます。
長さが1文字増えるごとに、可能なパスワードの数はプールサイズの分だけ掛け算されるため、長さの効果はきわめて大きくなります。小文字のみのパスワードに4文字足すとエントロピーはおよそ2倍になりますが、記号を有効にしても合計で数ビットしか増えません。これが『複雑さより長さ』が定番の助言である理由です — ありふれた単語を並べた長いパスフレーズは、短い記号の寄せ集めより通常はるかに強力です。
解読時間は、攻撃者が1秒あたり100億回(1e10)の推測を試せると仮定して見積もります。これは、盗まれてソルトなし(または弱く)ハッシュ化されたパスワードファイルを最新のGPUでオフライン攻撃するときの典型的な速度です。実際のログイン画面を狙うオンライン攻撃は試行回数制限のためはるかに遅く、現実のオンライン解読時間はここに表示される値よりずっと長くなることが多いです。
計算例
この計算で使う文字プールのサイズ
各文字カテゴリは1桁あたり一定の場合の数を加えます。この計算機は選んだカテゴリの場合の数を合計してプールの総サイズを求め、ビット = 長さ × log2(プール) を適用します。
| 文字種 | プールサイズ | 例 |
|---|---|---|
| 小文字 | 26 | a, b, c … z |
| 大文字 | 26 | A, B, C … Z |
| 数字 | 10 | 0–9 |
| 記号 | 32 | ! @ # $ % ^ & * ( ) - _ = + など |
| 小文字 + 数字 | 36 | 例: 'a1b2c3d4' |
| 小文字 + 大文字 + 数字 | 62 | 例: 'Kx9mQ2p7' |
| 4種すべて | 94 | 例: 'Kx9!mQ2#p7' |
強度評価の意味
- 非常に弱い(28ビット未満): ほぼ瞬時に推測可能で、4桁のPIN並み。
- 弱い(28〜35ビット): 自動化された攻撃で数分〜数時間以内に破られる。
- まあまあ(36〜59ビット): 重要度の低い使い捨てアカウントには十分だが、機密用途には不足。
- 強い(60〜127ビット): ほとんどの個人・金融アカウントをオフライン解読からしっかり守る。
- 非常に強い(128ビット以上): 現在および近い将来の計算能力では事実上破れない。
なぜ複雑さより長さが勝るのか
文字を1つ増やすたびに、可能なパスワードの総数は文字プールのサイズ分だけ掛け算されますが、新しい文字種を有効にしても、すでに使っている文字のプールを広げるだけです。小文字のみのパスワードを8文字から12文字にする(プール26)と鍵空間はおよそ 26⁴倍 — 45万倍以上 — になりますが、既存の8文字パスワードに記号を足しても、増えるのはおよそ (58/26)⁸ ≈ 218倍にとどまります。2010年代半ば以降のセキュリティ指針(米国 NIST SP 800-63B を含む)が、入力しづらく覚えにくい短い記号詰めパスワードより、長く覚えやすいパスフレーズを推奨するのはこのためです。
解読時間の推定の前提
推定解読時間は、攻撃者がすでにパスワードのハッシュを入手している状態(例: 盗まれたデータベース)で、1秒あたり100億回の推測を試せると仮定します。これはソルトなしの高速ハッシュを最新GPUで解読する際の現実的な速度です。実際の解読時間は、パスワードの保存に使われたハッシュアルゴリズム(bcrypt と Argon2 は意図的に遅く、推測速度を1秒あたり数千回まで落とせる)、漏えいパスワード辞書に含まれるかどうか、攻撃がオフラインか回数制限付きのオンラインか、によって大きく変わります。この数値は絶対的な保証ではなく、パスワードの選択を相対的に比較するために使ってください。