Vigenere

如果使用多個互質長度的密鑰,如何破解 Vigenere 密文?

  • October 6, 2018

我在這裡遇到了使用多個互質長度的 Vigenere 鍵的想法 這個想法是,如果你使用多個長度都是互質的鍵怎麼辦?那麼您的有效密鑰長度將是所有密鑰長度的乘積,因為直到那時它們才彼此對齊。

這對於密鑰管理來說非常棒,因為使用長度為 29、31 和 37 的密鑰,您的有效密鑰長度將超過 33,000!只要您跟踪有效的密鑰長度使用情況,您就可以將它們重用於許多消息。

當它的長度小於密鑰的乘積時,如何破解這樣的密文,而N密鑰的長度都是互質的?

我在這裡在 Reddit 上發布了同樣的問題並得到了這個明顯的解決方案,但由於作者沒有時間詳細說明,所以我無法理解。

原來你打破它的方法是使用Kullback 測試。

如果您有大量已知的純文字,即使您從未加密超過密鑰長度的乘積,您也應該能夠破解它。

讓我們取長度為 p 和 q 的密鑰,如果攻擊者不知道 p,那麼可能不會有很多選項,因此我們可以遍歷它們。

對於已知的 p,我們尋找已知的純文字片段,它們之間的距離是 p 的倍數。通過純文字減少密文,距離 p*i 的差異給我們長度 q 密鑰。我們將其刪除,然後我們很容易找到長度 p 鍵。

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