Aller au contenu principal

5.1.5 Key Generation

5.1.5 Key Generation (Génération de clés)

La clé privée est de 32 octets (256 bits, correspondant à b) de données aléatoires cryptographiquement sûres. Voir [RFC4086] pour une discussion sur l'aléa.

La clé publique de 32 octets est générée par les étapes suivantes.

  1. Hacher la clé privée de 32 octets avec SHA-512, en stockant le digest dans un tampon de 64 octets, noté h. Seuls les 32 octets inférieurs sont utilisés pour générer la clé publique.

  2. Élaguer (prune) le tampon : les trois bits les moins significatifs du premier octet sont effacés, le bit le plus significatif du dernier octet est effacé, et le deuxième bit le plus significatif du dernier octet est mis à 1.

  3. Interpréter le tampon comme l'entier little-endian, formant un scalaire secret s. Effectuer une multiplication scalaire à base fixe [s]B.

  4. La clé publique A est l'encodage du point [s]B. D'abord, encoder la coordonnée y (dans l'intervalle 0 <= y < p) comme une chaîne little-endian de 32 octets. Le bit le plus significatif du dernier octet est toujours zéro. Pour former l'encodage du point [s]B, copier le bit le moins significatif de la coordonnée x dans le bit le plus significatif du dernier octet. Le résultat est la clé publique.