Xor
漢明距離與重合指數
在分析重複密鑰異或密碼以查找密鑰長度時,我已經閱讀了兩種密鑰方法(假設Kasiski 的方法不僅僅是重複的密文塊),對於一些假設的密鑰長度 $ l $ ,檢查附近密文長度的漢明距離 $ l $ ,並在將文本拆分為時檢查 IoC 中的文本列 $ l $ 列。
漢明距離何時更有效,IoC 何時更有效?有沒有辦法根據密文知道哪種技術更有幫助,或者這是“嘗試它們,現在它更像是一門藝術而不是一門科學”之類的事情?
當您懷疑明文已與某些重複的密鑰流進行異或運算時,漢明距離更有效。那是因為 XOR 在位級別上起作用,漢明距離也是如此。
當您懷疑明文已與一些重複的密鑰流組合時,巧合索引更有效,其中組合器逐個字元而不是逐位工作。例如,IoC 對於 Vigenere 密碼或重複密鑰多字母密碼將更有效。這是因為這些密碼將明文的單個字元轉換為一個單元(而不是單個位),並且 IoC 在字元級別工作。
如果您願意,您可以將漢明距離技術視為在比特級別有效地應用重合指數:漢明距離實際上是在比特級別工作的 IoC 的一種變體,當組合器是按位異或運算。因此,如果您知道明文是使用一些按位運算(例如 XOR)與一些重複的密鑰流組合的,那麼您可能會使用漢明距離(有效,在位級別而不是字元級別應用 IoC)。
當然,您始終可以同時應用這兩種方法,看看哪種方法在您的特定密碼上效果更好——但是上面的討論告訴您,您應該期望哪種方法在任何給定情況下效果更好,以及為什麼。