Vigenere ciphers : 需要幫助進行數學分析
我一直在學習 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} $$