Cryptanalysis

Vigenere ciphers : 需要幫助進行數學分析

  • March 4, 2015

我一直在學習 Vigenere 密碼,然後想到了另一種加密和解密的方法。

這是我的加密方法:

I have a msg : "messages from father to his son"
I have a key : "home"
And the cipher text : "tsewmkwk fxse krhtjr mv lzl gvv"

我已經為加密創建了數學算法,但由於解密而陷入困境。這就是我所做的加密:

msg : "messages from father to his son"
key : "homemess ages fromfa th ert ohi"

因此,我將 msg 作為加密方法的一部分。和,

我的問題是:

下面是如何實現此過程的數學/密碼分析方法?

msg : "tsewmkwk fxse krhtjr mv lzl gvv"
key : "homemess ages fromfa th ert ohi"
to get it back to "messages from father to his son" ?

可能有人可以幫助我,我不夠聰明,無法做出等式

編輯 :

據我所知,維吉尼方程基本上是這樣的:

Ci = Ek(Mi) = (Mi + Ki) mod 26

其中 E 是加密,K 是加密的密鑰。而且您知道該加密的解密是這樣的:

Mi = Dk(Ci) = (Ci - Ki) mod 26

對 ?

現在,我使用以下公式重新創建加密:

C_i=E_k (M_i )=(∑_(i=0)^k▒(M_i+K_i ) + ∑_(i=k+1)^m▒〖(M_i+K_i))〗 mod 26

但是,這是我的問題是你可以看到我創建方程式的愚蠢。但我可以將方程轉換為程式,但不能相反。我想為分析報告製作方程式。可能是這增加了不清楚的問題,請不要告訴我如何加密或解密。可能是一點基礎數學可以啟發我一點。

謝謝…

首先,解密前四個字元。您找到的明文是下一個四個字元的塊的密鑰,因此在此之後您可以解密下一個塊,然後找到該塊的密鑰,依此類推。

這意味著您需要區分案例:第一個案例 $ |K| $ 字元(其中 $ |\dots| \stackrel{\text{def}}{=} \text{the length of $\cdots$} $ ),其余文本為一種情況。從數學上講,您可以將其寫成如下:

$$ C_i = \begin{cases}i < |K| & M_i + K_i \pmod{26}\ i \geq |K| & M_i + M_{i - |K|} \pmod{26}\end{cases} $$ 為了 $ i<|K| $ 我們採用標準的 Vigenère 公式。對於其餘部分,您將密文取回一個密鑰長度作為密鑰。請注意,我的公式假設您從 $ i=0 $ ; 如果你從 $ i=1 $ 你需要 $ \le $ 和 $ > $ 反而。

然後,類似地進行解密:

$$ M_i = \begin{cases}i < |K| & C_i - K_i \pmod{26}\ i \geq |K| & C_i - M_{i - |K|} \pmod{26}\end{cases} $$

引用自:https://crypto.stackexchange.com/questions/24137