打破修改后的Vigenere密码

时间:2012-12-01 11:12:34

标签: security encryption vigenere

我正在开发一种算法来破解修改后的Vigenere Cipher。常规Vigenere密码以下列方式工作:

Plaintext: ATTACKATDAWN
Key: LEMONLEMONLE
Ciphertext: LXFOPVEFRNHR

常规版

CR[i] = (P[i] - 33 + K[i]) mod 94 + 33

修改版

CM[i] = (P[i] - 33 + K[i] + CM[i-1] - 33) mod 94 + 33

请注意修改后的版本如何使用以前的状态/字符来生成新的状态/字符。我打破它的理论是将修改后的版本反转回常规的Vigenere密码。这样我可以应用一些频率分析和其他方法。我需要以某种方式重新排列这个等式,以便我在LHS上用C“ previousC ”。因为C和previousC都是已知值,所以应该很容易进行反转(从第一个字符开始) 。

我唯一的问题是,如何根据C和previousC重写等式?如果有人能指出那会有很大帮助。

1 个答案:

答案 0 :(得分:3)

CR代表常规的Viginere密文,CM修改后的Viginere密文

CR[i] = (P[i] + K[i]) mod 26
CM[i] = (P[i] + K[i] + CM[i-1]) mod 26
      = (CR[i] + CM[i-1]) mod 26

现在只需解决原始密文CR

CR[i] = (CM[i] - CM[i-1]) mod 26

一旦你有了常规的密文,就像往常一样打破它。