改进的维吉尼亚密码
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垫.
所以我知道可以通过频率分析无需密钥就可以破解 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垫.