Ciphertext-only attack, IC64 method, 2016, by George Lasry =============================================================== Introduction ------------ In 2016, George Lasry describes to me a smart method (IC64) to solve M-209 messages from ciphertext only. This method uses Hill Climbing algorithm but it is similar to statistics methods. Indeed, it uses a "divide and conquer" attack: 1) Search the Pins configuration. The Pins of each wheel is split in two classes: X and Y. At this step, we don't know if a Pin in X state is active or not. 2) Search the true Pins configuration. 3) Search the lugs configuration. The last steps (2 and 3) are the same than the Barker's method. Algorithm (the first step) -------------------------- Remark: in fact, it is the algorithm I used to solve a message when the lugs are known. The George's real contribution is the fitness function (IC64()). 1. Generate initial random pins setting, decrypt and compute an inital score with the fitness function 2. Repeat the following steps. Exit from loop if the fitness function no longer improves the score for a predetermined number of loops (for example, 5000 steps) 2.1. Randomly toogle a Pin 2.2. Decrypt and Compute the fitness function 2.3. If the score with the new pins setting is better, keep the new pins setting. Otherwise, discard the new pins setting. 3. If the new score if better that better score, fix the better score to the new one and print this score, the key and the beginning of the plain text discovered. 4. Repeat from step 1, i.e. restart with new random pins setting. Stop if the predetermined number of loops is reached. Fitness function: IC64() --------------------------- When we operate a M-209, there are 64 possible displacements which correspond to these active Pins sets: 000000, 100000, 110000, ... 111110, 111111. Remark: In fact, there are only 27 possible displacements. Several active Pins sets give the same displacements. For a Pins setting, the IC64() function splits each letter of the cryptogram into one of the 64 boxes. Each box corresponds to a possible active Pins set. Then, we calculate the I.C. of each box. The function return the weighted average of the all ICs. The spirit of the software is that if the Pins setting is correct the whole of letters into a box belongs to the same alphabet. Remark: The lug setting is unknown, then I use a pseudo M-209 simulator which gives me only the Pins setting for a letter of the cryptogram. Example -------- In the following example, I tried to solve a ciphertext of about 2500 characters $ cat g_2500_m1944.cry |fold -60 UBJHY BWMTT KAKHG UGUZO JHAMG VFEZT YXHBX FZIGW XGSLW AMVVX AQSNL ATQBF VQJHL LPFIP CUEMT KJNJS OABLC DTOFC NWWPL AWUFA IWONT UXLTC JATSK RRKKD ZZYIA LXJPB ISMVP KXLJL WJBTH VKJXG FKGGM BEDJM FBKMU AYSMF IJINP KIHWF TRVGR GZYUQ UTQZN HEJGB OELZV HLPPX CNLKZ TKEXC ALGSR PZQPT CCOTM IVXJR RNIFL BQEMO MWRIP IGKBX HKNOG AIVZC VGHVI RTSSV HGFKP IBOMX TGIPD UCLMV QVFXK XODUQ GTDMV AYZWZ OWRVL BJEZI MHLQW GYQLW HCBFM WDFPQ CWNEP LMQGN WHYQU HTHXA QCJOD LLECS CBRJZ JRTVL GWMKR BHCYI QTIRZ UFXEI WXCCX PZSJA VSSWI SFVNW YBJTK EZDJX VOGXP PJORI EAQUF KWOFV UJDRA SSSVR GHHBC KXSRZ MIMQX SBLRU NAPNR LNBLD XKWSO XWQOT WRQKS IDMDA ARIUB UPVFV UCHII NYLHG INRFV GFBTZ LDEYL WNWWS LPNQX PKIFD BUPUQ VMFDT BLTQH BSAFZ QLELR GAEZB UIXWA ULCNX HUCFG TJZDQ SKRJS EDKDX TUDCF ZXPQW HBWYU FHUMC XAHBG THVTO LRWOB YNMBN VIUJZ QTURT JPOVJ GWEVN JFSNP NKJAP IINGU FARMD OWQNL JSPJL MCUTK SXLUG OBCAN FNMYW PEDOI RLWJH GURBF YWXQR WVQSA QQXXD JDGNV XKPPP VGDXC IEYMB BCSFX UVEDR XDUWP ZGNHT SHDAQ YEOOJ QDPDH EZOVI CRDHJ ZQNTW AUIYD UFXOO ILSQU CJMPR OHLAO FRWXG VLPDC JKWUP ZCYNZ GGGQY HZBFZ GPRJB ZLDGU NGJKE ACAKB PWLYP MCJBX SHKEP ACCIC OFFZE UPDYW UUBPJ PNDOW YPPPZ ELQLN UMRWU AHQRY BJDPQ PBHQK KYXND PDXSI OCPMS MOAGE BWWUR GTORT RGXAO JQZQZ ZWNDK MNCYA LBXCG GNKDE ASOHK UETXS ILRLN ENJIU HKSMD CSFGI IERNA ULFPH ITLIM RCYXN MJNXH NAKVV FKZBX DOKRW ILPSD OUACN PIFXR MZUQP KJMWY KXMGR MPMCN AHFXU TWWZD AARXD JRWAG KEWWL ERANW JQOVI QEMCS MTYIK SDAWT MSJBB RPEUW KIKDR QGPKI CMUQG AAIFV DMLUE SWJJE TVLJN BSWNV TEBKU RJUXX YVKKK JRKQM BXLRV YGJLK RVQBL NQRYO TAUYP ULHUU VKZMG KCHEQ FNBMO YTZAA SKVPU UXDIH AKGQX SPPCQ DLXEO SXMGL BLNWF QVUWX RQXED QEPZW KEFOD DDKNG UWOXY YSOCR WNQQB WNSIQ NPXZJ ZUQVJ BDBVM WCSQU YWETG BTLIJ JPNXM VMSIR PBRBS VUTFE REPLO DVOBI JUITQ BAUAD ZXOTR VJZME XGXBN EIVCL APJSW VTQFF IDJSU BNCDK EKMRZ LIJGA VRNQS YHLTA QQTWI KYBVO WCSKV OWPMX SUMPY ARIGW VTBAL YITZS BIBWZ SNRLQ NWBUE PFORV DZVYX WKRXF POQZB FKXSQ LTYFA VJRJE EPDBK UUGVD UHYUL YXWTR GVLLZ LHPIM DLJOL NQITP KKDDL ZLFQZ ROMIA UUWDJ ITYGI LAMMP SZAJH AGASF WWQHM DSZCI OQPQS DWBER WXQDX WHKOO QASEW IMVYS JTPNC FVNDB UISUT DOOVR VIAVU DGNVS NBILY RUGMP QRBAV QFLXL VEHXT CYMPY CQQZJ EOJEQ PKJTM QNSGI QUQJG OTBZH WICOH AYKGI MWWJP AVVNH FBZRY JOOJC FPCNF LFDBI MBSKF QELXO VRWUR KGJRM EEDMN JFNRR YKMRN ZRLGT WSDEU GUTPH AJZFQ LXCBO AIBKK XHWJX TCUAD AGRJV MTOFT VTIPM GOFLG DKYLI KPGQD BJPIK RYBRP DWQBF TJJJO IMLQG GDNIU KLGXA AUULQ MIZLC BJGMD BECZB CKHAE HMFEU HWDIE QQIXL MHHUB YQZGO ZNEEW XIVNG MUGOH NOZFO QCEVE RAWVI YIABP RWFLE DDSAH IYITK MGLUT DFUNZ TWMOZ WNZPX LNSPE DOAWT UWPJU FQJQF JGZTK NLRFM TPQJE QAWHJ XNKZF HIBAO ZCTKE GVKWG DDZJD PXJKH WZKLU PKYAG VTGLP IILJP VYZAQ NQRLF SEKVP IVZXV ZAPLN YPMPC QVDXC PSDJY HARPG IKPPK VECXC LXGWR IMROP ICHOK ROTKJ BRMDB LZQSJ DIYQE HRUFC OBMPN IOXFL BEBLW XVEXU OAVPH FFSYB DDAUI HKRMK GHCGH SZGDH ZVWWY PXYAU BPEVZ AYKBC JBIAD JWLZG NRUSV TXGDI MVZNZ OBRHS HHICB LQUNM ILAYK ORDLR UMCDT DAUVA XKVNN ERMBH MWGGN WITVM QHWAP SSJPK DQHPH BRMRI OMMKD OUPII YIMBV $ pypy HC_IC64.py -c g_2500_m1944.cry -t 100 0 >>>MAX SCORE: 0.0484519855052 == CLE: YXYXXYXYYYXYYXXYXYXYYXYXXYYXXYXXXYXYYYXYYYYXYYYXYYYXYYYYXYXYXYYYXXYXYXYYXYYYXXYYYXYXXXYXXXYYXXXXYYYXXYYXXXYXYYYYXYYYYYYYXYYYYXYXXYY 0 23.7179038525 3 >>>MAX SCORE: 0.0485357509009 == CLE: XXYXXYYYXXYXYYXXXYXYYYYXYYXYYYXXYYXYXXXXYXXYYYYXYXYYYYYXYXYXXYYXYXYXYXXYYXYXXXXYXYXYXYYXYXXXYYYYYXXXXXXXXYXXXXXYYYXYXYYXXYXXXYXYYXY 0 95.278400898 12 >>>MAX SCORE: 0.048802839274 == CLE: YXYXYXYXYYXYYYYXXXXXYYXYYYYYXXXYXYXYXYXXYYXXXYYXYYXXYYXXYYXXYXXYYYXXYYYXXYYXYXYYYYYXXXXXYXXYXXYYXXXXXXXXYXYXXXXXXXXXXXYXXYXYXYXXXXX 0 308.969777822 13 >>>MAX SCORE: 0.0489647710067 == CLE: YXYXYYYXXXXYXXYYXYXXYXYYXXXYYYXYYXYXXXYXXYYYXXYXXYYYYXYXYXYXYYXYYXYYXXXYYYYXYXYYXYYXXXXYYYXXYYXYYXXXXXYYXYXXYYXXXXXXXXYXYXXYXYYXXYX 0 332.841736794 15 >>>MAX SCORE: 0.053705418069 == CLE: XXYYYXXYYXYXXXXXYYYYXYYXYYXYYXXYXYYYYYYYXYYXYYXYXYYYXYYYYXXXXYXYXYYYYXYYXYXYYXYYXYYXXXYYYXXXYYYXYXYYYXYYXXXYXXYXXXYYXYXXXYXXYYYYYXY 0 380.554323912 21 >>>MAX SCORE: 0.0768902132396 == CLE: YYXYXXXYYXYXYYXXXXYYXYYXXXXYYXXYXYYXXXYYXYYXXYXYXYYYYXXXXYYXYXYYYXXXYYYYXYYYXYXXYXXYYYXXYXYYXXXYXYXXXYXXYYYXXYXYYXXXYXYYYXYYXYYXXYX 0 521.743960857 Then we search the true Pins Setting: $ python search_xy.py g_2500_m1944.cry YYXYXXXYYXYXYYXXXXYYXYYXXXXYYXXYXYYXXXYYXYYXXYXYXYYYYXXXXYYXYXYYYXXXYYYYXYYYXYXXYXXYYYXXYXYYXXXYXYXXXYXXYYYXXYXYYXXXYXYYYXYYXYYXXYX YYXYXXXYYXYXYYXXXXYYXYYXXX XYYXXYXYYXXXYYXYYXXYXYXYY YYXXXXYYXYXYYYXXXYYYYXY YYXYXXYXXYYYXXYXYYXXX YXYXXXYXXYYYXXYXYYX XXYXYYYXYYXYYXXYX >>>>>>> 0 0 0 0 0 0 0.0371052631579 11010001101011000011011000011001011000110110010101111000011010111000111101110100100111001011000101000100111001011000101110110110010 >>>>>>> 0 0 0 0 0 1 0.024487804878 11010001101011000011011000011001011000110110010101111000011010111000111101110100100111001011000101000100111001011011010001001001101 >>>>>>> 0 0 0 0 1 0 0.0424722222222 11010001101011000011011000011001011000110110010101111000011010111000111101110100100111001011000010111011000110100100101110110110010 >>>>>>> 0 0 0 0 1 1 0.0380666666667 11010001101011000011011000011001011000110110010101111000011010111000111101110100100111001011000010111011000110100111010001001001101 >>>>>>> 0 0 0 1 0 0 0.03295 11010001101011000011011000011001011000110110010101111000011010111000111101001011011000110100111101000100111001011000101110110110010 >>>>>>> 0 0 0 1 0 1 0.0385813953488 11010001101011000011011000011001011000110110010101111000011010111000111101001011011000110100111101000100111001011011010001001001101 >>>>>>> 0 0 0 1 1 0 0.0464482758621 11010001101011000011011000011001011000110110010101111000011010111000111101001011011000110100111010111011000110100100101110110110010 >>>>>>> 0 0 0 1 1 1 0.0368857142857 11010001101011000011011000011001011000110110010101111000011010111000111101001011011000110100111010111011000110100111010001001001101 >>>>>>> 0 0 1 0 0 0 0.0382666666667 11010001101011000011011000011001011000110110010101100111100101000111000010110100100111001011000101000100111001011000101110110110010 >>>>>>> 0 0 1 0 0 1 0.0446071428571 11010001101011000011011000011001011000110110010101100111100101000111000010110100100111001011000101000100111001011011010001001001101 >>>>>>> 0 0 1 0 1 0 0.0481351351351 11010001101011000011011000011001011000110110010101100111100101000111000010110100100111001011000010111011000110100100101110110110010 >>>>>>> 0 0 1 0 1 1 0.0310338983051 11010001101011000011011000011001011000110110010101100111100101000111000010110100100111001011000010111011000110100111010001001001101 >>>>>>> 0 0 1 1 0 0 0.03305 11010001101011000011011000011001011000110110010101100111100101000111000010001011011000110100111101000100111001011000101110110110010 >>>>>>> 0 0 1 1 0 1 0.0726666666667 11010001101011000011011000011001011000110110010101100111100101000111000010001011011000110100111101000100111001011011010001001001101 >>>>>>> 0 0 1 1 1 0 0.0294848484848 11010001101011000011011000011001011000110110010101100111100101000111000010001011011000110100111010111011000110100100101110110110010 >>>>>>> 0 0 1 1 1 1 0.0435 11010001101011000011011000011001011000110110010101100111100101000111000010001011011000110100111010111011000110100111010001001001101 >>>>>>> 0 1 0 0 0 0 0.0300487804878 11010001101011000011011000100110100111001001101010011000011010111000111101110100100111001011000101000100111001011000101110110110010 >>>>>>> 0 1 0 0 0 1 0.039 11010001101011000011011000100110100111001001101010011000011010111000111101110100100111001011000101000100111001011011010001001001101 >>>>>>> 0 1 0 0 1 0 0.0426285714286 11010001101011000011011000100110100111001001101010011000011010111000111101110100100111001011000010111011000110100100101110110110010 >>>>>>> 0 1 0 0 1 1 0.0317435897436 11010001101011000011011000100110100111001001101010011000011010111000111101110100100111001011000010111011000110100111010001001001101 >>>>>>> 0 1 0 1 0 0 0.04988 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111101000100111001011000101110110110010 >>>>>>> 0 1 0 1 0 1 0.0270638297872 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111101000100111001011011010001001001101 >>>>>>> 0 1 0 1 1 0 0.03025 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100100101110110110010 >>>>>>> 0 1 0 1 1 1 0.0815102040816 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 >>>>>>> 0 1 1 0 0 0 0.0335862068966 11010001101011000011011000100110100111001001101010000111100101000111000010110100100111001011000101000100111001011000101110110110010 >>>>>>> 0 1 1 0 0 1 0.0405689655172 11010001101011000011011000100110100111001001101010000111100101000111000010110100100111001011000101000100111001011011010001001001101 >>>>>>> 0 1 1 0 1 0 0.0386136363636 11010001101011000011011000100110100111001001101010000111100101000111000010110100100111001011000010111011000110100100101110110110010 >>>>>>> 0 1 1 0 1 1 0.04714 11010001101011000011011000100110100111001001101010000111100101000111000010110100100111001011000010111011000110100111010001001001101 >>>>>>> 0 1 1 1 0 0 0.0344375 11010001101011000011011000100110100111001001101010000111100101000111000010001011011000110100111101000100111001011000101110110110010 >>>>>>> 0 1 1 1 0 1 0.0339807692308 11010001101011000011011000100110100111001001101010000111100101000111000010001011011000110100111101000100111001011011010001001001101 >>>>>>> 0 1 1 1 1 0 0.0309259259259 11010001101011000011011000100110100111001001101010000111100101000111000010001011011000110100111010111011000110100100101110110110010 >>>>>>> 0 1 1 1 1 1 0.0283157894737 11010001101011000011011000100110100111001001101010000111100101000111000010001011011000110100111010111011000110100111010001001001101 >>>>>>> 1 0 0 0 0 0 0.0474545454545 00101110010100111100100111011001011000110110010101111000011010111000111101110100100111001011000101000100111001011000101110110110010 >>>>>>> 1 0 0 0 0 1 0.0306071428571 00101110010100111100100111011001011000110110010101111000011010111000111101110100100111001011000101000100111001011011010001001001101 >>>>>>> 1 0 0 0 1 0 0.046 00101110010100111100100111011001011000110110010101111000011010111000111101110100100111001011000010111011000110100100101110110110010 >>>>>>> 1 0 0 0 1 1 0.0305714285714 00101110010100111100100111011001011000110110010101111000011010111000111101110100100111001011000010111011000110100111010001001001101 >>>>>>> 1 0 0 1 0 0 0.029 00101110010100111100100111011001011000110110010101111000011010111000111101001011011000110100111101000100111001011000101110110110010 >>>>>>> 1 0 0 1 0 1 0.04640625 00101110010100111100100111011001011000110110010101111000011010111000111101001011011000110100111101000100111001011011010001001001101 >>>>>>> 1 0 0 1 1 0 0.0232692307692 00101110010100111100100111011001011000110110010101111000011010111000111101001011011000110100111010111011000110100100101110110110010 >>>>>>> 1 0 0 1 1 1 0.0408 00101110010100111100100111011001011000110110010101111000011010111000111101001011011000110100111010111011000110100111010001001001101 >>>>>>> 1 0 1 0 0 0 0.041 00101110010100111100100111011001011000110110010101100111100101000111000010110100100111001011000101000100111001011000101110110110010 >>>>>>> 1 0 1 0 0 1 0.0813137254902 00101110010100111100100111011001011000110110010101100111100101000111000010110100100111001011000101000100111001011011010001001001101 >>>>>>> 1 0 1 0 1 0 0.0356571428571 00101110010100111100100111011001011000110110010101100111100101000111000010110100100111001011000010111011000110100100101110110110010 >>>>>>> 1 0 1 0 1 1 0.0383076923077 00101110010100111100100111011001011000110110010101100111100101000111000010110100100111001011000010111011000110100111010001001001101 >>>>>>> 1 0 1 1 0 0 0.0293695652174 00101110010100111100100111011001011000110110010101100111100101000111000010001011011000110100111101000100111001011000101110110110010 >>>>>>> 1 0 1 1 0 1 0.0381428571429 00101110010100111100100111011001011000110110010101100111100101000111000010001011011000110100111101000100111001011011010001001001101 >>>>>>> 1 0 1 1 1 0 0.0304390243902 00101110010100111100100111011001011000110110010101100111100101000111000010001011011000110100111010111011000110100100101110110110010 >>>>>>> 1 0 1 1 1 1 0.0310810810811 00101110010100111100100111011001011000110110010101100111100101000111000010001011011000110100111010111011000110100111010001001001101 >>>>>>> 1 1 0 0 0 0 0.0370465116279 00101110010100111100100111100110100111001001101010011000011010111000111101110100100111001011000101000100111001011000101110110110010 >>>>>>> 1 1 0 0 0 1 0.0413095238095 00101110010100111100100111100110100111001001101010011000011010111000111101110100100111001011000101000100111001011011010001001001101 >>>>>>> 1 1 0 0 1 0 0.04255 00101110010100111100100111100110100111001001101010011000011010111000111101110100100111001011000010111011000110100100101110110110010 >>>>>>> 1 1 0 0 1 1 0.0325714285714 00101110010100111100100111100110100111001001101010011000011010111000111101110100100111001011000010111011000110100111010001001001101 >>>>>>> 1 1 0 1 0 0 0.0374827586207 00101110010100111100100111100110100111001001101010011000011010111000111101001011011000110100111101000100111001011000101110110110010 >>>>>>> 1 1 0 1 0 1 0.04425 00101110010100111100100111100110100111001001101010011000011010111000111101001011011000110100111101000100111001011011010001001001101 >>>>>>> 1 1 0 1 1 0 0.046 00101110010100111100100111100110100111001001101010011000011010111000111101001011011000110100111010111011000110100100101110110110010 >>>>>>> 1 1 0 1 1 1 0.0323548387097 00101110010100111100100111100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 >>>>>>> 1 1 1 0 0 0 0.0413142857143 00101110010100111100100111100110100111001001101010000111100101000111000010110100100111001011000101000100111001011000101110110110010 >>>>>>> 1 1 1 0 0 1 0.0289 00101110010100111100100111100110100111001001101010000111100101000111000010110100100111001011000101000100111001011011010001001001101 >>>>>>> 1 1 1 0 1 0 0.0472580645161 00101110010100111100100111100110100111001001101010000111100101000111000010110100100111001011000010111011000110100100101110110110010 >>>>>>> 1 1 1 0 1 1 0.0416727272727 00101110010100111100100111100110100111001001101010000111100101000111000010110100100111001011000010111011000110100111010001001001101 >>>>>>> 1 1 1 1 0 0 0.03765 00101110010100111100100111100110100111001001101010000111100101000111000010001011011000110100111101000100111001011000101110110110010 >>>>>>> 1 1 1 1 0 1 0.0444893617021 00101110010100111100100111100110100111001001101010000111100101000111000010001011011000110100111101000100111001011011010001001001101 >>>>>>> 1 1 1 1 1 0 0.0357631578947 00101110010100111100100111100110100111001001101010000111100101000111000010001011011000110100111010111011000110100100101110110110010 >>>>>>> 1 1 1 1 1 1 0.0260833333333 00101110010100111100100111100110100111001001101010000111100101000111000010001011011000110100111010111011000110100111010001001001101 Then the best Chi2 (0.0815) is for this Pins setting: 1101000110101100001101100010011010011100100110101001100001101011100011110100 1011011000110100111010111011000110100111010001001001101 Remark: There are other possible values (0.0813 and 0.072). If the first solution misses, we can try others. Then we can continue to use the Barker's method or we can try the HC_KPA software (http://www.jfbouch.fr/crypto/m209/cryptanalysis/HC.tar.gz). We give the true Pins setting in argument and search the lug setting: $ cat cle 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 $ python HC_KPA.py -c g_2500_m1944.cry -M UNI -m m209 -P $(cat cle) -S P -t 2000 0 >>>MAX SCORE: 117738.0 == WTAJUZUPXRXUANKQOWBNHTKGLLENVRNTNBEPBJLPVAIZMUPQWX CLE: 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 [1, 1, 1, 11, 10, 7] [0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 4] NoD: 176 1.23355197906 2 >>>MAX SCORE: 119312.0 == WIVKYEAKSRYYACLOIWGXBTNGHLZITASNNOTEEFHSZWCTSYXTMS CLE: 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 [6, 4, 6, 5, 5, 3] [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 2] NoD: 636 4.08535790443 3 >>>MAX SCORE: 133530.0 == WSAKSZVKXRSZAMLTOWCOHTOAHLEIZXNTOFZOEFHSTWIYHZSTRX CLE: 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 [2, 4, 1, 10, 10, 3] [0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3] NoD: 900 5.71699500084 9 >>>MAX SCORE: 137646.0 == ZHUSYZCDALSZABTUDZITITRZHTYDVEMUHSODMFHTZWETMZAAMR CLE: 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 [8, 12, 1, 5, 4, 3] [0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 6] NoD: 2513 15.6706080437 24 >>>MAX SCORE: 166041.0 == ZMAMYZXEARSZAGNAIZCOOTRACTEDAZNAIMTIMACZZWJTHZAZMR CLE: 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 [2, 12, 1, 5, 10, 3] [1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 6] NoD: 5887 36.4808130264 83 >>>MAX SCORE: 186094.0 == ZMANYZYEARSZAGOZIZCONTRACTEDZANZINTIMACYZWITHZAZMR CLE: 11010001101011000011011000100110100111001001101010011000011010111000111101001011011000110100111010111011000110100111010001001001101 [2, 12, 1, 5, 10, 3] [0, 0, 0, 1, 1, 0, 0, 2, 0, 0, 0, 1, 1, 0, 0, 6] NoD: 21545 133.198652029