ITパスポート過去問 令和1年度(2019年)問80
パスワードの解読方法の一つとして,全ての文字の組合せを試みる総当たり攻撃がある。“A”から“Z”の26種類の文字を使用できるパスワードにおいて,文字数を4文字から6文字に増やすと,総当たり攻撃でパスワードを解読するための最大の試行回数は何倍になるか。
選択肢
- ア:2
- イ:24
- ウ:52
- エ:676
- ア
- イ
- ウ
- エ
正解と解き方・学習ポイント(AI解説)
総当たり攻撃の最大試行回数は、使用できる文字の種類数をN、文字数をLとすると NL です。4文字から6文字に増やすと、倍率は 266 / 264 = 26(6-4) = 262 = 676 なので、最大試行回数は676倍になります。
Point
この問題は、総当たり攻撃における試行回数がパスワードの文字数に対して指数的に増えることを、組合せ数の式 (文字種数文字数)を使って計算できるかを確認する問題です。
解くために必要な知識
この問題を解くには、総当たり攻撃で必要になる試行回数の考え方と、組合せ数の基本式を使った計算が必要です。
用語の整理
| 用語名 | 意味 |
|---|---|
| 総当たり攻撃(ブルートフォース攻撃) | あり得る文字列を全て試してパスワードを推定する攻撃方法です。 |
| 文字種類数 | パスワード1文字として使える文字の種類の数です。この問題では26種類です。 |
| 文字数 | パスワードを構成する文字の長さです。この問題では4文字、6文字です。 |
| 最大試行回数 | 最悪の場合に必要となる試行回数で、正しいパスワードが最後に見つかる場合の回数です。 |
組合せ数の基本
基本式
使用できる文字の種類数を N、文字数を L とすると、組合せ数(最大試行回数)は次の式で表せます。
組合せ数 = NL
この式になる理由
各文字位置でN通りの選択肢があり、それがL文字分あるため、掛け算の法則で N × N × ...(L回)= NL になります。
この問題で使う計算の規則
指数の規則(同じ底の割り算)
Na ÷ Nb = N(a-b)
この規則を使うと、4文字から6文字に増やしたときの倍率を簡単に計算できます。
問題の解法手順
問題の注目ポイントは、総当たり攻撃の最大試行回数が「組合せ総数(文字種数の累乗)」になることです。
解く手順
1. 使える文字の種類数を確認する
A〜Zの26種類です。
2. 4文字の最大試行回数を式で表す
最大試行回数 = 264 です。
3. 6文字の最大試行回数を式で表す
最大試行回数 = 266 です。
4. 倍率を計算する
倍率 = 266 / 264
指数の法則より、266 / 264 = 26(6-4) = 262 です。
5. 数値に直す
262 = 26 × 26 = 676
よって、最大試行回数は676倍です。
選択肢ごとの解説
- ア:不正解
文字数が2文字増えること(6 - 4 = 2)だけを答えた値であり、試行回数の倍率ではありません。
- イ:不正解
4文字から6文字への増加は2文字分であり、倍率は 262 の形になります。24は文字種数26とも一致せず、計算根拠にもなりません。
- ウ:不正解
文字種数と増加分の積(26 × 2 = 52)を計算した値です。倍率は26(6-4)のように累乗で増えるため、この計算では求められません。
- エ:正解
文字数が2文字増えるので倍率は 262 となり、26 × 26 = 676 倍です。
まとめ
総当たり攻撃の最大試行回数は、使用できる文字の種類数をN、文字数をLとすると NL です。4文字から6文字に増やすと、倍率は 266 / 264 = 26(6-4) = 262 = 676 なので、最大試行回数は676倍になります。
テクノロジ系 > 基礎理論 > 基礎理論
文字数が2文字増えること(6 - 4 = 2)だけを答えた値であり、試行回数の倍率ではありません。
4文字から6文字への増加は2文字分であり、倍率は 262 の形になります。24は文字種数26とも一致せず、計算根拠にもなりません。
文字種数と増加分の積(26 × 2 = 52)を計算した値です。倍率は26(6-4)のように累乗で増えるため、この計算では求められません。
文字数が2文字増えるので倍率は 262 となり、26 × 26 = 676 倍です。