Quale tecnologia hardware (GPU, FPGA) è più veloce nella generazione delle chiavi RSA?

3

Sono interessato a generare chiavi RSA in rapida successione e sto cercando l'hardware giusto per farlo. Penso che quello che sto cercando sia molto simile a un attacco di forza bruta sulle chiavi RSA, ma il mio scopo è generare chiavi che contengano una stringa di testo quando uscite in ASCII / BASE58 o forme simili.

Credo di avere bisogno di hardware in grado di moltiplicare molto rapidamente (determinando il quadrato di) un dato valore. (Sto ancora imparando la generazione di chiavi RSA, quindi correggimi se sbaglio)

Sto guardando una varietà di tecnologie come OpenCL (per schede video etc ), ed eventualmente anche FPGA. Non so se sono disponibili ASIC per questo scopo, ma sarebbe l'ideale se esistessero.

Domanda

Quindi, quali tecnologie hardware (non i prodotti) sono le più veloci (e disponibili per i consumatori) a generare chiavi RSA in rapida successione?

    
posta TLDR 13.12.2012 - 17:38
fonte

2 risposte

4

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 .

    
risposta data 28.12.2012 - 16:49
fonte
1

Il più veloce sarebbe l'hardware appositamente costruito che implementa gli algoritmi nell'hardware. Probabilmente sarebbe anche possibile implementare un algoritmo abbastanza veloce sulle GPU, ma se la velocità conta davvero, allora ti consiglio di creare qualcosa di appositamente costruito poiché potrebbero esserci problemi di perdite di chiavi con una GPU.

    
risposta data 13.12.2012 - 17:46
fonte

Leggi altre domande sui tag