Cifrado por tiempo limitado

1

¿Es posible configurar un esquema de cifrado donde la clave de descifrado solo se puede utilizar hasta una fecha determinada? es decir, más allá de la fecha determinada, los datos ya no se pueden descifrar. Podemos asumir que hay una referencia de tiempo confiable / mutuamente acordada.

    
pregunta Roy Tang 10.04.2018 - 07:52
fuente

3 respuestas

7

No hay forma de criptográficamente garantizar que una clave no será útil después de un cierto período de tiempo. Lo más que puede hacer es firmar digitalmente una fecha de vencimiento, indicando a las posibles utilidades de descifrado que primero verifiquen la fecha antes del descifrado. Las empresas de servicios públicos se encargarán de informar el hecho de la caducidad o de negarse a realizar cualquier otra acción. Como se mencionó en un comentario, el formato x509 proporciona esa capacidad, y las utilidades compatibles (o al menos debería) comprobar la fecha de caducidad.

La razón de esto es simple. Si tiene C = Enc k (P) y P = Dec k (C) , donde P es texto simple, C es texto cifrado y k es una clave secreta, es lógicamente imposible que el paso del tiempo cambie el comportamiento de un funcional algoritmo tal que P ≠ Dec k (C) . Por supuesto, puede hacer que ambas partes acuerden "olvidar" ya sea k o C a través de políticas acordadas mutuamente, como otras respuestas han descrito con más detalle, pero no importa cuánto. el tiempo transcurre, dado que C y k , siempre puedes calcular P .

    
respondido por el forest 10.04.2018 - 08:02
fuente
2

Mientras alguien tenga la clave, siempre se puede usar para descifrar. Incluso en las soluciones donde se acuerda que una clave no debe ser válida después de que haya caducado, es posible crear una herramienta que omita estas reglas, o simplemente falsificar la fecha de una herramienta existente.

La única forma de invalidar una clave sería destruirla: naturalmente, no es una función de la clave en sí, sino de la herramienta que la almacena. El Extended Triple Diffie-Hellman X3DH Key Agreement Protocol es una solución que se basa en esto por utilizando capas de claves con diferentes marcos de tiempo y utilizando la combinación de estas claves para el cifrado. Una vez que se ha destruido la clave de un solo uso, no hay forma de descifrar los datos, y las capas externas están protegiendo el intercambio de las claves de la capa interna. Nuevamente, esto se basa en la confianza de que ninguno de los clientes almacenará estas claves. No hay garantía.

    
respondido por el Esa Jokinen 10.04.2018 - 09:45
fuente
1

Si ambas partes trabajan juntas, puede hacerlo por política. Puede configurar un esquema en el que la parte de descifrado deba solicitar (parte de) la clave a la parte de encriptación utilizando algún esquema seguro y la parte de encriptación borre la clave en el lado del servidor después de que la clave haya caducado.

Nada detendrá a la parte de descifrado solo de almacenar la clave recibida. Pero cuando lo hace, por ejemplo, en una colaboración en la que ambas partes desean que los datos desaparezcan después de que la clave no esté disponible, se puede confiar en la parte de descifrado para que no almacene la clave.

    
respondido por el allo 12.04.2018 - 11:44
fuente

Lea otras preguntas en las etiquetas