問80
頻出度★★★
パスワードの解読方法の一つとして, 全ての文字の組合せを試みる総当たり攻撃がある。“A”から“Z”の26種類の文字を使用できるパスワードにおいて, 文字数を4文字から6文字に増やすと, 総当たり攻撃でパスワードを解読するための最大の試行回数は何倍になるか。
这道题的解析和你的作答记录。
パスワードの解読方法の一つとして, 全ての文字の組合せを試みる総当たり攻撃がある。“A”から“Z”の26種類の文字を使用できるパスワードにおいて, 文字数を4文字から6文字に増やすと, 総当たり攻撃でパスワードを解読するための最大の試行回数は何倍になるか。
「2」是把字符数的增量(6−4=2)直接当作倍率的错误。组合总数相对于字符数是指数级增长的,所以即使位数增加 2 位也不会只变成 2 倍,而是 26 的 2 次方=676 倍。
「24」是没有依据的数值,与 26 的 2 次方=676 不一致。可能是把它与字符种类数之差(例如错误地按 26−2 计算)或阶乘等其他计算搞混了,但正确的倍率是 676 倍。
「52」是 26×2,即「按增加的字符数(2 位)把字符种类数做加法、简单地乘以 2」这类误解得出的数值。实际上字符种类数是以乘法(26×26)方式起作用的,所以 26 的 2 次方=676 倍才正确。
正解 暴力破解攻击(穷举攻击)是把所有可用字符的组合逐一尝试的方法,因此最大尝试次数可以用「字符种类数的(字符数)次方」来表示。字符种类是「A」到「Z」共 26 种。4 位时是 26 的 4 次方 种,6 位时是 26 的 6 次方 种。增加倍率为 26 的 6 次方 ÷ 26 的 4 次方 = 26 的(6−4)次方 = 26 的 2 次方 = 676(倍)。因此「エ」为正确答案。也可以这样理解:字符数每增加 2 位,就按增加的位数各乘一次字符种类数,所以是 26×26=676 倍。