INTERNET - CRITTOGRAFIA E CHIAVI PUBBLICHE
Ciao, sono Mia Gil-Epner,
mi sto specializzando in Informatica
all'Università di Berkley
e lavoro per il Dipartimento della Difesa,
di cui cerco di tenere al sicuro i dati.
Internet è un sistema aperto e pubblico,
tutti noi inviamo e riceviamo dati
attraverso linee condivise.
Ma nonostante sia un sistema aperto
continuiamo a scambiarci un sacco di dati personali
come: numeri di carte di credito,
dati bancari, password e email.
Quindi, come tenere segreti tutti questi dati personali?
Dati di ogni tipo possono esser resi segreti
attraverso un processo noto come "cifratura":
il rimescolamento del messaggio
per nascondere il testo originale.
Invece la "decifratura" è il processo
con cui viene ricomposto il messaggio
per renderlo leggibile.
Si tratta di una semplice idea
e le persone la mettono in atto da secoli.
Uno dei primi e più noti metodi di cifratura
fu il Cifrario di Cesare
nome dovuto a Giulio Cesare
un generale romano che cifrava i suoi ordini militari
per esser sicuro che,
se anche un messaggio fosse stato intercettato dai nemici,
questi non sarebbero riusciti a leggerlo.
Il Cifrario di Cesare è un algoritmo
che sostituisce ogni lettera nel messaggio originale
con una lettera che sta un certo numero di posizioni
al di sotto nell'alfabeto.
Visto che il numero di posizioni è noto
solo al mittente e al destinatario,
è considerato la "chiave".
Questa permette al destinatario
di decifrare il messaggio segreto.
Ad esempio, se il messaggio originale è "HELLO",
allora, usando l'algoritmo del Cifrario di Cesare
con chiave 5,
il messaggio cifrato sarà questo...
Per decifrare il messaggio,
il ricevente dovrebbe semplicemente usare la chiave
per invertire il processo.
Ma c'è però un grande problema con il Cifrario di Cesare,
chiunque può facilmente rompere o violare
il messaggio cifrato
provando ogni chiave possibile.
E nell'alfabeto inglese ci sono solo 26 lettere,
il che significa che dovreste fare provare
al massimo 26 chiavi
per decifrare il messaggio.
Ora, provare 26 chiavi possibili
non è molto difficile,
servirebbe circa un'ora.
Quindi, complichiamo le cose.
Invece di sfasare ogni lettera
dello stesso numero di posizioni,
sfasiamo ogni lettera di un numero
di posizioni diverso.
In questo esempio, una chiave a 10 cifre
stabilisce di quante posizioni verrà sfasata ogni lettera
per cifrare un messaggio più lungo.
Indovinare questa chiave sarebbe davvero difficile.
Con la cifratura a 10 cifre,
avremmo 10 miliardi di possibili soluzioni.
Ovviamente questo va ben oltre
ciò che un qualunque essere umano potrebbe risolvere,
gli servirebbero molti secoli.
Ma oggi, un computer di fascia media,
impiegherebbe pochi secondi
per provare tutti i 10 miliardi di possibilità.
Quindi, nel mondo contemporaneo,
in cui i cattivi sono armati di computer
anziché di matite,
come si possono cifrare i messaggi
con un grado di sicurezza tale
che sia "troppo difficile" violarli?
"Troppo difficile"
significa che ci sarebbero troppe possibilità da calcolare
in una ragionevole quantità di tempo.
Oggi le comunicazioni sicure vengono cifrate
utilizzando chiavi a 256 bit.
Ciò significa che il computer di un cattivo
che intercettasse il messaggio
dovrebbe provare questo enorme numero
di possibilità alternative
prima di scoprire la chiave e violare il messaggio.
Anche se si possedessero 100 mila super computer
e ognuno fosse in grado di provare
1 milione di miliardi di chiavi al secondo, servirebbero
miliardi di miliardi di miliardi di miliardi di anni
per provare tutte le possibili alternative,
solo per violare un singolo messaggio
protetto con la crittografia a 256 bit.
Sappiamo che i chip dei computer
vanno a velocità doppia e dimezzano la loro dimensione
circa ogni anno.
Se continuerà questo ritmo di progresso esponenziale,
problemi oggi irrisolvibili
diventeranno risolvibili tra poche centinaia di anni
e 256 bit non saranno più sufficienti per stare al sicuro.
E in effetti, in passato,
abbiamo già dovuto aumentare la lunghezza
della chiave standard
per tenere il passo con la velocità dei computer.
La buona notizia è che usare una chiave più lunga
non rende solo un po' più complessa la cifratura,
fa bensì aumentare esponenzialmente
il numero di possibilità che servirebbero per violare
un messagio cifrato.
Quando il mittente e il destinatario
condividono la stessa chiave
per cifrare e decifrare il messaggio,
si parla di CRITTOGRAFIA SIMMETRICA.
Con la crittografia simmetrica,
come il Cifrario di Cesare,
la chiave segreta deve essere concordata in anticipo
da due persone in privato.
Questo può andar bene per le persone
ma Internet è aperta e pubblica,
quindi è impossibile per due computer
"incontrarsi" in privato,
per accordarsi su una chiave segreta.
Invece i computer utilizzano
chiavi di cifratura asimmetriche:
una chiave pubblica
che può essere condivisa con chiunque
e una chiave privata che non va condivisa.
La chiave pubblica serve per cifrare i dati
e chiunque può usarla per creare un messaggio segreto,
ma il messaggio può esser solamente decifrato
da un computer che conosca la chiave privata.
Il funzionamento si basa su principi matematici
che non approfondiremo qui.
Pensatela così:
immaginate di avere una cassetta postale personale
dove chiunque può depositare delle lettere,
ma ha bisogno di una chiave per farlo.
Potete fare molte copie della chiave di deposito
e inviarne una ai vostri amici
o anche renderla accessibile pubblicamente.
I vostri amici o anche degli estranei
possono usare la chiave pubblica
per accedere al vostro spazio di deposito
e lasciare un messaggio,
ma solo voi potete aprire la cassetta postale
con la vostra chiave privata
per accedere a tutti i messaggi segreti che avete ricevuto.
E potrete inviare messaggi sicuri
in risposta ai vostri amici
usando la chiave pubblica di deposito
delle loro cassette postali.
In questo modo le persone possono scambiare messaggi sicuri
senza mai aver bisogno di accordarsi su una chiave privata.
La crittografia a chiave pubblica
è la base di tutti i sistemi di messaggistica sicura
su Internet,
compresi i protocolli di sicurezza SSL e TLS
che garantiscono la nostra sicurezza
quando navighiamo sul web.
I computer odierni la sfruttano
ogni volta che vedi il lucchetto
o la scritta "https" nella barra degli indirizzi
del browser,
ciò significa che il computer
sta usando la crittografia a chiave pubblica
per rendere sicuro lo scambio di dati
con il sito web visitato.
Maggiore è il numero di persone che usa Internet,
maggiore sarà il numero di dati personali trasmessi
e la necessità di mantenere sicuri quei dati
sarà ancora maggiore
e, via via che i computer diventano più veloci,
dovremo sviluppare nuovi metodi
per rendere la cifratura "troppo difficile" da violare
da parte dei nuovi computer.
In questo consiste il mio lavoro
e si evolve continuamente.