我会想象该语句的上下文是在密码的上下文中,其中在多个位置重复的单词会在每个位置产生相同的密码文本。如果我看到:
AER TEO ZRE SGR。AER FSD ZFD DFG。YTR ASD AER DSG。
语言分析会显示“AER”很可能是“The”,如果您从那里截获足够数量的加密消息,您可以开始从使用模式中确定其他单词并创建反向映射。另请注意,这使我们能够以零碎的方式确定密码的原始消息,而无需实际“破解”加密。作者的建议通过减少语言分析可能利用的重复/模式来帮助缓解这种技术。他们可能会找出“the”的反向映射,但如果您使用“the”的其他同义词,那么它在其他位置的用法就不会那么明显了。
现代密码,如果使用不当,实际上也有同样的弱点。
如果我加密诸如“狐狸跳过桥”之类的句子。使用密码块链接(CBC),那么第一个“the”的密码将不同于第二个“the”,因为先前加密的数据“瀑布”到每个下一个块,导致相同的值几乎不会产生相同的密码。因此上述攻击一般不适用。
但是,如果我使用较弱的电子密码本(ECB)方法,那么两个“the”的意志(技术上可以,请参阅评论)具有相同的密码文本,因此容易受到类似的攻击。 作为“模式化”ECB 的示例,请查看使用 ECB 加密的此图像:
http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#mediaviewer/File:Tux_ecb.jpg
如果使用不当,通过将长消息拆分为较小的消息,可能会将 CBC 分解为较弱的 ECB。在极端情况下,考虑是否将每个单词拆分为它自己的消息,为每个单词开始和结束一个新的 CBC 处理。网络上的某个人会看到一系列消息,并注意到其中一些消息是相同的,因为它们都在加密完全相同的消息。(这假设每个消息/单词使用相同的键/IV)
另一种情况是您对多个小消息使用相同的初始化向量。消息的开头和/或如果消息小于 IV 大小,则相同的消息(或至少相同的消息的开头)将具有相同的密文。我实际上已经看到人们犯了这样的错误:将他们的消息分块以便通过网络传输,然后分别加密每个块,这会产生这种类型的密码本漏洞。
因此,Mark 主要通过确定现代密码不易受到作者建议试图防止的攻击类型来识别。之所以会出现这种情况,是因为现代密码建议不要使用 ECB(电子密码本)。
但是,如果您以某种方式使用现代加密,导致它本质上是一本密码书,那么您可以通过听取作者关于不同同义词的建议来降低风险。因此,该建议有些适用,但与修复您的加密方法以使其不是密码书方法相比,这更像是一个弱创可贴。
为了解决您的一些修订/评论:作者所指的内容(对代码书漏洞的缓解保护),以及 NSA 标记某些单词的想法,实际上是两个完全正交的概念。前者处理代码破坏和防止代码破坏的保护。后者的假设是 NSA 已经访问了消息的明文,并且没有试图破坏任何类型的加密,而是简单地识别“感兴趣的消息”。
使用 ECB,“dog”和“puppy”将具有极其不同的密码文本,因此单词之间的任何相似性都会在加密后消失。如果在 ECB 加密消息中的 20 个地方使用了“dog”,那么它的密文将出现在 20 个地方。如果您改为使用包含 20 个不同单词的俚语列表来表示 dog,那么您将拥有 20 个不同的密码文本,并且它们之间的相关性并不明显。这是我相信作者想到的概念。
另一方面,作者建议的技术“可能”可以避免被“感兴趣的消息”扫描器标记,但与原作者建议该技术的原因截然不同。在这种情况下,该技术几乎没有效果,因为如果 NSA 使用的任何东西都达到了 Google 用于其搜索引擎的复杂程度,它很容易识别出相似的词和同义词。已经有很多算法可以分析两个单词之间的“距离”以识别拼写错误,当然也有现成的同义词列表。