パスワードエントロピーとは?
パスワードエントロピーとは、そのパスワードがどれほど推測されにくいかをビット単位で表した指標です。1ビット増えるごとに、攻撃者が平均して試さなければならない組み合わせの数は2倍になります。40ビットのパスワードはおよそ1兆通りの組み合わせを持ち、80ビット以上あれば現代の総当たり攻撃に対してかなり強固だとされています。なお、この計算ツールは数学的な理論値を一律に算出するものであり、辞書に載っている単語、推測しやすいパターン、使い回しといった要素は考慮しません。
この計算ツールの使い方
パスワードの文字数を入力し、使用する文字種にチェックを入れてください。選べるのは、小文字(26文字)、大文字(26文字)、数字(10文字)、記号(約32文字)です。計算ツールはこれらを合計して文字種の総数Rを求め、各文字がランダムかつ独立に選ばれると仮定してエントロピーを算出します。
計算式の解説
エントロピーは $$E = L \cdot \log_{2}(R)$$ で求められます。ここでLは文字数、Rは文字種の総数です。2を底とする対数を使うことで、組み合わせの総数(\(R^{L}\))をビット数へ変換できます。これは、1ビットが「はい/いいえ」という2択の判断1回に対応しているためです。同じことを \(E = \log_{2}(R^{L})\) と表すこともできます。
計算例
小文字+大文字+数字を使った12文字のパスワードでは、\(R = 26 + 26 + 10 = 62\) となります。したがって $$E = 12 \cdot \log_{2}(62) = 12 \cdot 5.954 \approx 71.45 \text{ ビット}$$ となり、組み合わせの数は \(62^{12} \approx 3.2 \times 10^{21}\) 通り。ほとんどの用途には十分な強度です。
よくある質問
何ビットあれば「安全」といえる? 一般的な目安として、60ビット以上ならまずまず、80ビット以上なら強固、重要なアカウントには100ビット以上が理想とされています。
実際のパスワードの強度を測れる? いいえ。この計算は文字が完全にランダムであることを前提としています。たとえば「Password1234」のような12文字のパスワードは、推測しやすいパターンに従っているため、実際のエントロピーははるかに低くなります。
なぜlog₂を使うの? エントロピーはビット単位で測られ、1ビット増えるごとに推測の手間がちょうど2倍になります。2を底とする対数は、まさにこの関係を表しているからです。