Vai al contenuto
00 Crittografia

XChaCha20-Poly1305

RFC 8439 — crittografia autenticata con nonce a 192 bit.

01 Overview

Perché un cifrario simmetrico per tutto.

01

I cifrari simmetrici sono veloci

La crittografia simmetrica autenticata gira a gigabyte al secondo su una CPU moderna, ordini di grandezza più veloce delle operazioni a chiave pubblica. Usare primitive simmetriche per i dati reali è l'unica scelta pratica su larga scala.

02

L'impatto quantistico è limitato

L'algoritmo di Grover dà ai computer quantistici un'accelerazione di radice quadrata contro i cifrari simmetrici. Una chiave a 256 bit mantiene una sicurezza effettiva di 128 bit contro un attaccante quantistico — ben oltre ogni plausibile capacità di forza bruta.

03

XChaCha20 è un cifrario a flusso moderno

ChaCha20 è un cifrario a flusso progettato da Daniel J. Bernstein nel 2008, scelto per la sua semplicità, prestazioni e resistenza agli attacchi side-channel. È ampiamente usato: TLS 1.3, WireGuard, OpenSSH.

02 Details

Come funziona XChaCha20-Poly1305 in UltimaOS.

I payload avvolti su UltimaOS — messaggi di chat, posta, file, note, attività, documenti e fogli di calcolo — sono cifrati con XChaCha20-Poly1305 usando una chiave simmetrica a 256 bit derivata dalla sessione ML-KEM-768. Gli eventi del calendario e la cronologia delle conversazioni AI sono fuori da quella busta oggi.

01

Chiavi di sessione a 256 bit

Ogni conversazione, condivisione di file o chiamata usa una nuova chiave simmetrica a 256 bit, derivata dall'incapsulamento ML-KEM-768. Non c'è alcuna chiave simmetrica a lungo termine sul server.

02

Nonce casuali a 192 bit

Il nonce a 192 bit (24 byte) di XChaCha20 è abbastanza grande perché i nonce casuali possano essere usati in sicurezza — la probabilità di collisione rimane trascurabile anche dopo 2^64 messaggi con la stessa chiave.

03

Autenticazione Poly1305

Poly1305 calcola un autenticatore di 16 byte sul testo cifrato e su qualsiasi dato associato. Manomettere il testo cifrato o le intestazioni invalida il tag, e il client ricevente rifiuta di decifrare.

04

Streaming dei file

I file sono divisi in blocchi, ciascuno con il proprio nonce e tag Poly1305. I blocchi possono essere verificati e decifrati in qualsiasi ordine, consentendo il download in streaming senza attendere l'intero file.

03 Key points

Considerazioni pratiche.

  1. 01

    L'accelerazione hardware è ovunque

    Le CPU moderne di Intel, AMD e ARM includono tutte AES-NI o istruzioni vettoriali equivalenti. ChaCha20 è il cifrario scelto per i sistemi senza AES hardware (dispositivi mobili) o per la resistenza side-channel.

  2. 02

    Nessun riuso del nonce

    La generazione del nonce usa un contatore per messaggio combinato con il prefisso casuale del nonce. Con nonce a 192 bit, il riuso è statisticamente impossibile anche dopo miliardi di messaggi per sessione.

  3. 03

    Implementazione a tempo costante

    Le implementazioni di riferimento di ChaCha20 sono a tempo costante, eliminando la fuga di materiale chiave attraverso l'analisi dei tempi o della cache.

  4. 04

    Verifiche delle librerie

    Le primitive crittografiche provengono da @noble — implementazioni pure in TypeScript, verificate e ampiamente usate, revisionate dalla comunità crittografica — che girano nel client che puoi ispezionare. Chiunque è libero di verificare il nostro uso di esse.

04b References

Standards and references.

05 Frequently asked

Domande su XChaCha20-Poly1305.

Cos'è XChaCha20-Poly1305?

Short answer

XChaCha20-Poly1305 è un cifrario di crittografia autenticata con dati associati (AEAD). Combina il cifrario a flusso XChaCha20 (variante a nonce di 24 byte di ChaCha20) con il MAC Poly1305 per l'autenticazione. È specificato in RFC 8439. (RFC 8439)

Perché usare XChaCha20 invece di AES-256-GCM?

Short answer

Entrambi sono ottimi cifrari. XChaCha20 ha il vantaggio pratico di implementazioni software a tempo costante senza richiedere istruzioni hardware AES, rendendolo più robusto contro gli attacchi side-channel sui dispositivi mobili. Il nonce a 192 bit rende anche sicure le costruzioni con nonce casuali.

Qual è la dimensione effettiva della chiave contro i computer quantistici?

Short answer

L'algoritmo di Grover fornisce un'accelerazione quadratica contro i cifrari simmetrici. Una chiave a 256 bit mantiene una sicurezza quantistica effettiva di 128 bit, che è ben oltre qualsiasi capacità di forza bruta plausibile — inclusi i computer quantistici.

Qual è la differenza tra ChaCha20 e XChaCha20?

Short answer

XChaCha20 usa un nonce a 192 bit (24 byte) invece del nonce a 96 bit (12 byte) di ChaCha20. I bit extra del nonce sono derivati eseguendo ChaCha20 con una chiave derivata. Il nonce più lungo consente una generazione sicura di nonce casuali senza preoccupazioni di esaurimento.

Cos'è Poly1305?

Short answer

Poly1305 è una funzione hash universale veloce progettata da Daniel J. Bernstein. Nelle costruzioni AEAD come XChaCha20-Poly1305, Poly1305 calcola un autenticatore di 16 byte sul testo cifrato che dimostra che il testo cifrato non è stato manomesso.

XChaCha20-Poly1305 è usato al di fuori di UltimaOS?

Short answer

Sì. TLS 1.3 (RFC 8446) supporta ChaCha20-Poly1305 come suite di cifratura. WireGuard VPN usa ChaCha20-Poly1305 esclusivamente. OpenSSH usa ChaCha20-Poly1305 dalla versione 6.5.

Cosa succede se si verifica una collisione Poly1305?

Short answer

Poly1305 è un hash universale; il suo output è infalsificabile sotto ipotesi crittografiche standard. Anche se si verificasse una collisione (probabilità ~2^-128), non consentirebbe la falsificazione senza rompere Poly1305 stesso, il che implicherebbe rompere AES.

Gratis per sempre

Gratuito per privati e famiglie. Per sempre.

Niente pubblicità, niente data mining, nessun timer di prova. Gli account individuali e familiari sono gratuiti — per sempre. Le organizzazioni pagano per posto, ed è ciò che lo finanzia.

Richiedi il tuo account Solo su invito mentre scaliamo