¿Qué tecnología de hardware (GPU, FPGA) es más rápida para generar claves RSA?

3

Estoy interesado en generar claves RSA en rápida sucesión y estoy buscando el hardware correcto para eso. Creo que lo que estoy buscando es muy similar a un ataque de fuerza bruta en las claves RSA, pero mi propósito es generar claves que contengan una cadena de texto cuando se imprimen en ASCII / BASE58 o formas similares.

Creo que necesito un hardware que sea capaz de multiplicar (determinar el cuadrado de) un valor dado muy rápidamente. (Todavía estoy aprendiendo la generación de claves RSA, corríjame si me equivoco)

Estoy viendo una variedad de tecnologías como OpenCL (para tarjetas de video etc ), y posiblemente incluso los FPGA. No sé si hay algún ASIC disponible para este propósito, pero sería ideal si existieran.

Pregunta

Entonces, ¿qué tecnologías de hardware (no productos) es la más rápida (y disponible para los consumidores) para generar claves RSA en rápida sucesión?

    
pregunta TLDR 13.12.2012 - 17:38
fuente

2 respuestas

4

Esta pregunta es sobre economía. De lo contrario, hay una respuesta simple: cualquiera que sea el sistema que utilice para generar pares de claves RSA, solo compre dos de ellos y generará el doble de pares de claves por segundo. Entonces tu pregunta debe ser:

Para un presupuesto dado , ¿qué tipo de tecnología (GPU, FPGA) ayudará a generar la mayoría de los pares de claves RSA en un período de tiempo determinado?

Entonces podemos empezar a dar algunas respuestas. En el papel, el FPGA será mejor. De hecho, el FPGA es reconfigurable, lo que significa que puede hacer un circuito dedicado y no tiene que "pagar" por las piezas que no necesita. El FPGA tiene una sobrecarga fija debido a su reconfigurabilidad: es decir, no puede hacerlo tan alto como lo haría con un circuito fijo no reconfigurable (por un factor de aproximadamente 2 o 3). Por otro lado, una GPU vendrá con muchas cosas que no necesita para la generación del par de claves RSA, incluida una gran cantidad de administración de RAM. El punto realmente letal es la falta de multiplicación amplia en GPU: RSA se trata de grandes enteros y multiplicaciones, y realmente necesita multiplicadores que puedan multiplicar, por ejemplo, enteros de 64 bits, con resultados de 128 bits. Una CPU básica (que desde un PC) puede hacer eso. Las GPU están optimizadas para operaciones de punto flotante y se limitarán a, en el mejor de los casos, 53 bits de precisión para el resultado.

No obstante, algunas personas han intentado hacer RSA en GPU; vea por ejemplo este artículo (se trata del uso de la clave privada RSA , no de generación, pero podemos considerar que los resultados son más o menos aplicables porque la generación del par de claves RSA es principalmente una prueba de primalidad, que es una exponenciación modular). Una GPU parece ser, aproximadamente, 4 veces más eficiente que una CPU de precio comparable.

Para FPGA, hay varias implementaciones documentadas (por ejemplo, this one ) pero las comparaciones con GPU son difíciles porque no funcionan con las mismas unidades.

Las GPU son productos electrónicos de consumo: realmente están disponibles en el mercado y cualquiera puede comprarlas. Si desea construir una máquina que genere pares de claves RSA, obtendrá un sistema operativo en mucho menos tiempo utilizando GPU que mediante FPGA; sin embargo, el uso de CPU básica (es decir, algunas PC) lo llevará incluso más rápido. Si realmente tiene un gran objetivo de ancho de banda y está listo para invertir bastante en el desarrollo, FPGA o ASIC dedicado son el camino a seguir. Eso es lo que hacen los proveedores del Hardware Security .

    
respondido por el Thomas Pornin 28.12.2012 - 16:49
fuente
1

El más rápido sería el hardware especialmente diseñado que implementa los algoritmos en hardware. Probablemente, también sería posible implementar un algoritmo bastante rápido en las GPU, pero si la velocidad realmente importa, entonces recomiendo que se construya un propósito, ya que también podría haber problemas de fugas clave con una GPU.

    
respondido por el AJ Henderson 13.12.2012 - 17:46
fuente

Lea otras preguntas en las etiquetas