Storia della crittografia - Cifrari
I cifrari monoalfabetici
Prova tu stesso il codice - Frequenza statistica delle lingue

matematicamente

Un cifrario monoalfabetico è una funzione biunivoca che ha per dominio l'insieme dei segni chiari e per codominio l'insieme dei segni cifrati.

Una simile relazione è anche detta 1:1 (uno a uno), infatti ad ogni segno chiaro deve corrispondere uno e un solo segno cifrato e viceversa.

Molte volte il codominio coincide con il dominio e quindi si usano gli stessi simboli dell'alfabeto chiaro; la funzione cifrante si riduce ad una permutazione dell'alfabeto; altre volte si usano invece come cifre gruppi di due o tre cifre, e cioè numeri da 00 a 99 o da 000 a 999. In passato era frequente usare simboli geometrici o di fantasia.

Per aumentare la sicurezza di un cifrario monoalfabetico di fronte alla crittanalisi statistica si può eliminare la clausola della biunivocità in quattro modi diversi, che non si escludono a vicenda.

  • Non cifrati: Usare una funzione non ovunque definita, in altre parole alcuni segni non vengono cifrati; nella crittografia classica è abituale non cifrare spazi(*), segni di interpunzione e numeri; le minuscole invece vengono convertite in maiuscole e quindi cifrate come tali.
  • Omofoni: Usare una funzione non univoca, quindi alcuni segni chiari, di solito i più frequenti, sono cifrati con diversi segni cifrati.
  • Polifoni: Usare una funzione non iniettiva, quindi diversi segni chiari sono cifrati con lo stesso segno (polifono).
  • Nulle: Usare una funzione non suriettiva, quindi ci sono alcuni segni cifrati (nulle) che non corrispondono a nessun segno chiaro.

I cifrari monoalfabetici sono cifrari di sostituzione: del testo chiaro si sostituisce ogni carattere con un altro carattere (o numero) secondo una tabella prestabilita, ottenendo il testo cifrato. Nella crittografia contemporanea (informatica) si sostituiscono blocchi di bit invece di caratteri, ma il principio è sempre quello della sostituzione.

I più antichi cifrari di questo tipo sono il cifrario Atbash e il cifrario di Cesare.

Questo tipo di cifra è sicura solo per messaggi molto corti; una semplice crittanalisi statistica basata sulle caratteristiche statistiche delle lingue è in genere sufficiente per forzare il testo.

La chiave della cifra è la lista delle cifre in ordine alfabetico; se si cifra con lettere dello stesso alfabeto sarà un alfabeto disordinato impossibile da ricordare a memoria; per avere una lista facilmente riproducibile si sono usate parole chiave che fanno da inizio della lista (escludendo le lettere ripetute) lasciando poi le altre lettere a seguire; per esempio usando come chiave VENEZIA si ottiene la lista cifrante:

ABCDEFGHIJKLMNOPQRSTUVWXYZ VENZIABCDFGHJKLMOPQRSTUWXY

Ovviamente questo comporta una perdita di sicurezza tanto più per parole brevi come questa; si sono escogitati molti altri artifici per generare liste con parole chiave; di interesse storico sono le liste involutorie o reciproche che hanno il pregio di essere reversibili, servono cioè sia a cifrare sia a decifrare.

Nella tabella a lato sono elencati alcuni metodi per aumentare la sicurezza di un sistema monoalfabetico; un altro modo è di affiancarlo ad un repertorio o dizionario o nomenclatore: le parole più comuni si cifrano con simboli speciali secondo un dizionario segreto.


Il caso più generale di codice monoalfabetico è quello che prevede di usare come tabella di cifratura una arbitraria permutazione dell'alfabeto; si stabilirà p.es. che la A va cifrata con la lettera D, la B con la X, la C con la U ... come nell'esempio che segue:

ABCDEFGHIJKLMNOPQRSTUVWXYZ DXUTNAVWKZFQGSIOYJBPLHCERM

Il messaggio Arrivano rinforzi si cifra allora sostituendo una per una le lettere del chiaro con le lettere della tabella:

ARRIVANORINFORZI DJJKHDSIJKSAIJMK

La decifratura richiede di cercare via via le lettere del cifrato nella tabella, recuperando le lettere del chiaro; ovvero di costruire preventivamente una tabella inversa, detta lista decifrante, che nel nostro esempio sarebbe:

ABCDEFGHIJKLMNOPQRSTUVWXYZ FSWAXKMVORIUZEPTLYNDCGHBQJ

così che dal cifrato si recupera il chiaro con lo stesso metodo;

DJJKHDSIJKSAIJMK ARRIVANORINFORZI


Valido HTML 4.01!

Gli spazi sono di solito omessi perché fornirebbero un grosso aiuto al crittanalista, grossissimo se lasciati in chiaro, comunque notevole anche se cifrato; lo spazio è infatti il carattere con la massima frequenza.

In poche parole, nella crittografia classica il dominio viene di norma limitato alle sole lettere maiuscole; se necessario i caratteri esclusi vengono scritti per esteso, per esempio invece del segno . si scrive punto; e numeri e cifre vengono convertiti in letterali, quindi 0 → zero, 1 → uno, 2 → due ...

Nella crittografia contemporanea, DES, RSA, AES ... viceversa tutti i segni vengono cifrati.

X