改进的维吉尼亚密码

improved Vigenere Cipher

所以我知道可以通过频率分析无需密钥就可以破解 Vigenere Cipher,并且有 一些聪明的方法来获得密钥长度。 我的问题是,如果我们用不同的密钥集再次加密密文会怎样? 到目前为止,我所看到的获取密钥长度的所有方法都依赖于某种频率分析。 第一轮加密应该给出相当均匀的字母分布,所以如果我们 再次加密,然后应该禁用任何尝试在没有密钥的情况下解密的方法。 这会让它牢不可破吗?

不,假设我们仍然可以对新密文进行频率分析,因为维吉尼亚密码仍然被破解。您只是让攻击者更难执行分析,但您添加的只是一层混淆。不幸的是,这并不能神奇地修补破损的密码。

例如,假设我们有一个明文并使用不同的密钥对其加密两次

plaintext  Whosebug
key1       heapunderflow
key2       cryptographic
ciphertext boygxpezizdku

这相当于先用 key2 加密 key1,然后使用该输出作为明文的密钥

key1       heapunderflow
key2       cryptographic
key3       jvyenbjvruswy (ciphertext of key1-key2 encryption)

plaintext  Whosebug
key3       jvyenbjvruswy
ciphertext boygxpezizdku

当然,那我们还可以进行分析。当密钥真正随机时,只要是明文并且只使用一次,只有这样维吉尼亚密码才假设是牢不可破的,然而,密钥提供密码强度,而不是密码,在这种情况下,我们将系统称为one-time垫.