最初的Vigenere加密法以现在的眼光来看可以说是再简单不过的一种加密算法了,单调而又重复的密钥再加上必然会重复出现的明文以及最终导致的密文的重复出现致使密钥的长度基本可以推断的出来,剩下的就相当于查找分析关键词加密法一样让我们基本感觉不到任何的技术因素(如果说穷举法也算是一种技术的话,那就算是有点技术吧)——在固定的几行中不断地搜索者明文与密文的对应,进而推算出密钥。
但是当我尝试着把vigener表格给修改了以后,就遇到了非常大的麻烦,我的修改方法如下:
1.首先,把对照行(最上边和最左边)的字母顺序给打乱,这样的话我们就得到了 26!*26! 种不同的表格。
2.接着,就是对于表格内部内容的修改,现在我们还是只用26个英文字母,这样的话,我对于26*26方格每一个格子都有了26种选择,这样就得到了26^(26*26)个表格内容。
3.通过以上,我现在得到了[(26!)^2]* [26^(26*26)]种表格.
这样弄下来到底有多少种表格,我就不逐个表述介绍了,现在我们再来看我对于密钥的修改,密钥的修改比较简单,就是随机生成字符串,对于随机生成的字符串,我的设定如下:
1. 长度不限.
2. 字母可以重复。
这样的话,密钥可以算是存在无数种的可能性。当然,对于这两种修改,Alice和Bob在通信的时候,必然要声明出来一个,否则的话,对于Alice和Bob而言,这种加密就没有多大的意义了。至于到底声明出来哪一个:是吧密钥声明出来,还是把修改后的vigenere表声明出来就要看具体的情况了。个人感觉如果是简短的信息传递的话,那就把密钥声明出来,这样对于Eve而言,他需要计算[(26!)^2]* [26^(26*26)]种表格并且每一个还需要一定量的检验。而对于长篇通信,可以尝试一下把vigenere表格个声明出来,对于长篇的定量,我们应当遵守26^(n)>[(26!)^2]* [26^(26*26)].这样的话,就可以了。
而现在,问题也就跟着出来了,加入我们是Eve,我们该怎么办?如果运用穷举法来进行计算的话,我觉得哪怕是的那种每秒上亿次计算的两的电脑在这面前也是相当的无力的,而且,对于每次运算完毕的文章电脑还要与当前的时间进行对照,这也是一个比较大的工作量。所以穷举法基本上可以说告别了。另外,如果Alice和Bob够聪明的话,他们每一次的密钥和vigenere表都可以不停的改变,这样的话,对于Eve而言,这实在是让人感觉到绝望的事情,哪怕Eve得到了他所想要的信息,所需要的时间恐怕也基本是在信息无用以后了。
在这里,另外阐明一点,纯粹说是如何用算法流来破解,如果你告诉我说:通过电脑种植木马、病毒、蠕虫等等的话,这些我也知道,不需要再进行重申了。对于Eve而言,有没有不用这些手段的方法呢?
而且还有一点必须要提一下,那就是Eve在没有掌握任何的明文的情况下,他该如何破解?当然,我们现在已经知道的是Eve已经掌握了所有的密文以及密钥与vigenere表中的一种。
联系客服