La firma digitale si propone di risolvere tre problemi:
- Integrità, la garanzia che terze parti non abbiano modificato il contenuto del messaggio.
- Non ripudio chi trasmette il messaggio non può negare di averlo fatto.
- Autenticità, l’effettiva provenienza del mittente.
Passo 1
Al messaggio da inviare viene applicato un algoritmo di hash. Il risultato dell’applicazione dell’algoritmo ci da una sequenza composta da un numero fisso e univoco di bit chiamato MD(message digest).Una funzione hash H deve alcune proprietà:
- Deve essere difficile da invertire(resistente). Sia H(x)=y Є {0,1}n per x Dato y dovrebbe essere difficile trovare un qualsiasi z tale che H(z)=y
- Resistente alla collisione:Dato x,y dovrebbe essere difficile che H(x)=H(y)
- MD5 a 128-bit, non garantisce la non collisione.
- RIPEMD a 160-bit, è una variante di MD5.
- SHA-1 a 160-bit anche questo non garantisce la collisione violata nel 2005, comunque rimane ancora sicura la variante SHA-2 o non si è ancora a conoscenza di attacchi.
Passo 2
Il message digest viene cifrato con la chiave privata del mittente, ed il risultato di questa operazione rappresenta la firma digitale del messaggio.Passo 3
Il messaggio originale o in chiaro e la relativa firma digitale vengono inviati al destinatario.Il ricevente per verificare la firma digitale effettua i seguenti passi:
Passo 1
Applica al messaggio ricevuto la stesso algoritmo hash del mittente ottenendo il digest del messaggio.Passo 2
Utilizzando la chiave pubblica del mittente decifra la firma digitale ottenendo il digest del messaggio. Passo 3
Confronta i due digest ottenuti e se questi risultano essere uguali, sono garantite:- Autenticità
- Integrità
Gli algoritmi più comuni sono:
- MD2/RSA
- MD5/RSA
- SHA1/DSA
- SHA2/DSA
Nessun commento:
Posta un commento