NSA-Hintertür in Zufallszahlengenerator?

Das NIST (National Institute of Standards and Technology) hat im März diesen Jahres eine Veröffentlichung mit empfohlenen Algorithmen zur Erzeugung (kryptographisch starker) Pseudo-Zufallszahlen herausgegeben. Die vier verschiedenen Verfahren basieren auf unterschiedlichen, bekannten und wohluntersuchten kryptographischen Basisprimitiven (Hashfunktionen, HMAC, Blockziffern, elliptische Kurven). Eines der Verfahren fällt aus der Reihe: Es ist langsamer als die anderen und scheint nur deshalb enthalten zu sein, weil es der Favorit der NSA ist. In einem Artikel bei Wired berichtet Bruce Schneier von der Vermutung, daß dieses Verfahren mit einer Hintertür behaftet sein könnte.

Das Verfahren benutzt eine Reihe Konstanten - gibt aber nicht an, woher diese kommen und wie sie zustande gekommen sind. Dies erinnert an die Geschichte von DES: IBM, welche das Verfahren entwickelte, bat die NSA um Hilfe. Diese verkürzte die Schlüssellänge von 128 auf 56 Bit - und änderte die Werte der S-Boxen des Verfahrens. All das geschah ohne Angabe von Gründen. Es wurde lange spekuliert, ob damit eine Hintertür konstruiert wurde; inzwischen gilt die Theorie als bestätigt, daß die veränderten S-Boxen so resistenter gegen die (damals in der Öffentlichkeit noch unbekannte) differentielle Kryptanalyse gemacht wurde.

Diesmal scheint es jedoch anders auszusehen: Auf einem Vortrag führten Dan Shumow und Niels Ferguson aus, daß der Algorithmus eine Schwachstelle beinhalte, die man nur als Hintertür bezeichnen könne. Die Konstanten definieren eine elliptische Kurve; die Konstanten basieren aber auf einem zweiten (geheimen) Zahlensatz, der dazu benutzt werden kann, das Verfahren zu brechen: Mit Kenntnis dieses Zahlensatzes benötigt man nur 32 Bytes an Zufallszahlen, um den internen Zustand des Zufallszahlengenerators zu bestimmen. Damit ist man in der Lage, alle weiteren produzierten Zufallszahlen zu berechnen.

Zufallszahlen spielen in der Kryptographie eine wichtige Rolle: Temporäre Sitzungsschlüssel, Challenge-Response-Verfahren, Initialisierungsvektoren, Nonces, das Erzeugen von Primzahlen - all diese Verfahren benötigen gute Zufallszahlen. Die komplette SSL-Verschlüsselung einer frühen Version des Netscape-Browsers konnte wegen einer Schwäche in der Erzeugung von Zufallszahlen gebrochen werden.