image image


Worknote: Kann denn Zufall Sünde sein?

In JavaScript offenbar schon: In seinem Blog-Beitrag TIFU by using Math.random()1 warnt Mike Malone vor der Funktion Math.random() in der V8-JavaScript Engine, die unter anderem im Browser Chrome implementiert und – viel schlimmer – auch die Engine hinter Node.js ist. Denn, wie man mit einem einfachen Skript, das Bildrauschen simulieren soll, leicht erkennen kann,

image image


erzeugt Math.random() in Chrome irgendwie ein Muster (Screenshot links). Das ist für einen Zufallszahlengenerator immer ein schlechtes Zeichen. Im Safari, in dem die Engine JavaScriptCore werkelt, erzeugt das gleiche Skript mit Math.random() ein gleichmäßig verteiltes Rauschen (rechter Screenshot).

Ursache für das schlechte Abschneiden der V8-Engine soll sein, daß hier zwei (Pseudo-) Zufallszahlengeneratoren (der gleichen Art) kombiniert wurden, was die Periodizität, die allen (Pseudo-) Zufallszahlengeneratoren zu eigen ist, drastisch verkürzte. Vor solch einem Vorgehen hatte schon vor langer Zeit Donald E. Knuth gewarnt. Man sollte also hin und wieder die Klassiker lesen und beachten. Und sich an John von Neumanns berühmten Spruch erinnern: »Jeder, der glaubt, arithmetische Methoden würden Zufallszahlen erzeugen, befindet sich allerdings im Zustand der Sünde.«2

In diesem Sinne ist die eingangs gestellt Frage »Kann denn Zufall Sünde sein?« eindeutig mit »Ja!« zu beantworten. Und ich muß erst einmal von meiner Idee abrücken, den hier vorgestellten, hoffentlich einigermaßen sicheren (sic!) Passwortgenerator und -verwalter testweise im Node Webkit zu implementieren. [heise Developer]


2 (Email-) Kommentare


Man sollte für Verschlüsselung bzw. Absicherung generell kryptografisch stärkere Algorithmen verwenden z.B. https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback
Der Standard-random in JS ist dafür nicht gedacht, auch nicht die Safari-Implementierung, insofern ist die Thematik übertrieben.

– Thomas O. (Kommentieren) (#)


Thomas: Hast Du den verlinkten Beitrag überhaupt gelesen? Ich will ja gar nichts wirklich Kryptographisches machen, dafür braucht es andere Verfahren, da gebe ich Dir recht. Und übertrieben halte ich die Aufregung um den Fehler in Math.random() nicht, denn schon bei einfachen (statistischen) Simulationen ist man auf die Korrektheit des (Pseudo-) Zufallszahlengenerators angewiesen. Wenn der dann schon auf so einfacher Ebene versagt, ist das eine Katastrophe.

– Jörg Kantel (Kommentieren) (#)


  1. TIFU steht übrigens für Today I Fucked Up.

  2. Zitiert nach James Gleick: Die Information, München (Redline-Verlag) 2011, Seite 354, der es wiederum bei Peter Galisons Image and Logic: A Material Culture of Microphysics, Chicago (University of Chicago Press) 1997, Seite 703 gefunden haben will. Die bekannteste und meist zitierte Fundstelle ist jedoch der zweite Band von Donald E. Knuths The Art of Computer Programming, Reading MA (Addison Wesley) 1997


(Kommentieren)  Kann denn Zufall Sünde sein? – 20151123 bitte flattrn

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung


Werbung


image  image  image
image  image  image