维吉尼亚密码(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 忽略原始消息中的空格