Etape 11 : Création d’une signature
Alors, comment vous signer un message/fichier ?
Tout d’abord, vous devez savoir que la signature est de 40 octets et est représentée par deux valeurs de 20 octets chacun, la première est appelée R et la deuxième est appelée S... la paire (R, S) est donc ensemble votre signature ECDSA... maintenant, voici comment vous pouvez créer ces deux valeurs pour signer un fichier... tout d’abord vous devez générer une valeur aléatoire «k» (de 20 octets) et point multiplication permet de calculer le point P = k * G. Valeur x de ce point représentera le 'R'. Étant donné que le point sur la courbe que p est représentée par son (x, y) des coordonnées (chacun étant de 20 octets de long), vous avez seulement besoin de la valeur de 'x' (20 octets) pour la signature, et cette valeur sera appelée "R". Maintenant, tout ce dont vous avez besoin est la valeur de 'S'.
Pour calculer S, vous devez effectuer un hachage SHA1 du message, ce qui donne vous une 20 octets valeurs que vous considérera comme un nombre entier très grand et nous l’appellerons "z". Maintenant, vous pouvez calculer S en utilisant l’équation :
S = k ^ -1 (z + dA * R) mod p
Notez ici le k ^ -1 qui 'modulaire inverse multiplicatif' k... c’est essentiellement l’inverse de k, mais puisque nous avons affaire à des nombres entiers, alors ce n’est pas possible, donc c’est un nombre tel que (k ^ -1 * k) mod p est égal à 1. Et encore une fois, je vous rappelle que k est le nombre aléatoire utilisé pour générer des R, z est le hachage du message à signer, dA est la clé privée et R est la coordonnée x du k * G (où G est le point d’origine des paramètres de la courbe).