backup del Post

Uno dei blog di .mau.

22/05/2010 Uncategorized ,

Sistema anti-intercettazioni 2

Eravamo rimasti alla ricerca di un metodo perché Giulietta e Romeo potessero scambiarsi messaggi senza che nessuno, anche se riuscisse a intercettarli, fosse in grado di leggerli. I due amanti potevano racchiudere il messaggio in una scatola chiusa con un lucchetto, ma non avevano la possibilità di scambiarsi le chiavi dei lucchetti. E allora?

La soluzione al problema – il primo a trovarla è stato lucac – è a mio parere geniale. Giulietta manda a Romeo la scatola col proprio messaggio e gli mette un lucchetto G. Romeo riceve la scatola e la rimanda indietro, aggiungendo il proprio lucchetto R. In questo secondo viaggio la scatola ha pertanto due lucchetti, G e R. Giulietta, una volta riottenuta la scatola, toglie il proprio lucchetto e la manda una seconda volta a Romeo: ora la scatola ha solo il lucchetto R, che Romeo può tranquillamente togliere, riuscendo finalmente ad aprire la scatola e a leggere il messaggio. Aggiungere a piacere nel pacchetto le copie delle chiavi dei lucchetti, così la volta successiva non serve fare tutto quel giro. L’unica fregatura, se proprio volete, è che le poste si sono fatte i soldi con tutti questi trasferimenti…

Il problema può apparire piuttosto ozioso, almeno a prima vista, ma non è affatto così: la soluzione indicata è alla base del primo sistema di crittografia a chiave pubblica, quello di Diffie-Hellman. Anche nei sistemi di crittografia bisogna nascondere il messaggio da un possibile intruso che lo intercetti, e lo si vorrebbe fare senza per l’appunto scambiarsi in anticipo una chiave crittografica. Il punto chiave :-) dell’algoritmo consiste nel trovare un sistema per applicare più trasformazioni crittografiche del testo che siano commutative, e cioè possano essere eseguite in un ordine qualunque dando lo stesso risultato; altrimenti chi ha crittografato per primo deve essere l’ultimo a decrittare, e rimaniamo al punto di partenze. Nell’algoritmo di Diffie-Hellman l’operazione commutativa è l’elevazione a potenza modulo p, cioè il resto della divisione di Na per p; infatti (Na)b = (Nb)a. Non che basti questo per avere un algoritmo robusto, ma uscirei dal seminato a spiegare il funzionamento dell’algoritmo in questo contesto. Per stavolta limitiamoci ad apprezzare che anche i problemini matematici hanno applicazioni serie…

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.