¿Es este un enfoque válido para multi-sign?

2

Requisito:
Un "texto arbitrario" debe estar cifrado, y las claves distribuidas entre 3 personas, al menos se necesitan dos claves para desbloquear.

Aquí es cómo planeo hacerlo, por favor avíseme si me falta algo:

  1. Cree cuatro claves simétricas (AES-256), cada una con diferente IV. llamémoslos S0, S1, S2, S3
  2. Cree tres pares de llaves RSA (longitud de clave 2048), llamémoslos A1, A2, A3

Cifre el texto arbitrario mediante S0 (AES256, modo de relleno ISO10126, modo de cifrado CBC), permite llamar a la salida como ENCTEXT

Cifrar S0 secuencialmente por S1 y S2, permite llamar a la salida como S0-S1S2
Cifrar S0 secuencialmente por S2 y S3, permite llamar a la salida como S0-S2S3
Cifrar S0 secuencialmente por S3 y S1, permite llamar a la salida como S0-S3S1

Cifrar S1 por A1-Public
Encrypt S2 by A2-Public
Cifrar S3 por A3-Public

  1. Comparta ENCTEXT, S0-S1S2, S0-S2S3, S0-S3S1, IV0, IV1, IV2, IV3, A1Public, A2Public, A3Public abiertamente con todos.
  2. Comparta A1-Privado, A2-Privado, A3-Privado con los respectivos propietarios de llaves.

Diga, si los propietarios de las claves 2 y 3 desean desbloquear el texto, usarán sus claves privadas para desbloquear S2, S3 respectivamente, luego desbloquear S0 con eso y finalmente desbloquear el ENCTEXT utilizando S0.

¿Esto funcionaría? ¿Existe alguna vulnerabilidad ya que S0 se encripta repetidamente con otras claves Sx y se revela (aunque cada una tendrá su propio IV)?

Soy un novato y reuní la mayoría de las opciones anteriores leyendo varios foros, agradecería mucho la validación de los expertos.

Editar 8/26: Gracias Mike y Ricky. Ambos fueron buenos punteros, ahora deduzco que el nombre formal para el enfoque anterior es el cifrado de umbral, y el algoritmo de intercambio secreto de Samir es otra forma de implementarlo. Veo que la diferencia entre el enfoque anterior y el algoritmo de intercambio secreto de Samir es: se debe compartir un nuevo secreto para cada mensaje si uso el algoritmo Samir, la lógica anterior necesitará la distribución de claves secretas solo una vez, y usar las mismas claves públicas cada tiempo para los mensajes más nuevos (por supuesto, nuevas claves simétricas e IVs cada vez, pero la versión cifrada se distribuye abiertamente como parte del mensaje cifrado en sí). Necesito ahora repensar qué enfoque se ajusta a mi caso de uso.

    
pregunta Mano 24.08.2016 - 23:25
fuente

0 respuestas

Lea otras preguntas en las etiquetas