Español | English
rss facebook linkedin Twitter

GPU vs CPU para análisis de contraseñas

El análisis de contraseñas es un proceso de los denominados “embarrassingly parallel workload (1)”, donde se puede dividir el problema inicial en subtareas totalmente independientes entre sí de forma trivial. En este caso, el análisis de una contraseña se puede dividir en tantos subprocesos como claves se quieran analizar.

La mayoría de los algoritmos de cifrado utilizados actualmente realizan operaciones simples para crear un hash a partir de una contraseña (operaciones sobre tipo de datos enteros que normalmente se ejecutan en la ALU (unidad aritmético lógica (2)) de los procesadores).

Además, las GPUs han pasado de sólo poder ejecutar tareas muy específicas a poder ejecutar tareas más generales. El cambio más notable se produjo con la introducción del hardware DX10 donde las unidades de geometría, procesado de píxeles y de vértices se cambiaron por los denominados “Unified Shaders (3)” y por un sistema de control de flujo más flexible.

Rendimiento teórico CPU

Los procesadores más rápidos disponibles actualmente en equipos de usuario son los Intel Core i7. Estos procesadores pueden ejecutar hasta 3 operaciones en la ALU por ciclo de reloj. Además, para maximizar el rendimiento es necesario utilizar las extensiones SSE y así poder utilizar los registros de 128bit divididos en 4 operandos de 32bit. De pico pueden ejecutar hasta 12 instrucciones / ciclo de reloj por core. En un quad core serían 48 instrucciones por ciclo.


Rendimiento teórico GPU

La GPU actual más rápida para análisis de contraseñas es el chip RV870 de las ATI 5970 (2 GPU) y ATI 5870 (1 GPU).

Esta GPU consta de 20 motores SIMD, cada motor tiene 16 procesadores y cada procesador tiene 5 stream cores. Cada stream core puede ejecutar una instrucción por ciclo de reloj con lo que el pico máximo teórico sería de 1600 instrucciones por ciclo de reloj (4).



Rendimiento en real life.

Existen muchos programas de análisis de contraseñas para CPU. Los hay que soportan muchos algoritmos diferentes (John the Ripper + Jumbo Patch, Cain, etc.), los hay que se especializan en algoritmos concretos programándolos de forma más eficiente (BarsWF (5) para MD5, Cacheebr para MSCache (6), etc).

Para la GPU RV870 el mejor programa actual que he visto es el IGHASHGPU (7). Soporta los algoritmos de cifrado siguientes:

  • · MD4, MD5, SHA1
  • · NTLM
  • · MS Cache
  • · MySQL5
  • · MS SQL
  • · vBulletin
  • · Invision Power Board
  • · Oracle 11g
  • · Alguno más con MD5 anidados con salts

IGHASHGPU no tiene implementada la versión en CPU de los algoritmos de cifrado con lo que para poder comparar la velocidad de análisis hay que hacerlo contra programas diferentes.

Tests de rendimiento

El hardware utilizado para la comparativa de velocidad fue una ATI 5870 a 850MHz para las pruebas de GPU y un Intel Core 2 DUO a 2.0 GHz para las pruebas de CPU.


Rendimiento MD5

JTR 1.7.4 + jumbo patch

BarsWF CPU

IGHASHGPU v0.7bt

4.4M / sec (1 thread)

60M / sec (2 threads)

3245M / sec

Rendimiento SHA1

JTR 1.7.4 + jumbo patch

SHABR 0.2

IGHASHGPU v0.7bt

2903K / sec

25.28M / sec

1368M / sec

Rendimiento MS Cache

JTR 1.7.4 + jumbo patch

CACHEEBR 0.1

IGHASHGPU v0.7bt

4707k / sec

31.3M / sec

1511M / sec


Como puede apreciarse, aquellos algoritmos que pueden ejecutarse de forma eficiente en una GPU ofrecen un rendimiento varias decenas de veces superior al de una CPU debido a la cantidad de ALUs disponibles y que los algoritmos usados son simples, apenas acceden a memoria y no requieren de un sistema de predicción de saltos complejo.

Hay otros algoritmos de cifrado, como DES, que no se ejecutan de forma eficiente en las GPUs actuales con lo que su análisis habrá que seguir dejándolo, por ahora, para las CPUs.

Links relacionados

(1) http://en.wikipedia.org/wiki/Embarrassingly_paralle

(2) http://en.wikipedia.org/wiki/Arithmetic_logic_unit

(3) http://en.wikipedia.org/wiki/Unified_shader_model

(4) http://www.anandtech.com/video/showdoc.aspx?i=3643&p=5

(5) http://3.14.by/en/md5

(6) http://blog.distracted.nl/2009/05/cacheebr-ms-cache-password-brute-forcer.html

(7) http://www.golubev.com/hashgpu.htm


S21sec, Departamento de Auditorías


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login