我正在学习加密课程,我们正在学习替代密码及其密钥空间。根据导师的说法,关键空间是 26!(大约 2^88)为英文字母。没有提到密钥长度,可能是因为 subst cipher 的长度是字母表长度的函数,就像选项的数量一样。
根据维基百科,密钥空间是一定长度的所有可能密钥的集合,其计算方式与蛮力尝试计数为选项^长度或在本例中为 26^26 的方式相同。
那么我没有到达这里是什么?
我正在学习加密课程,我们正在学习替代密码及其密钥空间。根据导师的说法,关键空间是 26!(大约 2^88)为英文字母。没有提到密钥长度,可能是因为 subst cipher 的长度是字母表长度的函数,就像选项的数量一样。
根据维基百科,密钥空间是一定长度的所有可能密钥的集合,其计算方式与蛮力尝试计数为选项^长度或在本例中为 26^26 的方式相同。
那么我没有到达这里是什么?
这有点误导,你的导师和维基百科都是正确的。通常,26 个英文字母的键定义了一个键空间大小26
26
。
对于英文字母表的替换密码,26!
是表示密钥空间的正确数字。这是因为对于替换密码,密钥被定义为用另一个字母唯一替换每个字母,例如A -> D, B -> M, C -> Y, etc.
26 个字母 --> 密钥可以是 26 个字母集的任何排列 --> 26!
。由于替换所需的唯一性,键空间实际上小于最大值26
26
,因为某些(大多数)键是不可能的 - 例如,您不能将 A 和 B 都映射到 D。
如果您的密钥是一组数字,则 options^length 是正确的。每个数字可能出现多次。
如果您的键是字母表,则阶乘 N 是正确的。说,你想把A放在第一位。您有 26 个选项。在那之后,你对于 B 只有 25 个选项,因为 A 已经占据了一个。24 对于 C 等等。
26*25*24*...*1 = 26!