Articulo de referencia

Compartir secretos

Un ejemplo de criptografía visual : al juntar dos imágenes que muestran las letras A y B, se revela la letra secreta S. El secreto no se puede deducir a partir de una sola image...

Un ejemplo de criptografía visual : al juntar dos imágenes que muestran las letras A y B, se revela la letra secreta S. El secreto no se puede deducir a partir de una sola imagen.

El reparto de secretos (también llamado división de secretos ) se refiere a métodos para distribuir un secreto entre un grupo, de tal manera que ningún individuo posea información inteligible sobre el secreto, pero cuando un número suficiente de individuos combina sus "partes", el secreto puede reconstruirse. Mientras que el reparto de secretos inseguro permite que un atacante obtenga más información con cada parte, el reparto de secretos seguro es "todo o nada" (donde "todo" significa el número necesario de partes).

En un tipo de esquema de compartición de secretos, hay un distribuidor y n jugadores . El distribuidor entrega una parte del secreto a los jugadores, pero solo cuando se cumplen ciertas condiciones, los jugadores podrán reconstruirlo a partir de sus partes. El distribuidor logra esto asignando a cada jugador una parte de tal manera que cualquier grupo de t (para el umbral ) o más jugadores pueda reconstruir el secreto en conjunto, pero ningún grupo de menos de t jugadores puede hacerlo. Este sistema se denomina esquema de umbral ( t , n ) (a veces se escribe como esquema de umbral ( n , t ) ).

El intercambio de secretos fue inventado independientemente por Adi Shamir [ 1 ] y George Blakley [ 2 ] en 1979.

Importancia

Los esquemas de compartición de secretos son ideales para almacenar información altamente sensible y de gran importancia. Algunos ejemplos son: claves de cifrado , códigos de lanzamiento de misiles y números de cuenta bancaria . Cada una de estas informaciones debe mantenerse en estricta confidencialidad, ya que su divulgación podría ser desastrosa; sin embargo, también es fundamental que no se pierdan. Los métodos tradicionales de cifrado no son adecuados para lograr simultáneamente altos niveles de confidencialidad y fiabilidad. Esto se debe a que, al almacenar la clave de cifrado, hay que elegir entre guardar una sola copia en una ubicación para máxima confidencialidad o guardar varias copias en diferentes ubicaciones para mayor fiabilidad. Aumentar la fiabilidad de la clave almacenando varias copias reduce la confidencialidad al crear vectores de ataque adicionales; hay más posibilidades de que una copia caiga en manos equivocadas. Los esquemas de compartición de secretos solucionan este problema y permiten alcanzar niveles arbitrariamente altos de confidencialidad y fiabilidad. [ 3 ]

El intercambio de secretos también permite que quien lo comparte confíe en el grupo en su conjunto. Tradicionalmente, confiar un secreto a un grupo para su custodia requería que quien lo compartiera confiara plenamente en todos sus miembros. Los sistemas de intercambio de secretos permiten que quien lo comparte almacene el secreto de forma segura con el grupo, incluso si no se puede confiar en todos sus miembros en todo momento. Mientras el número de traidores no supere el número crítico necesario para reconstruir el secreto, este permanece a salvo.

Los esquemas de compartición de secretos son importantes en los entornos de computación en la nube . De este modo, una clave puede distribuirse entre varios servidores mediante un mecanismo de compartición de secretos basado en un umbral. La clave se reconstruye cuando es necesario.

También se ha sugerido el uso compartido de secretos en redes de sensores donde los enlaces son susceptibles de ser interceptados, mediante el envío de datos en partes, lo que dificulta la tarea del intruso. La seguridad en estos entornos puede mejorarse modificando continuamente la forma en que se estructuran las partes.

Compartir secretos de forma "segura" frente a forma "insegura"

Un esquema seguro de compartición de secretos distribuye las participaciones de manera que cualquier persona con menos de t participaciones no tenga más información sobre el secreto que alguien con 0 participaciones.

Consideremos, por ejemplo, el esquema de compartición de secretos en el que la frase secreta "password" se divide en las partes "pa––––––", "––ss––––", "––––wo––" y "––––––rd". Una persona con 0 partes solo sabe que la contraseña consta de ocho letras y, por lo tanto, tendría que adivinarla entre 26 × 8 = 208 mil millones de combinaciones posibles. Sin embargo, una persona con una parte solo tendría que adivinar las seis letras, entre 26 × 6 = 308 millones de combinaciones, y así sucesivamente a medida que más personas se confabulan. En consecuencia, este sistema no es un esquema de compartición de secretos "seguro", porque un jugador con menos de t partes secretas puede reducir el problema de obtener el secreto interno sin necesidad de obtener primero todas las partes necesarias.

En contraste, consideremos el esquema de compartición de secretos donde X es el secreto a compartir, P i son claves públicas de cifrado asimétrico y Q i sus claves privadas correspondientes. Cada jugador J recibe { P 1 ( P 2 (...( P N ( X )))), Q j }. En este esquema, cualquier jugador con la clave privada 1 puede eliminar la capa externa de cifrado, un jugador con las claves 1 y 2 puede eliminar la primera y la segunda capa, y así sucesivamente. Un jugador con menos de N claves nunca puede acceder completamente al secreto X sin antes descifrar un blob cifrado con clave pública para el cual no posee la clave privada correspondiente, un problema que actualmente se considera computacionalmente inviable. Además, podemos observar que cualquier usuario con las N claves privadas puede descifrar todas las capas externas para obtener X , el secreto, y, en consecuencia, este sistema es un sistema seguro de distribución de secretos.

Limitaciones

Se dice que varios esquemas de compartición de secretos son seguros desde el punto de vista de la teoría de la información y se puede demostrar que lo son, mientras que otros renuncian a esta seguridad incondicional en aras de una mayor eficiencia, manteniendo al mismo tiempo la seguridad suficiente para ser considerados tan seguros como otras primitivas criptográficas comunes. Por ejemplo, podrían permitir que los secretos se protejan mediante partes con una entropía de 128 bits cada una, ya que cada parte se consideraría suficiente para frustrar a cualquier adversario actual concebible, requiriendo un ataque de fuerza bruta de tamaño promedio de 2 127 .

Todos los esquemas de compartición de secretos incondicionalmente seguros tienen limitaciones:

  • Cada parte del secreto debe tener al menos el mismo tamaño que el secreto en sí. Este resultado se basa en la teoría de la información , pero se puede comprender intuitivamente. Con t − 1 partes, no se puede determinar ninguna información sobre el secreto. Por lo tanto, la última parte debe contener tanta información como el secreto mismo. A veces se puede sortear esta limitación comprimiendo primero el secreto antes de compartirlo, pero esto suele ser imposible porque muchos secretos (claves, por ejemplo) parecen datos aleatorios de alta calidad y, por lo tanto, son difíciles de comprimir.
  • Todos los esquemas de compartición de secretos utilizan bits aleatorios para construir las partes. De lo contrario, con un esquema determinista, un jugador podría deducir información sobre el secreto probando por fuerza bruta todos los secretos posibles y ejecutando el esquema determinista. Para distribuir un secreto de un bit con un umbral de t partes, se necesitan t − 1 bits aleatorios. Para distribuir un secreto de b bits, se requiere una entropía de ( t − 1) × b bits.

Compartir secretos triviales

Nota: n es el número total de 'jugadores' entre quienes se distribuyen las partes, y t es el número mínimo de jugadores necesarios para revelar el secreto.

t = 1

t = 1 compartir secretos es trivial. El secreto se puede distribuir simplemente a los n participantes.

t = n

Existen varios esquemas de compartición de secretos ( t , n ) para t = n , cuando todas las partes son necesarias para recuperar el secreto:

  1. Codifica el secreto como un número binario s de cualquier longitud. Para cada jugador i , donde i es uno menos que el número total de jugadores, asigna un número binario aleatorio p i de la misma longitud que s . Al jugador sin parte, dale la parte calculada como p n = sp 1p 2 ⊕ ... ⊕ p n −1 , donde ⊕ denota la operación OR exclusiva a nivel de bits . El secreto es la operación OR exclusiva a nivel de bits de todos los números de los jugadores ( p i , para 1 ≤ in ).
  2. En cambio, (1) se puede realizar usando la operación binaria en cualquier grupo . Por ejemplo, tomemos el grupo cíclico de enteros con suma módulo 2 32 , que corresponde a enteros de 32 bits con suma definida con el desbordamiento binario descartado. El secreto s se puede particionar en un vector de M enteros de 32 bits, que llamamos v secreto . Luego, a ( n − 1) de los jugadores se les da a cada uno un vector de M enteros de 32 bits que se extrae independientemente de una distribución de probabilidad uniforme, con el jugador i recibiendo v i . Al jugador restante se le da v n = v secretov 1v 2 − ... − v n −1 . El vector secreto se puede recuperar sumando los vectores de todos los jugadores.

1 < t < n

La dificultad reside en crear planes que sigan siendo seguros, pero que no requieran las n acciones.

Cuando la eficiencia espacial no es una preocupación, se pueden usar esquemas triviales t = n para revelar un secreto a cualquier subconjunto deseado de los jugadores simplemente aplicando el esquema para cada subconjunto. Por ejemplo, para revelar un secreto s a dos cualesquiera de los tres jugadores Alice, Bob y Carol, cree tres ((32){\displaystyle {\binom {3}{2}}}) diferentes t = n = 2 partes secretas para s , dando los tres conjuntos de dos partes a Alice y Bob, Alice y Carol, y Bob y Carol.

t perteneciente a cualquier subconjunto deseado de {1, 2, ..., n }

Por ejemplo, imaginemos que el consejo de administración de una empresa desea proteger su fórmula secreta. El presidente debería poder acceder a ella cuando la necesite, pero en caso de emergencia, cualquiera de los 12 miembros del consejo podría desbloquearla conjuntamente. Una forma de lograrlo es mediante un sistema de compartición de secretos con t = 3 y n = 15 , donde se asignan 3 partes al presidente y una parte a cada miembro del consejo.

Compartir secretos de forma eficiente

El enfoque trivial se vuelve rápidamente impracticable a medida que aumenta el número de subconjuntos, por ejemplo, al revelar un secreto a 50 de 100 jugadores, lo que requeriría(10050)1.009×1029{\displaystyle {\binom {100}{50}}\approx 1.009\times 10^{29}}esquemas que se crearán y que cada jugador deberá mantener(9949)5.04×1028{\displaystyle {\binom {99}{49}}\approx 5.04\times 10^{28}}Conjuntos distintos de acciones para cada esquema. En el peor de los casos, el aumento es exponencial. Esto ha llevado a la búsqueda de esquemas que permitan compartir secretos de manera eficiente con un número limitado de participantes.

esquemas de rampas

Un esquema de compartición de secretos con rampa es un esquema con dos umbrales: los grupos por debajo del umbral inferior no obtienen información sobre el secreto, los grupos en o por encima del umbral superior pueden reconstruirlo, y los grupos de tamaño intermedio pueden obtener información parcial. Esta relajación puede reducir el tamaño de las partes compartidas. El esquema de umbral ( k , L , n ) de Hirosuke Yamamoto es una formulación temprana de esta disyuntiva desde la perspectiva de la teoría de la información. [ 4 ]

El plan de Shamir

En este esquema, cualquier t de las n partes puede usarse para recuperar el secreto. El sistema se basa en la idea de que se puede construir un polinomio único de grado t − 1 , de modo que cada uno de los t puntos se encuentre sobre el polinomio. Se necesitan dos puntos para definir una línea recta, tres puntos para definir completamente una cuadrática, cuatro puntos para definir una curva cúbica, y así sucesivamente. Es decir, se necesitan t puntos para definir un polinomio de grado t − 1. El método consiste en crear un polinomio de grado t − 1 con el secreto como primer coeficiente y los coeficientes restantes elegidos al azar. A continuación, se encuentran n puntos en la curva y se le da uno a cada jugador. Cuando al menos t de los n jugadores revelan sus puntos, hay suficiente información para ajustar un polinomio de grado ( t − 1) a ellos, siendo el secreto el primer coeficiente.

El plan de Blakley

El esquema de Blakley en tres dimensiones: cada parte es un plano , y el secreto es el punto donde se cruzan tres partes. Dos partes no son suficientes para determinar el secreto, aunque sí proporcionan información suficiente para acotarlo a la línea donde se cruzan ambos planos.

Dos líneas no paralelas en el mismo plano se intersecan en un punto exacto. Tres planos no paralelos en el espacio se intersecan en un punto exacto. De manera más general, cualesquiera n hiperplanos no paralelos de ( n − 1) dimensiones se intersecan en un punto específico. El secreto puede codificarse como cualquier coordenada del punto de intersección. Si el secreto se codifica utilizando todas las coordenadas, incluso si son aleatorias, entonces un iniciado (alguien que posee uno o más de los hiperplanos de ( n − 1) dimensiones ) obtiene información sobre el secreto ya que sabe que debe estar en su plano. Si un iniciado puede obtener más conocimiento sobre el secreto que un externo, entonces el sistema ya no tiene seguridad teórica de la información . Si solo se utiliza una de las n coordenadas, entonces el iniciado no sabe más que un externo (es decir, que el secreto debe estar en el eje x para un sistema bidimensional). A cada jugador se le da suficiente información para definir un hiperplano; El secreto se recupera calculando el punto de intersección de los planos y tomando luego una coordenada específica de esa intersección.

El esquema de Blakley es menos eficiente en cuanto al espacio que el de Shamir; mientras que las partes de Shamir son del mismo tamaño que el secreto original, las de Blakley son t veces mayores, donde t es el número mínimo de jugadores. El esquema de Blakley se puede optimizar añadiendo restricciones sobre qué planos se pueden usar como partes. El esquema resultante es equivalente al sistema polinomial de Shamir.

Utilizando el teorema chino del resto

El teorema chino del resto también se puede utilizar en el reparto de secretos, ya que nos proporciona un método para determinar de forma única un número S módulo k enteros coprimos entre sí.metro1,metro2,...,metrok{\displaystyle m_{1},m_{2},...,m_{k}}, dado queS<i=1kmetroi{\displaystyle S<\prod _{i=1}^{k}m_{i}}Hay dos esquemas de compartición de secretos que utilizan el teorema chino del resto, los esquemas de Mignotte y Asmuth-Bloom. Son esquemas de compartición de secretos de umbral, en los que las partes se generan mediante reducción módulo los enteros.metroi{\displaystyle m_{i}}y el secreto se recupera resolviendo esencialmente el sistema de congruencias utilizando el teorema chino del resto.

Compartir secretos de forma proactiva

Si los jugadores almacenan sus acciones en servidores informáticos inseguros, un atacante podría acceder a ellos y robarlas. Si no es práctico cambiar el secreto, las acciones no comprometidas (al estilo Shamir) pueden renovarse. El repartidor genera un nuevo polinomio aleatorio con término constante cero y calcula para cada jugador restante un nuevo par ordenado, donde las coordenadas x de los pares antiguo y nuevo son iguales. Luego, cada jugador suma las coordenadas y antiguas y nuevas, y guarda el resultado como la nueva coordenada y del secreto.

Todas las acciones sin actualizar que acumuló el atacante se vuelven inservibles. Un atacante solo puede recuperar el secreto si encuentra suficientes acciones sin actualizar para alcanzar el umbral necesario. Esta situación no debería ocurrir, ya que los jugadores eliminaron sus acciones antiguas. Además, un atacante no puede recuperar ninguna información sobre el secreto original de los archivos de actualización, puesto que estos solo contienen información aleatoria.

El distribuidor puede cambiar el número umbral al distribuir actualizaciones, pero siempre debe mantenerse alerta ante los jugadores que conservan acciones caducadas.

Compartir secretos verificables

Un jugador podría mentir sobre su propia participación para acceder a las de otros. Un esquema de compartición secreta verificable (VSS, por sus siglas en inglés) permite a los jugadores tener la certeza de que ningún otro jugador miente sobre el contenido de sus participaciones, con una probabilidad de error razonable. Estos esquemas no se pueden calcular de forma convencional; los jugadores deben sumar y multiplicar números colectivamente sin que ninguno sepa exactamente qué se está sumando y multiplicando. Tal Rabin y Michael Ben-Or idearon un sistema de computación multipartita (MPC, por sus siglas en inglés) que permite a los jugadores detectar la deshonestidad del repartidor o de hasta un tercio del número umbral de jugadores, incluso si estos jugadores están coordinados por un atacante "adaptativo" que puede cambiar de estrategia en tiempo real según la información revelada.

Compartición de secretos con seguridad computacional

La desventaja de los esquemas de compartición de secretos con seguridad incondicional radica en que el almacenamiento y la transmisión de las partes requieren una cantidad de recursos de almacenamiento y ancho de banda equivalente al tamaño del secreto multiplicado por el número de partes. Si el tamaño del secreto fuera significativo, por ejemplo, 1 GB, y el número de partes fuera 10, entonces los participantes tendrían que almacenar 10 GB de datos. Se han propuesto técnicas alternativas para aumentar considerablemente la eficiencia de los esquemas de compartición de secretos, prescindiendo del requisito de seguridad incondicional.

Una de estas técnicas, conocida como compartición de secretos abreviada [ 5 ] , combina el algoritmo de dispersión de información de Rabin [ 6 ] (IDA) con la compartición de secretos de Shamir. Los datos se cifran primero con una clave generada aleatoriamente, utilizando un algoritmo de cifrado simétrico. A continuación, estos datos se dividen en N fragmentos utilizando el IDA de Rabin. Este IDA se configura con un umbral, de forma similar a los esquemas de compartición de secretos, pero a diferencia de estos, el tamaño de los datos resultantes crece en un factor de (número de fragmentos / umbral). Por ejemplo, si el umbral fuera 10 y el número de fragmentos producidos por IDA fuera 15, el tamaño total de todos los fragmentos sería (15/10) o 1,5 veces el tamaño de la entrada original. En este caso, este esquema es 10 veces más eficiente que si el esquema de Shamir se hubiera aplicado directamente a los datos. El último paso en el método de compartición de secretos, en resumen, consiste en utilizar el algoritmo de compartición de secretos de Shamir para generar partes de la clave simétrica generada aleatoriamente (que suele tener entre 16 y 32 bytes) y, a continuación, entregar una parte y un fragmento a cada accionista.

Un enfoque relacionado, conocido como AONT-RS, [ 7 ] aplica una transformación de todo o nada a los datos como paso de preprocesamiento para un IDA. La transformación de todo o nada garantiza que cualquier número de partes inferior al umbral es insuficiente para descifrar los datos.

Compartición de secretos multisecreta y eficiente en espacio (por lotes)

Un esquema de compartición de secretos k de n , teóricamente seguro desde el punto de vista de la información, genera n partes, cada una de un tamaño al menos igual al del secreto mismo, lo que resulta en un almacenamiento total requerido al menos n veces mayor que el secreto. En la compartición de secretos múltiples diseñada por Matthew K. Franklin y Moti Yung , [ 8 ] se utilizan múltiples puntos de los secretos anfitriones polinomiales; el método resultó útil en numerosas aplicaciones, desde codificación hasta computación multipartita . En la compartición de secretos eficiente en espacio, ideada por Abhishek Parakh y Subhash Kak , cada parte es aproximadamente del tamaño del secreto dividido por k 1. [ 9 ]

Este esquema utiliza interpolación polinómica repetida y tiene aplicaciones potenciales en la dispersión segura de información en la Web y en redes de sensores . Este método se basa en la partición de datos que involucra las raíces de un polinomio en un campo finito. [ 10 ] Posteriormente se señalaron algunas vulnerabilidades de esquemas de compartición de secretos eficientes en espacio relacionados. [ 11 ] Muestran que un esquema basado en el método de interpolación no puede usarse para implementar un esquema ( k , n ) cuando los k secretos a distribuir se generan inherentemente a partir de un polinomio de grado menor que k − 1 , y el esquema no funciona si todos los secretos a compartir son iguales, etc. [ 12 ]

Otros usos y aplicaciones

Un esquema de compartición de secretos permite proteger un secreto en múltiples servidores y mantenerlo recuperable incluso si varios servidores fallan. El distribuidor puede actuar como varios participantes distintos, distribuyendo las partes entre ellos. Cada parte puede almacenarse en un servidor diferente, pero el distribuidor puede recuperar el secreto incluso si varios servidores fallan, siempre que pueda recuperar al menos t partes; sin embargo, los ciberdelincuentes que accedan a un servidor no conocerán el secreto mientras haya menos de t partes almacenadas en cada servidor.

Este es uno de los conceptos principales del proyecto informático Vanish de la Universidad de Washington , donde se utiliza una clave aleatoria para cifrar datos, y esta clave se distribuye como un secreto entre varios nodos de una red P2P . Para descifrar el mensaje, se requiere el acceso a al menos t nodos de la red; el principio de este proyecto en particular es que el número de nodos que comparten el secreto disminuirá naturalmente con el tiempo, lo que provocará que el secreto desaparezca con el tiempo . Sin embargo, la red es vulnerable a un ataque Sybil , lo que hace que Vanish sea inseguro. [ 13 ]

Cualquier accionista que disponga de información suficiente para descifrar el contenido en cualquier momento puede obtener y almacenar una copia de X. Por consiguiente, aunque herramientas y técnicas como Vanish pueden hacer que los datos sean irrecuperables dentro de su propio sistema después de un tiempo, no es posible forzar la eliminación de los datos una vez que un usuario malintencionado los ha visto. Este es uno de los principales dilemas de la gestión de derechos digitales .

Un distribuidor podría enviar t partes, todas necesarias para recuperar el secreto original, a un único destinatario. Un atacante tendría que interceptar las t partes para recuperar el secreto, una tarea más difícil que interceptar un solo archivo, especialmente si las partes se envían mediante diferentes medios (por ejemplo, algunas por Internet y otras en CD ).

Para secretos de gran tamaño, puede resultar más eficiente cifrar el secreto y luego distribuir la clave mediante el uso compartido de secretos.

El intercambio de secretos es una primitiva importante en varios protocolos para la computación multipartita segura . El intercambio de secretos también se puede utilizar para la autenticación de usuarios en un sistema. [ 14 ]

Véase también

Referencias

  1. Shamir, Adi (1 de noviembre de 1979). "Cómo compartir un secreto" ( PDF) . Communications of the ACM . 22 (11): 612– 613. doi : 10.1145/359168.359176 . S2CID 16321225. Archivado (PDF) del original el 10 de agosto de 2017. 
  2. Blakley, GR (1979). "Protección de claves criptográficas" (PDF) . Gestión del conocimiento de requisitos, Taller internacional sobre (AFIPS) . 48 : 313–317 . doi : 10.1109/AFIPS.1979.98 . S2CID 38199738. Archivado del original (PDF) el 28 de junio de 2018. 
  3. Krenn, Stephan; Loruenser, Thomas (2023). Introducción al intercambio de secretos: una visión general sistemática y guía para la selección de protocolos . doi : 10.1007/978-3-031-28161-7 . ISBN 978-3-031-28160-0.(también disponible en)
  4. Yamamoto, Hirosuke (1986). "Sistema de compartición de secretos mediante un esquema de umbral (k, L, n)". Electrónica y comunicaciones en Japón (Parte I: Comunicaciones) . 69 (9): 46– 54. doi : 10.1002/ecja.4410690906 .
  5. Krawczyk, Hugo (1993). Secret Sharing Made Short (PDF) . CRYPTO '93.
  6. Rabin, Michael O. (1989). "Dispersión eficiente de información para seguridad, equilibrio de carga y tolerancia a fallos". Journal of the ACM . 36 (2): 335– 348. CiteSeerX 10.1.1.116.8657 . doi : 10.1145/62044.62050 . S2CID 13166422 .  
  7. Resch, Jason; Plank, James (15 de febrero de 2011). AONT-RS: Combinando seguridad y rendimiento en sistemas de almacenamiento dispersos (PDF) . Usenix FAST'11 .
  8. Franklin, Matthew; Yung, Moti (4 de mayo de 1992). «Complejidad de la comunicación en la computación segura (Resumen extendido)». Actas del vigésimo cuarto simposio anual de la ACM sobre Teoría de la Computación - STOC '92 . págs. 699–710 . doi : 10.1145/129712.129780 . ISBN  0897915119. S2CID 7486402 . (también disponible en)
  9. Parakh, Abhishek; Kak, Subhash (enero de 2011). "Compartición de secretos eficiente en espacio para la seguridad implícita de datos". Information Sciences . 181 (2): 335– 341. doi : 10.1016/j.ins.2010.09.013 .
  10. Parakh, Abhishek; Kak, Subhash (septiembre de 2009). "Almacenamiento de datos en línea mediante seguridad implícita". Information Sciences . 179 (19): 3323– 3331. doi : 10.1016/j.ins.2009.05.013 .
  11. Sahasranand, KR; Nagaraj, Nithin; Rajan, S. (marzo de 2010). "Cómo no compartir un conjunto de secretos". Revista Internacional de Ciencias de la Computación y Seguridad de la Información . arXiv : 1001.1877 .
  12. Liu, Yanhong; Zhang, Futai; Zhang, Jie (febrero de 2016). "Ataques a algunos esquemas verificables de compartición de múltiples secretos y dos esquemas mejorados". Information Sciences . 329 : 524–539 . doi : 10.1016/j.ins.2015.09.040 .
  13. "Unvanish: Reconstrucción de datos autodestructibles" . Archivado del original el 20 de marzo de 2012.
  14. Gupta, Kishor Datta, et al. «Shamir's Secret Sharing for Authentication without Reconstructing Password». 2020 10th Annual Computing and Communication Workshop and Conference (CCWC). IEEE, 2020.
  • Página de manual de Ubuntu: gfshare – explicación del intercambio de secretos de Shamir en GF(2 8 ) Archivado el 19/08/2017 en Wayback Machine
  • Descripción de los planes de Shamir y Blakley. Archivado el 16 de noviembre de 2006 en la Wayback Machine.
  • Patente para el uso de compartición de secretos para recuperar contraseñas PGP (¿y otras?) Patente estadounidense 6,662,299
  • Una bibliografía sobre esquemas de intercambio de secretos
  • Sistemas de firma de código que utilizan claves compartidas en Wayback Machine (archivado el 14 de febrero de 2008)
  • Beimel, Amos (2011). "Esquemas de intercambio de secretos: una revisión" (PDF) .
  • Descripción intuitiva del reparto de secretos mediante criptografía visual y el método de reparto de secretos de Shamir.