1.1 Conventions Used in This Document (Convenzioni utilizzate in questo documento)
1.1 Conventions Used in This Document (Convenzioni utilizzate in questo documento)
Le parole chiave "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" e "OPTIONAL" in questo documento devono essere interpretate come descritto in BCP 14 [RFC2119] [RFC8174] quando, e solo quando, appaiono tutte in maiuscolo, come mostrato qui.
La descrizione dell'algoritmo ChaCha farà talvolta riferimento allo stato ChaCha come un "vettore" o come una "matrice". Questo segue l'uso di questi termini in [ChaCha]. La notazione matriciale è visivamente più conveniente e dà una migliore nozione del motivo per cui alcuni round sono chiamati "round di colonna" mentre altri sono chiamati "round di diagonale". Ecco un diagramma di come le matrici si relazionano ai vettori (utilizzando la convenzione del linguaggio C con zero come origine dell'indice).
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
Gli elementi in questo vettore o matrice sono interi senza segno a 32 bit.
Il nome dell'algoritmo è "ChaCha". "ChaCha20" è un'istanza specifica in cui vengono utilizzati 20 "round" (o 80 quarti di round -- vedere la Sezione 2.1). Sono definite altre variazioni, con 8 o 12 round, ma in questo documento descriviamo solo il ChaCha a 20 round, quindi i nomi "ChaCha" e "ChaCha20" saranno usati in modo intercambiabile.