Cómo crear un cifrado de bloqueo de tiempo

2

Quiero cifrar un archivo para que el descifrado tarde al menos X días en una computadora estándar. Me imagino que la mejor manera de hacer esto es guardar solo una clave parcial, de modo que la parte faltante de la clave demorará X días en determinarla con la técnica más eficiente (fuerza bruta o mejor).

¿Hay precedentes para este tipo de cifrado? ¿Existen herramientas listas para usar que lo hagan?

    
pregunta jhourback 21.05.2017 - 20:40
fuente

1 respuesta

5

La respuesta tradicional es computar 2 ^ (2 ^ x) mod n para un semi-prime n. Esto tiene algunas propiedades agradables:

  • Es eficiente para la computadora para el retador, porque hay un atajo cuando conoces los factores de n .
  • La construcción no puede ser paralelizada. Por lo tanto, el atacante debe calcular los escuadrones de forma secuencial, evitando que aceleren el ataque lanzando más recursos.

    Pero el atacante aún puede explotar el paralelismo dentro de una cuadratura usando hardware personalizado, lo que proporciona una considerable aceleración en comparación con las CPU estándar.

  • El número de iteraciones necesarias es determinista. No puedes tener suerte o mala suerte.

LCS35 Time Capsule Crypto-Puzzle por Ronald L. Rivest tiene los detalles, incluido el código Java para generar un desafío.

Dejar que el atacante ejerza una fuerza bruta no es un buen rompecabezas. Es trivial paralelizar, si le das al hardware el doble de hardware, lo resuelves el doble de rápido. Además de eso, el tiempo de ejecución es aleatorio y solo puede elegir el valor de expectativa para el esfuerzo requerido (esto podría solucionarse teniendo una serie de desafíos por separado).

    
respondido por el CodesInChaos 21.05.2017 - 22:35
fuente

Lea otras preguntas en las etiquetas