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.
Initialer Blockzählerwert (normalerweise 0 für Verschlüsselung, gleicher Wert für Entschlüsselung)
Ü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
- D.J. Bernstein - Salsa20-Spezifikation
- eSTREAM-Projekt - Stromchiffren-Portfolio
- Wikipedia - Salsa20
- NaCl - Netzwerk- und Kryptographie-Bibliothek
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.
Verwandte Tools
ChaCha20 Verschlüsselung
Moderne Stromchiffre mit ChaCha20, ChaCha20-Poly1305 AEAD und XChaCha20 Varianten
AES-Verschlüsselung/Entschlüsselung
Verschlüsseln und entschlüsseln Sie Text sicher mit dem AES-Algorithmus
RC-Verschlüsselung (RC4/RC5/RC6)
RC-Familie Strom- und Blockchiffren einschließlich RC4, RC4-Drop, RC5 und RC6 (AES-Finalist)