Nella storia della crittografia il Cifrario nichilista è un cifrario simmetrico eseguito manualmente inizialmente utilizzato dai Nichilisti Russi intorno al 1880 per organizzare attacchi terroristici contro il potere degli zar. Il termine spesso è esteso anche ad alcuni algoritmi più evoluti utilizzati in epoca più tarda per cifrare le comunicazioni fra il Primo direttorato centrale del KGB e le sue spie.
Descrizione
[modifica | modifica wikitesto]Per realizzare un cifrario nichilista si deve prima di tutto costruire una scacchiera di Polibio utilizzando un alfabeto mescolato, che viene poi usato per convertire sia il testo in chiaro sia la parola chiave in una serie di numeri a due cifre. Questi numeri sono poi sommati aritmeticamente tra di loro per ottenere il testo cifrato, con i numeri costituenti la chiave ripetuti secondo necessità
Esempio
[modifica | modifica wikitesto]Consideriamo la scacchiera di Polibio creato utilizzando la parola chiave ZEBRAS:
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
1 | Z | E | B | R | A |
2 | S | C | D | F | G |
3 | H | I,J | K | L | M |
4 | N | O | P | Q | T |
5 | U | V | W | X | Y |
Ipotizziamo il testo in chiaro DYNAMITE WINTER PALACE e la chiave RUSSIAN. La trasposizione dà i seguenti risultati:
T.CH | 23 | 55 | 41 | 15 | 35 | 32 | 45 | 12 | 53 | 32 | 41 | 45 | 12 | 14 | 43 | 15 | 34 | 15 | 22 | 12 |
CH. | 14 | 51 | 21 | 21 | 32 | 15 | 41 | 14 | 51 | 21 | 21 | 32 | 15 | 41 | 14 | 51 | 21 | 21 | 32 | 15 |
T.CI | 37 | 106 | 62 | 36 | 67 | 47 | 86 | 26 | 104 | 53 | 62 | 77 | 27 | 55 | 57 | 66 | 55 | 36 | 54 | 27 |
dove T.CH è il testo in chiaro, CH. è la chiave e T.CI è il testo cifrato.
Crittanalisi nichilista
[modifica | modifica wikitesto]Dato che ogni simbolo sia del testo in chiaro sia della chiave è usato come un numero senza nessun frazionamento il cifrario Nichilista originale è poco più che una versione numerica del cifrario di Vigenère, con numeri a più cifre usati come simboli cifrati al posto delle lettere. Per questo motivo può essere forzato con metodi molto simili. Un'ulteriore vulnerabilità è che l'uso di una normale addizione (al posto di un'addizione modulare) rivela altre informazioni: ad esempio (assumendo una scacchiera 5 × 5) se un numero del testo cifrato è più grande di 100 allora è sicuro che sia il testo in chiaro che la chiave provengono dalla quinta riga della scacchiera.
Versioni successive e derivazioni
[modifica | modifica wikitesto]Durante la Seconda guerra mondiale molte spie sovietiche comunicavano con Mosca utilizzando due cifrari che erano essenzialmente delle versioni migliorate del cifrario Nichilista. Una versione molto robusta fu usata da Max Clausen nella rete di spionaggio di Richard Sorge in Giappone e da Alexander Foote nella rete Lucy in Svizzera. Una versione più debole fu utilizzata nella rete di spionaggio Orchestra Rossa.
In entrambe le versioni il testo in chiaro era prima convertito in numeri usando una scacchiera a diffusione invece che una scacchiera di Polibio: questo permetteva di avere una leggera compressione del testo in chiaro con il vantaggio di aumentare la distanza di unicità ma anche di favorire il lavoro degli operatori radio, che potevano completare le loro trasmissioni più velocemente e quindi spegnere le apparecchiature prima. Lo spegnimento anticipato riduceva il rischio che un operarore potesse essere trovato dai radiogoniometristi nemici. L'incremento della distanza di unicità rendeva il testo cifrato più resistente contro gli attacchi di tipo statistico.
Clausen e Foote scrivevano i loro messaggi in chiaro in inglese. Per far ciò essi memorizzarono le 8 lettere più frequenti in inglese (per riempire la riga superiore della scacchiera) con la frase mnemonica ""a sin to err" (a cui toglievano l'ultima "r"). La disposizione classica della scacchiera a diffusione per l'inglese prevede la distribuzione di 26 caratteri e 2 segni extra più 2 celle vuote. In questo cifrario i simboli extra venivano indicati con il termine "arresto completo" (full stop) e "cambio di numeri" (numbers shift). I numeri venivano inviati con il simbolo "cambio di numeri", poi con la cifratura del loro equivalente cardinale e poi con un altro carattere di "cambio di numeri" (ad esempio, per mandare il numero 6, six in inglese, si spediva: "cambio di numeri", poi la cifratura della parola "six" e poi un altro "cambio di numeri"). Poi, come nel cifrario Nichilista originale, era aggiunto un numero additivo chiamato "chiusura" (closing). Ovviamente ogni volta veniva utilizzato un additivo differente per cui alla fine fu aggiunto un "indicatore di gruppo" per indicare quale additivo era utilizzato.
A differenza del cifrario nichilista, l'additivo era aggiunto con un'addizione senza resto (addizione modulo 10), operazione che produceva un testo cifrato più uniforme e con un numero minore di informazioni. Cosa ancora più importante, l'additivo non era generato dalla parola chiave ma selezionando delle righe a caso da almanacchi di statistiche industriali. Questi libri erano abbastanza comuni per non destare sospetti se un agente era ricercato (specialmente se la storia di copertura era quella di un uomo d'affari) ma anche abbastanza ricchi di entropia per fornire un buon additivo. Ovviamente le cifre all'interno di questi libri non sono distribuite uniformemente (c'è un eccesso di "0" e di "1": vedi la Legge di Benford) ed i numeri sequenziali erano alle volte simili) ma non di meno fornivano ben più entropia di una comune frase in codice. Dopo tutto non si ha notizia che un tale cifrario sia mai stato crittanalizzato con successo.
La versione più debole generava l'additivo dal testo di una novella o di un libro simile (un membro dell'Orchestra Rossa utilizzò Il buon soldato Sc'vèik, certamente non una buona scelta nel caso in cui fosse stato ricercato dai Nazisti). Il testo era poi convertito in un additivo numerico usando una tecnica simile a una scacchiera a diffusione.
L'ultima versione del cifrario Nichilista fu il cifrario VIC, utilizzato negli anni cinquanta da Reino Häyhänen, Mikhail Nikolaevich Svirin, Vilyam Genrikhovich Fisher ed altre spie sovietiche ed era basato sulla lingua russa. In quel tempo molti agenti sovietici utilizzavano cifrari one-time pad perché ritenuti inviolabili: essi sono tali solo quando vengono utilizzate chiavi lunghe quanto il testo in chiaro e da non riusarsi mai. Ma la difficoltà di scambiarsi chiavi così lunghe portava al riutilizzo delle stesse, con l'annullamento della forza del cifrario. Nella pratica, quindi, questi sistemi furono violati mentre il cifrario VIC no.
Bibliografia
[modifica | modifica wikitesto]- David Kahn: The Codebreakers - 1968, 1974 edizione Redwood Burn Ltd. pagg. 344, 368.