• Max@feddit.de
    link
    fedilink
    Deutsch
    arrow-up
    8
    ·
    edit-2
    1 year ago

    Man sollte einen kryptographisch sicheren Zufallszahlengenerator (CSPRNG) verwenden. Z. B. SecureRandom in Java, secrets in Python oder Crypto in JavaScript. Ein CSPRNG weist u. a. folgende Eigenschaften auf:

    1. Nicht vorhersagbar, auch wenn bereits einige Zufallszahlen bekannt sind
    2. Vorhergehende Zufallszahlen können ebenfalls nicht bestimmt werden
    3. Erzeugt Zufallsfolgen mit statistisch gleichvielen Nullen und Einsen

    Normale PRNGs erfüllen nur die dritte Eigenschaft. Sind also einige Zufallszahlen bekannt, könnte man vorherige und nachfolgende Zufallszahlen bestimmen.

    • barsoap@lemm.ee
      link
      fedilink
      Deutsch
      arrow-up
      1
      ·
      1 year ago

      Dazu dann noch Entropie aus physikalischen Quellen mit reinmischen denn man weiß nie ob die NSA den Algorithmus nicht schon geknackt hat.

      Unter Linux ist das ganze sehr einfach: /dev/random. Das ist ein CPRNG (ChaCha20) mit direkt vom Kernel eingeschleuster Entropie und spuckt auch nichts aus bevor nicht genügend Entropie vorhanden ist.


      Auf der anderen Seite: Wenn du die Frage “wo kriege ich kryptographisch sichere Zufallszahlen her” machst du schon was falsch denn du bist gerade dabei Krypto-Code zu implementieren ohne Kryptologe zu sein.