跳转到内容

密码学/维吉尼亚密码

来自维基教科书,开放的书籍,开放的世界

维吉尼亚密码

[编辑 | 编辑源代码]

维吉尼亚密码是 16 世纪 Blaise de Vigenere 开发的最著名且最简单的多表代换密码之一。维吉尼亚密码的操作方式类似于凯撒密码,但是,它不是将明文字符偏移固定值 n,而是选择一个关键词(或短语),并使用该关键词中字符的序数来确定偏移量。生成密文的流程很简单,但它在 300 年间未被破解。该系统非常简单,以至于维吉尼亚加密系统已被发现和重新发现数十次。

例如,如果关键词是“KEY”,明文是“VIGENERE CIPHER”,则首先必须重复密钥,使其与文本长度相同(因此密钥变为keykeykeykeyke)。接下来,V(22)的序数值通过 K(11)的序数值偏移,得到 F(6),I(9)的序数值通过 E(5)的序数值偏移,得到 M(13),等等。密钥会重复,直到整个消息被加密。

P: VIGENERECIPHER
K: KEYKEYKEYKEYKE
C: FMEORCBIASTFOV

一种更简单但等效的加密文本方法是写出字母表和密钥的每个字母,并简单地将字母配对。

ABCDEFGHIJKLMNOPQRSTUVWXYZ

KLMNOPQRSTUVWXYZABCDEFGHIJ
EFGHIJKLMNOPQRSTUVWXYZABCD
YZABCDEFGHIJKLMNOPQRSTUVWX

首先,第一行中的 V 会与第二行中的 F 对齐。然后,向下移动一行,你会发现第一行中的 I 与第三行中的 M 对齐。在到达最后一行后,你将继续将字母与第二行对齐。这使用了完全相同的密码,只是在手工进行加密时,这是一种更容易执行的加密方法。

凯撒密码可以被视为维吉尼亚密码的特例,其中选择的关键词只有一个字符长。

用算法来表达这种密码将是

(plain_text_letter + (key_letter - 1)) mod 26 = cipher_text_letter

GROMARK 密码

[编辑 | 编辑源代码]

格朗斯菲尔德密码是维吉尼亚密码的一种变体,它使用伪随机十进制密钥。[1]

格朗斯菲尔德密码是由约瑟夫·德·布龙克霍斯特(Gronsfeld 伯爵)在 1744 年发明的。[2]

格朗斯菲尔德伯爵(Gronsfeld 密码)开发的密码在整个欧洲使用。它的加密和解密与维吉尼亚密码相同,只是密钥是十进制数字块(根据需要重复),将每个明文字符偏移 0 到 9,而不是字母块(根据需要重复),将每个明文字符偏移 0 到 25。它比维吉尼亚密码更受欢迎,尽管它有局限性。

用算法来表达这种密码将是:[3]

(plain_text_letter + key_digit) mod 26 = cipher_text_letter

GROMARK 密码是使用混合字母表和运行密钥的格朗斯菲尔德密码。[4]

运行密钥密码

[编辑 | 编辑源代码]

运行密钥密码是一种多表代换密码,它使用一段文本(通常来自一本书)来提供一个非常长的密钥流。通常,要使用的书籍会在事前达成一致,而要使用的段落会在每次发送消息时随机选择,并在消息中的某个地方秘密地指示出来。

密码分析员会看到密文字母分布中出现峰值,对应于当高频明文字母被高频密钥文本字母加密时形成的字母。[5]

如果密码分析员发现两个密文是用相同的“一次性”密码(错误地)加密两个不同的明文消息生成的,那么密码分析员可以将这两个消息合并以生成一个新的密文,该密文与使用其中一个原始明文消息作为运行密钥加密另一个原始明文的结果相同,然后使用解密运行密钥密码的技术来尝试恢复这两个明文。


进一步阅读

[编辑 | 编辑源代码]

在本手册的后续章节中,我们将讨论破解维吉尼亚密码的技术。

  1. "GROMARK 密码及其变体"
  2. "格朗斯菲尔德密码".
  3. Jerry Metzger. "美国密码协会及其影响". 美国密码协会出版物。第 8 章:“密码交换和密码标准”。第 "格朗斯菲尔德密码" 节。
  4. Jerry Metzger. "美国密码协会密码交换和密码标准”。第 "GROMARK 密码"
  5. Sravana Reddy; Kevin Knight. "解码运行密钥密码". 2012.
华夏公益教科书