人们在单一恺撒密码的基础上扩展出多表密码,称为“维吉尼亚”密码。是法国密码学家维吉尼亚在1586年提出的一种多表替代密码,维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。
1、加密公式:密文=(明文+密钥)Mod26-1
2、解密公式:明文=[26+(密文-密钥)]Mod26+1
例如:密钥:d 明文:b
d在字母表中的顺序为4,b为2
密文=d+b-1=4+2-1=5,即为e
解密时明文=5+1-4=2,即为b
3、也可以使用查表法进行加密
如下图所示维吉尼亚表:
例如:密钥的字母为d,明文对应的字母为b,则可在密码表中第一列找b,在第一行找d,在两个字母交叉处,即为加密后的字母e
对于维吉尼亚密码进行加密:
密钥:have
ha ve ha veh av eh aveh av eha vehaveha
明文:to be or not to be that is the question
密文:ao wi vr isa tj fl tcea in xoe lylsomvn
加密过程:密钥第一个字母为h,明文第一个字母为t,因此可以找到在h行t列中的字母a,以此类推找出其余密文。
下面为软件实现加解密演示:
图1 密钥及要加密的文本
图2 加密后的文本
图3 恢复后的文本
以上就是维吉尼亚加解密的实现过程。