# Partage de secret de Shamir

Divise un secret en n parts dont k (le seuil) suffisent à le reconstruire — schéma k-parmi-n de Shamir sur GF(256). Cryptographie pure locale (crypto.randomBytes pour les coefficients), sans réseau. Divisez un mot de passe/clé/phrase entre plusieurs personnes et récupérez-le avec k parts. Confidentialité uniquement, pas d'authenticité.

> Page canonique: https://elysiatools.com/fr/tools/shamir-secret-sharing

- **Catégorie:** Security

- **Mots-clés:** Shamir, secret partagé, seuil, k-parmi-n, diviser, récupérer

## Présentation

Cet outil implémente le **partage de secret à seuil de Shamir** sur GF(256) : un secret est divisé en `n` parts, dont `k` (le seuil) suffisent à le reconstruire, tandis que `k-1` ou moins ne *révèlent rien* — secret garanti par la théorie de l'information.

**Deux modes :**
- **Diviser** : collez un secret (tout texte UTF-8 — mot de passe, clé API, phrase seed, phrase de récupération), réglez le seuil `k` et le total `n` (2 ≤ k ≤ n ≤ 255), et vous obtenez `n` parts. Distribuez chaque part à un détenteur distinct.
- **Combiner** : collez `k` parts ou plus (une par ligne) pour reconstruire le secret original par interpolation de Lagrange en x=0.

**Comment ça marche.** Chaque octet du secret est le terme constant d'un polynôme aléatoire de degré `k-1` sur GF(256). La part `i` est le polynôme évalué en `x=i`. La récupération exige `k` points pour déterminer uniquement un polynôme de degré `k-1`. Les coefficients proviennent de `crypto.randomBytes()` (CSPRNG de l'OS), jamais `Math.random()`.

**Limites — à lire :**
- **Confidentialité seulement, pas d'intégrité.** Quiconque détient une part peut soumettre une valeur *falsifiée* lors de la récupération ; le calcul produira un secret plausible mais faux, indétectable. Pour détecter la falsification, signez le secret (ou son hachage) *avant* de diviser et vérifiez après combinaison.
- **Bornes de GF(256).** `n` est plafonné à 255 (taille du corps) et `k` doit être ≥ 2.
- **Format de part.** Chaque part est `sss:` + base64url de `[coordonnée x, y-octet₁, y-octet₂, …]`. Conservez la chaîne entière ; tronquer casse la récupération.

**Cas d'usage.** Custodie/récupération de clés (diviser une clé maîtresse entre dirigeants), récupération sociale pour portefeuilles auto-détenus, distribuer une phrase afin que personne ne la détienne seule, récupération de type « dead man's switch ».

## Entrées

- **Mode** (select)
- **Secret à diviser** (textarea): The secret to split (any text: a password, API key, seed phrase). Used in Split mode.
- **Seuil (k)** (number): e.g. 3
- **Total de parts (n)** (number): e.g. 5
- **Parts à combiner** (textarea): Paste shares to combine (one per line). At least k shares required. Used in Combine mode.

## Quand l'utiliser

- Vous devez distribuer une clé d'accès critique ou une phrase de récupération entre plusieurs collaborateurs sans qu'aucun d'eux ne puisse la lire individuellement.
- Vous souhaitez mettre en place une sauvegarde sociale pour un portefeuille de cryptomonnaies en confiant des fragments de clé à des tiers de confiance.
- Vous voulez configurer un mécanisme de sécurité d'urgence nécessitant l'accord d'un quorum de membres pour déverrouiller un accès.

## Fonctionnement

- En mode 'Diviser', l'outil convertit votre secret en octets et génère pour chaque octet un polynôme aléatoire de degré k-1 sur GF(256) à l'aide de crypto.randomBytes.
- Il évalue ce polynôme pour générer n parts uniques au format textuel préfixé par 'sss:', prêtes à être distribuées de manière indépendante.
- En mode 'Combiner', vous rassemblez au moins k parts et l'outil applique l'interpolation de Lagrange en x=0 pour recalculer les coefficients d'origine et restituer le secret.

## Cas d'usage

- Division d'une phrase de récupération de portefeuille crypto en schéma 3-parmi-5 pour la confier à des proches.
- Partage d'un mot de passe maître de base de données entre les membres d'une équipe d'infrastructure.
- Stockage décentralisé d'une clé d'API de production pour empêcher son utilisation unilatérale par un seul administrateur.

## Questions fréquentes

### Qu'est-ce que le seuil (k) et le total de parts (n) ?

Le total (n) représente le nombre de parts générées au total, et le seuil (k) est le nombre minimal de parts nécessaires pour reconstruire le secret d'origine.

### Mes données sont-elles envoyées sur un serveur ?

Non. Tous les calculs sont effectués localement dans votre navigateur à l'aide de fonctions cryptographiques sécurisées, garantissant une confidentialité totale.

### Que se passe-t-il si une part est modifiée ou falsifiée ?

L'algorithme ne vérifie pas l'intégrité. Une part falsifiée produira un secret incorrect sans générer d'erreur. Signez votre secret avant division si vous devez détecter les altérations.

### Quelles sont les limites pour les valeurs de k et n ?

Le nombre total de parts (n) et le seuil (k) doivent être compris entre 2 et 255, avec un seuil k inférieur ou égal à n.

### Quel est le format des parts générées ?

Chaque part est une chaîne de caractères commençant par 'sss:' suivie de la représentation en base64url des coordonnées mathématiques de la part.

## Outils associés

- [Testeur de paire de clés et d'encapsulation ML-KEM / Kyber](https://elysiatools.com/fr/tools/ml-kem-kyber-keypair-and-encapsulation-tester): Génère des paires de clés ML-KEM-512/768/1024 (FIPS 203 / CRYSTALS-Kyber), encapsule un secret partagé aléatoire avec la clé publique, le décapsule avec la clé privée et vérifie l'égalité — en contrôlant en direct les tailles exactes des trois jeux de paramètres.
- [Vérificateur d'en-têtes de sécurité](https://elysiatools.com/fr/tools/security-headers-checker): Audite les en-têtes de réponse HTTP pour la conformité de sécurité — analyse les en-têtes bruts que vous collez (sans réseau) et les note selon l'ensemble d'en-têtes sécurisés OWASP avec des vérifications au niveau valeur : HSTS max-age, CSP unsafe-inline/eval, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP/COEP/CORP et plus. Renvoie une note (A+ à F) plus des constatations par en-tête avec des recommandations prêtes à copier.
- [Planificateur de rotation des secrets .env](https://elysiatools.com/fr/tools/env-file-secret-rotation-planner): Collez un fichier .env pour obtenir un plan de rotation des secrets par étapes. Détecte les URLs de base de données, clés API, jetons d’authentification, clés privées, identifiants cloud, clés de paiement et secrets de chiffrement, scoring par exposition et ancienneté, planification sur une timeline de 4 semaines avec checklist à double clé et un .env.example généré. Dates de dernière rotation optionnelles et cadence configurable (30/90/180/365 jours) pour le score de conformité.
- [Générateur de paire de clés RSA](https://elysiatools.com/fr/tools/rsa-key-generator): Génère une paire de clés RSA publique/privée via crypto.generateKeyPairSync() de Node, au format PEM. Prend en charge 2048/3072/4096 bits, PKCS#8 (recommandé) ou PKCS#1, et le chiffrement de la clé privée par phrase secrète. Les clés sont générées localement.
- [Vérificateur de sécurité d'URL](https://elysiatools.com/fr/tools/url-safety-checker): Détecte les signaux de phishing et de fraude dans une URL par analyse structurelle approfondie — attaques homographes punycode/IDN (Latin/Cyrillique mixte), identifiants embarqués (astuce user:pass@host), TLD à haut risque, double encodage et contrebande de caractères de contrôle, tromperie de sous-domaine de marque et obscurcissement numérique/IP. Analyse statique uniquement, sans réseau. Complète le URL Validator.
- [Verificateur de Force de Phrase Secrete AGEX](https://elysiatools.com/fr/tools/agex-passphrase-strength-checker): Evalue une phrase secrete AGEX et recommande le profil de protection adapte
- [Note de Partage Securise AGEX](https://elysiatools.com/fr/tools/agex-secure-share-note): Genere une note claire pour expliquer au destinataire comment dechiffrer et verifier un bundle AGEX
- [Générateur de signature numérique](https://elysiatools.com/fr/tools/digital-signature-generator): Signe un message avec une clé privée ou vérifie une signature avec une clé publique — prend en charge RSA-PSS (SHA-256), ECDSA (P-256) et Ed25519. Cryptographie purement locale (Node crypto.createSign/createVerify), sans réseau. Collez une clé PEM pour signer ou vérifier une signature base64. Cet outil signe/vérifie ; il ne génère pas de paires de clés.

## Exemples

- [Exemples de Traitement d'Images Web Python](https://elysiatools.com/fr/samples/web-image-processing-python): Exemples de traitement d'images Web Python utilisant PIL/Pillow incluant la lecture, l'enregistrement, le redimensionnement et la conversion de format
- [Exemples de Traitement d'Images Android Java](https://elysiatools.com/fr/samples/android-image-processing-java): Exemples de traitement d'images Android Java incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Android Kotlin](https://elysiatools.com/fr/samples/android-image-processing-kotlin): Exemples de traitement d'images Android Kotlin incluant lecture/écriture, mise à l'échelle et conversion de format
- [Exemples de Traitement d'Images Web Rust](https://elysiatools.com/fr/samples/web-image-processing-rust): Exemples de traitement d'images Web Rust incluant lecture/écriture, redimensionnement et conversion de format
