147 / 691SSS

Shamir Secret Sharing

Partage de secret à seuil de Shamir

Shamir Secret Sharing divise un secret en parts : un seuil choisi le restaure, tandis que moins de parts ne changent pas ce qu’on sait du secret dans le modèle idéal.

Shamir Secret Sharing est une construction publiée par Adi Shamir en 1979. Elle code le secret comme constante d’un polynôme aléatoire sur un corps fini ; ce n’est ni le découpage d’une phrase ni, à elle seule, un protocole de signature.

Un schéma k-sur-n permet de restaurer avec n’importe quelles k parts valides et distinctes du même ensemble. Il tolère la perte de n−k parts, mais permet aussi à k détenteurs coopérants d’obtenir le secret. Ainsi 3-sur-5 tolère deux pertes, pas trois. Le seuil arbitre entre disponibilité et taille du groupe capable de restaurer. [Adi Shamir — How to Share a Secret (1979)]

Pour le secret S, on choisit f(x)=S+a1*x+…+a(k−1)*x^(k−1). Les autres coefficients sont des éléments indépendants et uniformément aléatoires du corps. Une part est (x,f(x)) avec x distinct et non nul ; x=0 révélerait directement S. L’interpolation de Lagrange depuis k points détermine f(0). Deux copies du même point n’ajoutent aucune équation. [Adi Shamir — How to Share a Secret (1979)]

À titre pédagogique seulement, prenons S=5 et f(x)=5+3*x mod 17. Les parts sont (1,8), (2,11), (3,14). Les deux premières donnent une pente de 3 et la constante 8−3=5 ; les trois paires retrouvent 5. Le seul point (1,8) convient à tout S de 0 à 16 si a=8−S mod 17. Ce petit corps n’est pas un modèle de portefeuille. [Adi Shamir — How to Share a Secret (1979)]

Dans le schéma idéal, moins de k parts complètes ne donnent aucune information sur S, même avec un calcul illimité. Cela suppose des coefficients indépendants correctement choisis et le modèle d’observation prévu. Aléa faible, coefficients réutilisés, canaux auxiliaires ou données de contrôle supplémentaires demandent une analyse distincte. Partager ne renforce pas un secret faible devinable autrement. [Adi Shamir — How to Share a Secret (1979)] [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]

La restauration exige les mêmes corps, codage, index et identité d’ensemble. Un corps premier GF(p) utilise des inverses modulaires, pas une division décimale ; GF(256) diffère des restes modulo 256. SLIP-39 ajoute liste de mots, métadonnées, groupes, chiffrement et contrôles précis. Deux logiciels nommés Shamir n’ont donc pas forcément des parts compatibles. [Adi Shamir — How to Share a Secret (1979)] [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes]

L’interpolation élémentaire n’authentifie ni l’origine d’une part ni l’honnêteté du distributeur. Un point endommagé peut rendre un autre secret au lieu de simplement signaler une insuffisance. Détection, correction d’erreurs et verifiable secret sharing sont des constructions supplémentaires avec leurs hypothèses. SLIP-39 ajoute par exemple checksum et digest ; ces propriétés n’appartiennent pas automatiquement à tout Shamir Secret Sharing. [SLIP-0039 — Shamir Secret-Sharing for Mnemonic Codes] [NIST — Multi-Party Threshold Cryptography]

La restauration ordinaire expose S entier dans un environnement susceptible de le divulguer. Contrairement à Multisig, Shamir Secret Sharing n’établit pas plusieurs clés indépendantes de signature on-chain. Une signature à seuil peut utiliser un protocole MPC supplémentaire sur les parts sans reconstituer la clé, comme le distingue NIST. Partager puis combiner ne procure pas cette propriété. [NIST — Multi-Party Threshold Cryptography]

Cinq fichiers dans un même compte ne séparent pas les risques de perte ou de compromission. Consignez les paramètres et vérifiez la restauration sur un appareil fiable. Un nouveau polynôme aléatoire avec le même S crée un ensemble dont les parts ne doivent pas être mélangées aux anciennes. Un ancien ensemble suffisant retrouve toujours S ; repartager ne révoque ni les parts déjà obtenues ni un secret divulgué. [Adi Shamir — How to Share a Secret (1979)] [Trezor — Multi-share Backup]

Pour une vision complète, lisez aussi SLIP-39, Multisig, Seed Phrase, Clé privée, Bitcoin Inheritance Plan. Cette entrée est également citée par SLIP-39, FROST.

DOC · 001Adi Shamir — How to Share a Secret (1979)Source primaire ↗DOC · 002SLIP-0039 — Shamir Secret-Sharing for Mnemonic CodesSpécification ↗DOC · 003NIST — Multi-Party Threshold CryptographySource primaire ↗DOC · 004Trezor — Multi-share BackupDocumentation ↗
Sources d’abord · Pas un conseil financier