情報セキュリティの基礎
8文字のパスワードを、すべての候補を試す総当たりで探す。1秒あたり1×10^10個の候補を試せるとき、英小文字(26種類)だけで作ったパスワードと、英大文字・英小文字・数字(62種類)で作ったパスワードについて、すべての候補を試し終えるまでの時間の組み合わせとして最も近いものはどれか。
- A英小文字のみは約21秒、62種類は約6時間
- B英小文字のみは約21秒、62種類は約4.7分
- C英小文字のみは約3.5分、62種類は約2.5日
答えと解説を見る
正解:A. 英小文字のみは約21秒、62種類は約6時間
8文字のパスワードの候補の数は、使える文字の種類を8回掛けた数です。英小文字だけなら 26^8 = 208827064576 通り(約2.1×10^11)で、1秒に1×10^10個試すと、約2.1×10^11 ÷ 1×10^10 ≈ 21秒で全部を試し終えます。62種類なら 62^8 = 218340105584896 通り(約2.2×10^14)で、約21834秒、つまり約6時間かかります。文字の種類を増やすと、候補の数は1文字あたりの倍率の8乗で効くため、約1000倍に増えます。ただし、この計算は、漏えいした高速なハッシュ値を手元で総当たりする場合の目安です。辞書に載っている単語や使い回しのパスワードは、総当たりよりはるかに早く見つかるので、長くてランダムなパスワードを使い、サービスの側では遅いハッシュ方式や、ログインの試行回数の制限、多要素認証を組み合わせることが大切です。
- A. 正しい。26^8 ≈ 2.1×10^11 で約21秒、62^8 ≈ 2.2×10^14 で約21834秒(約6時間)です。
- B. 約4.7分は、英小文字と数字の36種類(36^8 ≈ 2.8×10^12、約282秒)と取り違えた値です。
- C. 1秒あたりの試行の数を1×10^9個と、1桁取り違えた値です(約209秒と約218340秒)。