Definizione (scheda del glossario): ChaCha20-Poly1305 è una costruzione di cifratura autenticata con dati associati (AEAD) che combina il cifrario a flusso ChaCha20 con il codice di autenticazione dei messaggi Poly1305. Cifra il traffico con una chiave a 256 bit e allega un tag di autenticazione a 128 bit, così i destinatari possono rilevare manomissioni nella stessa operazione crittografica.

Quando un'app VPN elenca «ChaCha20-Poly1305» accanto a WireGuard o a una cipher suite TLS, sta indicando l'algoritmo che protegge effettivamente i payload dei pacchetti dopo l'handshake. Capire quel nome conta più che memorizzare gli slogan di marketing: ChaCha20-Poly1305 non è di per sé un protocollo VPN e non è un sostituto più debole di AES. È un cifrario AEAD moderno, standardizzato per i protocolli IETF e ampiamente impiegato in WireGuard, TLS, SSH e IPsec.
Da dove viene il nome
Daniel J. Bernstein ha progettato Poly1305 (2005) e ChaCha (2008) come primitive software ad alta velocità. L'IETF ha poi standardizzato una specifica combinazione AEAD in RFC 8439 (che rende obsoleto RFC 7539): ChaCha20 produce un keystream che viene sottoposto a XOR con il testo in chiaro, e Poly1305 autentica il testo cifrato più eventuali dati associati. La costruzione aumenta il testo cifrato di un tag fisso di 16 byte.
Secondo la panoramica Wikipedia di ChaCha20-Poly1305, l'algoritmo prende una chiave a 256 bit e un nonce a 96 bit, rispecchia la struttura encrypt-then-MAC familiare da AES-GCM ed è usato in IPsec, SSH, TLS 1.2/1.3, DTLS e WireGuard. Questa ampia diffusione è il motivo per cui lo stesso nome del cifrario compare nei client VPN per i consumatori e nei gateway aziendali.
Come ChaCha20 cifra

ChaCha20 è un cifrario a flusso. Non divide i dati nei blocchi da 128 bit usati da AES. Invece espande una chiave, un nonce e un contatore di blocco in blocchi di keystream da 64 byte usando solo addizione, XOR e rotazione di bit per 20 round. Il keystream viene sottoposto a XOR con il testo in chiaro per produrre il testo cifrato. La decifratura è lo stesso XOR con lo stesso keystream.
La spiegazione di ChaCha20 di Proton riassume il punto pratico per gli utenti VPN: ChaCha20 è progettato per restare veloce nel software ordinario, il che aiuta telefoni, CPU più vecchie e dispositivi senza accelerazione hardware AES. AES spesso vince quando sono presenti AES-NI o le estensioni crittografiche ARM; ChaCha20 spesso vince quando la cifratura deve essere eseguita in software puro con proprietà di timing costanti.
Cosa aggiunge Poly1305

La sola cifratura non impedisce a un attaccante di invertire bit in transito. Poly1305 è un codice di autenticazione del messaggio monouso che produce un tag di 16 byte sul testo cifrato (e sui dati associati). Nella costruzione AEAD di RFC 8439, il primo blocco ChaCha20 genera una chiave Poly1305 monouso; i blocchi successivi cifrano il payload. Se la verifica del tag fallisce, il pacchetto deve essere scartato senza rilasciare il testo in chiaro.
Quel modello «cifra e poi autentica in una sola API» è ciò che significa AEAD. AES-GCM svolge lo stesso compito con interni diversi. Gli analisti della sicurezza considerano ChaCha20-Poly1305 e AES-256-GCM implementati correttamente come equivalenti in termini di riservatezza e integrità sotto assunzioni standard, purché i nonce non si ripetano mai per una data chiave.
Perché WireGuard e gli stack mobile se ne interessano
La crittografia pubblicata di WireGuard fissa il cifrario di trasporto su ChaCha20-Poly1305. Non esiste un selettore utente per AES nel WireGuard classico. Questa scelta mantiene il protocollo piccolo e verificabile: un solo AEAD, una sola famiglia di scambio chiavi, superficie di configurazione minima. OpenVPN e IKEv2/IPsec possono negoziare diversi cifrari, incluso ChaCha20-Poly1305 dove librerie e peer lo supportano, ed è per questo che il nome dell'algoritmo compare anche al di fuori di WireGuard.
Nelle reti mobili e sui dispositivi con vincoli di batteria, i cifrari adatti al software contano. Le misurazioni TLS storiche citate nell'appendice sulle prestazioni della RFC 8439 hanno mostrato che ChaCha20-Poly1305 supera AES-GCM sui telefoni senza accelerazione AES, mentre AES-GCM prevale sui server con AES-NI. Nel 2026, molti telefoni hanno estensioni crittografiche, ma il design adatto al software riduce ancora il rischio di implementazione e mantiene il throughput prevedibile su flotte miste.
ChaCha20 vs AES: i compromessi che contano
- Tipo di cifrario: ChaCha20 è un cifrario a flusso; AES è un cifrario a blocchi solitamente eseguito in modalità GCM per AEAD.
- Hardware: AES di solito vince sulle CPU con AES-NI / estensioni crittografiche; ChaCha20 di solito vince in software puro.
- Canali laterali temporali: Il design add-rotate-XOR di ChaCha20 è ampiamente considerato più facile da implementare senza insidie di cache-timing rispetto ad alcuni percorsi software di AES basati su tabelle.
- Disciplina del nonce: Sia GCM sia ChaCha20-Poly1305 falliscono in modo catastrofico se una coppia (chiave, nonce) viene riutilizzata. I protocolli devono garantire l'unicità: WireGuard usa contatori di pacchetti; TLS deriva chiavi e nonce nuovi per ogni record.
- Familiarità con la conformità: Le checklist aziendali citano ancora AES-256 più di frequente; è un'abitudine istituzionale, non la prova che ChaCha20-Poly1305 sia più debole quando è standardizzato e usato correttamente.
Cosa ChaCha20-Poly1305 non è
Non è un protocollo VPN. Non sostituisce WireGuard, OpenVPN o IKEv2. Non nasconde che stai usando una VPN, non sceglie i paesi di uscita e non applica una policy no-logs. Quelli sono problemi di trasporto, routing e fiducia nell'operatore. ChaCha20-Poly1305 risponde solo a questa domanda: una volta che i peer condividono una chiave di sessione, come vengono sigillati i pacchetti affinché gli intercettatori non possano leggerli o modificarli in modo silenzioso?
Non è nemmeno «quantum-proof». Come AES-256-GCM, è un cifrario simmetrico; la consueta preoccupazione harvest-now-decrypt-later per le VPN si concentra sullo scambio di chiavi dell'handshake (oggi ECDH, con deployment ibridi ML-KEM emergenti), non sul ritiro improvviso di ChaCha20 stesso. Tratta le affermazioni su VPN post-quantum come dichiarazioni su handshake e autenticazione, non sulla sostituzione di ChaCha20 con un diverso cifrario di massa.
Checklist pratica per i lettori
- Se il client mostra WireGuard, aspettati ChaCha20-Poly1305 sul canale dati per progettazione.
- Se il client mostra OpenVPN o IKEv2, verifica il cifrario negoziato nei log o nelle impostazioni avanzate; ChaCha20-Poly1305 può essere disponibile insieme ad AES-GCM.
- Non inseguire gli aggettivi «military-grade». Preferisci suite AEAD documentate dagli RFC attuali e da client mantenuti.
- Ricorda che un AEAD solido non può rimediare a una password riutilizzata, a una pagina di phishing o a una fuga DNS fuori dal tunnel.
In breve: ChaCha20-Poly1305 è il cavallo di battaglia AEAD dietro gran parte del traffico VPN e HTTPS di oggi. Impara la definizione, conosci la regola del nonce e considera la scelta del protocollo e la policy dell'operatore come questioni distinte dal nome del cifrario di massa nella schermata delle impostazioni.