
基本定义
简单来说,维吉尼亚密码就是由一系列偏移不同的凯撒加密组成密码字母表的加密算法
具体来讲,维吉尼亚密码,是采用了表格法:就是做一个26行26列(26x26)字母表,而其中每一行都是前一行的向后偏移一位的版本,于是根据这个原理,形成右图这样的表:
然后根据这样的表来实现加密和解密的过程
示例
加密
明文:helloworld
密钥:java
很明显,密钥小于明文的长度,于是将其拓展成:
javajavaja
然后根据明文的第一位字母h,密钥的第一位字母j,就去密码表里找J行H列的字符,然后从中得知该字符为Q,因此得密文第一位为Q
然后重复上面的步骤,得出以下密文
密文:qeglxwjrud
解密
密文:qeglxwjrud
密钥:java
跟加密方式一样,密钥也会被拓展成javajavaja
而其中,密文第一位字母q,密钥的第一位字母j,于是去找J行里的Q,得知其在H列,由此得出明文第一个字母为h
重复上面的步骤,得出以下明文:
明文:helloworld