Una codifica è robusta se camuffa l'impronta dell'autore
e genera un'impronta meno riconoscibile
Il modo è di appiattire la distribuzione di frequenza delle lettere
Verso la metà del 15-esimo secolo
la crittografia polialfabetica aveva raggiunto
tale traguardo
Immaginiamo che Alice e bob condividano una parola segreta di traslazione
Alice dapprima converte le parole in numeri
secondo la posizione delle lettere nell'alfabeto
Quindi questa sequenza di numeri è ripetuta nel messaggio
Poi ogni lettera del messaggio viene criptata
traslandola della quantità numerica scritta al di sotto
Ora, usa traslazioni differenti invece di un'unica
per l'intero messaggio, come nel caso del codice di Cesare
Il messaggio così criptato è inviato "in chiaro" a Bob
Bob decifra il messaggio sottraendo le traslazioni
secondo la parola segreta di cui possiede copia
Immaginiamo ora un nemico che cerchi di decodificare
una serie di messaggi che è riuscito ad intercettare
calcola la frequenza d'occorrenza delle differenti lettere
e trova una distribuzione piatta o un'impronta più leggera
come può decodificare i messaggi?
Riflettete: per decodificare un messaggio si cerca una dispersione d'informazione
che è equivalente a cercare un'impronta
Ogni volta che c'è una differenza nella frequenza delle lettere
c'è una traccia, dell'informazione trapela
La differenza è il risultato di una ripetizione nel messaggio criptato
In questo caso, il messaggio di Alice contiene una parola-codice che si ripete
Per svelare la codifica, Eva deve dapprima determinare
la lunghezza della parola usata per traslare le altre, ma non la parola stessa.
Deve analizzare
la distribuzione delle frequenze dei diversi intervalli
Nel controllare la distribuzione di frequenza di ogni quinta lettera
troverà la traccia che cerca
Il problema è diventato quello di decifrare un codice di Cesare a cinque cifre
organizzate in una sequenza che si ripete.
Il singolo compito, individualmente preso, è triviale
come abbiamo visto
la robustezza aggiuntiva del codice è data dal tempo occorrente
per determinare la lunghezza della parola usata per calcolare la traslazione dei caratteri individuali nel messaggio
Più lunga è la parola usata per la codifica, più robusta sarà la codifica.