La crittografia è la scienza che analizza le modalità per rendere inaccessibili le informazioni a chi le dovesse intercettare e renderle visibili solamente al reale destinatario del messaggio. Nel mondo informatico la crittografia gioca un ruolo fondamentale per poter consentire molteplici servizi quali ad esempio: servizi di pagamento, messaggistica, firma documenti.
Prima di cominciare l'analisi delle tecniche di crittografia a chiave simmetrica e crittografia a chiave asimmetrica è opportuno chiarire alcuni termini usati nel proseguio dell'articolo:
- testo in chiaro: messaggio da proteggere
- testo cifrato: messaggio cifrato che risulta incomprensibile
- cifratura: trasformazione del testo in chiaro in testo cifrato
- decifratura: trasformazione del testo cifrato in testo in chiaro
- algoritmo di cifratura: procedura che trasforma il testo in chiaro in testo cifrato
- chiave: parametro da cui dipende il risultato dell'algoritmo di cifratura
Nello studio degli algoritmi crittografici si ipotizza che l'algoritmo di cifratura sia noto a tutti e ciò che non è noto sia solo la chiave. Ad oggi infatti si ritiene insicuro basarsi sulla segretezza dell'algoritmo.
Nell'articolo vedrai come funzionano due tipi di crittografia denominati crittografia a chiave simmetrica e crittografia a chiave asimmettrica.
Crittografia a chiave simmetrica
La crittografia a chiave simmetrica, anche detta crittografia a chiave segreta, utilizza la stessa chiave per la cifratura e la decifratura.
Uno scenario tipico dell'algoritmo di cifratura è il seguente:
- Alice vuole inviare un testo in chiaro a Bob
- Alica cifra il testo in chiaro con la chiave ottenendo un testo cifrato (questa fase è denominata cifratura)
- Bob riceve il testo cifrato (fase di invio)
- Bob decifra il testo cifrato utilizzando la chiave (fase di decifratura)
- Bob ha ottenuto il testo in chiaro
Puoi visualizzare i punti elencati nella seguente immagine che mostra il flusso delle informazioni:
Nello scenario precedente si nota che sia Bob che Alice utilizzano la medesima chiave per cifrare/decifrare il testo. Quindi entrambi i soggetti devono accordarsi e scambiarsi la chiave per poter comunicare in modalità cifrata. Il grande problema della crittografia a chiave simmetrica è rappresentato dalla distribuzione delle chiavi. I due interlocutori, per potersi scambiare un messaggio, devono preliminarmente provvedere allo scambio della chiave. In campo informatico è infatti molto complesso scambiare una chiave con un interlocutore in maniera sicura.
Un noto algoritmo a chiave simmetrica è il DES (Data Encryption Standard).
Crittografia a chiave asimmetrica
La crittografia a chiave asimmetrica, anche detta crittografia a chiave pubblica, ha risolto il limite della distribuzione delle chiavi della crittografia a chiave simmetrica.
Nella crittografia a chiave asimmetrica ogni soggetto possiede una coppia di chiavi denominate:
- chiave pubblica: da distribuire a tutti quelli con cui si vuole comunicare
- chiave privata: da tenere segreta
La coppia di chiavi è corrispondente quindi perdere una delle due chiavi compromette la possibilità di cifrare/decifrare il testo.
Tutto ciò che viene cifrato con la chiave pubblica (operazione eseguibile da chiunque), può essere decifrato solamente con la corrispondente chiave privata, operazione eseguibile solo dal proprietario della chiave stessa.
Per effettuare una comunicazione con la crittografia a chiave asimmetrica non bisogna preoccuparsi di comunicare la chiave pubblica, poiché essa è nota a tutti. Per comunicare con una persona in modo sicuro bisogna solo cifrare il messaggio con la chiave pubblica del destinatario.
Di seguito un esempio per spiegare meglio un tipico scenario di utilizzo:
- Alice vuole inviare il testo in chiaro a Bob
- Alice cifra il testo in chiaro con la chiave pubblica di Bob ottenendo un testo cifrato (fase di cifratura)
- Alice invia il testo cifrato a Bob (fase di invio)
- Bob riceve il testo cifrato e lo decifra con la propria chiave privata (fase di decifratura)
- Bob ottiene il testo in chiaro
Puoi visualizzare i punti elencati nella seguente immagine che mostra il flusso delle informazioni:
Da notare quanto sia importante la segretezza della chiave privata in questo tipo di crittografia.
L'algoritmo più noto per la crittografia asimmetrica è l'RSA.
La chiave pubblica e la chiave privata sono corrispondenti. Tuttavia la conoscenza della chiave pubblica non consente di rilevare quale sia la chiave privata corrispondente.
La crittografia a chiave asimmetrica è utilizzata in moltissimi contesti:
- https(ssl)
- ssh
- criptovalute
- firma digitale
Conclusioni
L'articolo ha mostrato le caratteristiche e le differenze che intercorrono tra gli algoritmi di crittografia a chiave simmmetrica e crittografia a chiave asimmetrica. Gli esempi riportati hanno evidenziato che la crittografia a chiave asimmetrica è alla base dei meccanismi di sicurezza presenti nel web moderno.
Moltissime tipologie di applicazioni oggi basano la loro sicurezza su algoritmi di crittografia a chiave asimmetrica.