La risposta tradizionale sta calcolando 2 ^ (2 ^ x) mod n per un semi-primo n. Questo ha delle belle proprietà:
- È efficiente per il computer lo sfidante, perché c'è una scorciatoia quando conosci i fattori di n .
-
La costruzione non può essere parallelizzata. Quindi l'attaccante deve calcolare le squadrature in sequenza, impedendo loro di accelerare l'attacco lanciando più risorse su di esso.
Ma l'attaccante può ancora sfruttare il parallelismo all'interno di una squadratura usando hardware personalizzato, dando una notevole accelerazione rispetto alle CPU standard.
- Il numero di iterazioni necessarie è deterministico. Non puoi essere fortunato o sfortunato.
Crypto-Puzzle LCS35 Time Capsule di Ronald L. Rivest ha i dettagli, incluso il codice Java per generare una sfida.
Lasciare che l'attaccante brute-force una (breve) chiave non è un buon puzzle di tempo. È banale parallelizzare, se lanci il doppio dell'hardware al problema, lo risolvi due volte più velocemente. In aggiunta a ciò, il runtime è casuale e puoi solo scegliere il valore di aspettativa per lo sforzo richiesto (questo potrebbe essere risolto avendo un numero di sfide separate).