Passa al contenuto principale

1. Introduction (Introduzione)

1. Introduction (Introduzione)

L'Advanced Encryption Standard (AES -- [FIPS-197]) è diventato il gold standard nella crittografia. Il suo design efficiente, l'implementazione diffusa e il supporto hardware consentono alte prestazioni in molte aree. Sulla maggior parte delle piattaforme moderne, AES è da quattro a dieci volte più veloce del cifrario precedentemente più utilizzato, il Triple Data Encryption Standard (3DES -- [SP800-67]), il che lo rende non solo la scelta migliore, ma l'unica scelta pratica.

Ci sono diversi problemi con questo. Se futuri progressi nella crittoanalisi rivelano una debolezza in AES, gli utenti si troveranno in una posizione poco invidiabile. Con l'unico altro cifrario ampiamente supportato che è il molto più lento 3DES, non è fattibile riconfigurare le implementazioni per utilizzare 3DES. [Standby-Cipher] descrive questo problema e la necessità di un cifrario di riserva in maggior dettaglio. Un altro problema è che mentre AES è molto veloce su hardware dedicato, le sue prestazioni su piattaforme prive di tale hardware sono considerevolmente inferiori. Ancora un altro problema è che molte implementazioni di AES sono vulnerabili agli attacchi temporali di collisione della cache ([Cache-Collisions]).

Questo documento fornisce una definizione e una guida all'implementazione per tre algoritmi:

  1. Il cifrario ChaCha20. Questo è un cifrario ad alta velocità descritto per la prima volta in [ChaCha]. È considerevolmente più veloce di AES nelle implementazioni solo software, rendendolo circa tre volte più veloce su piattaforme prive di hardware AES specializzato. Vedere l'Appendice B per alcuni numeri concreti. ChaCha20 non è inoltre sensibile agli attacchi temporali (vedere le considerazioni sulla sicurezza nella Sezione 4). Questo algoritmo è descritto nella Sezione 2.4.

  2. L'autenticatore Poly1305. Questo è un codice di autenticazione del messaggio ad alta velocità. L'implementazione è anche semplice e facile da realizzare correttamente. L'algoritmo è descritto nella Sezione 2.5.

  3. La costruzione CHACHA20-POLY1305 Authenticated Encryption with Associated Data (AEAD), descritta nella Sezione 2.8.

Questo documento e il suo predecessore non introducono questi nuovi algoritmi per la prima volta. Sono stati definiti in articoli scientifici di D. J. Bernstein [ChaCha][Poly1305]. Lo scopo di questo documento è servire come riferimento stabile per i documenti IETF che utilizzano questi algoritmi.

Questi algoritmi sono stati sottoposti ad analisi rigorose. Diversi articoli discutono la sicurezza di Salsa e ChaCha ([LatinDances], [LatinDances2], [Zhenqing2012]).

Questo documento rappresenta il consenso del Crypto Forum Research Group (CFRG). Sostituisce [RFC7539].