在 Vigenere 密码方法中使用多个密钥进行加密是不是安全?

Posted

技术标签:

【中文标题】在 Vigenere 密码方法中使用多个密钥进行加密是不是安全?【英文标题】:Is it safe to use several keys in Vigenere cipher method to encrypt?在 Vigenere 密码方法中使用多个密钥进行加密是否安全? 【发布时间】:2018-10-15 11:14:00 【问题描述】:

我只是好奇使用下面显示的这种加密方法是否安全。 假设我们有一个要在加密过程中使用的密钥列表,例如 ['apple','coco','piano']。对于列表中的每个密钥,我们使用此密钥和 Vigenere 密码方法来加密文本。所以在这个例子中,我们将首先使用'apple'对目标文本进行加密,然后使用'coco'再次加密,最后使用'piano'进行加密。 那么,使用这种方法安全吗?谢谢。

【问题讨论】:

【参考方案1】:

如果您使用不同的密钥应用 Vigenere 密码严重时间,则可以构造一个(通用)密钥,它会给出相同的结果。

使用 Vigenere 加密时,您会重复密钥以匹配您要加密的数据。如果您想使用密钥 apple 加密文本 the secret message is we attack a dawn,您可以这样设置:

Text:       the secret message is we attack a dawn
Key:        appleappleappleappleappleappleappleapp
            --------------------------------------
Encrypted:  uxu xfshqy cuexbwu nt mq bjjmhl q ibmd

如果您随后使用coco 再次对其进行加密,您将拥有:

Text:       uxu xfshqy cuexbwu nt mq bjjmhl q ibmd
Key:        cococococococococococococococococococo
            --------------------------------------
Encrypted:  xmx auvwtn rxtaqzj cw pf qmypwo t lqps

还要注意coco 实际上是一个“弱” 键,它在co 处给出相同的结果!无论如何..在这种情况下applecoco的组合键是desahpseot所以你有:

Text:       the secret message is we attack a dawn
Key:        desahpseotdesahpseotdesahpseotdesahpse
            --------------------------------------
Encrypted:  xmx auvwtn rxtaqzj cw pf qmypwo t lqps

注意desahpseot 键是如何组合成这样的:

key 1:        appleapple
key 2:        cococococo
              ----------
Combined key: desahpseot

【讨论】:

【参考方案2】:

哪个“安全”?它既安全又不危险,因为它不会破坏任何东西。它不像安全中那样特别安全,因为您可以找到由这三个键组合而成的键(尽管它可能不是英文单词)。当您重复它们时,有些加密方案会变得更加安全; Vigenere 不是其中之一。

【讨论】:

以上是关于在 Vigenere 密码方法中使用多个密钥进行加密是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

在 vigenere 密码中查找密钥的长度

如何将另一个密钥添加到 vigenere 密码中

Python中的Vigenere密码不适用于大写/小写字母转换

C中Vigenere的密码移位问题

C++ 链表凯撒密码 Vigenere Cipher

如何在 vigenere cipherkey cs50 pset2 中重用(循环)密钥