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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了维吉尼亚密码(Vigenère cipher)相关的知识,希望对你有一定的参考价值。

参考技术A 维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:

TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RE LA TI ONS RE LA TION SR ELA TIONSREL
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
密文:KS ME HZ BBL KS ME MPOG AJ XSE JCSFLZSY
与凯撒密码类似,进行一下运算两次即可

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

【中文标题】破解维吉尼亚密码的复杂性【英文标题】: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

以上是关于维吉尼亚密码(Vigenère cipher)的主要内容,如果未能解决你的问题,请参考以下文章

维吉尼亚加密

维吉尼亚密码

1402Vigenère密码(Noip2012提高组第1题)

如何让我的 Vigenère Cipher 忽略原始消息中的空格

JavaScript 中的 Vigenère 密码显示或 � 字符

Python Vigenère密码不起作用