Wie funktioniert ein Zufallsgenerator?

9 Antworten

Es gibt im Prinzip drei verschiedene Versionen:

  • Pseudozufallsgenerator - abhängig von einem Startwert wird eine Folge an Zahlen erzeugt, die sich in bestimmten mathematischen Aspekten nicht von echten Zufallszahlen unterscheiden
  • Software-Zufallsgenerator - dabei werden Mausbewegung, Netzwerktraffic, Tastatureingaben... als Zufallsquelle genommen
  • Hardware-Zufallsgeneratoren - dabei werden elektronisch auswertbare, physikalische Effekte als Zufall genommen. Moderne Prozessoren haben oft so etwas eingebaut.

Hier habe ich mal - im Rahmen einer Seminararbeit - bisschen mehr dazu geschrieben und weiterführende Quellen angegeben:

https://blog.kmueller.dev/zufallsgeneratoren/

Es gibt zwei Ansätze:

  • Pseudozufällige Zahlen -- diese werden durch Rechenvorschriften berechnet, sind nicht zufällig, haben jedoch viele Eigenschaften von echten Zufallszahlen.
  • Echte Zufallsinformation auf dem System (auch Entropie genannt), entweder von spezieller Hardware, die Rauschen digitalisiert, oder auch Quellen wie Uhrzeit, Ein-/Ausgabe-Schnittstellen.

Meist wird beides kombiniert, also der Pseudo-Zufalls-Generator mit der System-Entropie befüllt, um dann beliebig viel zufällige Zahlen zu erzeugen.

Das ist jedoch wie von Dir vermutet alles andere als einfach. Da man zufällige Daten für viele Verschlüsselungsverfahren benötigt, ist ein guter Zufallsgenerator auch eine sicherheitskritische Funktion.

Woher ich das weiß:Studium / Ausbildung

Dein Computer hat eine Uhr die die Nanosekunden seit Systemstart zählt.

Ein Pseudozufallsgenerator (also das, was man in den meisten Programmiersprachen als Zufallsgenerator benutzen), nimmt nun einfach diese Zeit in Nanosekunden als Seed, und leitet sie durch einen Algorithmus der ein paar Zahlen wegschneidet, mal nimmt, etc. Ist denk ich mal je nach Programmiersprache anders umgesetzt. Fun Fact: Die Java Entwickler haben bei ihrer Umsetzung zwei Zahlen vertauscht.

Da Nanosekunden eine so unglaublich kleine Zeitspanne sind, wird das ganze, in Verbindung mit dem Hashing Algorithmus, als „kryptographisch sicher“ gewertet.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf

Alle Zufallsgeneratoren die nur auf Software basieren sind Pseudozufälle. Echte Zufälle bekommt man nur mit entsprechender Hardware hin

Woher ich das weiß:Hobby – Programmiere seit eineinhalb Jahren

Mit sogenannten Pseudouzufallszahlen, per Rechnung.

Man nehme beispielsweise eine zehnstellige Dezimalzahl. Wird diese Zahl quadriert, ergibt sich eine etwa 20-stellige Zahl. Jetzt nimmt man die mittleren zehn Dezimalstellen. Dies ist die erste Pseudozufallszahl. Dann wiederholt man diesen Vorgang immer wieder: also erneut quadrieren, zehn Stellen aus der Mitte entnehmen, und so weiter. Jedes Mal entsteht eine neue Pseudozufallszahl

Woher ich das weiß:Recherche