Diviser un secret

Le problème du seuil (k parmi n)

On sait chiffrer un message pour qu'une seule personne le lise. Mais comment protéger un secret collectif : celui qui ne doit appartenir à personne seul, mais que le groupe doit pouvoir retrouver ?

Une mauvaise idée : la copie

La première idée qui vient est de donner une copie du secret à chacun. C'est désastreux :

  • il suffit qu'une seule personne trahisse, ou se fasse voler sa copie, pour que tout soit perdu ;
  • plus il y a de copies, plus la surface d'attaque est grande.

Le secret n'est alors pas plus sûr que son maillon le plus faible.

Une autre mauvaise idée : le découpage naïf

On pourrait couper la clé en morceaux : les 4 premiers chiffres à Alice, les 4 suivants à Bob, etc. C'est mieux, mais toujours mauvais :

  • il faut réunir tout le monde pour reconstruire — un seul absent bloque tout ;
  • chaque morceau révèle une partie du secret, ce qui réduit d'autant le travail d'un attaquant.

Il nous faut une propriété plus forte, et plus subtile.

Le schéma à seuil (k, n)

Adi Shamir formule le bon objectif en 1979. On veut découper un secret en n parts distribuées à n personnes, avec deux garanties simultanées :

  • k parts quelconques suffisent à reconstruire le secret ;
  • k - 1 parts, ou moins, n'apprennent rien du tout sur le secret.

Le nombre k est le seuil. On parle de schéma à seuil, ou schéma (k, n).

   Secret S
      |
      |  découpe en n parts
      v
  +----+----+----+----+----+
  | P1 | P2 | P3 | P4 | P5 |     n = 5 parts distribuées
  +----+----+----+----+----+
       \    \   /   /
        3 parts quelconques  -->  S reconstruit   (seuil k = 3)
        2 parts ou moins     -->  aucune information

À quoi ça sert vraiment

Ce schéma répond à des besoins concrets où la confiance ne doit reposer sur personne seul :

Situation n k Idée
Coffre d'entreprise 5 dirigeants 3 Aucun dirigeant seul n'ouvre ; une majorité suffit
Clés de lancement 2 officiers 2 Il faut les deux personnes, jamais une seule
Portefeuille crypto 5 appareils 3 Perdre 2 appareils n'est pas fatal, en voler 2 ne suffit pas
Racine d'une autorité 7 gardiens 5 Cérémonie exigeant plusieurs présences

La tolérance aux pannes en cadeau

Le seuil apporte un bonus précieux : la résilience. Avec n = 5 et k = 3, on peut perdre deux parts (appareil cassé, personne indisponible) et reconstruire quand même. Le secret survit aux pannes tout en résistant aux trahisons partielles.

En résumé

  • Copier ou découper naïvement un secret est dangereux : chaque morceau fuit de l'information, ou exige la présence de tous.
  • Un schéma à seuil (k, n) distribue n parts telles que k suffisent à reconstruire, et k - 1 n'apprennent rien.
  • Il sépare la confiance entre plusieurs personnes et tolère la perte de n - k parts.