维吉尼亚密码加解密原理及其实现

维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。

为了说清楚维吉尼亚密码得从移位替换密码说起,比较典型的就是凯撒密码。

恺撒密码是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。

例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。

 

原文   F   l   y       i   n       t   h   e       s   k   y  
密文   I   O   B       L   Q       W   K   H       V   N   B  

 

因为概率论的出现这种简单的移位或替换就容易破解了,其原理很简单,英文中字母出现的频率是不一样的。比如字母e是出现频率最高的,占12.7%;其次是t,9.1%;然后是a,o,i,n等,最少的是z,只占0.1%。

维吉尼亚密码加解密原理及其实现

 

                  英语中字母频率统计

除了英语,其它语言也有详细统计。

维吉尼亚密码加解密原理及其实现

                      各语言中字母频率统计

只要字符总量足够,全部收集到一起,统计各个字符出现的频率,然后再加上字母前后的关联关系,以及所要加密的语言本身语法搭配就可大幅度降低字母

的排列组合的可能性,这样密码就破解了。

当然维吉尼亚密码也属于古典密码学的范畴,都是对单个字符或符号进行移位或替代

维吉尼亚加密原理

核心:为了掩盖字母使用中暴露的频率特征,解决的办法就是用多套符号代替原来的文字。

比如原来的字母是A,从前只把它替换成F,现在把它替换成F或者G这两个。那什么时候用F什么时候用G呢?可以自行规定,比如说,字母在奇数位时用F代替,字母在偶数位时用G代替。

这样频率分析法暂时失效了。

而且,多套符号加密法并没满足于2~3套,后来典型使用的是26套,这就是第三代密码“维吉尼亚加密法”。

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

维吉尼亚密码加解密原理及其实现

                             维吉尼亚密码表

每一行就可以代表一套凯撒密码加密方法。

加密方法

密公式:C = (P + K)%26

C:密文

P:原文

K:第几套加密方式

 

使用第几套加密方式是通过约定一个规则来确定的,这个规则就是“密钥”。

这样一个密钥字母代表一套加密方式,比如:t代表第19套加密方式,h代表第7套加密方式,i代表第8套加密方式,s代表第18套加密方式。

这样密钥和原文每个字符一一对应,如果密钥长度不足,那么循环替代。

 

原文   h   e   l   l   o       w   o   r   l   d  
密钥   t   h   i   s   t   h   i   s   t   h   i  
密文   A   L   T   D   H       E   G   K   S   L  

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygjdp.html