Titre RC5-72

Projet de calcul distribué...


1) Qu'est-ce-que c'est ?

Le RC5-72 est un projet mis en place par distributed.net et organisé par le RSA, une organisation américaine très sérieuse chargée entre autre de tester les systèmes de sécurité. Il sagit de trouver une 'clé' (qui est en fait une succession de bits) permettant de trouver un message crypté avec l'algorithme du RC5-72. Le codage se faisant sur 72 bits, il y a donc au total 272 clés (1 bit=0 ou 1), ce qui représente 4,722,366,482,869,645,213,696 possibilités ! Pour simplifier le travail, ces clés ont été découpées sous forme de blocs. 1 bloc=232 clés, il y a donc 1,099,511,627,776 blocs à tester au maximum ! Bien entendu, c'est un projet colossal, c'est pourquoi il a été mis en place une architecture particulière...

2) Quel est le principe ?

C'est très simple : un supercalculateur ne suffisant pas, l'idée est de concentrer toute la puissance des machines du monde entier voulant bien se prêter au jeu, cela quel que soit l'OS utilisé. Il suffit alors de ramener un petit programme (appelé client rc5) et de l'installer sur sa machine pour effectuer les calculs. Ce client communique avec un serveur de clés et lui permet de rappatrier ou d'envoyer des blocs. Les blocs ainsi renvoyés sont ensuite routés vers le serveur de clé principal ("master keyserver"), qui les comptabilise et met à jour des statistiques quotidiennes.

serveurs

3) Pourquoi ?

Les raisons divergent suivant les participants, mais les principales sont :

4) Est-ce bien légal tout ca ?

Absolument ! Ce n'est pas un acte de piratage que d'essayer de trouver une clé, au contraire, cela permet de tester la sécurité d'un tel système de cryptage.

5) Comment participer ?

Il faut commencer par ramener le client spécifique à votre système d'exploitation. Le client pour 95/98/NT/2K x86 est disponible ici : Download depuis site officiel (273 Ko).

Mais distributed.net a développé plusieurs autres clients et si vous travaillez sous un autre OS (Linux, MacOS...), allez voir sur la page principale des clients rc5 à distributed.net/clients.html pour récupérer le votre.

6) J'ai le client, et maintenant ?

a) Installation rapide

Il vous suffit de décompresser l'archive .zip et de télécharger ce fichier de configuration dans le dossier d'installation du client. Ensuite, éditer le fichier dnetc.ini et modifier le paramètre id= avec votre adresse e-mail. Une fois terminé, lancer le client (dnetc.exe) et sauter à l'étape 7 pour ramener vos paquets de clés à calculer.

b) Installation détaillée

On commence par décompresser l'archive .zip et on lance le client (DNETC.EXE). On arrive à l'écran de configuration :

client1

Comme indiqué, on passe par l'option '1' et on arrive à l'écran suivant :

client2

On choisit encore l'option '1' pour saisir notre adresse e-mail (distributed.net ID). Une fois notre e-mail rentré, on se retrouve devant cet écran :

client3

On revient au menu principal en tapant '0' et on choisit cette fois l'option '2' (Buffer and Buffer Update Options)
Sur le même principe, on procédera aux modifications nécessaires afin d'obtenir cet écran : (il suffit de rentrer dans les menus correspondants)

client4

Une fois les modifications effectuées, on revient au menu principal en tapant '0', puis encore '0' pour quitter en sauvegardant...

On relance DNETC.EXE et il ne nous reste plus qu'à rappatrier les paquets de clés à calculer ! Pour cela, il suffit de faire un clic-droit dans la fenêtre du client et de sélectionner 'Fetch work'. Le client va alors chercher à se connecter à un serveur de clés, et rappatrier le nombre de clés indiquées.

L'opération dure quelques secondes, suivant la rapidité de la connection et le nombre de paquets demandés. On peut alors fermer la session Internet.

Le client commence alors les calculs et affiche (en accéléré) :
prog
C'est la progression ! Parfois, un 'R' vient s'intercaler : le calcul a simplement été interrompu par l'utilisateur (Ctrl+C) puis a été repris (Resume).

7) Comment envoyer les paquets calculés et en recevoir des nouveaux ?

C'est tout simple : il suffit de faire un clic droit sur le client et de sélectionner :

- Flush work : envoyer les paquets de clés
- Fetch work : recevoir de nouveaux paquets

On peut également utiliser les lignes de commande suivantes:

dnetc.exe -forceflush (envoi)
dnetc.exe -forcefetch (reception)

Une fois les paquets envoyés/recus, vous pouvez vous déconnecter !

8) Les statistiques :

Le serveur principal enregistre votre participation dès l'envoi du 1er bloc calculé au serveur de clés. Chaque jour à 0:00 GMT, le serveur principal fait le point des blocs envoyés/recus et met à jour une gigantesque base de données. Ainsi, il est possible de consulter les statistiques vous concernant mais aussi toutes celles des autres participants.
Pour cela, il suffit d'aller faire un tour à : http://stats.distributed.net/rc5

On arrive sur la page générale des stats et en regardant bien, en haut, on trouve ceci :

rc5stats1

On peut alors chercher dans la base de données le participant ou l'équipe de son choix. Pour la recherche d'un participant, le plus simple est de mettre son adresse e-mail, mais ce n'est pas obligatoire. Quelques caractères suffisent pour lancer la recherche.

Si la requête est acceptée, on arrive sur les statistiques du participant où les informations suivantes sont disponibles :

On peut également voir le nombre de blocs envoyés au serveur la veille, ainsi que le classement de la journée.

9) Comment joindre une équipe ?

Il est possible de joindre n'importe quelle équipe, à partir du moment où vous êtes référencés dans la base de données (il faut donc envoyer au minimum 1 bloc et attendre 1 jour). Mais il vous faut un mot de passe ! Là, 2 possibilités : soit vous l'avez déjà recu (pas de pb), soit vous l'avez perdu. Dans ce cas, il est possible de le récupérer. Pour cela, aller sur votre page de statistiques personnelles et cliquer sur "I cannot remember my password. Please email nom@domain.fr's password" (situé tout en bas). Le mot de passe est alors envoyé dans votre boite aux lettres !
Il ne vous reste plus qu'à faire une recherche d'équipe (ou afficher les 100 premières par exemple), d'en choisir une et de cliquer sur "I want to join this team" (situé en bas de la page de l'équipe). Vous remplissez ceci et c'est terminé :

rc5part

Vous êtes tout naturellement invités à rejoindre la team securiteinfo.com

Voici quelques tests exprimés en kilo-clés testées par seconde : (dnetc.exe -benchmark)

benchrc5

Note : le benchmark RC5 d'un processeur ne permet pas d'évaluer de manière précise ses performances, les résultats sont donc à considérer avec prudence.

10) Je veux en savoir plus...

Le mieux est d'aller sur le site principal, françisé depuis peu : http://www.distributed.net

Si vous souhaitez me contacter : rc5@fr.st ou si vous trouvez ce projet intéressant, n'hésitez pas ;)