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)

Firma con RSA (Message Recovery Scheme)

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.

Blind Signature

Questa firma è stata brevettata da Chaum negli anni 80. Essa venne usata per la prima moneta digitale.