Hoppa till innehåll
00 Kryptografi

XChaCha20-Poly1305

RFC 8439 — autentiserad kryptering med en 192-bitars nonce.

01 Overview

Varför ett symmetriskt chiffer för allt.

01

Symmetriska chiffer är snabba

Autentiserad symmetrisk kryptering körs i gigabyte per sekund på en modern CPU, storleksordningar snabbare än public-key-operationer. Att använda symmetriska primitiver för faktiska data är det enda praktiska valet i stor skala.

02

Kvantpåverkan är begränsad

Grovers algoritm ger kvantdatorer en kvadratrotsacceleration mot symmetriska chiffer. En 256-bitars nyckel behåller 128-bitars effektiv säkerhet mot en kvantattackerare — långt bortom någon rimlig brute-force-förmåga.

03

XChaCha20 är ett modernt strömchiffer

ChaCha20 är ett strömchiffer designat av Daniel J. Bernstein 2008, valt för sin enkelhet, prestanda och motståndskraft mot sidokanalsattacker. Det används brett: TLS 1.3, WireGuard, OpenSSH.

02 Details

Hur XChaCha20-Poly1305 fungerar i UltimaOS.

Kuverterade nyttolaster på UltimaOS — chattmeddelanden, e-post, filer, anteckningar, uppgifter, dokument och kalkylblad — krypteras med XChaCha20-Poly1305 med en 256-bitars symmetrisk nyckel som härleds från ML-KEM-768-sessionen. Kalenderhändelser och AI-konversationshistorik är utanför det kuvertet idag.

01

256-bitars sessionsnycklar

Varje konversation, fildelning eller samtal använder en ny 256-bitars symmetrisk nyckel, härledd från ML-KEM-768-inkapslingen. Det finns ingen långsiktig symmetrisk nyckel på servern.

02

192-bitars slumpmässiga nonces

XChaCha20:s 192-bitars nonce (24 byte) är tillräckligt stor för att slumpmässiga nonces kan användas säkert — kollisionssannolikheten förblir försumbar även efter 2^64 meddelanden med samma nyckel.

03

Poly1305-autentisering

Poly1305 beräknar en 16-byte autentiserare över chiffertexten och eventuella associerade data. Manipulering av chiffertexten eller rubrikerna ogiltigförklarar taggen, och den mottagande klienten vägrar att dekryptera.

04

Filströmning

Filer delas upp i bitar, var och en med sin egen nonce och Poly1305-tagg. Bitarna kan verifieras och dekrypteras i valfri ordning, vilket möjliggör strömmande nedladdning utan att vänta på hela filen.

03 Key points

Praktiska överväganden.

  1. 01

    Hårdvaruacceleration finns överallt

    Moderna processorer från Intel, AMD och ARM inkluderar alla AES-NI eller motsvarande vektorinstruktioner. ChaCha20 är det valda chiffret för system utan hårdvaru-AES (mobila enheter) eller för sidokanalsmotstånd.

  2. 02

    Ingen nonce-återanvändning

    Nonce-generering använder en räknare per meddelande kombinerad med det slumpmässiga nonce-prefixet. Med 192-bitars nonces är återanvändning statistiskt omöjlig även efter miljarder meddelanden per session.

  3. 03

    Konstant-tidsimplementation

    Referensimplementationer av ChaCha20 är konstant-tid, vilket eliminerar sidokanalsläckage av nyckelmaterial genom tids-eller cacheanalys.

  4. 04

    Biblioteksgranskningar

    De kryptografiska primitiverna kommer från @noble — granskade, allmänt använda, ren TypeScript-implementationer som granskats av kryptografisamhället — som körs i klienten du kan granska. Alla är fria att granska vår användning av dem.

04b References

Standards and references.

05 Frequently asked

Frågor om XChaCha20-Poly1305.

Vad är XChaCha20-Poly1305?

Short answer

XChaCha20-Poly1305 är ett autentiserat krypteringschiffer med associerade data (AEAD). Det kombinerar XChaCha20-strömchiffret (24-byte nonce-variant av ChaCha20) med Poly1305-MAC för autentisering. Det specificeras i RFC 8439. (RFC 8439)

Varför använda XChaCha20 istället för AES-256-GCM?

Short answer

Båda är utmärkta chiffer. XChaCha20 har den praktiska fördelen av konstant-tids mjukvaruimplementationer utan att kräva hårdvaru-AES-instruktioner, vilket gör det mer robust mot sidokanalsattacker på mobila enheter. Den 192-bitars noncen gör också slumpmässiga nonce-konstruktioner säkra.

Vad är den effektiva nyckelstorleken mot kvantdatorer?

Short answer

Grovers algoritm ger en kvadratisk acceleration mot symmetriska chiffer. En 256-bitars nyckel behåller 128-bitars effektiv kvantsäkerhet, vilket är långt bortom någon rimlig brute-force-förmåga — inklusive av kvantdatorer.

Vad är skillnaden mellan ChaCha20 och XChaCha20?

Short answer

XChaCha20 använder en 192-bitars nonce (24 byte) istället för ChaCha20:s 96-bitars nonce (12 byte). De extra nonce-bitarna härleds genom att köra ChaCha20 med en härledd nyckel. Den längre noncen tillåter säker slumpmässig nonce-generering utan uttömningsproblem.

Vad är Poly1305?

Short answer

Poly1305 är en snabb universal hash-funktion designad av Daniel J. Bernstein. I AEAD-konstruktioner som XChaCha20-Poly1305 beräknar Poly1305 en 16-byte autentiserare över chiffertexten som bevisar att chiffertexten inte manipulerats.

Används XChaCha20-Poly1305 utanför UltimaOS?

Short answer

Ja. TLS 1.3 (RFC 8446) stöder ChaCha20-Poly1305 som en chiffer-svit. WireGuard VPN använder ChaCha20-Poly1305 uteslutande. OpenSSH har använt ChaCha20-Poly1305 sedan version 6.5.

Vad händer om en Poly1305-kollision inträffar?

Short answer

Poly1305 är en universal hash; dess utdata är oförfalskbar under standardkryptografiska antaganden. Även om en kollision inträffade (sannolikhet ~2^-128), skulle det inte tillåta förfalskning utan att bryta Poly1305 själv, vilket skulle innebära att bryta AES.

Gratis för alltid

Gratis för privatpersoner och familjer. För alltid.

Inga annonser, ingen datautvinning, ingen provperiodsklocka. Privat-och familjekonton är gratis — permanent. Organisationer betalar per plats, och det är det som finansierar det.

Begär ditt konto Endast inbjudan medan vi skalar