Vai al contenuto

Bozza in revisione: il testo non è ancora stato approvato.

La matematica di Enigma

L’applicazione [della teoria delle permutazioni] da parte dei crittologi polacchi permise, fra il 1932 e il 1933, di rompere la cifra tedesca Enigma.

Marian Rejewski, An Application of the Theory of Permutations in Breaking the Enigma Cipher (1980), p. 1 (traduzione nostra)

Ogni componente di Enigma fa la stessa cosa: riceve una lettera e ne restituisce un’altra, senza mai mandare due lettere diverse nella stessa. In matematica una regola di questo tipo si chiama permutazione dell’alfabeto. Con poche idee sulle permutazioni si dimostrano, una volta per tutte, le due proprietà che le lezioni precedenti hanno visto su un modello e su qualche esempio: Enigma è reciproca, e non cifra mai una lettera in sé stessa. Sono le idee con cui Marian Rejewski, matematico del servizio cifra polacco, alla fine del 1932 ricostruì il cablaggio dei rotori militari.

Prerequisiti

  • Dalla lezione I rotori: in posizione B la corrente entra nel contatto del cablaggio spostato di un posto, segue il filo ed esce un posto più indietro.
  • Dalla lezione Il riflettore: in ogni posizione la macchina scambia le lettere a coppie, ma le coppie non sono quelle del riflettore e cambiano a ogni tasto.
  • Dalla lezione L’Uhr: la corrente attraversa il pannello, o l’Uhr, all’andata in un verso e al ritorno nel verso opposto.

Obiettivi

  • Scrivere una permutazione come tabella e scomporla in cicli.
  • Dire che cosa succede ai cicli di un rotore quando il rotore gira.
  • Dimostrare dalla formula della macchina che Enigma è reciproca e non cifra mai una lettera in sé stessa, con qualunque cablaggio.

Le permutazioni

Una permutazione si può scrivere come una tabella a due righe: sopra le lettere che entrano, sotto quelle che escono. Per il rotore I in posizione A:

ABCDEFGHIJKLMNOPQRSTUVWXYZ
EKMFLGDQVZNTOWYHXUSPAIBRCJ

La A va in E, la B in K, la C in M, e così via. Le permutazioni possibili delle 26 lettere sono 26!=26×25×⋯×126! = 26 \times 25 \times \cdots \times 1, circa 4,03×10264{,}03 \times 10^{26}.

C’è un modo più compatto di scriverle. Si parte da una lettera e la si segue: nel rotore I la A va in E, la E in L, la L in T, e dopo dieci passi si torna alla A. Si ottiene un ciclo, che si scrive fra parentesi. Ogni permutazione si scompone in cicli che non hanno lettere in comune; per il rotore I:

(AELTPHQXRU) (BKNW) (CMOY) (DFG) (IV) (JZ) (S)

La S forma un ciclo da sola: è un punto fisso, una lettera che il rotore lascia com’è. Le lunghezze dei cicli, qui dieci, quattro, quattro, tre, due, due e uno, formano la struttura in cicli della permutazione.

Composizione e inversa

Il segnale attraversa i componenti uno dopo l’altro, quindi la sostituzione complessiva è la composizione delle singole permutazioni. La scriviamo come le funzioni, da destra a sinistra: YXYX vuol dire «prima XX, poi YY». L’ordine conta. Se XX scambia la A con la B e YY manda la A in B, la B in C e la C in A, allora con YXYX la A va in C, mentre con XYXY la A torna in A.

L’inversa X−1X^{-1} è la permutazione che annulla XX: si ottiene leggendo la tabella dal basso verso l’alto, e X−1XX^{-1}X lascia ogni lettera al suo posto. È l’identità, che indichiamo con id\mathrm{id}. Al ritorno dal riflettore la corrente attraversa i rotori nel verso opposto, quindi subisce le loro inverse.

Il rotore che gira: il coniugio

Quando un rotore avanza, il cablaggio resta lo stesso ma si sposta rispetto alla carcassa, e con lui si spostano i cicli.

Previsione

In posizione A il rotore I ha il ciclo (AELTPHQXRU). Visto dai contatti fissi della carcassa, che cosa diventa questo ciclo con il rotore in posizione B?

(AELTPHQXRU)(BKNW)(CMOY)(DFG)(IV)(JZ)(S)

Rotore I in posizione A: 7 cicli, di lunghezza 10, 4, 4, 3, 2, 2, 1.

Il ciclo (AELTPHQXRU) diventa (DKSOGPWQTZ), cioè (ZDKSOGPWQT) scritto a partire da un’altra lettera: ogni lettera è andata un posto indietro, e la lunghezza è rimasta dieci. Lo stesso vale per tutti i cicli e in tutte le posizioni: le lettere cambiano, le lunghezze restano dieci, quattro, quattro, tre, due, due e uno.

Chiamiamo ρ\rho lo spostamento di un posto, che manda la A in B, la B in C e la Z in A. Un rotore con cablaggio RR, spostato di kk posti, opera la permutazione

ρ−k R ρk\rho^{-k}\, R\, \rho^{k}

cioè prima sposta i contatti di kk posti, poi attraversa il cablaggio, infine torna indietro di kk. Una permutazione della forma T−1XTT^{-1} X T si dice coniugata di XX, e le coniugate hanno sempre la stessa struttura in cicli: TT cambia il nome delle lettere, non la lunghezza dei cicli. Nel rotore che gira T=ρkT = \rho^{k}, e il nuovo nome di ogni lettera è la lettera kk posti più indietro.

Rejewski si servì di questa proprietà per separare i rotori dal pannello a spine. Dai messaggi di un giorno ricavava permutazioni i cui cicli avevano lunghezze che dipendevano dalla posizione dei rotori e non dai cavi del pannello, che cambiavano solo i nomi delle lettere. Come costruì quelle permutazioni lo racconta la lezione Rejewski e la teoria dei cicli.

Perché la coniugata ha la stessa struttura· approfondimento

Se XX manda aa in bb, allora T−1XTT^{-1} X T manda T−1(a)T^{-1}(a) in T−1(b)T^{-1}(b). Ogni ciclo (a b c…)(a\,b\,c \ldots) di XX diventa il ciclo (T−1(a)  T−1(b)  T−1(c)…)(T^{-1}(a)\;T^{-1}(b)\;T^{-1}(c) \ldots) della coniugata: stesse lunghezze, lettere rinominate. Vale anche il viceversa: due permutazioni con la stessa struttura in cicli sono sempre coniugate.

Involuzioni e reciprocità

Il riflettore scambia le lettere a coppie, quindi applicarlo due volte riporta ogni lettera al suo posto: U2=idU^2 = \mathrm{id}, cioè U=U−1U = U^{-1}. Una permutazione così si chiama involuzione. Il riflettore B è fatto di 13 cicli di lunghezza due, senza punti fissi:

(AY) (BR) (CU) (DH) (EQ) (FS) (GL) (IP) (JX) (KN) (MO) (TZ) (VW)

Anche il pannello a spine con i cavi normali è un’involuzione, ma con punti fissi: le lettere senza cavo.

Chiamiamo PP il pannello e RR il tratto che va dalla ruota d’ingresso al riflettore, rotori compresi. Con la macchina ferma in una certa posizione, la lettera accesa è data da

E=P−1R−1 U R PE = P^{-1} R^{-1}\, U\, R\, P

cioè EE è coniugata di UU con T=RPT = RP. Le coppie della macchina, nella lezione sul riflettore, erano le coppie del riflettore viste attraverso i rotori: ora sono le coppie di UU rinominate da RPRP. Ne seguono le due proprietà. La prima è la reciprocità:

E2=P−1R−1URP P−1R−1URP=P−1R−1U2RP=idE^2 = P^{-1} R^{-1} U R P \, P^{-1} R^{-1} U R P = P^{-1} R^{-1} U^2 R P = \mathrm{id}

La seconda è che nessuna lettera si cifra in sé stessa: EE ha la stessa struttura in cicli di UU, quindi 13 scambi e nessun punto fisso. I due ragionamenti non usano il cablaggio dei rotori, e nemmeno il fatto che PP sia un’involuzione: valgono anche con l’Uhr, che all’andata opera una permutazione e al ritorno la sua inversa.

  • Ogni componente di Enigma è una permutazione delle 26 lettere, che si scrive come tabella o come prodotto di cicli; il rotore I in posizione A ha cicli lunghi dieci, quattro, quattro, tre, due, due e uno.
  • Un rotore spostato di kk posti opera la coniugata ρ−kRρk\rho^{-k} R \rho^{k}: ogni lettera dei cicli va kk posti indietro, e le lunghezze dei cicli restano le stesse. In posizione B il ciclo (AELTPHQXRU) diventa (DKSOGPWQTZ).
  • La macchina è E=P−1R−1URPE = P^{-1} R^{-1} U R P, coniugata del riflettore: per questo E2=idE^2 = \mathrm{id} e EE non ha punti fissi, con qualunque cablaggio e anche con l’Uhr al posto del pannello.

Fonti

  • Marian Rejewski, An Application of the Theory of Permutations in Breaking the Enigma Cipher, Applicationes Mathematicae 16 (4), 1980.
  • Simon Singh, The Code Book: How to Make It, Break It, Hack It, Crack It, Delacorte Press, 2003.
  • Władysław Kozaczuk, Enigma. How the German Machine Cipher Was Broken, and How It Was Read by the Allies in World War Two, University Publications of America, 1984.