Partage de secret
Supposons que le PDG d’une grande compagnie de soda veuille garder secrète la recette qui a fait la fortune de l’entreprise. Il l’enferme donc dans un coffre fort blindé, qui s’ouvre à l’aide d’une certaine clé (qu’il garde secrète). Cette solution est très sécuritaire dans le sens où seul le PDG peut accéder au secret. Mais elle revêt un gros défaut : si le PDG perd cette clé, ou vient à décéder dans un accident, la clé est perdue et personne ne peut jamais accéder à la recette, entraînant inévitablement la déroute de la multinationale.
Une des solutions est de donner des copies de cette clé secrète à des collaborateurs au travail. Mais répliquer la clé augmente les chances des espions de l’obtenir et de rapporter la recette à l’entreprise concurrente. Le PDG est bien conscient qu’il ne peut pas faire entièrement confiance à un de ses 5 subordonnés. Il veut donc mettre en place un schéma où tout groupe contenant au moins 3 de ses subordonnés puisse ouvrir le coffre alors que tout groupe contenant strictement moins de 3 subordonnés ne puisse rien savoir sur la clé.
Une solution qui consisterait à donner des bouts du secret aux subordonnés de manière à ce qu’ensemble ils puissent le reconstruire ne convient pas parce qu’ils connaîtraient alors partiellement la clé secrète.
Ce problème peut-être résolu par la mise en place d’un schéma de partage de secret.
Le partage de secret avec seuil
Notons des entiers. Notre but est de partager une clé secrète
entre un ensemble de
personnes
de telle manière que toute coalition de
ou plus de ces personnes puisse calculer
facilement, et que toute coalition de
ou moins de ces personnes ne puisse rien déterminer sur la valeur de
, autrement dit que toutes les valeurs de
possibles soient équiprobables. Un tel schéma est appelé un schéma au seuil
. Dans l’exemple introductif, le PDG cherche un schéma au seuil
.
La valeur du secret est choisie par un participant spécial (le dealer) (que l’on suppose bien évidemment ne pas faire partie de
). Le dealer va donner à chaque participant une clé de partage. Cette distribution sera secrète bien entendu, pour qu’aucun des participants ne connaissent les clés de partage des autres participants.
Le problème de construire un tel schéma a été résolu indépendamment par Sharmir [1] et Blakley [2] en 1979.
Schéma de Shamir
Commençons par présenter le schéma de Shamir, qui repose sur l’interpolation polynômiale.
Le dealer veut partager la clé secrète où
est la puissance d’un nombre premier (on peut prendre
premier et raisonner dans
bien évidemment). Il choisit de manière aléatoire
éléments distincts de
que l’on note
. Ces éléemnts ne sont pas les clés de partages secrètes, ce sont des clés publiques : chaque
reçoit la clé
. Dans l’exemple du PDG, on pourrait dire par exemple que
représente l’ordre d’arrivée de l’employé dans l’entreprise. Ensuite, il réalise les étapes suivantes :
- Il choisit secrètement et aléatoirement
éléments de
notés
.
- Pour tout
, le dealer calcule
où
- Pour tout
, le dealer donne secrètement la clé de partage
à
Regardons comment un groupe de
personnes (avec leur clé publique
) peut retrouver les coefficients secrets du polynôme
par interpolation, et ainsi retrouver
. Comme
pour tout
, le groupe
obtient
équations linéaires en les
inconnues
. Ainsi, le système obtenu par
peut-être écrit sous la forme
Or, la matrice des coefficients
est appelée matrice de Vandermonde et son déterminant vaut
. Comme il est non nul (par choix des
), le système admet une unique solution sur
, et
peut-être retrouvé.
Supposons maintenant que des
clés de partages secrètes sont révélées à un ennemi. Pour chaque candidat
pour le secret, l'ennemi peut construire un et un unique polynôme
de degré
tel que
et
pour les
clés connues. Par construction, ces
possibles polynômes sont équiprobables, en conséquence de quoi l'espion ne peut rien déduire sur la valeur de la clé secrète
.
Bien entendu, il y a une méthode alternative basée sur la formule de l'interpolation de Lagrange. La formule est la suivante :
Étant donné qu’un groupe recherche la valeur du secret , ils peuvent calculer
Remarquons que les valeurs ne dépendent que des
et peuvent-être pré-calculées.
Un exemple concret
Donnons un petit exemple concret pour soulager notre PDG qui a vraiment peur de faire un infarctus qui perdrait à tout jamais la recette ! Supposons que et que les coordonnées publiques sont
pour tout
. Supposons maintenant que les collaborateurs
,
et
veuillent retrouver le secret. Ils mettent en commun leurs clés de partages secrètes qui sont respectivement
,
et
. Comme
, ils obtiennent le système d’équation suivant :
Ce système admet une unique solution dans :
,
et
. Le secret est donc
!
Schéma de Blakley
Donnons un autre exemple : le schéma de Blakley basé sur la géométrie des hyperplans sur les corps finis. Le secret est un point d’un espace -dimensionnel, et les
clés de partages secrètes sont des hyperplans affines passant par ce point. Un hyperplan dans un espace
-dimensionnel à coordonnées dans un corps
peut être décrit par une équation de la forme suivante :
Le point d’intersection est obtenu en trouvant l’intersection d’un ensemble quelconque de de ces hyperplans. Par exemple, le secret peut être la première coordonnée du point d’intersection.
Disons que est le corps sur lequel on travaille. Le dealer génère un point
dans
, où la première coordonnée
est la clé secrète et les autres coordonnées sont choisies aléatoirement dans
. Le
ème participant recevra comme clé de partage secrète l’hyperplan sur
d’équation
Pour obtenir un schéma au seuil , il y aura
équations d’hyperplan, et on obtient alors un système linéaire
:
.
Le dealer donne en pratique la clé de partage secrète ainsi que les coordonnées (qui peuvent être publiques)
au participant
. un choix judicieux pour la matrice
est de faire en sorte que ses lignes soient les lignes d’une matrice de Vandermonde pour se ramener à une situation similaire à celle du schéma de Shamir.
Pour aller plus loin…
Bien entendu, ceci n’est qu’une introduction sommaire à un domaine toujours en pleine expansion en cryptologie. On pourra trouver d’autres schémas basés sur la géométrie, sur les graphes, sur le théorème des restes chinois… Une excellente introduction au sujet est l’article [3].
Pour les plus intrépides d’entre vous, remarquez que jusquà présent nous avons travaillé sur des corps, s’autorisant allégrement la possibilité d’inverser pour retrouver le secret si nécessaire. Un sujet intéressant est de vouloir construire des schémas valables sur n’importe quel groupe abélien (sans connaître le groupe, c’est-à-dire un schéma en boîte noire), qui ont fait l’objet de deux articles récents [4] et [5].
Références
- [1] A. Shamir – « How to share a secret », Communications of the ACM 22 (1979), no. 11, p. 612 – 613.
- [2] G. R. Blakley – « Safeguarding cryptographic keys », AFIPS Conference Proceedings 48 (1979), p. 313 – 317.
- [3] D. R. Stinson – « An explication of secret sharing schemes », Designs, Codes and Cryptography 2 (1992), no. 4, p. 357 – 390.
- [4] R. Cramer & S. Fehr – « Optimal black-box secret sharing over arbitrary Abelian groups », Advances in Cryptology – CRYPTO’02 (2002), p. 272 – 287.
- [5] R. Cramer, S. Fehr & M. Stam – « Black-box secret sharing from primitive sets in algebraic number fields », Advances in Cryptology – CRYPTO 2005, Springer, 2005, p. 344-360.











Commentaires récents