Le protocole
Cinq forces, chacune spécifiée avant d'être codée, chacune vérifiable. Les schémas sont exacts : ce qu'ils montrent est ce que le code fait.
Chiffré de bout en bout, post-quantique, sans porte dérobée.
Un message ELQIO est chiffré sur l'appareil de l'expéditeur et déchiffré sur celui du destinataire. Entre les deux, relais, opérateur, réseau et observateurs ne voient qu'un bloc opaque. Il n'existe aucune clé de service, aucun accès d'exception : il n'y a rien à remettre à qui que ce soit.
Hybride : deux méthodes, une seule doit tenir
L'échange de clés combine une courbe elliptique classique, X25519, et un mécanisme post-quantique, ML-KEM-768, dans la construction X-Wing. Si l'un des deux était cassé, par un ordinateur quantique ou par une faille découverte, l'autre protège encore le message. Les signatures sont composites de la même manière : Ed25519 et ML-DSA-65, ensemble.
Prévu pour changer
Chaque message porte le numéro de sa suite cryptographique. La suite actuelle s'appelle ELQIO-1. Une suite ELQIO-2 pourra la remplacer sans rupture : les appareils reconnaissent la suite d'un message et savent s'ils peuvent le lire.
Jusqu'aux relais
Les liaisons entre relais utilisent TLS 1.3 avec un échange hybride X25519MLKEM768, obligatoire : un relais qui ne le supporte pas n'est pas accepté dans le réseau.
- Suite
- ELQIO-1 (numéro 0x01)
- Échange de clés
- X-Wing = X25519 + ML-KEM-768 (FIPS 203)
- Signatures
- Ed25519 + ML-DSA-65 (FIPS 204)
- Chiffrement
- ChaCha20-Poly1305
- Hachage, dérivation
- SHA-256, HKDF-SHA-256
- Entre relais
- TLS 1.3, X25519MLKEM768, obligatoire
- Bibliothèques
- libcrux, RustCrypto. Auditées uniquement. Pas de crypto maison.
Anonymat des métadonnées : qui parle à qui n'est connu de personne.
Le contenu chiffré ne protège pas de tout. Savoir que deux personnes s'écrivent, à quelle heure, à quelle fréquence, suffit souvent à comprendre. ELQIO traite ces métadonnées comme une partie du message à protéger.
Trois relais, trois couches
Chaque circuit passe par un relais gardien, un intermédiaire et une sortie. Le message est enveloppé de trois couches de chiffrement ; chaque relais retire la sienne et ne connaît que le relais précédent et le suivant. Le gardien reste le même pendant environ un mois, ce qui limite le nombre de relais qui voient l'adresse IP d'un client.
Des fragments, pas des messages
Un message est découpé en fragments redondants par un code d'effacement, déposés dans des boîtes aux lettres pseudonymes sur plusieurs relais de stockage. Une partie des fragments suffit à reconstituer le message. Les étiquettes des boîtes sont dérivées de la session et changent : le relais qui stocke ne sait pas à qui appartient une boîte.
Prouvé, pas affirmé
Aucun relais ne voit ensemble l'adresse IP d'un client et une étiquette de boîte. Cette propriété est vérifiée par une preuve automatisée de non-liaison, rejouée à chaque démonstration sur les journaux de tous les relais du réseau.
Identités vérifiables, révocables, sans accès au contenu.
Chaque personne possède un identifiant unique, publié dans un registre d'événements signés, chaînés entre eux et répliqués. Tout le monde peut vérifier qu'un identifiant est authentique et qu'il n'a pas été modifié.
Un identifiant tient en 20 octets : une version, une adresse de 16 octets et une somme de contrôle de 3 octets, écrits en 32 caractères par groupes de quatre. L'alphabet exclut I, L, O et U pour qu'on ne confonde rien en le dictant. Un identifiant commence toujours par E. Sous forme de lien, il s'écrit elq:E3Q9-6FYS-….
Révoquer n'est pas lire
Un compte peut être révoqué, en cas d'usage criminel ou sur décision de justice. Un événement de révocation est ajouté au registre et le réseau cesse de relayer les messages de cette identité. Cela n'ouvre jamais l'accès à ce qui a été écrit : il n'existe aucune clé pour cela. La révocation est un acte public et vérifiable, comme la publication.
Le timbre : un modèle économique anonyme.
Un service qui ne vend ni publicité ni données doit être payé autrement. ELQIO reprend le modèle le plus ancien de la correspondance : le timbre. Chaque dépôt sur le réseau coûte un timbre.
Signé sans voir
Le timbre est acheté à l'opérateur, mais signé à l'aveugle : l'opérateur signe un timbre qu'il ne voit pas, comme on signerait sous une enveloppe opaque. Le relais peut ensuite vérifier que la signature est valide, sans que personne puisse relier ce timbre à son acheteur. L'opérateur sait qu'il a vendu cent timbres, jamais lequel a servi à qui.
Acheté par le réseau anonyme
L'achat lui-même passe par le réseau anonyme, par une session, et non par une connexion identifiable. Aucun achat ne se fait plus par connexion directe. Chaque relais gardien publie chaque jour un compte signé des timbres qu'il a acceptés : la comptabilité du réseau se vérifie, sans qu'un relais puisse nier un chiffre, et sans rien révéler des correspondances.
Le réseau radio local, de boîtier à boîtier, reste gratuit.
- Signature
- RSA-2048 à l'aveugle (RSABSSA, RFC 9474)
- Unité
- Un timbre par dépôt
- Achat
- Par le réseau anonyme, par session
Indépendant du transport, résilient.
Un message ELQIO est un bloc binaire, conçu au bit près pour tenir dans une trame radio LoRa. Ce qui tient dans la radio la plus lente passe partout ailleurs.
Pourquoi 48 octets
La charge utile LoRa la plus robuste en Europe, à 868 MHz avec le facteur d'étalement 12, est de 51 octets. Trois octets vont à l'en-tête du maillage radio, 48 au fragment. Un fragment Compact fait donc exactement 48 octets, dont 35 de données, et passe sur n'importe quel module LoRa, même le plus lent. Un fragment Étendu, pour les réseaux à bon débit, fait 960 octets, dont 947 de données.
Quatre chemins
- Internet, par les relais du réseau.
- Radio LoRa de proche en proche, par des boîtiers domestiques qui relaient de toit en toit.
- Un signal audio encodé sur une simple ligne téléphonique, dans l'esprit des modems et du fax.
- Satellite, par un opérateur partenaire, là où plus rien d'autre ne passe.
Si un canal tombe, un autre prend. La livraison différée est un cas normal du protocole, pas une panne : un message attend dans sa boîte le temps qu'il faut.
Des relais qui tiennent
Les relais se mettent à jour seuls, à partir de versions signées à seuil, c'est-à-dire par plusieurs mainteneurs à la fois, et de builds reproductibles, que n'importe qui peut recompiler et comparer. Le cœur est écrit en Rust, sans allocation système, pour tourner aussi sur les cibles embarquées des boîtiers.
Deux profils de messages, et un troisième mode.
| Profil | Contenu | Transports | État |
|---|---|---|---|
| Compact | Texte court, protection maximale | Tous : radio, audio, Internet | en service |
| Riche | Textes longs, images, fichiers, voix en différé | Réseaux à bon débit | en service |
| Temps réel | Appel vidéo point à point chiffré | Réseaux à bon débit | en service |
État et spécifications
Le protocole, l'identité, le réseau de relais, les timbres et leur achat anonyme, les quatre transports, les trois profils, les applications et les devices sont spécifiés, codés en Rust et en service, en mode « timbre exigé » et TLS hybride obligatoire. Le réseau décrit ce qui tourne et comment c'est vérifié.
Le code et les spécifications ne sont pas publics. Les relecteurs y accèdent sur demande ; toutes les décisions de conception sont écrites et datées. Pour relire les spécifications : contribuer.