Algoritmi di hashing per la sicurezza informatica
Gli Algoritmi di hashing permettono di creare, a partire da un documento D, una sequenza di bit, detta digest, strettamente correlata a D e di lunghezza fissa (cioè indipendente dalla dimensione di D). Un algoritmo di questo tipo generalmente utilizzato dai servizi sicurezza è lo SHA (Secure Hash Algorithm), sviluppato a partire da un lavoro di ricerca di Rivest. Bisogna dire, inoltre, che esistono versioni implementate di SHA che generano digest di 160 bit ad una velocità piuttosto soddisfacente nella maggioranza delle applicazioni.
L’utilizzo più immediato di SHA è nelle verifiche di integrità: confrontando digest ottenuti da uno stesso documento a distanza di tempo, è possibile verificare facilmente se il documento ha subito alterazioni. SHA è inoltre spesso utilizzato insieme ad RSA per generare e validare firme digitali. Per generare una firma:
- si estrae un digest SHA dal documento da firmare;
- si cifra RSA il digest con la chiave privata del firmatario.
Chiunque può verificare la validità della firma:
- decifrando la firma con la chiave pubblica del firmatario;
- generando a parte un digest SHA del documento firmato;
- confrontando il digest ottenuto dalla firma con quello ottenuto dal documento digitale.