Sunteți pe pagina 1din 2

Esquema de Shamir

Ir a la navegaci�nIr a la b�squeda

Adi Shamir, desarrollador del sistema de compartici�n de secretos que lleva su


nombre.
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.

El algoritmo basa su funcionamiento en una propiedad de los polinomios


interpoladores1? y fue desarrollado por el cript�grafo israel� Adi Shamir, que lo
present� en 1979.2?

�ndice
1 Definici�n matem�tica
2 Sistema de compartici�n de secretos de Shamir
3 Ejemplo de uso
3.1 Preparaci�n
3.2 Reconstrucci�n
4 Referencias
Definici�n matem�tica
Formalmente, nuestro objetivo es dividir un conjunto de datos {\displaystyle D\,\!}
D\,\! (por ejemplo, una clave) en {\displaystyle n\,\!} n\,\! partes {\displaystyle
D_{1},\cdots ,D_{n}\,\!} {\displaystyle D_{1},\cdots ,D_{n}\,\!} de manera que:
El conocimiento de {\displaystyle k\,\!} {\displaystyle k\,\!} o m�s {\displaystyle
D_{i}\,\!} {\displaystyle D_{i}\,\!} partes hace que {\displaystyle D\,\!} D\,\!
sea f�cilmente computable.3?
El conocimiento de {\displaystyle k-1\,\!} {\displaystyle k-1\,\!} o menos
{\displaystyle D_{i}\,\!} {\displaystyle D_{i}\,\!} partes hace que {\displaystyle
D\,\!} D\,\! 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 {\displaystyle
\left(k,n\right)\,\!} {\displaystyle \left(k,n\right)\,\!}.2? Si {\displaystyle
k=n\,\!} {\displaystyle k=n\,\!} 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 {\displaystyle n+1\,\!} {\displaystyle n+1\,\!} puntos para definir un
polinomio de grado {\displaystyle n\,\!} n\,\!.

Supongamos que queremos trabajar con un umbral de {\displaystyle


\left(k,n\right)\,\!} {\displaystyle \left(k,n\right)\,\!} para compartir un
secreto {\displaystyle S\,\!} {\displaystyle S\,\!} (cualquier n�mero, sin p�rdida
de generalidad) siendo {\displaystyle k<n\,\!} {\displaystyle k<n\,\!}. La elecci�n
de los valores de {\displaystyle k\,\!} {\displaystyle k\,\!} y {\displaystyle
n\,\!} n\,\! determina la fortaleza del sistema.

Eligiendo al azar {\displaystyle \left(k-1\right)\,\!} {\displaystyle \left(k-


1\right)\,\!} coeficientes {\displaystyle a_{1},\cdots ,a_{k-1}\,\!} {\displaystyle
a_{1},\cdots ,a_{k-1}\,\!}, y siendo {\displaystyle a_{0}=S\,\!} {\displaystyle
a_{0}=S\,\!}, se construye el polinomio {\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}\,\!}
{\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 {\displaystyle n\,\!} n\,\! puntos a partir
del mismo, por ejemplo determinamos que {\displaystyle i=1,\cdots ,n\,\!}
{\displaystyle i=1,\cdots ,n\,\!} de lo que se deriva {\displaystyle
\left(i,f\left(i\right)\right)\,\!} {\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 {\displaystyle k\,\!} {\displaystyle k\,\!} entre


estos pares, podemos calcular los coeficientes del polinomio mediante interpolaci�n
y luego despejar {\displaystyle a_{0}\,\!} {\displaystyle a_{0}\,\!}, que es el
secreto.

S-ar putea să vă placă și