Encryption

攻擊 Playfair 密碼時如何創建和驗證潛在網格?

  • May 21, 2016

首先:我不是要你解密任何東西。這個問題是關於攻擊 Playfair 密碼的;更具體地說——如何在這樣做時創建潛在的網格。

我目前正在處理一條遊戲密文中的消息。問題是沒有網格,只有潛在的嬰兒床是攻擊。有人告訴我有一個密鑰被使用,但我們必鬚髮現它。

我嘗試過的(並且能夠做到)

使用頻率分析後,我設法發現這QK似乎是字母th,因為它是最常見的圖表。我發現CV是密文中最常見的字母之後的字母QK

iagraphs that follow QK

VE - CQ - AH - RQ - VM - BC - BP - VU - SG - SH - CF - UV - UY - SZ - SQ - VQ - FH - AE - RZ

QK - VE = 1
QK - CQ = 4
QK - AH = 1
QK - RQ = 2
QK - VM = 1
QK - BC = 1
QK - BP = 2
QK - VU = 1
QK - SG = 1
QK - SH = 2
QK - CF = 1
QK - UV = 1
QK - UY = 1
QK - SZ = 1
QK - SQ = 1
QK - VQ = 1
QK - FH = 1
QK - AE = 1
QK - RZ = 1

Most common after QK: CQ

ciphertext:

QKVEPTQDEURAQKCQFCQGNWKWQARIVTVQQADVGHQKCQQHFMUQUHGBNWPMPFQKAHMSDHPRRB
ZRSMYKVXVRVUQWPZPFBPFHDZZUUWUVLWSPKQPMHVKMVTBPACWYQKRQMVWLQKVMSFNQQANW
KDMKMVRADPGEEVVYQHYVKZYMGBUEYVDQTIPLVUVYPZRPOYWKRASHUVUYEVLDSEOKMKHDUM
SUIZSEXKMVQKBCHUXQMVTKOYISCMKXQKBPHCPXIMGWVRVUQADECMGBYOESUVGEQANWNKCF
KXFHFLMTOYSGSNQKVURQOYKNOPSHAHDWQHUMMVKBKBYKAHDWQKCQQDEGESSLSMEVCQQCKT
QKSGQDRIMVRHOPRHOYWKUZSPKZULQLVURQRQRHHDWKAHVYQKSHVZHNSZKFQHSDVQQATPHU
XYQLCQQDESKIVWQAIGKZRNALCEVQQAKIBPYOGSWXGEKBQCESSLSMEVQKRQDEMVRZVUASKF
TIDMQHQVRVSWBVQDKXOVDCNWPMYOWXGEDHUVCFTIPBQKCFZUUHQLCQQKUVRZBKQKUYGSKF
UQVRVUTIHUBSILRABKQKSHFHOGWVGZPXBVUVZRBIVUQLCQOYQDRPOPSHVZHNSZSEXCUVCH
BPCIVXIMDEGMPFSNQKSZELBVEVUYVYAHPMPFCBMCFSPUEPBTVOBPASRVSWQKBPCYQHWOVC
RAOPKBXWQKSQLSMIFZPWPONWHRLRMVSHVZHNVQQAEDBIIVFHCWQAUSHFQDXGMSVEFHCWQA
WVCGGBDCFTGOARKXEGLFBSVYQKVQQAQLMKAQSFRZVEVYQHWXUHMTDCNWKWQADSAHYKFHOG
QKCQVYFNCNMPHRLRMVSHVZHNAHXCMSVYQKFHQKAEMBIZVEGMGMLPRQTIPLVURYGEESNYKI
EVCWMIVQQAFCQXVUVEOVUVFDBKGBARKFVQVOQADZVUOGFHHSIKHRBPVYAHLMSHEDKOOGDH
PWOVWLQKRZOVPOUYVYQAMSUFWYYVCIMCIXSZGBWXGEKXCBVWQAVIVXQHDUOGFHHNFHZPCE
UHMCBVOXQRTMRNFCNWNMVEKMVFPZPFFHLRZCPBPFSMAPXKMTZDBUVMVTRYMVWLQDEM  

我很確定uv/vuer/re。但我在問自己是否其中之一可能是e……

問題

我無法弄清楚如何獲得正確的想法來幫助創建可能導致破譯文本的網格。在攻擊 Playfair 密碼時,我應該/應該如何創建和驗證潛在的網格,基於我到目前為止所得到的?

(如有疑問:我正在尋找*“如何”。這不是“破譯這個”*問題。)

順便說一句,你的懷疑都是正確的。(我解決了它,並且知道關鍵字)。

您有一個嬰兒床,即 ATTACK,具有典型的模式:兩個相互顛倒的二元組,這意味著(如果我們假設嬰兒床從偶數位置開始)密文也應該具有模式“abba”。我看到一個 CQQC 模式,你注意到 CQ 在 TH 之後頻繁出現,所以這很適合 CQ = AT,給出 THAT。

文本以 QK = TH 開頭,所以下一個字母可能是 E(因為 A 後面可能會跟著 T),所以 V 是 E 可以加密的字母之一,所以它必須在同一行(可能)或與 E 相同的列(相同的列也意味著它們彼此相鄰,因此更有可能是同一行)。這也符合您的 UV/VU 假設。然後,E、V、U 都在同一行(或列,不太可能)。然後這一行在關鍵字中(通過關鍵字方塊的製作方式:E 在字母表中與 U 和 V 相距很遠)。

因此,從這裡我們已經得到了很多關於字母如何相對於彼此定位的想法,並且在正方形的末端,我們期望一些幾乎是字母的序列,例如 WXYZ(關鍵字中的減去字母)等。

填一些字母(寫一個程序),猜出更多的字母。如果我的 ATTA 猜測沒問題,你也會得到 CK 變成 KT,這給了我們資訊:重疊的加密/普通意味著同一行或同一列。等等等等。

玩得開心。

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