Le schéma de partage de clé de Shamir

ConsidĂ©rons un scĂ©nario oĂč il est nĂ©cessaire d'assurer la sĂ©curitĂ© d'un coffre-fort bancaire. Il est considĂ©rĂ© comme absolument impĂ©nĂ©trable sans la clĂ©, qui vous est remise dĂšs le premier jour de travail. Votre objectif est de conserver la clĂ© de maniĂšre fiable.

Supposons que vous ayez décidé de garder la clé sur vous en permanence, en donnant accÚs au coffre-fort selon les besoins. Mais vous réaliserez rapidement que cette solution ne se déploie pas efficacement en pratique, car chaque fois que l'on doit ouvrir le coffre, votre présence physique est nécessaire. Et qu'en est-il des congés qui vous ont été promis ? De plus, la question qui fait encore plus peur est : et si vous perdez la seule clé ?

En pensant à vos congés, vous décidez de faire une copie de la clé et de la confier à un collÚgue. Cependant, vous comprenez que cela n'est pas non plus idéal. En doublant le nombre de clés, vous avez également doublé les risques de vol de la clé.

DĂ©sespĂ©rĂ©, vous dĂ©truisez le duplicata et dĂ©cidez de diviser la clĂ© d'origine en deux. Maintenant, vous pensez que deux personnes de confiance avec des fragments de clĂ© doivent ĂȘtre prĂ©sentes physiquement pour assembler la clĂ© et ouvrir le coffre-fort. Cela signifie qu'un voleur doit voler deux fragments, ce qui est deux fois plus difficile que de voler une clĂ© unique. Cependant, vous rĂ©alisez rapidement que ce schĂ©ma n'est guĂšre meilleur qu'une simple clĂ©, car si quelqu'un perd la moitiĂ© de la clĂ©, la clĂ© complĂšte ne pourra pas ĂȘtre rĂ©tablie.

Le problĂšme peut ĂȘtre rĂ©solu par une sĂ©rie de clĂ©s et de serrures supplĂ©mentaires, mais avec cette approche, il sera rapidement nĂ©cessaire beaucoup de clĂ©s et de serrures. Vous dĂ©cidez que dans un schĂ©ma idĂ©al, la clĂ© doit ĂȘtre divisĂ©e afin que la sĂ©curitĂ© ne repose pas entiĂšrement sur une seule personne. Vous concluez Ă©galement qu'il doit exister un certain seuil de nombre de fragments, afin que, mĂȘme en cas de perte d'un fragment (ou si la personne est en congĂ©), la clĂ© reste fonctionnelle.

Comment diviser un secret

Un tel type de schéma de gestion des clés a été pensé par Adi Shamir en 1979, lorsqu'il a publié son travail « Comment diviser un secret ». Dans l'article, il explique briÚvement ce qu'on appelle le Le schéma de partage de clé de Shamir schéma de seuil pour une séparation efficace d'une valeur secrÚte (par exemple, une clé cryptographique) en Le schéma de partage de clé de Shamir parties. Ensuite, lorsque et seulement lorsque au moins Le schéma de partage de clé de Shamir de Le schéma de partage de clé de Shamir parties sont réunies, il est possible de restaurer facilement le secret. Le schéma de partage de clé de Shamir.

D'un point de vue de la sĂ©curitĂ©, une propriĂ©tĂ© importante de ce schĂ©ma est que l'attaquant ne doit rien connaĂźtre du tout s'il n'a pas au moins Le schĂ©ma de partage de clĂ© de Shamir des fragments. MĂȘme la possession de Le schĂ©ma de partage de clĂ© de Shamir fragments ne devrait donner aucune information. Nous appelons cela la sĂ©curitĂ© sĂ©mantique.

L'interpolation polynomiale

Le schĂ©ma de Shamir Le schĂ©ma de partage de clĂ© de Shamir est construit autour du concept de l'interpolation polynomiale. Si vous n'ĂȘtes pas familier avec ce concept, il est en rĂ©alitĂ© assez simple. En fait, si vous avez dĂ©jĂ  dessinĂ© des points sur un graphique et les avez ensuite reliĂ©s par des lignes ou des courbes, vous l'avez dĂ©jĂ  utilisĂ© !À travers deux points, on peut tracer un nombre illimitĂ© de polynĂŽmes de degrĂ© 2. Pour choisir l'unique parmi eux, il nous faut un troisiĂšme point. Illustration :

Le schéma de partage de clé de Shamir
Considérons un polynÎme de degré un, Wikipedia

. Si vous souhaitez tracer cette fonction sur un graphique, combien de points vous faut-il ? Eh bien, nous savons que c'est une fonction linéaire qui forme une ligne, donc il faut au moins deux points. Ensuite, prenons une fonction polynomiale de degré deux, Le schéma de partage de clé de Shamir. C'est une fonction quadratique, donc il faut au moins trois points pour tracer le graphique. Qu'en est-il d'un polynÎme de degré trois ? Au moins quatre points. Et ainsi de suite. Le schéma de partage de clé de ShamirLa véritable beauté de cette propriété réside dans le fait que, connaissant le degré de la fonction polynomiale et au moins

points, nous pouvons déduire des points supplémentaires pour cette fonction polynomiale. L'extrapolation de ces points supplémentaires est ce que nous appelons Le schéma de partage de clé de Shamir l'interpolation polynomiale Construction du secret.

Vous avez peut-ĂȘtre dĂ©jĂ  compris que le schĂ©ma intelligent de Shamir entre en jeu ici. Supposons que notre secret

. Nous pouvons transformer Le schĂ©ma de partage de clĂ© de Shamir — ce sont des Le schĂ©ma de partage de clĂ© de Shamiren un point sur le graphique Le schĂ©ma de partage de clĂ© de Shamir et inventer une fonction polynomiale de degrĂ© Le schĂ©ma de partage de clĂ© de Shamir , qui satisfait Ă  ce point. Rappelons que Le schĂ©ma de partage de clĂ© de Shamirsera notre seuil de fragments requis, donc si nous fixons le seuil Ă  trois fragments, nous devrions sĂ©lectionner une fonction polynomiale de degrĂ© deux. Le schĂ©ma de partage de clĂ© de Shamir Notre polynĂŽme sera de la forme

— des entiers positifs choisis au hasard. Nous ne faisons que construire un polynĂŽme de degrĂ© Le schĂ©ma de partage de clĂ© de Shamir, oĂč Le schĂ©ma de partage de clĂ© de Shamir et Le schĂ©ma de partage de clĂ© de Shamir , oĂč le coefficient libre Le schĂ©ma de partage de clĂ© de Shamirest notre secret Le schĂ©ma de partage de clĂ© de Shamir , et chacun des suivants Le schĂ©ma de partage de clĂ© de Shamir. Le schĂ©ma de partage de clĂ© de Shamir Un membre a un coefficient positif choisi au hasard. Si nous revenons Ă  l'exemple initial et supposons que Le schĂ©ma de partage de clĂ© de Shamir, alors nous obtiendrons une fonction Le schĂ©ma de partage de clĂ© de Shamir.

À ce stade, nous pouvons gĂ©nĂ©rer des fragments en connectant Le schĂ©ma de partage de clĂ© de Shamir des entiers uniques dans Le schĂ©ma de partage de clĂ© de Shamir, oĂč Le schĂ©ma de partage de clĂ© de Shamir (car c'est notre secret). Dans cet exemple, nous voulons distribuer quatre fragments avec un seuil de trois, donc nous gĂ©nĂ©rons alĂ©atoirement des points Le schĂ©ma de partage de clĂ© de Shamir et envoyons un point Ă  chacune des quatre personnes de confiance, les gardiens de la clĂ©. Nous informons Ă©galement les gens que Le schĂ©ma de partage de clĂ© de Shamir, car c'est considĂ©rĂ© comme une information publique et nĂ©cessaire pour la reconstruction Le schĂ©ma de partage de clĂ© de Shamir.

Reconstruction du secret

Nous avons déjà discuté du concept d'interpolation polynomiale et de ce qu'il implique dans le schéma de partage de secret de Shamir Le schéma de partage de clé de Shamir. Lorsque trois des quatre personnes de confiance souhaitent récupérer Le schéma de partage de clé de Shamir, elles n'ont qu'à interpoler Le schéma de partage de clé de Shamir avec leurs points uniques. Pour cela, elles peuvent définir leurs points Le schéma de partage de clé de Shamir et calculer le polynÎme d'interpolation de Lagrange en utilisant la formule suivante. Si la programmation vous est plus familiÚre que les mathématiques, alors pi est essentiellement un opérateur for, qui multiplie tous les résultats, et sigma est for, qui additionne tout.

Le schéma de partage de clé de Shamir

Le schéma de partage de clé de Shamir

En cas Le schéma de partage de clé de Shamir Nous pouvons le résoudre de la maniÚre suivante et retrouver notre fonction polynomiale d'origine :

Le schéma de partage de clé de Shamir

Puisque nous savons que Le schéma de partage de clé de Shamir, la reconstruction Le schéma de partage de clé de Shamir se fait simplement :

Le schéma de partage de clé de Shamir

Utilisation de l'arithmétique entiÚre non sécurisée

Bien que nous ayons appliquĂ© avec succĂšs l'idĂ©e principale de Shamir Le schĂ©ma de partage de clĂ© de Shamir, il nous reste un problĂšme que nous avons ignorĂ© jusqu'Ă  prĂ©sent. Notre fonction polynomiale utilise de l'arithmĂ©tique entiĂšre non sĂ©curisĂ©e. Gardez Ă  l'esprit que pour chaque point supplĂ©mentaire qu'un attaquant obtient sur le graphique de notre fonction, il reste moins de possibilitĂ©s pour d'autres points. Vous pouvez le voir par vous-mĂȘme lorsque vous tracez un graphique en augmentant le nombre de points pour une fonction polynomiale utilisant de l'arithmĂ©tique entiĂšre. C'est contre-productif pour notre objectif de sĂ©curitĂ© dĂ©clarĂ©, car un malfaiteur ne doit absolument rien savoir tant qu'il n'a pas au moins Le schĂ©ma de partage de clĂ© de Shamir des fragments.

Pour dĂ©montrer Ă  quel point le schĂ©ma utilisant l'arithmĂ©tique entiĂšre est faible, considĂ©rons un scĂ©nario oĂč un attaquant a obtenu deux points Le schĂ©ma de partage de clĂ© de Shamir et sait que l'information publique est que Le schĂ©ma de partage de clĂ© de Shamir. De ces informations, il peut dĂ©duire Le schĂ©ma de partage de clĂ© de Shamir, Ă©gal Ă  deux, et intĂ©grer les valeurs connues dans la formule Le schĂ©ma de partage de clĂ© de Shamir et Le schĂ©ma de partage de clĂ© de Shamir.

Le schéma de partage de clé de Shamir

Ensuite, l'attaquant peut trouver Le schéma de partage de clé de Shamir, en calculant Le schéma de partage de clé de Shamir:

Le schéma de partage de clé de Shamir

Puisque nous avons défini Le schéma de partage de clé de Shamir comme des entiers positifs choisis au hasard, il y a un nombre limité de possibles Le schéma de partage de clé de Shamir. Avec ces informations, l'attaquant peut déduire Le schéma de partage de clé de Shamir, car tout ce qui est supérieur à 5 rendra Le schéma de partage de clé de Shamir négatif. Cela s'avÚre vrai, car nous avons défini Le schéma de partage de clé de Shamir

Ensuite, l'attaquant peut calculer les valeurs possibles Le schéma de partage de clé de Shamir, en remplaçant Le schéma de partage de clé de Shamir dans Le schéma de partage de clé de Shamir:

Le schéma de partage de clé de Shamir

Avec un ensemble limité d'options pour Le schéma de partage de clé de Shamir il devient clair à quel point il est facile de deviner et de vérifier les valeurs Le schéma de partage de clé de Shamir. Il y a ici seulement cinq options.

Résolution du problÚme de l'arithmétique entiÚre non sécurisée

Pour Ă©liminer cette vulnĂ©rabilitĂ©, Shamir propose d'utiliser l'arithmĂ©tique modulaire, en remplaçant Le schĂ©ma de partage de clĂ© de Shamir sur Le schĂ©ma de partage de clĂ© de Shamir, oĂč Le schĂ©ma de partage de clĂ© de Shamir et Le schĂ©ma de partage de clĂ© de Shamir — l'ensemble de tous les nombres premiers.

Rappelons rapidement comment fonctionne l'arithmĂ©tique modulaire. Les horloges Ă  aiguilles sont une notion dĂ©jĂ  familiĂšre. Elles utilisent des heures qui sont Le schĂ©ma de partage de clĂ© de Shamir. DĂšs que l'aiguille des heures passe le douze, elle revient Ă  une. Une caractĂ©ristique intĂ©ressante de ce systĂšme est que simplement en regardant l'horloge, nous ne pouvons pas dĂ©duire combien de tours l'aiguille des heures a effectuĂ©s. Cependant, si nous savons que l'aiguille des heures a dĂ©passĂ© 12 quatre fois, nous pouvons dĂ©terminer complĂštement le nombre d'heures Ă©coulĂ©es avec une simple formule Le schĂ©ma de partage de clĂ© de Shamir, oĂč Le schĂ©ma de partage de clĂ© de Shamir — c'est notre diviseur (ici Le schĂ©ma de partage de clĂ© de Shamir), Le schĂ©ma de partage de clĂ© de Shamir — c'est le coefficient (combien de fois le diviseur rentre sans reste dans le nombre initial, ici Le schĂ©ma de partage de clĂ© de Shamir), tandis que Le schĂ©ma de partage de clĂ© de Shamir — c'est le reste, que renvoie gĂ©nĂ©ralement l'opĂ©rateur modulo (ici Le schĂ©ma de partage de clĂ© de Shamir). ConnaĂźtre toutes ces valeurs nous permet de rĂ©soudre l'Ă©quation pour Le schĂ©ma de partage de clĂ© de Shamir, mais si nous omettons le coefficient, nous ne pourrons jamais reconstruire la valeur initiale.

On peut dĂ©montrer comment cela amĂ©liore la sĂ©curitĂ© de notre schĂ©ma en appliquant le schĂ©ma Ă  notre exemple prĂ©cĂ©dent et en utilisant Le schĂ©ma de partage de clĂ© de Shamir. Notre nouvelle fonction polynomiale Le schĂ©ma de partage de clĂ© de Shamir, et les nouveaux points Le schĂ©ma de partage de clĂ© de Shamir. Maintenant, les gardiens de clĂ© peuvent Ă  nouveau utiliser l'interpolation polynomiale pour reconstruire notre fonction, mais cette fois, les opĂ©rations d'addition et de multiplication doivent ĂȘtre accompagnĂ©es d'une rĂ©duction modulo Le schĂ©ma de partage de clĂ© de Shamir (p. ex. Le schĂ©ma de partage de clĂ© de Shamir).

En utilisant ce nouvel exemple, supposons que l'attaquant a dĂ©couvert deux de ces nouveaux points, Le schĂ©ma de partage de clĂ© de Shamir, et les informations publiques Le schĂ©ma de partage de clĂ© de Shamir. Cette fois, l'attaquant utilise toutes les informations disponibles pour dĂ©duire les fonctions suivantes, oĂč Le schĂ©ma de partage de clĂ© de Shamir — est l'ensemble de tous les entiers positifs, et Le schĂ©ma de partage de clĂ© de Shamir reprĂ©sente le coefficient du module Le schĂ©ma de partage de clĂ© de Shamir.

Le schéma de partage de clé de Shamir

Maintenant, notre agresseur retrouve à nouveau Le schéma de partage de clé de Shamir, en calculant Le schéma de partage de clé de Shamir:

Le schéma de partage de clé de Shamir

Ensuite, il essaie à nouveau de déduire Le schéma de partage de clé de Shamir, en remplaçant Le schéma de partage de clé de Shamir dans Le schéma de partage de clé de Shamir:

Le schéma de partage de clé de Shamir

Cette fois, il a un problĂšme sĂ©rieux. Les valeurs manquent dans la formule Le schĂ©ma de partage de clĂ© de Shamir, Le schĂ©ma de partage de clĂ© de Shamir et Le schĂ©ma de partage de clĂ© de Shamir. Étant donnĂ© qu'il existe une infinitĂ© de combinaisons de ces variables, il ne peut obtenir aucune information supplĂ©mentaire.

Considérations de sécurité

Le schĂ©ma de partage de secrets de Shamir propose une sĂ©curitĂ© du point de vue de la thĂ©orie de l'information. Cela signifie que la mathĂ©matique est robuste mĂȘme contre un attaquant ayant une puissance de calcul illimitĂ©e. Cependant, le schĂ©ma prĂ©sente encore plusieurs problĂšmes connus.

Par exemple, le schĂ©ma de Shamir ne crĂ©e pas des fragments vĂ©rifiables, c'est-Ă -dire que les gens peuvent facilement prĂ©senter de faux fragments et entraver la rĂ©cupĂ©ration du bon secret. Un gardien hostile de fragments ayant suffisamment d'informations peut mĂȘme produire un autre fragment, modifiant Le schĂ©ma de partage de clĂ© de Shamir Ă  sa guise. Ce problĂšme est rĂ©solu par des schĂ©mas de partage de secrets vĂ©rifiables, tels que le schĂ©ma de Feldman.

Un autre problÚme est que la longueur de tout fragment est égale à celle du secret correspondant, rendant la longueur du secret facile à déterminer. Ce problÚme est résolu par un remplissage du secret avec des nombres arbitraires jusqu'à une longueur fixe.

Enfin, il est important de noter que nos inquiĂ©tudes concernant la sĂ©curitĂ© peuvent aller au-delĂ  du schĂ©ma lui-mĂȘme. Pour les applications cryptographiques rĂ©elles, il existe souvent la menace d'attaques par des canaux auxiliaires, oĂč un attaquant essaie d'extraire des informations utiles Ă  partir des temps d'exĂ©cution de l'application, de la mise en cache, des plantages, etc. Si cela constitue une prĂ©occupation, il convient d'examiner minutieusement, lors du dĂ©veloppement, l'utilisation de mesures de protection, telles que des fonctions et des recherches avec un temps d'exĂ©cution constant, d'Ă©viter d'Ă©crire en mĂ©moire sur disque, et de rĂ©flĂ©chir Ă  plusieurs autres Ă©lĂ©ments qui dĂ©passent le cadre de cet article.

Démo

Sur cette page il y a une dĂ©monstration interactive du schĂ©ma de partage de secrets de Shamir. La dĂ©monstration est basĂ©e sur la bibliothĂšque ssss-js, qui est elle-mĂȘme un port JavaScript d'un programme populaire ssssVeuillez noter que le calcul de grandes valeurs Le schĂ©ma de partage de clĂ© de Shamir, Le schĂ©ma de partage de clĂ© de Shamir et Le schĂ©ma de partage de clĂ© de Shamir peut prendre un certain temps.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster