ChaCha20-Verschlüsselung
Moderne Stromverschlüsselung mit optionaler Authentifizierung
Clientseitige Sicherheit
Alle Ver-/Entschlüsselungsvorgänge werden lokal in Ihrem Browser durchgeführt. Es werden keine Daten an einen Server gesendet.
Anfangswert des Zählers (Standard: 0)
Über ChaCha20
ChaCha20 ist eine moderne Stromverschlüsselung, die 2008 von Daniel J. Bernstein entworfen wurde und von der Salsa20-Verschlüsselung abgeleitet ist. Sie verwendet einen 256-Bit-Schlüssel und arbeitet auf 512-Bit-Blöcken, wobei ein Schlüsselstrom erzeugt wird, der mit dem Klartext XOR-verknüpft wird. Diese Verschlüsselung ist für ihre Geschwindigkeit, Sicherheit und Resistenz gegen Timing-Angriffe bekannt.
Diese Verschlüsselung ist bekannt für ihre Geschwindigkeit, Sicherheit und Widerstandsfähigkeit gegen Timing-Angriffe, was sie zu einer ausgezeichneten Wahl für Software-Implementierungen macht.
Algorithmusvergleich
| Algorithmus | Authentifizierung | Schlüssellänge | Nonce-Größe | Anwendungsfall |
|---|---|---|---|---|
| ChaCha20 | Stromverschlüsselung | 256 bits | 96 bits (12 bytes) | Rohverschlüsselung, benutzerdefinierte Protokolle |
| ChaCha20-Poly1305 | AEAD | 256 bits | 96 bits (12 bytes) | TLS 1.3, QUIC, sichere Nachrichtenübermittlung |
| XChaCha20 | Stromverschlüsselung | 256 bits | 192 bits (24 bytes) | Zufällige Nonce-Szenarien |
| XChaCha20-Poly1305 | AEAD | 256 bits | 192 bits (24 bytes) | Die meisten Anwendungen (empfohlen) |
Wie ChaCha20 funktioniert
ChaCha20 arbeitet in 20 Runden und wendet Viertelrundenfunktionen auf eine 4×4-Matrix aus 32-Bit-Wörtern an. Der Anfangszustand besteht aus:
Jede Runde permutiert den Zustand durch Additionen, XORs und Rotationen und bietet hervorragende Diffusion bei gleichzeitig hoher Software-Geschwindigkeit.
AEAD: Authentifizierte Verschlüsselung
ChaCha20-Poly1305 ist eine AEAD-Konstruktion, die in RFC 8439 standardisiert ist. Sie kombiniert ChaCha20 für die Verschlüsselung mit dem Poly1305-MAC für die Authentifizierung. Dies gewährleistet sowohl Vertraulichkeit als auch Integrität - jede Manipulation am Geheimtext oder AAD wird bei der Entschlüsselung erkannt. Das 128-Bit-Authentifizierungs-Tag wird an den Geheimtext angehängt.
Dies gewährleistet sowohl Vertraulichkeit als auch Integrität - jede Manipulation des Chiffretexts oder AAD wird bei der Entschlüsselung erkannt. Der 128-Bit-Authentifizierungstag wird über Chiffretext und AAD berechnet.
Hauptmerkmale
- Hohe Leistung: Optimiert für Software-Implementierungen, 3× schneller als AES ohne Hardware-Beschleunigung
- Konstante Zeit: Resistent gegen Cache-Timing-Angriffe, im Gegensatz zu tabellenbasierten AES-Implementierungen
- Einfaches Design: Verwendet nur ARX-Operationen (Addition, Rotation, XOR), leicht korrekt zu implementieren
- Breite Akzeptanz: Verwendet in TLS 1.3, OpenSSH, WireGuard, Signal Protocol und mehr
- Erweiterter Nonce: XChaCha20-Variante ermöglicht sichere zufällige Nonce-Generierung ohne Kollisionsrisiko
Sicherheitsüberlegungen
- Niemals einen Nonce mit demselben Schlüssel wiederverwenden - dies kompromittiert die Sicherheit vollständig
- AEAD-Varianten (Poly1305) für die meisten Anwendungen verwenden, um Manipulationen zu erkennen
- Für zufällige Nonces XChaCha20 (192 Bit) verwenden, um die Kollisionswahrscheinlichkeit zu minimieren
- Einen geeigneten KDF (HKDF, Argon2) verwenden, um Schlüssel aus Passwörtern abzuleiten
Praxisanwendung
- TLS 1.3: Standard-Cipher-Suite (TLS_CHACHA20_POLY1305_SHA256)
- WireGuard VPN: Primäres Verschlüsselungsprotokoll
- Signal Protocol: Ende-zu-Ende-verschlüsselte Nachrichten
- Cloudflare: Bevorzugt vor AES-GCM für mobile Clients
- Linux-Kernel: CSPRNG (/dev/urandom)
Referenzen
- RFC 7539 - ChaCha20 und Poly1305 für IETF-Protokolle
- RFC 8439 - ChaCha20 und Poly1305 für IETF-Protokolle (aktualisiert)
- Wikipedia - ChaCha20-Poly1305
- Originaler ChaCha-Artikel von D.J. Bernstein
FAQ
Was ist der Unterschied zwischen ChaCha20 und AES?
Beide sind sichere symmetrische Verschlüsselungen. ChaCha20 ist 3× schneller in Software ohne Hardware-Beschleunigung und resistent gegen Timing-Angriffe. AES ist schneller mit Hardware-Unterstützung (AES-NI). ChaCha20 wird für mobile und eingebettete Geräte bevorzugt.
Warum XChaCha20 statt ChaCha20 verwenden?
Der 192-Bit-Nonce von XChaCha20 ermöglicht sichere zufällige Nonce-Generierung. Mit einem 96-Bit-Nonce ist sorgfältiges Nonce-Management erforderlich, um Kollisionen zu vermeiden. XChaCha20 wird empfohlen, wenn Sie keine einzigartigen sequentiellen Nonces garantieren können.
Wofür ist der Zählerparameter?
Der Zähler ermöglicht die Verschlüsselung von Nachrichten über 64 Bytes durch Inkrementieren für jeden Block. Bei AEAD-Modi beginnt er bei 1 (Block 0 generiert den Poly1305-Schlüssel). Normalerweise können Sie den Standardwert (0) beibehalten.
Kann ich Dateien mit diesem Tool verschlüsseln?
Dieses Tool läuft vollständig in Ihrem Browser und eignet sich für die Verschlüsselung von Text und kleinen Daten. Für große Dateien verwenden Sie native Tools wie openssl oder libsodium-basierte Anwendungen.
Ist dieses Tool sicher für den Produktionseinsatz?
Dieses Tool dient Bildungs- und Entwicklungszwecken. Obwohl die Implementierung den Standardspezifikationen folgt, sollten Produktionssysteme gut geprüfte kryptografische Bibliotheken wie libsodium, OpenSSL oder plattformeigene APIs verwenden.
Verwandte Tools
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)
Blowfish-Verschlüsselung/Entschlüsselung
Schnelle symmetrische Blockverschlüsselung von Bruce Schneier mit variabler Schlüssellänge (32-448 Bit)