Si esa contraseña de 20 caracteres es completamente aleatoria y utiliza cualquiera de los 95 caracteres ASCII. Entonces tendrías 95 20 (3.58 × 10 39 ) posibles contraseñas.
¿Cuántos hashes SHA1 / SHA512 podemos hacer por segundo? Supongamos que tenemos la siguiente computadora:
PC4: Ubuntu 14.04, 64 bit
Catalyst 14.9
8x AMD R9 290X
stock core clock
oclHashcat v1.31
SHA1 29976 Mh/s
SHA512 4576 Mh/s
Fuente: enlace
Entonces, si estás usando SHA1 con 500k iteraciones, podrías probar 59952 contraseñas por segundo.
Con las iteraciones SHA512 y 250k, puedes probar 18304 contraseñas por segundo.
SHA1: 95 20 / 18304 = 19.59 × 10 35 segundos = 6.21 × 10 27 años.
SHA512: 95 20 / 59952 = 9.98 × 10 34 segundos = 1.89 × 10 27 años.
Incluso si tuviera mil millones de estas máquinas con 8 tarjetas de video cada una, ni siquiera se acercaría.
Si usa solo 1 iteración y una contraseña aleatoria de 10 caracteres:
SHA1: 95 10 / 29976000000 = 2 mil millones de segundos = 63.34 años
SHA512: 95 10 / 4576000000 = 1.31 × 10 10 = 414.9 años
Entonces, si atacaras eso con mil de esas máquinas (8000 tarjetas de video), obtendrías 23 días / 151 días.
Una contraseña aleatoria de 20 caracteres es tan difícil de fuerza bruta como una clave AES de 128 bits.
2 128 aproximadamente es igual a 95 20 . Tan imposible.
Esto está tratando de forzar la fuerza bruta a través de todo el espacio de la clave. También puedes atacar la función hash e intentar calcular la preimagen. Sin embargo, esto no es aplicable para el cifrado de disco porque el hash no se almacena, se genera sobre la marcha y la salida se utiliza como la clave de cifrado.