CoderTools

Salsa20 Verschlüsselung

Hochgeschwindigkeits-Stromchiffre mit erweiterter Nonce-Variante

Clientseitige Sicherheit

Alle Ver- und Entschlüsselungsoperationen werden lokal in Ihrem Browser durchgeführt. Keine Daten werden jemals an einen Server gesendet.

Salsa20: 256-Bit-Stromchiffre mit 64-Bit-Nonce und 20 Runden. Schnell und sicher für die meisten Anwendungen.

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

Formatoptionen
🔒 100% Lokale VerarbeitungIhre Dateien werden vollständig in Ihrem Browser verarbeitet. Keine Daten werden an einen Server gesendet.

Über Salsa20

Salsa20 ist eine Stromchiffre, die 2005 von Daniel J. Bernstein entworfen wurde. Sie verwendet einen 256-Bit-Schlüssel und eine 64-Bit-Nonce, um einen Schlüsselstrom zu erzeugen, der mit dem Klartext XOR-verknüpft wird, um den Chiffretext zu erzeugen. Die Chiffre ist für hohe Leistung in Software-Implementierungen konzipiert.

Salsa20 wurde dem eSTREAM-Projekt eingereicht und als Finalist im Software-Profil ausgewählt. Es bildet die Grundlage für die ChaCha-Chiffren-Familie.

Algorithmenvergleich

Algorithmus Runden Nonce-Länge Geschwindigkeit Beste Verwendung
Salsa20/20 20 64 bits (8 bytes) Standard Allgemeine Verschlüsselung, hohe Sicherheit
Salsa20/12 12 64 bits (8 bytes) Schnell Leistungskritische Anwendungen
Salsa20/8 8 64 bits (8 bytes) Am schnellsten Maximale Geschwindigkeitsszenarien
XSalsa20 20 192 bits (24 bytes) Standard Zufällige Nonce, NaCl/libsodium

Wie Salsa20 funktioniert

Salsa20 arbeitet auf einer 4×4-Matrix von 32-Bit-Wörtern (insgesamt 512 Bits). Der Anfangszustand besteht aus dem Schlüssel (256 Bits), der Nonce (64 Bits), dem Zähler (64 Bits) und vier konstanten Wörtern, die die Zeichenkette 'expand 32-byte k' bilden.

Die Kernfunktion wendet 20 Runden der Quarterround-Operation an, die nur Additions-Rotations-XOR-Operationen (ARX) verwendet. Dies macht Salsa20 in Software effizient und resistent gegen Timing-Angriffe.

XSalsa20 erweitert die Nonce auf 192 Bits unter Verwendung von HSalsa20, einer Variante, die einen Unterschlüssel aus den ersten 128 Bits der Nonce ableitet und 64 Bits für die eigentliche Nonce übrig lässt. Dies ermöglicht eine sichere zufällige Nonce-Generierung.

Rundenvarianten

  • Salsa20/20 (20 Runden) - Die Standardvariante mit vollem Sicherheitsspielraum. Empfohlen für die meisten Anwendungen.
  • Salsa20/12 (12 Runden) - eSTREAM-Portfolio-Auswahl. Bietet gute Balance zwischen Geschwindigkeit und Sicherheit.
  • Salsa20/8 (8 Runden) - Schnellste Variante. Keine bekannten praktischen Angriffe, aber reduzierter Sicherheitsspielraum.

Hauptmerkmale

  • Hohe Leistung: Für Software optimiert, erreicht 3-4 Zyklen pro Byte auf modernen CPUs
  • Einfaches Design: Verwendet nur ARX-Operationen, einfach ohne Nachschlagetabellen zu implementieren
  • Konstante Zeit: Resistent gegen Cache-Timing-Seitenkanalangriffe
  • Großer Zähler: 64-Bit-Zähler ermöglicht Verschlüsselung von bis zu 2^70 Bytes pro Schlüssel-Nonce-Paar
  • Erweiterte Nonce: XSalsa20s 192-Bit-Nonce ermöglicht zufällige Nonce-Generierung

Sicherheitsüberlegungen

  • Verwenden Sie niemals eine Nonce mit demselben Schlüssel wieder - dies bricht die Sicherheit vollständig
  • Salsa20 bietet nur Verschlüsselung, keine Authentifizierung - kombinieren Sie mit Poly1305 für AEAD
  • Für zufällige Nonces verwenden Sie XSalsa20, um die Kollisionswahrscheinlichkeit zu minimieren
  • Verwenden Sie ein geeignetes KDF (HKDF, Argon2), um Schlüssel aus Passwörtern abzuleiten

Reale Verwendung

  • NaCl/libsodium: XSalsa20-Poly1305 ist die Standard-AEAD-Konstruktion
  • Verschlüsselungstools: Viele Dateiverschlüsselungsprogramme verwenden Salsa20-Varianten
  • Passwort-Manager: Einige verwenden Salsa20 zur Verschlüsselung gespeicherter Anmeldedaten
  • Spiele-Engines: Verwendet für schnelle Verschlüsselung in Netzwerkspielen

Referenzen

FAQ

Was ist der Unterschied zwischen Salsa20 und ChaCha20?

ChaCha20 ist eine Modifikation von Salsa20 mit verbesserter Diffusion pro Runde. ChaCha20 erreicht bessere Sicherheit pro Runde, weshalb es zum IETF-Standard wurde. Für neue Projekte wird ChaCha20 generell bevorzugt.

Welche Rundenvariante sollte ich verwenden?

Verwenden Sie Salsa20/20 für maximale Sicherheit. Salsa20/12 ist ein guter Kompromiss zwischen Geschwindigkeit und Sicherheit. Verwenden Sie Salsa20/8 nur, wenn Leistung absolut kritisch ist und Ihr Bedrohungsmodell einen reduzierten Sicherheitsspielraum erlaubt.

Wann sollte ich XSalsa20 verwenden?

Verwenden Sie XSalsa20, wenn Sie zufällige Nonces generieren müssen. Sein 192-Bit-Nonce-Raum macht Kollisionen bei zufälliger Generierung praktisch unmöglich. Die 64-Bit-Nonce von Standard-Salsa20 erfordert sorgfältiges Zählermanagement.

Ist Salsa20 ohne Authentifizierung sicher?

Salsa20 allein bietet nur Vertraulichkeit, keine Integrität. Ein Angreifer kann Chiffretext ohne Erkennung modifizieren. Kombinieren Sie immer mit Poly1305 oder einem anderen MAC für authentifizierte Verschlüsselung.

Kann ich dieses Tool in der Produktion verwenden?

Dieses Tool ist für Bildungs- und Entwicklungszwecke gedacht. Obwohl die Implementierung der Spezifikation folgt, sollten Produktionssysteme gut geprüfte kryptographische Bibliotheken wie libsodium, OpenSSL oder plattformbereitgestellte APIs verwenden.