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).