Crittografia

Nomenclatore di Lavinde

 

 

Lo scopo della nascita dei nomenclatori è dovuto al tentativo di eliminare dal contenuto di un testo cifrato, tutte quelle parole facilmente intuibili che sono spesso un tallone di Achille in molti sistemi di crittografia. Un crittoanalista a cui viene fornito un testo cifrato militare, potrà ricercare nel testo parole come "Generale", "Capitano", "Guerra", ecc. Lo stesso dicasi di un testo cifrato riguardante segreti industriali in ambito informatico: conterrà con molta probabilità le parole "Computer", "Chip", "Integrato", ecc. Per evitare l'inserimento di queste parole ovvie, o per eliminare quelle parti di testo sicuramente presenti, come le congiunzioni, articoli, ecc., si utilizzano i nomenclatori.

I nomenclatori sono sempre utilizzati in accoppiata a sistemi di cifratura monografici o polifonici.

 

Il nomenclatore di Gabrielli di Lavinde, sfrutta una lista di codici, un alfabeto di sostituzione, ed una lista di parole nulle. La lista dei codici è un elenco di corrispondenze tra parole, come ad esempio:

 

Laboratorio = Mare

Portare = Cavallo

Progetto = Dondolo

Segreto  =  Vento

 

L'alfabeto di sostituzione è una corrispondenza tra caratteri, come ad esempio:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

B C E H F A D G Z I P J O L N Y W M X K T Q U R S V

 

La lista di parole nulle viene usata come disturbo per la crittoanalisi ed è composta da parole che devono semplicemente essere scartate dal destinatario che si appresta alla decrittazione. Esempio:

Pasta, alto, cubo.

 

Con le impostazioni di esempio appena viste, un messaggio tipo:

Portare il progetto segreto al laboratorio, sarebbe trasformato come Cavallo il dondolo vento al mare.

 

Applicando ora qualche parola nulla, si potrebbe trasformare il testo in Pasta cavallo il dondolo alto vento al mare cubo.

 

Applichiamo adesso l'alfabeto di sostituzione ottenendo all'ultimo cifrato:

Pasta=Ybxkb

Cavallo=ebqbjjn

il=zj

dondolo=hnlhnjn

alto=bjkn

vento=qflkn

al=bj

mare=obmf

cubo=etcn

 

Risultato:

Portare il progetto segreto al laboratorio = Ybxkb ebqbjjn zj hnlhnjn bjkn qflkn bj obmf etcn

 

La decrittazione viene effettuata sostituendo per prima cosa le lettere tramite l'alfabeto di sostituzione, quindi eliminando le parole nulle e sostituendo le restanti secondo la lista dei codici.

 

Note

Il sistema ha una doppia protezione derivante dal codice e dalla sostituzione. E` pure semplice variare il codice o l'alfabeto sulla base dei giorni della settimana, sul giorno del mese, o altre variabili convenzionali.

Per contro, la sostituzione prevista da questo metodo non offre una grande protezione a causa della sequenza della chiave ripetitiva per tutto il testo (la lettera A, ad esempio, viene sempre sostituita da B).

Attenzione a non cadere nell'errore commesso nella costruzione del primo nomenclatore, ad opera di Gabrielli di Lavinde, ovvero quello di sfruttare un codice di sostituzione ordinato alfabeticamente sia nella parola da sostituire che nella corrispondenza: sarebbe molto più facile per un crittoanalista risalire al testo in chiaro. Se ad esempio:

alfa = golf

beta = india

charlie = oscar

 

sarà facile dedurre che se beta=india, charlie non potrà sicuramente essere golf, o un'altra parola il cui ordinamento alfabetico sia sopra la parola "india". Un crittoanalista che scopra la corrispondenza di sole 2 parole, può iniziare a tentare questa strada se vede che tali corrispondenze utilizzano questo metodo.

 

Potrebbe essere un algoritmo da migliorare per trarne qualcosa di valido a livello di crittografazione computerizzata, sostituendo magari l'alfabeto di sostituzione con un polialfabetico e creando un codice di corrispondenza a livello di bytes. Il problema principale sarebbe l'aumento delle dimensioni del cifrato rispetto all'originale, problema che potrebbe però essere risolto utilizzando le tecniche di sostituzione utilizzate dai programmi di compressione.