Cómo descifrar un archivo cifrado bajo múltiples claves públicas GPG

6

Según enlace

  

Para descifrar un mensaje se usa la opción --decrypt. Necesitas el    clave privada a la que se cifró el mensaje . Similar a   proceso de encriptación, el documento a descifrar se ingresa, y el   El resultado descifrado se genera.

Escenario:

Bob tiene un archivo, quiere mantenerlo en secreto. Solo quiere que su amiga Alice, John y Paul puedan ver el archivo.

Encripta el archivo único con las claves públicas de cada uno de sus amigos.

Su intención es que cada vez que, por ejemplo, Alice necesite ver el archivo, no necesite estar con los demás para acceder a él.

Un atacante encuentra el archivo cifrado.

Lo que estoy preguntando es:

¿El atacante tendría que descubrir cada una de las claves privadas de los amigos para descifrarlas? ¿O el atacante solo necesita conocer una de las claves privadas de los amigos?

    
pregunta Kōdo no musō-ka 16.03.2016 - 14:18
fuente

3 respuestas

5

Hay dos posibles interpretaciones de tu pregunta. Asumiré que lo que tienes en mente es lo siguiente:

Supongamos que sus amigos tienen pares de claves (sk_1,pk_1), (sk_2,pk_2), (sk_3,pk_3) y e(pk, data) cifrados y (sk, data) descifran y p es su texto sin formato.

Primera interpretación

Usted encripta así:

c = e(pk_3,e(pk_2,e(pk_1, p)))

Entonces, sí, para descifrar c debe hacer

p = d(sk_1,d(sk_2,d(sk_3,c)))

por ejemplo Necesito todas las llaves de tus amigos.

Tenga en cuenta que el ordenamiento es crucial y que ningún usuario puede descifrar los datos ni puede ser salvado cada vez que se pierde una clave.

Además, esto requeriría que sus amigos compartan a su vez los resultados intermedios (ya que nadie entregará su clave secreta, con suerte) entre sí y con el archivo descifrado. Especialmente el último paso podría imponer otras preocupaciones de seguridad si no se realiza con cuidado.

Sin embargo, hay sistemas que requieren que un grupo de personas trabaje en conjunto para el descifrado y que estén diseñados para ese propósito, lo que no es GPG.

Segunda interpretación

La otra interpretación es:

Creas un archivo para cada amigo, como

c1 = e(pk_1, p)
c2 = e(pk_2, p)
c3 = e(pk_3, p)

Luego, cada uno de tus amigos puede descifrar 'su / su' archivo por su cuenta.

    
respondido por el Tobi Nary 16.03.2016 - 14:35
fuente
3

No, solo necesitarías una de las claves utilizadas para cifrar. Lo que sucedería en esta situación es que el archivo se cifrará utilizando un cifrado simétrico, por ejemplo. AES, la clave utilizada con este cifrado se cifra una vez con cada clave pública suministrada. De esta manera, cualquiera con una de las claves privadas puede descifrar la clave simétrica y usarla para descifrar el archivo.

    
respondido por el BadSkillz 16.03.2016 - 14:34
fuente
1

@SmokeDispenser es correcto para la criptografía simétrica estándar proporcionada por GnuPG. Sin embargo, también tiene la opción de utilizar Esquema de intercambio secreto de Shamir . Está diseñado de tal manera que puede especificar cuántas "claves" deben estar presentes para que el descifrado sea posible.

Puedes construir un texto cifrado tal que cualquiera de las claves individuales de Alice, John o Paul lo descifre. O cualquier par de ellos. O los tres.

    
respondido por el Omniwombat 17.03.2016 - 07:15
fuente

Lea otras preguntas en las etiquetas