Aller au contenu principal

1.1 Conventions Used in This Document (Conventions utilisées dans ce document)

1.1 Conventions Used in This Document (Conventions utilisées dans ce document)

Les mots-clés "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY" et "OPTIONAL" dans ce document doivent être interprétés comme décrit dans BCP 14 [RFC2119] [RFC8174] lorsque, et seulement lorsque, ils apparaissent en majuscules, comme indiqué ici.

La description de l'algorithme ChaCha fera parfois référence à l'état ChaCha comme un "vecteur" ou comme une "matrice". Cela suit l'utilisation de ces termes dans [ChaCha]. La notation matricielle est visuellement plus pratique et donne une meilleure idée de la raison pour laquelle certains tours sont appelés "tours de colonnes" tandis que d'autres sont appelés "tours de diagonales". Voici un diagramme montrant comment les matrices se rapportent aux vecteurs (en utilisant la convention du langage C où zéro est l'origine de l'index).

   0   1   2   3
4 5 6 7
8 9 10 11
12 13 14 15

Les éléments de ce vecteur ou de cette matrice sont des entiers non signés de 32 bits.

Le nom de l'algorithme est "ChaCha". "ChaCha20" est une instance spécifique où 20 "tours" (ou 80 quarts de tour -- voir la Section 2.1) sont utilisés. D'autres variantes sont définies, avec 8 ou 12 tours, mais dans ce document nous décrivons uniquement le ChaCha à 20 tours, donc les noms "ChaCha" et "ChaCha20" seront utilisés de manière interchangeable.