Algoritmi

2600 anni per nascondere un messaggio.

Un dossier interattivo sugli algoritmi di cifratura: dal bastone di legno degli Spartani al fosforo dei processori moderni. Ogni voce si apre, si legge, si prova.

36algoritmi
2600anni di storia

Algoritmi simmetrici

Una sola chiave, condivisa da chi cifra e da chi decifra.

Nella cifratura simmetrica mittente e destinatario possiedono la stessa chiave segreta: quella che serve per cifrare è identica a quella che serve per decifrare. È il modello più antico di crittografia — dai bastoni di legno spartani ai cifrari a rotori, fino agli standard digitali come AES che oggi proteggono la maggior parte del traffico cifrato del mondo. Il suo tallone d'Achille è sempre lo stesso: come si scambiano la chiave due persone che non si sono mai incontrate? È un problema che resterà aperto fino all'invenzione della crittografia asimmetrica, nel 1976.

~VI sec. a.C.

Cifrario Atbash

Antico Israele — l'alfabeto allo specchio
Atbash (אתבש)·scribi ebraici, presumibilmente VI–V secolo a.C. — compare nel Libro di Geremia
Come funziona

Atbash sostituisce ogni lettera con la sua speculare nell'alfabeto: la prima diventa l'ultima, la seconda la penultima, e così via (A↔Z, B↔Y, C↔X…). Il nome deriva proprio dalle lettere ebraiche coinvolte: Aleph-Taw-Beth-Shin, cioè prima-ultima-seconda-penultima. Nel Libro di Geremia il nome "Babele" (בבל) compare cifrato come "Sheshach" (ששך) proprio con questa tecnica.

È uno dei più antichi cifrari documentati e anche uno dei più deboli: non ha alcuna chiave. Chiunque conosca il metodo può decifrare all'istante. Una sua proprietà elegante: applicarlo due volte restituisce il testo originale — cifrare e decifrare sono la stessa identica operazione.

Nota matematica: Atbash è un caso particolare del Cifrario affine con a=25, b=25.

La chiave: qui non esiste una chiave da scegliere — la corrispondenza A↔Z, B↔Y, C↔X… è fissa e pubblica: è l'unico caso di questo dossier in cui il “segreto” è semplicemente il metodo stesso.

Alice e Bob
A
Alice riflette ogni lettera del messaggio nello specchio dell'alfabeto: CIAO diventa XRZL.
E
Eve che conosce il trucco decifra immediatamente: la sicurezza si basa solo sul fatto che il metodo resti sconosciuto.
B
Bob applica lo stesso specchio al testo cifrato e riottiene il messaggio: nessuna chiave da ricordare.
Come funziona — animazione
Ogni lettera si riflette nella sua speculare: A↔Z, B↔Y, C↔X…
MessaggioChiaveCifrato
Provalo
~V sec. a.C.

Scytale

Sparta — il primo cifrario a trasposizione della storia
Scytale (o Bastone di Licurgo)·Sparta, presumibilmente V secolo a.C.
Come funziona

La Scytale non nasconde le lettere, le rimescola. Si avvolge una striscia di cuoio o papiro a spirale attorno a un bastone di legno di diametro preciso, poi si scrive il messaggio lungo il bastone, una lettera per giro. Svolgendo la striscia, le lettere appaiono in un ordine senza senso: sono state trasposte, non sostituite. Chi riceve la striscia deve avvolgerla su un bastone dello stesso identico diametro per far riallineare le lettere e tornare a leggere il testo originale.

La "chiave" è quindi puramente fisica: il diametro del bastone, che determina quante lettere stanno in un giro completo. È il primo esempio conosciuto in cui lo strumento stesso, e non un calcolo, custodisce il segreto.

Nella nostra versione digitale il diametro è simulato dal numero di righe su cui si "avvolge" il testo.

La chiave: è il diametro del bastone (nel nostro strumento, il numero di righe): determina quante colonne servono per scrivere il messaggio e quindi in che ordine le lettere vengono lette scrivendo e rilette srotolando.

Alice e Bob
A
Alice, generale spartana, avvolge una striscia di cuoio attorno al suo bastone e scrive "RITIRATA ALLALBA" lungo la sua lunghezza.
A
Svolge la striscia: ora si legge RATLIAIRTLTAAIRBA... — un rebus illeggibile. La affida a un corriere.
E
Eve intercetta il corriere e legge la striscia: senza il bastone giusto, vede solo lettere senza ordine.
B
Bob, nell'accampamento alleato, possiede un bastone identico. Avvolge la striscia e il messaggio torna leggibile.
Come funziona — animazione
Il bastone letto per righe: il messaggio è leggibile in ordine naturale.
MessaggioChiave (righe)Cifrato
Provalo
~II sec. a.C.

Quadrato di Polibio

Grecia antica — ogni lettera diventa una coppia di numeri
Quadrato di Polibio·descritto dallo storico greco Polibio, II secolo a.C.
Come funziona

Le 25 lettere dell'alfabeto (I e J condivise) vengono disposte in una griglia 5×5. Ogni lettera si trasforma nella coppia di numeri riga-colonna della sua casella: con la griglia standard, A=11, B=12, T=44. Polibio la ideò per le segnalazioni a distanza: due gruppi di torce, uno per la riga e uno per la colonna, permettevano di trasmettere qualsiasi lettera oltre la portata della voce.

Da solo protegge poco — è una sostituzione monoalfabetica con simboli numerici — ma la sua vera eredità è il frazionamento: spezzare ogni lettera in due parti apre la porta a manipolazioni impossibili sulle lettere intere. È il mattone su cui si costruiranno cifrari ben più forti come il Bifid e l'ADFGVX, e persino il "tap code" battuto sui muri dai prigionieri di guerra.

Con una parola chiave la griglia viene rimescolata: le lettere della chiave occupano le prime caselle, seguite dal resto dell'alfabeto.

La chiave: è opzionale, ed è una parola che determina l'ordine delle lettere nella griglia — le sue lettere occupano le prime caselle, seguite dal resto dell'alfabeto. Senza chiave si usa la griglia standard in ordine alfabetico.

Alice e Bob
A
Alice e Bob condividono la stessa griglia, eventualmente rimescolata con una parola chiave.
A
Alice converte ogni lettera in coordinate: ATTACCO diventa una sequenza di coppie di cifre da 1 a 5.
E
Eve vede solo numeri: se non conosce la griglia (con chiave), deve prima ricostruirla.
B
Bob usa le coppie come coordinate sulla sua griglia identica e rilegge il messaggio.
Come funziona — animazione
Griglia standard: ogni lettera è identificata da riga e colonna.
MessaggioChiaveCifrato
Provalo
~I sec. a.C.

Cifrario di Cesare

Roma — la sostituzione a scorrimento più famosa della storia
Cifrario di Cesare·attribuito a Giulio Cesare, I secolo a.C.
Come funziona

Ogni lettera del messaggio viene sostituita con quella che si trova un certo numero fisso di posizioni più avanti nell'alfabeto. Con chiave 3, la A diventa D, la B diventa E, e così via, tornando all'inizio dopo la Z. Svetonio racconta che Giulio Cesare lo usasse con uno scorrimento di 3 per le comunicazioni militari riservate.

È un cifrario a sostituzione monoalfabetica: ogni lettera corrisponde sempre alla stessa lettera cifrata. Proprio per questo è debolissimo — con sole 25 chiavi possibili, si rompe per tentativi in pochi minuti, e l'analisi delle frequenze delle lettere lo tradisce ancora più in fretta.

La chiave: è un singolo numero, lo scorrimento, usato come offset sommato (modulo 26) alla posizione di ogni lettera: nell'animazione corrisponde esattamente a quante posizioni la ruota interna viene fatta ruotare rispetto a quella esterna.

Alice e Bob
A
Alice e Bob si accordano su una chiave segreta: scorrimento di 3.
A
Alice scrive "ATTACCO" e la trasforma in DWWDFFR spostando ogni lettera di 3 posizioni.
E
Eve intercetta "DWWDFFR": senza sapere la chiave dovrebbe provare tutti e 25 gli scorrimenti possibili — pochissimi, per gli standard moderni.
B
Bob applica lo scorrimento inverso di 3 e ottiene di nuovo "ATTACCO".
Come funziona — animazione
Disco esterno fisso (testo in chiaro) · disco interno mobile (testo cifrato)
MessaggioChiave (scorrimento)Cifrato
Provalo
1553

Cifrario di Vigenère

Francia — il "cifrario indecifrabile" per tre secoli
Cifrario di Vigenère·attribuito a Blaise de Vigenère, 1553
Come funziona

Invece di un unico scorrimento fisso come in Cesare, Vigenère usa una parola chiave che si ripete lungo tutto il messaggio: ogni sua lettera indica uno scorrimento diverso. Con chiave "LUPO", la prima lettera del messaggio scorre secondo L, la seconda secondo U, la terza secondo P, la quarta secondo O, poi si ricomincia da L.

È un cifrario polialfabetico: la stessa lettera del testo in chiaro può diventare lettere cifrate diverse a seconda della posizione, il che rende inutile la semplice analisi delle frequenze. Per oltre 300 anni fu considerato "le chiffre indéchiffrable", finché nell'Ottocento Kasiski e Babbage non svilupparono tecniche per sfruttare la ripetizione periodica della chiave.

La chiave: è una parola le cui lettere, una per una, indicano lo scorrimento da applicare — nell'animazione, ogni lettera della chiave sposta la ruota cifrante in una posizione diversa prima di cifrare la lettera corrispondente del messaggio.

Alice e Bob
A
Alice e Bob condividono la parola chiave "LUPO".
A
Alice cifra "ATTACCO" allineando la chiave ripetuta "LUPOLUP" sotto il messaggio e sommando le posizioni lettera per lettera.
E
Eve vede un testo cifrato dove le stesse lettere del messaggio originario compaiono come simboli diversi: l'analisi delle frequenze non funziona più direttamente.
B
Bob, conoscendo "LUPO", sottrae la stessa sequenza e recupera il messaggio.
Come funziona — animazione
Ogni lettera della chiave sposta la ruota su uno scorrimento diverso.
MessaggioChiaveCifrato
Provalo
1854

Cifrario di Playfair

Regno Unito — il primo cifrario a cifrare coppie di lettere
Cifrario di Playfair·inventato da Charles Wheatstone, 1854 — diffuso da Lord Playfair
Come funziona

Si costruisce una griglia 5×5 con le lettere di una parola chiave seguite dal resto dell'alfabeto (I e J condivise nella stessa casella). Il messaggio viene diviso in coppie di lettere, e ogni coppia viene cifrata secondo quattro regole, in base alla posizione delle due lettere nella griglia:

• stessa riga → si prende la lettera a destra di ciascuna (tornando all'inizio della riga se serve)
• stessa colonna → si prende la lettera sotto ciascuna (tornando in cima se serve)
• rettangolo (riga e colonna diverse) → si scambiano le colonne, mantenendo la riga di ciascuna lettera
lettere identiche → non si può formare una coppia valida: si inserisce una lettera di riempimento (di norma X) tra le due, e si ricomincia ad accoppiare da lì in poi

Cifrando coppie invece di singole lettere, Playfair resiste all'analisi delle frequenze molto meglio di Cesare o Vigenère. Fu usato dall'esercito britannico dalla guerra boera fino alla Seconda guerra mondiale.

Esempio del quarto caso: "HELLO" si spezza in HE, poi L-L — identiche, quindi diventa L-X — e infine L-O col carattere avanzato. Anche un messaggio di lunghezza dispari riceve una X finale di riempimento: la decifratura può quindi mostrare qualche X in più rispetto al testo originale.

La chiave: è la parola che semina la griglia — le sue lettere (senza ripetizioni) occupano le prime caselle nell'ordine in cui compaiono, seguite dal resto dell'alfabeto: chiavi diverse producono griglie diverse, e quindi cifrati diversi per lo stesso messaggio.

Alice e Bob
A
Alice e Bob costruiscono entrambi la stessa griglia 5×5 a partire dalla chiave "PAROLACHIAVE".
A
Alice divide "ATTACCO" in coppie: AT-TA-CC-O(X), e cifra ogni coppia seguendo le tre regole della griglia.
E
Eve intercetta il testo cifrato: senza la griglia, ricostruire le coppie originali richiede uno sforzo enorme.
B
Bob applica le regole in senso inverso sulla sua griglia identica e recupera il messaggio.
Come funziona — animazione
Caso 1 di 4 — stessa riga: si prende la lettera a destra di ciascuna.
MessaggioChiaveCifrato
Provalo
~XX sec.

Cifrario affine

La generalizzazione matematica di Cesare e Atbash
Cifrario affine·principio antico, formalizzato con l'aritmetica modulare tra XIX e XX secolo
Come funziona

Il cifrario affine trasforma ogni lettera con una formula: E(x) = (a·x + b) mod 26, dove x è la posizione della lettera nell'alfabeto (A=0, B=1…), e la chiave è la coppia di numeri (a, b). Per poter decifrare, a deve essere coprimo con 26 (cioè uno tra 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25): solo così esiste l'inverso moltiplicativo a⁻¹ che permette di invertire la formula: D(y) = a⁻¹·(y − b) mod 26.

Il totale delle chiavi possibili è 12×26 = 312 — meglio delle 25 di Cesare, ma comunque irrisorio. Il suo valore è concettuale: con a=1 si ottiene esattamente Cesare, con a=25 e b=25 si ottiene Atbash. È il momento in cui i cifrari smettono di essere trucchi e diventano formule: la stessa matematica modulare che, portata su numeri giganteschi, un secolo dopo farà funzionare RSA.

La chiave: è la coppia di numeri (a, b) usata direttamente nella formula (a·x + b) mod 26 — a agisce come moltiplicatore, b come offset additivo; entrambi vanno noti a chi decifra per invertire il calcolo.

Alice e Bob
A
Alice e Bob scelgono la coppia (a, b), per esempio a=5, b=8.
A
Alice converte ogni lettera in numero, applica la formula (5x+8) mod 26, riconverte in lettera.
E
Eve ha solo 312 chiavi da provare — e l'analisi delle frequenze funziona ancora, perché la sostituzione resta monoalfabetica.
B
Bob calcola l'inverso di 5 modulo 26 (che è 21) e inverte la formula lettera per lettera.
Come funziona — animazione
La formula (a·x + b) mod 26 applicata lettera per lettera.
MessaggioChiaveCifrato
Provalo
1901

Cifrario Bifido

Francia — le coordinate di Polibio, spezzate e rimescolate
Cifrario Bifido (Bifid)·Félix Delastelle, 1901
Come funziona

Il francese Delastelle prese il Quadrato di Polibio e vi aggiunse l'idea che lo rende davvero potente: il frazionamento con trasposizione. Ogni lettera viene convertita nelle sue coordinate riga-colonna, ma poi tutte le righe vengono scritte in sequenza, seguite da tutte le colonne. Rileggendo la lunga fila di numeri a coppie, si ottengono coordinate nuove — che mescolano la riga di una lettera con la colonna di un'altra.

Il risultato: ogni lettera cifrata dipende da due lettere diverse del messaggio originale. È il principio di diffusione che Claude Shannon formalizzerà nel 1949 come requisito di ogni buon cifrario — e che ritroveremo, in forma matematica, dentro DES e AES. Il Bifido è il ponte concettuale tra i cifrari a matita e la crittografia moderna.

La chiave: è opzionale, ed è una parola che riordina la griglia 5×5 esattamente come nel Quadrato di Polibio — cambia quindi le coordinate assegnate a ogni lettera prima ancora del frazionamento.

Alice e Bob
A
Alice converte ogni lettera in coordinate sulla griglia 5×5, come in Polibio.
A
Poi separa: prima scrive tutte le righe, poi tutte le colonne, e rilegge i numeri a coppie — coordinate nuove, lettere nuove.
E
Eve non può più attaccare lettera per lettera: ogni simbolo cifrato intreccia informazioni di due lettere distinte.
B
Bob inverte il processo: converte in coordinate, ricompone la sequenza divisa a metà, e rilegge riga+colonna originali.
Come funziona — animazione
Righe e colonne separate, poi ricombinate: ogni lettera cifrata dipende da due lettere del messaggio.
MessaggioChiaveCifrato
Provalo
1917

Cifrario di Vernam

Stati Uniti — l'unico cifrario matematicamente inviolabile
Cifrario di Vernam (One-Time Pad)·Gilbert Vernam, 1917 — AT&T / brevetto 1919
Come funziona

Vernam lavorava sui telescriventi e cercava un modo per rendere sicuro il codice Baudot. La sua idea: combinare ogni carattere del messaggio con un carattere di una chiave casuale lunga quanto il messaggio, usando l'operazione XOR sui bit. Nella versione didattica su lettere, equivale a una somma modulo 26 come in Vigenère — ma con una differenza cruciale.

Se la chiave è veramente casuale, lunga quanto il messaggio, e usata una sola volta, Claude Shannon dimostrò nel 1949 che il cifrario risultante — detto One-Time Pad — è matematicamente impossibile da rompere, anche con potenza di calcolo infinita: ogni testo in chiaro della stessa lunghezza è ugualmente probabile. Il prezzo di questa perfezione è enorme: le due parti devono scambiarsi in anticipo, e con un canale sicuro, una chiave grande quanto tutti i messaggi che invieranno mai — e non riutilizzarla mai.

Il nostro strumento richiede una chiave della stessa lunghezza esatta del messaggio (solo lettere), per rispettare la regola che rende Vernam sicuro. Riutilizzare la stessa chiave su due messaggi diversi, nella pratica storica, è stato l'errore che ha permesso di rompere alcuni cifrari sovietici del progetto Venona.

La chiave: è la stringa casuale stessa, lunga quanto il messaggio: ogni suo carattere si combina one-to-one con il carattere corrispondente del messaggio, e senza quella esatta sequenza non c'è alcun modo di risalire al testo.

Alice e Bob
A
Alice e Bob si incontrano di persona una sola volta e si scambiano un blocchetto di chiavi casuali, una per ogni messaggio futuro.
A
Per il primo messaggio, Alice usa la prima chiave del blocchetto e la distrugge subito dopo l'uso.
E
Eve, anche disponendo di calcolatori infiniti, non può distinguere il messaggio vero da nessun altro testo della stessa lunghezza: non c'è pattern da sfruttare.
B
Bob usa la sua copia della stessa chiave, la applica in senso inverso, legge il messaggio — e distrugge anche lui la chiave.
Come funziona — animazione
Una chiave casuale, usata una volta sola, poi distrutta.
MessaggioChiaveCifrato
Provalo
1918

Enigma

Germania — la macchina a rotori che ha cambiato la crittografia e la guerra
Enigma·brevettata da Arthur Scherbius nel 1918, in uso commerciale dal 1923 e militare dagli anni '30 alla fine della Seconda guerra mondiale
Come funziona

Ogni tasto premuto chiude un circuito elettrico che attraversa una tastiera, un eventuale quadro di permutazione (plugboard), poi tre o quattro rotori in serie, un riflettore che rimanda la corrente indietro attraverso i rotori per una strada diversa, e infine accende una lampadina sul quadro luminoso: quella lampadina è la lettera cifrata. Prima che il circuito si chiuda, il rotore più a destra avanza di una posizione — per questo la stessa lettera premuta due volte di seguito produce quasi sempre due lettere cifrate diverse: è un cifrario polialfabetico con un periodo enorme.

Ogni rotore realizza una sostituzione fissa ma il suo cablaggio interno ruota fisicamente a ogni pressione, come un contachilometri: quando il rotore veloce completa un giro, fa avanzare quello centrale (a volte con la curiosa anomalia del "doppio scatto"), e così via. Il riflettore garantisce una proprietà elegante e insieme una debolezza fatale: applicando la stessa procedura due volte con le stesse impostazioni si torna al testo originale (cifrare e decifrare sono la stessa identica operazione) — ma nessuna lettera può mai essere cifrata in se stessa, un indizio che i crittoanalisti polacchi e poi quelli di Bletchley Park (Alan Turing in testa) sfruttarono per violarla sistematicamente.

La combinazione di rotori scelti, il loro ordine, l'impostazione degli anelli (Ringstellung), la posizione iniziale (Grundstellung) e i cavi del plugboard formavano insieme la chiave del giorno: per l'Enigma navale a 4 rotori le combinazioni possibili superavano 1020.

La chiave: qui non è un solo valore ma una combinazione di impostazioni — quali rotori usare e in che ordine, la posizione dell'anello di ciascuno, la posizione di partenza visibile nelle finestrelle, e le coppie del plugboard: tutti questi elementi insieme, concordati in anticipo, formano la chiave del giorno.

Alice e Bob
A
Alice, operatrice radio, riceve dal libro dei codici del giorno la stessa combinazione di rotori, anelli, posizione iniziale e cavi che userà Bob nella base ricevente.
A
Digita il messaggio lettera per lettera: a ogni tasto premuto una lampadina diversa si accende, e Alice trascrive la sequenza di lettere illuminate.
E
Eve intercetta via radio il messaggio cifrato: senza conoscere l'intera chiave del giorno, il numero di combinazioni da provare è fuori portata anche per un attacco a forza bruta manuale.
B
Bob imposta la sua macchina esattamente come Alice e ridigita il testo cifrato: lettera dopo lettera, riappare il messaggio originale.
La macchina — ricostruzione interattiva

Ricostruzione fedele nella logica e nella disposizione (tastiera QWERTZ tedesca, quadro luminoso, rotori, plugboard): disegnata in SVG/HTML, non fotografata — vedi la nota in fondo alla pagina.

Rotori — scelta, anello e posizione iniziale
Plugboard (Steckerbrett) — fino a 10 coppie
Clicca due lettere per collegarle con un cavo. Clicca una lettera già collegata per scollegarla.
Tastiera e quadro luminoso
1918

Cifrario ADFGVX

Germania, Prima guerra mondiale — sostituzione e trasposizione insieme
ADFGVX·colonnello Fritz Nebel, esercito tedesco, marzo 1918 — violato da Georges Painvin
Come funziona

ADFGVX combina in serie le due grandi famiglie di tecniche classiche. Fase 1 — sostituzione: una griglia 6×6 (26 lettere + 10 cifre) con righe e colonne etichettate dalle sole lettere A, D, F, G, V, X — scelte perché in Morse sono difficilissime da confondere tra loro. Ogni carattere diventa una coppia di queste sei lettere. Fase 2 — trasposizione: le coppie vengono scritte sotto una parola chiave e le colonne rilette in ordine alfabetico della chiave, spezzando ogni coppia e disperdendone le metà.

Il frazionamento più la trasposizione lo resero il cifrario da campo più temibile della Grande Guerra. Il crittoanalista francese Georges Painvin lo violò nel giugno 1918 in condizioni disperate, perdendo — si racconta — 15 chili nello sforzo: la sua decifratura del "Radiogramma della Vittoria" contribuì a fermare l'offensiva tedesca su Parigi.

Il nostro strumento usa la griglia storica del 1918 e una parola chiave a scelta per la trasposizione. Solo lettere e cifre vengono cifrate.

La chiave: nel nostro strumento è la sola parola usata per la trasposizione a colonne (l'ordine con cui vengono rilette) — determina in che sequenza le colonne della griglia intermedia vengono ricomposte in cifrato. Storicamente anche la disposizione della griglia 6×6 faceva parte del segreto condiviso; qui la teniamo fissa per semplicità didattica.

Alice e Bob
A
Alice sostituisce ogni carattere con una coppia di lettere ADFGVX usando la griglia condivisa.
A
Poi scrive le coppie sotto la parola chiave e trasmette le colonne in ordine alfabetico: le metà di ogni coppia finiscono lontane tra loro.
E
Eve intercetta via radio solo sei lettere ripetute: frequenze e coppie sono state disperse dalla trasposizione.
B
Bob ricostruisce le colonne dalla chiave, riunisce le coppie e le riconverte in caratteri con la griglia.
Come funziona — animazione
Fase 1: griglia di sostituzione. Fase 2: trasposizione con parola chiave.
MessaggioChiaveCifrato
Provalo
1977

DES — Data Encryption Standard

Stati Uniti — il primo standard di cifratura digitale del governo USA
DES·IBM (team guidato da Horst Feistel), standardizzato dal NIST/NBS nel 1977
Come funziona

DES è il primo cifrario pensato per i computer a diventare uno standard pubblico. Cifra il messaggio a blocchi di 64 bit usando una chiave di 56 bit effettivi, applicando 16 round identici di una struttura chiamata rete di Feistel: a ogni round il blocco viene diviso in due metà, una metà viene mescolata con una sotto-chiave derivata e il risultato scambiato con l'altra metà. Ripetuto 16 volte con sotto-chiavi diverse, questo processo produce una diffusione tale che cambiare anche un solo bit della chiave o del messaggio stravolge completamente il risultato.

DES fu rivoluzionario ma la sua chiave da 56 bit invecchiò rapidamente: nel 1998 la macchina Deep Crack la rompeva in giorni per forza bruta. Restò comunque lo standard mondiale per oltre vent'anni, e la sua struttura a round ha influenzato quasi ogni cifrario simmetrico successivo.

Per lo strumento qui sotto usiamo la libreria CryptoJS con DES in modalità ECB: la chiave deve avere esattamente 8 caratteri (64 bit, di cui 56 effettivi).

La chiave: è la stringa di 8 caratteri, usata per derivare le 16 sotto-chiavi diverse impiegate in altrettanti round della rete di Feistel — la stessa chiave, applicata in cifratura e decifratura, genera esattamente le stesse sotto-chiavi nello stesso ordine (invertito in decifratura).

Alice e Bob
A
Alice e Bob condividono una chiave di 8 caratteri attraverso un canale sicuro, magari scambiata di persona.
A
Alice cifra il messaggio: il testo viene spezzato in blocchi da 64 bit, ciascuno rimescolato per 16 round.
E
Eve nel 1977 avrebbe dovuto provare fino a 2⁵⁶ chiavi: impensabile all'epoca, ma oggi alla portata di hardware dedicato in poche ore.
B
Bob applica la stessa chiave in modalità di decifratura, percorrendo i 16 round in ordine inverso.
Come funziona — animazione
Una rete di Feistel: le due metà del blocco si scambiano ad ogni round.
MessaggioChiaveCifrato
Provalo
1987

RC4

Stati Uniti — il cifrario a flusso che ha protetto (e tradito) il web
RC4 (Rivest Cipher 4)·Ron Rivest, RSA Security, 1987 — segreto industriale fino alla pubblicazione anonima del 1994
Come funziona

RC4 è un cifrario a flusso: invece di lavorare a blocchi come DES o AES, genera dalla chiave un flusso continuo di byte pseudo-casuali (il keystream) che viene combinato in XOR con il messaggio, byte per byte. Il cuore è un array di 256 byte permutato dalla chiave (fase KSA) e poi rimescolato continuamente durante la generazione (fase PRGA). Poche righe di codice, velocissimo anche su hardware degli anni '90.

Proprio per questa semplicità dominò il web per vent'anni: proteggeva le reti Wi-Fi (WEP) e gran parte del traffico SSL/TLS. Ma il suo keystream ha bias statistici: i primi byte non sono davvero casuali. Questi difetti demolirono WEP nel 2001 e portarono al divieto formale di RC4 in TLS nel 2015 (RFC 7465). Resta un capitolo fondamentale: il cifrario più usato della storia di Internet, e la dimostrazione che "semplice e veloce" non basta.

La chiave: è la passphrase che permuta inizialmente l'array di 256 byte (fase KSA): da quello stato iniziale, diverso per ogni chiave, viene poi generato il flusso di byte pseudo-casuali con cui il messaggio viene combinato in XOR.

Alice e Bob
A
Alice e Bob condividono una passphrase; da essa RC4 genera lo stesso identico flusso di byte pseudo-casuali.
A
Alice combina il messaggio col keystream tramite XOR: ogni byte del testo viene mascherato da un byte del flusso.
E
Eve con abbastanza traffico cifrato con la stessa chiave può sfruttare i bias statistici del flusso — è così che è caduto il Wi-Fi WEP.
B
Bob genera lo stesso flusso e ripete lo XOR: l'operazione è involutiva, e il messaggio riappare.
Come funziona — animazione
Chiave → keystream pseudo-casuale → XOR con il messaggio.
MessaggioChiaveCifrato
Provalo
2001

AES — Advanced Encryption Standard

Belgio/Stati Uniti — lo standard che protegge oggi la maggior parte del traffico cifrato
AES (Rijndael)·Joan Daemen e Vincent Rijmen, selezionato dal NIST nel 2001
Come funziona

Dopo un concorso pubblico internazionale durato cinque anni, il NIST scelse l'algoritmo Rijndael come successore di DES, ribattezzandolo AES. A differenza della rete di Feistel di DES, AES organizza il blocco di 128 bit come una matrice 4×4 di byte e applica per più round quattro trasformazioni: SubBytes (sostituzione non lineare byte per byte), ShiftRows (scorrimento delle righe della matrice), MixColumns (mescolamento algebrico delle colonne) e AddRoundKey (XOR con una sotto-chiave derivata da quella principale). Il numero di round dipende dalla lunghezza della chiave: 10 round per chiavi a 128 bit, 12 per 192, 14 per 256.

Oltre vent'anni dopo la sua adozione, AES non ha subito attacchi pratici che ne minaccino l'uso reale con chiavi a 256 bit: è lo standard con cui oggi si cifrano HTTPS, dischi, messaggi, VPN.

Lo strumento qui sotto usa la Web Crypto API nativa del browser: AES-GCM con chiave a 256 bit derivata dalla tua passphrase tramite SHA-256, e un vettore di inizializzazione casuale ad ogni cifratura (incluso nel risultato, necessario per decifrare).

La chiave: la passphrase scelta viene prima trasformata in una chiave di lunghezza fissa (qui tramite hash), poi usata per derivare una sotto-chiave diversa per ogni round, combinata col blocco nel passo AddRoundKey.

Alice e Bob
A
Alice e Bob condividono una passphrase, magari scambiata tramite uno scambio di chiavi Diffie-Hellman.
A
Alice cifra il messaggio: la matrice di byte viene rimescolata per 14 round, e un codice di autenticazione garantisce che nessuno lo abbia alterato.
E
Eve con la potenza di calcolo oggi disponibile impiegherebbe più tempo dell'età dell'universo per forzare una chiave AES-256 per tentativi.
B
Bob usa la stessa passphrase e il vettore di inizializzazione allegato al messaggio per decifrarlo e verificarne l'integrità.
Come funziona — animazione
SubBytes → ShiftRows → MixColumns → AddRoundKey, ripetuti per più round.
MessaggioChiaveCifrato
Provalo

Algoritmi asimmetrici

Due chiavi diverse: una pubblica, una privata — la fine del problema dello scambio chiavi.

Nella cifratura asimmetrica ognuno possiede una coppia di chiavi matematicamente collegate: una pubblica, che può essere condivisa con chiunque, e una privata, che non lascia mai il proprietario. Quello che una chiave cifra, solo l'altra può decifrare. Per la prima volta nella storia, due persone che non si sono mai incontrate — e che comunicano solo su un canale intercettato da chiunque — possono accordarsi su un segreto condiviso, oppure scambiarsi messaggi cifrati senza aver mai portato una chiave segreta a mano. È l'invenzione, nel 1976, che rende possibile l'e-commerce, l'HTTPS e le firme digitali.

1976

Scambio di chiavi Diffie-Hellman

Stati Uniti — la fine del problema di scambiarsi una chiave segreta
Diffie–Hellman key exchange·Whitfield Diffie e Martin Hellman (con il contributo di Ralph Merkle), 1976
Come funziona

Diffie-Hellman non cifra messaggi: permette a due persone di costruire lo stesso segreto condiviso parlando su un canale pubblico, senza mai trasmettere il segreto stesso. Si basa su un problema matematico facile da fare in un verso e difficile da invertire: l'esponenziazione modulare. Alice e Bob concordano pubblicamente due numeri, un primo p e un generatore g. Ciascuno sceglie in segreto un numero privato, lo usa come esponente di g modulo p, e si scambia solo il risultato — mai l'esponente segreto.

La classica analogia è quella dei colori: Alice e Bob condividono pubblicamente un colore di base (giallo). Ognuno aggiunge in segreto un proprio colore personale e manda all'altro la miscela risultante — impossibile da "smiscelare" per un osservatore. Ricevuta la miscela dell'altro, ciascuno vi aggiunge di nuovo il proprio colore segreto: il risultato finale è identico per entrambi, ma nessuno che abbia visto solo le miscele scambiate può ricostruirlo.

Il segreto condiviso ottenuto non si usa per cifrare direttamente: diventa tipicamente la chiave di un cifrario simmetrico come AES per il resto della comunicazione.

La chiave: qui non c'è una sola chiave ma due esponenti privati, uno per parte (nell'animazione, i “segreti” di Alice e Bob): ciascuno resta sempre solo presso il proprio proprietario, e serve da esponente nell'elevazione a potenza modulare.

Alice e Bob
A
Alice e Bob concordano pubblicamente un numero primo p e un generatore g — non serve che siano segreti.
A
Alice sceglie un numero segreto a, calcola g^a mod p, e manda il risultato a Bob in chiaro.
B
Bob sceglie un numero segreto b, calcola g^b mod p, e lo manda ad Alice, sempre in chiaro.
E
Eve vede p, g e i due valori scambiati, ma calcolare a o b da questi (il "logaritmo discreto") è computazionalmente proibitivo per numeri abbastanza grandi.
A
Alice eleva il valore ricevuto da Bob alla propria a; Bob eleva il valore di Alice alla propria b. Per le proprietà dell'esponenziazione modulare, ottengono lo stesso identico numero: il segreto condiviso.
Come funziona — animazione
L'analogia dei colori: due miscele diverse, un solo colore finale condiviso.
Segreto di AliceSegreto di BobChiave condivisa
Provalo — calcola lo scambio di chiavi
1977

RSA

Stati Uniti — la prima vera cifratura a chiave pubblica
RSA·Ron Rivest, Adi Shamir, Leonard Adleman, 1977
Come funziona

RSA sfrutta un'asimmetria matematica: moltiplicare due numeri primi grandi è facile, ma fattorizzare il loro prodotto è difficilissimo. Si scelgono due primi segreti p e q, si calcola il loro prodotto n = p×q (che diventa pubblico) e la funzione di Eulero φ(n). Si sceglie un esponente pubblico e coprimo con φ(n), e si calcola il suo inverso modulare d, che resta segreto. La coppia (n, e) è la chiave pubblica; d è la chiave privata.

Per cifrare un messaggio (rappresentato come numero m minore di n) si calcola c = m^e mod n. Per decifrare, si calcola c^d mod n, che restituisce esattamente m: una proprietà garantita dal piccolo teorema di Fermat e dal teorema cinese del resto. Chiunque può cifrare con la chiave pubblica, ma solo chi possiede d può decifrare.

Nella realtà p e q hanno centinaia di cifre. Qui, per restare comprensibile, usiamo numeri primi piccoli: le chiavi generate non sono sicure, servono solo a mostrare la matematica in azione.

La chiave: in realtà sono due, generate insieme dalla stessa coppia di primi — la pubblica (n, e), che chiunque può usare per cifrare, e la privata d, che serve solo per decifrare e va tenuta segreta.

Alice e Bob
B
Bob genera una coppia di chiavi e pubblica la sua chiave pubblica (n, e) in un elenco che chiunque può consultare — anche Eve.
A
Alice, che non ha mai incontrato Bob, prende la sua chiave pubblica e la usa per cifrare un messaggio destinato solo a lui.
E
Eve può leggere (n, e) e il testo cifrato quanto vuole: senza i fattori primi p e q, non può ricostruire d.
B
Bob è l'unico a possedere la chiave privata d, l'unica che può invertire la cifratura.
Come funziona — animazione
Lucchetto pubblico: chiunque lo chiude, solo Bob ha la chiave per aprirlo.
MessaggioChiave pubblica (n,e)Cifrato
Provalo
1985

ElGamal

Stati Uniti/Egitto — la cifratura costruita sopra Diffie-Hellman
Crittosistema di ElGamal·Taher Elgamal, 1985
Come funziona

Diffie-Hellman produce una chiave condivisa ma non cifra messaggi; nel 1985 Taher Elgamal mostrò come trasformarlo in un vero crittosistema a chiave pubblica. Bob pubblica (p, g, y) dove y = g^x mod p, tenendo segreto x. Per cifrare, Alice sceglie un numero effimero casuale k e invia la coppia: c₁ = g^k mod p e c₂ = m·y^k mod p. In pratica esegue un mini scambio Diffie-Hellman "al volo" e usa il segreto risultante per mascherare il messaggio.

Bob calcola s = c₁^x mod p — lo stesso segreto, ottenuto dall'altra sponda — e recupera m = c₂·s⁻¹ mod p. Una caratteristica distintiva: la cifratura è probabilistica (il k casuale cambia ogni volta), quindi lo stesso messaggio produce cifrati sempre diversi. ElGamal è alla base delle firme DSA e vive ancora oggi dentro GnuPG/OpenPGP.

Come per RSA, qui usiamo numeri piccoli a scopo didattico: p=467, g=2. Le chiavi generate non offrono alcuna sicurezza reale.

La chiave: Bob ha una coppia — il numero privato x, mai condiviso, e il valore pubblico y = g^x mod p derivato da esso; Alice non ha una propria chiave fissa, ma genera un numero effimero k diverso a ogni cifratura.

Alice e Bob
B
Bob sceglie il segreto x, calcola y = g^x mod p e pubblica (p, g, y).
A
Alice genera un k casuale nuovo per ogni messaggio e invia la coppia (c₁, c₂): stesso messaggio, cifrato sempre diverso.
E
Eve vede c₁ e c₂ ma per ricavare il segreto dovrebbe risolvere il logaritmo discreto — lo stesso muro di Diffie-Hellman.
B
Bob usa il suo x su c₁ per ricostruire il segreto effimero e "smaschera" c₂.
Come funziona — animazione
Un mini Diffie-Hellman effimero per ogni messaggio.
Messaggio (m)Chiave pubblica (p,g,y)Cifrato (c₁,c₂)
Provalo
1991

PGP

Stati Uniti — «Pretty Good Privacy»: la crittografia forte per tutti
PGP — Pretty Good Privacy·Phil Zimmermann, 1991
Come funziona

PGP non è un nuovo algoritmo ma un'architettura ibrida che combina il meglio dei due mondi: per ogni messaggio genera una chiave di sessione simmetrica casuale (veloce, adatta a messaggi lunghi), cifra il messaggio con quella, e poi cifra la sola chiave di sessione con la chiave pubblica RSA del destinatario. Il pacchetto inviato contiene entrambe le parti: la busta grande (simmetrica) e la chiavetta chiusa nel lucchetto pubblico.

La sua storia è leggendaria: Zimmermann lo pubblicò gratuitamente nel 1991 e finì sotto indagine federale per "esportazione di munizioni senza licenza" — la crittografia forte era classificata come arma. Per aggirare il divieto, il codice sorgente fu stampato come libro, protetto dal Primo emendamento. L'indagine fu archiviata nel 1996 e PGP divenne lo standard OpenPGP (RFC 4880), tuttora alla base della posta cifrata.

Lo strumento qui sotto riproduce fedelmente l'architettura ibrida in miniatura: chiave di sessione casuale, dati cifrati con AES-GCM reale, chiave di sessione protetta con RSA didattico. Cifra e decifra con lo stesso preset di chiavi.

La chiave: qui ce ne sono due di natura diversa — una chiave di sessione simmetrica, generata a caso per ogni messaggio e usata per la busta veloce, e la chiave pubblica RSA del destinatario, usata solo per proteggere quella chiave di sessione.

Alice e Bob
A
Alice genera una chiave di sessione casuale, usa e getta, e con quella cifra il messaggio (parte simmetrica, veloce).
A
Poi chiude la chiave di sessione nel lucchetto pubblico di Bob (parte asimmetrica) e invia il pacchetto completo.
E
Eve intercetta il pacchetto: senza la chiave privata di Bob non può aprire la chiavetta, e senza la chiavetta non può aprire la busta.
B
Bob apre prima la chiavetta con la sua chiave privata, poi con quella apre la busta e legge il messaggio.
Come funziona — animazione
Cifratura ibrida: busta simmetrica + chiavetta chiusa nel lucchetto pubblico.
MessaggioChiaviPacchetto
Provalo
1999

GPG (GnuPG)

Germania — l'implementazione libera di OpenPGP e la firma digitale
GNU Privacy Guard·Werner Koch, versione 1.0 nel 1999
Come funziona

GnuPG è l'implementazione libera e gratuita dello standard OpenPGP nato da PGP: stessa architettura ibrida, ma senza algoritmi brevettati e con codice sorgente aperto e verificabile da chiunque. Scritto dal tedesco Werner Koch e sostenuto dal progetto GNU, è diventato l'infrastruttura invisibile della fiducia digitale: firma i pacchetti delle distribuzioni Linux, autentica gli aggiornamenti software, e nel 2013 era lo strumento con cui Edward Snowden comunicava coi giornalisti.

Qui mostriamo l'altra metà della crittografia asimmetrica, complementare alla cifratura: la firma digitale. Si calcola l'impronta (hash) del messaggio e la si "cifra" con la chiave privata; chiunque può verificarla con la chiave pubblica. Se il messaggio cambia anche di una virgola, l'impronta non corrisponde più: la firma garantisce autenticità, integrità e non ripudio — senza nascondere nulla.

Lo strumento firma con SHA-256 + RSA didattico: l'impronta viene ridotta modulo n, poi elevata alla chiave privata d. La verifica la eleva alla chiave pubblica e confronta.

La chiave: per firmare si usa la chiave privata del firmatario (elevando l'impronta alla d); per verificare chiunque usa invece la sua chiave pubblica (elevando la firma alla e) — sono la stessa coppia RSA, usata nei due versi opposti rispetto alla cifratura.

Alice e Bob
A
Alice calcola l'hash del contratto e lo firma con la propria chiave privata — l'unica cosa che solo lei possiede.
B
Bob (e chiunque altro) verifica con la chiave pubblica di Alice: ricalcola l'hash e controlla che la firma vi corrisponda.
E
Eve può leggere tutto — la firma non nasconde — ma se altera il contratto la verifica fallisce, e non può firmare al posto di Alice.
Come funziona — animazione
Firma con la chiave privata, verifica con quella pubblica.
MessaggioChiave privata (d)Firma
Provalo

Hashing

Non è cifratura: è un'impronta digitale del messaggio, a senso unico e non invertibile.

Le funzioni di hashing non nascondono un messaggio nel senso classico: lo trasformano in un'impronta di lunghezza fissa (il "digest"), da cui è — nelle intenzioni del progettista — impossibile risalire al messaggio originale. Non esiste una "chiave" da condividere e non esiste decifratura: la stessa entrata produce sempre la stessa impronta, entrate anche minimamente diverse producono impronte completamente diverse (l'effetto valanga), e trovare due entrate diverse con la stessa impronta (una "collisione") deve essere quasi impossibile. Per questo l'hashing non serve a tenere un segreto tra due persone, ma a verificare che un messaggio, un file o una password non siano stati alterati — il concetto di "nascondere" qui riguarda l'irreversibilità, non la segretezza.

1991

MD5 — Message Digest 5

Stati Uniti — l'hash più diffuso della storia, oggi da evitare
MD5·Ron Rivest, 1991
Come funziona

MD5 elabora il messaggio in blocchi di 512 bit e produce sempre un'impronta di 128 bit (32 caratteri esadecimali), indipendentemente dal fatto che l'entrata sia una parola o un intero libro. Applica una serie di operazioni bit a bit (rotazioni, XOR, somme modulari) ripetute in 64 passi, mescolando ogni blocco con lo stato risultante dal blocco precedente.

Fu per anni lo standard per firme, checksum di file e — purtroppo — memorizzazione di password. Nel 2004 furono trovate collisioni pratiche (due entrate diverse con lo stesso hash), rendendolo non sicuro per qualsiasi uso crittografico serio. Resta comune solo per verifiche di integrità non critiche, come controllare che un file scaricato non sia corrotto.

Incluso in questo dossier per il suo valore storico, non come raccomandazione d'uso: per l'hashing sicuro oggi si usano SHA-256 o superiori.

La chiave: MD5 non ne usa alcuna — è una funzione hash, non un cifrario: lo stesso messaggio produce sempre la stessa impronta, per chiunque la calcoli, senza alcun segreto condiviso.

Alice e Bob
A
Alice pubblica un file insieme alla sua impronta MD5, calcolata una volta sola.
B
Bob scarica il file, calcola lui stesso l'MD5 e lo confronta: se combaciano, il file non è stato alterato in transito (per errore).
E
Eve, oggi, potrebbe costruire deliberatamente un file diverso con lo stesso identico MD5 di quello di Alice: è per questo che MD5 non basta più contro un avversario attivo.
Come funziona — animazione
Un messaggio di qualsiasi lunghezza si comprime in un'impronta a lunghezza fissa: non c'è via di ritorno.
MessaggioImpronta MD5
Provalo
1995

SHA-1

Stati Uniti — l'hash che ha retto il web per vent'anni, rotto nel 2017
SHA-1 — Secure Hash Algorithm 1·NSA / NIST, FIPS 180-1, 1995
Come funziona

Progettato dalla NSA come evoluzione di MD5, SHA-1 produce un'impronta di 160 bit (40 caratteri esadecimali) elaborando il messaggio in blocchi di 512 bit attraverso 80 round di operazioni bit a bit. Per due decenni è stato lo standard di fatto del web: firmava i certificati TLS dei siti HTTPS, identificava i commit di Git, autenticava firme digitali di ogni tipo.

Nel 2005 la crittografa cinese Xiaoyun Wang mostrò i primi attacchi teorici; nel febbraio 2017 Google e CWI Amsterdam annunciarono SHAttered: due file PDF diversi con lo stesso identico SHA-1, prodotti con circa 9 quintilioni di calcoli. Da quel momento SHA-1 è formalmente deprecato per ogni uso di sicurezza — la sua storia è la dimostrazione pratica che le funzioni hash invecchiano, e che la migrazione va pianificata prima della rottura.

La chiave: come MD5, anche SHA-1 non usa alcuna chiave — è una funzione hash pubblica: la sicurezza sta nella difficoltà di trovare collisioni, non nel nascondere un segreto.

Alice e Bob
A
Alice pubblica un software firmando ogni versione con il suo SHA-1.
B
Bob scarica e verifica: per anni, impronte uguali hanno significato file identici.
E
Eve, dopo il 2017, può costruire deliberatamente due file diversi con lo stesso SHA-1 — per esempio un contratto innocuo e uno truffaldino che condividono la firma.
Come funziona — animazione
SHAttered (2017): due documenti diversi, la stessa identica impronta.
MessaggioChiaveImpronta
Provalo
1996

HMAC

Un'impronta con la chiave: autenticare, non solo verificare
HMAC — Hash-based Message Authentication Code·Mihir Bellare, Ran Canetti, Hugo Krawczyk, 1996 — RFC 2104 (1997)
Come funziona

Un hash normale prova che un messaggio non è cambiato — ma chiunque può ricalcolarlo, quindi non prova chi lo ha scritto. HMAC risolve il problema mescolando all'impronta una chiave segreta, con una costruzione a doppio passaggio: HMAC(K, m) = H( (K⊕opad) ∥ H( (K⊕ipad) ∥ m ) ). La chiave, combinata con due costanti di riempimento (ipad e opad), entra sia nell'hash interno sia in quello esterno.

Solo chi possiede K può generare o verificare il codice: HMAC garantisce insieme integrità e autenticità. Il doppio passaggio non è un vezzo — blocca l'attacco "length extension" a cui un ingenuo H(chiave∥messaggio) sarebbe vulnerabile. Oggi HMAC firma i token JWT, autentica i webhook, protegge le sessioni TLS: è ovunque due sistemi debbano fidarsi di un messaggio in transito.

La chiave: è il segreto condiviso K, che entra due volte nel calcolo — combinato con ipad prima dell'hash interno, e con opad prima dell'hash esterno: senza la stessa identica chiave non si può né generare né verificare il codice.

Alice e Bob
A
Alice e Bob condividono una chiave segreta K.
A
Alice invia il messaggio in chiaro accompagnato dal suo HMAC: non vuole nasconderlo, vuole autenticarlo.
E
Eve può leggere e persino modificare il messaggio — ma senza K non può ricalcolare l'HMAC corretto, e Bob se ne accorgerebbe subito.
B
Bob ricalcola l'HMAC con la sua copia di K: se coincide, il messaggio è integro e viene davvero da Alice.
Come funziona — animazione
Due passaggi di hash, con la chiave mescolata in entrambi.
MessaggioChiaveHMAC
Provalo
2001

SHA-256

Stati Uniti — l'hash che regge blockchain, certificati e password moderne
SHA-256 (famiglia SHA-2)·National Security Agency / NIST, pubblicato nel 2001
Come funziona

SHA-256 segue la stessa filosofia di MD5 — comprimere blocchi di dati in un'impronta fissa attraverso molti round di mescolamento bit a bit — ma con un'impronta più lunga (256 bit, 64 caratteri esadecimali), 64 round invece di 64 passi più semplici, e una costruzione interna (Merkle–Damgård con funzioni di compressione più robuste) che ad oggi non ha collisioni note.

È lo hash alla base della blockchain di Bitcoin, dei certificati TLS che proteggono i siti HTTPS, e — combinato con tecniche di "salting" — della memorizzazione sicura delle password. Anche cambiando un singolo carattere del messaggio, l'impronta risultante cambia in modo completamente imprevedibile: è l'effetto valanga che rende l'hashing utile per rilevare qualunque alterazione, anche minima.

La chiave: SHA-256 non ne usa alcuna — è una funzione hash pubblica come MD5 e SHA-1: la stessa entrata produce sempre la stessa impronta, per chiunque la calcoli.

Alice e Bob
A
Alice non salva mai le password in chiaro: salva solo lo SHA-256 (con salt) della password di ogni utente.
B
Bob, per accedere, invia la password; il server ricalcola l'hash e lo confronta con quello salvato, senza mai conoscere la password vera.
E
Eve, anche rubando il database degli hash, non può risalire alle password originali — può solo tentare di indovinarle e verificarne l'hash, un processo molto più lento.
Come funziona — animazione
L'effetto valanga: due messaggi quasi identici producono impronte completamente diverse.
Messaggio AMessaggio BImpronte
Provalo

Steganografia

Non si nasconde il contenuto del messaggio: si nasconde il fatto stesso che un messaggio esista.

La steganografia ("scrittura nascosta", dal greco) prende una strada diversa da tutti gli altri algoritmi di questo dossier: invece di rendere un messaggio illeggibile a chi non ha la chiave, lo occulta dentro un altro contenuto innocuo, in modo che un osservatore non sospetti nemmeno che ci sia un segreto da cercare. Un cifrario ben fatto grida "sono un messaggio segreto, provate a rompermi"; un messaggio steganografato ben fatto passa inosservato. Le due tecniche sono complementari, non alternative: i messaggi più protetti della storia sono spesso stati prima cifrati e poi nascosti.

Antichità

Steganografia classica

Grecia/Roma antiche — tavolette di cera, teste tatuate, inchiostri invisibili
Steganografia classica·documentata da Erodoto, V secolo a.C. — tecniche in uso fino all'epoca moderna
Come funziona

Erodoto racconta due episodi spesso citati come i primi esempi noti di steganografia. Il primo: uno schiavo si fa tatuare un messaggio sul cuoio capelluto rasato, aspetta che i capelli ricrescano e nascondano il tatuaggio, poi viaggia fino a destinazione dove i capelli vengono rasati di nuovo per rivelare il messaggio. Il secondo: un messaggio viene inciso su una tavoletta di legno, poi ricoperta di cera vergine e apparentemente vuota — un oggetto innocuo che passa i controlli.

Un'altra famiglia di tecniche storiche usa l'inchiostro simpatico (succo di limone, latte, soluzioni chimiche) che diventa invisibile una volta asciutto e riappare solo se scaldato o trattato con un reagente. Una variante testuale è il cifrario nullo (o acrostico): il messaggio segreto è nascosto prendendo, per esempio, solo la prima lettera di ogni parola di un testo dall'aspetto innocente — è la tecnica che riproponiamo nello strumento interattivo qui sotto.

La chiave: non c'è una chiave in senso crittografico — il “segreto” è la convenzione concordata in anticipo tra mittente e destinatario su dove guardare (ad esempio, le iniziali di ogni parola): chiunque altro legge solo un testo innocuo.

Alice e Bob
A
Alice scrive una lettera dal contenuto banale — gli auguri per una festa, una lista della spesa — ma la prima lettera di ogni parola, letta in sequenza, forma il vero messaggio.
E
Eve, il censore, legge la lettera e non trova nulla di sospetto: il contenuto apparente ha perfettamente senso.
B
Bob, sapendo dove guardare, prende l'iniziale di ogni parola e ricostruisce il messaggio nascosto.
Come funziona — animazione
Una lettera innocente nasconde un messaggio nelle iniziali delle parole.
Messaggio segretoTesto di copertura
Provalo — cifrario nullo (acrostico)
Anni '90

Steganografia digitale — LSB

Un messaggio nascosto nei bit meno significativi dei pixel di un'immagine
LSB — Least Significant Bit·tecnica diffusa dagli anni '90 del '900 con la crescita delle immagini digitali
Come funziona

Ogni pixel di un'immagine digitale è descritto da tre valori (rosso, verde, blu), ciascuno tipicamente un numero da 0 a 255 — 8 bit. Cambiare l'ultimo bit di questo numero (il "bit meno significativo") altera il valore al massimo di 1 su 255: un cambiamento impercettibile all'occhio umano. La tecnica LSB sostituisce sistematicamente l'ultimo bit di ogni canale colore con un bit del messaggio segreto da nascondere: bit dopo bit, pixel dopo pixel, il messaggio si "scrive" dentro l'immagine senza alterarne visibilmente l'aspetto.

Chi conosce la tecnica (e, spesso, quanti bit leggere) può ricostruire il messaggio rileggendo gli ultimi bit di ogni pixel nello stesso ordine. È una tecnica fragile: comprimere l'immagine (JPEG), ridimensionarla o convertirla di formato distrugge quasi sempre il messaggio nascosto, perché altera proprio quei bit meno significativi in cui è scritto.

Prova qui sotto generando un'immagine, oppure caricandone una tua: il messaggio viene scritto nei bit meno significativi dei suoi pixel.

La chiave: non è richiesta alcuna chiave crittografica in senso stretto — il “segreto” è sapere che il messaggio è nascosto negli ultimi bit e in che ordine leggerli; strumenti più avanzati aggiungono anche una vera cifratura del messaggio prima di nasconderlo.

Alice e Bob
A
Alice nasconde un messaggio negli ultimi bit dei pixel di una foto delle vacanze, visivamente identica all'originale, e la pubblica online.
E
Eve vede migliaia di foto di vacanze online ogni giorno: senza sapere quale contiene un messaggio, e senza uno strumento di analisi statistica dedicato, non ha motivo di sospettare proprio di questa.
B
Bob scarica la stessa foto e, sapendo dove e come guardare, estrae bit per bit il messaggio nascosto.
Come funziona — animazione
Zoom su un pixel: solo l'ultimo bit di ogni canale colore cambia.
MessaggioBit modificato
Provalo

Alfabeti di comunicazione

Non nascondono nulla: rappresentano le lettere in forme adatte a canali e scopi diversi.

Questi non sono cifrari: nessuno di questi alfabeti vuole tenere un segreto. Sono modi alternativi di rappresentare le lettere, nati ciascuno per uno scopo preciso: leggere con le dita quando gli occhi non possono (Braille), trasmettere lungo un filo elettrico (Morse) o con cinque bit (Baudot), farsi vedere a distanza (semaforico), farsi capire in una linea disturbata (fonetici). Compaiono in questo dossier perché condividono con la crittografia il gesto fondamentale — trasformare un messaggio secondo una tabella condivisa — ma con l'obiettivo opposto: massimizzare la comprensione invece di negarla. Conoscerli aiuta anche a non confonderli con le cifrature: un testo in Morse sembra segreto, ma la sua "chiave" è pubblica da due secoli.

1829

Linguaggio Braille

Francia — leggere con le dita: sei punti per ogni lettera
Braille·Louis Braille, 1829 — perfezionato nel 1837
Come funziona

Louis Braille, cieco dall'età di tre anni, aveva quindici anni quando ideò il suo sistema partendo dalla "scrittura notturna" di Charles Barbier, un codice militare per leggere ordini al buio. Ogni carattere è una cella di sei punti in rilievo, disposti in una griglia 2×3: 64 combinazioni possibili, sufficienti per lettere, numeri, punteggiatura e persino notazione musicale e matematica.

Il sistema è progettato per il tatto: la cella ha esattamente la dimensione di un polpastrello, e le lettere più frequenti usano meno punti. Non è una cifratura — non nasconde nulla — ma è la dimostrazione più bella che la stessa informazione può viaggiare su canali sensoriali diversi: dalla vista al tatto, senza perdere niente.

Qui usiamo i caratteri Braille Unicode (⠁⠃⠉…): sullo schermo sono visibili, sulla carta andrebbero stampati in rilievo.

La chiave: nessuna — la corrispondenza tra lettere e celle a sei punti è uno standard pubblico e internazionale, pensato per essere conosciuto da chiunque, non per restare segreto.

Provalo
1838

Codice Morse

Stati Uniti — punti e linee lungo il filo del telegrafo
Codice Morse·Samuel Morse e Alfred Vail, 1838 — versione internazionale nel 1865
Come funziona

Nato per il telegrafo elettrico, il Morse rappresenta ogni lettera con una sequenza di impulsi brevi (punti) e lunghi (linee). L'intuizione geniale di Vail fu statistica: analizzò le cassette dei caratteri di una tipografia per stimare la frequenza delle lettere, e assegnò i codici più corti alle più comuni — la E è un solo punto, la T una sola linea. Un secolo prima della teoria dell'informazione di Shannon, il Morse era già un codice a lunghezza variabile ottimizzato.

Ha attraversato telegrafo, radio e marina per oltre 150 anni; il segnale di soccorso SOS (· · · — — — · · ·) fu scelto proprio perché inconfondibile. Non nasconde nulla — chiunque con una tabella lo decodifica — ma resta l'antenato di ogni codifica digitale: informazione trasformata in impulsi.

La chiave: nessuna — la tabella punti/linee è pubblica e universale fin dall'Ottocento: la comprensione dipende solo dal conoscere il codice, non da un segreto condiviso.

Provalo
1866

Alfabeto semaforico

Marina — comunicare a distanza con due bandierine
Alfabeto semaforico a bandiere·standardizzato in ambito navale nella seconda metà dell'800 (sistema derivato dal telegrafo ottico di Chappe, 1794)
Come funziona

Il segnalatore impugna due bandierine e compone ogni lettera con una combinazione di posizioni delle braccia, come le lancette di un orologio: otto direzioni possibili per braccio. Il sistema discende dai telegrafi ottici di fine Settecento — torri con bracci meccanici che rimbalzavano messaggi attraverso la Francia di Chappe — miniaturizzato in un corpo umano.

In mare è sopravvissuto a telegrafo e radio perché non richiede alcuna tecnologia: funziona finché c'è luce e linea di vista, ed è immune a guasti e intercettazioni radio. Curiosità pop: il simbolo della pace ☮ disegnato nel 1958 sovrappone le lettere semaforiche N e D, iniziali di "Nuclear Disarmament".

Il nostro strumento descrive le posizioni delle braccia in notazione a ore di orologio (es. "sinistro a ore 6, destro a ore 4:30"). La decodifica accetta lo stesso formato.

La chiave: nessuna — le posizioni delle braccia per ogni lettera sono uno standard pubblico e condiviso da chiunque operi in mare, pensato apposta per essere universalmente comprensibile.

Provalo
1874

Codice Baudot

Francia — 5 bit per lettera: l'antenato diretto dell'ASCII
Codice Baudot / ITA2·Émile Baudot, 1874 — standardizzato come ITA2 nel 1924
Come funziona

Baudot progettò per le telescriventi il primo codice a lunghezza fissa: ogni carattere è esattamente 5 bit, battuti simultaneamente su una tastiera a cinque tasti come un accordo di pianoforte. Con 5 bit si rappresentano solo 32 simboli, troppo pochi per lettere e cifre insieme: due caratteri speciali di controllo (LTRS e FIGS) commutano l'intera tastiera tra il registro lettere e il registro cifre/simboli — lo stesso trucco del tasto Shift.

La versione standardizzata ITA2 (1924) ha dominato telex e telescriventi per mezzo secolo, e la velocità di trasmissione si misura ancora oggi in baud, in suo onore. È l'anello di congiunzione tra Morse e ASCII — e non a caso il cifrario di Vernam nacque proprio per cifrare il Baudot, applicando lo XOR sui suoi 5 bit.

La chiave: nessuna — la tabella a 5 bit per carattere è uno standard tecnico pubblico (poi ITA2), non un segreto: qualunque telescrivente compatibile la conosce.

Provalo
~anni '20

Alfabeto fonetico italiano

Italia — «A come Ancona»: compitare al telefono senza errori
Alfabeto telefonico italiano·diffuso con la telefonia nei primi decenni del '900
Come funziona

Su una linea telefonica disturbata, B, C, D, E, G, P, T e V suonano quasi identiche. La soluzione, nata spontaneamente con la diffusione del telefono, è sostituire ogni lettera con una parola che inizia per quella lettera — in Italia, tradizionalmente nomi di città: Ancona, Bologna, Como, Domodossola… Le parole si distinguono anche in mezzo al rumore, perché il cervello riconosce l'intera parola e non deve isolare un singolo fonema.

Per le lettere straniere si ricorre a nomi comuni o esteri (Hotel, Jolly, Kursaal, Washington, York). È il fratello "domestico" dell'alfabeto NATO: stesso principio, ma cresciuto dal basso, con varianti regionali (Bari o Bologna? Padova o Palermo?) che ne raccontano l'origine popolare.

La chiave: nessuna — l'associazione lettera→città è una convenzione pubblica diffusa per uso comune, pensata per farsi capire meglio al telefono, non per nascondere nulla.

Provalo
1956

Alfabeto fonetico NATO

Internazionale — Alfa, Bravo, Charlie: lo standard mondiale della radio
Alfabeto fonetico ICAO/NATO·sviluppato dall'ICAO nel 1951, adottato dalla NATO nel 1956
Come funziona

Dopo che la Seconda guerra mondiale aveva mostrato il caos di alfabeti radio incompatibili tra alleati (Able-Baker americano, altre varianti britanniche), l'ICAO commissionò studi linguistici per trovare 26 parole comprensibili da parlanti di qualsiasi lingua, anche su canali disturbati. Ogni candidata fu testata in condizioni di rumore reale; il risultato del 1956 — Alfa, Bravo, Charlie, Delta… — è ancora oggi lo standard di aviazione, marina, forze armate e soccorso di tutto il mondo.

Anche le grafie sono calcolate: Alfa con la F (non "Alpha") e Juliett con doppia T, perché francesi e altri parlanti non anglofoni le pronuncino correttamente. Non nasconde nulla: al contrario, è progettato per massimizzare la comprensione — l'esatto opposto di una cifratura, con cui condivide però l'idea di trasformare le lettere secondo una tabella condivisa.

La chiave: nessuna — la tavola Alfa-Bravo-Charlie è uno standard internazionale pubblico, scelto apposta per essere riconoscibile da chiunque parli qualsiasi lingua.

Provalo

Encoding e escaping

Trasformazioni tecniche reversibili da chiunque: trasportano i dati, non li proteggono.

Codificare non è cifrare. Un encoding trasforma i dati in una forma adatta a un canale o a un contesto — testo in bit, byte in caratteri stampabili, simboli pericolosi in equivalenti inerti — seguendo regole pubbliche e senza alcuna chiave: chiunque può invertirlo. L'escaping è il caso particolare in cui si "disinnescano" caratteri che verrebbero interpretati invece che mostrati. Questa famiglia chiude il dossier con un avvertimento pratico: confondere encoding e cifratura è uno degli errori di sicurezza più comuni — un dato in Base64 sembra protetto, ma è solo vestito in modo diverso.

1963

Binary encoding (ASCII)

Stati Uniti — ogni carattere diventa una sequenza di bit
ASCII — American Standard Code for Information Interchange·comitato ASA X3.4, 1963
Come funziona

Un computer conosce solo bit; per fargli maneggiare del testo serve una tabella che assegni a ogni carattere un numero. Lo standard ASCII del 1963 fissò quella tabella: 7 bit per carattere, 128 simboli — lettere, cifre, punteggiatura e caratteri di controllo ereditati dalle telescriventi. La "A" maiuscola è il numero 65, cioè 01000001 in binario.

Rappresentare un testo come sequenza di bit non lo nasconde in alcun modo: la tabella è pubblica e la conversione è meccanica in entrambe le direzioni. Oggi ASCII vive come sottoinsieme di UTF-8, che estende lo stesso principio a oltre un milione di caratteri di tutte le scritture del mondo — il nostro strumento usa proprio UTF-8, quindi funziona anche con accenti ed emoji.

La chiave: nessuna — la tabella dei codici (ASCII/UTF-8) è uno standard tecnico pubblico e universale: la conversione è meccanica e reversibile da chiunque, senza alcun segreto.

Provalo
1964

Esadecimale

Stati Uniti — i byte in forma leggibile: due cifre per byte
Notazione esadecimale·resa standard dall'IBM System/360, 1964
Come funziona

Il binario è ciò che la macchina capisce, ma per un occhio umano 01001000 01101001 è illeggibile. La notazione esadecimale (base 16, cifre 0–9 e A–F) comprime ogni byte in esattamente due caratteri: 01001000 diventa 48. La corrispondenza è perfetta perché 16 = 2⁴: ogni cifra esadecimale rappresenta esattamente quattro bit, senza resti né ambiguità.

Fu l'IBM System/360 del 1964 a imporla come convenzione universale dei programmatori. Oggi la incontri ovunque i byte debbano essere mostrati a un umano: i colori CSS (#c69447), gli indirizzi MAC, i dump di memoria — e le impronte hash di questo stesso dossier, che sono proprio byte scritti in esadecimale.

La chiave: nessuna — la corrispondenza tra byte e cifre esadecimali è una convenzione tecnica pubblica: due cifre per byte, sempre le stesse per chiunque la usi.

Provalo
1987

Base64

Internet — far viaggiare dati binari su canali fatti per il testo
Base64·RFC 989 (Privacy-Enhanced Mail), 1987 — poi standard MIME
Come funziona

I primi sistemi email trasportavano solo testo a 7 bit: allegare un'immagine o un file binario li mandava in tilt. Base64 risolve il problema riscrivendo qualunque sequenza di byte usando solo 64 caratteri "sicuri" (A–Z, a–z, 0–9, + e /): prende i dati 3 byte alla volta (24 bit) e li spezza in 4 gruppi da 6 bit, ognuno mappato su un carattere. Il segno = finale è solo riempimento quando i byte non sono multipli di 3.

Il costo è un +33% di dimensione; il beneficio è l'universalità: allegati email, immagini incorporate nelle pagine web (data URI), token JWT. Attenzione all'equivoco più diffuso della sicurezza informatica: Base64 sembra cifrato perché illeggibile, ma non ha chiave e chiunque lo inverte in un millisecondo. Codificare non è cifrare — e questa pagina esiste anche per questo.

La chiave: nessuna — l'alfabeto dei 64 caratteri usati è fissato dallo standard: chiunque conosca la tabella (pubblica) può invertire la codifica all'istante.

Provalo
~1993

HTML escaping

Web — proteggere i caratteri che il browser interpreterebbe
Entità HTML·parte dell'HTML fin dalle prime bozze IETF, ~1993
Come funziona

In una pagina web, i caratteri < e & non sono testo qualunque: aprono tag e entità, e il browser li interpreta. Per mostrarli letteralmente bisogna "scappare" (escape) verso una rappresentazione alternativa: &lt; per <, &amp; per &, &quot; per le virgolette.

Non è pedanteria: è la prima linea di difesa contro gli attacchi XSS (Cross-Site Scripting). Se un sito mostra testo scritto dagli utenti senza escaping, un utente ostile può inserire <script> e far eseguire il proprio codice nel browser delle vittime. L'escaping trasforma il codice ostile in testo inerte: come le cifrature nascondono il contenuto, l'escaping ne disinnesca il significato.

La chiave: nessuna — la tabella di corrispondenza tra caratteri speciali ed entità (come &lt; per <) è parte dello standard HTML, pubblica e identica ovunque.

Provalo
1994

URL encoding

Web — spazi e caratteri speciali in forma %XX per gli indirizzi
Percent-encoding·RFC 1738 (Uniform Resource Locators), 1994
Come funziona

Un URL può contenere solo un ripertorio ristretto di caratteri: niente spazi, niente accenti, e simboli come ? & / # hanno significati strutturali riservati. Il percent-encoding rappresenta ogni carattere "proibito" con % seguito dal valore esadecimale dei suoi byte: lo spazio diventa %20, la è diventa %C3%A8 (i suoi due byte UTF-8).

È il motivo per cui i link che condividi sono pieni di %: è l'encoding che permette a qualsiasi testo — una ricerca, un nome file, un parametro — di viaggiare dentro un indirizzo web senza romperne la struttura. Come tutti gli encoding, è pubblico, senza chiave, e perfettamente reversibile: trasporta, non protegge.

La chiave: nessuna — la codifica percent-encoding segue una regola fissa e pubblica (RFC): ogni byte proibito diventa % seguito dal suo valore esadecimale, sempre allo stesso modo.

Provalo