Cripta che ti passa

Sin dall’antichità l’uomo è sempre stato affascinato dall’idea di scrivere “messaggi in codice” ovvero messaggi che fossero comprensibili solo al destinatario in questione. E così, da Cesare in poi, per comunicazioni militari, strategiche o semplicemente per diletto, molte persone si sono dedicate alla creazione di codici e sistemi sempre più all’avanguardia.

In realtà di metodi ce ne sono moltissimi (compreso quello dei nemici di Snoopy…) e non voglio certo descriverveli tutti quanti! Mi limiterò a farvi capire qualche semplice (e non) metodo per spedire messaggi segreti. Dato che ad un certo punto parlerò di congruenze e di aritmetica modulare (stavolta poco poco però), se siete così sciagurati che non lo avete ancora fatto (…scherzo ovviamente), andate a leggervi il mio precedente post: qui.

Molti matematici, tra cui alcuni di calibro piuttosto alto, si sono gettati nella mischia. Visto che è uscito il film da poco e magari molti lo hanno visto, vi porto come esempio Alan Turing che appunto ha dedicato parte della sua vita per decodificare un codice “indecifrabile”.

Ma uno penserebbe “sì però…che ci azzecca un matematico con la crittografia?” Beh, la risposta è che i metodi crittografici più usati al mondo (il famoso RSA, ad esempio) si basano proprio su alcuni fatti notevolissimi di aritmetica modulare e di algebra lineare. Sembra strano che cose così “astruse” e spesso “fuori dal mondo” in realtà siano quelle che ci rendono la vita più facile. Pensate solo a quando immettete la password per la casella email o per Facebook oppure quando andate al bancomat a prelevare e inserite il codice oppure quando fate un bonifico e avete la vostra pennetta “RSA secured” che vi da la possibilità di farlo…e potrei andare avanti ancora un po’…in tutti questi casi le vostre operazioni sono sicure ed è solo merito della matematica (e fatemi fare un po’ di pubblicità no?!…come se poi ce ne fosse bisogno!). Ovviamente ora non parlerò dell’RSA, né dei suoi intimi amici, ma magari lo farò più avanti!

Cesare e la sua rotella

Non sto offendendo Cesare con questo titolo, ma il suo sistema era davvero basato su una rotella!

Cesare voleva inviare i messaggi al senato ma se questi messaggi, scritti in chiaro, fossero giunti nelle mani dei nemici (facciamo i Galli và, giusto per aggiungere colore a questa storia), sarebbero stato compresi facilmente e magari, ad oggi, la storia che si studia a scuola sarebbe diversa…ma questa è un’altra storia (appunto).

Quindi, inventò questo metodo che va sotto il nome di “Cifrario di Cesare”. Quello che faceva era spostare l’alfabeto di un certo numero di lettere e scrivere con questo nuovo alfabeto. Ovvero, scriveva il suo rapporto e poi ordinava ai soldati: “ok, adesso ogni lettera cambiatela con la terza dopo di essa nell’alfabeto”. Quindi, ogni A sarebbe stata cambiata in D, ogni B in E, ogni C in F, ogni D in G e così via. Chiaramente arrivati alla lettera X, non potendo andare alla terza lettera dopo di essa (perché non esiste!) si ricominciava da A. Cioè proprio una rotella!! (Vedi la figura, il cerchio dentro è l’alfabeto cifrante).

Perciò ricevendo il messaggio VWDVHUD GLVFRWHFD JDOOLFD, il senato avrebbe fatto la procedura inversa, ovvero sarebbe andato a vedere tre lettere prima di ogni lettera, e avrebbe ottenuto il vero messaggio: STASERA DISCOTECA GALLICA (ogni tanto se doveva divertì pure Cesare…mica stava sempre a combatte!!).

Beh forte, non credete? Però ha un ENORME punto debole! In questo esempio abbiamo scelto di andare avanti 3 lettere, ma possiamo scegliere arbitrariamente di quante lettere andare avanti. La sostanza è che il senato deve conoscere questo numero (detta la chiave) per poter decifrare. Diciamo che con 26 tentativi i Galli lo decifrano (a patto che conoscano il metodo usato da Cesare), quindi non è il massimo della sicurezza.

Ma ragioniamo…che faceva Cesare? In sostanza guardava alla lettera che stava un certo numero di posizioni avanti…cioè aggiungeva un numero! Quindi, prima di tutto, traduciamo le lettere in numeri.

A B C D E F G H
1 2 3 4 5 6 7 8
I J K L M N O P
9 10 11 12 13 14 15 16
Q R S T U V W X Y Z
17 18 19 20 21 22 23 24 25 26

Nell’esempio di prima abbiamo scelto 3 come chiave. Inoltre, se sforavamo ricominciavamo da capo, cioè facendo 24+3 otteniamo 27 che non fa parte del nostro alfabeto ma quello che abbiamo imposto è che 27=1, cioè di criptare X con la A. Ma cosa ci ricorda? Le congruenze!! Quindi la regola è, che se la chiave è 3, per cifrare il numero n, dobbiamo calcolare $$n+3$$ modulo 26.

Ovviamente da Cesare in poi di passi avanti ne sono stati fatti. In particolare il primo è stato quello di passare al sistema polialfabetico. Ad esempio si possono fissare più chiavi e cifrare le lettere secondo alfabeti diversi. Se scegliessimo la chiave (3,5,7), significa che la prima lettera la cifreremo facendo $$n+3$$ modulo 26, la seconda $$n+5$$ modulo 26 e la terza $$n+7$$ modulo 26. Dalla quarta in poi riuso ciclicamente le chiavi 3,5 e 7. Ovviamente è più complicato da scrivere, ma molto più sicuro!

Luke, sono tuo padre

L’uomo si è sbizzarrito nell’inventare metodi con più alfabeti o con chiavi di tipo diverso. Ad esempio, posso usare come chiave una piccola frase. Scegliamo questa: LUKE, SONO TUO PADRE come nostra frase-chiave. Cifriamo nel seguente modo:

A B C D E F G H I J K L M
L U K E S O N T P A D R B
N O P Q R S T U V W X Y Z
C D F G H I J M Q V X Y Z

Ogni lettera di sopra viene codificata con la lettera di sotto. Come vedete le lettere di LUKE, SONO TUO PADRE (senza ripetizioni) sono le prime che codificano le lettere. Dopo di quelle, le rimanenti lettere sono messe in ordine alfabetico (intendo dalla M in poi). Quindi, il mio nome verrebbe cifrato così: OHLCKSIKD, che sembra quasi un nome della mitologia nordica!

Stavolta, non sapendo la frase-chiave, è un po’ più difficile capire come decifrarlo. Quindi è abbastanza più sicuro.

Ora potete divertirvi! Basta accordarsi con il destinatario su una frase comune e il gioco è fatto!

Conclusione (per ora…)

Vi avevo promesso le congruenze, lo so. E magari ci siete rimasti male (oh, ma non credo!). Tranquilli, continuerò a parlare di crittografia in futuro, descrivendo metodi più efficaci (e notevolmente più complicati) per cifrare messaggi. Questi metodi useranno PESANTEMENTE le congruenze.

Per ora, direi che vi ho stressato parecchio. Au revoir!

CC BY-NC-SA 4.0
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.