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:
