Due dei cifrari storici piu importanti risalenti ripettivamente al 150 aC e al 100 aC sono il Cifrario di Cesare e il Quadrato di Polibio.
Cifrario di Cesare
Quadrato di Polibio
Entrambi i cifrari sostituiscono un occorrenza di una lettera con un altra lettera. Il cifrario di Cesare veniva utilizzato facendo delle traslazioni e trovando la corrispettiva lettera, mentre il quadrato di Polibio invece sostituiva una lettera con una coppia di lettere , che venivano tradotte da una tabella
I crittosistemi affini sono cifrari che prendono una lettera $\alpha$ e la cifrano in qualche modo :
$$ f(x) = \alpha x+b \space \mod26
$$
La caratteristica è che la chiave è composta da una coppia di valori $k = (\alpha , b)$
La funzione $f(x)$ è detta funzione affine, da cui il nome del cifrario. La funzione per far sì che il cifrario funzioni deve essere iniettiva cosi da poter decifrare il messaggio in modo univoco.
Come valori della coppia, non possono andare bene tutti, in particolare $\alpha$ non deve essere divisore dello 0 perché in quel caso non potrei tornare indietro (decryption)
Es:
se $x =’A’, \space b=5, \space \alpha = 0$
$$ y = \alpha x+b \space mod26
$$
Avendo questi valori , posso criptare , ma non posso decriptare perché dovrei effettuare una divisione per 0
Il numero di chiavi possibili per un cifrario affine è il n° di coppie (a,b). Siccome b può avere 26 valori , manca solo determinare i possibili valori di $\alpha$ che sono 12 . Quindi il numero di chiavi possibili è 26 * 12
Al posto di lavorare su un anello, devo lavorare su un campo. Posso comporre un campo con base ed esponente cosi da lavorare su un campo di Galois $GF(2^8)$
La tecnica per trovare la chiave utilizza l’analisi statistica delle frequenze sulle lettere dell’alfabeto (Attacco Frequenze)
Lingue differenti hanno Frequenze differenti. In sostanza prendo il cirttotesto e vedo quale è la lettera più frequente e la sostituisco nella tabella delle frequenze.
Il quadrato di Vigenere venne ideato nel XVI secolo e rese quasi impossibile l’attacco dell’analisi delle frequenze. Al posto di utilizzare una tabella come il Cifrario di Cesare utilizza una Matrice.
La chiave mnemonica serve a selezionare l’alfabeto di codifica. E’ in sostanza un cifrario di Cesare dove ogni volta che cambio una lettera della chiave, cambio alfabeto di codifica.