2011-06-23 19 views
0

這是一個V @ genere加密文本V @ genere加密 - 解密(用手)

EORLL TQFDI HOEZF CHBQN IFGGQ MBVXM SIMGK NCCSV 
WSXYD VTLQS BVBMJ YRTXO JCNXH THWOD FTDCC RMHEH 
SNXVY FLSXT ICNXM GUMET HMTUR PENSU TZHMV LODGN 
MINKA DTLOG HEVNI DXQUG AZGRM YDEXR TUYRM LYXNZ 
ZGJ 

巧合的指數給了六(6)班次:我知道這是正確的(我用了一個在線的Java小程序使用密鑰「QUARTZ」解密整個事物)。

但是,在這個問題中,我們只被告知密鑰的第一個和最後兩個字母 - 'Q'和'TZ'。

到目前爲止,我已經使用this awesome applet將密文分成片。所以第一個片是0,k,2k,3k,4k;第二個是1,k + 1,2k + 1,3k + 1;等等。

KeyPos=0: EQEQQSCXQJJHDEYIUTSVMTVUMTYJ 
KeyPos=1: OFZNMICYSYCWCHFCMUULILNGYUX 
KeyPos=2: RDFIBMSDBRNOCSLNERTONOIADYN 
KeyPos=3: LICFVGVVVTXDRNSXTPZDKGDZERZ 
KeyPos=4: LHHGXKWTBXHFMXXMHEHGAHXGXMZ 
KeyPos=5: TOBGMNSLMOTTHVTGMNMNDEQRRLG 

我的想法是計算每個塊的最高頻率的信,希望最頻繁的信件會給我一些線索,如何找到「U」,「A」和「河」然而,在這些區塊中最常見的字母是:

KeyPos=0: Q,4 T,3 E,3, J,3 
KeyPos=1: C,4 U,3 Y,3 
KeyPos=2: N,4 O,3 R,3 D,3 B,2 
KeyPos=3: V,4 D,3 Z,3 
KeyPos=4: H,6 X,6 M,3 G,3 
KeyPos=5: M,4 T,4 N,3 G,3 

其中產量QCNVHM,或QUNVHM(慷慨),這兩者都不是接近石英。有online applets可以解決這個問題沒有問題,所以它不能太短的文本從塊中得到體面的頻率計數。

我想我一定會接近這個錯誤的方式。我只是希望你們中的一個人能夠提供一些線索,告訴我哪裏出錯了。

p.s.這是一個數字加密類。

+2

可以說這不是一個編程問題,如果你想知道如何做'手工' – Raoul

+0

是的,我認爲一樣多。基礎知識對於構建密碼是必要的,所以我認爲在這個意義上它可能沒問題。我會贊成你的評論,因爲我同意。 :/ – eggonlegs

+0

......呵呵。我本可以發誓有一個加密SE網站,但我現在找不到它。 – Chowlett

回答

1

有趣的問題......

我沒有開裂的原始密文編程解決方案,但我可以用一點點心靈的力量和一些有用的JavaScript來解決這個問題。

我開始使用this page和您提供的信息。提供密文,密鑰長度爲6並點擊初始化。這種方法的好處在於,明文或密鑰中的未知數保留爲連字符。

更新密鑰,只添加你知道的Q---TZ並點擊'更新純文本'。此時我們知道:

o --- sua --- opo --- oca --- nha --- enc --- rom --- dth --- ama --- int- --ept ---我們的---門---蒂奧 - EWI --- EUS ---因--- OND ---祿--- ONF ---現在---建置--- off --- ere --- nsw --- esd --- tmi --- ght

這裏是我應用了一點腦力的地方。你開始識別明文的位。 thenowoff露面。最後,有ght - 這讓我覺得前面的字母可能是一個元音。例如lightthought。我用u替換了相應的連字符,並單擊更新關鍵字來查找哪個字母可以產生該組合。匹配的信件原來是F。我認爲更新了明文以查看結果。他們並不看好。所以,我想i代替這就造成:

Ø - usua - ROPO - LOCA - onha - eenc - 舞會 - edth - EAMA - EINT - CEPT - gour- -mmun - atio - wewi - beus - gthe - cond - yloc - ionf - mnow - thed - poff - mere - insw - nesd - atmi - ight

現在我們正在某個地方。在開始時,我看到的東西可能是usual,並進一步在我看到int--cept和接近結束w--nesd--atmi--ight。瞧。填寫wednesday的字母並更新關鍵字QUARTZ

...那麼,如何將此方法移植到代碼?目前還不確定最好的方法。在密鑰中使用已知字符的想法,部分解密密文和暴力破解密碼是有吸引力的。但是,如果沒有一個詞典放在手邊,我不知道最好的暴力破解的方法是什麼?

待續(也許)...

+0

謝謝,這將是一個很好的解決方法(假設明文是英文的,而不是兩次)。教科書的方式是Kasiski攻擊或頻率分析,但我不知道如何計算切片的符合指數。 – eggonlegs

1

的算法不會只考慮最常見字母而是整個字母表的頻率模式。從技術上講,你計算每個可能的換檔index of coincidence,並考慮最大的。