Il Cifrario a sostituzione consiste nel sostituire una o più entità (solitamente delle lettere) di un messaggio con altre entità diverse.
Si distinguono generalmente più tipi di crittosistemi a sostituzione:
La sostituzione monoalfabetica che consiste nel sostituire ogni lettera di un messaggio con un'altra lettera dell'alfabeto;
La sostituzione polialfabetica che consiste nell'uso di una sequenza di cifre monoalfabetiche riutilizzate periodicamente;
La sostituzione omofonica che permette di far corrispondere ad ogni lettera di un messaggio in chiaro un possibile insieme di altri caratteri;
La sostituzione di poligrammi che consiste nel sostituire un gruppo di caratteri (poligramma) nel messaggio con un altro gruppo di caratteri.
Questa cifratura è una delle più antiche, considerato che era utilizzata anche da Giulio Cesare. Il principio della codifica si basa sull'aggiunta di un valore costante all'insieme dei caratteri del messaggio o, più esattamente, al loro codice ASCII (per una versione "informatica" di questa codifica).
Si tratta quindi semplicemente di spostare l'insieme dei valori dei caratteri del messaggio di un certo numero di posizioni, cioè in un certo qual modo di sostituire ogni lettera con un'altra. Ad esempio, spostando il messaggio "CCM" di 3 posizioni si ottiene "FFP". Quando l'aggiunta del valore da una lettera che passa la Z, basta continuare partendo da A, cosa che porta ad effettuare un modulo 26. A titolo esemplificativo, nel film 2001: Odissea nello spazio, il computer è chiamato HAL. Questo soprannome è in effetti IBM spostato di una posizione verso il basso.
Il carattere corrispondente al valore che si aggiunge al messaggio per effettuare la cifratura viene detta chiave. Nel nostro caso la chiave è C, dato che è la terza lettera dell'alfabeto. Questo sistema di cifratura è sicuramente semplice da realizzare, ma ha come inconveniente di essere totalmente simmetrico, il che significa che basta fare una sottrazione per conoscere il messaggio iniziale. Un metodo primario può consistere in una semplice sottrazione dei numeri da 1 a 26 per vedere se uno di questi numeri da un messaggio comprensibile.
Un metodo più evoluto consiste nel calcolare le frequenze di apparizione delle lettere nel messaggio codificato (ancora più facile quanto più lungo è il messaggio). Effettivamente, a seconda della lingua, alcune lettere sono più ricorrenti di altre (in italiano, ad esempio, la lettera più usata è la vocale "I"), inoltre la lettera che appare più di frequente in un testo criptato dalla cifratura di Cesare corrisponderà verosimilmente alla lettera "I", e quindi con una semplice sottrazione si avrà la chiave della cifratura.
Nel caso specifico del cifrario di Cesare dove la chiave di cifratura è N (tredicesima lettera dell'alfabeto), chiamiamo questa cifratura ROT13 (il numero 13, la metà di 26, è stato scelto per poter codificare e decodificare facilmente i messaggi di testo).
Foto: © Pixabay.