Pagina iniziale | Navigazione |
Google

Crittografia asimmetrica

La crittografia asimmetrica, spesso chiamata "crittografia a coppia di chiavi" o "crittografia a chiave pubblica/privata" (dal suo uso più comune) o anche solo "crittografia a chiave pubblica" (dando risalto alla vera novità di questo metodo: la presenza di una chiave che può, e deve, essere resa pubblica) rappresenta un recente e rivoluzionario approccio al problema della distribuzione delle chiavi (ovvero che se ho necessità di crittare il messaggio non posso usare lo stesso canale per mandare al destinatario anche la chiave dello stesso), che in gran parte risolve.

L'idea base della crittografia con coppia di chiavi diviene più chiara se si usa un'analogia postale: il mittente A chiude il pacco con un lucchetto di cui possiede la chiave, conserva la chiave e spedisce il pacco al destinatario B. Quest'ultimo riceve il pacco (che non può aprire perché non ha la chiave), lo chiude nuovamente con un lucchetto di cui conserva a sua volta la chiave e rispedisce il pacco ad A. A toglie il suo lucchetto e rispedisce il pacco a B - che può finalmente aprire il pacco, chiuso ormai solo con il lucchetto da lui scelto.

Questo semplice metodo condivide alcune caratteristiche con la crittografia a chiave pubblica: si tratta di un sistema che risolve efficacemente il classico problema della crittografia tradizionale. Se la sicurezza del sistema dipende dalla segretezza della chiave di codifica utilizzata, allora è necessario almeno un canale sicuro attraverso il quale trasmettere la chiave. Per concordare una chiave con il proprio interlocutore c'è bisogno di mettersi preventivamente in contatto con lui incontrandolo di persona, telefonandogli, scrivendogli una lettera, mandandogli un messaggero o in qualsiasi altro modo. In qualsiasi caso, esiste il pericolo che la chiave venga intercettata durante il tragitto, compromettendo quindi l'intero sistema comunicativo.

La crittografia a chiave pubblica permette a due (o più) persone di comunicare in tutta riservatezza anche se non si sono mai incontrate prima e dunque non è mai stata concordata in precedenza alcuna chiave di codifica. La cosa è apparentemente assurda e anti-intuitiva, ma il principio in base al quale è possibile tutto questo è relativamente semplice da comprendere. Nella crittografia tradizionale viene utilizzata un'unica chiave sia per codificare, sia per decodificare i messaggi. Le informazioni (la chiave e l'algoritmo) necessarie per chi deve inviare il messaggio sono quindi identiche a quelle necessarie a chi deve riceverlo.

La crittografia a chiave pubblica, al contrario, si basa su una coppia di chiavi: una chiave pubblica ed una chiave segreta. La chiave pubblica serve unicamente per codificare il messaggio, mentre quella segreta serve unicamente per decodificarlo. È come se una cassaforte avesse due chiavi distinte, una usata per aprirla e una per chiuderla. A questo punto il gioco è fatto: ogni utilizzatore si crea la propria (o le proprie, in casi particolari) coppia di chiavi. La chiave segreta viene tenuta, appunto, segreta e non viene mai rivelata a nessuno (nemmeno alle persone con le quali si comunica); viceversa, la chiave pubblica viene diffusa ovunque e in ogni modo: può essere aggiunta automaticamente in coda a ciascun proprio messaggio nelle varie conferenze elettroniche cui si partecipa, o può essere depositata in archivi pubblici (keyserver) a disposizione di chi la desideri. È importante che la tua chiave pubblica sia liberamente accessibile, perché chiunque voglia comunicare con te dovrà preventivamente munirsi della tua chiave pubblica (eventualmente anche chiedendotela direttamente) con la quale crittare il messaggio a te indirizzato.

La differenza rispetto alla crittografia tradizionale sta nel fatto che adesso non è più necessario trovare un luogo sicuro nel quale vedersi e scambiarsi la chiave di codifica/decodifica, in quanto anche nel caso la chiave pubblica venisse intercettata non ci sarebbe assolutamente nessuna conseguenza: le chiavi pubbliche che viaggiano liberamente in rete possono solo crittare, non decrittare i messaggi. Con le coppie di chiavi della crittografia a chiave pubblica diventa possibile condurre discorsi riservati anche tra individui che non si sono mai conosciuti o visti di persona, magari perché separati da migliaia di chilometri di distanza.

Chiunque può usare la chiave pubblica del destinatario per crittare un messaggio diretto a lui - mentre il destinatario userà la propria corrispondente chiave segreta per decrittare quel messaggio. Nessuno che non sia il destinatario può decrittarlo, perché nessun altro ha accesso alla chiave segreta; nemmeno la persona che ha mandato il messaggio potrà più aprirlo una volta crittato.

In realtà il problema non è del tutto risolto perché non posso essere certo che la chiave da me trovata sul keyserver appartenga davvero alla persona nominata nell'intestaizone della chiave stessa, per cui un contatto "fisico" è pure sempre necessario per avere la sicura autenticazione dell'interlocutore, basta però in questo caso controllare che la chiave sia quella giusta e non inviare la chiave stessa, quindi l'autenticazione si può svolgere anche su un canale non sicuro; ad esempio il programma PGP, il primo sistema crittografico di massa che si avvale delle idee della crittografia asimmetrica consiglia, dopo essersi scambiati le chiavi per e-mail o altro mezzo, di telefonarsi e di leggersi i fingerprint (letteralmente "impronte digitali", ovvero un codice (codice di hash) associabile in modo sicuro alla chiave stessa, ma dal cui nno si può richiavare la chiave); in questo modo, riconoscendo le rispettive voci, si certifica anche la validità della chiave ottenuta.
Un altro metodo può essere quello di mandare un messaggio crittato alla chiave "sospetta" chiedendo all'interlocutore una domanda che solo lui può sapere (lui può fare lo stesso a sua volta): il sistema di crittografia asimmetrica assicura che il messaggio può leggerlo solo il vero autore della chiave e la domanda "personale" mi assicura che chi ha letto il messaggio è davvero la persona che pensavo.
Il metodo più sicuro resta comunque sempre quello di incontrarsi di persona.

Ovviamente questo principio generale ha una solida base matematica che lo giustifica; tale base, riassunta e semplificata all'estremo, si fonda sull'uso di un problema complesso, ovvero un'operazione matematica semplice da eseguire ma dal cui risultato è difficile risalire agli argomenti della stessa. L'esempio classico è il problema della fattorizzazione di un numero (trovare i numeri primi che lo producono se moltiplicati tra loro, ad esempio fattorizzando il numero 1001 si ottengono i seguenti fattori primi: 7, 11, 13) usata nel primo e più famoso sistema crittografico a chiave pubblica: RSA. Le conoscenze di matematica pura sviluppate dall'uomo negli ultimi secoli hanno reso sempre più efficente fattorizzare, ma nessuno è mai riuscito a far fare quel "salto" che porta il problema da complesso a non essere più complesso, il problema diventa quindi intrattabile per numeri oltre una certa dimensione, attualmente per la crittografia RSA vengono considerati "sicuri" numeri di almeno 300 cifre (chiavi da 1024 bit e oltre). Altro esempio di problema complesso è il logaritmo discreto, usato nella nascente crittografia ellittica.

La crittografia è comunque una scienza basata sulle probabilità: i problemi complessi vengono considerati complessi basandosi sul fatto che centinaia di anni di studio non hanno saputo risolverli in modo rapido (ricordiamoci che c'è sempre almeno un modo "non rapido" per risolvere un problema: provare a fare l'operazione diretta con tutti i numeri fino alla dimensione necessaria; questo tipo di soluzione in genere non è neanche contemplata in quanto il tempo necessario aumenta vertiginosamente con la dimensione dei numeri usati), ma nessuno dei problemi usati in crittografia ha un teorema che ne dimostra la complessità (l'unico sistema crittografico dimostrato è lo One Time Pad, ma sfortunatamente è un sistema simmetrico - ovvero non a chiave pubblica - ed estremamente scomodo da usare).

Link esterni


GNU Fdl - it.Wikipedia.org




Google | 

Enciclopedia |  La Divina Commedia di Dante |  Mappa | : A |  B |  C |  D |  E |  F |  G |  H |  I |  J |  K |  L |  M |  N |  O |  P |  Q |  R |  S |  T |  U |  V |  W |  X |  Y |  Z |