Fonctionne à 100 % dans votre navigateur via Web Crypto — le secret et ses parts ne quittent jamais votre appareil.
Write a Python implementation of Shamir's Secret Sharing over GF(256) that interoperates with these share strings: each share is the two-digit hex x-coordinate, a dash, then one hex byte per secret byte (e.g. "01-a3b2c1"). It must split a secret into 5 shares with threshold 3, and reconstruct from any 3 of them. Use the AES reduction polynomial 0x11B and rejection-free crypto-random coefficients.
Ce que ça fait
Le partage de secret de Shamir découpe un secret en N parts telles que n’importe quelles K d’entre elles le reconstruisent — et moins de K ne révèlent rien du tout, pas même un indice partiel. C’est la base mathématique pour répartir une phrase seed de portefeuille crypto, un mot de passe maître ou une clé de chiffrement entre plusieurs personnes ou plusieurs lieux, de sorte qu’aucun détenteur seul (et aucune coalition plus petite que K) ne puisse agir seul. Les usages réels incluent la garde de cryptomonnaies (sauvegarde de portefeuille multi-parties), le dépôt de clés (key escrow), les codes de lancement nucléaire, la planification successorale (avocat + conjoint + coffre bancaire) et les enveloppes de reprise après sinistre.
L’outil exécute tout le schéma dans votre navigateur sur GF(256) — le même corps de Galois qu’utilise AES — avec des coefficients polynomiaux issus de Web Crypto. Rien de ce que vous tapez, et aucune part que vous collez, ne quitte votre appareil.
Comment l’utiliser
- Choisissez un mode avec la bascule Découper / Reconstruire en haut.
- Découper : saisissez le secret, réglez Parts au total (N) (2-255) et Seuil (K) (2-N, le minimum requis pour reconstruire), puis pressez Découper le secret.
- Copiez chaque part numérotée vers son détenteur (chaque part a son propre bouton Copier ; Copier toutes les parts les prend toutes). La note du bouclier vous le rappelle : n’importe quelles K des N parts reconstruisent le secret ; K-1 ne révèlent rien.
- Reconstruire : collez une part par champ (Ajouter une part pour en ajouter d’autres), puis pressez Reconstruire le secret. Le secret reconstruit apparaît dans la sortie verte avec un bouton de copie ; les parts invalides ou incohérentes produisent une erreur claire.
Exemples
Découper une phrase seed en 3-sur-5
Secret : river vacuum lamp fiber quiz noise border mind smile crouch tuna — avec N=5, K=3 vous obtenez cinq parts, chacune ainsi :
01-9f3ac27e1b84d05c…
02-4b19e7a2c83f5d16…
03-c7e02f9a45b6138d…
04-2ad673f1e09b85c4…
05-85d31c6b7a49f0e2…
(Vos valeurs seront différentes — les coefficients polynomiaux sont régénérés aléatoirement à chaque découpage, donc deux découpages du même secret ne se ressemblent jamais.)
Reconstruire à partir de 3 des 5
Collez les parts 01-…, 03-…, 05-… dans trois champs et pressez Reconstruire le secret — la phrase seed d’origine revient à l’identique. Parts 1+2, 2+4+5, n’importe quelle combinaison de trois fonctionne ; deux parts seules ne reconstruisent que du bruit.
Un appariement erroné échoue bruyamment
Mélanger des parts issues de deux découpages différents (ou deux parts revendiquant la même position) donne Two different shares both claim x=01 - they cannot come from the same split, au lieu de retourner silencieusement un secret erroné.
Bon à savoir
- Pourquoi K-1 parts ne révèlent rien : chaque octet du secret devient le terme constant d’un polynôme aléatoire de degré (K-1). K-1 points sont compatibles avec chaque terme constant possible — le secret est caché au sens information-théorique, pas seulement difficile à calculer. Cela tient même face à une puissance de calcul illimitée.
- Les maths en une ligne : les parts sont des évaluations polynomiales f(1)…f(N) sur GF(256) ; la reconstruction est l’interpolation de Lagrange en x=0. L’addition est XOR, la multiplication utilise le polynôme de réduction d’AES (0x11B).
- Aléa frais à chaque découpage : découper deux fois le même secret donne des parts complètement différentes ; les deux jeux le reconstruisent indépendamment.
- Manipulez les parts comme des clés : une part est la moitié (ou le tiers, ou le cinquième) de votre secret. Stockez-les dans des lieux séparés — si un attaquant en récolte K, il possède le secret.
- Privé : s’exécute à 100 % côté client ; le lien de partage ne transporte que vos réglages N/K, jamais le secret.
- Outils liés : Password Strength Analyser, Secure Token Generator, HMAC Generator.