linux user group brescia

immagine del castello

Archivio della mailing list

One Time Pad

giorusconi a libero.it giorusconi a libero.it
Dom 21 Nov 2004 10:26:14 UTC
Ciao ML!

Sono un appasionato di crittografia e ultimamente mi sono interessato alla
crittografia One Time Pad (OTP).
Tale sistema è a chiave simmetrica (chi invia e chi riceve il messaggio -Alice
e Bob- devono possedere entrambi la stessa chiave) e si basa sul principio
della traslazione di ogni lettera del messaggio di un numero di posizioni che
la chiave indica per quella lettera. Un esempio sarà molto più chiaro:

Messaggio in chiaro: C I A O
Chiave:              a d f h
Messaggio cifrato:   D O G Z

La particolarità della crittazione OTP è che la chiave è lunga come il
messaggio: grazie a questo, si dimostra matematicamente che tale cifratura
è inviolabile.

Questo sistema crittografico ha però due limitazioni:

- Alice e Bob devono scambiarsi la chiave tramite un canale sicuro
(sostanzialmente, incontrandosi di persona);
- la chiave deve essere effettivamente casuale e non solo pseudo-casuale.

Per questi motivi la crittografia OTP non sta godendo attualmente di grande
fortuna. Ciononostante esistono degli scenari di utilizzo in cui essa può
essere molto utile, ad esempio due amici che si vedono una volta all'anno di
persona possono scambiarsi un CD (o addirittura un DVD) contente una chiave
enorme, da utilizzare poi per scambiarsi email cifrate durante tutto l'anno.

Qualche settimana fa ho cercato un programma su Linux che gestisse questa
cifratura. Su freshmeat ne ho trovati alcuni, ma la maggior parte non erano
granchè. Ce n'era uno carino, XORSuite. L'ho scaricato e ho dato un'occhiata
al sorgente. Ho trovato un baco, per cui ho contattato l'autore che mi ha
risposto dicendomi che il programma non è nè sviluppato nè mantenuto, ma che
se voglio cambierà la licenza in GPL o BDSL (attualmente il programma non è
software libero) per poter portarne avanti lo sviluppo.

Io non sono in grado di mantenere e sviluppare un programma del genere (so
programmare, ma non ho nessuna esperienza di programmazione sicura e di
gestione di un progetto così complesso). Farei volentieri da beta-tester e
"sviluppatore secondario", per cui cerco qualcuno esperto in programmazione
interessato allo sviluppo di questo programma (che è scritto in C).

Ciao,
Gio




Maggiori informazioni sulla lista Lug