x

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt

#2 La cryptographie, pierre angulaire de la blockchain

#2 La cryptographie, pierre angulaire de la blockchain

Après vous avoir expliqué le fonctionnement de la blockchain, Albéric Piot, un de nos Consultants Supply Chain, vous parle « cryptographie » dans ce deuxième billet. L’objectif : vous donner de nouvelles clés de lecture en vous expliquant dans ses moindres détails le rôle qu’y joue la cryptographie…

 

Albéric, 

Consultant Supply Chain 

 

La cryptographie est au cœur de la blockchain.

Les quelques notions de base que je présente par la suite seront utiles pour bien comprendre le fonctionnement de la blockchain. Pour rappel, nous pouvons considérer cette dernière comme un grand registre public, anonyme et distribué. La cryptographie confère au réseau sa forte sécurité. Je ne rentrerai pas ici dans les détails techniques et complexes de la cryptographie utilisée dans les réseaux blockchain, mais j’exposerai quelques notions qui faciliteront la compréhension de l’article suivant.

« La sécurité d’une blockchain est principalement basée sur de la cryptographie »

Depuis la création de la blockchain Bitcoin, il n’y a eu aucune tentative réussie de modification rétroactive d’une transaction, ou plus généralement aucun exemple d’attaque réussie sur ce réseau.

J’expose dans cet article deux niveaux de cryptographie permettant à la blockchain de fonctionner de façon sécurisée : les fonctions de hachage et la cryptographie asymétrique.

Rappel du fonctionnement simplifié d’une blockchain (issu du premier article d’introduction) :

 

Les fonctions de hachage permettent de prouver l’intégrité (et non l’authenticité) des informations envoyées via la blockchain et permettent également de sécuriser la chaine de blocs.

Explications :

Le hachage est une fonction permettant d’associer à des données, une « empreinte numérique » que l’on appelle « hash » :

Il est important de comprendre que ce process est à sens unique:
Il est très facile de calculer le hash (l’empreinte) d’un message, mais retrouver le message associé à un hash est quasiment impossible. Par exemple, vous avez 1 chance sur 10 puissance 77 de trouver l’origine d’un hash avec la fonction de hachage utilisée pour la blockchain Bitcoin.

Voyez la fonction de hachage comme un lecteur d’empreinte digitale :

Quand on possède un lecteur d’empreinte, il est facile de récupérer l’empreinte digitale d’un individu. Par contre, si on possède l’empreinte digitale d’un individu sans aucune autre information, nous avons 1 chance sur 7 milliards de trouver l’individu associé. C’est la même chose avec les fonctions de hachage sauf que la probabilité de remonter au document source est la même que de vouloir trouver un atome spécifique en piochant au hasard parmi tous les atomes de l’univers : on peut considérer que cet exercice est impossible.

La deuxième propriété importante du hachage est l’unicité:

Deux messages différents ne peuvent pas avoir le même hash. Si on modifie même très légèrement un document (en supprimant par exemple un espace entre deux mots), le document modifié aura un hash différent du document originel.

LE HACHAGE POUR VÉRIFIER L’INTÉGRITÉ D’UN MESSAGE 

Si vous souhaitez envoyer un message à un destinataire via une blockchain, vous lui enverrez le message brut et son hash que vous aurez préalablement calculé.

Ainsi, votre destinataire pourra vérifier que ce message n’a pas été modifié après son envoi en recalculant lui-même le hash du message qu’il reçoit et en le comparant avec le hash que vous lui avez envoyé.

Il est important de souligner que ce process cryptographique ne permet pas de prouver l’authenticité des données échangées. En effet, aucun système comme celui de la blockchain ne peut vérifier si un document contient des informations « vraies ». Un tel système ne peut seulement prouver que les informations qui y circulent, n’ont pas été altérées « en chemin ».

 

LE HACHAGE POUR SÉCURISER LA CHAINE

La fonction de hachage permet également de relier les blocs validés les uns aux autres et de vérifier qu’un bloc de la chaine n’a pas été corrompu :

Lorsqu’un bloc est validé, le hash associé au bloc précédent y est reporté. Le hash du bloc obtenu est calculé et est inscrit dans ce nouveau bloc.

Ainsi, chaque bloc contient le hash du bloc précédent. Modifier une transaction (même très légèrement) d’un bloc modifierait le hash du bloc corrompu. Par effet de cascade, l’ensemble des hash des blocs suivants seraient alors altérés. Le réseau serait ainsi alerté d’une tentative de corruption de la chaine et rejetterait alors la demande de modification.

La cryptographie asymétrique permet d’authentifier les transactions et de sécuriser les échanges.

Pour son fonctionnement sécurisé, il est important que le protocole s’assure de l’identité de l’expéditeur et du récepteur d’un échange sur la blockchain. La cryptographie asymétrique dite cryptographie « RSA » (initiales de ses inventeurs) a vu le jour en 1978 et permet de garantir ce point de fonctionnement.

Chaque utilisateur de la blockchain possède deux clefs:
Une clef publique qui est connue de tous et une clef privée qu’il ne doit absolument pas diffuser. La clef publique permet de chiffrer les messages et la clef privée permet de le déchiffrer. Je ne rentrerai pas dans les détails mathématiques avec les fonctions à sens unique à trappe etc… mais plus sur une image du fonctionnement de ce type de cryptographie :

Le process peut être représenté par une boite aux lettres qui correspond à votre clef publique : chaque utilisateur peut vous envoyer un message crypté en le mettant dans votre boite aux lettres (i.e. en le chiffrant avec votre clef publique). Pour récupérer les messages, vous seul pouvez le faire en utilisant la clef de la boite aux lettres (i.e. en le déchiffrant avec la clef privée) que vous seul possédez.

La cryptographie asymétrique permet donc de garantir l’intégrité des données circulant dans la blockchain.

 

Aujourd’hui, les ressources techniques nécessaires pour mettre à défaut la sécurité d’une blockchain semblent impossibles à avoir. Cependant, le développement des ordinateurs quantiques pourrait permettre d’accéder à cette puissance nécessaire et faire tomber le réseau. Tous les systèmes existants (banques, etc..) seraient alors touchés. On peut aisément imaginer que des solutions seront trouvées d’ici là, et l’apparition de ces ordinateurs quantiques devrait donc s’accompagner de révolutions passionnantes en cryptologie.