Cifrar archivo con muchas contraseñas

1

Estoy buscando una forma de cifrar un archivo usando muchas contraseñas para descifrar. Usé AES encriptación como solución o cualquier otra compatible.

Tengo una sugerencia:

Cifre el archivo con una contraseña, y cuando desciframos, podemos usar muchas contraseñas relacionadas con la primera como ( RANDOM_KEY.password.RANDOM_KEYS ) y codificarla ... en la función de descifrar descodificamos la contraseña y eliminamos las teclas de acceso aleatorio.

Quiero hacer un archivo descifrable con muchas contraseñas, pero las otras contraseñas generadas desde la contraseña principal ... así, un usuario1 no puede compartir la contraseña con un usuario2.

¿Pero cómo hacer esto práctico en un lenguaje C por ejemplo?

    
pregunta Creative Man 27.09.2016 - 13:39
fuente

3 respuestas

3

Puedes cifrar el archivo con una clave generada aleatoriamente. Y luego puedes cifrar esa clave de muchas maneras diferentes.

Alguna terminología y notación. Alice tendrá su contraseña, pA , que se procesa mediante una función de derivación de claves (KDF). El resultado de ejecutar el KDF en pA será la Clave de cifrado de clave de Alicia (KEK). Simplemente llamemos a la clave generada aleatoriamente que cifra el archivo, k .

Entonces, en el caso de Alice, k se cifrará con su KEK que se deriva de la ejecución del KDF en pA . Entonces

KEK A = KDF ( p A )

WA = Enc (withKey: KEK A ), datos: k )

WA es la clave "envuelta". Junto con el archivo cifrado con k , almacena las claves envueltas: WA , W B , WC , ...

Es posible que desee consultar RFC 3394 para ver las formas recomendadas de cifrar una clave con un KEK.

    
respondido por el Jeffrey Goldberg 28.09.2016 - 07:00
fuente
1

Bastante simple.

Crea una clave aleatoria y úsala como tu clave AES.

Use una función de derivación de claves para cada una de las contraseñas de descifrado deseadas.

Ahora tienes

  • La clave aleatoria utilizada para el cifrado.
  • Las contraseñas que se pueden usar derivan claves.

Lo que almacenas:

  • Para cada contraseña, crea un XOR de
    • la clave aleatoria
    • la clave derivada derivada de la contraseña autorizada

Entonces, para cada contraseña, tienes un resultado XOR .

Si se proporciona una contraseña, puede volver a derivar la clave y XOR contra el XOR resultado para obtener la clave aleatoria > de nuevo.

No almacenar la clave aleatoria. No almacene la clave derivada. Solo almacena el resultado XOR de estos combinados. Y, por supuesto, no almacene la contraseña.

Si uno de los usuarios pierde la autorización, deberá repetir el proceso con una nueva clave aleatoria. Cualquier material distribuido previamente siempre estará disponible con sus contraseñas originales.

    
respondido por el George Bailey 28.09.2016 - 19:26
fuente
0

No hay cifrado que proporcione esto hasta donde sé. Sin embargo, un punto intermedio para su tipo de problema podría ser el uso de un archivo de clave utilizado para cifrar los datos. Luego, cifra la clave n veces con la clave correspondiente de los usuarios.

Cada usuario podrá descifrar la clave con su propia credencial y, por lo tanto, podrá descifrar el archivo.

Para obtener más información, puede consultar la respuesta de little bear en esta pregunta

    
respondido por el M'vy 27.09.2016 - 14:09
fuente

Lea otras preguntas en las etiquetas