密码学|5.2 维吉尼亚密码

密码学 1年前 (2022) admin
538 0 0
我们在 1.1 一节中学习的简单替换密码是 单表替换密码 ,因为每个字母都是通过同一张表进行加密。随着密码分析方法在文艺复兴时期的意大利变得越来越复杂,相应地也发明了更复杂的密码(尽管它们似乎很少在实践中使用)。想想看,如果每个明文字母都用不同的密码字母进行加密,那么密码分析员所面临的任务就会困难得多。这种想法在现代密码学中以一次一密(one time pad)的形式出现,这我们将在第5.6节中进行讨论。但在本节中,我们讨论的是一种不太复杂的多表密码,称为维吉尼亚密码,其历史可以追溯到十六世纪。

  维吉尼亚密码的工作原理是使用不同的移位密码来加密不同的字母。为了决定转移每个字母的距离,Bob 和 Alice 首先就一个密钥或短语达成一致。然后,Bob 使用密钥的字母,一个接一个地确定将每个连续的明文字母进行移位。如果密钥的字母是 a,就不移位,如果密钥的字母是 b,他就移位 1,如果密钥的字母是 c,他就移位 2,以此类推。我们用一个例子说明这个过程:

例 5.12 假设密钥是 dog,明文是 yellow。密钥的第一个字母是 d,它的移位是 3,所以Bob将第一个明文字母 y 向后移位 3,这就得到了密码文本的字母 b。( z 后面是 a)密钥的第二个字母是 o,它的移位是 14,所以 Bob 将第二个明文字母 e 向后移动14,这就得到了密文字母 s。密钥的第三个字母是 g ,它的位移是 6。所以 Bob 将第三个明文字母 l 向前移动了 6,这就得到了密文字母 r

  此时 Bob 已经用完了密钥的字母,那么他现在该怎么做呢?他又从密钥的第一个字母开始。密钥的第一个字母是 d,它再次给出了 3 的移位,所以 Bob 将第四个明文字母 l 向后移了 3,这就得到了密文字母 o。然后第二个密钥字母 o 告诉他将第五个明文字母 o 向后位移14,得到了密文字母 c,最后,第三个密钥字母 g告诉他将第六个明文字母 w 向后位移6,得到了密文字母 c

  综上,Bob 用密钥 dog 加密了明文 yellow,得到了密文 bsrocc

  即使这个例子很简单,但也说明了维吉尼亚密码的两个重要特点。首先,明文中重复的字母 ll 加密后的密文为不同的 ro。其次,密码文本中的重复字母 cc 与明文中的不同字母 ow 相对应。因此,我们在 1.1.1 一节用来加密分析简单替换密码的词频分析对维吉尼亚密码则是不起作用的。

  在没有计算机的情况下(16世纪),进行维吉尼亚加密和解密的一个有用工具是表5.1中所示的所谓维吉尼亚表,维吉尼亚表由26个字母组成,排列在一个正方形中,每个字母都比它左边的字母后移了一个位置。为了使用一个给定的密钥字母来加密一个给定的明文,Bob 在顶行找到明文字母,在第一列找到密钥字母。然后,他在明文字母的下面和密钥字母的右边寻找表上的字母,即密文。也就是说,他将加密的字母定位在以密钥字母所在行和以明文字母所在列的交汇处 。

密码学|5.2 维吉尼亚密码

Table 5.1: The Vigenere Table

  比如,如果密钥是 d,明文字母是 y ,那么 Bob 看到第四行和倒数第二列,它们交汇于 b,所以密文字母就是 b

  解密也同样简单。Alice 使用包含密钥字母的行,在该行中寻找密文字母。然后,该列的顶部就是明文字母。例如,如果密钥字母是 g,而密文字母是 r,Alice 从 g 开始的那一行寻找,直到找到 r,然后她移到那一列的顶部,找到明文字母 l

例 5.13 我们继续用一个加密的实例来说明维吉尼亚密码。

明文:The rain in Spain stays mainly in the plain

密钥:flamingo

因为密钥是 8 个字符的,所以我们先把明文每 8 个字符分为一组

theraini | nspainst | aysmainl | yinthepl | ain.

然后我们将密钥写在明文下面,并用  分别代表明文、密钥、密文行
密码学|5.2 维吉尼亚密码

然后我们根据维吉尼亚表来进行加密,得到密文

密码学|5.2 维吉尼亚密码将密文按每五个字节一组进行分开,我们最终得到

ysedi vtwsd pmqay hfjsy ivtzd tnfpr vzftn.

注 5.14 如上所述,在维吉尼亚密码中,同一个明文字母在密文中由许多不同的字母表示。然而,如果密钥很短,明文的重复部分就会有一种趋势,那就是在密钥的同一字节上对齐,在这种情况下,它们会被相同地加密。这种情况出现在例 5.13 中,在 rain 中的 ain 和 mainly中的 ain 是用相同的三个密钥字母 ing 进行加密,所以它们产生了相同的密文字母 ivt。在密文中的这种重复,出现了16个字母的间隔,表明关键词的长度为16的一个因子。当然,并非明文中的每一个 ain 都会产生相同的密文。只有当它们被密钥的相同部分加密时,才会出现重复。   在下一节中,我们将展开利用密文中的重复来猜测密钥长度的想法,但在这里我们想说明一点,短的密钥比长的密钥更不安全。于是我们看到了实际(相对于纯理论)密码学中“永恒斗争”的开端,即在以下方面的取舍

是求效率,还是求安全性。

  我们考虑 Bob 和 Alice 还可以如何使他们的维吉尼亚密码更加安全。他们可以通过扰乱他们的维吉尼亚表的第一行的字母顺序,来使 Eve 的破解工作更加困难。不幸的是,扰乱字母表也使得加密和解密变得更加麻烦,其意味着 Bob 和 Alice 不仅要记住(或写下来保存)他们的密钥,而且还要记住扰乱字母表。如果他们想更加安全,他们还可以将他们的维吉尼亚表中的每一行字母进行扰乱。但如果他们这样做,那么他们肯定需要保留一份扰乱维吉尼亚表的书面副本,而这是一个严重的安全风险。

       

原文始发于微信公众号(山石网科安全技术研究院):密码学|5.2 维吉尼亚密码

版权声明:admin 发表于 2022年11月1日 上午10:44。
转载请注明:密码学|5.2 维吉尼亚密码 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...