Rompere Enigma
Transcript
Rompere Enigma
Progetto lauree scientifiche Laboratorio di crittografia Università degli studi di Milano Dipartimento di Matematica «F. Enriques» Rompere Enigma Vogliamo decifrare il messaggio in codice ‹SWCZXZWVVFGZPLSBWEQGRQORICSELDEX›. Sappiamo che i primi sei caratteri rappresentano la chiave del messaggio ripetuta due volte, e abbiamo intercettato numerosi altri messaggi cifrati con le stesse chiavi i cui primi sei caratteri sono i seguenti: AAKPMH ABPPIR AGCPCZ AIEPBN AJZPTY ANVPKB AOGPPJ AQYPFW BCHVLT BCLVLM BCMVLG BIQVBQ BJHVTT BORVPV BOYVPW BPLVEM BQNVFI BSRVOV BUPVGR CANFMI CBMFIG CDVFJB CEFFZL CEIFZK CGYFCW CKMFWG CNFFKL CPQFEQ CQLFFM CREFNN CUCFGZ CYMFAG DAUWMD DCGWLJ DCKWLH DFHWQT DHIWVK DHUWVD DTBWYA DTTWYP DWAWXE DXCWUZ DYKWAH DZKWDH ELUMHD EOKMPH EPTMEP ERYMNW EUBMGA EUEMGN EWOMXO FACJMZ FAYJMW FCHJLT FHPJVR FJFJTL FNUJKD FPTJEP FROJNO FSAJOE FSWJOU FTEJYN FVNJRI FVVJRB FXRJUV FYMJAG GBEUIN GJXUTX GKNUWI GOPUPR GPTUEP GRBUNA GTUUYD GTXUYX GVCURZ GXZUUY HACCMZ HCMCLG HDNCJI HEYCZW HFKCQH HGRCCV HIHCBT HIVCBB HOSCPS HWTCXP HWZCXY HYFCAL HYVCAB HZLCDM HZOCDO IAFSML IAJSMC ICQSLQ IDCSJZ IEUSZD IJCSTZ ILCSHZ IMRSSV IQPSFR IRESNN ISQSOQ IXISUK JBEAIN JDTAJP JFMAQG JFXAQX JIJABC JKQAWQ JLMAHG JNZAKY JSNAOI JVEARN JVQARQ JVUARD KARQMV KGKQCH KHIQVK KJEQTN KKEQWN KKVQWB KNVQKB KSJQOC KUFQGL KWAQXE LCNXLI LGDXCF LGGXCJ LGWXCU LJRXTV LKZXWY LPXXEX LQNXFI LUGXGJ LWHXXT LXBXUA LZVXDB MBVDIB MESDZS MFUDQD MHGDVJ MIXDBX MJCDTZ MMNDSI MMYDSW MOEDPN MPBDEA MQHDFT MRLDNM MSSDOS MTSDYS MWLDXM MWYDXW MXMDUG MZCDDZ MZZDDY NBGIIJ NNWIKU NPPIER NSUIOD NSWIOU NSYIOW NWBIXA OAXGMX OBQGIQ OJIGTK ONIGKK OPVGEB OQFGFL OUXGGX OUYGGW OVVGRB OWKGXH PBQNIQ PDDNJF PHQNVQ PITNBP PKDNWF PKINWK POBNPA PTMNYG QAABME QIZBBY QJPBTR QLEBHN QMRBSV QQCBFZ QVJBRC RAGYMJ RCIYLK RCTYLP RCYYLW RFWYQU RHBYVA RJGYTJ RKSYWS RNCYKZ RRDYNF RRMYNG RWDYXF RWEYXN RWQYXQ RXCYUZ RXIYUK RYOYAO RZUYDD SEBZZA SHBZVA SHCZVZ SLHZHT SQRZFV SQYZFW SWWZXU SXIZUK SXYZUW TBFHIL TBZHIY TCMHLG TDFHJL TEFHZL TMUHSD TVFHRL TVHHRT TVVHRB UAEEMN UAIEMK UBJEIC UEREZV UKCEWZ UMOESO UNJEKC UNREKV UWCEXZ UYLEAM UYWEAU VCWLLU VCWLLU VFDLQF VFJLQC VHALVE VHXLVX VJCLTZ VKILWK VKZLWY VMHLST VQMLFG VWILXK VYCLAZ VYHLAT VYJLAC WCOKLO WHIKVK WMGKSJ WPWKEU WVDKRF WVRKRV WVVKRB WVZKRY WXTKUP WXZKUY XBROIV XHPOVR XINOBI XJTOTP XNLOKM XQAOFE XVKORH XWDOXF YDITJK YDVTJB YESTZS YFTTQP YGSTCS YLCTHZ YLDTHF YNNTKI YOZTPY YQATFE YRWTNU YTTTYP YXMTUG ZAORMO ZAURMD ZAWRMU ZBCRIZ ZBWRIU ZCNRLI ZEHRZT ZKBRWA ZLKRHH ZMCRSZ ZMNRSI ZOARPE ZQRRFV ZQTRFP ZRCRNZ ZTMRYG ZUKRGH ZVHRRT ZYMRAG Sapendo che la prima lettera e la quarta rappresentano sempre la stessa lettera in chiaro, possiamo esprimere questa relazione con la seguente tabella ABC D E FGH I J K L MNO P QRS T UVW X Y Z P V F WM J U C SAQX D I GN B YZH E L K OTR La stessa relazione possiamo scriverla, in forma più concisa, come (APNISZRYTHCFJ)(BVLXOGUEMDWKQ), che è formato di due cicli entrambi di lunghezza . Cercando negl’indici potremmo trovare che alla chiave i-ii-iii, mck corrisponde la sostituzione (ARVLXOGUEMKWD)(BYTHCFJQPNISZ). Progetto lauree scientifiche Laboratorio di crittografia Se impostiamo con questa chiave la macchina e proviamo a decifrare le prime sei lettere ‹SWCZXZ› del testo otteniamo ‹xynxyn›, che sospettiamo essere la chiave del messaggio. Impostiamo la macchina per usare le chiavi i-ii-iii, xyn e proviamo a decifrare il resto del messaggio ‹WVVFGZPLSBWEQGRQORICSELDEX›. Otteniamo ‹cixvekiqmtxkwmzyivsebqspop›. Ricordiamo che la ‹x› si usa al posto dello spazio per separare le parole: ‹ci› come prima parola sembra buona. È abbastanza chiaro che l’ultima parola è ‹stop›. Per capire come la ‹t› sia diventata p, proviamo a cifrare ‹cixvekiqmtxkwmzyivsebqstop›: otteniamo ‹WVVFGZPLSBWEQGRQORICSELKEX›. Possiamo quindi supporre che la ‹d› e la ‹k› siano state scambiate. Se decifriamo ancora ‹WVVFGZPLSBWEQGRQORICSELDEX› con la chiave i-ii-iii, xyn, kd otteniamo ‹cixvediqmtxdwmzyivsebqstop› Osserviamo la seconda parola: ‹vedqmt› Potrebbe essere ‹vediamo›? La ‹t› di ‹stop› è al suo posto, quindi è stata scambiata la sua equivalente in codice: se cifriamo ‹cixvediqmoxdwmzyivsebqstop› con la chiave i-ii-iii, xyn, kd otteniamo ‹WVVFGZPLSRWEQGRQORICSELDEX›, quindi supponiamo che ‹r› e ‹b› siano state scambiate. Se decifriamo ancora ‹WVVFGZPLSBWEQGRQORICSELDEX› con la chiave i-ii-iii, xyn, kd,rd otteniamo ‹cixvediqmoxdwmqyixserqstop›. È comparsa un’altra ‹x›: bene! Notiamo pure che la seconda parola è ‹vediqmo› e l’ultima ‹serq›, supponiamo dunque che ‹a› e ‹q› siano scambiate. Proviamo a decifrare ‹WVVFGZPLSBWEQGRQORICSELDEX› con la chiave i-ii-iii, xyn, kd,rd,aq; otteniamo, finalmente, ‹cixvediamoxdomanixserastop›. Gl’indici Presentiamo le sostituzioni della prima con la quarta lettera per le varie combinazione dei tre rotori e con la chiave mck Rotori Chiave mck mck mck mck mck mck Sostituzione (ARVLXOGUEMKWD)(BYTHCFJQPNISZ) (ATEXRQ)(BSLUKM)(CFGDYWZ)(HOVPNIJ) (AKGCYUQS)(BEPJ)(DWNR)(FXZIMOHV)(L)(T) (AGMTCBNPVH)(DWRSOQJILK)(EUF)(XYZ) (ASXYPTEBFDW)(COHLVKIUNQZ)(GR)(JM) (AOVXHWBSZTRC)(DJYFGKIUQLNM)(E)(P) Caratteristica (,) (,,,) (,,,,,) (,,,) (,,,) (,,,) Nella realtà ci serviranno le × ! × = caratteristiche di tutte le possibili sostituzioni su prima e quarta, seconda e quinta, terza e sesta lettera: al Biuro Szyfrów polacco occorse un anno per compilare, utilizzando la loro ricostruzione di Enigma, la tabella completa! Esercizio Vogliamo decifrare il messaggio ‹ZPPCJWHQDKYAZJOCMR›. Nello stesso giorno vengono intercettati numerosi messaggi cui primi sei caratteri sono ABYZYX AEUZEB AIPZDW AJAZIF AJHZIR ALNZWE AMFZGV AMMZGG ANQZAC AQGZMO ASZZLI AUSZQK AUXZQZ AXEZSY AXHZSR BBFOYV BHROVN BKDOCQ BLTOWJ BLUOWB BPYOJX BTDOPQ BTIOPL BTROPN BXVOSD BYMOKG BZUOZB CCGGBO CEWGEH CEWGEH CGUGUB CHKGVS CHMGVG CJEGIY CJGGIO CJVGID CLOGWU CLVGWD CMKGGS CRCGOM CRTGOJ CVEGXY DGPIUW DGZIUI DIBIDA DMWIGH DOKIHS DOPIHW DRBIOA DRGIOO DZEIZY EALRTP EKJRCT EMBRGA EPIRJL EPPRJW EPWRJH EYWRKH FATKTJ FCZKBI FEYKEX FGYKUX FHMKVG FMEKGY FOBKHA FSJKLT FSOKLU FSWKLH FUHKQR FWJKRT GCMWBG GGPWUW GKLWCP GNJWAT GQNWME GSGWLO GXDWSQ GYHWKR HAFQTV HCTQBJ HDBQFA HFIQNL HFTQNJ HHYQVX HKDQCQ HNLQAP HOMQHG HTGQPO ICFUBV IGCUUM Rompere Enigma IKZUCI IMOUGU IRLUOP ITNUPE IXYUSX IYSUKK JBGMYO JCGMBO JDDMFQ JERMEN JGLMUP JIIMDL JOKMHS JPRMJN JQAMMF JQVMMD JVZMXI JZGMZO KAFHTV KDPHFW KMXHGZ KNNHAE KWBHRA KWDHRQ KZIHZL LHGVVO LIZVDI LJSVIK LJWVIH LKVVCD LMGVGO LQDVMQ LQKVMS LVXVXZ LYVVKD LYZVKI MBHJYR MBKJYS MDWJFH MFFJNV MGCJUM MIQJDC MLFJWV MNMJAG MOUJHB MSQJLC MYYJKX MZGJZO MZOJZU NCDABQ NHDAVQ NHHAVR NMCAGM NPVAJD NQZAMI NRKAOS NSNALE NWAARF NYHAKR OABBTA OCGBBO ODSBFK OFQBNC OGEBUY OIQBDC OKHBCR OLIBWL OMPBGW OMSBGK ONDBAQ OOUBHB OPQBJC ORJBOT OUGBQO OUMBQG OVPBXW OVYBXX OXTBSJ PDGTFO PEYTEX PFUTNB PGFTUV PGZTUI PHBTVA PIETDY PJUTIB PKGTCO PKWTCH PNCTAM PQITML PQWTMH PQXTMZ PTETPY PVGTXO PVYTXX PWNTRE PZNTZE QBOSYU QFUSNB QHKSVS QHOSVU QKRSCN QNBSAA QRRSON QXFSSV RAWFTH REXFEZ ROFFHV ROMFHG RRKFOS RTHFPR RTMFPG RTOFPU RTZFPI RVJFXT SAHXTR SCKXBS SGAXUF SKRXCN SMNXGE SQTXMJ STHXPR SWPXRW SWTXRJ SYKXKS TARETN TBHEYR TDDEFQ TGSEUK THUEVB TIAEDF TIKEDS TJUEIB TKUECB TQYEMX TSPELW TWGERO TYAEKF UBANYF UEUNEB UIANDF UKANCF UKMNCG UTANPF UTENPY UTHNPR UVINXL VASDTK VCEDBY VEEDEY VESDEK VEUDEB VGYDUX VNPDAW VNZDAI VPZDJI VWLDRP VXRDSN WCLLBP WGGLUO WQCLMM WTVLPD WVZLXI WXMLSG WZDLZQ XAFYTV XCAYBF XDXYFZ XEEYEY XFDYNQ XJUYIB XOZYHI XPCYJM XPWYJH XQGYMO XQPYMW XRLYOP XTHYPR XTYYPX XYIYKL YCJPBT YDOPFU YDUPFB YEFPEV YEKPES YEPPEW YHQPVC YJXPIZ YLWPWH YMDPGQ YMOPGU YMRPGN YOGPHO YOKPHS YQJPMT YRBPOA YUIPQL YYGPKO ZEJCET ZENCEE ZFBCNA ZFFCNV ZJNCIE ZLECWY ZMCCGM ZOGCHO ZQICML ZRICOL ZRKCOS ZUNCQE . La sostituzione Ricostruiamo la sostituzione fra prima e quarta lettera A B CD E F GH I J K L MNO P Q R S T U V WX Y Z Ricostruiamo quindi la sostituzione (AZC Riconosciamo così la chiave: Se decifriamo con questa chiave i primi sei caratteri ‹ZPPCJW› otteniamo: Non abbiamo una chiave ripetuta due volte, probabilmente perché uno dei caratteri è stato sostituito. Prendiamo per buoni i primi tre e decifriamo la seconda parte ‹HQDKYAZJOCMR› del messaggio: