fbpx
WhatsApp usa la crittografia end to end: vediamo come l’algebra lineare può creare diffusione

Per essere sicuro, un sistema di crittografia deve avere confusione e diffusione, le matrici possono offrire la seconda.

Enigma, una delle più famose macchine crittografiche, è stata usata durante la seconda guerra mondiale. Fonte: wikimedia commons

 

Dal 31 marzo 2016 l’applicazione di messagistica WhatsApp sfrutta la crittografia end to end per lo scambio di messaggi. Questa tecnologia garantisce che le uniche persone a poter leggere i messaggi siano coloro coinvolti nella conversazione, persino l’azienda viene esclusa.

Funzionamento generale della crittografia end to end

La crittografia end to end è una delle più sicure in assoluto, infatti impedisce a chiunque, compreso il fornitore dei servizi di comunicazione, di risalire alle informazioni criptate. Una conversazione che avviene mediante l’uso di questa crittografia ottiene questo livello di sicurezza poiché solo i dispositivi coinvolti nella conversazione stessa posseggono la chiave per tradurre le informazioni criptate. Inoltre dato il messaggio criptato è virtualmente impossibile risalire al messaggio in chiaro. Questo perché si costruiscono quasi tutti gli algoritmi di crittografia tenendo sempre a mente 2 caratteristiche di sicurezza importanti: confusione e diffusione. La prima ha come scopo rendere il meno correlabili possibile il messaggio criptato e la chiave. La seconda invece implica che l’algoritmo, dati 2 input anche solo leggermente diversi, restituisca messaggi cifrati molto diversi fra loro.

 

Schema di una matrice di n righe e m colonne, fonte: wikimedia commons

Introduzione alle matrici e al prodotto riga per colonna

Per matrici intenderemo tabelle di numeri, esse sono una delle strutture più importanti dell’algebra lineare. Con vettori intenderemo invece successioni ordinate di numeri, ad esempio (1;7;-5) è un vettore di 3 elementi e può essere interpretato come la posizione di un punto in uno spazio cartesiano. Fra matrici con n righe ed m colonne e matrici di m righe ed l colonne si può definire l’operazione di prodotto riga per colonna, esso restituisce matrici di n righe ed l colonne. Questo prodotto funziona in questo modo: l’elemento della matrice risultante che si trova nell’i-esima riga e nella j-esima colonna è la somma fra gli elementi della i-esima riga della prima matrice previa moltiplicazione di ognuno di essi col corrispettivo elemento della j-esima colonna della seconda matrice. Per le matrici quadrate, ovvero con stesso numero di righe e colonne, esiste la matrice identità. Qualsiasi matrice moltiplicata per essa rimane invariata.

La capacità delle matrici di portare diffusione negli algoritmi di crittografia

Considerano i vettori come matrici con n righe e 1 sola colonna. Si può notare a questo punto come il prodotto fra una matrice quadrata moltiplicabile (con n righe ed n colonne) e uno di questi vettori si ottiene un vettore che ha ancora n righe e 1 colonna. Si può interpretare il vettore di partenza come il messaggio in chiaro e il vettore risultato come il messaggio cifrato. Per poter passare dal messaggio cifrato a quello in chiaro è necessario che la matrice usata abbia una caratteristica: sia invertibile, ovvero ne esista la matrice inversa. Una matrice moltiplicata per la propria inversa restituisce l’identità. Trovare l’inversa di una matrice di n righe ed n colonne a mano è complicato, ma per un calcolatore è abbastanza semplice. Inoltre alcune matrici hanno la capacità di restituire vettori molto diversi se moltiplicate per vettori relativamente simili. Per questi motivi si usa spesso il cifrario di Hill, che si basa completamente sul prodotto riga per colonna, per aggiungere diffusione ad algoritmi più complessi.

E tu che ne pensi? Faccelo sapere!

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: