1 Crittografia simmetrica e asimmetrica
La crittografia è la scienza che si occupa di proteggere delle
informazioni rendendole incomprensibili a chi le dovesse intercettare,
in modo che possano essere lette e capite solo dal
destinatario75.
Il messaggio da proteggere viene detto testo in chiaro, mentre
quello ``trasformato'' in modo da essere incomprensibile viene
detto testo cifrato; la trasformazione da testo in chiaro a
testo cifrato si dice cifratura, mentre la trasformazione inversa
si dice decifratura. La trasformazione crittografica è detta
algoritmo di cifratura, e specifica la procedura che trasforma
il testo in chiaro in quello cifrato. Questa trasformazione è parametrica,
e il parametro è detto chiave: questo significa che la trasformazione
in sé è soltanto un procedimento, che però per essere attuato ha bisogno
di un'informazione ulteriore, da cui dipende il risultato. Per decifrare
il messaggio non basta conoscere l'algoritmo di cifratura utilizzato,
ma è necessario conoscere anche la chiave. In genere nello studio degli
algoritmi crittografici e della loro sicurezza si ipotizza che l'algoritmo
sia noto a tutti e che ciò che non è noto sia esclusivamente la chiave:
questo perché oggi si considera inaffidabile un sistema crittografico
la cui sicurezza si basi sulla segretezza dell'algoritmo.
La crittografia tradizionale si basa sul meccanismo descritto in figura
A.1, per cui cifratura e decifratura
sono effettuate utilizzando la stessa chiave: per questo si parla di crittografia
simmetrica, o anche, dato che tale chiave deve
essere nota solo ai due interlocutori, di crittografia a chiave segreta. Un noto
algoritmo di questo tipo è il DES (Data Encryption Standard).
Figura A.1:
Crittografia simmetrica.
|
|
Il grosso problema di questo approccio è però la distribuzione
delle chiavi: se due interlocutori vogliono usare un algoritmo di questo
tipo per comunicare in modo sicuro devono prima accordarsi in qualche modo
sulla chiave, per esempio vedendosi di persona. Dato che il canale che usano
per la trasmissione dei messaggi non è sicuro (altrimenti non avrebbero
bisogno di cifrarli), non possono infatti utilizzarlo per trasmettere la chiave.
Il problema è stato risolto in tempi relativamente recenti (anni Settanta)
con l'invenzione della crittografia a chiave pubblica.
Con algoritmi di questo tipo ognuno ha due chiavi: una pubblica da distribuire
a tutti quelli con cui vuole comunicare, e una privata da tenere
segreta. Ciò che viene cifrato con la chiave pubblica (operazione
che può essere fatta da chiunque) può essere decifrato solo con la chiave
privata corrispondente (operazione che può essere fatta solo dal proprietario
della chiave): in questo modo non c'è più il problema di comunicare
segretamente la chiave, perché questa è nota a tutti; per comunicare
in modo sicuro con una persona basta cifrare il messaggio con la sua
chiave pubblica, come illustrato in figura A.2.
Gli algoritmi di questo tipo sono detti a chiave asimmetrica,
e il più noto tra essi è probabilmente RSA (si veda l'appendice A.4).
Figura A.2:
Crittografia asimmetrica.
|
|
Una delle grosse innovazioni permesse dalla crittografia asimmetrica
è la firma digitale: il mittente di un
messaggio può infatti firmarlo grazie alla sua chiave privata
(che solo lui possiede), ma tutti sono in grado di verificare l'autenticità
della firma grazie alla chiave pubblica (che è globalmente nota).
La firma può poi essere abbinata alla normale cifratura, ottenendo
messaggi firmati e cifrati, nel modo seguente (figura A.3).
Si ipotizzi che Bob voglia mandare un messaggio ad Alice: per prima cosa lo cifrerà
con la propria chiave privata (firma) e poi con quella pubblica di
Alice (cifratura), infine spedirà il messaggio. Quando Alice lo riceverà,
prima lo decifrerà con la propria chiave privata (operazione che solo
lei può fare, per cui è garantita la confidenzialità) e poi con quella
pubblica di Bob: se l'operazione va a buon fine Alice ha la certezza
che il mittente è davvero Bob, perché solo lui può aver cifrato il
messaggio con la propria chiave privata. In realtà il modo in cui si
realizza la firma digitale non è proprio questo, ma è leggermente più
complicato. Ciò che il mittente cifra con la propria chiave privata per
garantire l'autenticità non è l'intero messaggio, ma una sua ``impronta''
(detta digest) ottenuta mediante una particolare funzione
(funzione di hash, si veda l'appendice A.5); il digest
cifrato viene poi allegato al messaggio e ne costituisce la firma.
Il destinatario calcola il digest del messaggio ricevuto (la funzione
di hash è pubblica) e lo confronta con quello che ottiene decifrando
con la chiave pubblica del mittente la firma allegata: se coincidono
la firma è autentica.
Figura A.3:
Cifratura e firma digitale.
|
|
Si potrebbe pensare che dopo l'invenzione della crittografia a chiave
pubblica quella a chiave segreta abbia perso interesse, ma le cose
non stanno così. Gli algoritmi asimmetrici sono infatti computazionalmente
molto più onerosi di quelli simmetrici, per cui il loro uso risulta
molto più pesante. Una soluzione comunemente adottata è l'uso della crittografia
asimmetrica per concordare una chiave segreta da utilizzare poi per
scambiarsi i messaggi tramite un algoritmo a chiave simmetrica: in
questo modo il ``pesante'' algoritmo a chiave pubblica viene usato
solo per trasmettere una piccola quantità di dati (la chiave segreta),
mentre per il resto si usa il più leggero algoritmo a chiave segreta.
Footnotes
- ...
destinatario75
- Non bisogna confondere i sistemi crittografici,
in cui il messaggio è identificabile ma incomprensibile, con quelli
atti a nascondere l'informazione in modo che non ci si accorga
della sua presenza (ad esempio scrivere un messaggio con inchiostro
simpatico). La scienza che si occupa di queste ultime tecniche è detta
steganografia.
©2001 Davide Cerri