第4关:维吉尼亚密码
任务描述
在前面介绍的移位密码和代换密码中,一旦密钥被选定,则每个字母对应的数字都被加密变成对应的唯一数字。这种密码体制我们一般称为单表代换密码。下面介绍的是有名的维吉尼亚密码,这是一种多表代换密码。
本关任务:用 C++ 实现维吉尼亚密码,然后对输入的明文字符串进行维吉尼亚加密后打印输出。
相关知识
为了完成本关任务,你需要掌握:维吉尼亚密码的密码体制。
维吉尼亚密码的密码体制
维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式。下面给出具体定义。设m是一个正整数,定义P=C=K=(Z26)m(这里之所以会多出一个m次方,就是因为维吉尼亚密码是一个多表代换,即对于相同的明文可以对应不同的密文)。对任意的密钥K=(k1,k2,...,km),定义:ek(