# Crypto post-quantique

**URL:** https://forum.duniter.org/t/crypto-post-quantique/12681
**Category:** R&D
**Created:** [9 November 2024 18:24 UTC](https://forum.duniter.org/t/crypto-post-quantique/12681 "2024-11-09T18:24:01Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [9 November 2024 18:24 UTC](https://forum.duniter.org/t/crypto-post-quantique/12681/1 "2024-11-09T18:24:01Z")

</div>

Ce dont je vais parler dépend surtout d’autres projets donc il n’y a pas forcément à s’en préoccuper dans l’immédiat, mais il est bon de faire une veille sur le sujet.

Il y a 2 ans on riait encore des ordinateurs quantiques, maintenant il n’est pas exclu que dans quelques années ils parviennent à casser la cryptographie classique.

> **Explications sur quantique/post-quantique**
>
> > La cryptographie à clé publique classique (utilisée pour HTTPS, la blockchain, les distributions Linux) risque d’être définitivement attaquable par des ordinateurs quantiques assez puissants, qui n’existent pas encore mais peut-être bientôt.  
> > La crypto post-quantique (PQC 🧻) représente les systèmes crypto qui sont a priori résistants à une attaque par un ordinateur quantique.
> > 
> > Les fonctions de hachage (SHA) et le chiffrement symétrique (AES, Chacha) restent sûrs. Au pire il suffira de doubler la taille des clés.

Avec les compétitions du NIST, on a une bonne (mais restreinte) sélection d’algos qui pourraient remplacer les algos actuels, et il y a désormais des implémentations en logiciel libre. Certains projets libres grand public se lancent déjà dans le post-quantique ([Signal](https://signal.org/blog/pqxdh/), [CryptPad](https://cryptpad.fr/pad/#/2/pad/view/84oHc6JCTcPqtwkXfZI4qZL6lvYqjlc3HTFeCPURARI/embed/)). TLS post-quantique est en travaux aussi.

Les algos post-quantiques étant souvent assez récents, il peut être plus sûr de les utiliser conjointement avec un algo classique. (crypto hybride)

Message intéressant&nbsp;: [Post-quantum signatures - Tech Talk - Polkadot Forum](https://forum.polkadot.network/t/post-quantum-signatures/3456)

## Les risques

Que pourrait faire un attaquant quantique à la Ğ1 ?

Casser Ed25519 et d’autres algos utilisés dans Substrate.

- Lire les messages chiffrés en Ed25519 (messagerie Cesium+)
  - 😱 Tous les messages chiffrés en asymétrique peuvent être récoltés par un attaquant et déchiffrés quand l’ordinateur quantique sera là.

- Publier des transactions ou des blocs en usurpant des signatures
  - ⏱ Ce ne sera pas un problème avant que l’attaquant quantique existe&nbsp;: on ne peut pas réécrire le passé.

- Pister les transactions anonymes (si on utilise les signatures en anneau ou ĞMixer)
  - 👍 On n’en a pas encore, tout va bien.

## Les solutions

On va surtout devoir attendre que le travail soit fait côté Substrate.

Pour les signatures, le seul algo post-quantique utilisable en pratique (et finaliste de la compétition du NIST) est [Falcon](https://falcon-sign.info/). Il est assez rapide, mais les clés publiques et signatures font de l’ordre de 1ko (contre 32 octets pour Ed25519). Il pourrait remplacer Ed25519 sans rien changer d’autre, à part que les adresses ne pourront plus être directement des clés publiques (ce qui en fait est un gros changement).

Pour la messagerie chiffrée, déjà il faut utiliser un protocole avec échange de clés éphémères à la Signal. Ensuite il faudrait passer à un échange de clés post-quantique. Signal a publié une documentation.

Pour les transactions anonymes, il existe des schémas de signature en anneau post-quantiques mais trop lourds pour le runtime. Je ne sais pas encore comment faire.

Je vais essayer de finir mon travail sur la messagerie chiffrée avant d’y ajouter le post-quantique. C’est le plus urgent à mon avis.

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [10 November 2024 11:06 UTC](https://forum.duniter.org/t/crypto-post-quantique/12681/2 "2024-11-10T11:06:10Z")

</div>

Je pense que tu pourrais être intéressé par ces deux “discutions” (le première n’en étant pas vraiment une) sur le forum de Polkadot, qui sont plus ou moins en lien avec le tiens (pas totalement non plus):

> **[Post-quantum signatures](https://forum.polkadot.network/t/post-quantum-signatures/3456)**
>
> The NIST PQ Signature Zoo has nice benchmarking information on post-quantum signature schemes, including the new round three on-ramp schemes, of which many are being broken. Isogenies schemes remain far too slow. Also the SIDH break narrows that...

> **[Bringing True Randomness to Polkadot via Quantum Experiment](https://forum.polkadot.network/t/bringing-true-randomness-to-polkadot-via-quantum-experiment/9501)**
>
> TL;DR: There is a realistic way to bring true randomness generated from a quantum experiment to the Polkadot ecosystem. I want to gain insights from the community if you think this is a valuable for parachains (and beyond). Quantum Secure...

Quelques autres mentions en recherchant [Post-Quantum](https://forum.polkadot.network/search?q=Post-Quantum) sur leur forum, notamment une discutions sur le principe de messagerie décentralisé pour Polkadot/Substrate.

* * *

Je pense que si je sujet nous semble important côté Duniter, nous ferions mieux d’en discuter avec l’équipe de Substrate (peut être via des canaux plus directs que ce forum), pour chercher à implémenter la brique côté Substrate directement (si nécessaire), plutôt que de le faire uniquement dans notre coin.

* * *

edit: ok je me rend compte que tu avais déjà partagé l’un de ces topics dans ton message initial, my bad.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [11 November 2024 19:17 UTC](https://forum.duniter.org/t/crypto-post-quantique/12681/4 "2024-11-11T19:17:47Z")

</div>

TL; DR: Le post-quantique ne changera rien à la manière de s’authentifier pour l’utilisateur, et est totalement compatible avec les mnemonics. 🙂

J’ai mis du temps à comprendre comment ça fonctionne (manque de doc et code compliqué) et j’ai eu peur que ça ne marche pas, mais en fait si, on peut dériver une clé post-quantique à partir de la seed qui est dérivée (ou non) du mnemonic.

La clé privée utilisée par Substrate (dans curve25519) vient du hash SHA512 de la seed, donc on ne peut pas trouver la seed à partir de la clé privée.

- [sr25519.rs - source](https://docs.rs/sp-core/latest/src/sp_core/sr25519.rs.html#219-233)
- [keys.rs - source](https://docs.rs/schnorrkel/latest/src/schnorrkel/keys.rs.html#183)

Si ce n’était pas le cas (et ça aurait pu, en tout cas rien n’indique que le hash est utilisé pour des raisons de sécurité, mais juste de conversion de tailles), alors un attaquant quantique, pouvant trouver la clé privée à partir de la clé ~~privée~~ publique, aurait aussi pu trouver la seed. La gestion des clés post-quantiques serait alors beaucoup plus compliquée et demanderait de changer tout l’écosystème.
