Find the message key by Hill Climbing approach ============================================== This algorithm was designed by George Lasry in 2015. I tested it with a program written in Python: it works! 1. Random starting positions for all 6 wheels 2. Decrypt, compute IC 3. For each wheel from 1 to 6 3.1. For each position in current wheel 3.1.1. Set starting position of the wheel to that position 3.1.2. Decrypt, compute IC 3.1.3. If higher than IC so far, remember it as the best starting position for the current wheel. 3.2 Take the best starting position of current wheel (the one we have remembered in the best IC obtained in 3.1.3) 4. If there was any improvement during 3., repeat 3, starting from the first wheel. 4.1. Otherwise, decrypt and see if you have readable text or check n-gram score) 4.1.1. If good stop 4.1.2. If not a good text, repeat from 1. $ more KEYS/man1944.key AB_D___HI_K_MN____ST_VW___ A__DE_G__JKL__O__RS_U_X__ AB____GH_J_LMN___RSTU_X __C_EF_HI___MN_P__STU _B_DEF_HI___MN_P__S AB_D___H__K__NO_Q Z 2:12:1:5:10:3 5 3-6:1 1-6:1 1-5:1 4-5:1 2-5:2 $ python groupe.py 60 5 < MSGS/w150_AACDEF.cry EODWG OFWRI NZMFH KUCIK KUDUK SCVQD LFUYF YSKTU ACNNS UCZEF WWWBX WGKNC ZRWFG IRBJW VQZOK OBCNI YFNSZ SPQDU LMWBS RKDFP QELWU ZFFOO YJEGM FSVJA BXDID VCXKY PISRE DLDNA RIWOO YFJQG $ python scan_HC.py KEYS/man1944 < MSGS/w150_AACDEF.cry EODWGOFWRINZMFHKUCIKKUDUKSCVQDLFUYFYSKTUACNNSUCZEFWWWBXWGKNCZRWFGIRBJWVQZOKOBCNIYFNSZSPQDULMWBSRKDFPQELWUZFFOOYJEGMFSVJABXDIDVCXKYPISREDLDNARIWOOYFJQG Try: 0 IC best: 0.043937360179 Key: GMCUOE Crypto: ZAXSBAHSCQBACKHXCYGECCBODWJUIBIGICKZYCBUMLZUIPONWOULYOTAHYHVULDPKZDTTYNKIWMABWNTSCWDQISMXIAIBNCMPHCCKMPPSQCJALPBMSSHCYTUNZFIJHHVOEKCUZUXSWHMZJATCNJCQU Try: 0 IC best: 0.0478747203579 Key: LMJUOE Crypto: ZBXTBXHTCPCADKHUCYHFCCDNCWIUHDIFFCKAYCBUMKZSIQPNYLULYOTAIXHXULFOKZDSTYNKIWMZZWNUSDXCPIRMXIAICNCLOHCEMMPPSQCJAJOCMSUHDYTTMZFIIIIUOEJCUCUXRYHMZIASCMJARU Try: 4 IC best: 0.0482326621924 Key: SFSSAL Crypto: XHGYIOPNISGQKHBLGORWQQZCHMUNEAFVVEPAHKOQAQGPKFGNQPQCKXPGLTCVPZVYGGHTBRZNQKKLKOJZSKUXQCKHNQIKYGPCAJPHQPZVVEPGCEWHKUVVIQDHLQEMQVTNESAHPMPXWVMCGGERWCLRGQ Try: 10 IC best: 0.0490380313199 Key: GYBUQH Crypto: IUNGIHJUCXJACKJFCSIJSGOEMMJUPLIRICHCMCGNZNGCCQCPSOULAJTQSECCTVOGKAVZTALAZGCCJPVUZVPCEBBKXGANEFBVXJOLUEPGHXLJYCXAESCXXXDAGORJRFKVEOKGUJARSJLCWJSCDMXMJU Try: 29 IC best: 0.0510067114094 Key: HUBSEB Crypto: QXLUBICQDSSZYJZQGMSQJGTJGAUDUXPKLRGPEYGIIYOZUELXCGAXXGPYCCGQNASIGBIGCCTMSCGBSSPGSHTGXTWAXIXCQMCIQJLKJQJSWPEHGGCRGGCDAOUYNTXCEFUQSIKCPDJFNEJCWOUTHCCFKG Try: 33 IC best: 0.0523489932886 Key: ASQQKO Crypto: DAQAHALTNUJBVVVBUARWCEUJMRFYYWBUEICWUGUUAKRNUJKVJQKQQQDKEEDJBCQUCDKIRJQENWJCGUJSCLMIHCFULUHQULUQQWHZXGJVSRJIYOVRYUNRXSKMJUMYURFCFQXXILKQLDLQUUMIBJRKQQ Try: 64 IC best: 0.0530648769575 Key: RCUTRJ Crypto: VBQSOTPGQQSNDUFQOHSHEHJEVUPSWQEOSOSEWOUOQIZZFZBQKHLBEKRSQUUNPWSRVMZCQSZYQGZWSKSSOMDKQSSHJULZIZHVSEPBRSGLADQCAFSTQUVLLRRNZHXQFQJZEANSSLQEDTYOVZSZMVGDGY Try: 89 IC best: 0.0532438478747 Key: AZKLMG Crypto: MIESQCCSVMRRCAFEDFSCAARFXKOSWLKCAMOOKOXTOSDZOOSAPHFSUGWYEKCSOSSCWSJYRLIEPKUXZHNSACCKZUSKXONAPNVWMPPXRPXQCSHNSGKGIGYUCRPCBWWSXPPGFSHWGVSXFXPFXMSCCCGRXJ Try: 89 IC best: 0.0536912751678 Key: AZVLMG Crypto: MIESQCCSVMRRCAFEDFSCZAQFXKOSWLKCAMOOKOXTNSDYPOSAPHFSUGXYEKCSOSSBWSJZRLIFPKUXZINSACCKZUSKXOOZPNWWMPPXRPXQCSHNSFKGHGXUCRPCBWWSXPPGFSHWFVSWFXPFXMSCCCHRXJ Try: 120 IC best: 0.0539597315436 Key: WUVHHB Crypto: UFTGHILMESTPORGWCCUMJURSCHMDYXIAQYJQCTEIMSCDDRMXDBSCCCPQBGBXECSTBCCHSVFWRCTBTSBTBHXYBWYMRQFHQGCCRQCZFWAPWVBXIMCRCGCDCFDYXFXCZYSCCDITQHINGHJMQSQTYRKPQG Try: 151 IC best: 0.0572706935123 Key: KKDQKE Crypto: DLJQJJLQQTJZELVBWAQKCGLVASPNLVLVDJDWWQJVAISLEHLIVGLAEHDXEEAIADYJBGLLRUREEGYBQIZQPLMIIBFGZWFRSLCQOLRLZSWIUBLGYLTPLINRWULWIWZMLRQRQQEZIJLTLNDQXULGLHRVAG Try: 210 IC best: 0.0607606263982 Key: HAHDEF Crypto: VOZENCGOGESZAZMESSZGEXTIDBOPDQZTNRZSETSZSHFZIEYYYHEFMSZSOAZZRAODOLZSGQTDNCEZMGBMETTERTZANZEODIQICQIKGZDECIPHFSGNGZKOOBZOOZTFEZMFEVASHCEANFZTHEZLACIKMD Try: 228 IC best: 0.0823266219239 Key: AACDEF Crypto: TOZENCIPHERZAZMESSAGEZTHEZOPERATORZSETSZTHEZKEYZWHEELSZTOZAZRANDOMZSEQUENCEZOFZLETTERSZANZENCIPHERINGZDECIPHERINGZKNOBZONZTHEZLEFTZSIDEZOFZTHEZMACHINE