giovedì 29 aprile 2010

Alice, Bob e Eva — Lucchetti pubblici e chiavi private

“Alice e Bob vogliono scambiarsi un messaggio m lungo un canale di comunicazione non sicuro”.

“Cosa significa non sicuro?”.

“Significa che Eva, la spia, è in ascolto e può intercettare e leggere tutto quello che Alice e Bob si dicono”.

“Ma perché questi nomi?”.

“Sono i nomi standard in uso nella crittografia, se si parla di crittografia bisogna usare quei nomi lì”.

“Capisco Alice e Bob, hanno le iniziali A e B, vabbé. Ma Eva? Perché non Carlo? O Charles, se non vogliamo nomi italiani”.

“Prima di tutto perché la spia che ascolta i discorsi degli altri è naturalmente una donna, sono le donne che sono pettegole…”.

“Ti rendi conto di quello che hai detto, vero?”.

“Si scherza, eh”.

“Vallo a dire alle lettrici che passano di qua”.

“Ma dai, Eva è il nome standard perché è quella che fa eavesdropping, cioè intercettazione, è un gioco di parole. Tieni presente poi che in inglese è Eve, che si pronuncia come l'inizio della parola eavesdropping”.

“Mh, una battutona da Vero Matematico”.

“E non hai visto tutti i nomi: c'è Charlie, nel caso di comunicazione a tre; Chuck, un terzo partecipante cattivo; Isaac, l'internet provider; Justin, il giudice; Mallory, il malvagio spione; Matilda, la mercantessa; Steve lo steganografo; Trent, la terza parte imparziale; Trudy, l'intrusa; Zoe, l'ultimo anello della catena della crittografia. Poi ce ne sono tanti altri”.

“Voi Veri Matematici siete fonte di eterno stupore”.

“E comunque, non dimentichiamo che Eva, dipinta sempre come una spia malvagia, in realtà è quella buona: è lei che ha amato Bob per prima, e Alice gliel'ha portato via”.

“Ma cosa stai dicendo?”.

“Niente, citavo una striscia di xkcd”.

“Va bene, lascio perdere subito. Allora, Eva intercetta il messaggio. Suppongo che Alice e Bob non vogliano”.

“Eh, no. Cioè, non possono impedire che lei lo intercetti. Lei, che è accorta, lo intercetta ma non lo modifica, questo è un punto fermo. Altrimenti nasce il problema della firma digitale, ma questo lo affrontiamo più avanti”.

“Ok, Eva può solo leggere, o ascoltare. Se non possono impedire che lei intercetti il messaggio, lo dovranno crittografare, vero?”.

“Esattamente. Nella crittografia classica si usa una chiave per codificare il testo del messaggio che vogliamo mantenere segreto: solo chi è in possesso della stessa chiave può decodificarlo”.

“E qui entrano in gioco i numeri primi?”.

“No, qui no. In questo caso Alice e Bob possiedono una chiave segreta che solo loro conoscono e che permette solo a loro di leggere e scrivere i messaggi. Alice usa la chiave per crittare, Bob per decrittare”.

“E dov'è il problema?”.

“Il problema è la chiave: Alice e Bob devono essersela scambiata in un qualche momento”.

“E allora?”.

“E allora, se Eva era in ascolto anche in quel momento, è un bel problema”.

“Vabbè, che problema sarà mai: si incontrano una volta, si scambiano la chiave e sono a posto”.

“Certo, infatti durante la guerra si faceva così. E per scoprire chiavi segrete si uccideva. Ma tu saresti disposto ad andare di persona dal tuo internet provider a scambiarti una password? E ogni volta che la cambi saresti disposto ad andare da lui a dirglielo? E con la posta elettronica, come facciamo? Vai alla sede di google ogni tanto? Presso quanti siti internet sei registrato? Quanti viaggi dovresti fare? Puoi sempre affidarti alle (e fidarti delle) poste, ma come la mettiamo con la velocità?”.

“Mh, credo di capire il problema”.

“Bene, la crittografia moderna risolve questo problema. L'idea è molto semplice: io non scambio una chiave, io distribuisco i lucchetti”.

“Eh?”.

“Alice vuole che Bob possa scriverle segretamente. Alice manda a Bob il suo lucchetto; Eva, se vuole, può copiarselo, non c'è problema. Bob scrive il suo messaggio, lo chiude con il lucchetto, e lo manda ad Alice. Eva lo vede, ma non può aprirlo, perché non ha la chiave. La chiave la possiede solo Alice”.

“Geniale. Ma funziona? Guardando il lucchetto, Eva non può capire come è fatta la chiave?”.

“No, il funzionamento del metodo sta tutto qui: Eva non riesce a capire come è fatta la chiave nemmeno analizzando il lucchetto”.

“E chi è che ha inventato questa roba?”.

“Eh, questa è una storia un po' complicata. Allora, nel 1976 Diffie e Helmann pubblicarono la loro idea per scambiarsi una chiave segreta su un canale insicuro. Questo sistema prende il nome di protocollo di Diffie-Helmann. L'idea però è stata suggerita dal lavoro precedente di Merkle, e nel 2002 Helmann dichiarò:”.

Da quella volta il sistema (…) è stato conosciuto con il nome di 'Diffie-Hellman key exchange'. Sebbene questo sistema fu descritto per la prima volta in una pubblicazione firmata da me e Diffie, esso è un sistema di distribuzione di chiave pubblica, un concetto sviluppato da Merkle, e quindi, se dovessimo associarvi dei nomi, dovrebbe chiamarsi 'Diffie-Hellman-Merkle key exchange'. Spero che questo piccolo intervento possa aiutare l'intento di dare il giusto riconoscimento al contributo di Merkle all'invenzione della crittografia a chiave pubblica.

“Ed è stato così?”.

“Sì, il brevetto che descrive l'algoritmo porta anche il nome di Merkle”.

“Oh, bene”.

“Ma la storia non è finita qua. In realtà nel 1973 altri ricercatori dell'agenzia governativa per la sicurezza della Gran Bretagna avevano avuto la stessa idea, ma tutto è stato tenuto segreto fino al 1997”.

“Ma dai, e questi poveracci non hanno avuto nessun riconoscimento?”.

“Eh, no”.

“Che delusione”.

“Già. Ma andiamo avanti: nel 1978 venne pubblicato un articolo che descriveva un nuovo sistema di crittografia a chiave pubblica, concettualmente simile a quello di Diffie-Helman ma che utilizza teoremi matematici differenti; più precisamente, si serve del teorema di Eulero”.

“Oh, finalmente vediamo l'applicazione di questo benedetto teorema”.

“Il metodo si chiama RSA, dalle iniziali dei tre matematici autori dell'articolo: Rivest, Shamir e Adleman. Di solito i matematici sono molto precisi e democratici, e quando devono elencare gli autori di un articolo lo fanno sempre in ordine alfabetico”.

“E come mai questa volta Adleman è in fondo, invece di essere primo?”.

“Perché i teorici erano Rivest e Shamir. Adleman era quello che faceva i test e smontava tutti i metodi, fino al momento in cui è stato trovato un metodo funzionante. Rivest e Shamir desideravano che anche lui fosse coautore dell'articolo, ma Adleman non voleva. Alla fine ha accettato, a patto che il suo nome fosse tenuto per ultimo. E così il nuovo sistema crittografico ha preso il nome di RSA, invece di ARS”.


·

1 commento:

.mau. ha detto...

anche perché ARS si legge come arse :-)