Esperimenti

I segreti del bancomat - Codici segreti

Carrello della spesaCaricare il carrello dopo aver pagato è l'ultima delle operazioni che si fanno al supermercato e per Giorgio è sempre stata la più importante. Ogni acquisto deve essere sistemato nella borsa giusta per essere ritrovato e distribuito facilmente a casa: e la vita è molto più semplice se le carote stanno con le patate, i detersivi coi detersivi e il dentifricio con la carta igienica. Se tutto è ben suddiviso, allora mettere ogni cosa nell'armadio giusto diventa un gioco da ragazzi. E così, Giorgio ha bisogno di starsene tutto tranquillo nella sua spartizione di borsa in borsa, e come al solito ha chiesto ad Anna di non distrarlo e le ha affidato la tesserina del bancomat con la quale ha appena pagato la spesa.

"Papà, ma come funziona il bancomat?",

la vocina di Anna ovviamente non ancora soddisfatta dalle domande precedenti arriva a interrompere la sua metodica concentrazione. "No, Anna, non è il momento, te lo spiego in macchina", la liquida papà, un po' per finire in tranquillità il suo lavoro, un po' nella speranza che la bimba si scordi di questa nuova domanda e non ricominci un'altra discussione.

Come si poteva scommetterci, però, le cose non vanno così. Giorgio fa appena in tempo a mettere in moto, ad accendere l'autoradio e a mettersi la cintura di sicurezza, che Anna riattacca, "papà, puoi spegnere la radio? Così ti sento quando mi spieghi del bancomat".

Il papà ha sempre pensato che l'automobile sia una trappola inventata dai bambini. Ogni volta che c'è una questione difficile da affrontare, una di quelle alle quali i genitori vogliono non rispondere, svicolando con mezze frasi e con silenzi sapienti, i bambini se la tengono in serbo e la sparano non appena ci si è sistemati in macchina. Lì non c'è scampo, bisogna rispondere, altrimenti parte il bombardamento di mille domande, la raffica di parole e punti interrogativi. Neanche questa volta farà eccezione, così Giorgio si arrende, spegne la radio e si schiarisce la voce.

"Vuoi sapere come funziona il bancomat, vero?",

CrittografiaAnna risponde appena con un mugugno, "mmm". Poi, dato che conosce suo papà, decide che bisogna spiegarsi meglio, "perché la cassiera riesce a prendere veramente i soldi? E perché non te ne prende di più dal conto in banca?". "Vedi, Anna, ci sono molte cose che servono a far funzionare il bancomat. Sai cos'è la crittografia? Cos'è un codice segreto?".

"È come l'alfabeto segreto. Quando con la mia amica Bruna ci parliamo coi segni, con le mani, nessuno ci capisce, perché siamo velocissime e nessuno riesce a capire cosa mi dice Bruna". "Ecco. Proprio così. Noi da bambini parlavamo la lingua farfallina, e per dire "che ore sono?" dicevamo "chefe oforefe sofonofo?...". "Chefe befellofo. Nonfo lofo cofonofoscefevofo!". Giorgio non può non ammirare la figlia che ha colto al volo il meccanismo del suo vecchio gioco. Così si lascia andare, si sgranchisce un po' la lingua e per qualche minuto i due si parlano in perfetto farfallese: chefe difivefertifimefentofo!

"E sai dirmi come funziona la lingua farfallina?", "certo: si mette sempre una effe dopo tutto, e poi la vocale che viene prima". "Bravissima, nella lingua farfallina ci sono una regola, ripetere la vocale, e una chiave, la lettera effe. La crittografia serve a nascondere, a chiudere in uno scrigno i messaggi, e così c'è sempre qualcosa che funziona come una chiave: apre e chiude. Tu metti la effe per parlare in segreto. Io che conosco la regola, la tolgo e capisco quello che vuoi dire. Con la stessa regola, invece della lingua farfallina, potevamo parlare la lingua abbaiante: tibi pibiabaceberebebbebe? Perbe mebe èbe dibiverbetebentebe".

"È la stessa cosa, solo che parli tutto con la bi". "Proprio così, ho cambiato la chiave. Nei codici segreti, il segreto è conoscere la chiave. Se qualcun altro conosce la chiave, usa la regola del codice e scopre il messaggio. In genere, non so bene perché, sapere solo la regola non basta. Se il codice segreto è più difficile della lingua farfallina, non è possibile capire la chiave sapendo la regola. Così, il problema è tutto scambiarsi la chiave segreta. Bisogna stare attentissimi che nessuno la intercetti."

Pagamento con Bancomat"Sì, ma il bancomat, cosa c'entra?", Anna richiama il papà all'ordine per cercare di capirci qualcosa: è bello giocare con le parole, ma è il bancomat quello che vuole capire. Così, Giorgio è costretto a interrompersi e prova a ricominciare in un altro modo, "tu hai un diario segreto, vero?". "Certamente!", Anna è orgogliosa del suo diario che la zia Cecilia le ha regalato per il compleanno. "Immagino che tu, qualche volta, vorresti farlo leggere a Bruna?". Anna freme un po', vorrebbe che il papà le rispondesse sul bancomat, ma è anche molto interessata a tutto quello che riguarda il suo diario e allo scambio di segreti con la sua amica. "Non si può. Perché correrei il rischio che qualcun altro lo trovi aperto, senza lucchetto e lo legga!", risponde decisa.

"E invece, un metodo c'è, ed è quello che usano le banche col bancomat". "Come si fa?", Anna adesso è interessatissima.

"Basta che tu glielo mandi chiuso con il lucchetto…". "Ma così non può mica leggerlo: è chiuso". "Hai ragione, ma Bruna non deve leggerlo, deve solo metterci il suo lucchetto, chiuderlo e rispedirtelo", "ma così non posso leggerlo io!". "Hai di nuovo ragione, ma puoi togliere il tuo lucchetto e rispedirglielo chiuso col suo lucchetto".

Anna si illumina, "in questo modo il diario viaggia sempre chiuso e nessuno può leggerlo; e quando Bruna lo riceve, le basta aprire con la sua chiave il suo lucchetto, per leggere il mio diario!".

Giorgio è contento che Anna abbia capito il ragionamento e tira un sospiro di sollievo, nell'attesa che arrivi l'inevitabile domanda.

Anna fa appena in tempo a riprendersi dall'eccitazione per aver scoperto come comunicare in segreto con l'amica, che torna alla domanda iniziale: "e il bancomat funziona così?".

"In un certo senso, funziona così. Solo che per farlo funzionare, il registratore di cassa della cassiera e il computer della banca usano al posto del lucchetto dei numeri primi. Sai quali sono, vero?".

"Certo: sono i numeri che non si possono dividere". "Ecco, devi sapere che c'è un fatto incredibile: prendi due numeri primi grandissimi, che hanno un enorme numero di cifre, cioè sono lunghissimi, e moltiplicali. Ci metterai molto tempo. Ma la cosa fantastica è che se qualcun altro vuole provare a ritrovare i due numeri primi, a partire dal loro prodotto, ci mette molto, ma molto, ma molto tempo di più: se i numeri sono abbastanza lunghi, può non bastare tutto il tempo di una vita con un computer potentissimo!".

"Allora, è praticamente impossibile ritrovare i due numeri primi".

"Proprio così, e qui sta il trucco. I matematici hanno scoperto delle equazioni che hanno due soluzioni: se conosce tutte e due le soluzioni, il registratore di cassa del supermercato riesce a trovare i due numeri primi in poco tempo altrimenti no".

"Non ho capito". Giorgio prova a ricominciare di nuovo, e decide di provare a raccontare quello che fanno veramente il computer della banca e il registratore di cassa.

"Quando la cassiera batte il prezzo e si collega al computer della banca, quello che sta succedendo è che il registratore di cassa sceglie due numeri primi, li moltiplica e manda il prodotto alla banca. A questo punto, il computer della banca non sa ritrovare i due numeri primi in poco tempo e allora cosa fa? sceglie un altro numero grande e scrive una delle equazioni che i matematici hanno scoperto. Hai capito?".

"Certo. Adesso il registratore, ha i due numeri primi e un'equazione. Cosa se ne fa?". "Per prima cosa risolve l'equazione, trova le due soluzioni e ne manda una sola alla banca. Se le ha mandato la stessa di prima, la banca non riesce a trovare i numeri primi. Se invece le ha mandato l'altra, il computer trova subito i due numeri primi. Allora dà l'ok al registratore di cassa".

Bancomat - disegno"E a cosa serve la tessera?" "A mandare alla banca la soluzione giusta! Se il registratore legge male il codice, o se io sbaglio a batterlo, non arriva la soluzione giusta e il computer della banca non dà i soldi". "E la cassiera del supermercato come fa a sapere che tutto va bene?", "semplice, perché quando riceve l'ok dalla banca, le chiede i due numeri primi. Se sono quelli iniziali, tutto va bene e si completa l'operazione. Se sono diversi, c'è un errore".

Giorgio sospira sollevato. Gli sembra di essersi spiegato abbastanza bene e, soprattutto, sono arrivati a casa e Anna corre giù dalla macchina e si precipita a salutare la mamma. Il papà non fa in tempo a caricarsi delle prime borse che sente già provenire da dentro le voci dei due figli che hanno cominciato il primo piccolo bisticcio del pomeriggio.

Conclusione: codici segreti

La funzione dei codici segreti è molto semplice: rendere incomprensibile ciò che qualcuno non deve leggere. Ci sono Anna e Bruna che devono scambiarsi un messaggio e vogliono farlo essendo sicuri che nessun altro lo legga.

Per secoli e secoli, la crittografia (che è l'arte di rendere segreto un messaggio) lavorava così: inventava un metodo "f" che aveva bisogno di una chiave "c" e quindi trasformava il messaggio "m" in un messaggio segreto f(c,m). Il metodo "f" più la chiave "c" costituiscono quello che si chiama un codice segreto.

Tutta quest'operazione veniva fatta da chi doveva spedire il messaggio - che quindi si trovava in mano la chiave "c" e il messaggio segreto f(c,m). Spediva quest'ultimo all'amico che doveva leggere "m". In questo modo, era certo che nessun nemico sarebbe riuscito a risalire da f(c,m) a m: infatti avrebbe avuto bisogno di avere la chiave "c". Questo, però, è anche il problema dell'amico, che ha bisogno di avere la chiave per fare il percorso inverso da f(c,m) a m. Quindi, per lungo tempo, la parte complicata della crittografia è stata proprio quella di recapitarsi la chiave "c" senza che nessuno la intercettasse.

È evidente che, in questa situazione, trasmettere "c" ha la stessa delicatezza di trasmettere "m". Se la chiave viene intercettata dal nemico, anche il messaggio sarà a sua disposizione!

Nel Ventesimo secolo, c'è stata una rivoluzione, il metodo RSA, che permette di scambiarsi in modo sicuro messaggi utilizzando una chiave che tutti (anche i potenziali nemici) conoscono: il metodo RSA è un metodo a chiave pubblica. Vediamo come funziona:

1) Anna deve mandare a Bruna il suo diario segreto, perché lo legga. Ovviamente vuole che nessun altro possa fare lo stesso.

2) Anna chiude con il suo lucchetto il diario e lo manda a Bruna

3) Bruna aggiunge un secondo lucchetto al diario e lo restituisce ad Anna

4) Anna toglie il suo lucchetto dal diario e lo rispedisce a Bruna, chiuso con il lucchetto di questa

5) Bruna apre e legge

Per la restituzione, lo scambio funziona allo stesso modo solo a parti invertite.

Naturalmente, il metodo RSA è un po' meno ingenuo della situazione tra Anna e Bruna e permette scambi di messaggi più articolati di un diario segreto.

Il primo passo è molto semplice, consiste nel trasformare il messaggio in un numero naturale, ad esempio sostituendo alla a il numero 001, alla b lo 002, alla c lo 003 e così via. Quindi, d'ora in poi, il messaggio "m" di Anna è un numero naturale. Il secondo passo consiste nel calcolare f(c,m), il terzo nello spedire a Bruna proprio f(c,m), il messaggio criptato.

Come abbiamo detto, il problema si sposta sulla spedizione di "c". Vediamo ora come fa Anna a scegliere e spedire "c" in modo da essere tranquilla:

1) Anna deve scegliere "c" e mandarlo a Bruna.

2) Anna prende due numeri primi molto grandi "p" e "q" e li moltiplica tra loro. In questo modo ottiene c=pq che spedisce a Bruna.

3) Bruna sceglie un numero "e" il cui quadrato sia più grande di c, e2%3Ec, e calcola f=e2(mod c).

Quindi spedisce "f" ad Anna.

4) Anna risolve l'equazione x2=f (mod c) e trova due soluzioni diverse "d" ed "e". Per trovarle, Anna risolve due equazioni molto più facili che sono x2=f (mod p) e x2=f (mod q). A questo punto, spedisce a Bruna una delle due soluzioni scelte a caso.

5) Primo caso: spedisce "e".

6) Bruna riceve "e", col quale non è in grado di calcolare la scomposizione di "c". Quindi, sceglie un nuovo numero "e" e ricomincia da capo.

5') Secondo caso: spedisce "d".

6') Bruna riceve "d" e calcola d2=e2(mod c)

che le assicura che "c" divide d2-e2. Le è quindi possibile scomporre "c" e trovare "p" e "q". Spedisce "p" e "q" ad Anna.

7') Anna riceve "p" e "q" e comunica a Bruna che ha scoperto la chiave giusta.

8') Bruna è in grado di tradurre il messaggio criptato e leggere "m".

Il metodo RSA funziona su una considerazione pratica: moltiplicare due numeri primi grandi richiede poco tempo. Viceversa, scomporre un numero c=pq che è il prodotto di due numeri primi grandi ha invece bisogno di tantissimo tempo.

Il tutto si velocizza se si conoscono le due soluzioni "d" ed "e" di un'equazione di secondo grado modulo c. Infatti, quando Bruna sa di avere le due soluzioni sa anche che c| d2-e2, e quindi che pq|(d+e)(d-e). Poiché "p" e "q" sono primi, sa che o dividono (d+e) o dividono (d-e) e questo le consente di trovare i due fattori di "c".

Dal punto di vista di Anna, invece, è molto facile trovare le soluzioni dell'equazione x2=f (mod c), perché le basta risolvere le due equazioni più semplici x2=f (mod p) e x2=f (mod q): per lei è possibile, in quando conosce "p" e "q".

In questo modo, Anna e Bruna sono in possesso ciascuna di una metà dell'informazione, cosa che consente a ognuna di loro di controllare se l'altra ha trovato o meno la soluzione. Ricordiamoci che Bruna deve scomporre "c" e Anna deve trovare "d".