Questa domanda riguarda l'economia. Altrimenti, c'è una semplice risposta: qualunque sistema tu usi per generare coppie di chiavi RSA, comprali solo due e genererai il doppio delle coppie di chiavi al secondo. Quindi la tua domanda deve essere:
Per un determinato budget , quale tipo di tecnologia (GPU, FPGA) aiuterà a generare più coppie di chiavi RSA in un determinato intervallo di tempo?
Quindi possiamo iniziare a dare alcune risposte. Sulla carta, l'FPGA sarà migliore. In effetti, l'FPGA è riconfigurabile, il che significa che è possibile creare un circuito dedicato e non è necessario "pagare" per le parti non necessarie. L'FPGA ha un overhead fisso a causa della sua riconfigurabilità: vale a dire, non è possibile crearlo a un livello alto come si farebbe con un circuito fisso, non riconfigurabile (con un fattore di circa 2 o 3). D'altra parte, una GPU conterrà molte cose che non sono necessarie per la generazione di coppie di chiavi RSA, tra cui un sacco di gestione della RAM. Il vero punto cruciale è la mancanza di ampia moltiplicazione in GPU: RSA riguarda grandi numeri interi e moltiplicazioni, e ha davvero bisogno di moltiplicatori che possono moltiplicare, per esempio, interi a 64 bit, ottenendo risultati a 128 bit. Una CPU di base (quella da un PC) può farlo. Le GPU sono ottimizzate per le operazioni in virgola mobile e saranno limitate al massimo a 53 bit di precisione per il risultato.
Alcune persone hanno comunque provato a fare RSA su GPU; vedere ad esempio questo articolo (si tratta dell'uso della chiave privata RSA , non generazione, ma possiamo considerare i risultati come approssimativamente applicabili in quanto la generazione di coppie di chiavi RSA è principalmente test di primalità, che è l'esponenziazione modulare). Una GPU sembra essere, molto approssimativamente, circa 4 volte più efficiente di una CPU di prezzo comparabile.
Per FPGA, ci sono un certo numero di implementazioni documentate (es. questo ) ma i confronti con GPU sono difficili perché non funzionano con le stesse unità.
Le GPU sono dispositivi elettronici di consumo: sono veramente disponibili e chiunque può acquistarne alcuni. Se vuoi costruire una macchina che genera coppie di chiavi RSA, avrai un sistema funzionante in molto meno tempo usando GPU piuttosto che usando FPGA; tuttavia, l'utilizzo della CPU di base (ad esempio alcuni PC) ti porterà lì anche molto più velocemente. Se hai davvero un obiettivo di banda larga e sei pronto a investire parecchio nello sviluppo, allora l'FPGA o l'ASIC dedicato sono la strada da percorrere. Questo è ciò che fanno i modulo di sicurezza hardware .