Come creare una crittografia a blocco orario

2

Voglio crittografare un file in modo tale che la decodifica impiegherà almeno X giorni su un computer standard. Immagino che il modo migliore per farlo sia quello di salvare solo una chiave parziale, in modo che la parte mancante della chiave impieghi X giorni per determinare con la tecnica più efficiente (forza bruta o migliore).

Esistono precedenti per questo tipo di crittografia? Esistono strumenti standard che lo fanno?

    
posta jhourback 21.05.2017 - 20:40
fonte

1 risposta

5

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

    
risposta data 21.05.2017 - 22:35
fonte

Leggi altre domande sui tag