CoderTools

Salsa20 Verschlüsselung

Hochgeschwindigkeits-Stromchiffre mit erweiterter Nonce-Variante

Clientseitige Sicherheit

Salsa20 ist eine ARX-Stromchiffre ohne Nachschlagetabellen — inhärent konstante Ausführungszeit. Nonce-Wiederverwendung ist katastrophal. Nutzen Sie XSalsa20 (192-Bit-Nonce) für sichere Zufalls-Nonce-Erzeugung.

Salsa20/20: 256 Bit, Nonce 64 Bit, 20 Runden; eSTREAM Profile 1; 2⁷² Byte max; kein Vollangriff.

Initialer Blockzählerwert (normalerweise 0 für Verschlüsselung, gleicher Wert für Entschlüsselung)

Formatoptionen
🔒 100% Lokale VerarbeitungIhre eingegebenen Daten werden vollständig in Ihrem Browser verarbeitet. Es werden keine Daten auf einen Server hochgeladen.

Über Salsa20

Salsa20 ist eine ARX-Stromchiffre von Daniel J. Bernstein (2005). Sie arbeitet auf einer 4×4-Matrix von 32-Bit-Wörtern (512-Bit-Zustand) mit nur Addition (mod 2³²), Rotation und XOR — ohne S-Boxen oder Tabellen. Der 64-Bit-Stromzähler ermöglicht wahlfreien Zugriff auf beliebige Positionen des Schlüsselstroms.

Salsa20 wurde 2008 für eSTREAM Profile 1 (Software) ausgewählt. XSalsa20 (Bernstein 2011) leitet per HSalsa20 einen 256-Bit-Teilschlüssel ab, der zufällige 192-Bit-Nonces ohne Geburtstagsproblem ermöglicht. Basis des NaCl secretbox (XSalsa20-Poly1305).

Algorithmenvergleich

Algorithmus Runden Nonce-Länge Geschwindigkeit Beste Verwendung
Salsa20/20 20 64 bits (8 bytes) Standard Langzeit-Sitzungsverschlüsselung mit sequenziellen Nonces; hoher Durchsatz; eSTREAM-zertifizierte Bereitstellungen
Salsa20/12 12 64 bits (8 bytes) Schnell Performance-optimiert mit ausreichender Sicherheitsmarge; Bernstein-Empfehlung
Salsa20/8 8 64 bits (8 bytes) Am schnellsten Nur Benchmarking und Forschung
XSalsa20 20 192 bits (24 bytes) Standard Anwendungen mit zufälliger Nonce-Erzeugung; NaCl/libsodium-secretbox-Kompatibilität

Wie Salsa20 funktioniert

Salsa20 initialisiert eine 4×4-Matrix: 4 Konstanten (“expand 32-byte k”), 8×32 Bit Schlüssel, 2×32 Bit Zähler, 2×32 Bit Nonce.

Viertelrunde auf (a,b,c,d): b⊕=(a+d)‹‹7; c⊕=(b+a)‹‹9; d⊕=(c+b)‹‹13; a⊕=(d+c)‹‹18. Doppelrunde = Spaltenrunde + Diagonalrunde. Salsa20/20 = 10 Doppelrunden. Ausgabe = XOR des transformierten Zustands mit dem Eingangszustand.

64-Bit-Zähler: 2⁶⁴ Blöcke × 64 Byte = 2⁷² Byte pro (Schlüssel, Nonce). Wahlfreier Zugriff durch Setzen des Zählers. Parallele Verarbeitung unabhängiger 64-Byte-Segmente möglich.

Rundenvarianten

  • Salsa20/20 (20 Runden): maximale Sicherheitsmarge, eSTREAM nominiert, kein bekannter Vollangriff. Für alle sicherheitskritischen Anwendungen.
  • Salsa20/12 (12 Runden): ~35% schneller als /20, kein bekannter Angriff auf 12 Runden, Bernsteins Leistungs-Sicherheits-Empfehlung.
  • Salsa20/8 (8 Runden): schnellste Variante; bekannte reduzierte Angriffe (Aumasson 2008, 2²⁴⁹). Nicht für sicherheitskritische Nutzung. Nur Benchmarking.

Hauptmerkmale

  • ARX-Design: keine S-Box, keine Tabellen. Ausführungszeit unabhängig von Schlüssel/Daten. Inhärente Immunität gegen Cache-Timing-Angriffe.
  • Großer Schlüsselstrom: 2⁷² Byte pro (Schlüssel, Nonce) via 64-Bit-Zähler. Wahlfreier Zugriff ohne Neuverarbeitung.
  • 64-Bit-Nonce: strenge Eindeutigkeitsverwaltung nötig. Nach 2³² Nachrichten gleicher Schlüssel Kollisionswahrscheinlichkeit nicht vernachlässigbar. XSalsa20 (192 Bit) für Langzeitschlüssel.
  • XSalsa20 (192-Bit-Nonce, 2011): HSalsa20-abgeleiteter Teilschlüssel ermöglicht zufällige Nonce-Erzeugung. NaCl-secretbox-Standard.
  • eSTREAM Profile 1 (Software, 2008): 4-jährige öffentliche Evaluierung. Kein Angriff auf 12 oder 20 Runden.

Sicherheitsüberlegungen

  • Nonce-Wiederverwendung katastrophal: enthüllt XOR der Klartexte. Eindeutige Nonces erzwingen. XSalsa20 mit 192-Bit-Zufalls-Nonce eliminiert Geburtstagsrisiko.
  • Geburtstagsproblem kurzer Nonce: 64-Bit-Nonce → ~2³² Nachrichten bis ~50% Kollision. XSalsa20 (192 Bit) verwenden.
  • Reduzierte-Runden-Angriffe: keine auf /20 oder /12. Salsa20/8: bekannte Unterscheider. Nur /20 für kritische Nutzung.
  • Keine Authentifikation: XSalsa20-Poly1305 oder ChaCha20-Poly1305 für AEAD verwenden.

Reale Verwendung

  • NaCl secretbox (XSalsa20-Poly1305): ursprüngliche AEAD-Primitive von NaCl; 192-Bit-Nonce + Poly1305; weit verbreitet in libsodium-Anwendungen.
  • eSTREAM Profile 1 (2008): Salsa20/12 als primäre Software-Stromchiffre im ECRYPT-Wettbewerb 2004-2008 ausgewählt.
  • Einfluss auf ChaCha20: Bernstein entwarf ChaCha20 (2008) als Salsa20-Variante mit verbesserter Rundendiffusion.
  • Legacy-Systeme: Viele VPN-Tools, Dateiverschlüsselung, Messenger nutzten XSalsa20-Poly1305 vor RFC 7539/8439.

Referenzen

Schnellmenü

Keine aktuellen Tools