Cifrar algo con varias claves, de modo que se necesitan k de cada n claves; ¿Cómo se llama?

11

Estoy tratando de encontrar información sobre cómo cifrar algo de tal manera que haya n claves, y k de ellas son necesarias para el descifrado. Sin embargo, he estado buscando en Google durante media hora, pero como no sé cómo se llama (y aparentemente soy malo en la búsqueda), no puedo encontrarlo.

EDIT : preferiblemente, de modo que las teclas se puedan elegir, si existe bajo un nombre especial.

    
pregunta user31890 12.10.2013 - 13:42
fuente

2 respuestas

19

Para completar la respuesta de @Terry:

El intercambio secreto de Shamir funciona con valores en un campo determinado (el concepto matemático). En la práctica, si acepta que no realizará más de 255 recursos compartidos (es decir, 1 < k & leq; n & leq; 255 ), entonces es conveniente trabajar en GF (256) , el campo con 256 elementos. Esto significaría que realmente compartes cada byte independientemente de los demás, y por lo tanto puedes "compartir" cualquier secreto que encaje en una secuencia de bytes (así que, realmente, cualquier cosa que encaje) un ordenador). Y es bastante eficiente.

Como cada recurso compartido tiene la misma longitud que los datos secretos, es posible que desee optimizar las cosas un poco con el cifrado. Esto significa que si desea compartir un gran valor secreto S (por ejemplo, un video de 3 gigabytes), entonces:

  • Cree una clave aleatoria de 128 bits K .
  • Cifre S con K y un buen cifrado simétrico; el valor cifrado se almacena en un área común donde cada participante puede recuperarlo.
  • Aplica el intercambio secreto de Shamir en K .

De esta manera, cada titular de acciones solo tiene que recordar algo que es del tamaño de K (16 bytes, cabe fácilmente en varios lugares, por ejemplo, una tarjeta inteligente o incluso un cerebro humano), mientras que el secreto el valor S puede almacenarse y distribuirse de manera arbitraria y grande (ya que está cifrado, puede mostrarse al público en general, por ejemplo, transferirse con una red de igual a igual).

Ahora, para elegir los valores compartidos, es un problema interesante. Si tiene n acciones y un umbral de k , la descripción normal del esquema de Shamir implica que cada acción es esencialmente aleatoria. La división secreta genera los recursos compartidos, y los accionistas solo pueden obtenerlos.

Los cálculos se pueden extender de forma trivial a un esquema en el que la mayoría de las acciones de k-1 se eligen arbitrariamente. Por lo tanto, algunas acciones deben ser aleatorias.

Los recursos compartidos elegidos por el usuario tienen sentido cuando se deben recordar los recursos compartidos, es decir, son contraseñas . Pero las contraseñas están sujetas a fuerza bruta. Por ejemplo, si un atacante obtuvo k-1 acciones y sabe que una de las otras acciones es una contraseña, puede ejecutar una ataque del diccionario en ese recurso compartido adicional, es decir, probar contraseñas potenciales (para cada contraseña, volver a calcular el secreto compartido con esa contraseña como recurso compartido adicional, y ver si el resultado" tiene sentido "). Esto desafortunadamente debilita todo el sistema.

De hecho, una gran propiedad del esquema de Shamir es que es incondicionalmente segura , lo que significa que resiste a los atacantes con poder de computación arbitrario, incluidas las computadoras que aún no se han inventado (siempre y cuando la fuente de la aleatoriedad utilizada en la división es realmente aleatoria). Esto simplifica el análisis de seguridad, en particular para el almacenamiento a largo plazo, donde tiene que predecir cuánta potencia de computación tendrán los atacantes dentro de décadas. Pero si inserta contraseñas en la mezcla, esta seguridad incondicional se evapora como rocío bajo el sol de la mañana.

    
respondido por el Thomas Pornin 12.10.2013 - 16:12
fuente
10

Probablemente estés pensando en el algoritmo Shamir's Secret Sharing .

Del artículo de wikipedia,

  

El intercambio secreto de Shamir es un algoritmo en criptografía. Es una forma de intercambio secreto, donde un secreto se divide en partes, dando a cada participante su propia parte única, donde algunas de las partes o todas ellas son necesarias para reconstruir el secreto.   Es posible que no sea práctico contar con todos los participantes para combinar el secreto, por lo que a veces se usa el esquema de umbral donde cualquier k de las partes es suficiente para reconstruir el secreto original.

    
respondido por el Ayrx 12.10.2013 - 13:44
fuente

Lea otras preguntas en las etiquetas