¿Qué es Secret Sharing? - Explicación del esquema de Shamir y su importancia para la seguridad de los datos

Secret Sharing: La tecnología del fragmentiX (1ª parte)

Introducción: Qué significa realmente Secret Sharing en criptografía

En el ámbito de la criptografía, pocos conceptos tienen un nombre tan engañoso como secret sharing. A primera vista, podría parecer un primo del más conocido secreto compartido. Pero, a pesar de la similitud de las frases, estas dos ideas tienen objetivos muy diferentes.

Un secreto compartido suele ser un valor único conocido por varias partes, utilizado para establecer una comunicación segura. Por el contrario, secret sharing es una técnica para dividir un secreto en múltiples partes, o acciones, de forma que sólo un subconjunto designado de esas acciones pueda reconstruir el secreto original. Lo más importante es que ninguna parte individual revela información sobre el secreto por sí sola.

A diferencia de los sistemas de cifrado, que se basan en claves para bloquear y desbloquear datos, secret sharing es un método criptográfico sin claves, que elimina la necesidad de que una única entidad de confianza controle una clave. Esto lo hace especialmente potente en situaciones en las que el control centralizado es un inconveniente, y la resistencia frente al riesgo es primordial.

El concepto fue formalizado a finales de la década de 1970 por Adi Shamir [1] y George Blakley. Desde entonces, el secret sharing ha encontrado aplicaciones que van mucho más allá del almacenamiento seguro: desde salvaguardar códigos de lanzamiento nuclear y monederos de criptomonedas hasta permitir la computación multipartita segura y los sistemas de autenticación basados en umbrales.

En fragmentiX, aprovechamos la potencia de secret sharing para construir sistemas de almacenamiento en la nube seguros y distribuidos, garantizando que sus datos permanezcan protegidos incluso si partes del sistema fallan o se ven comprometidas. En las secciones que siguen, exploraremos cómo funciona secret sharing, comenzando con el esquema clásico de Shamir en la primera parte de esta entrada de blog, y luego nos sumergiremos en las extensiones que lo hacen aún más robusto y versátil en una segunda parte.

Secret Sharing de Shamir: un ejemplo intuitivo

Imagine un instituto de investigación médica que trabaja en un tratamiento médico revolucionario. La fórmula es un secreto muy bien guardado, no sólo por razones de propiedad intelectual, sino para evitar filtraciones prematuras o usos indebidos. Para protegerla, el instituto decide repartir la fórmula entre varios investigadores de confianza situados en distintos países.

Pero no se limitan a dividir el documento en trozos. Eso sería arriesgado, ya que cada trozo podría contener pistas. En su lugar, utilizan el Secret Sharing de Shamir, un método arraigado en la criptografía de umbral, en el que un secreto se divide en n acciones, y un umbral predefinido k de esas acciones es necesaria para reconstruirla.

Es importante destacar que cualquier subconjunto de menos de k no revela absolutamente nada sobre el secreto original, un nivel de protección tan fuerte que ni siquiera un adversario con una potencia de cálculo ilimitada puede extraer información alguna de unas acciones insuficientes. Este excepcional nivel de protección entra en la categoría de seguridad teórica de la información (ITS). Es el mismo tipo de garantía que ofrece el One-Time Pad, el ejemplo de libro de texto de cifrado indescifrable que logra ITS cuando se utiliza correctamente. Mientras que el One-Time Pad rara vez resulta práctico debido a sus estrictos requisitos, el Secret Sharing de Shamir también ofrece ITS en condiciones más flexibles, lo que lo hace adecuado para una gama más amplia de aplicaciones del mundo real. Y lo que es más importante, este nivel de seguridad no se ve amenazado por los avances en criptoanálisis o computación, incluidos los ordenadores cuánticos.

Otra potente característica: no importa qué acciones estén disponibles. Si el instituto crea 10 acciones y fija el umbral en 7, entonces cualquiera de esos 7 investigadores puede reunirse y reconstruir la fórmula secreta. Incluso si se pierden 3 acciones, el secreto sigue siendo recuperable. Esto hace que el esquema de Shamir no sólo sea seguro, sino también altamente tolerante a fallos.

Esta flexibilidad y tolerancia a fallos hacen que el esquema de Shamir sea ideal para sistemas distribuidos seguros, en los que la integridad y disponibilidad de los datos deben coexistir con una confidencialidad estricta.

Explicación técnica: Las matemáticas detrás del Secret Sharing de Shamir

En el corazón del Secret Sharing de Shamir yace una idea maravillosamente simple: un polinomio de grado k1 está determinada de manera única por k puntos distintos. Por ejemplo, una recta (un polinomio de grado 1) puede reconstruirse a partir de dos puntos distintos cualesquiera, mientras que una parábola (grado 2) requiere tres puntos. Este principio constituye la espina dorsal del sistema.

Para codificar un secreto, lo incrustamos como término constante de un polinomio de grado generado aleatoriamente. k-1 sobre un campo finito. Para utilizar una analogía visual: piense en el secreto como el punto donde la gráfica del polinomio interseca el eje y - es decir, el valor del polinomio en x=0. A continuación, evaluamos este polinomio en n puntos distintos de cero para producir n acciones.

Como resultado, cualquier k de estas acciones pueden utilizarse para reconstruir el polinomio original y, por tanto, el secreto mediante técnicas de interpolación. Pero menos de k acciones no revelan absolutamente nada. Esto no es sólo dificultad computacional, es una garantía matemática.

Figura 1: Ejemplo de esquema de 3 umbrales de 4

En la figura 1, el secreto es la coordenada y del punto S en el que la parábola corta al eje y. Cuatro puntos de una parábola representan las cuatro acciones (A, B, C, D). Tres de estos puntos son suficientes para determinar el secreto. Dos puntos dejan indeterminada la parábola y, por tanto, el secreto. Observe que en este ejemplo simplificado visualizamos un polinomio sobre el campo de números reales en lugar de un campo finito.

Paso a paso:

1. Definir el secreto y los parámetros

  • Sea el secreto un número en un campo finito (por ejemplo, un campo finito con 28 que pueden representar todos los valores posibles de un byte).
  • Elija un umbral k (número mínimo de acciones necesarias para reconstruir el secreto).
  • Elija el número total de acciones ndonde nk.

2. Construcción del polinomio

Para codificar el secreto, construimos un polinomio aleatorio f(x) de grado k1:

f(x)=a0+a1x+a2x2++ak-1xk-1

  • El término constante a0 es el secreto.
  • Los coeficientes a1,a2,...,ak-1 se eligen uniformemente al azar del campo finito.
  • La aleatoriedad de estos coeficientes es fundamental, ya que garantiza que el polinomio sea impredecible y que el sistema alcance la seguridad teórica de la información.

3. Generación de acciones

Cada acción si es un punto del polinomio:

si=(xi, f(xi))

  • Elija valores distintos, distintos de cero x1,x2,...,xn en el campo finito.
  • Evalúe el polinomio en cada xi para obtener el f(xi).

Estos pares (xi,f(xi)) a los participantes. Cada acción parece un dato aleatorio por sí sola y no revela nada sobre el secreto a menos que se combine con un número suficiente de acciones.

4. Reconstruir el secreto

Para recuperar el secreto a0cualquier grupo de k los participantes pueden utilizar sus acciones para reconstruir el secreto utilizando Interpolación de Lagrange:

a 0 = f ( x i ) j i x i x j - x i a_0 = suma f(x_i) prod de{ji} {{x_i} sobre {x_j - x_i}}

Propiedades de seguridad

  • Seguridad teórica de la información: Cualquier grupo con menos de k acciones no aprende nada sobre el secreto. Esto no es sólo computacionalmente difícil - es matemáticamente imposible.
  • Flexibilidad del umbral: Puede elegir cualquier k y n para equilibrar seguridad y tolerancia a fallos.
  • Resiliencia: No importa qué acciones se pierdan o no estén disponibles. Siempre que k acciones válidas, el secreto puede ser recuperado.

Conclusión: Por qué el Secret Sharing de Shamir sigue siendo importante hoy en día

El Secret Sharing de Shamir demuestra cómo las matemáticas pueden transformar nuestra forma de concebir la seguridad: en lugar de bloquear los datos tras una única clave, elimina la necesidad de una única entidad de confianza y garantiza que nunca pueda filtrarse información parcial. Esta base lo hace a la vez potente y resistente, incluso frente a las amenazas emergentes.

Pero por muy sólido que sea el esquema clásico, los sistemas del mundo real requieren más. El almacenamiento a gran escala plantea problemas de eficiencia, las redes distribuidas introducen el riesgo de acciones corruptas o malintencionadas, y la fiabilidad a largo plazo exige mecanismos que vayan más allá de lo básico.

En la segunda parte veremos cómo se abordan exactamente estos retos:

  • cómo Secret Sharing Computacionalmente Seguro reduce la sobrecarga de almacenamiento,
  • Cómo el robusto Secret Sharing detecta los recursos compartidos dañados y permite un almacenamiento en la nube autorreparable y altamente resistente

Permanezca atento, porque la verdadera fuerza de secret sharing no reside sólo en su elegancia matemática, sino en cómo evoluciona para satisfacer las exigencias de la seguridad de los datos distribuidos modernos.

Referencias

[1] Adi Shamir. 1979. Cómo compartir un secreto. Commun. ACM 22, 11 (nov. 1979), 612-613. https://doi.org/10.1145/359168.359176


¿Está preparado para proteger sus datos de futuras amenazas?

➡️ Póngase en contacto con consulta o demostración a la medida de su infraestructura.

Conozca en detalle el funcionamiento del fragmentiX:

➡️ Explore nuestra soluciones.

También te puede gustar...

0 comentarios

es_ESES