Codice (crittografia)
In crittologia, un codice è un metodo che opera a livello di significato, usato per codificare un messaggio; cioè, parole o frasi vengono convertite in qualcos'altro.
Un codice potrebbe trasformare la frase "Procedere fino alle seguenti coordinate" in "CVGDK". La National Security Agency degli USA definiva un codice come "un crittosistema a sostituzione nel quale gli elementi in chiaro sono principalmente parole, gruppi di parole o frasi e gli equivalenti in codice (detti "gruppi di codici") consistono tipicamente di lettere o cifre (o entrambi) in combinazioni altrimenti prive di significato, aventi lunghezza identica".[1] Per cifrare e decifrare le frasi o le parole è necessario un libro codice.
Al contrario, i cifrari cifrano i messaggi al livello delle singole lettere, o di piccoli gruppi di lettere, o anche, nei cifrari moderni, a livello di singoli bit. I messaggi possono anche essere trasformati prima da un codice e poi da un cifrario. Una tale cifratura multipla è tesa a rendere più difficoltosa la crittanalisi.
Un'altra differenza tra codici e cifrari è che un codice tipicamente rappresenta direttamente una lettera o un gruppo di lettere, senza l'utilizzo della matematica. Ad esempio si può configurare un codice che rappresenti questi tre valori: 1001 = A, 1002 = B, 1003 = C, ... . Il messaggio risultante dal codice sarebbe allora 1001 1002 1003 per comunicare ABC.
Un cifrario userebbe invece una formula matematica per rappresentare lettere o gruppi di lettere. Ad esempio un cifrario potrebbe porre A = 1, B = 2, C = 3, ... e poi moltiplicare ciascun valore per 13. Il messaggio ABC diventerebbe allora 13 26 39.
I codici hanno una serie di inconvenienti, tra cui la suscettibilità alla crittanalisi e la difficoltà di gestire un ingombrante libro codice, quindi i cifrari sono la tecnica dominante nella crittografia moderna.
D'altro canto, poiché i codici sono rappresentativi, essi non sono suscettibili all'analisi matematica dei singoli elementi del libro codice. Nel nostro esempio, il messaggio 13 26 39 può essere decifrato dividendo ciascun numero per 13 e quindi ordinandoli in corrispondenza all'alfabeto. Tuttavia, il punto debole della crittanalisi del codice è la frequenza dei singoli elementi codificati, la quale corrisponde alla stessa frequenza delle lettere all'interno dei messaggi in testo semplice e può essere rilevata usando la analisi delle frequenze. Nell'esempio precedente, il gruppo di codici 1001, 1002, 1003 potrebbe verificarsi più di una volta e tale frequenza potrebbe corrispondere al numero di volte in cui si verifica ABC nei messaggi di testo semplice.
(In passato, o in contesti non tecnici, "codice" e "cifrario" sono stati spesso usati per riferirsi a qualsiasi forma di crittografia).
Note
[modifica | modifica wikitesto]- ^ A History of U.S. Communications Security; the David G. Boak Lectures, National Security Agency (NSA), Volumes I, 1973, Volumes II 1981, partially released 2008, additional portions declassified October 14, 2015
Voci correlate
[modifica | modifica wikitesto]- Cifrario
- Codice (teoria dell'informazione)
- Nome in codice o crittonimo