Zum Inhalt springen
00 Kryptographie

XChaCha20-Poly1305

RFC 8439 — authentifizierte Verschlüsselung mit einer 192-Bit-Nonce.

01 Overview

Warum eine symmetrische Chiffre für alles.

01

Symmetrische Chiffren sind schnell

Authentifizierte symmetrische Verschlüsselung läuft mit Gigabyte pro Sekunde auf einer modernen CPU, um Größenordnungen schneller als Public-Key-Operationen. Die Verwendung symmetrischer Primitive für tatsächliche Daten ist die einzige praktikable Wahl in großem Maßstab.

02

Quantenauswirkung ist begrenzt

Grover's Algorithmus gibt Quantencomputern eine Quadratwurzel-Beschleunigung gegen symmetrische Chiffren. Ein 256-Bit-Schlüssel behält 128-Bit-effektive Sicherheit gegen einen Quantenangreifer — weit über jede plausible Brute-Force-Fähigkeit hinaus.

03

XChaCha20 ist eine moderne Stromchiffre

ChaCha20 ist eine Stromchiffre, die 2008 von Daniel J. Bernstein entworfen wurde und für ihre Einfachheit, Leistung und Widerstandsfähigkeit gegen Seitenkanalangriffe ausgewählt wurde. Sie wird weit verbreitet eingesetzt: TLS 1.3, WireGuard, OpenSSH.

02 Details

Wie XChaCha20-Poly1305 in UltimaOS funktioniert.

Umschlossene Nutzlasten auf UltimaOS — Chatnachrichten, E-Mails, Dateien, Notizen, Aufgaben, Dokumente und Tabellenkalkulationen — werden mit XChaCha20-Poly1305 mit einem 256-Bit-symmetrischen Schlüssel verschlüsselt, der aus der ML-KEM-768-Sitzung abgeleitet wird. Kalenderereignisse und KI-Konversationsverlauf befinden sich heute außerhalb dieses Umschlags.

01

256-Bit-Sitzungsschlüssel

Jede Konversation, jeder Dateiaustausch oder jeder Anruf verwendet einen frischen 256-Bit-symmetrischen Schlüssel, der aus der ML-KEM-768-Kapselung abgeleitet wird. Es gibt keinen langfristigen symmetrischen Schlüssel auf dem Server.

02

192-Bit-Zufallsnonces

Die 192-Bit-Nonce (24 Bytes) von XChaCha20 ist groß genug, dass Zufallsnonces sicher verwendet werden können — die Kollisionswahrscheinlichkeit bleibt selbst nach 2^64 Nachrichten mit demselben Schlüssel vernachlässigbar.

03

Poly1305-Authentifizierung

Poly1305 berechnet einen 16-Byte-Authentifikator über den Chiffretext und alle zugehörigen Daten. Manipulation am Chiffretext oder an den Headern macht das Tag ungültig, und der empfangende Client weigert sich zu entschlüsseln.

04

Datei-Streaming

Dateien werden in Blöcke aufgeteilt, jeder mit eigener Nonce und Poly1305-Tag. Blöcke können in beliebiger Reihenfolge verifiziert und entschlüsselt werden, was Streaming-Downloads ermöglicht, ohne auf die vollständige Datei warten zu müssen.

03 Key points

Praktische Überlegungen.

  1. 01

    Hardwarebeschleunigung ist überall

    Moderne CPUs von Intel, AMD und ARM enthalten alle AES-NI oder äquivalente Vektorinstruktionen. ChaCha20 ist die gewählte Chiffre für Systeme ohne Hardware-AES (mobile Geräte) oder für Seitenkanalresistenz.

  2. 02

    Keine Nonce-Wiederverwendung

    Die Nonce-Erzeugung verwendet einen Nachrichtenzähler kombiniert mit dem zufälligen Nonce-Präfix. Mit 192-Bit-Nonces ist eine Wiederverwendung statistisch unmöglich, selbst nach Milliarden von Nachrichten pro Sitzung.

  3. 03

    Konstantzeit-Implementierung

    Referenzimplementierungen von ChaCha20 sind konstantzeitlich, was Seitenkanal-Leaks von Schlüsselmaterial durch Timing- oder Cache-Analyse eliminiert.

  4. 04

    Bibliotheksprüfungen

    Die kryptographischen Primitive stammen von @noble — geprüfte, weit verbreitete, reine TypeScript-Implementierungen, die von der Kryptographie-Community überprüft wurden — und laufen im Client, den Sie einsehen können. Jeder ist frei, unsere Verwendung zu prüfen.

04b References

Standards and references.

05 Frequently asked

Fragen zu XChaCha20-Poly1305.

Was ist XChaCha20-Poly1305?

Short answer

XChaCha20-Poly1305 ist eine authentifizierte Verschlüsselung mit assoziierten Daten (AEAD)-Chiffre. Sie kombiniert den XChaCha20-Stromchiffre (24-Byte-Nonce-Variante von ChaCha20) mit dem Poly1305-MAC zur Authentifizierung. Sie ist in RFC 8439 spezifiziert. (RFC 8439)

Warum XChaCha20 anstelle von AES-256-GCM?

Short answer

Beide sind ausgezeichnete Chiffren. XChaCha20 hat den praktischen Vorteil konstantzeitlicher Software-Implementierungen ohne Hardware-AES-Instruktionen, was sie robuster gegen Seitenkanalangriffe auf mobilen Geräten macht. Die 192-Bit-Nonce macht auch Zufallsnonce-Konstruktionen sicher.

Was ist die effektive Schlüsselgröße gegen Quantencomputer?

Short answer

Grover's Algorithmus bietet eine quadratische Beschleunigung gegen symmetrische Chiffren. Ein 256-Bit-Schlüssel behält 128-Bit-effektive Quantensicherheit, was weit über jede plausible Brute-Force-Fähigkeit hinausgeht — einschließlich durch Quantencomputer.

Was ist der Unterschied zwischen ChaCha20 und XChaCha20?

Short answer

XChaCha20 verwendet eine 192-Bit-Nonce (24 Bytes) anstelle der 96-Bit-Nonce (12 Bytes) von ChaCha20. Die zusätzlichen Nonce-Bits werden durch Ausführen von ChaCha20 mit einem abgeleiteten Schlüssel erzeugt. Die längere Nonce ermöglicht sichere Zufallsnonce-Erzeugung ohne Erschöpfungsbedenken.

Was ist Poly1305?

Short answer

Poly1305 ist eine schnelle universelle Hash-Funktion, entworfen von Daniel J. Bernstein. In AEAD-Konstruktionen wie XChaCha20-Poly1305 berechnet Poly1305 einen 16-Byte-Authentifikator über den Chiffretext, der beweist, dass der Chiffretext nicht manipuliert wurde.

Wird XChaCha20-Poly1305 außerhalb von UltimaOS verwendet?

Short answer

Ja. TLS 1.3 (RFC 8446) unterstützt ChaCha20-Poly1305 als Cipher-Suite. WireGuard VPN verwendet ausschließlich ChaCha20-Poly1305. OpenSSH verwendet ChaCha20-Poly1305 seit Version 6.5.

Was passiert, wenn eine Poly1305-Kollision auftritt?

Short answer

Poly1305 ist ein universeller Hash; seine Ausgabe ist unter standardmäßigen kryptographischen Annahmen nicht fälschbar. Selbst wenn eine Kollision aufträte (Wahrscheinlichkeit ~2^-128), würde sie keine Fälschung ermöglichen, ohne Poly1305 selbst zu brechen, was das Brechen von AES implizieren würde.

Für immer kostenlos

Kostenlos für Einzelpersonen und Familien. Für immer.

Keine Werbung, kein Daten-Mining, keine Testuhr. Einzel- und Familienkonten sind dauerhaft kostenlos. Organisationen zahlen pro Sitzplatz, und das finanziert es.

Konto anfordern Nur auf Einladung, während wir skalieren