Clé privée Clé publique: comment sont-elles crées?

Clé privé clé publique
Clé privé clé publique

Le cryptage de clé asymétrique est un mécanisme central dans le fonctionnement du bitcoin et des cryptomonnaies en général. La quasi-totalité des jetons existants sont échangés grâce à ce mécanisme. Le nom peut faire peur de prime abord, mais le mécanisme est relativement simple à comprendre.

Clé Symétrique

Pour mieux comprendre ce qu’est un système reposant sur des clés asymétriques, il est nécessaire de commencer par décrire ce qu’est un système de clé symétrique. Dans ce système, la clé utilisée par la partie qui envoie et crypte le message d’une part, et la partie qui le reçoit et le décrypte d’autre part, est la même, d’où le terme symétriques. Tout le challenge pour les parties est donc de parvenir à échanger la clé commune de façon sécurisée.

Le fait que les parties utilisent la même clé implique nécessairement un élément de confiance entre l’émetteur et le récepteur, ce qui ne convient évidemment pas aux systèmes comme le Bitcoin dans lequel les parties ne se connaissent pas.

Symetric key
Symetric key

1 – La partie qui envoie le message utilise la clé cryptographique pour brouiller son contenu.

2- Le message peut être envoyé au destinataire à travers un canal non sécurisé.

3 – En parallèle l’envoyeur transmet la clé cryptographique permettant de décrypter le message au destinataire.

4 – Le destinataire décrypte le message à l’aide de la clé cryptographique.

 

Cryptage de clefs asymétriques

Contrairement au système de clé symétriques, le système du cryptage de clef publique utilise deux clefs différentes pour crypter et décrypter le message, c’est la raison pour laquelle ce système appartient à la catégorie des “Cryptage de clefs asymétriques” (“Asymetric Key Encryption”).

CLE ASYMETRIQUE
CLE ASYMETRIQUE

Ce système permet d’éviter d’avoir à envoyer au destinataire du message la clé qui l’a encrypté. Les participants disposent désormais d’un jeu de clé reliées mathématiquement l’une à l’autre. La clef publique est inclue dans le cryptage du message, et la clé privée permet de le décrypter.

Selon le type de système cryptographique utilisé, la clé publique est obtenue à partir d’un cryptage de la clé privé ou vice versa.

Ainsi par exemple, la clé publique que vous utilisez pour transférer vos bitcoins est créée à partir de la clé privée en lui appliquant une série de hachage cryptographique.

Bitcoin transaction
Bitcoin transaction

Si nous comparons le paiement en bitcoin au paiement par carte bancaire, votre clé publique correspond à votre numéro de carte bleu qui peut être librement partagé avec n’importe qui. Votre clé privée correspond à votre code secret qui ne doit surtout pas être divulgué puisqu’il permet de valider les transactions et donc de dépenser vos bitcoins.

Si votre clé privée est si importante, c’est parce qu’il est toujours possible de retrouver votre clé publique à partir de votre clé privé, mais pas l’inverse. C’est en effet une des principales caractéristiques d’un hachage cryptographique. Vous pouvez donc transférer votre clé publique à n’importe qui puisqu’il est impossible de deviner votre clé privé à partir de votre clé publique.

Les limites du cryptage asymétrique.

L’un des principaux problèmes et frein à l’utilisation des algorithmes de cryptage de clé publique réside dans ses faibles performances. A titre d’exemple, un algorithme de cryptage symétrique permet de décrypter 256 bytes 4000 fois plus rapidement qu’un algorithme asymétrique.[1]

Il existe de nombreux algorithmes de cryptage pour les clés publiques. Les deux principaux sont le RSA système de cryptographie et la Curve Elliptique Cryptographique (“Elliptic Curve Cryptogrphy – ECC”). Nous nous concentrerons sur ce dernier algorithme puisque c’est le système qui a été retenu dans le cadre du Protocol Bitcoin.

Le RSA est le premier système à avoir été utilisé dans le cadre du cryptage de clé publique et demeure aujourd’hui le plus utilisé. Son nom est issu de ses trois inventeurs Ron Rivest, Adi Shamir et Len Adleman, tous trois chercheurs au MIT. Le cryptage et le décryptage du RSA sont basés sur des principes d’arithmétique modulaire dont la description va au-delà du cadre de cet article.

Curve Elliptique Cryptographique

Le mécanisme de la Curve Elliptique Cryptographique a été retenu par le ou les concepteurs du protocole Bitcoin pour générer une clé publique à partir de la clé privée.

En pratique, la clé privée est un numéro de 256 bits obtenu de manière aléatoire. Il est d’ailleurs recommande d’utiliser un système perfectionné de type pseudo-aléatoire pour générer votre clé privée (cryptographically secure pseudo-random number generator – “CSPRNG”) tout en assurant une sécurité maximum.

La clé privée est ensuite utilisée pour générer la clé publique en utilisant une multiplication sur courbe elliptique:

Curve Elliptique Cryptographique
Curve Elliptique Cryptographique

La clé privée (k) sera multipliée par un point générateur (g) situe sur la courbe et le résultat correspondra à la clé publique (K), un autre point sur la courbe (ou K = k*g). Sans entrer dans le détail de la multiplication sur Curve Elliptique, il est important de noter que le point (K) peut être obtenu à partir de (k) et (g), mais il est impossible d’obtenir le point (k) à partir de (K) et (g) et ce, bien que (g) soit constant pour toutes les générations de clé bitcoin.

En d’autres termes, il est possible de générer une clé publique à partir d’une clé privée, mais il est impossible de retrouver une clé privée à partir d’une clé publique. C’est la raison pour laquelle il est possible de révéler sa clé publique en toute sécurité.

 

Si cet article a répondu à vos questions, n’heésitez pas aà le partager sur les réseau sociaux!!!

Follow me on Social media
Passionné depuis 2014 par les technologies liées à la blockchain, j'ai créé ce blog pour partager avec les plus grand nombre les dernières innovations, les start-ups et les Crypto-monnaies qui selon nous constituent une avancée significative pour cette industrie en pleine expansion.