¿Las bibliotecas criptográficas aprovechan la API de Windows GPU "Direct Compute"?

5

¿Hay bibliotecas de cifrado (descifrado) que aprovechan la API de la GPU de Windows ?

    
pregunta random65537 05.11.2011 - 04:03
fuente

2 respuestas

8

Como bien dice Paulo en los comentarios, muchas operaciones de encriptación no se prestan bien a la paralelización. Por ejemplo, considere los dos modos AES ECB y CBC. El BCE consiste en aplicar las transformaciones de AES a cada punto de datos utilizando varios elementos del programa clave de acuerdo con la posición del módulo de datos y la longitud del programa clave. Básicamente, una vez que haya generado la programación clave, podría paralelizar fácilmente AES en modo ECB.

Excepto que el BCE no es un gran modo de operación en lo que respecta a la seguridad, ya que para mayores cantidades de datos, comienza a revelar patrones en su texto cifrado. Wikipedia explica todo esto mucho mejor de lo que puedo .

El modo

CBC se puede describir básicamente como "tomar la salida de la última operación, xor con el texto llano y cifrar el resultado". Por lo general, comienzas por el primer texto sin formato con un IV. Para el cifrado, debe calcular cada bloque a la vez, por lo que la operación no es adecuada para la paralelización; sin embargo, para el descifrado, puede paralelizar el proceso ya que todos los bloques son necesarios para descifrar un bloque (es decir, si tiene el bloque 1 y el bloque 2, descifre el bloque 2 de acuerdo con su posición en la programación de teclas y xor con bloque 1).

Estos son solo algunos ejemplos; algunos algoritmos se prestan a la paralelización. Considera que quieres probar muchas contraseñas contra alguna contraseña hash que tengas. Cada cálculo de hash es difícil de paralelizar, ya que cada bloque debe incorporarse a la función de hash por turno; sin embargo, lo que puede hacer es realizar muchas operaciones de hash a la vez: imagine que desata un hilo para cada intento de hash. Los procesadores gráficos son buenos en este tipo de trabajo, ya que están diseñados esencialmente para transformar conjuntos enteros de coordenadas en el espacio 3D según un resultado matemático, básicamente, para hacer gráficos en 3D.

Un buen artículo sobre este tema es Gpu compatible con Cuda como un acelerador de hardware eficiente para AES . Bruce Schneier cubre acelerando el descifrado de contraseñas . También se han estudiado las herramientas de craqueo de hash distribuido y Google ha implementado varias implementaciones.

Espero que a medida que se haga más trabajo, se encuentren más y más métodos para aprovechar la paralelización, tanto en términos de criptoanálisis como en términos de criptografía. Sin embargo, no soy un investigador criptográfico, así que tendrás que tomar eso con una gran dosis de cautela.

    
respondido por el user2213 06.11.2011 - 19:05
fuente
3

Acabo de abrir el código que realiza el cifrado AES en modo ECB y CTR y el descifrado AES para el modo ECB, CBC y CTR. El código específico de GPU utiliza Direct3D 10 API (no DirectCompute).

En una GeForce GTS 240 logré ~ 300 MB / s para el descifrado CBC con una clave de 256 bits.

Puede consultar la página del proyecto aquí: enlace

    
respondido por el AChiuta 23.12.2011 - 16:31
fuente

Lea otras preguntas en las etiquetas