パスワードの強度を決める「情報エントロピー(bit)」とは?
パスワードの安全性は、単純な「複雑さ」だけでなく「文字種のプールサイズ(\(R\))」と「文字数の長さ(\(L\))」から算出される情報エントロピー \(E = L \times \log_2(R)\) によって数学的に評価されます。
| パスワード構成例 | 組み合わせ総数 | エントロピー | 毎秒100億回試行での解読時間 |
|---|---|---|---|
| 数字のみ 8桁 | 1億通り | 約 26.6 bits | 0.01秒(瞬時) |
| 英小文字+数字 8文字 | 約2.8兆通り | 約 41.4 bits | 約 4分40秒 |
| 英大小+数字+記号 12文字 | 約 \(6.8 \times 10^22\) 通り | 約 75.8 bits | 約 21万年 |
| 英大小+数字+記号 16文字(推奨) | 約 \(4.7 \times 10^30\) 通り | 約 101.1 bits | 約 1,400兆年 |
詳しいセキュリティ対策についてはコラム記事「安全なパスワード管理と文字数・記号の組み合わせ方【総当たり攻撃対策】」をご参照ください。
よくある質問(FAQ)
Q. 生成されたパスワードがネットワーク経由で送信・記録されることはありませんか?
A. 一切ありません。お使いのブラウザに内蔵されている暗号学的に安全な乱数生成器(window.crypto.getRandomValues)を使用して端末内でのみ生成します。通信を遮断したオフライン状態でも動作します。
Q. なぜ通常の Math.random() ではなく Web Crypto API を使うのですか?
A. JavaScriptの標準的な Math.random() は疑似乱数であり、内部状態が推測されると生成パターンを予測されるリスクがあります。一方、Web Crypto API(CSPRNG)はOSレベルのハードウェアエントロピーを利用するため、暗号学的に予測不可能な乱数を生成できます。
Q. 見分けにくい文字(l, I, 1, O, 0)を除外するメリットは何ですか?
A. スマートフォンの画面を見ながら手入力する必要があるWi-Fiパスワードや初期パスワードにおいて、小文字のエル(l)と大文字のアイ(I)や数字のイチ(1)の読み間違いによるログインロックを防ぐことができます。