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.
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 | a | b | c | d | e | f | g | h | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
sostituita con | z | y | x | w | u | t | s | r | q | p | o | n | m | l | k | j | i | h | g | f | e | d | c | b | a |
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
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:
- La chiave per crittografare e decifrare il messaggio è la medesima. Ciò comporta un maggiore rischio perché chi può criptare il messaggio può anche decriptarlo
- 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
- 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
- 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:
- La chiave privata che serve per decifrare il messaggio e che va tenuta protetta e non deve essere assolutamente distribuita
- 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:
- Il destinatario del messaggio spedisce la propria chiave pubblica al mittente
- Il mittente si occupa di crittograre il messaggio usando la chiave pubblica del destinatario
- Il messaggio viene spedito crittografato al destinatario
- Il destinatario decifra il messaggio con la propria chiave 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.
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.