维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。假如以上面第一行代表明文字母,左面第一列代表密钥字母,对如下明文加密:
TO BE OR NOT TO BE THAT IS THE QUESTION
当选定RELATIONS作为密钥时,加密过程是:明文一个字母为T,第一个密钥字母为R,因此可以找到在R行中代替T的为K,依此类推,得出对应关系如下:
密钥:RE LA TI ONS RE LA TION SR ELA TIONSREL
明文:TO BE OR NOT TO BE THAT IS THE QUESTION
密文:KS ME HZ BBL KS ME MPOG AJ XSE JCSFLZSY
与凯撒密码类似,进行一下运算两次即可
采用替代密码算法中的维吉尼亚密码方法,密文C=“HEADVIGENERE”,密钥K=KEY,求明文P
将密文HEADVIGENERE用密钥替换后为KEYKEYKEYKEY
替换前:HEADVIGENERE
替换后:KEYKEYKEYKEY
解密求明文:
按替换后的内容找到第一行的K所在位置向下寻找,找到H的位置,当前行最左侧第一列对应的就为明文X
加密求密文:
按明文找到第一列对应的H,在从第一行中找到对应的密钥K,两个位置相交的值就为密文.
答案:
HEA DVI GEN ERE
KEY KEY KEY KEY
XAC TRK WAP UNG
解出的明文为:I know we need time to calm down.
I want to talk to you in the night of May 22.
If you agree,please reply me as soon as possible.
I love you.
翻译过来就是,我知道我们需要时间冷静一下。我想和你在5月22号晚上谈一下。如果你同意,请尽快回复我。我爱你。
明文:是看的懂的语言文字
密文:是看不懂的语言文字
密钥:是把看的懂的语言文字转换成看不懂的语言文字
明文:BOSE
密钥:YZ
密文:ZNQD
维吉尼亚密码是以法国外交官、密码学家布莱斯·德·维吉尼亚的名字命名的,不过不是他本人发明的。
【加密原理】
维吉尼亚密码是在凯撒密码的基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26行26列的密码表。
除了密码表,还必须有一个密钥。密钥由字母组成,最少一个字母,最多可与明文字母数相等。如果密钥只有1个字母,相当于就是凯撒密码。举个例子:
明文:I Love You
密钥:OK
首先,密钥长度需要与明文长度相同,如果少于明文长度,则重复拼接直到长度相等。本例中,明文长度为8个字母(非字母忽略),密钥补全为“OKOKOKOK”。
然后根据密码表进行加密。明文第一个字母是“I”,密钥第一个字母是“O”,在表格中找到“I”列与“O”行的相交点,字母“W”就是密文的第一个字母。同理,“L”列与“K”行交点字母是“V”。“O”列与“O”行交点字母是“C”……以此类推,得到密文: W VCFS ICE。
【解密原理】
密文:PWZRNZBZ EA NQKBUHN LNB
密钥:wind
首先把密钥重复拼接到和密文长度相同,上例中密文为20位字母,密钥拼接后为:windwindwindwindwind。
密文P对应密钥W,在密码表中找出W行为P的列,沿着这一列向上找到最上面的字母是T。以此类推,得到明文:tomorrow is another day。
1.古典密码编码方法归根结底主要有两种,即替换密码和置换密码。
(1)一种是将明文字符替换成一些其他的字符,形成密文,称“替换密码”。其本质:不变的是字符的位置,变化的是字符。
(2)一种是将原有的明文字符的顺序打乱,形成密文,称“(位)置(变)换密码”。其本质:不变的是字符本身,变化的是位置。
2.替换密码:
(1)凯撒密码
基本思路:将明文中的字符移动一定的位数(k)来实现加密和解密,也就是明文中的所有字符都在字符表上进行k偏移,形成密文。
(2) 乘法密码:
基本思路:使用采样的方式进行加密,将明文字符串的每个字符,每隔k位算出字符并排列起来形成密文。
(3)仿射密码:
基本思路:明文中所有字符按照(ax + b)mod 26进行计算,得到密文。
(4)维吉尼亚密码:
基本思路:使用字符串作为密钥,并把密钥与明文进行对应,依次重复密钥,直至与明文的长度相同。
3.置换密码:
(1)栅栏密码
基本思路:先将明文中的字符分成N个一组,再将每组的第1个字符组合,每组的第2个字符组合,依次类推,直到第N个字符组合,最后再将所有字符全部连接起来,形成密文。这里N称为栏。