维吉尼亚加密算法是由凯撒密码拓展而来的,在凯撒密码的基础上加上了密钥这一概念。
先说说凯撒密码的加密方式:
对于明文中的所有字母都在字母表上向前或者向后按照一定数目进行偏移替换成为密文。例如对于:明文为:ABCDEFG,偏移量是3时,则对应的Caesar code 为 DEFGHIJ。对于Caesar密码,攻击者使用频率分析等手段即可破解该密码。在Caesar 密码的基础上衍生出了维吉尼亚密码加密算法,属于多表密码的一种简单形式,它是由一些偏移量不同的凯撒密码组成的。
为了生成维吉尼亚密码,我们需要生成一个26*26的字母表,每一行的偏移量相差为1,如下图所示
对于一段明文:HELLO WORLD,密钥:CSDN做一下操作;
找到密钥C对应的行序为2;
找到明文H对应的列序为7