Sto affrontando un problema molto reale e, purtroppo, non riesco a trovare la risposta da solo: sto raggiungendo il mio limite come programmatore perché la mia conoscenza dell'hardware non è affatto sufficientemente avanzata.
È un problema che sto incontrando durante lo sviluppo del sistema (ho bisogno di trovare un valore sicuro dei parametri che dipende dalla risposta alla domanda che sto ponendo qui) (forse crypto.SE sarebbe meglio, ma crypto.SE sembra più sulle domande teoriche su matematica / crittografia).
Per un progetto su cui sto lavorando ho bisogno di utilizzare un "cryptosystem a capsula temporale". Più precisamente il seguente, inventato da Rivest (la 'R' in 'RSA'):
crypto puzzle capsula temporale di Rivest
È un'operazione intrinsecamente sequenziale: la parallelizzazione qui è inutile. Un utente malintenzionato potrebbe utilizzare una rete bot di milioni di computer: non sarebbe di aiuto. Neanche un milione di chip ASIC sarebbe stato d'aiuto. La soluzione può essere trovata solo in modo sequenziale, di design .
Ora ho bisogno di approssimare (uno o due ordini di grandezza è ok: un'approssimazione 10 volte più veloce / più lento o anche 100 volte più veloce / più lento non è davvero un problema) quanto più veloce potrebbe un chip dedicato risolvere quel puzzle rispetto a una CPU veloce (un core , molto veloce)
Fondamentalmente la soluzione di questo enigma consiste nel fare un lotto di quadrati modulo n . Consideriamo che non esiste un "attacco" su quel puzzle: ho scelto un numero sufficiente di interi RSA ecc.
Una GPU sarebbe di aiuto rispetto a una CPU qui? Un FPGA? Un chip dedicato come un chip ASIC può aiutare?
Se qualcuno di questi potrebbe aiutare, come posso determinare quanto potrebbe essere più veloce di una CPU veloce?
Avrei bisogno di alcuni calcoli back-of-the-envelope e, come ho detto in precedenza, un'approssimazione su 10x o 100x la risposta effettiva non è un grosso problema.
Suppongo che la mia domanda si riduca a qualcosa di simile (ma sentiti libero di riscriverti se mi sbaglio): sapendo che il problema è intrinsecamente sequenziale e consiste in una ripetuta operazione di modulo n
, puoi costruire / programmare dell'hardware fare solo operazioni di modulo di squadratura sequenziale e quanto più veloce sarebbe una CPU effettiva?