我一直在阅读奥马松的“严肃密码学”一书,开始学习密码学。有一部分作者建议使用置换的加密应该如何保证这些属性的安全。
对于第一个属性,我想知道Vigenere密码是否可以被认为是安全的(主要基于上述这些排列规则),因为某些密钥会导致冲突。
例如,Message = "ABBA“// Key = "BA”
=> Ciphertext = "BBCA",与"A“和"B”发生碰撞。
发布于 2022-08-10 11:56:24
您所规定的规则适用于使用一个字母的替换密码,例如,当每个字母被同一个密钥加密时。
Vigenere密码使用多个字母(每个键的字母各一个),因此所述规则分别适用于每个字母。
在你的例子中,你使用长2的键,这意味着:1,3,5,7.字母使用相同的排列(A键)2,4,6,8加密.字母使用相同但不同的排列加密(键"B")
“键A置换”和“键B置换”之间的省略不算在内,因为您使用的是两个不同的键。
基本上,您可以理解使用Vigenere密码作为一个明文的n个替换密码,逐个字母地修改它们。
发布于 2022-08-10 11:00:55
您所说的碰撞实际上是一个不动点,加密映射不会“移动”或“更改”符号。
如果vigenere键是均匀分布的,有时会发生这种情况。这不是问题。事实上,没有不动点的密码是弱的,因为它看起来不够随机。
即使是像AES这样的现代分组密码,也被设计成像一个随机排列。因此,它们有时会产生一个定点。
具体来说,Enigma在第二次世界大战中受到攻击,因为插件的设计避免了一个定点,因此在Enigma下没有任何字母可以映射到自己。请参阅这个问题关于更改Enigma设计以避免此弱点的可能性。
一般情况下,由于密码运算方式等因素的影响,现代密码能否在实践中被攻击是一个复杂得多的问题。不动点自由排列是否存在缺陷?问题得到了很好的讨论,并给出了一些非常详细的答案。
https://crypto.stackexchange.com/questions/101417
复制相似问题