破解维吉尼亚密码的复杂性

Posted

技术标签:

【中文标题】破解维吉尼亚密码的复杂性【英文标题】:Complexity of breaking Vigenère cipher 【发布时间】:2015-04-10 03:55:45 【问题描述】:

所以我想知道解密由 n 个单词加密的 bt Vigenère 文本的时间复杂度是多少。

Vigenère 只是对每个字母应用不同的凯撒位移。 我知道对于凯撒密码来说它只是 O(n) 因为我们只是尝试所有不同的 25 班次。但是维吉尼亚呢?

【问题讨论】:

【参考方案1】:

打破凯撒的转变是O(1),而不是O(n)。字母的大小是恒定的。您只需要在给定密钥下对一小段密文进行解码,就可以知道您是否在正确的轨道上。

对于 Vigenere 的密码,您有重复移位的序列。在没有统计分析的情况下破解它的蛮力方法取决于密钥空间,对于长度为 k 的密钥,它是 O(26^k)。由于统计分析对 Vigenere 密码非常有效,因此其实际强度远低于此时间限制所建议的强度。

【讨论】:

这里的凯撒密码的实现怎么样 --> github.com/a-p-jo/C5/blob/master/C5.c

以上是关于破解维吉尼亚密码的复杂性的主要内容,如果未能解决你的问题,请参考以下文章

凯撒简单替换维吉尼亚密码 CRC 破解

密码学维吉尼亚密码加解密原理及其破解算法Java实现

密码那些事儿|(十)“钥匙”打开维吉尼亚的锁

维吉尼亚密码 C++

维吉尼亚密码:加密强悍,却为何没人用?

维吉尼亚密码(Vigenère cipher)