Académie. > Parcours Académie > Maîtriser – La cryptographie asymétrique

Maîtriser – La cryptographie asymétrique

30 août 2023

Temps de lecture 4 minutes

Canelle de Balasy

Partagez cet article

Share on LinkedIn
Share on Twitter
Share on Facebook
Share on Instagram
Share on Whatsapp

Une des caractéristiques fondamentales que tous les crypto-actifs partagent est l’utilisation de clés privées et clés publiques pour gérer les portefeuilles. Mais les utilisateurs de crypto-actifs ne comprennent pas bien leur fonctionnement, la plupart du temps. Cet article a pour but d’expliquer les tenants et aboutissants des principes de cryptographie asymétrique, et comment ils s’appliquent au monde des crypto-actifs.

 

Un portefeuille de crypto-actifs comme un Ledger Wallet contient une ou plusieurs clés privées. Celles-ci sont des nombres très longs tirés au hasard par le portefeuille. Il pourrait donc y avoir des collisions, c’est-à-dire que plusieurs personnes tirent au hasard la même clé privée, et donc obtiennent le même portefeuille. En pratique, la probabilité de tirer la même clé privée qu’un autre utilisateur est infinitésimale (inférieure à 1 sur 10^79) et vous pourriez passer des milliards d’années à tirer au hasard des clés privées avant d’en obtenir une qui contienne des cryptos.

 

L’alternative à tirer les clés privées au hasard serait de devoir les enregistrer dans une plateforme centralisée, ce qui retirerait toute sécurité au réseau utilisé. On accepte donc le risque qu’une collision de clés privées pourrait un jour avoir lieu.

 

A partir de chaque clé privée obtenue, le portefeuille va générer une clé publique, et une adresse Bitcoin. En général, un portefeuille ne contient rien d’autre que ces informations.

 

Lorsque vous générez une transaction depuis votre portefeuille de crypto-actifs, les étapes suivantes ont lieu :

 

  • Le portefeuille construit la transaction, qui contient la clé publique de l’émetteur, l’adresse du destinataire, et le montant à transférer. Ceci constitue un message
  • Une signature électronique est générée en utilisant une clé privée et le message
  • Le message et la signature sont envoyés sur le réseau
  • Les mineurs ou validateurs vérifient que la signature est correcte et correspond au message

La signature est une opération mathématique donc les entrées sont la clé privée et le message à signer, et le résultat obtenu doit être strictement unique.

 

Si la signature ne dépendait que de la clé privée, ce serait l’équivalent d’un paiement par carte bancaire : la sécurité de la transaction ne dépend que du numéro de la carte et des paramètres associés. Si quelqu’un récupère le numéro de la carte, il sera donc capable de générer autant de transactions qu’il le souhaite. Il en serait de même pour la clé privée.

 

De même, si la signature dépendait uniquement du message, un attaquant serait capable de la réutiliser pour générer la même transaction, donc de vider un portefeuille.

 

 Il est donc impératif que la signature obtenue soit unique, parce qu’elle est envoyée sur le réseau, donc si quelqu’un la récupère, il doit être incapable de pouvoir la réutiliser pour créer une nouvelle transaction.

 

La deuxième difficulté est de pouvoir vérifier que la signature a bien été générée par une clé privée donnée, et que le message n’a pas été modifié.  Une solution serait bien entendu d’envoyer la clé privée dans le message, ce qui permettrait de régénérer la signature et de vérifier qu’elle est correcte. Mais là encore, ce serait problématique, et un attaquant serait en mesure de récupérer la clé privée pour générer de nouvelles transactions.

 

C’est là que rentre en ligne de compte la clé publique. De même que la signature, c’est une fonction mathématique qui permet de transformer une clé privée en clé publique. Et la magie de la cryptographie asymétrique réside dans le fait qu’il est possible, avec un message et un signature donnée, d’obtenir la clé publique correspondant à la clé privée qui l’a créée.

C’est là l’intérêt d’envoyer la clé publique à l’intérieur du message. Les mineurs ou validateurs, lorsqu’ils reçoivent le message et la signature, calculent la clé publique qui l’a généré et la comparent avec la clé publique fournie dans le message. Si les deux correspondent, la transaction est considérée comme valide.

 

Cependant, on peut émettre une objection. Si une fonction mathématique a permis de transformer la clé privée en clé publique, on peut se dire qu’il n’y a qu’à appliquer la fonction inverse pour obtenir la clé privée. Par exemple, si la fonction qui transforme la clé privée en clé publique était f(x) = x², on pourrait obtenir la clé privée en appliquant la fonction g(x)=√x.

 

L’une des difficultés principales à laquelle ont fait face les créateurs de crypto-actifs est donc de trouver des fonctions non-réversibles, c’est-à-dire qu’il est impossible, ou en tout cas extrêmement difficile de les inverser. Pour le Bitcoin, la fonction choisie est ECDSA (Elliptic Curve Digital Signature Algorithm). A l’heure actuelle, personne n’a jamais réussi à inverser ECDSA, et donc à obtenir une clé privée à partir d’une clé publique. 

 

Il est difficile de parler de cryptographie asymétrique sans évoquer les ordinateurs quantiques. Et justement, en théorie, un ordinateur quantique serait capable d’inverser une fonction telle que ECDSA. Il y a donc déjà des parades qui ont été implémentées. Tout d’abord, les destinataires de transactions sont des adresses Bitcoin, et non des clés publiques. Or, une partie de l’information est perdue lorsqu’on convertit une clé publique en adresse Bitcoin. Il est donc impossible, même pour un ordinateur quantique, de convertir une adresse en clé publique, puis une clé publique en clé privée.

 

Malgré tout, lorsqu’une transaction est envoyée sur le réseau, la clé publique est exposée, et la possibilité de récupération devient alors réelle. C’est pourquoi la plupart des portefeuilles modernes utilisent une nouvelle clé privée à chaque transaction, pour une sécurité additionnelle.

 

Les développeurs préparent le futur et travaillent déjà sur des fonctions semblables à ECDSA mais qui seraient résistantes aux ordinateurs quantiques. A l’heure actuelle, le risque est très faible, mais il vaut mieux se préparer au jour où il deviendra réel.

 

Notons enfin qu’une paire clé privée/clé publique peut en théorie également être utilisée pour effectuer du chiffrement, donc protéger des messages. Même si cette fonctionnalité existe, elle n’est jamais utilisée dans l’univers des crypto-actifs. En effet, tout le contenu d’une blockchain est en clair et transparent, et le chiffrement n’ajouterait en aucune façon de la sécurité supplémentaire. 

 

Avec le compte Premium de Coinhouse, la crypto n’aura plus de secrets pour vous. Un accompagnement construit sur-mesure, pour vous apporter toutes les connaissances et les conseils de nos experts afin de tout savoir de la crypto et de maîtriser vos investissements. Le compte premium de Coinhouse, ce sont des contenus exclusifs toutes les semaines, des formations et des webinaires réguliers, une formation initiale en direct pour maîtriser l’intégralité des bases crypto, et des rendez-vous fréquents avec votre chargé de compte pour gérer votre portefeuille.

Vous aimerez aussi.

Devenez un investisseur averti !