Reading Time: 4 minutes

Gli schemi di crittografia asimmetrici rappresentano una grande rivoluzione introdotta negli ultimi anni nel campo della sicurezza informatica.

I più diffusi e conosciuti algoritmi asimmetrici sono: RSA, Diffie-Hellman, El-Gamal.

In questo schema crittografico si usano due chiavi distinte per la codifica e la decodifica. La prima viene utilizzata per codificare il messaggio M, la seconda per decodificarlo una volta che questo è giunto a destinazione.

esempio di crittografia a chiave asimmetrica

Le due chiavi vengono spesso indicate come:

  • Kp = chiave pubblica
  • Ks = chiave privata

Con un algoritmo asimmetrico è sufficiente la conoscenza della chiave pubblica del destinatario per poter codificare i dati a lui indirizzati.

La garanzia di sicurezza dell’algoritmo a chiave pubblica e privata deriva dall’impossibilità pratica di ricavare la chiave privata dalla conoscenza della corrispondente chiave pubblica.

Possedendo la chiave pubblica è possibile codificare i dati e spedirli in maniera riservata al destinatario. Nessuno può decodificarli a meno che non possegga la corrispondente chiave privata.

Gli algoritmi asimmetrici non prevedono che la sorgente possa decodificare i dati una volta codificati.

Il modello di funzionamento generale di un algoritmo asimmetrico è il seguente:

  1. Alice e Bob condividono lo stesso algoritmo.
  2. Bob invia ad Alice la propria chiave pubblica.
  3. Alice, dopo aver generato il messaggio in chiaro, lo codifica utilizzando la chiave pubblica di Bob.
  4. Alice invia il messaggio cifrato a Bob.
  5. Bob decodifica il messaggio utilizzando la propria chiave privata.

Si può notare come, il problema della condivisione delle chiavi, presente in tutti gli algoritmi simmetrici, negli algoritmi asimmetrici viene risolto alla radice: la chiave privata dei partecipanti non deve essere mai distribuita.

La distribuzione della chiave pubblica deve avvenire anche attraverso un canale che ne garantisca l’integrità mentre non occorrono garanzie riguardo la riservatezza della chiave pubblica, che può essere anche trasmessa in chiaro all’inizio di ogni nuova comunicazione.

Crittografia asimmetrica

Meccanismi per l’autenticazione

Uno schema che permette di stabilire l’identità di un utente, utilizzando un algoritmo asimmetrico, può svilupparsi nel seguente modo:

  1. Alice e Bob condividono lo stesso algoritmo.
  2. Bob (server) richiede ad Alice (client) di autenticarsi esplicitamente.
  3. Alice invia a Bob la propria chiave pubblica e il proprio identificativo.
  4. Alice codifica un messaggio contenente il proprio identificativo, utilizzando la propria chiave privata.
  5. Alice invia il messaggio cifrato a Bob.
  6. Bob decodifica il messaggio utilizzando la chiave pubblica di Alice.
  7. Se il messaggio decodificato contiene l’identificativo di Alice precedentemente ricevuto in chiaro, l’autenticazione si ritiene conclusa con successo; in caso contrario Bob nega l’accesso al servizio.

Requisiti generali di un algoritmo asimmetrico

Un generico algoritmo a chiave pubblica e privata deve possedere i seguenti requisiti:

  • Deve essere computazionalmente semplice generare una coppia di chiavi.
  • Deve essere computazionalmente semplice per la sorgente codificare il messaggio usando la chiave pubblica del ricevente (riservatezza) o la propria chiave privata (autenticazione).
  • Deve essere computazionalmente semplice per il ricevente decodificare il testo cifrato usando la propria chiave privata o la chiave pubblica della sorgente.
  • Deve essere estremamente difficile, a livello computazionale, determinare la chiave privata conoscendo quella pubblica.
  • Deve essere estremamente difficile, a livello computazionale, determinare il messaggio originale conoscendo la chiave pubblica e un brano arbitrariamente lungo di testo cifrato.

La realizzazione di sistemi crittografici basati su schemi asimmetrici dipende essenzialmente dalla individuazione di funzioni matematiche che posseggono queste caratteristiche.

Gli algoritmi asimmetrici sono computazionalmente più lenti (fino a 1000 volte!) rispetto a quelli simmetrici e risultano particolarmente vulnerabili ad attacchi nei quali l’attaccante conosce l’insieme dei messaggi in chiaro M che possono essere generati, più alcuni messaggi cifrati C.

In tal caso infatti si potrebbe risalire al messaggio M inviato, semplicemente codificando tutti i possibili input con la chiave pubblica per poi confrontare il risultato con il messaggio C intercettato.

Considerata la lentezza di tali algoritmi, oggi vengono utilizzati soprattutto per codificare informazioni di limitata estensione. Tra queste troviamo per esempio le chiavi comuni utilizzate dagli algoritmi simmetrici.

Lo schema generale secondo cui la crittografia asimmetrica viene utilizzata per creare un canale sicuro, idoneo allo scambio di una comune chiave segreta, è chiamato “schema crittografico ibrido” in quanto coinvolge sia algoritmi simmetrici che asimmetrici:

  1. Alice e Bob condividono lo stesso schema crittografico.
  2. Bob invia ad Alice la propria chiave pubblica.
  3. Alice, dopo aver generato una chiave Kc in maniera casuale, la codifica utilizzando la chiave pubblica di Bob (Kp).
  4. Alice invia il risultato della cifratura a Bob.
  5. Bob decodifica il messaggio cifrato utilizzando la propria chiave privata, ricavando così la chiave generata da Alice.
  6. Alice e Bob possono iniziare a scambiarsi messaggi passando ad un prefissato algoritmo simmetrico, utilizzando la chiave Kc scambiata, come chiave comune.
error: Content is protected !!