Indice
Introduzione
Cifrario di Cesare
Cifrario a rotazione
Crittoanalisi
Cifrario completo
La potente arma dei crittoanalisti
Cifrari a sostituzione polialfabetica
Cifrario di Vegenère
Punto debole del cifrario di Vegenère
Macchine per cifrare
Crittografia a chiave pubblica
Moltiplicare è facile fattorizzare è difficile
Aritmetica modulare
Dal resto a un numero e viceversa
Algoritmo RSA
Algoritmo RSA con numeri molto piccoli
Cifrario completo
E' possibile migliorare la sicurezza del cifrario di Cesare? Sí! Basta utilizzare tutte le possibili permutazioni delle 26 lettere dell'alfabeto, anzichè le sole traslazioni. Nel cifrario di Cesare l'alfabeto cifrante, ottenuto con una traslazione, risulta diviso in due blocchi entrambi in ordine alfabetico e questo limita a sole 25 il numero delle chiavi possibili. Invece, se l'ordine dell'alfabeto cifrante viene scelto casualmente il numero potenziale delle chiavi aumenta notevolmente. Supponiamo di avere un sacchetto contenente le 26 lettere dell'alfabeto internazionale e estrarre casualmente una ad una le 26 lettere che formano l'alfabeto cifrante. La prima lettera può essere estratta in 26 modi diversi (tanti quante sono le lettere nel sacchetto), la seconda in 25 modi diversi (tanti quante sono le lettere rimaste nel sacchetto), la terza in 24 modi diversi e cosí via. In questo modo il numero dei possibili alfabeti cifranti è uguale al numero delle possibili permutazioni di 26 oggetti distinti:
26⋅25⋅24⋅ ... ⋅3⋅2⋅1⋅ ≅ 403 ⋅ 1024
E ognuno di questi alfabeti cifranti è a sua volta una chiave possibile cioè, 403 quadrilioni di chiavi. Con questo numero di chiavi è praticamente impossibile per un crittoanalista forzare un messaggio cifrato controllando tutte le possibili chiavi una per una. Anche se riuscisse a controllare una chiave al secondo gli occorrerebbero 10 miliardi di anni per completare il controllo di tutte le chiavi. Ad esempio, una chiave possibile potrebbe essere:
![]()
e se il testo chiaro è:
matematica
il testo cifrato diventa:
NLWKNLWDFL
Per il mittente e il destinatario questa cifratura è semplice e nel contempo offre un alto livello di sicurezza, bisogna però concordare la chiave che è costituita da 26 lettere diverse in un dato ordine stabilito casualmente e non c'è un metodo per risalire a questa sequenza di lettere priva di senso. Bisogna allora memorizzare la chiave oppure scriverla e metterla in un posto sicuro con il rischio, sempre presente, che potrebbe essere rubata. Esiste però un modo molto semplice per eliminare tutte queste complicazioni. Si può descrivere una data permutazione dell'alfabeto utilizzando una parola chiave o una frase chiave facile da ricordare. Scegliamo ad esempio come chiave la parola FRAGOLA ed eliminiamo le lettere che si ripetono otteniamo cosí la nuova parola chiave FRAGOL. Poi formiamo l'alfabeto cifrante disponendo nell'ordine prima le lettere della nuova parola chiave e poi le lettere dell'alfabeto rimaste rispettando il normale ordine alfabetico partendo dall'ultima lettera della parola chiave.
![]()
Ora, è più semplice concordare e ricordare la chiave tra mittente e destinatario e questa semplicità è un notevole aiuto da non sottovalutare perchè riduce i possibili errori. I crittografi ritennero questo cifrario di sostituzione per parole chiave cosí affidabile da ritenerlo inviolabile ed erano convinti di aver vinto la contesa con i crittoanalisti.