码书:编码与解码的战争 · 第二十一节
《码书:编码与解码的战争》第二十一节
用与信息等长的钥匙加密并不安全,因为用有意义的单词拼成的钥匙本身带有结构,可被利用。
用与信息等长的钥匙加密并不安全,因为用有意义的单词拼成的钥匙本身带有结构,可被利用。例如在一段维吉尼亚密码文中,先假设明文里含有常用词“the”,把它随意放在几个位置,反推出对应的钥匙片段。第一处得出“CAN”,像正常音节;第二处得出“BSJ”,杂乱无章;第三处得出“YPT”,不太常见。把“YPT”当作完整单词的一部分,候选只有 APOCALYPTIC、CRYPT、EGYPT 等,逐一代入后,只有 EGYPT 导出的明文片段“atthe”有意义。由此推断钥匙由国家名组成,CAN 补成 CANADA,解出“themeeting”;再由新推出的字母反推钥匙“BRAZ”,即 BRAZIL;最后一段试出 CUBA,得到完整明文“themeetingisatthedock”。这种在明文与钥匙间反复推演的方法之所以奏效,全因钥匙由可辨识的单词构成。
1918 年,美军密码部门主管约瑟夫·茅博格少校提出随机钥匙:编成数百页的密码钥匙簿,每页是随机排列的字母,发信人与收信人各持一份,用完即销毁,故称单次钥匙簿密码法。它克服了此前所有弱点:随机钥匙没有重复,巴贝奇和卡西斯基的方法失效;随机试放“the”得出的钥匙片段无论位置对错都同样杂乱,无法判断放对没有;而 21 个字母的钥匙约有 5×10²⁸ 种可能,穷举不可行,且即使试遍所有钥匙,也会同时得到无数条看似合理的错误信息,无从分辨真假。