Libro Sicurezza Informatica
Cyber Security

Cos'è la crittografia?


Con crittografia si intende l'applicazione di un processo che permetta di rendere offuscato un messaggio per chiunque non abbia la chiave per decifrarlo. È una tecnica molto antica, che è nata con la semplice sostituzione di ogni carattere con uno ed uno solo corrispondente. Conoscendo ogni corrispondenza è possibile ricostruire il messaggio originale.

Ed è proprio questo il principio di base della crittografia simmetrica.

  1. Crittografia simmetrica
    1. Atbash: la più antica crittografia simmetrica
    2. Svantaggi della crittografia simmetrica
  2. Crittografia asimmetrica
    1. Crittografare un messaggio
    2. Chiave pubblica e chiave privata
    3. Matematica e crittografia
      1. Fattorizzazione in numeri primi
  3. Crittografia asimmetrica e Firma Digitale

Crittografia simmetrica

La crittografia simmetrica è la più antica forma di crittografia. Si definisce crittografia simmetrica proprio perché la chiave per crittografare e quella per decrittare il messaggio è la stessa.

Atbash: la più antica crittografia simmetrica

Atbash è un cifrario a sostituzione molto semplice e probabilmente la più antica forma di crittografia simmetrica. La prima lettera dell'alfabeto è sostituita con l'ultima, la seconda con la penultima e così via, come da tabella seguente:

lettera originale   abcdefghjklmnopqrstuvwxyz
sostituita con  zyxwutsrqponmlkjihgfedcba

Quindi proviamo a fare un esempio, se il messaggio cifrato fosse:

xbyvi hvxfirgb

Usando il cifrario appena mostrato potremmo decifrare il messaggio e otterremmo:

cyber security

Amazon logo
Copertina del libro Cyber Security per Applicazioni Web
Dall'autore di questo articolo
Leggi il libro

Svantaggi della crittografia simmetrica

Per quanto semplice, la crittografia simmetrica comporta dei problemi che ne hanno impedito un moderno utilizzo:
  1. La chiave per crittografare e decifrare il messaggio è la medesima. Ciò comporta un maggiore rischio perché chi può criptare il messaggio può anche decriptarlo
  2. L'unica chiave a disposizione deve essere condivisa tra mittente e destinatario del messaggio. La condivisione della chiave rappresenta un momento di rischio: se rubata potrà essere utilizzata per decifrare il messaggio
  3. Se l'unica chiave a disposizione viene rubata, il messaggio può essere decifrato ma anche modificato e crittografato nuovamente, diffondendo quindi messaggi alterati o completamente falsi
  4. Per crittografare ogni colloquio, il mittente dovrà stabilire una nuova chiave per ogni comunicazione da spedire al mittente, onde evitare che mittenti diversi possano decifrare messaggi a loro non destinati
Per risolvere le problematiche legate alla crittografia simmetrica, è nata una nuova tipologia di crittografia, la crittografia asimmetrica.

Crittografia asimmetrica

La crittografia asimmetrica è stata una grande conquista nel campo della crittologia e permette di avere chiavi differenti, ma collegate tra di loro, per distinguere la fase di cifratura da quella di decifratura del messaggio.

Esistono quindi due chiavi:
  1. La chiave privata che serve per decifrare il messaggio e che va tenuta protetta e non deve essere assolutamente distribuita
  2. La chiave pubblica che serve per cifrare il messaggio e che invece può essere distribuita
Queste chiave sono collegate tra loro dal punto di vista matematico.

Crittografare un messaggio

Con la crittografia asimmetrica quindi, le fasi per crittografare un messaggio sono:
  1. Il destinatario del messaggio spedisce la propria chiave pubblica al mittente
  2. Il mittente si occupa di crittograre il messaggio usando la chiave pubblica del destinatario
  3. Il messaggio viene spedito crittografato al destinatario
  4. Il destinatario decifra il messaggio con la propria chiave privata
Come funziona la crittografia asimmetrica con chiave pubblica e privata

Nessun passaggio di questa comunicazione è esposto a rischi. Se l'invio della chiave pubblica fosse intercettato da un malintenzionato, avrebbe solo la possibilità di crittografare un messaggio, ma non di decifrarlo. La chiave privata non viene mai comunicata e ciò consente la non decifrabilità della comunicazione.

Chiave pubblica e chiave privata

La coppia di chiavi, la chiave pubblica e la chiave privata sono indissolubilmente legate tra di loro. Ciò significa che un messaggio cifrato con una chiave pubblica, può essere aperto solo dalla corrispettiva chiave privata. Il legame che esiste tra queste due chiavi è prettamente matematico.

Matematica e crittografia

Che c'entra la matematica? C'entra sempre la matematica! I prof a scuola avevano ragione. La crittografia asimmetrica infatti non è altro che una funzione unidirezionale, ovvero una funzione facile da calcolare ma molto difficile da invertire. Quindi se cifrare un messaggio con la chiave pubblica è molto semplice, partire da questa chiave pubblica per ricavare la privata (ricordate che sono collegate) è computazionalmente molto oneroso. Tanto oneroso da basarci i nostri più moderni sistemi di sicurezza.

Nel tempo si sono evolute diverse funzioni matematiche unidirezionali per rendere sempre più sicuro l'algoritmo di crittografia (a parità di bit, in soldoni lo spazio occupato dalle chiavi). Se all'inizio si utilizza il problema della fattorizzazione di numeri primi, ora si è passati a soluzioni ancora più complicate come le Curve ellittiche in campi finiti, che coinvolgono il problema del logaritmo discreto.

Fattorizzazione in numeri primi

La fattorizzazione in numeri primi, conosciuta anche come scomposizione in numeri primi è stato uno dei primi algoritmi di crittografia asimmetrica ed è un ottimo esempio per capire il legame tra chiave pubblica e chiave privata e soprattutto la complicatezza che richiede risalire dalla chiave pubblica alla chiave privata. Che poi è il motivo per cui si utilizzano due chiavi e per il quale una delle due, la pubblica, può essere distribuita.

Se vi chiedessi di moltiplicare 7*11*23 penso che chiunque (soprattutto con la calcolatrice) potrebbe ottenere facilmente il risultato.

Ma se invece vi dicessi, trovate i numeri primi che moltiplicati tra di loro danno come risultato il numero 1771, sono certo che sarebbe estremamente più dispendioso.

La chiave pubblica (il numero 1771 nel nostro semplice esempio) è sì collegata matematicamente alla chiave privata (7*11*23) ma è complicato invertire la funzione. Ora immaginatevi questi calcoli ma con numeri enormi, numeri con centinaia di cifre. Capite bene che diventa estremamente dispendioso risalire alla chiave privata partendo dalla chiave pubblica. Tanto dispendioso che, con i più moderni algoritmi di crittografia (che però sfruttano altre funzioni), non basterebbe la durata di una vita umana pur impegnando enormi capacità di calcolo.

Crittografia asimmetrica e Firma Digitale

La crittografia asimmetrica viene utilizzata per la produzione della firma digitale. Approfondiremo l'argomento in un articolo ad hoc, sappiate al momento che la firma digitale non è altro che l'applicazione della chiave privata per generare un hash. La chiave pubblica servirà per verificare l'hash e l'integrità del messaggio, ma non la sua riservatezza, perché appunto non crittografato.

Di Roberto Abbate
Copertina del libro Cyber Security per Applicazioni Web

Libro Cyber Security per Applicazioni Web

Hai trovato interessante l'articolo "Cos'è la crittografia?"? Acquista il libro Cyber Security per Applicazioni Web e accresci le tue competenze sulla Sicurezza Informatica.
Cyber Security per Applicazioni Web è un libro di Sicurezza Informatica applicativa dedicato a proteggere lo strato di frontend e il layer di integrazione con API REST.


Questo sito NON utilizza cookie o altre tecniche di tracciamento (cosa sono i cookie? - cosa servono i cookie?)