Qu’est-ce qui relie la clé publique à l’adresse Bitcoin?

www.bitcoin.fr

Une clé privée permet de calculer une clé publique, mais l’inverse est, pour lors, impossible. C’est là-dessus que repose la sécurité de Bitcoin. Une image permet d’expliquer le lien entre ces deux valeurs :

Imaginez une table de billard. La position initiale de la boule, l’angle et la force de frappe représente la clé privée. La position finale de la boule après la frappe représente la clé publique. De même qu’il est impossible de déduire la position initiale de la boule, l’angle et la force de frappe à partir de la position finale de la boule, il est impossible de déduire la clé privée à partir de la clé publique. Par contre, à partir de la position initiale de la boule, de l’angle et la force de frappe, on peut imaginer qu’il sera toujours possible de calculer la position finale de la boule. De la même manière on pourra toujours calculer la clé publique à partir de la clé privée.

La signature des transactions Bitcoin et leur vérification utilisent la cryptographie asymétrique et plus précisément l’algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) qui assure aussi la génération des paires de clés (clé privée et clé publique) nécessaire aux signatures. Les courbes elliptiques sont utilisées en cryptographie pour des opérations asymétriques comme des échanges de clés sur un canal non-sécurisé ou un chiffrement asymétriqueToute adresse bitcoin est dérivée d’une clé publique ECDSA.

La clé publique est un point sur une courbe elliptique qui correspond à la clé privée.

La clé privée est le nombre de fois qu’il faut multiplier le générateur de la courbe elliptique pour avoir la clé publique.

L’adresse Bitcoin : Elle est calculée à partir de la clé publique ECDSA.

Grâce à la cryptographie asymétrique on peut vérifier l’authenticité d’une signature à partir de la clé publique, par contre on ne peut ni déduire une clé privée à partir d’une signature et d’une clé publique, ni générer une signature valide sans connaitre la clé privée correspondant à une clé publique donnée. L’algorithme ECDSA, permet en outre de calculer la clé publique à partir de la clé privée (et évidemment pas l’inverse). Ce qui est particulier à bitcoin, c’est qu’on calcule une adresse bitcoin à partir d’une clé publique ECDSA (mais pas l’inverse). On vérifie une signature bitcoin grâce à la clé publique mais ce ne n’est pas possible si on ne dispose que de l’adresse bitcoin de l’envoyeur.

Vidéo réalisée par Loïc Morel pour Découvre Bitcoin

> Pour en savoir plus : The Math Behind Bitcoin (anglais)