[JoGu]

Cyptology

Ciphertext-Only Attack: Example

a7Hzq .#5r<
kÜ\as TâÆK$
ûj(Ö2 ñw%h:
Úk{4R f~`z8
¤˜Æ+Ô „&¢Dø

Attack 2, Identifying the Fast Rotor with Ciphertext Only

We take the complete ciphertext:

NHAHREDBVYTUFKRVWMCOYKFELQFCYNRSOIXVEVCXUCGZCYXVGYHFWPIQVWKMHIGQPGPAOKTBOAEBEXFUSAAJALOCWNJVFVVVVWG
and decrypt it with each rotor in each position to an intermediate text as for attack 1. Instead of looking for the numerical pattern we calculate the coincidence index of the intermediate text and look if it seems to be random (0.0385) or monoalphabetic (0.0661 for English).

We can't expect a clear-cut result because we don't have a homogeneous monoalphabetic text but rather a join of 4 or 5 distinct monoalphabetic chunks of lengths ≤ 26.

For rotor A the results are:

VFNGZRQPDDJKEXQTUIYKXPVXTGWRLJZALXCYSRFTSKJWYPWICNXDJZGYLMJDUVTHOFEDBJIYCRBACKWTVNNIOKMBZMWSVTMUUVJ 0.033
QYNGURQAYIQRKXQMNASCXUCCOTEPUDUVHVHYDLHNLFLSSXWIWLEWSXZTYZJLUVCPOLCWBPGUNZXAVKEZXNWIZKFHZCWOIMUUUVJ 0.037
QGNGURZGYGMNVGGUVLZNXSYVOVEPMKUVMVFRJSMUTFQXZXMIDLAEKSHTABJLUVUPEWCQBAGZTZCADKEKCWOIFKNSSAFTKUUUKLC 0.039
JGWWNRRRRBRSIYEUVRVTNNDDHAEPXGNOFVALUOKQTYOQVXKIZLFEVSHMFGZLUVFPCJCXKNGSEZVQDTEXAOZYQANFMAXMPUUKIJW 0.033
DGOUHACELBKLKJEUVCAELNWDBYUPDLHINVASHTFVTSJYANKIELYEBLHGDEXBDELFCLCTCPGARPDODLUZVZFWDYNHTAIUNUKIIJD 0.041 <===
KWZUOSIGSUSTPPEKLPTRLGEDITSPOEOPNVTOJMFOJZJYTLKRXLGUMFXNYZXZVWWDCQCYNUGATNDOTWSEVFQWFYDMPAOUIKIIIJZ 0.036
GUFUKDTLOOSTNAEIJRBTLAETETSYBMKLNENTOUYWHVCYBLKJFUGSZMVJYZXZGHJDCOLRTSPAYNDORCSCOQDWKYBKUAZUIIIIIJE 0.036
LUQUPJGJTVSTINEIJWBYLHERJMSQDMPQDWUMMUSWHAWOBLKUFMGSBIVORSXZMNLDCJDZENHQWNTORNSXIDFWIYBFNJMKBIIIIJX 0.039
EUDUIUIEMRIJIPNIJUBWLDURCGSBIMIJBHQUHUZWHTDMBLTAFXWSGNVHLMXZXYQDLJOZRNSORNRORASXPFKWDYBFVBOIVIIIRSF 0.041 <===
MUFDQHNEUWGHBUFIJPRRUISRKNSHGCQRBNVUHKVMHBZMRLLLVDUSEGVPSTGZKLODDCUZTGYORNRXRCSQLKIFDHBYVMTICIIRJKF 0.039
MUKVQJLXUPGHVSQIJPPRMBSRKJBSBAQRBYOUAIAKHBEMPUWYTOUSZOVPOPYIMNJMOWFPYAJOKWRPRHBKQIDXWZBSVSRIYIRJUVF 0.042 <===
MDIGQOGRUXGHCNWRSIPKXJSRKOTFBAQRBLWKUITKQBXMPMCATBUBZOEPTUJARSJEUDSNWHWOEORAAFTRJDDIQKKZLDMIDRJUABV 0.038
CVDMGMGYKXGHYNHJKCPEDJSAAHEHUAGHBNWIBIBKIRFMPXNFTDUTSOWFMNPLPQCPFZUNRDYOLZRGSAENRDWOXQCVJQMIWJUALMT 0.031
AGDXEHZUIXGHDGUUVJPLOJSSYPKMOAEFKSWIXIBKTPFVPDADTIUEMEHDUVARKLWVSEZNRIDXHFARDAKSRWQZTBNAJSFREUALYZT 0.036
AMWKEHTZINPQWAWABFPHBZBDYPVKVAEFCQMICIBKZPFNPOCYTGDKTCNDUVNCKLDGUXXNKBBPMQSEJTVLRQXMYOTTJXZJEALYABT 0.035
AXQMEAASILHIEHBLMKYMDXTJYPIFRJEFNLKIVRRTKPVYYBHYCBVVPCYDUVPPDEZTZFSNEJWAFDDGUNITHXTORQEBJVGUELYAFGT 0.035
AKXREUWAILSTEDZYZDQFIXEUYFKFWBEFTLKIDJPLXPTEQDFRUBGIUCLDKLURXYEVXFSWLJWGNFJLHUKTFTYTZVRBJQCAUYAFDET 0.042 <===
AMTPEBBAILYZEIUABLBNGXKHYDPYPMEFEEKRDUPWZPTPBIALFUMKNCNDIJSWEFXASFLOHJPRNKUJJQPTFYRRZTTBSQHLSAFDYZC 0.036
JRYKNXUARLJKUBUFGLHNBXVJHDNSXSNORYKJDAPCEYTCHGASLOXPVCSMIJNUABFYSVFZMZJENIHEOVNJFRZMZOYRKJAYSFDYYZU 0.038
BPRKFCCQJLWXSJNDELSNBXIOZDIZXDFGTFKUTLPNCQTESBTOWVKNVLQEIJNPFGFTLTMFFXQGDDJEMOIHFZZMPOWPVDIASDYYRSF 0.037
MKZDQVCOUUYZSJHYZBFDUGKMKDIVXQQRYBTARYPAXBTJFBNTJRMIVDLPIJGPYZFTFTIQNXMLBDOXHWIHFZZFNHRPBKIFSYYRLML 0.037
SKZXWDCOAMDESJOYZZHBOYPHQDBANSWXWGLLRAYCXHCHHUUMLWRILOLVIJAIGHVMMTNDNXRJBWMRHWBHOZPZNBRPMGIDSYRLSTW 0.038
DDZEHDSOLXBCSZKRSZMBVJNHBMVTLXHIRZWYRFQHQSUCMOQUQPPBJUEGRSHCGHTGITGFNXKEBQHYAWVHGPNGNIKPZLYYBRLSOPJ 0.034
QXPAUDQOYDWXSXPLMZKBRPIAOECBLVUVRHCARDBFKFFCKVVUOXKVJFYTJKDJGHTNNTOKDXSEBXHUUMCHRNNCNEEPBEWYTLSOTUL 0.035
SENFWTQOAOWXBXISTZFBWAIUQPYBLQWXKHNFRYHARHLVFROUJXKCJSFVUVIFWXTJGCOIBGSXBTAZBKYQXNNHNJLYGMWRESOTMNQ 0.035
XANYBRQXFBPQTXQOPZFBPNBBVVDBLQBCEHADAYSANMWPFWWKJXDYJUBAABBKUVTOOUODBYSRKYUSXKDIINNAWCHQEMWLKOTMUVO 0.041 <===

And for rotor B:

RPAQVEDQZKPQGKADEMHOHWBDPSCMYSVWJSJTTAECCGIUHVGVLIDNWFQUXYTJHIGNYHZFOLDWDXZKMXCVUAASPUWDUSJQHDSEEFE 0.036
LEAQPEDCTOOPVKWSTBYDHAAMJSOCYJPQNINAFROTRASYYHCVCYCCWTFOXYTVHIGZUWPFOATAPJDKBXOKEAASBULSBXJUHSEEABL 0.040
SQAMWEDRACSTHKBEFNXPDOEBQCOCNIWXWIBAUQSSDHWHXHHVBYGOLNRVHIPVHIVZZIPWOMTJEJMGNXOWIAPOQQXEBNJDREEAFGL 0.036
SQARWESDAWBCHZREFCBEIINNQGKCZMWXLIVRGUGWDHKWBDXVFYPOXURVLMURHIHVPIPVOMTYQFBLNXKWWPBTCVXESNYSVEAFVWC 0.036
JMPHNEEDRDQRRLRABOKQYPCNHUPCOVNOXICQGDAFZYEIKIXVOYEKMUNMZAKWHIWAPSPZDWTKQKNBJMPGQBQJCLTORNKEJAFVVWB 0.034
IRBHMTTNQDCDVARFGOZQYPOJGOFCAKMNXICUQSHUEXLIZYXVDYQPYLSLTUKMWXIQPWPIPATKAANBOYFKXQCJMLYSVNZEDFVVVWF 0.032
MHQHQFFRUUCDJMRVWYLAYGOOKVFCAWQRTITDUEHGUBLELYXKPYQFYKIPABKMIJIQPKPXEOTGEAJBENFYXCCJQLOGENLAKVVVVWO 0.035
VHCHZUFFDTYZDMRVWCLEYFKETVFRKWZAYXSSIEYGUKCJLYXWPNMFIOIYABKMXYSQPEEJQIILSAOBEZFSOCMJELOATNLFKVVVVWD 0.036
KHCHOGPZSXDEKWRVWQHSYJPEIMFDOSOPOJWECAXCUZBZHYXLLZRFMXINRSKMJKWQPLQJQPUBMAEBEZFZNMQJYLOHFCVVBVVVVWP 0.035
WHMHAGTGEGTUKAGVWKMMYSFEULFSCXABOYFEJFBHULFZMYMXQOHFAMIZQRKMJKKQELFFAPJBTAEBEJFZRQEJFLOHFOZVAVVVKLP 0.045 <=== !
WHQWAQHGEVTUBOSVWRCTNHFEUPFEWNABOKUAJVKXULOZCYYXGAHFUYIZUVZMTUEQQCRKEGVBTAEQENFQAEYYFAOYBDNVEVVKWXL 0.042 <===
SHEIWUBXAHTUAIHVWRCTZTFEQYUEDNWXOKGFAVZXUHDZCNNHGAHFBYIVDELBXYLFFBRASFVBKPECEBUPPYFKWMOXGPHVNVKWLMQ 0.036
XWYXBIIWFHTUEPTKLICKOTFEVNGODNBCOUGVZVLXJMPZCZZLGKHUBUXASTANLMLRRFBAMJFBJBERTVGTBFFZVBDBWPOVCKWLXYG 0.037
NIFJRCIAVDTUNPTWXHCJAPFTLZVSUNRSOYCVDVLXVCPZCOZZGOHGSZJQEFMCFGCGROFATSJBNQEDFCVCBFWLZNPKWZOVOWLXXYG 0.039
NXFJRJZJVITUCGDLMLCNAUFFLZHGTNRSDMHVMVHXKCLOCAJTGCHVRPYQEFMOMNBSBDTATHXQWCTDUCHRXWVLINEZWDFKOLXXHIG 0.036
NJWTRJYYVYIJOFHXYUCWKKUULVHAXNRSPGXVBVMXWCQACANAGWWHVPKQABWOMNFSFPNAKTRCLCFNGTHDCVZVXXQLWREWKXXHLMG 0.039
NJVXRACKVYUVOJVXYJRLOKGGLARHGCRSENXVNKCMWCGPRKBAVDIHEPKQFGAYDEOCTPUAJTYRXMURGSRDSZIZJBQLWLILPXHLZAG 0.036
NTZLRZLKVYJKKSPHIVDXCKVGLQVHVORSQNXVNWCYGCGBDOVRHDXRTPUQVWOCCDDGNLUPNPYDXQGFQWVZSIXNJPAHWSRXFHLZTUG 0.039
NXIFRDAGVYVWPHWLMVSXWKHQLQJYHDRSQEXKJLCNKCGBSCCQWUJVFPYQVWIQGHPUUQLBWUPDTEGZUFJESXJHFJEMLSGXFLZTABV 0.036
CLXMGMMLKYVWFTWZARETDKHUAQDXHPGHADXWOXCZYRGLEWCUITJJFPMFVWPKPQPOUGKQLKONYYQGIUDUSJJOKQSCXJSHFZTAABH 0.033
OFJMSBMBWYFGFTNTUWEYDKRIMQKBDPSTEHXLEXCZSDGPEDTDIXTDBEGRVWPREFLVLGOCXKSROFUGCGKUSJFOAQMCMISLFTAARSW 0.036
DMJDHNIBLNJKFPMABMOOUZVCBQKKIZHISQMXEHCJZSGDODSSSGXKGQNGVWGRQRQVKGXCXKBFOFIXJGKUSFKFAHTCYMOZFAARQRI 0.038
PMFCTNNBXZXYFUQABMSOTLJJNQBZYDTUMFYXELRNZEVXSUWEWVLKWFNSVWFIQRGMOGMMTKQZOWCWJCBUHKAEAGTCYVTTFARQUVI 0.035
PDKGTJDBXORSFKZRSMGOXADJNFALYRTUTRNHEZDBQEHEGTFEKHFBWRESKLJHMNGLXGYQYKCGOVJAAHAUTAAIAKKCIKJAURQUDES 0.040
ZCAPDODBHAYZFKOQRMAOGMKAXRELYLDETRZLETSVPOWEAXUAEHMAWRDCWXSLRSGPMGYEOKCGOZJJZXEUIAARATJCMWJAGQUDSTW 0.042 <===
DGAEHEDBLAYZUKAUVMHOVMKZBGNHYSHIKNZZEAECTSIVHGGFLDMEWBHGLMHUHIGYYVUYOZYXOIAYDXNJUAAGAINRAWJRVUDSEFK 0.043 <===

The highest value, though not by much, is for rotor B in initial position 09 (0.045). Let's try this one first.

We take the intermediate text and decrypt it with rotor A in each position. This procedure should give several meaningful plaintext fragments.

Pos 00: JEUEPZHZVZHQNPZIJNUULRDVQODRBKPATLDVFDAEQODMULUKGTEDPUYMGWNUFNNGVODDPSFAHPVAVFDMWGVFDOTEDTMIPIIINOS

Pos 01: JAPANESEDESIGNERJGPPLXWDIOWXBKNQYLWDZWQAIOWMPLPKTYAWNPFMTHGPZGGTDOWWNUZQSNDQDZWMHTDZWOYAWYMRNRRRGOU
        ----------------

That's it! Rotor order is A B, start positions 01|09. And we have the first 16 characters of plaintext.

If this is correct, monoalphabetically decrypting the intermediate text with rotor A in the next few positions should give the next 26 plaintext letters:

Pos 02: SFPFNXYXDXYTANXJSAPPLIEDTHEIRKNOWLEDGEOFTHEMPLPKVWFENPBMVUAPGAAVDHEENZGOYNDODGEMUVDGEHWFEWMJNJJJAHZ
                        --------------------------
Pos 03: KYIYNFJFDFJZHNFUKHIILVEDZBEVPTNORLEDCEOYZBEMILITARYENIGMAWHICHHADBEENXCOJNDODCEMWADCEBRYERMUNUUUHBX
                                                  --------------------------
Pos 04: VGCGNFWFTFWKDNFAVDCCUXETKIEXPLNORUETHEOGKIEMCUCLYRGENCZMYBDCHDDYTIEENSHOWNTOTHEMBYTHEIRGERMANAAADIS
                                                                            --------------------------
Pos 05: BGJGNFYFRFYXINFLBIJJMCURXEUCPWNOKMURAUOGXEUVJMJWTKGUNJHVTZIJAIITREUUNSAOYNRORAUVZTRAUEKGUKVLNLLLIES
                                                                                                      -----

Author: Klaus Pommerening, 2000-Feb-16; last change: 2014-Feb-16.