Zum Inhalt springen

Kryptographisch sicherer Zufallszahlengenerator

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 9. November 2005 um 23:46 Uhr durch Harro von Wuff (Diskussion | Beiträge) (en:). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Diese Seite wurde zur Löschung vorgeschlagen.

Falls du Autor des Artikels bist, lies dir bitte durch, was ein Löschantrag bedeutet, und entferne diesen Hinweis nicht.

Zu den Löschkandidaten

Die Diskussion über diesen Antrag findet auf der Löschkandidatenseite statt.
Hier der konkrete Grund, warum dieser Artikel nicht den Qualitätsanforderungen entsprechen soll:

Begründung:Wirres Zeugs. Text hat nicht viel mit dem Lemma zu tun und sprachlich ist es so schlecht, daß der Sinn entstellt wird. --((ó)) Käffchen?!? 12:31, 9 November 2005 (CET)


Ein cryptographically secure pseudo-random number generator (CSPRNG) ist ein für die Kryptologie geeigneter Generator für Pseudozufallszahlen. Solche Zufallszahlen werden in vielen Bereichen der Kryptologie benötigt wie zum Beispiel:

Die Qualitätsanfoderungen für die Zufälligkeit solcher Zahlen sind sehr unterschiedlich. Für Nonces genügt es die Einmaligkeit der Zahl im Zufallsexperiment zu garantieren, für die Erstellung eines Haupschlüssels oder sogar eines One-time pads sind die Anforderungen an die Zahl ungleich höher. So bleibt ein One-time pad in der Theorie nur unknackbar, wenn er aus natürlichen Zufallszahlen erstellt wurde.

Im Idealfall wird die Erstellung solcher Zufallszahlen durch andere zufällige Informationsquellen gespeist, was ein zum Beispiel ein hardwarebasierender Zufallsgenerator sein kann, aber auch nicht vorhersehbare Zustände in bestimmten Prozessen des Systems. Theoretisch ist es natürlich so, dass die Zufälligkeit einer aus solchen Intitaldaten generierten Zufallszahl nicht höher sein kann als die Ausgangswerte. Jedoch ist es manchmal notwendig, größere Mengen von Zufallszahlen zu generieren als aus diesen Quellen zu beziehen sind, in diesem Fall bedient man sich eines CSPRNG.

Grundsätzlich sind für einen CSPRNG die selben Voraussetzungen wie für einen normalen Pseudozufallszahlengenerator von Nöten, nur dass für die Sicherheit noch einige zusätzliche Bedingungen erfüllt sein müssen. Sie müssen zum einen statistische Kriterien erfüllen und zu anderen robust gegen einen Angreifer sein der ihre Funktionalität kennt.

Aufbau eines CSPRNG

Einen CSPRNG kann man mit verschiedenen block cipher Algorithmen aufbauen. Ein Weg wäre es zum Beispiel einen sicheren Algorithmen im Zählermodus zu betreiben und nichts damit zu verschlüsseln. Problematisch ist es nur wenn die verwendeten Intialwerte in die Hände eines Angreifers geraten. In diesem Fall ist die Sicherheit gebrochen.

Ein anderer Weg ist, es mathematisch komplexe Probleme zum Generieren der Zufallszahlen zu verwenden. Hier bietet sich zum Beispiel die Faktorisierung von Ganzzahlen an. Dies ermöglicht einen hohen Grad an Sicherheit. Die Algorithmen sind jedoch auch sehr langsam.

Weiterhin gibt es noch einige Designs die in keine Kategorie passen und spezielle Pseudozufallszahlen generieren. Ein Beispiel hierfür ist der ISAAC für den es zur Zeit keinen bekannten erfolgreichen Angriff gibt.

Standards

Viele Designs von CSPRNGs wurden standardisiert und können nachgelesen werden in:

  • FIPS 186-2
  • ANSI X9.17-1985 Appendix C
  • ANSI X9.31-1998 Appendix A.2.4
  • ANSI X9.62-1998 Annex A.4