对维吉尼亚加密法可以基于明文的统计特性进行攻击吗(维吉尼亚加密解密不一样)

2023-03-04 11:56:11 密语知识 思思

维吉尼亚加密法是一种对称密钥加密方法,其原理是通过使用一个固定的替代密钥来对明文进行加密。由于维吉尼亚加密法使用的是对称密钥,因此加密和解密过程是相同的。这意味着,如果攻击者能够获得密钥,就可以轻松地对加密文本进行解密。

在实际应用中,维吉尼亚加密法常常被用于电子邮件加密、认证和数字签名等方面。但是,由于维吉尼亚加密法是基于明文的统计特性进行加密的,因此攻击者可以基于明文的统计特性来尝试破解加密文本。例如,攻击者可以分析明文中出现频率最高的字母,然后尝试将这些字母映射到密文中出现频率最高的字母,从而猜测密钥。

总之,虽然维吉尼亚加密法是一种相对安全的加密方法,但是如果攻击者能够获得足够的信息,还是有可能被破解的。因此,使用维吉尼亚加密法时,应该尽量保护好密钥,避免被攻击者获取。

请比较凯撒密码维吉尼亚密码普莱费尔密码的异同点

比较凯撒密码维吉尼亚密码普莱费尔密码的异同点:

1、维吉尼亚密码是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

2、凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。

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

维吉尼亚加密法。

讲到概率论出现之后,传统的移位法就不好使了。

维吉尼亚加密法,就是为了对抗频率分析出现的——使用这套加密方法之后,字母的频率特征会消失。

一般认为,做出这套加密法的是法国外交官布莱斯·德·维吉尼亚。

但这个结论有很多争议,在他之前40多年的德国炼金术士约翰尼斯发明的表格法,也包含其中关键部分;在他之前80多年,意大利诗人莱昂也提出过这种方法的关键部分。

一个发明到底归属谁有必要考据细节吗?

当然没有。我主要是想指出一个规律——凡是出现了一个发明权一堆人抢的情况,就说明那个领域已经形成了成熟的行业。

密码学也是如此。我们暂且认为维吉尼亚就是发明人吧。问题来了,他一个外交官怎么会对密码学研究那么深呢?有两个原因:

在18世纪初,欧洲各国都有隶属于情报机构,专门负责加密解密的部门,叫“黑房厅”。它是和邮政系统配合运行的。

每天有大批信件本来是从各地寄到邮局,再从邮局分发出去。黑房厅出现后,一部分信就不是从邮局直接递给收信人了,而是要先经过黑房厅,再送到收信人手里。

哪部分信件要绕这么一道弯儿呢?

其实就是所有寄给当地大使馆的信件,会受到这种特殊待遇。因为这里很可能有机密信息。

虽然我直接把内幕说出来了,但黑房厅在当年运作的时候是完全保密的,人不知鬼不觉。信件不能因为破译需要时间,而让对方使领馆人员察觉到递送超时。

以当时最著名的维也纳黑房厅来说,每天早上7点,信件先抵达黑房厅,工作人员小心翼翼的融开封口,由专门的速记员把信件誊写抄录,如果是很偏门的语言,就由专家出马誊写。然后马上把信封好口,在三小时内送回邮局,邮局再按正常流程递送出去。

那时各国都在重要信件上使用了加密法,最初普遍采用替代法和移位法的混合,但对掌握频率分析法的黑房厅来说,总是可以破译。

奥地利除了自己偷看信,还暗中把消息卖给其他国家的情报部门。没过几年,很多国家察觉到自己的加密可能失效了,于是就催生出下一代加密法。

为了弄懂后面新的加密法,我们有必要先来回顾一下第二代加密法存在哪些漏洞。

讲了替代法的破解原理,因为每个字母实际使用的频率是有固定值的,所以不论那些字母被什么符号替代了,都可以从频率上找出它的真身。

玛丽女王就生活在加密法打不过解密法的年代。其实在她被砍头的40年前,新的加密法已经出现了,它是替代法的改进版,叫“多套符号加密法”。

为了掩盖字母使用中暴露的频率特征,解决办法就是用多套符号代替原来的文字,比如原文的字母是A,从前只把它替换成F,现在把它替换成F或者G这两个。那什么时候用F什么时候用G呢?可以自行规定,比如说,字母在奇数位时用F代替,字母在偶数位时用G代替。

从前单套符号替代的时候,凡是文字中频率为7.63%的符号,差不多就代表A了。但现在A由F和G混合在一起,7.63%的特征不再出现,哪个符号代表A就没人知道了,于是频率分析法暂时失效。

而且,多套符号加密法并没满足于2-3套,后来典型使用的是26套。

这个用了26套字符的方法,就是第三代密码“维吉尼亚加密法”。就是它,成功压制了解密一方的频率分析法。

它是一个表格,第一行代表原文的字母,下面每一横行代表原文分别由哪些字母代替,每一竖列代表我们要用第几套字符来替换原文。一共26个字母,一共26套代替法,所以这个表是一个26×26的表。

维吉尼亚密码表

它具体是怎么加密呢?

假设我要给“hello”加密,现在的思路和单套的加密方法不一样了。单套的时候,我们可以指定这个表里任意一横行,比如指定第8行的意思就是说,原文中的字母都往后移8位,只使用这一行的规则,“hello”就变成了PMTTW。

但现在我们的思路是用多套密码,不能只用第8行第8套。于是我们就这样指定:

你说这听着怎么这么乱啊?具体每个字母移动多少位竟然要单独指定,太麻烦了吧?

如果原文只是hello这种词还好,要是一封信的话,一个字母一个字母的规定用哪套替代,不但加密费劲,解读也费劲。只能单独再写一本说明书出来,照着它一个字母一个字母的还原,费时费力、容易出错不说,连加密的初衷都实现不了。

因为这份说明书的文字量比原文还要多得多,而且这个说明书还必须以谁都可以看懂的方式书写。想让收信方看明白,必须要送一本加密说明书给对方,如果说明书被截获,内容也就白加密了。

这个问题是这么解决的:

第三代的维吉尼亚加密法在真实使用时,人们事先规定每个字母用了哪套移位法时,并不是毫无规律的瞎指定,而是要约定一个规则,这个规则就叫作 “ 钥匙 ”。

钥匙最初只是一个单词,比如,像钥匙是yes,那怎么加密呢?

你看,yes的y是第25个字母,就代表加密时把原文第一个字母往后移25位;yes的第二个字母e是字母表中第5个字母,就代表把原文的第二个字母往后移5位;yes的第三个字母s在字母表中是第19个字母,就代表把原文第3个字母后移19位。这样原文的前三个字母,就分别用了第25套、第5套、第19套替代法。

那原文第4个、第5个、第6个字母怎么解决呢?好办,就按刚刚的规则循环就好。

这样“hello”在钥匙是yes的情况下,就被加密成了FIDJS。

这样的好处是,原文里同一个字母会被加密成不同字符,hello中的两个“l”分别变成了D和J。而且密文中同样的字符也可能代表不同的原文,谁和谁都不对应。

1586年,维吉尼亚把这个想法写在了《密码论》中发表。

而上节课我们说的玛丽女王是在1587年被砍的头,如果她和反叛军能用到这本书里的加密方法,也许会是另一种命运。

维吉尼亚法相比从前的加密法,破解难度上了一个新的台阶,按理说应该倍受青睐吧?结果恰恰相反——它在出现后的200年里,几乎没有人使用。

原因很简单,太麻烦了。咱们第一节课就讲到,真正好用的密码,是在安全性和效率上找到了平衡点。

你想,用单套密码的时候,当年玛丽女王稍作训练,在监狱里就可以抛开字典直接用密文回信,但是如果用维吉尼亚密码的话,估计她老得翻字典。

而且大家也可以设身处地的想想,加密法可是一套26×26的表格,而且还有长短不一的钥匙。每加密一个字母,都要在表格里找来找去,就算是在熟练操作的情况下,加密一个字母也得要3秒钟的时间。写完一篇500字的短文,要3个多小时的高强度工作。慢还不说,这样来回来去的查和写,还容易出错。

所以在它诞生后的200多年时间里,几乎没有人用。既然没人使用,自然200多年也就没有人破解。

直到1861年到1865年美国南北战争时期,维吉尼亚加密法才被广泛使用。

为什么会这样?是因为人们脑子变聪明了,手更快了吗?

不是的,而是因为随着科学技术的发展,那时候加密解密的工作已经可以由机械来完成。1860年代,不但已经有了蒸汽机,也有了电动机,这种有规律的体力活儿机器是最擅长干的,既不会抱怨累,也不太会出错。

从维吉尼亚法推迟200多年才得到实际使用,我们能明白一个道理——

基础学科的发展是工程领域发展的根基,新理论的发明要比产品的发明重要得多。

就算是只限于密码学领域,这个规律也反复出现了多次,而且大都集中在维吉尼亚密码法诞生之后。

因为16世纪初,现代科学已经在欧洲出现了。科学理论用得好就能生出新技术,新技术解决一个个困难,让人类更愿意把精力投入到科学中,于是又产生出更多的技术,形成了一个正反馈。

在这样一个新环境里,出现了一个有意思的情况:

维吉尼亚加密法是这样,维吉尼亚加密法的破解也一样是这样。

这并不是偶然,而是现代科学出现后的常态,在任何领域都是如此。

知道了这个规律,我们就会少一分对伟大发明家的崇拜,多一分对背后科学原理的敬畏。

第三代加密法--维吉尼亚加密法

        加密法的需求在军事上及政治上的显现极为旺盛,也迫使它快速地向前发展。传统的移位及替代法虽然使用方便,但可以采用统计的方式进行破解,安全性还有待加强。

        所以后期就发展出一种新的加密方法,即维吉尼亚加密法。这种方法的出发点是,对于相同的字母或数字,加密后的密文可能不同,这就没法从统计的角度解密。

        基本的加密方法,可以参考下图。

        这张图中, 第一行代表原文的数字或字符,每一列代表加密采用第几套替代方案,每一横行的字符对应该列的字母加密后的密文 。是不是够复杂哈,如果采用这样的方式手工加密解密,写一封邮件估计要崩溃死了。。。。

        而且这套加密方法使用中还存在一些问题,就是需要把 整个加密图传给解密方 ,没有该图做指导,解密的人也是一脸懵逼。。。。

        但方法是死的,人是活的,人最可贵的一点就是遇到问题会想各种解决方法。所以这个问题如何解呢?关键在于一个密钥(key),比如以“yes”为密钥,加密时第一个字母采用"y"(即第25套替代方案)加密,将原文字母向后移动25位;第二个字母采用“e”(即第5套方案)加密,将原文字母向后移动5位;第三个字母采用"s"(即第19套方案)加密,将原文字母向后移动19位;依次循环加密。

        比如加密“hello”,加密结果就如下,加密后的密文为“FIDJS”,两个字母“l”分别对应D和J,就没法用统计法找出破绽了。    

        但该方法加密解密超费劲,人工处理很容易出错,所以发明了200年还未被广泛使用,直到能够采用机器进行处理之后,才被人翻出来使用。

       

维吉尼亚密码

      维吉尼亚密码是以法国外交官、密码学家布莱斯·德·维吉尼亚的名字命名的,不过不是他本人发明的。

【加密原理】

      维吉尼亚密码是在凯撒密码的基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行26列的密码表。

      除了密码表,还必须有一个密钥。密钥由字母组成,最少一个字母,最多可与明文字母数相等。如果密钥只有1个字母,相当于就是凯撒密码。举个例子:

明文:I Love You

密钥:OK

      首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到长度相等。本例中,明文长度为8个字母(非字母忽略),密钥补全为“OKOKOKOK”。

      然后根据密码表进行加密。明文第一个字母是“I”,密钥第一个字母是“O”,在表格中找到“I”列与“O”行的相交点,字母“W”就是密文的第一个字母。同理,“L”列与“K”行交点字母是“V”。“O”列与“O”行交点字母是“C”……以此类推,得到密文: W VCFS ICE。

【解密原理】

密文:PWZRNZBZ EA NQKBUHN LNB

密钥:wind

      首先把密钥重复拼接到和密文长度相同,上例中密文为20位字母,密钥拼接后为:windwindwindwindwind。

      密文P对应密钥W,在密码表中找出W行为P的列,沿着这一列向上找到最上面的字母是T。以此类推,得到明文:tomorrow is another day。

比较维吉尼亚密码与移位密码的区别

难易程度不同。移位密码就是对26个字母进行移位操作,可以移动任意位数,这样就实现了对明文的加密,移位操作简单易行,因此,加密解密比较简单。Vigenere密码是由法国密码学家BlaisedeVigenere于1858年提出的一种代换密码,它是多表代换密码的典型代表。