Cerca nel blog

giovedì 30 settembre 2010

Digital Signature

La digital signature o firma digitale è basata sulla crittografia asimmetrica, essa rappresenta un sistema per autenticare un documento digitale garantendo il non ripudio.
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.
L’applicazione della firma digitale ad un messaggio avviene nei seguenti passi:

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à:

  1. 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
  2. Resistente alla collisione:Dato x,y dovrebbe essere difficile che H(x)=H(y)

Le funzioni hash più comuni sono:
  • 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