RC5-64 - Dein Computer braucht ein Hobby!
(von Martin Ebn�ther - [email protected])

"Ein von Computern generierter Code ist auch mit Hilfe von Computern wieder zu knacken" - Chaos Computer Club.

Im Internet werden schon lange diverse Verschl�sselungsverfahren angewendet. Sicher jedem bekannt ist Pretty Good Privacy (PGP). Je nach Komplexit�t des verwendeten Verfahrens gestaltet sich ein m�glicher Knackversuch mehr oder weniger schwierig.

Ein Vorreiter im Entwickeln von Codieralgorithmen sind die amerikanischen RSA-Labors, welche auch den RC5-64 Code entwickelt haben. Um zu beweisen, wie sicher diese Codes sind, haben die RSA-Labor eine ganze Reihe Wettbewerbe gestartet.

An diesen Wettbewerben kann grunds�tzlich jeder teilnehmen. Jeder kann sein eigenes Programm entwickeln, um die Codes zu �berpr�fen.

distributed.net  (http://www.distributed.net) sind einer der Teilnehmer. Als der erste Wettbewerb aufgesetzt wurde haben sie sich �berlegt, einen Supercomputer mit hoher Rechenleistung f�r diese Aufgabe einzusetzen. Jedoch hatten sie noch eine andere Idee, n�mlich die Aufgabe auf beliebig viele Computer in der ganze Welt aufzuteilen. Mehr dazu weiter unten.

Der erste Wettbewerb war der RC5-30 Code, ein 30 Bit-Code. Dieser wurde in knapp drei Stunden gebrochen. F�r den n�chsten RC5-40, die 40 Bit-Variante brauchten sie rund drei Tage. Der RC5-56 Code, ein Code mit 56 Bit also, hat da schon etwas l�nger gedauert und wurde nach 250 Tagen von distributed.net geknackt.

Wer mit Bit und Bytes nicht so ganz vertraut ist, hier eine kleine Einf�hrung. Ein Bit ist die kleinste Einheit in einem Computer. Bits k�nnen zwei Schaltzust�nde annehmen: 0 oder 1. Stellen wir uns ein Bit als eine Gl�hlampe vor, dann haben wir die zwei Zust�nde Strom fliesst nicht oder Strom fliesst. Mit einer Kombination von zwei Gl�hlampen k�nnen wir nun schon vier 2 hoch 2, 2^2) Zust�nde darstellen, n�mlich:
1. Keine Lampe leuchtet (00)
2. Eine Lampe leuchtet (01)
3. Die andere Lampe leuchtet (10)
4. beide Lampen leuchten (11)
Mit drei Gl�hlampen ergibt das dann schon acht verschiedene Zust�nde (2^3) und mit vier Gl�hlampen sind es 16 (2^4). Wir sehen also, dass mit jeder weiteren Gl�hlampe die wir hinzunehmen die Anzahl m�glicher Schaltzust�nde verdoppelt wird. Von 64 auf 65 Bit sind das immerhin ein Unterschied von rund 18 Trilliarden M�glichkeiten!

Wie schon oben erw�hnt wird die gigantische Aufgabe auf beliebig viele Computer aufgeteilt, in Bl�cke. Der Client holt sich nun eine eingestellte Anzahl Bl�cke vom Internet in eine Bufferdatei und beginnt dann, die Codes im ersten Block auszurechnen. Je nach Blockgr�sse und CPU-Geschwindigkeit braucht das unterschiedlich lange. Mein P166MMX braucht f�r einen 2^29 Block (536870912 Codes) ca. eine Dreiviertelstunde. Man k�nnte nun meinen, dass so ein rechenintensives Programm das System geh�rig abbremst. Mitnichten! Der Client benutzt lediglich die nicht ben�tigte Rechenpower der CPU (IDLE-Time). Deshalb auch der Titel: "Dein Computer braucht ein Hobby!" Gehen dem Clienten die Bl�cke aus, weil er zu lange keinen Nachschub mehr bekommen hat, so generiert er auf gut Gl�ck einen Block mit zuf�lligen Codes und rechnet diesen aus.
Jeder kann seinen Computer mitrechnen lassen! Dazu ben�tigt man lediglich den entsprechenden Client f�r sein Betriebssystem.
Inzwischen gibt es f�r jedes bekannte oder auch unbekannte Betriebssystem einen Client. Um nur einige zu nennen: Windows 9x/NT (mit MMX-Support!), MS-DOS, Amiga-DOS, Linux und Unix, MacOS, OS/2, BeOS, RiscOS (Archimedes) und andere mehr. Es sind auch Clients f�r Windows 3.1 und Windows CE geplant. Unter Windows 3.1 kann man aber auch den MS-DOS-Client in einem DOS-Fenster laufenlassen.

Warum sollte nun aber jemand hier mitmachen? Nun, zum einen gibt es nat�rlich auch etwas zu gewinnen, falls man den richtigen Code findet. Von den RSA-Labors ist ein Preisgeld von 10'000 $ ausgeschrieben worden. Benutzt man zum Knacken nun aber einen distributed.net-Client, so geht davon ein Teil weg. 6000 $ werden einer Organisation, die sich f�rs Internet einsetzt gestiftet. Auf der Webseite von distributed.net kann man seine Stimme abgeben, wer den Betrag erhalten soll. Unter anderem sind hier die Electronic Frontier Foundation (EFF) oder das Projekt Gutenberg zu finden. Weitere 2000 $ gehen an distributed.net um den Aufwand f�r die Hardware sowie die Entwicklung der Clients zu finanzieren. 1000 $ bekommt das siegreiche Team (dazu gleich mehr) und 1000 $ bekommt derjenige, der den gesuchten Code gefunden hat. Hat man sich keinem Team angeschlossen, so bekommt man die 1000 $ f�r's Team auch noch. Allerdings macht es mehr Spass, wenn man gemeinsam "k�mpft". =:-)
Das allein macht aber noch nicht den Reiz aus, mitzumachen und ein bisschen Rechenzeit zur Verf�gung zu stellen. distributed.net f�hrt eine Art High-Score-Liste, wo man genau sieht, wer wieviele Blocks in welcher Zeit ausgerechnet hat.
Wie schon gesagt kann man sich zu Teams zusammenschliessen. In der Schweiz gibt es das Swissteam (http://www.distributed.ch), welches sich derzeit auf Rang 23 befindet. Nat�rlich wollen wir vom Swissteam, wie alle anderen Team auch, m�glichst viele Bl�cke ausrechnen und unsere Position laufend verbessern. Deshalb sind wir auf Eure Hilfe angewiesen!

Wie k�nnt ihr mithelfen? Nun, das ist einfach. Geht auf die Webseite des Swissteams (http://www.distributed.ch) und downloadet den entsprechenden Client f�r das Betriebssystem eures Computers. distributed.net haben ausdr�cklich darauf hingewiesen, dass ein Schutz vor Viren nur gew�hrleistet werden kann, wenn die Clients von der offiziellen Site her downgeloadet werden. Deshalb verzichte ich auch darauf, irgendwelche Clients auf die CAC-Box zu laden. Die Programme sind in alle unter 500 KByte lang.
Gut. Wenn der Client installiert ist und gestartet wurde k�nnen wir beginnen, ihn einzurichten. Ich werde hier nur auf den Windows 95/98/NT-Client eingehen, da ich mich mit Clients f�r andere Betriebssysteme nicht auskenne. Die "K�pfe" des Swissteams sind aber gerne bereit, bei speziellen Fragen oder Problemen weiterzuhelfen. Ihre E-Mails findet man auch auf der Webseite.
Als erstes wird nach der E-Mail-Adresse gefragt. Hier bitte unbedingt die richtige Adresse eingeben, da diese danach auf der High-Score-Liste erscheint und auch f�r die Team-Zuordnung verwendet wird.
Auf der n�chsten Registerkarte wird gefragt, wie der Computer mit dem Internet verbunden ist. Leute mit Standleitung w�hlen "Online always", bei einer Verbindung per Modem (Modem-Dialup) kann man w�hlen, ob der Client selber eine Verbindung herstellen darf oder nicht (don't trigger auto-dial). Ich habe meinen Client auf letzteres eingestellt. Er merkt automatisch, wenn ich online bin und versucht dann sofort, neue Bl�cke zu holen und ausgerechnete zur�ckzuschicken.
Als N�chstes wird der Keyserver eingestellt. Das Swissteam verf�gt hier �ber einen eigenen Proxy. Bei "Keyserver" kommt der Eintrag "rc5.amazing.ch" rein. Der Port bleibt auf 2064. Es ist nicht zwingend notwendig �ber den Swissteam-Proxy die Bl�cke zu beziehen, aber das Swissteam f�hrt eine eigene Statistik, wieviel Bl�cke durch den Proxy gegangen sind (http://rc5.amazing.ch).
Weiter muss man einstellen, wieviel Bl�cke gepuffert werden sollen. Bei Standleitungen kann man hier einen kleinen Wert einstellen. Die Blockgr�sse von 2^30 kann so belassen werden.
Jetzt kommen die Logb�cher dran. Hier kann man einstellen, ob man eine Logdatei erstellen lassen will oder nicht. Der Client errechnet daraus dann eine grafische Darstellung der Keyrate, also der Geschwindigkeit. Hat man mehrere Computer in einem LAN, so kann man sich auch f�r jeden ausgerechneten Block eine E-Mail zuschicken lassen indem man die Felder entsprechend ausf�llt. Die Maske ist zwar englisch aber weitgehend selbsterkl�rend.
Der Windows-Client hat ein lustiges Feature, und zwar kann man f�r jeden ausgerechneten Block einen Sound abspielen lassen. Standardm�ssig sind f�nf verschiedene Muh-Samples eingebaut, man kann aber auch sein eigenes Lieblingswave abspielen lassen.
Im CPU-Menu sollte der richtige Prozessor ausgew�hlt werden. Die automatische Abfrage funktioniert in den meisten F�llen zwar, aber normalerweise weiss man ja, was f�r ein Prozi unter der Haube seinen Dienst verrichtet. Die Task-Priorit�t kann auf 0 gelassen werden. Mit dieser Einstellung bemerkt man eigentlich nicht, dass der Computer nebenher am Rechnen ist. Einzig bei der CPU-Auslastung wird 100 % angezeigt. Unten kann man noch angeben, wieviele CPUs im Computer arbeiten. Die Einstellung -1 versucht dies selber herauszufinden. Da ich leider nur �ber einen popeligen Ein-CPU-Pentium verf�ge weiss ich nicht, wie gut diese Option funktioniert. Vielleicht gibt mir ja mal jemand ein Feedback..?
Zu guter Letzt kann man noch einstellen, ob der Client bei jedem Systemstart automatisch mitgestartet werden soll und ob er versteckt oder sichtbar arbeiten soll. Allerdings solltet ihr immer erst um Erlaubnis zu fragen, bevor ihr irgendwo einen Client installiert. Weder distributed.net noch das Swissteam hat Interesse daran, dass jemand wegen RC5 seinen Job verliert. Da verzichten wir lieber auf die zus�tzlichen Bl�cke. Fragen kann aber nie schaden!

So, nun kann der Client mal ein paar Bl�cke ausrechnen. Etwa 24 Stunden nachdem der erste ausgerechnete Block zur�ckgeschickt wurde m�sst ihr eure Teamzugeh�rigkeit einstellen. Surft dazu nach http://rc5stats.distributed.net. Dort sucht ihr bei "Search for E-Mail" nach eurer eigenen E-Mail-Adresse. Dann wird euch euer aktueller Rang angezeigt. Klickt nun auf eure E-Mail-Adresse. Es werden euch detailliertere Angaben angezeigt wie z.B. Anzahl ausgerechnete Bl�cke, wann der letzte Block gesendet wurde etc. Unten auf der Seite befindet sich ein Feld und ein Button, mit dem man seinen Eintrag editieren kann. In das Feld m�sst ihr euer Passwort eintragen. Durch Mausklick kann man sich dieses Passwort per E-Mail zuschicken lassen. Wenn ihr das Passwort eingetragen habt, dann k�nnt ihr nun eure Teamzugeh�rigkeit eintragen. Das Swissteam w�rde sich nat�rlich freuen, wenn ihr bei uns mitmachen w�rdet. Das Swissteam hat den Code 626. Bei der wohlt�tigen Organisation k�nnt ihr selber ausw�hlen, welche beg�nstigt wird.

F�r weitere Fragen bez�glich RC5 stehe ich sowie auch die verantwortlichen des Swissteam gerne Red und Antwort. Und denkt immer dran: Euer Computer braucht ein Hobby - RC5!