Cryptanalysis

如何使用部分密鑰解碼 Playfair 消息?

  • October 9, 2016

我收到了一條 Playfair 加密消息和一個部分密鑰,其中缺少一些關鍵字母:

  • 損壞的鍵(?代表失去的字母):?ENVGQ?RKBDXACU?LIOW
  • 密文:LGOXMVYHIMISYSSQWMZX

我試圖自己解決這個問題並得到了 plaintext WELCHOQLHNLRBHED,這顯然是錯誤的。

我可以使用哪些方法來解碼此消息?

快速而骯髒的方法是編寫一個電腦程序來嘗試?位置中所有剩餘的可能關鍵字母並列印出結果明文。希望其中一個會脫穎而出,因為它顯然是正確的。請記住,每個字母在 Playfair 鍵中只能出現一次,並且您的鍵已經很長,因此字母表中沒有很多未使用的字母用於未知位置。

稍微更聰明的方法(這可能是您應該使用的)是首先查看是否已經可以在不知道失去的關鍵字母(或最後一行的任何字母)的情況下解碼任何密文字母對關鍵矩陣,因為它們顯然也依賴於失去的字母)。您可以手動執行此操作(再次,大概是預期的方法,因為這是您實際學習 Playfair 密碼如何工作的方式),或者您可以作弊並使用任何標準 Playfair 解碼器工具,然後嘗試幾種不同的變體鍵並查看明文的哪些字母發生了變化。

例如,下面是嘗試解碼消息(使用這個線上解碼器)的結果,其中有幾個不同的缺失字母選擇,在鍵中不存在的八個字母(FHMPST和)中:Y``Z

Ciphertext:              LG OX MV YH IM IS YS SQ WM ZX 
Decoded with ??? = FHM:  WE LC OF SK LW LT TP PH OW SU
Decoded with ??? = PST:  WE LC YN MF AI LR HK QB IZ HU
Decoded with ??? = TYZ:  WE LC PN EL AI WM BH FB IS LD

您可以嘗試更多選擇,但這裡應該明顯的是,解碼前兩個字母對顯然不受失去的關鍵字母的影響,因此,明文以字母開頭WELC。現在,以這些字母開頭的英語單詞並不多——事實上,我只能想到一個非常可能的單詞。

假設明文以“Welcome”開頭,您現在可以排除任何可能導致MV解密為OM. 即使這還不足以完全解決問題,你至少應該能夠鎖定更多的明文字母,這樣就有希望猜出更多明文中的單詞,從而獲得更多已知的明文字母對,等等。


事實上,如果您考慮 Playfair 密碼的工作方式,知道OMencrypts toMV會立即告訴您一些有用的資訊:即字母V,MO必須全部出現在同一行或同一列中,並且它們必須相鄰並按照特定的順序。在這種情況下,查看關鍵矩陣:

? E N V G
Q ? R K B
D X A C U
? L I O W
? ? ? ? ?

這告訴您,要使此明文/密文對正確,M必須出現在最後一行的第四列中,即 belowO和 above V。(請記住,行和列是環繞的。)

不幸的是,使用標準的 Playfair 鍵矩陣設置,鍵中剩餘的任何字母都按字母順序簡單地附加,*沒有辦法M簡單地通過填寫?鍵中的標記來進入該位置!*所以要麼:

  1. 我猜第一個明文單詞應該是“歡迎”是錯誤的,
  2. 密文包含錯誤(總是可能的,儘管希望在精心設計的加密謎題中很少見),
  3. 密鑰實際上比我們給出的要長,我們也應該任意分配最後一行的剩餘五個字母,或者
  4. 還有一些有趣的事情發生了,畢竟這不是標準的 Playfair 密碼。

如果我們假設上面的#3,並開始洗牌最後一行的字母,實際上有可能得到一個以“歡迎”開頭的純文字,其餘部分看起來至少有點像英語(儘管顯然不夠我清楚地宣布它是正確的解決方案,而不知道謎題來自哪里以及可能有哪些其他線索)。所以,唉,我無法確定這些步驟是否會為您的難題提供正確的解決方案。但至少它們確實說明了解決此類問題的一般方法。

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