Il y aurais un paramètres "times" qui rentre en compte en plus de la clé privée et adresse lors de la création de la signature que l'on ne vois pas dans l'outils alors ?
Si oui ça expliquerais cela.
On va attendre l'avis de Yogg il devrais savoir.
Merci.
Hello o/
En fait, ce n'est pas vraiment un paramètre "time". Si la signature est différente, il y'a une autre raison.
Ca ne sert à rien de le rendre obligatoire, si tu veux horodater la donnée, tu peux mettre une date dans le message.
D'ailleurs, c'est une bonne idée, car juste faire un message signé qui dirait "coucou je suis yogg" bin n'importe qui pourrait le réutiliser.
(Rajouter du contexte pour éviter l'usurpation d'identité)
Pour ce qui est du fait que la signature change à chaque fois sur le portail que j'ai link, ça vient d'autre chose.
Ca dépend comment tu implémentes l'algorithme, ce qui importe vraiment c'est que la signature permette de "valider" le message.
C'est un algo basé sur ECDSA (
https://fr.wikipedia.org/wiki/Elliptic_curve_digital_signature_algorithm)
Tu vois dans la partie "Signature" que la 1ere étape est :
Choisir de manière aléatoire un nombre k entre 1 et n-1
J'ai fait le test avec Bitcoin, pour voir comment il se comporte, et effectivement quand tu signes un message directement avec la fonction intégrée à Bitcoin Core, la signature ne change pas.
Contrairement à l'outil proposé par reinproject.
Par ailleurs, les signatures données par l'outil en ligne sont bien vérifiées par Bitcoin Core.
1er essai :
2e essai :
J'en déduis donc que Bitcoin Core utilise toujours le même nombre de départ pour calculer la signature d'un message, alors que le site reinproject le change à chaque fois.
Ce n'est jamais une bonne idée de faire confiance à des portails webs, d'autant plus avec vos clés privées.
C'est utile pour des explications et expérimentations par contre.
Faites attention à ces données, elles se montrent de plus en plus vitales.
@Saint-Loup :
Reuse of the same value for k in a signature algorithm leads to exposure of the private key
Pourtant Bitcoin Core te ressort une signature identique avec le même message.
Pour moi, tu prends un point de départ sur ta courbe, tu fait la projection et tu vois où tu atterris.
Si tu prend le même point de départ, tu atterriras toujours au même endroit.
Par contre si tu le change, t'arrivera à un autre endroit, mais tant que t'es sur la courbe elliptique, tout roule.
EDIT :
Okay, je pense avoir mis le doigt dessus.
To avoid this vulnerability, the industry best practice is to not generate k with a random-number generator seeded with entropy, but instead to use a deterministic-random process seeded with the transaction data itself. This ensures that each transaction produces a different k. The industry-standard algorithm for deterministic initialization of k is defined in RFC 6979, published by the Internet Engineering Task Force.
(
https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch06.asciidoc#the-importance-of-randomness-in-signatures)
L'outil en ligne reinproject utilise un generateur de nombres aléatoires basés sur de l'entropie.
Le client Bitcoin Core considère le message à signer comme une transaction, donc le nombre "k" est produit de manière déterministe, ce qui explique que la signature est identique à chaque fois.