L’Affine Hill Cypher è, in sostanza, la versione “potenziata” dell’Affine cypher che abbiamo visto. Se il Cifrario Affine combina moltiplicazione e addizione su singoli numeri, e il Cifrario di Hill usa la moltiplicazione su matrici.

Più sicuro rispetto al classico Affine cypher

L’Affine Hill cypher ha proprietà polialfabetiche, quindi la cifratura di una lettera dipende dalla combinazione lineare con le altre lettere del suo blocco.

Processo di Cifratura

L’Affine Hill cypher è un cifrario a blocchi quindi rispetto all’Affine cypher cambia radicalmente il modo in cui prepariamo il testo prima di cifrarlo, perché in questo caso non analizziamo più lettere per lettera ma blocchi che possono essere composti da due o più lettere. La dimensione del blocco è determinata dalla dimensione della matrice chiave . Se ad esempio usassimo una matrice , dovremmo dividere il testo in bigrammi (coppie di 2 lettere). Una volta diviso il testo in blocchi possiamo procedere con la seguente formula per effettuare la cifratura :

Dove:

  • : è il vettore del testo cifrato (il blocco risultante).
  • : è il vettore del testo in chiaro (il blocco di lettere convertite in numeri).
  • : è la Matrice Chiave (come nel Hill standard, deve essere invertibile).
  • : è un Vettore di Traslazione (una chiave aggiuntiva che viene sommata al risultato).
  • : è il modulo (26 per l’alfabeto standard).

Attenzione alla matrice X

Non possiamo scegliere una matrice di numeri a caso come chiave . Affinché il messaggio possa essere decifrato, la matrice deve essere invertibile modulo 26. Il determinante della matrice , indicato come , non deve essere zero, e ancora più importante: il determinante deve essere coprimo con il modulo (26) quindi deve avere .

Processo di Decifratura

Per tornare indietro, bisogna invertire l’operazione. La matematica richiede prima di sottrarre il vettore di spostamento e poi moltiplicare per l’inversa della matrice.

La formula di decifratura è:

Considerazioni sul numero delle chiavi disponibili

Il termine , questo significa che è un vettore colonna di lunghezza (dove è la dimensione del blocco, es. digrammi o trigrammi). Ogni elemento del vettore può essere uno dei 26 numeri (da 0 a 25). Quindi ci sono possibili scelte per il vettore . Il termine , questo significa che è una matrice quadrata e, per poter decifrare il messaggio, il suo determinante deve essere invertibile modulo 26 (cioè coprimo con 26). Questa espressione:

serve a contare quante matrici esistono. Quindi la formula finale è: