ITパスポート 2014年 春期 問51
問題文
パスワードの解読方法の一つとして、全ての文字の組合せを試みる総当たり攻撃がある。“0”から“9”の10種類の文字を使用できるパスワードにおいて、桁数を4桁から6桁に増やすと、総当たり攻撃でパスワードを解読するための最大の試行回数は何倍になるか。
選択肢
ア:1.5
イ:20
ウ:100(正解)
エ:1,024
🔒 解説は解答すると表示されます
パスワード桁数を4桁から6桁に増やしたときの総当たり攻撃の最大試行回数【ITパスポート 解説】
正解の理由
数字(“0”から“9”)のみを使えるパスワードでは、各桁に10通りの選択肢があります。総当たり攻撃(ブルートフォース攻撃:考え得る全パターンを順に試す攻撃)での最大試行回数は「全パターン数」と一致します。
4桁なら (=10,000)通り、6桁なら (=1,000,000)通りです。したがって、最大試行回数は
4桁なら (=10,000)通り、6桁なら (=1,000,000)通りです。したがって、最大試行回数は
となり、選択肢のうち ウ(100)が正しい理由です。
解法ステップ
- 各桁の選択肢数を確認:0〜9 の10種類 → 「基数」は10。
- 桁数が n のパスワードの全通り数は、掛け算の法則から (各桁の選択を掛け合わせる)。
- 4桁と6桁の比を取る:。
- したがって、最大試行回数は100倍になる。
具体的な数字で見ると:
- 4桁: 通り
- 6桁: 通り 比は 。
(補助:計算をプログラムで確かめる例)
print(10**6 // 10**4) # 結果は100
選択肢別の誤答解説
- ア: 1.5
「桁数が4→6だから1.5倍」と考える誤り。桁数は「足し算」ではなく、組合せ数は指数(掛け算)で増えるため線形ではありません。 - イ: 20
「10種類 × 増えた桁数2 = 20」と考えた可能性があります。各桁の選択肢は独立なので、増えた桁数だけ単純に掛ければよいわけではありません。増やした2桁分で 10×10 = 100 倍になります。 - ウ: 100
正しい。理由は上に示した通り、。 - エ: 1,024
これは を連想した誤りか、2進法(ビット)関連の数字と混同した可能性があります。本問は10進(数字10種類)を扱うため無関係です。
よくある誤解
- 「桁が増えた分だけ比例で増える」と考える
→ 実際は各桁ごとに選択肢が掛け合わされるので、増加は指数的です。1桁増やすと「基数(ここでは10)」倍になります。 - 「平均試行回数」と「最大(最悪)試行回数」を混同する
→ 平均的に見つかるまでの試行回数は最大の半分(約50%)です。問題で問われているのは最大試行回数です。 - 「同じ文字は使えない」と誤想定する
→ 多くのパスワードは同じ文字の繰り返しを許します。もし繰り返しが禁止なら通り数は順列(10×9×...)になり、今回の計算とは異なります。
補足コラム
- 「鍵空間(キー空間)」という言葉があります。これは可能なパスワードの総数のことです。本問ではキー空間が 。
- パスワードの強さは「長さ」と「使用できる文字種(基数)」の両方で決まります。長さを1増やすだけでキー空間は基数分だけ増えます。例えば数字のみ(基数10)で1桁増やすと10倍、英大小文字と数字で62種類(基数62)なら1桁増やすと62倍になります。
- 実用面:攻撃速度(試行/秒)によって実際にかかる時間は変わります。例えば1,000試行/秒の速度なら100万通りは約1,000秒(約16分)です。だから短い数字4桁は短時間で破られる危険があります。
FAQ
Q1: なぜ で表すのですか?
A1: 各桁に10通りの選択があり、桁ごとの選択は独立で掛け合わされるからです(掛け算の法則)。例えば2桁なら 。
A1: 各桁に10通りの選択があり、桁ごとの選択は独立で掛け合わされるからです(掛け算の法則)。例えば2桁なら 。
Q2: 平均して何回試せば見つかりますか?
A2: 一様にランダムな位置にパスワードがあると仮定すると、平均試行回数は最大試行回数の半分、つまり 程度になります(厳密には )。
A2: 一様にランダムな位置にパスワードがあると仮定すると、平均試行回数は最大試行回数の半分、つまり 程度になります(厳密には )。
Q3: 文字の繰り返しが禁止ならどうなる?
A3: その場合は順列になり、たとえば4桁で同じ文字を使えないなら 通りになります。本問の前提(0〜9を使用できる)では通常繰り返しを許します。
A3: その場合は順列になり、たとえば4桁で同じ文字を使えないなら 通りになります。本問の前提(0〜9を使用できる)では通常繰り返しを許します。
Q4: 「基数」って何ですか?
A4: ここでは「各桁で選べる種類の数」のことです。数字だけなら基数10、英大小英数字や記号を含めれば基数はもっと大きくなります。
A4: ここでは「各桁で選べる種類の数」のことです。数字だけなら基数10、英大小英数字や記号を含めれば基数はもっと大きくなります。
関連キーワード: パスワード, 総当たり攻撃, ブルートフォース, キー空間, 組合せ, 指数関数的増加, 基数, 平均試行回数

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

