查看: 3218|回复: 7

[密码课] 维吉尼亚密码

  • 打卡总天数:2

积分成就

用户组:管理员

书币:130179

推理币:775990

发表于 2019-6-26 13:27:31 | 显示全部楼层 |阅读模式
维吉尼亚密码,又叫维热纳尔密码,这是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。
多表密码最早在1467年左右由莱昂·巴蒂斯塔·阿尔伯蒂提出,他使用了一个金属密码盘来切换密码表,只是这个系统只能做些有限的转换。后来1508年时,约翰尼斯·特里特米乌斯《隐写术》中发明的表格法成为了维吉尼亚密码的关键部分。然而当时此方法只能对密码表做一些简单的、可预测的切换。这一加密技术也称为特里特米乌斯密码。
这一方法真正出现是在吉奥万·巴蒂斯塔·贝拉索于1553年所著的书《吉奥万·巴蒂斯塔·贝拉索先生的算术》中。他以特里特米乌斯的表格法为基础,同时引入了密钥的概念。
布莱斯·德·维吉尼亚于1586年亨利三世时期发明了更为简单却又更有效的自动密钥密码。之后,19世纪时贝拉索的方法被误认为是由维吉尼亚首先发明的。大卫·卡恩在《破译者》中对此表示遗憾,他写道“历史忽略了这一重要贡献,将其归功于维吉尼亚,虽然他对此并不知道”。
由于破译的难度很高,维吉尼亚密码也因此获得了很高的声望。知名作家、数学家查尔斯·路特维奇·道奇森(笔名路易斯·卡罗)在其1868年所编、收于一儿童杂志的《字母表密码》中称其是不可破译的。1917年,《科学美国人》将维吉尼亚密码称为“无法被转化的”。然而,维吉尼亚密码却配不上这样的称号。查尔斯·巴贝奇完成了破译的工作,但他没有将此发表。之后,弗里德里希·卡西斯基于19世纪完全破解并发表了他的方法。甚至在此之前,一些资深密码分析家在16世纪就能偶尔将其破解。
维吉尼亚密码足够地易于使用使其能够作为战地密码。例如,美国南北战争期间南军就使用黄铜密码盘生成维吉尼亚密码。北军则经常能够破译南军的密码。战争自始至终,南军主要使用三个密钥,分别为“Manchester Bluff(曼彻斯特的虚张声势)”、“Complete Victory(完全的胜利)”以及战争后期的“Come Retribution(报应来临)”。
吉尔伯特·维尔南曾试图对已被破译的密码进行修补(于1918年创造了维尔南-维尼吉亚密码),然而这终究无济于事。不过维尔南的发明最终促成了一次性密码本的诞生,这是一种理论上不可破译的密码。
维吉尼亚密码其特点是将26个恺撒密表合成一个,见下表:

FIG-VIG-Table.jpg

维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。
维密的成功之处就在于密钥的使用,所以要想加密,我们首先要有一个密钥。
密钥的长度直接决定了破解的难度,密钥越长、越没有规律,破解的难度就越大。当密钥长度大于或等于原文长度时,维吉尼亚密码就变成了绝对不可能破解的密码了。
我们先从一位的密钥开始。此时维吉尼亚密码就变成了凯撒密码了,加密的方法是将原文字母顺序移位密钥字母在字母表中的个数。
例如我们使用密钥C,加密hello这个单词,根据字母表的顺序,hello加密后就为jgnnq。
如果多个字母又该怎么做呢?
例子:
我们使用密钥battista,来加密明文:asimpleexample
首先把这句话写出来,中间不加空格。然后把我们设定好的密钥写在这句话下面,如果密钥比密文短,那么就反复重复这个密钥直到句子结束。
然后,每一组的两个字母就成了我们的坐标。在维吉尼亚坐标图中分别横向纵向找出它们。横坐标和纵坐标的焦点就是加密后的字母。比如我们例子中的明文第一个字母是a,它下面是b,我们在维吉尼亚码表中左边找到带a的那一行,在顶端找到带b的那一列,两者相交的交点字母就是密文。

然后我们继续根据这个方法加密明文的第二个字母S,我们在维吉尼亚码表中左边找到带S的那一行,在顶端找到带A的那一列,两者相交的交点字母就是密文.

依照这个方法,继续完成所有字母的加密,最后得出的密文是:


如果要对密文进行解密,如果在知道密钥的前提下,解密是很简单的,只需要重复刚刚编码的步骤就可以了。
如:
把密文写在第一行,然后把密钥重复写在下面,就像刚才一样。


之后,我们在码表的顶行找到秘钥的一个字母G,然后顺着这一列往下,找到密文Z,Z它所在的行开头第一个字母就是明文。


根据这个规律,完成其他字母的解密即可,最终解密的明文如下。


积分成就

用户组:超级侦探

书币:119

推理币:3419

发表于 2020-2-14 13:07:40 来自移动端 | 显示全部楼层
难以想象

积分成就

用户组:推理新人

书币:0

推理币:77

发表于 2020-2-14 13:59:44 来自移动端 | 显示全部楼层
蓝大就是我的偶像了,凭自己一个可以创建推理罪,有何尝不是伟人呢

积分成就

用户组:超级侦探

书币:0

推理币:2044

发表于 2020-2-15 08:18:45 来自移动端 | 显示全部楼层
有点难。

积分成就

用户组:超级侦探

书币:0

推理币:2044

发表于 2020-2-15 08:19:04 来自移动端 | 显示全部楼层
死亡追求现实 发表于 2020-2-14 13:07
难以想象

确实
访客  发表于 2020-2-15 20:04:11
感觉好复杂啊。。。。

积分成就

用户组:超级侦探

书币:119

推理币:3419

发表于 2020-2-17 14:47:02 来自移动端 | 显示全部楼层
这个很赞,我学会了,就是表格麻烦
访客  发表于 2020-3-15 20:02:21
测试一下下卡
返回列表 发新主题 回复
小黑屋| 隐私政策| 侵权投诉| 数字千年版权法(DMCA)| 切换繁体 |捐助本站
copyright 2019-2023 推理罪 All Rights Reserved