¿Venís de leer la intro?
Optimizaciones en la implementación
- Como las claves miden menos de 56 bytes, no hace falta encadenar.
- Como las claves miden siempre lo mismo, el pad se calcula una sola vez.
- Se puede hacer loop unroll.
Hack rumbo a SIMD
- MD5 es un algoritmo de 32 bits y la arquitectura predominante en server/desktop/laptop es 64 bits.
- Se pueden calcular dos hashes simultáneos.
- Cada hash demora lo mismo, pero son dos a la vez.
Código
- https://github.com/cpantel/Forzando-Brutalmente-MD5/tree/master/v1_cpu
- https://github.com/cpantel/Forzando-Brutalmente-MD5/tree/master/v1_cpu_unroll
- https://github.com/cpantel/Forzando-Brutalmente-MD5/tree/master/v2_hack