# Cifrario VIC

Il cifrario VIC è un cifrario carta e penna utilizzato dalla spia sovietica Reino Häyhänen, il cui nome in codice era "VICTOR". Al momento della sua scoperta era senz'altro il più complesso cifrario mnemonico mai visto: le conclusioni dell'analisi iniziale fatta dall'NSA nel 1953 non indicavano in alcun modo che esso potesse essere un cifrario manuale ma il fatto di averlo ritrovato in una monetina cava da 5 centesimi poteva far supporre che potesse essere risolto con il semplice uso di carta e penna. Il cifrario VIC rimase inviolato fino a quando non furono disponibili maggiori informazioni sulla sua struttura.
Anche se non così complessi o sicuri come i più recenti cifrari digitali utilizzabili sui moderni computer, i messaggi scritti con il cifrario VIC in pratica resistettero a tutti i tentativi di crittanalisi condotti dall'NSA dal 1953 al 1957, anno in cui Häyhänen tradì il suo Paese e chiese asilo politico al governo statunitense.

## Un cifrario rivoluzionario

Il cifrario VIC può essere identificato come la massima evoluzione dei cosiddetti cifrari nichilisti, utilizzati dai nichilisti russi alla fine del XIX secolo. Esso contiene alcuni componenti molto interessanti, tra cui una catena di addizioni in modulo 10 (un generatore di Fibonacci ritardato, una formula ricorsiva utilizzata per generare una sequenza di cifre pseudocasuali), una scacchiera a diffusione per convertire le lettere del testo in chiaro in numeri ed un cifrario a trasposizione doppia disturbato. Fino alla scoperta del cifrario VIC si riteneva che la sola trasposizione doppia fosse il più complesso cifrario che un agente potesse utilizzare sul campo.

## Storia

Durante la seconda guerra mondiale diversi gruppi spionistici sovietici comunicavano con il quartier generale di Mosca utilizzando due cifrari che erano evoluzione del primo cifrario nichilista. Una versione molto robusta fu usata da Max Clausen facente parte della rete di spionaggio di Richard Sorge in Giappone e da Alexander Foote della rete di spionaggio denominata Lucy, operante in Svizzera. Una variante più debole fu usata dalla rete di spionaggio Orchestra Rossa.
L'ultima versione fu proprio 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.

## Meccanismi interni
### Scacchiera a diffusione

La scacchiera a diffusione del cifrario VIC appariva così:
| | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| | E | T | | A | O | N | | R | I | S |
| 2 | B | C | D | F | G | H | J | K | L | M |
| 6 | P | Q | / | U | V | W | X | Y | Z | . |
La prima riga veniva riempita con le 8 lettere più frequenti in lingua inglese (AEINORST) più 2 caselle lasciate in bianco; non aveva numerazione di riga. La seconda e la terza riga venivano numerate con le due cifre che, nella prima riga, corrispondevano a caselle vuote (nell'esempio, "2" e "6"), e poi riempite con il resto delle lettere dell'alfabeto (questa operazione può essere resa più casuale utilizzando una parola chiave, o semplicemente fatta ordinatamente). Dato che ci sono 30 caselle nella griglia, e che le lettere dell'alfabeto inglese sono 26, avanzano 4 caselle: 2 sono lasciate bianche nella prima riga, mentre le altre 2 sono o lasciate in bianco oppure riempite con caratteri casuali. La cosa non aveva molta importanza: l'importante era che sia il mittente che il destinatario si accordassero sullo schema da utilizzare.
Per cifrare una lettera, questa veniva semplicemente sostituita da un numero: se la lettera apparteneva alla prima riga, si usava solo il numero della colonna corrispondente, mentre se apparteneva alle altre due righe, si usava il numero formato dalla cifra indicante la riga e da quella indicante la colonna. Ad esempio:
| A | T | T | A | C | K | A | T | D | A | W | N |
| 3 | 1 | 1 | 3 | 21 | 27 | 3 | 1 | 22 | 3 | 65 | 5 |
Il messaggio risultante, 3113212731223655, poteva essere spedito già così (se la griglia era stata impostata con una parola chiave) oppure poteva subire un ulteriore livello di cifratura, come l'uso di una trasposizione o una sostituzione. Qui sotto viene mostrato il caso dell'aggiunta di un numero segreto (nell'esempio, 0452) con un'addizione senza resto:
| | 3 | 1 | 1 | 3 | 2 | 1 | 2 | 7 | 3 | 1 | 2 | 2 | 3 | 6 | 5 | 5 |
| + | 0 | 4 | 5 | 2 | 0 | 4 | 5 | 2 | 0 | 4 | 5 | 2 | 0 | 4 | 5 | 2 |
| = | 3 | 5 | 6 | 5 | 2 | 5 | 7 | 9 | 3 | 5 | 7 | 4 | 3 | 0 | 0 | 7 |
Il risultato veniva ripassato nella griglia per riportarlo a lettere:
| 3 | 5 | 65 | 25 | 7 | 9 | 3 | 5 | 7 | 4 | 3 | 0 | 0 | 7 |
| A | N | W | H | R | S | A | N | R | O | A | E | E | R |
La decifratura era semplicemente l'inverso di questo procedimento. Anche se la dimensione dei gruppi poteva variare, la decifratura era comunque unica perché quando l'elemento successivo da decifrare iniziava con "2" o con "6" era una coppia di cifre, mentre in tutti gli altri casi era una cifra singola.

### Trasposizione disturbata

In una trasposizione disturbata, certe posizioni nella griglia sono omesse, e non utilizzate nel riempire il testo in chiaro. Questo rompe gli schemi regolari e rende il lavoro del crittoanalista più difficile.

### Frazionamento

La trasposizione è particolarmente efficiente se unita al frazionamento - cioè una fase preliminare che divide ciascun simbolo del testo in chiaro in più simboli cifrati. Ad esempio, l'alfabeto in chiaro può essere scritto in una griglia, dove ogni lettera nel messaggio è sostituita dalle sue coordinate (vedere scacchiera di Polibio). Un altro metodo di frazionamento consiste semplicemente nel convertire il messaggio nel codice Morse, con un simbolo tanto per gli spazi quanto con i punti e le linee.
Quando un tale messaggio viene trasposto, i componenti delle singole lettere diventano molto distanti nel messaggio, realizzandosi così la diffusione affermata da Claude E. Shannon. Esempi di cifrari che combinano il frazionamento e la trasposizione sono il cifrario bifido e trifido, il cifrario ADFGVX e il cifrario VIC.
Un'altra scelta potrebbe essere quella di sostituire ogni lettera con la sua rappresentazione binaria, che traspone e quindi converte la nuova stringa binaria nei corrispondenti caratteri ASCII. Unendo il processo di mischiamento sulla stringa binaria più volte prima della sua trasformazione in caratteri ASCII è probabile che renda più difficile la rottura. Molti moderni cifrari a blocchi usano forme molto più complesse di trasposizione in relazione a questa idea semplice.