为什么替代密码的密钥空间是N的阶乘

4
我正在学习加密课程,我们正在学习替换密码及其密钥空间。根据讲师的说法,英文字母表的密钥空间为26!(约2^88)。由于替换密码的长度取决于字母表的长度,因此可能没有提及密钥长度。根据wikipedia的说法,密钥空间是一定长度的所有可能密钥的集合,并且可以通过选项^长度或在这种情况下为26^26来计算。那么我在这里理解有什么问题呢?

我的大脑有时会忘记排列等概念,有时我能理解,下一次可能就不行了... 奇怪。 - Zyoo
2个回答

12

这有点误导人,你的教练和维基百科都是正确的。 通常,26个英文字母的密钥定义了一个大小为2626的密钥空间。

对于英文字母替换密码,26!是表示密钥空间的正确数字。这是因为对于替换密码,密钥被定义为每个字母与另一个字母的独特替换,例如A -> D,B -> M,C -> Y等26个字母 --> 密钥可以是26个字母集合的任何排列 --> 26!由于替换所需的唯一性,密钥空间实际上比最大值2626小,因为一些(大多数)密钥不可能存在 - 例如,您无法将A和B都映射到D。


2
这应该是答案。 - ubuntu_noob

3

如果您的密钥是一组数字,则选项^长度是正确的。每个数字可能会多次出现。

如果您的密钥是字母表,则阶乘N是正确的。比如,您想先放置A。您有26个选项。之后,您只有25个选项可用于B,因为A已经占据了一个。24个C,以此类推。

26*25*24*...*1 = 26!


啊,原来是每次选择后从集合中移除的操作导致了这个结果。我也看到了我误解的另一个部分。我一直以为26!> 26^26,(可能是因为2^88的参考)。现在这更有意义了。谢谢! - Frank Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接