我正在学习加密课程,我们正在学习替换密码及其密钥空间。根据讲师的说法,英文字母表的密钥空间为26!(约2^88)。由于替换密码的长度取决于字母表的长度,因此可能没有提及密钥长度。根据wikipedia的说法,密钥空间是一定长度的所有可能密钥的集合,并且可以通过选项^长度或在这种情况下为26^26来计算。那么我在这里理解有什么问题呢?
这有点误导人,你的教练和维基百科都是正确的。
通常,26个英文字母的密钥定义了一个大小为26
26
的密钥空间。
对于英文字母替换密码,26!
是表示密钥空间的正确数字。这是因为对于替换密码,密钥被定义为每个字母与另一个字母的独特替换,例如A -> D,B -> M,C -> Y等
26个字母 --> 密钥可以是26个字母集合的任何排列 --> 26!
由于替换所需的唯一性,密钥空间实际上比最大值26
26
小,因为一些(大多数)密钥不可能存在 - 例如,您无法将A和B都映射到D。
如果您的密钥是一组数字,则选项^长度是正确的。每个数字可能会多次出现。
如果您的密钥是字母表,则阶乘N是正确的。比如,您想先放置A。您有26个选项。之后,您只有25个选项可用于B,因为A已经占据了一个。24个C,以此类推。
26*25*24*...*1 = 26!