Zufall & Entropie

Erstmal einfachWas meinen wir mit Entropie?

Entropie ist ein schickes Wort für „wie schwer ist das zu erraten?". Eine Münze hat 1 Bit Entropie (Kopf oder Zahl), ein Würfel etwa 2,58 Bit, ein zufälliges 8-Zeichen-Passwort aus Kleinbuchstaben rund 37 Bit.

Je mehr Bits, desto mehr Versuche braucht ein Angreifer. Pro Bit verdoppelt sich der Aufwand.

Krypto steht und fällt mit echtem Zufall: Schlüssel, Nonces, Salts, Initialisierungsvektoren — alles davon muss unvorhersagbar sein. Schlechter Zufall ist die häufigste Ursache praktischer Krypto-Brüche — nicht zerbrochene Algorithmen.

Zeichenpool62
Entropie65.5 Bit
Stärke: ok. Bei 1e+11 Versuchen pro Sekunde (moderne GPU auf schnellem Hash) wäre dieses Passwort im Schnitt nach 8.3 Jahre geknackt.
Häufiger Denkfehler„Passwort123!“ sieht doch komplex aus?

Sieht so aus, ist es nicht. Diese Rechnung hier geht von zufälligen Zeichen aus. Echte Passwörter folgen Mustern: Worte, dann ein paar Ziffern, dann ein Sonderzeichen. Angreifer nutzen Wörterbuch-Angriffe, die genau diese Muster ausprobieren — die effektive Entropie eines „kreativen" Passworts ist oft um Größenordnungen niedriger als das, was die Rechnung oben anzeigt.

Daher: lieber vier zufällige Worte („richtig pferd batterie heftklammer", ~44 Bit) oder ein Passwort-Manager mit generierten Passwörtern (~80–100 Bit). Komplexitätsregeln à la „mindestens 1 Sonderzeichen" sind weitgehend Sicherheitstheater.

Warum eigentlich?Warum braucht Krypto so viel Zufall?

Praktisch jedes moderne Verfahren braucht frische Zufallswerte:

  • Schlüssel — sonst sind sie ratbar.
  • Nonces / IVs (in AES-GCM, CTR) — derselbe Nonce mit demselben Schlüssel kann ganze Nachrichten leaken.
  • Salts beim Passwort-Hashing — damit gleiche Passwörter nicht gleiche Hashes ergeben.
  • Ephemerale Schlüssel in Diffie-Hellman — für Forward Secrecy.
Tiefer reinEchter vs. pseudo-Zufall

Computer sind deterministisch — sie können von Natur aus keinen Zufall erzeugen. Lösung: man sammelt Entropie aus unvorhersagbaren physikalischen Quellen (Maus, Tastatur-Timing, Festplatten-Jitter, Hardware-RNG in modernen CPUs) und füttert damit einen kryptografischen PRNG (CSPRNG), der daraus beliebig viele „zufällige" Bytes generiert.

Beispiel: /dev/urandom unter Linux, BCryptGenRandom unter Windows, crypto.getRandomValues() im Browser. Nutze niemals Math.random() für Sicherheit — das ist ein einfacher PRNG, dessen interner Zustand nach wenigen Ausgaben rekonstruierbar ist.

GeschichteBerühmte Zufalls-Disaster
  • Debian OpenSSL 2008: Ein Patch entfernte aus Versehen die Entropie-Sammlung. Zwei Jahre lang erzeugte Debian SSL-Schlüssel aus nur 32.768 möglichen Werten — trivial knackbar.
  • PlayStation 3 (2010): Sony nutzte für ECDSA-Signaturen denselben Zufallswert k immer wieder. Aus zwei Signaturen ließ sich der private Schlüssel direkt ausrechnen — Konsole komplett geöffnet.
  • Bitcoin-Wallets: Mehrere frühe Wallet-Apps nutzten schwachen Zufall — Coins wurden gezielt geleert.