采用替代密码算法中的维吉尼亚密码方法,密文C=“HEADVIGENERE”,密钥K=KEY,求明文P
将密文HEADVIGENERE用密钥替换后为KEYKEYKEYKEY
替换前:HEADVIGENERE
替换后:KEYKEYKEYKEY
解密求明文:
按替换后的内容找到第一行的K所在位置向下寻找,找到H的位置,当前行最左侧第一列对应的就为明文X
加密求密文:
按明文找到第一列对应的H,在从第一行中找到对应的密钥K,两个位置相交的值就为密文.
答案:
HEA DVI GEN ERE
KEY KEY KEY KEY
XAC TRK WAP UNG
学号:16030140019
姓名: 莫益彰
【嵌牛导读】:凯撒密码是一种简单的加密方法,即将文本中的每一个字符都位移相同的位置。如选定位移3位:
原文:a b c
密文:d e f
由于出现了字母频度分析,凯撒密码变得很容易破解,因此人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。
【嵌牛鼻子】密码学,计算机安全。
【嵌牛提问】维吉尼亚怎么破解,8位维吉尼亚是否可破?维吉尼亚算法的时间复杂度?
【嵌牛正文】
维吉尼亚密码的加密
维吉尼亚密码由凯撒密码扩展而来,引入了密钥的概念。即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
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
图解加密过程:
在维吉尼亚(Vigenère)的密码中,发件人和收件人必须使用同一个关键词(或者同一文字章节),这个关键词或文字章节中的字母告诉他们怎么样才能前后改变字母的位置来获得该段信息中的每个字母的正确对应位置。
维吉尼亚密码的破解
维吉尼亚密码分解后实则就是多个凯撒密码,只要知道密钥的长度,我们就可以将其分解。
如密文为:ABCDEFGHIJKLMN
如果我们知道密钥长度为3,就可将其分解为三组:
组1:A D G J N
组2:B E H K
组3:C F I M
分解后每组就是一个凯撒密码,即组内的位移量是一致的,对每一组即可用频度分析法来解密。
所以破解维吉尼亚密码的关键就是确定密钥的长度。
确定密钥长度
确定密钥长度主要有两种方法,Kasiski 测试法相对简单很多,但Friedman 测试法的效果明显优于Kasiski 测试法。
Kasiski 测试法
在英文中,一些常见的单词如the有几率被密钥的相同部分加密,即原文中的the可能在密文中呈现为相同的三个字母。
在这种情况下,相同片段的间距就是密文长度的倍数。
所以我们可以通过在密文中找到相同的片段,计算出这些相同片段之间的间距,而密钥长度理论上就是这些间距的公约数。
然后我们需要知道重合指数(IC, index of coincidence)的概念。
重合指数表示两个随机选出的字母是相同的的概率,即随机选出两个A的概率+随机选出两个B的概率+随机选出两个C的概率+……+随机选出两个Z的概率。
对英语而言,根据上述的频率表,我们可以计算出英语文本的重合指数为
P(A)^2 + P(B)^2+……+P(Z)^2 = 0.65
利用重合指数推测密钥长度的原理在于,对于一个由凯撒密码加密的序列,由于所有字母的位移程度相同,所以密文的重合指数应等于原文语言的重合指数。
据此,我们可以逐一计算不同密钥长度下的重合指数,当重合指数接近期望的0.65时,我们就可以推测这是我们所要找的密钥长度。
举例来说,对密文ABCDEABCDEABCDEABC
首先测试密钥长度=1,对密文ABCDEABCDEABCDEABC统计每个字符出现的次数:
A: 4 B: 4 C: 4 D:3 E:3
那么对于该序列的重合指数就为:(4/18)^2 + (4/18)^2 + (4/18)^2 +(3/18)^2 +(3/18)^2 != 0.65
然后测试密钥长度=2,将密文ABCDEABCDEABCDEABC分解为两组:
组1:A C E B D A C E B
组2:B D A C E B D A C
我们知道如果密钥长度真的是2,那么组1,组2都是一个凯撒密码。对组1组2分别计算重合指数。
如果组1的重合指数接近0.65,组2的重合指数也接近0.65,那么基本可以断定密钥长度为2。
在知道了密钥长度n以后,就可将密文分解为n组,每一组都是一个凯撒密码,然后对每一组用字母频度分析进行解密,和在一起就能成功解密凯撒密码。
上文已经说到,自然语言的字母频度是一定的。字母频度分析就是将密文的字母频度和自然语言的自然频度排序对比,从而找出可能的原文。
维吉尼亚密码是以法国外交官、密码学家布莱斯·德·维吉尼亚的名字命名的,不过不是他本人发明的。
【加密原理】
维吉尼亚密码是在凯撒密码的基础上产生的一种加密方法,它将凯撒密码的全部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。
维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
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
与凯撒密码类似,进行一下运算两次即可
维吉尼亚密码(密钥i love u):q wcqi o 希尔密码(Hill 密钥矩阵):ungjae 纳粹Enigma(密钥ABC):YAPOJ R 摩斯电码:·· ·—·· ——— ···— · ··— 维吉尼亚密码(密钥12345…):j nrzj a 仿射密码(Affine *3+5):d mvqr n 220225——爱爱你爱爱我 584520——我发誓我爱你 77895——紧紧抱着我 3030335——想你想你想想我 1392010—— 一生就爱你一人 53880——我想抱抱你 九宫格表白数字暗语及密码: 数字暗语:96 24 64 表白密码:“我爱你”。 数字暗语:96 94 4826 64 表白密码:“我喜欢你”。 网页代码(iu):iu 网页代码(10进制):i love u 高级暗语表白我喜欢你2 1、Ive been doing a lot of thinking, and the thing is, I love you 翻译成中文:我思考了很久,结论是,我爱你。 2、百度字符(GB2312):%69%6C%6F%76%65%75 表白解密:把这个网址、baidu、com/s?wd=%69%6C%6F%76%65%75复制到浏览器上打开就知道了。 3、128√e980 表白解密:将这个写在黑板上,或者容易擦掉的板子上,然后抹去上面一半,就是“I LOVE YOU”。 4、数字密码: 9 12 15 22 5 21 表白解密:1到26对应字母a到z,简单找出对应字母就可以了,其实情感里的高级“暗语”多数是一些小把戏,懂得人才会去留意,其实对方稍微对你好感就会有察觉。 高级暗语表白我喜欢你3 一、非常隐秘的表白句子 1、【独坐相思椅,手握相思笔,望着相思月,想者相思的你,写着相思信,句句相思语,滴滴相思泪,全部相思你,天是蓝的海是深的,我爱你是真的!】 2、【初见倾心,再见痴心。终日费心,欲得芳心。煞费苦心,想得催心。难道你心,不懂我心,如此狠心,让我悲哀!】 3、【让我们做一对幸福的老鼠吧,笨笨地相爱,每天做的事是依偎在一起晒太阳,生一群小老鼠,冬天时大雪封山,就是躲在温暖的草堆里上网。】 4、【太平山顶的星星没有你的眼睛明亮,维多利亚港湾的灯光没有你的笑容灿烂,知道吗?此时此刻我多么想你啊!】 5、【爱是一种诚信,是需要付出代价的,如果不爱或是无法承受,那么就别轻易的将自己的心打开,诱惑和寂寞,本不是爱的理由!】 6、【就是了不期而遇的相逢,心和心的撞,我才整夜整夜地毫睡意,似乎在等待着晨曦。】 7、【不知道你今天好不好,我的情况可不妙。只觉得前前后后,左左右右,脑子里里外外,嗡嗡的都是你,你想我吗?】 8、【蜻蜒飞,蝴蝶飞,蜜蜂嗡嗡将你追。春风吹,春光美,春暖花开心芳菲。千纸鹤,千颗心,无尽思念盼人归。心相印,爱相随,爱你生命一世不后悔。】 9、【不知道现在的一切是不是我想要的。】 10、【亲爱的!医生说我得了相思病。药方如下:热吻三次+情人眼泪-滴+永恒的爱情熬炖一辈子,我想…只有你能救我了!】 11、【有一种誓言叫山盟海誓,有一句承诺叫海枯石烂,有一种信念叫爱如坚石,有一份爱情伴你一生一世,爱你一生一世,亲爱的,我爱你永不变,愿你我携手到老!】 12、【假如能够的话,我愿意花去性命中的每一分每一秒,陪着你。】 13、【听人家说,男人找老婆要爬三座大山,看在你我这么有缘的份上,可不可以,让俺少爬两座呀,让俺早点追到你,你同意?啊?是同意?还是同意啊?】 14、【世界上最美妙的一件事是,当你拥抱一个你爱的人,他竟然把你抱得更紧。】 15、【你我相识,有份;你我相遇,有缘;你我同甘,有情;你我共苦,有义;你我付出,有爱;你我互勉,有心;我要对你说,有你真好!】 16、【抓不住女生的我,总是眼巴巴看着别人,世界上洞房的人天天有,为何不能算我一个。】 17、【我不要短暂的温存,只要你一世的陪伴。】 18、【想你想你好想你,找个画家画下你,把你贴在杯子里,天天喝水亲亲你!】 19、【真想去看你,静静凝望你,用我颤抖的双臂,轻轻地用心拥抱你;真想去看你,傻傻地注视你,用我温柔的舌尖,舔去你激动的泪滴。】 20、【没有什么会永远 也没有什么会很久 找个借口 谁都可以先走。】 21、【将你心再加上我的心,就算痛苦味道也愿意尝。】 二、高级暗语表白 1、我们只有献出爱情,才能得到爱情。 2、曾经希望把所有都留给你,何曾想却把孤单留给了自己。 3、网里有个你,余生想着你! 4、如果能用一辈子换你停留在我视线中。我将毫不保留。 5、其实你不懂我的'时间,都是用来思念。 6、账都归你管,而你,归我管。 7、如果你真的喜欢我,你可否向却世界宣布你只爱我。 8、我想要你陪我,走完下辈子! 9、我喜欢我自己眼中的你,而不是别人口中的你。 10、有一种想念,叫沉默不语!有一种沉默不语,叫想念! 11、我喜欢夏天的可乐,冬天的奶茶,还有一年四季的你。 三、最朴实走心的表白 1、杯子里面装满了水再多一滴就会流出,不如全部倒掉,让杯子和水都有新的经历,也许这次不会流出,一直到永恒! 2、不管是晴天、阴天、雨天,能见到你的一天,就是晴朗的一天;不管是昨天、今天、明天,能和你在一起的一天,就是美好的一天! 3、花落一地,散落成歌,心碎千片,飘落成雨。 4、回想起我们在一起的日子,我就忍不住一阵阵的心痛。不是曾经说好了不要分开的吗?你怎么忍心就这样丢下我一个! 5、激情是一种希望。这种希望可能变成失望。激情同时意味着痛苦和过渡。希望破灭时,激情便终止了。 6、看到你的第一眼,我知道了什么叫一见钟情,从此,我要用心呵护你一辈子,祝你天天开心,永远漂漂亮亮。 7、脉脉之情如一溪春水。快刀难斩断。无论我怎样的努力,始终无法将那个嘴角含笑的倩影从我心中赶出去。 8、没有你,我的天空少了一片色彩;没有你,我的世界多了一种思念。 9、你的快乐,我独家赞助:你的痛苦,我独家承受;你的幸福,我独家拥有;你的思念,我独家接受:你的脾气,我独家承受:你的一生,我独家陪伴。 10、你的身影越来越频繁地出现在我的眼前,渐渐地,意如呼吸一般,一秒钟也不中断,弄得我吃不好饭,睡不好觉。 11、你的眼睛眨一眨,我就死去,你的眼睛再眨一眨,我又活了过来,你的眼睛眨来眨去,于是我就死去活来。