Cifrario perfetto
# Cifrario perfetto

In crittografia il cifrario perfetto è per definizione un algoritmo in grado di occultare il testo in chiaro escludendo ogni tipo di attacco di crittanalisi, ne segue che un testo cifrato con un cifrario perfetto non può essere letto in nessun modo se non si è in possesso della chiave di cifratura unica per decifrarlo.

## L'unico cifrario perfetto

L'unico cifrario perfetto fino ad ora conosciuto è una variante del Cifrario di Vigenère che prende il nome di Cifrario di Vernam. Questo cifrario ha la peculiarità di scegliere casualmente un'unica chiave lunga almeno quanto il testo, ne consegue che nessun attacco di crittanalisi può violarlo dato che il testo cifrato segue la casualità della chiave e nessun attacco di forza bruta può intaccarlo.

Il cifrario è perfetto, dato che la chiave utilizzata per cifrare il messaggio è lunga almeno quanto quest'ultimo ed è prodotta in modo casuale. Quando il messaggio viene unito alla chiave, esso perde ogni correlazione interna e quindi ogni tipologia di attacco statistico fallisce, visto che il messaggio cifrato non ha nessuna correlazione statistica con il messaggio non cifrato. Anche lo stesso attacco a forza bruta è destinato a fallire, dato che se anche si provassero tutte le possibili chiavi, si otterrebbero tanti potenziali messaggi decifrati quante sono le chiavi utilizzate; tuttavia non ci sarebbe modo di distinguere l'unico messaggio originale tra tutti i possibili messaggi in chiaro ottenuti. Se si cifrasse per esempio una parola di 5 lettere, un attacco a forza bruta genererebbe tutte le possibili parole di 5 lettere, ma non fornirebbe nessun metodo per distinguere la parola cercata da tutte le altre, che invece sono nelle decifrazioni sbagliate.

### Esempio

Se vogliamo cifrare la cifra "50" tramite sottrazione di un numero casuale, e scegliamo come numero casuale a due cifre per esempio "33" otterremo "17". Se avessimo soltanto il testo cifrato "17" non avremmo modo di sapere quale è la cifra che manca per arrivare al testo chiaro (che ci è sconosciuto). Se avessimo soltanto la chiave "33" non avremmo lo stesso modo di sapere come arrivare al testo chiaro. Soltanto avendo sia il testo "17" e la chiave "33" possiamo risalire con certezza al testo chiaro "50".

### Limiti

Nonostante la prova della sua sicurezza da parte di Shannon, il cifrario di Vernam presenta seri inconvenienti nella pratica perché richiede:

* Un generatore di chiavi monouso veramente casuali, il che è un requisito non banale. Mentre esistono numerosi algoritmi per generare numeri pseudo-casuali, la generazione di numeri perfettamente casuali può essere fatta solo con metodi lenti e specializzati.
* La generazione sicura (cioè in ambiente sicuro) e lo scambio delle chiavi monouso. In particolare lo scambio delle chiavi è possibile solo avendo un canale sicuro.
* Una custodia accurata delle chiavi monouso, per assicurarsi che siano mantenute segrete e siano eliminate correttamente dopo l'uso, evitando qualsiasi riutilizzo totale o parziale.
