Una variante dei cifrari appena visti è un cifrario a sostituzione polialfabetico, noto con il nome dicifrario di Vigènere (Blaise de Vigènere, 1523-1596); questo cifrario prevede innanzitutto di stabilire una chiave di lughezza scelta composta da interi compresi tra 0 e 25 (spesso alla sequenza di questi numeri è associata una parola semplicemente ponendo 0=a, 1=b ...); usando la chiave si farà scorrere ogni lettera del testo in chiaro di un numero di posizioni pari al numero corrispondente della chiave, e una volta arrivati alla fine della chiave si ricomincia da capo. Questo procedimento può essere visto semplicemente come il cifrario di Cesare che però cambia chiave ad ogni lettera; diamone un esempio:

Esempio:


testo in chiaro prontipartenzavia
chiave campanacampanacam
testo cifrato rractvpcrftnmaxim

Tabella 3.2: Cifratura di Vigénere

Definizione 3.2 ( cifrario di Vigènere). Sia m un intero positivo fissato; siano poi P,C,K (26)m con la chiave K=(k1,k2,...,km); definiamo la funzione di cifratura fk del cifrario di Vigènere:
fk(x1,x2,...,xm)=(k1 + x1,k2 + x2,...,km + xm )
e la funzione di decifrazione gk del cifrario di Vigènere:
gk(y1,y2,...,ym)=(y1 k1,y2 k2,...,ym km)
il tutto (mod 26)

Un modo più veloce per effettuare questa cifratura è quello di sfruttare la tabella di Vigènere (o tabula recta) che consiste in un quadrato di 26 righe per 26 colonne contenente tutte le lettere dell’alfabeto ed in cui ogni riga è spostata rispetto alla precedente di un posto in avanti; in questo modo leggendo le lettere del testo in chiaro nella prima riga e quelle della chiave nella prima colonna (o viceversa, la tabella è simmetrica), il loro punto di incontro sarà la lettera del testo cifrato.



Figura 3.3: Tabula recta

Ovviamente questo sistema è sicuro se non è nota nè la chiave nè la sua lunghezza; riguardo alla decifrabilità di questo cifrario si possono fare le stesse considerazioni fatte in precedenza con alcune modifiche: ovviamente conoscendo il testo cifrato ed una parte del testo in chiaro basta sottrarre i due per ottenere la chiave, è necessario però avere un testo in chiaro abbastanza lungo perchè altrimenti si rischia di non riuscire ad ottenere tutta la chiave, per questo si punta ad avere chiavi piuttosto lunghe.
Si potrebbe anche sfruttare la frequenza delle lettere come già visto sopra ma si rischia di incorrere in notevoli errori, infatti ad ogni lettera in chiaro non è detto che corrisponda sempre la stessa lettera nel testo cifrato, ed è per questo motivo che questo studio di frequenza non si rivela granchè utile.
Il metodo migliore per decifrare il messaggio è quindi quello di trovare prima la lunghezza della chiave e poi la chiave stessa; vediamo come si procede.

Pagina precedente Pagina successiva