パスワードの文字数と総当たり攻撃の試行回数は?
ITパスポート試験 令和元年度秋期 問80 / 基礎理論 › 離散数学
過去問にチャレンジ
パスワードの解読方法の一つとして、全ての文字の組合せを試みる総当たり攻撃がある。“A” から “Z” の26種類の文字を使用できるパスワードにおいて、文字数を4文字から6文字に増やすと、総当たり攻撃でパスワードを解読するための最大の試行回数は何倍になるか。
- ア
2
- イ
24
- ウ
52
- エ
676
会話形式の解説
講師注目するのは、文字を二つ増やしたとき、試す候補が何倍になるかです。
受験者増えるのは2文字なので、2倍と考えたくなります。
講師文字数の差と候補数の倍率は別です。増えた一つ目の位置には26通りの選び方があります。
受験者二つ目の位置にも、同じように26通りあるのですね。
講師はい。元の4文字の候補一つひとつに対して、増えた二つの位置の文字を選びます。
受験者それなら、26+26で52倍でしょうか。
講師二つの位置を組み合わせるので、選び方は足さずに掛けます。26×26で676倍です。
受験者4文字と6文字の候補数を比べても、同じ結果になりますか。
講師4文字なら26の4乗通り、6文字なら26の6乗通りです。割り算をすると、倍率は26の2乗になります。
受験者24倍という選択肢も、26から増えた2文字を引いただけなので違いますね。
講師そのとおりです。最大試行回数の倍率は、候補の総数を比べて求めます。
受験者文字数の差でも足し算でもなく、追加した各位置の選び方を掛けて676倍ですね。
講師はい。1文字増えるごとに候補数が26倍になると考えると、文字数が変わる問題にも応用できます。
まとめ
英大文字26種類で作るパスワードは、1文字増えるごとに候補数が26倍になります。4文字から6文字へ増やす場合、倍率は26×26です。したがって、総当たり攻撃の最大試行回数は676倍になります。
解答・解説
正解はエです
この問題のテーマ
パスワードを2文字長くしたとき、総当たり攻撃の最大試行回数が何倍になるかを問う問題です。
解き方の考え方
使える文字が26種類なら、n文字のパスワードは26のn乗通りあります。4文字と6文字それぞれの通り数を比べ、6文字の通り数を4文字の通り数で割ります。
選択肢ごとの解説
- ×ア 2アの2倍は、増えた文字数だけを倍率と考えた値です。追加した各文字にはそれぞれ26通りの選び方があるため、倍率は2ではありません。
- ×イ 24イの24倍は、文字の種類数から増えた文字数を引いた値です。試行回数の倍率は引き算ではなく、追加した文字それぞれの選び方を掛けて求めます。
- ×ウ 52ウの52倍は、追加した2文字の選び方を26+26として数えた値です。2文字の組合せは、一方の26通りそれぞれに対して、もう一方も26通りあるので、26×26通りです。
- ○エ 676エの676倍が正解です。最大試行回数の比は、26の6乗÷26の4乗=26の2乗=26×26=676と計算できます。追加した2文字の選び方を直接数えても26×26となり、結果が一致します。
補足
文字数の差である2を、そのまま試行回数の倍率にしないことが大切です。追加する文字の選び方は足すのではなく、掛け合わせます。
POINT
- 26種類の文字から作るn文字のパスワードは、26のn乗通りあります。
- 総当たり攻撃の最大試行回数を比べるときは、候補の総数の比を求めます。
- 文字を2文字増やすと、候補の数は26の2乗倍になります。
