Aller au contenu principal

2. Notation and Conventions

2. Notation and Conventions

La notation suivante est utilisée tout au long du document:

p - Désigne le nombre premier définissant le corps sous-jacent

GF(p) - Corps fini (Finite field) avec p éléments

x^y - x multiplié par lui-même y fois

B - Générateur (Generator) du groupe ou sous-groupe d'intérêt

[n]X - X additionné à lui-même n fois

h[i] - Le i-ème octet de la chaîne d'octets h

h_i - Le i-ème bit de h

a || b - Chaîne (de bits) a concaténée avec la chaîne (de bits) b

a <= b - a est inférieur ou égal à b

a >= b - a est supérieur ou égal à b

i+j - Somme de i et j

i*j - Multiplication de i et j

i-j - Soustraction de j de i

i/j - Division de i par j

i x j - Produit cartésien (Cartesian product) de i et j

(u,v) - Point de courbe elliptique avec coordonnée x u et coordonnée y v

SHAKE256(x, y) - Les y premiers octets de la sortie SHAKE256 [FIPS202] pour l'entrée x

OCTET(x) - L'octet avec la valeur x

OLEN(x) - Le nombre d'octets dans la chaîne x

dom2(x, y) - La chaîne d'octets vide lors de la signature ou de la vérification d'Ed25519. Sinon, la chaîne d'octets: "SigEd25519 no Ed25519 collisions" || octet(x) || octet(OLEN(y)) || y, où x est dans la plage 0-255 et y est une chaîne d'octets d'au plus 255 octets. "SigEd25519 no Ed25519 collisions" est en ASCII (32 octets).

dom4(x, y) - La chaîne d'octets "SigEd448" || octet(x) || octet(OLEN(y)) || y, où x est dans la plage 0-255 et y est une chaîne d'octets d'au plus 255 octets. "SigEd448" est en ASCII (8 octets).

Les parenthèses (c'est-à-dire '(' et ')') sont utilisées pour grouper les expressions, afin d'éviter que la description ne dépende d'un ordre de liaison entre les opérateurs.

Les chaînes de bits sont converties en chaînes d'octets en prenant les bits de gauche à droite, en les empaquetant du bit le moins significatif de chaque octet au bit le plus significatif, et en passant à l'octet suivant lorsque chaque octet est rempli. La conversion de la chaîne d'octets en chaîne de bits est l'inverse de ce processus; par exemple, la chaîne de bits de 16 bits

b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12 b13 b14 b15

est convertie en deux octets x0 et x1 (dans cet ordre) comme

x0 = b7*128+b6*64+b5*32+b4*16+b3*8+b2*4+b1*2+b0
x1 = b15*128+b14*64+b13*32+b12*16+b11*8+b10*4+b9*2+b8

L'encodage little-endian en bits place les bits de gauche à droite et du moins significatif au plus significatif. Si combiné avec la conversion chaîne-de-bits-vers-chaîne-d-octets définie ci-dessus, cela résulte en un encodage little-endian en octets (si la longueur n'est pas un multiple de 8, les bits les plus significatifs du dernier octet restent inutilisés).

Les mots-clés "MUST" (DOIT), "MUST NOT" (NE DOIT PAS), "REQUIRED" (REQUIS), "SHALL" (DOIT), "SHALL NOT" (NE DOIT PAS), "SHOULD" (DEVRAIT), "SHOULD NOT" (NE DEVRAIT PAS), "RECOMMENDED" (RECOMMANDÉ), "MAY" (PEUT), et "OPTIONAL" (FACULTATIF) dans ce document doivent être interprétés comme décrit dans [RFC2119].