Dobbiamo capire come le funzioni hash sono utili per la firma digitale.
Dobbiamo trovare il modo di firmare il documento.
La firma digitale è una tecnica crittografica che utilizza degli algoritmi con chiave asimmetrica (pubblica, privata)
Supponiamo che Alice deve Firmare un documento e Bob vuole essere sicuro che sia Alice a firmarlo. Si utilizza RSA
$$
m \rightarrow RSA\\
p,q \rightarrow n = p*q \\
e_A \text{ determinato da Alice} \\
e_A * d_A \equiv 1 \mod (\phi(n))
\\ MCD (e_A,\phi(n))= 1 \\
$$
Computo le 2 chiavi :
$$ PUB_A (e_A,n)\\ PRIV_A(d_A,p,q) $$
Per apporre la pripria firma si utilizza la chiave privata.
Quindi Alice prenderà la chiave privata e calcolerà
$$ y = m^{d_A} \mod n $$
e Spedisce a Bob :
$$ (m,y) $$
Bob recupera la chaive pubblica ($PUB_A$) di Alice , per verificare che il messaggio inviato sia stato inviato proprio da Alice.
E calcola :
$$ z = y^{e_A} \mod n $$
Ora Bob confronta $z$ con $m$ , se sono uguali , allora Alice ha spedito il messaggio, se sono diversi vorrà dire che c’è qualcuno in mezzo che lo ha modificato.
Se un attaccante volesse manomettere o la firma o il messaggio , deve attaccare RSA e quindi risolvere il problema della fattorizzazione.
Questa firma è stata brevettata da Chaum negli anni 80. Essa venne usata per la prima moneta digitale.