fbpx
Wikipedia

Esquema de Shamir

El sistema de compartición de secretos de Shamir es un algoritmo criptográfico. Es una forma de compartición de secretos donde un secreto se divide en partes y se da a cada participante una sola: todas o parte de ellas son necesarias para reconstruir el secreto.

Adi Shamir, desarrollador del sistema de compartición de secretos que lleva su nombre.

El algoritmo basa su funcionamiento en una propiedad de los polinomios interpoladores[1]​ y fue desarrollado por el criptógrafo israelí Adi Shamir, que lo presentó en 1979.[2]

Definición matemática

Formalmente, nuestro objetivo es dividir un conjunto de datos   (por ejemplo, una clave) en   partes   de manera que:

  1. El conocimiento de   o más   partes hace que   sea fácilmente computable.[3]
  2. El conocimiento de   o menos   partes hace que   esté indeterminado, en el sentido de que todos sus valores posibles tienen la misma probabilidad de ser verdaderos.

Esta combinación se denomina combinación o esquema de umbral  .[2]​ Si   se requiere la concurrencia de todos los participantes para reconstruir el secreto.

Sistema de compartición de secretos de Shamir

 
Se pueden dibujar infinitos polinomios de grado 2 que pasen por 2 puntos. Se necesitan 3 puntos para definir un polinomio único de grado 2. Esta imagen sólo tiene fines ilustrativos - El esquema de Shamir utiliza polinómios en un conjunto finito, no representable en un plano bidimensional.

La idea esencial de la combinación de umbral de Shamir es que dos puntos son suficientes para definir una línea recta, tres puntos lo son para definir una parábola, cuatro para definir una curva cúbica y así sucesivamente. Es decir, son necesarios   puntos para definir un polinomio de grado  .

Supongamos que queremos trabajar con un umbral de   para compartir un secreto   (cualquier número, sin pérdida de generalidad) siendo  . La elección de los valores de   y   determina la fortaleza del sistema.

Eligiendo al azar   coeficientes  , y siendo  , se construye el polinomio  . Calculamos cualesquiera   puntos a partir del mismo, por ejemplo determinamos que   de lo que se deriva  . A todo participante en el secreto se le da un punto (un par de valores, el de entrada y el de salida para el polinomio)

Dado cualquier subconjunto de   entre estos pares, podemos calcular los coeficientes del polinomio mediante interpolación y luego despejar  , que es el secreto.

Ejemplo de uso

Preparación

Supongamos que el secreto es el número de una tarjeta de crédito: 1234  .

Queremos dividir el secreto en seis partes  , de forma que cualquier subconjunto   sea suficiente para reconstruir el secreto. Al azar obtenemos   números: por ejemplo, 166 y 94.

 

El polinomio con el que operaremos será por lo tanto:

 

Calculamos seis puntos a partir del polinomio:

 

Damos a cada partícipe un único punto, que comprende el valor   y  ).

Reconstrucción

Para reconstruir el secreto bastará con tres puntos.

Considérese

 .

Usamos la interpolación polinómica de Lagrange:

 

 

 

Por lo tanto,

 

 

 

Teniendo en cuenta que el secreto es el coeficiente de  , el secreto original es  .

Referencias

  1. What is Shamir's Secret Sharing Scheme? en X5 Networks
  2. Morillo, Paz (mayo-agosto de 2006). «Las matemáticas en la criptología». Encuentros multidisciplinares. Universidad Politécnica de Catalunya (23). 
  3. Carracedo Gallardo, Justo (2004). «Servicios de anonimato para la Sociedad de la Información». Seguridad en redes telemáticas. Editorial McGraw-Hill. ISBN 84-481-4157-1. , p. 470
  • Shamir, Adi (noviembre de 1979). «How to share a secret». Communications of the ACM 22 (11). ISSN 0001-0782. , pp. 612-613
  •   Datos: Q935125

esquema, shamir, sistema, compartición, secretos, shamir, algoritmo, criptográfico, forma, compartición, secretos, donde, secreto, divide, partes, cada, participante, sola, todas, parte, ellas, necesarias, para, reconstruir, secreto, shamir, desarrollador, sis. El sistema de comparticion de secretos de Shamir es un algoritmo criptografico Es una forma de comparticion de secretos donde un secreto se divide en partes y se da a cada participante una sola todas o parte de ellas son necesarias para reconstruir el secreto Adi Shamir desarrollador del sistema de comparticion de secretos que lleva su nombre El algoritmo basa su funcionamiento en una propiedad de los polinomios interpoladores 1 y fue desarrollado por el criptografo israeli Adi Shamir que lo presento en 1979 2 Indice 1 Definicion matematica 2 Sistema de comparticion de secretos de Shamir 3 Ejemplo de uso 3 1 Preparacion 3 2 Reconstruccion 4 ReferenciasDefinicion matematica EditarFormalmente nuestro objetivo es dividir un conjunto de datos D displaystyle D por ejemplo una clave en n displaystyle n partes D 1 D n displaystyle D 1 cdots D n de manera que El conocimiento de k displaystyle k o mas D i displaystyle D i partes hace que D displaystyle D sea facilmente computable 3 El conocimiento de k 1 displaystyle k 1 o menos D i displaystyle D i partes hace que D displaystyle D este indeterminado en el sentido de que todos sus valores posibles tienen la misma probabilidad de ser verdaderos Esta combinacion se denomina combinacion o esquema de umbral k n displaystyle left k n right 2 Si k n displaystyle k n se requiere la concurrencia de todos los participantes para reconstruir el secreto Sistema de comparticion de secretos de Shamir Editar Se pueden dibujar infinitos polinomios de grado 2 que pasen por 2 puntos Se necesitan 3 puntos para definir un polinomio unico de grado 2 Esta imagen solo tiene fines ilustrativos El esquema de Shamir utiliza polinomios en un conjunto finito no representable en un plano bidimensional La idea esencial de la combinacion de umbral de Shamir es que dos puntos son suficientes para definir una linea recta tres puntos lo son para definir una parabola cuatro para definir una curva cubica y asi sucesivamente Es decir son necesarios n 1 displaystyle n 1 puntos para definir un polinomio de grado n displaystyle n Supongamos que queremos trabajar con un umbral de k n displaystyle left k n right para compartir un secreto S displaystyle S cualquier numero sin perdida de generalidad siendo k lt n displaystyle k lt n La eleccion de los valores de k displaystyle k y n displaystyle n determina la fortaleza del sistema Eligiendo al azar k 1 displaystyle left k 1 right coeficientes a 1 a k 1 displaystyle a 1 cdots a k 1 y siendo a 0 S displaystyle a 0 S se construye el polinomio f x a 0 a 1 x a 2 x 2 a 3 x 3 a k 1 x k 1 displaystyle f left x right a 0 a 1 x a 2 x 2 a 3 x 3 cdots a k 1 x k 1 Calculamos cualesquiera n displaystyle n puntos a partir del mismo por ejemplo determinamos que i 1 n displaystyle i 1 cdots n de lo que se deriva i f i displaystyle left i f left i right right A todo participante en el secreto se le da un punto un par de valores el de entrada y el de salida para el polinomio Dado cualquier subconjunto de k displaystyle k entre estos pares podemos calcular los coeficientes del polinomio mediante interpolacion y luego despejar a 0 displaystyle a 0 que es el secreto Ejemplo de uso EditarPreparacion Editar Supongamos que el secreto es el numero de una tarjeta de credito 1234 S 1234 displaystyle S 1234 Queremos dividir el secreto en seis partes n 6 displaystyle n 6 de forma que cualquier subconjunto k 3 displaystyle k 3 sea suficiente para reconstruir el secreto Al azar obtenemos k 1 displaystyle k 1 numeros por ejemplo 166 y 94 a 1 166 a 2 94 displaystyle a 1 166 a 2 94 El polinomio con el que operaremos sera por lo tanto f x 1234 166 x 94 x 2 displaystyle f left x right 1234 166x 94x 2 Calculamos seis puntos a partir del polinomio 1 1494 2 1942 3 2578 4 3402 5 4414 6 5614 displaystyle left 1 1494 right left 2 1942 right left 3 2578 right left 4 3402 right left 5 4414 right left 6 5614 right Damos a cada participe un unico punto que comprende el valor x displaystyle x y f x displaystyle f left x right Reconstruccion Editar Para reconstruir el secreto bastara con tres puntos Considerese x 0 y 0 2 1942 x 1 y 1 4 3402 x 2 y 2 5 4414 displaystyle left x 0 y 0 right left 2 1942 right left x 1 y 1 right left 4 3402 right left x 2 y 2 right left 5 4414 right Usamos la interpolacion polinomica de Lagrange ℓ 0 x x 1 x 0 x 1 x x 2 x 0 x 2 x 4 2 4 x 5 2 5 1 6 x 2 3 2 x 10 3 displaystyle ell 0 frac x x 1 x 0 x 1 cdot frac x x 2 x 0 x 2 frac x 4 2 4 cdot frac x 5 2 5 frac 1 6 x 2 frac 3 2 x frac 10 3 ℓ 1 x x 0 x 1 x 0 x x 2 x 1 x 2 x 2 4 2 x 5 4 5 1 2 x 2 7 2 x 5 displaystyle ell 1 frac x x 0 x 1 x 0 cdot frac x x 2 x 1 x 2 frac x 2 4 2 cdot frac x 5 4 5 frac 1 2 x 2 frac 7 2 x 5 ℓ 2 x x 0 x 2 x 0 x x 1 x 2 x 1 x 2 5 2 x 4 5 4 1 3 x 2 2 x 8 3 displaystyle ell 2 frac x x 0 x 2 x 0 cdot frac x x 1 x 2 x 1 frac x 2 5 2 cdot frac x 4 5 4 frac 1 3 x 2 2x frac 8 3 Por lo tanto f x j 0 2 y j ℓ j x displaystyle f x sum j 0 2 y j cdot ell j x 1942 1 6 x 2 3 2 x 10 3 3402 1 2 x 2 7 2 x 5 4414 1 3 x 2 2 x 8 3 displaystyle 1942 cdot left frac 1 6 x 2 frac 3 2 x frac 10 3 right 3402 cdot left frac 1 2 x 2 frac 7 2 x 5 right 4414 cdot left frac 1 3 x 2 2x frac 8 3 right 1234 166 x 94 x 2 displaystyle 1234 166x 94x 2 Teniendo en cuenta que el secreto es el coeficiente de x 0 displaystyle x 0 el secreto original es S 1234 displaystyle S 1234 Referencias Editar What is Shamir s Secret Sharing Scheme en X5 Networks a b Morillo Paz mayo agosto de 2006 Las matematicas en la criptologia Encuentros multidisciplinares Universidad Politecnica de Catalunya 23 Carracedo Gallardo Justo 2004 Servicios de anonimato para la Sociedad de la Informacion Seguridad en redes telematicas Editorial McGraw Hill ISBN 84 481 4157 1 p 470 Shamir Adi noviembre de 1979 How to share a secret Communications of the ACM 22 11 ISSN 0001 0782 pp 612 613 Datos Q935125Obtenido de https es wikipedia org w index php title Esquema de Shamir amp oldid 117935517, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos