000 | K |
001 | subito |
002 | E |
003 | C |
004 | telegrafo |
005 | fanteria |
006 | A |
007 | esercito |
008 | marina |
009 | stazione |
010 | I |
011 | ministro |
012 | N |
013 | V |
014 | colonnello |
015 | generale |
016 | R |
017 | rinforzi |
018 | O |
019 | radio |
... | ... |
006 | A |
023 | B |
003 | C |
135 | D |
002 | E |
702 | F |
010 | I |
012 | N |
018 | O |
016 | R |
013 | V |
014 | colonnello |
007 | esercito |
005 | fanteria |
015 | generale |
008 | marina |
011 | ministro |
019 | radio |
017 | rinforzi |
009 | stazione |
001 | subito |
004 | telegrafo |
... | ... |
A iniziare dal Medio Evo e fino al Novecento fu usato dalle diplomazie europee un metodo di sostituzione, più sicuro del monoalfabetico: alla cifratura per singole lettere viene affiancato un dizionario (detto anche repertorio) di parole comuni ognuna cifrata con un simbolo diverso; il simbolo può essere di fantasia come era nel XV e XVI secolo, in seguito formato da un gruppo di lettere o cifre, finalmente da grupi di 2 - 3 - 4 cifre decimali. Aĺl'inizio il dizionario era limitato a poche parole, poi si usarono dizionari sempre più vasti con centinaia di parole o frasi comuni.
Al dizionario, che funziona a livello semantico, di significato, si affianca spesso un sllabario, cifre per gruppi di lettere, senza riguardo al significato; frequente anche la cifra per prefissi per esempio quest, quant, illustr ... e frequente anche l'uso di omofoni.
Si usa spesso il nome codice per indicare il fascicolo o volume che contiene la cifra completa; quando è sufficiente un solo foglio o tavola, è forse preferibile il termine nomenclatore; i codici vengono di solito classificati come segue:
Il sistema a due liste se usato correttamente è praticamente inattaccabile, e lo è tanto più grande il numero di parole del repertorio.
Per contro il sistema ha anche qualche difetto:
Il numero di simboli necessari per questi cifrari è naturalmente molto più elevato che per un sistema monoalfabetico o polialfabetico. In passato, p.es. nelle cifre veneziane del Quattrocento, si ricorreva a simboli di fantasia cosa che rendeva molto complesse le operazioni di cifratura e di decifratura. In alternativa si possono usare combinazioni di simboli per esempio numeri di tre o quattro cifre (due sono poche visto che le lettere dell'alfabeto sono 26 e il dizionario sarebbe limitato a 74 parole), come nell'esempio a lato.
Si veda anche la pagina sui nomenclatori veneziani dal XVI al XVIII secolo.
Cambiare un codice non è così semplice come cambiare la chiave di una cifra più semplice; occorre rigenerare le cifre per centinaia o migliaia di parole o gruppi di lettere, ristampare il codice e distribuirlo a mittenti e destinatari; capita quindi che lo stesso codice resti in uso per anni e anni; per aumentarne la sicurezza, si ricorre spesso alla sovracifratura, in altre parole il cifrato ottenuto dal codice viene cifrato una seconda volta con un cifrario più semplice, monoalfabetico o polialfabetico, o con una trasposizione.
In questo modo se il nemico viene in possesso del codice non è ancora in grado di decifrare i crittogrammi; dovrà anche individuare il tipo di sovracifratura; iinoltre la sovracifra essendo meno ingombrante può essere cambiata iù facilmente, anche giornalmente; cosa importante perché, essendo la sovra cifra più semplice, non è più impresa proibitiva quella di decrittarla.
L'idea della sovracifratura è già menzionata nelle opere di Al Kindi, ma senza dettagli; nel XVI secolo a Venezia fu usata per una ventina di anni la cifra delle caselle di H. di Franceschi, un semplice nomenclatore a due cifre, sovracifrato con una griglia polialfabetica. Pietro Partenio progettò diversi sistemi sovracifrati in vario modo, uno dei quali, la cifra prima del 1606, usava una trasposizione come sovracifra, ma uno solo fu usato e per breve tempo. Queste cifre veneziane furono tenute segrete negli archivi del Consiglio di Dieci fino al 1797.
Nel Seicento ci fu una corsa alla semplificazione delle operazioni di cifra e questi primi sistemi sovracifrati, tutt'altro che semplici, furono definitivamente abbandonati.
A cavallo tra Ottocento e Novecento furono molto popolari codici tascabili in pubblica vendita, come gli italiani cifrari Baravelli e Mengarini, o il francese cifrario telegrafico del Brunswick, e molti altri nelle varie lingue. Essendo pubblici il possesso del codice era scontato, e la sicurezza si basava tutta sulla sovracifratura che qui consisteva nel rinumerare le pagine. Ovviamente il livello di sicurezza non è elevato come per i codici segreti.
A lato è riportato un semplice repertorio con lista cifrante e decifrante; ecco come verrebbe cifrata la frase inviare rinforzi fanteria subito:
I N V I A R E rinforzi fanteria subito 010 012 013 010 006 016 002 017 005 001
converrà poi raggruppare le cifre in gruppi da 5 in modo da nascondere la struttura del cifrario e quindi il crittogramma da inviare sarà:
01001 20130 10006 01600 20170 05001
Non esistono metodi generali per decrittare un cifrato di questo tipo che è tra i più sicuri della crittografia classica; è però possibile tentare l'impresa cercando appigli di vario tipo: informazioni sul contenuto avute per altra via, spionaggio o simili, parole o frasi che compaiono spesso a inizio o fine messaggio, oppure cercare di approfittare di errori o ingenuità degli operatori alla cifra; molti successi della crittanalisi sono stati resi possibili proprio da errori o uso improprio del repertorio.
Il metodo più sicuro è quello di venire in possesso di una copia del codice o meglio ancora fotograrlo e rimetterlo al suo posto in modo che il proprietario non si accorga dell'accaduto e continui ad usarlo fiduciosamente. Imprese del genere sono realmente riuscite, per esempio recuperando il codice da navi catturate o affondate, ma ovviamente qui siamo nel campo dello spionaggio, non in quello della crittanalisi. Questa interviene semmai per scoprire il tipo di sovracifratura.
Un altra possibilità è quella di venire in possesso di coppie chiaro-cifrato, cosa tanto più facile a verificarsi quanto più a lungo viene mantenuto in funzione lo stesso codice; in questo modo è possibile, anche se comunque piuttosto laborioso, ricostruire il codice in parte o completamente a seconda della quantità di coppie disponibili.
I codici intervertiti, se ben progettati e bene utilizzati, sono pressoché inattaccabili per via statistica. La crittanalisi statistica può certo distinguere un sistema monoalfabetico puro da uno a repertorio semplicemente dal numero di simboli diversi usati. A volte, soprattutto se il codice non è stato usato in maniera ottimale, il calcolo delle frequenze permette di distinguere i simboli monoalfabetici che hanno una frequenza maggiore da quelli per parola o gruppo di lettere in genere meno frequenti. Difficile peraltro andare molto oltre a meno di avere informazioni da altre fonti o a meno che il codice non abbia regolarità riconoscibili.