Se quella password di 20 caratteri è completamente casuale e utilizza uno qualsiasi dei 95 caratteri ASCII. Allora avresti 95 20 (3.58 × 10 39 ) possibili password.
Quanti hash SHA1 / SHA512 possiamo fare al secondo? Supponiamo di avere il seguente computer:
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
Fonte: link
Quindi, se stai utilizzando SHA1 con iterazioni di 500k, puoi provare 59952 password al secondo.
Con iterazioni SHA512 e 250k, puoi provare 18304 password al secondo.
SHA1: 95 20 / 18304 = 19,59 × 10 35 secondi = 6,21 × 10 27 anni.
SHA512: 95 20 / 59952 = 9,98 × 10 34 secondi = 1,89 × 10 27 anni.
Anche se avessi un miliardo di queste macchine con 8 schede video ciascuna, non ti avvicinerebbero nemmeno.
Se si utilizza solo 1 iterazione e una password casuale di 10 caratteri:
SHA1: 95 10 / 29976000000 = 2 miliardi di secondi = 63,34 anni
SHA512: 95 10 / 4576000000 = 1.31 × 10 10 = 414.9 anni
Quindi se dovessi attaccarlo con migliaia di quelle macchine (8000 schede video), lo ridurrai a 23 giorni / 151 giorni gestibili.
Una password casuale di 20 caratteri è tanto difficile da bruteforce quanto una chiave AES a 128 bit.
2 128 equivale approssimativamente a 95 20 . Così impossibile.
Si sta provando a rinforzare la chiave passando attraverso l'intero spazio chiave. Puoi anche attaccare la funzione di hash e provare a calcolare l'immagine preliminare. Questo tuttavia non è applicabile per la crittografia del disco perché l'hash non è memorizzato, viene generato al volo e l'output viene utilizzato come chiave di crittografia.