Chiamiamo il segreto s: lo SHA-1 viene calcolato su un blocco di 512 bit s|p. p è calcolabile anche senza conoscere s perché dipende solo dalla lunghezza di s, che supponiamo di conoscere.
Se aggiungiamo x al blocco di 512 s|p, sappiamo che il calcolo dello SHA-1 del secondo blocco deve iniziare proprio dal primo bit di x, perché per definizione s|p è lungo un multiplo di 512. Si tratta quindi di calcolare lo SHA-1 di s|p|x|p', visto che anche in questo caso verrà aggiunto del padding.
Il padding p' dipende solo dalla lunghezza di s|p|x:
Lo SHA-1 del blocco x|p'= può essere calcolato grazie al fatto che ci si trova all'inizio del secondo blocco e si conosce il risultato del calcolo sul primo (SHA1(s|p) lo hash del segreto!): .
Mattia Monga