La tecnica utilizzata è quella solita di spezzettare (parallelizzare) una grossa mole di calcoli in piccole unità di lavoro da inviare ai singoli PC connessi al progetto. La storia del progetto inizia nel 1997 come sforzo di un piccolo gruppo di programmatori per vincere una competizione a premi di crittografia, lanciata dalla RSA (la divisione Sicurezza della compagnia commerciale EMC). Il progetto poi evolve attraverso la partecipazione ad altre competizioni sino alle dimensioni attuali: i dati si possono reperire alla pagina delle statistiche.
Nel corso degli ultimi due anni sono state sviluppate delle interfacce con la piattaforma BOINC quindi ora è possibile sia scaricare i client di elaborazione in modo indipendente, sia agganciarsi al progetto via BOINC Manager. Vediamo nel dettaglio i progetti di cui si occupa attualmente Distributed.net.
Progetti attuali - RC5
Dal lontano 3 dicembre 2002, Distributed.net sta partecipando alla competizione RSA Labs' 72-bit secret-key challenge con il progetto RC5-72. La RSA ha organizzato diverse competizioni nel corso degli anni per testare il grado di sicurezza dell'algoritmo di criptazione standard utilizzato dal governo degli Stati Uniti.
Le competizioni prevedevano dei premi in denaro. Dopo qualche tempo dal lancio della competizione sui 72-bit, la RSA ha preferito non sostenere (e finanziare) più questo tipo di competizioni ma Distributed.net ha deciso autonomamente di continuare la forzatura del codice e di autofinanziare parzialmente i premi tra i quali:
- 1000$ all'utente che scopre la chiave di decriptazione
- 1000$ al team dell'utente
La decisione della RSA è dovuta probabilmente al fatto che il governo degli Stati Uniti, nel maggio del 2002, ha sostituito il DES (Data Encryption Standard) adottato in precedenza con il più moderno e flessibile codice di criptazione AES (Advanced Encryption Standard) piuttosto che col RC6, derivato del RC5.
Distributed.net, che in passato aveva già vinto le competizioni RC5-56 e RC5-64, continua quindi nei suoi sforzi che prevedono una mole di calcoli 256 volte superiore ai challenge precedenti. Maggiori informazioni si possono trovare alla pagina ufficiale del progetto RC5. Dalla fine di marzo 2010 è possibile partecipare al progetto anche su piattaforma BOINC agganciandosi a DNETC@home.
Progetti attuali - OGR
Distributed.net è anche impegnata con il progetto OGR (Optimum Golomb Ruler). In matematica, il termine "Golomb Ruler" si riferisce ad un insieme di numeri interi, non negativi, tali che nessuna coppia distinta di numeri dell'insieme abbia la stessa differenza. Concettualmente, è simile ad un righello costruito in maniera tale che nessuna coppia di punti misuri la stessa distanza.
Il Righello o Regolo di Golomb Ottimale (d'ora in poi OGR) è il più corto possibile per un dato numero di punti. Trovare (e dimostrare) gli OGR diventa esponenzialmente più difficile quanto il numero dei punti aumenta, ed è per questa ragione che il progetto si è rivolto al WEB per un aiuto: attualmente, dopo i successi con OGR-24, OGR-25 e OGR-26, il lavoro è concentrato su un insieme di 27 numeri, OGR-27 appunto.
Dal 2009 è possibile partecipare al progetto anche su piattaforma BOINC agganciandosi a Yoyo@home. Attualmente il client per BOINC è la terza forza in campo per capacità di calcolo sul progetto.
Breve spiegazione matematica
I regoli "di Golomb" prendono il nome dal Dr. Solomon W. Golomb, un professore di Matematica con un interesse speciale nel calcolo delle combinazioni, teoria dei numeri, teoria della cifratura nelle comunicazioni.
Il Dr. Golomb si è interessato anche di giochi e puzzle matematici e ha collaborato a lungo con la rivista scientifica americana "Mathematical Games".
Gli OGR hanno molte applicazioni, come il piazzamento dei sensori per la cristallografia a raggi-X e la radio-astronomia.
I regoli di Golomb possono anche giocare un ruolo significante nella "matematica combinatoria", nella teoria della codificazione e delle comunicazioni; il Dr. Golomb è stato uno dei primi a studiarne l'utilizzo in questi campi.
Un regolo di Golomb è un modo di mettere dei punti lungo una linea in modo che ogni paia di punti misuri un unica distanza lineare. Questo è un esempio con cinque punti:
|-|---|-----|--|
0 1 4 9 11
Il numero sotto il punto rappresenta la distanza dal lato sinistro. La lunghezza di questo regolo è 11, e guarda caso è anche uno dei regoli più corti tra quelli con cinque punti. Un altro regolo di Golomb da 5 punti è il seguente 0, 3, 4, 9, e 11. (Le immagini speculari di questi due righelli, 0, 2, 7, 10, 11 e 0, 2, 7, 8, 11, sono anch'esse OGR. Di solito si menziona solo un'immagine speculare per regolo).
Si può facilmente verificare che il primo regolo sopra è veramente "di Golomb" scrivendone la tabella di tutte le coppie di punti e le loro rispettive distanze:
Punto 1 - Punto 2 - Distanza
0 - 1 - 1
0 - 4 - 4
0 - 9 - 9
0 - 11 - 11
1 - 4 - 3
1 - 9 - 8
1 - 11 - 10
4 - 9 - 5
4 - 11 - 7
9 - 11 - 2
Da notare che non ci sono distanze uguali nella terza colonna. Non c'è nemmeno la distanza 6, ma va bene così, perché i regoli di Golomb devono contemplare ogni possibile distanza, è sufficiente che siano tutte distinte. Lo scopo dell'ottimizzazione dei regoli di Golomb è quello di renderli i più corti possibile, senza duplicare nessuna distanza misurata. I regoli a 5 punti sopra indicati sono entrambi ottimali.
I regoli di Golomb sono solitamente caratterizzati dalle loro differenze, anziché dalle distanze assolute. Perciò il regolo indicato sopra sarà scritto come 1-3-5-2 (a volte è scritto 0-1-3-5-2 ma solitamente il primo 0 si toglie). Il più conosciuto regolo a 21 punti è ad esempio il seguente:
2-22-32-21-5-1-12-34-15-35-7-9-60-10-20-8-3-14-19-4
Maggiori informazioni si possono trovare alla pagina ufficiale del progetto OGR.
La storia di Distributed.net
In risposta al RC5-32/12/7 (56 bit) Secret Key Challenge, una competizione lanciata dal RSA nel 1997 per testare il suo algoritmo di criptazione a 56 bit, un gruppo di persone si mise al lavoro per sviluppare un software che potesse aiutare nella soluzione del problema. Venne creato un programma e fu installato su molti PC: in aggiunta fu messa in piedi una rete di server per coordinare il lavoro dei PC. Il pesante (per l'epoca) lavoro di test su 72 quadrilioni di combinazioni fu suddiviso in piccoli pacchetti e delegato ai singoli PC. L'8 maggio del 1997 questo sforzo divenne Distributed.net quando Adam L. Beberg fondò ufficialmente l'organizzazione non-profit. Nel luglio del 1997 fu rilasciata una nuova applicazione, più veloce e flessibile della precedente.
Finalmente nell'ottobre del 1997, dopo 212 giorni di elaborazione complessiva e test sul 46% del totale delle combinazioni possibili, la chiave per l'algoritmo RC5-56 fu trovata proprio da Distributed.net. Alla fine della competizione si contarono ben 4000 team di volontari da tutto il mondo: la capacità di calcolo fu valutata in 26.000 PC dell'epoca. Il PC di Jo Hermans di Bruxelles trovò la soluzione e lui intascò i suoi 1000$ di premio; altri 8000$ andarono al Progetto Gutenberg/CMU e i rimanenti 1000$ rimasero a Distributed.net per coprire i costi di gestione.
Dopo una breve ristrutturazione si iniziò a lavorare sul secondo progetto nel gennaio del 1998. La competizione si chiamava DES II-1 e in quel caso furono necessari solo 40 giorni per forzare il codice. Il premio fu inferiore, solo 5000$, e fu vinto anche questa volta da Distributed.net.
Nel gennaio del 1999 iniziò la competizione DES III che Distributed.net portò avanti con l'aiuto di EFF: questa volta furono sufficienti meno di 24 ore per forzare il codice. Nel novembre dello stesso anno Distributed.net iniziò la sua partecipazione al CSC, una competizione organizzata dalla "CS Communications and Systems" per dimostrare quanto fosse debole un algoritmo di criptazione a 56 bit . Un paio di mesi dopo ne fu trovata la chiave, sempre da Distributed.net.
Contemporaneamente a tutte queste competizioni, Distributed.net stava comunque partecipando al challenge RC5-32/12/8 (64 bit) Secret Key Challenge e finalmente, il 14 luglio 2002, dopo 1757 giorni di elaborazione e 58.747.597.657 unità di lavoro elaborate, la chiave fu trovata da un PC P3-450 con SO Windows 2000 a Tokyo. Anche in questo caso il progetto ne uscì vittorioso. Più di 300.000 furono i partecipanti a quel progetto.
A quel punto Distributed.net si lanciò nel progetto RC5-32/12/9 (72 bit) Secret Key Challenge ma dopo qualche tempo dal lancio, la RSA preferì non sostenere (e finanziare) più questo tipo di competizioni. Distributed.net ha comunque deciso autonomamente di continuare la forzatura del codice e di autofinanziare parzialmente i premi.