Impronta hash nella firma digitale

 

Il riassunto del messaggio, che costituisce il contenuto della firma, è detto impronta del messaggio (in inglese fingerprint o anche digest) ed è un’informazione ricavata dal messaggio ma di lunghezza prefissata, tipicamente un valore numerico di 128 o 160 bit.
 
[adsense:block:adcontenuto]
 
L'impronta viene usualmente calcolata applicando al messaggio una particolare funzione H non reversibile detta funzione hash:
 
I = H(M)
 
Ad esempio, detto mi l'i-esimo byte di un messaggio di lunghezza L byte arbitraria, una funzione di questo tipo è la funzione che esegue il seguente calcolo:
 
I = (Si mi) mod 2k i:1..L
 
Nella funzione dell'esempio vengono sommati gli L byte e della somma si prendono i k bit meno significativi; l'impronta è in questo caso di k bit (lunghezza fissa, contro una lunghezza arbitraria del messaggio di L byte = L*8 bit).
 
[adsense:block:adcontenuto]
 
Il fatto che la funzione hash sia non reversibile garantisce che, pur essendo applicabile a qualsiasi messaggio di qualsivoglia lunghezza (quindi di qualsiasi messaggio si può calcolare l'impronta), dall'impronta non è ricavabile il messaggio da cui è stata calcolata e quindi, di per sé, l’impronta non è una informazione da proteggere perché non lede la riservatezza del messaggio, e ha significato solo in quanto associata al messaggio che l'ha generata. La funzione hash deve anche garantire un'altra importante proprietà: deve essere molto bassa, quasi trascurabile, la probabilità che due messaggi diversi, in particolare se hanno la stessa lunghezza, generino la stessa impronta, ovvero si assume praticamente che:
 
I1=H(M1) I2=H(M2) M1 ¹ M2 Þ I1 ¹ I2
 
Questo garantisce che l'impronta di un messaggio sia un riassunto distintivo del messaggio stesso, una 'immagine fedele' ancorché ridotta, come lo può essere per un individuo l'impronta digitale. La bontà di un algoritmo di hashing sta quindi nella difficoltà crittoanalitica di trovare un messaggio diverso dall’originale ma che produce la stessa impronta: alcuni algoritmi di hashing sono in tal senso già stati violati.
 
[adsense:block:adcontenuto]
 
Sono stati proposti svariati algoritmi che realizzano funzioni hash diverse (i primi tre dell’elenco in ambito RSA):
  • - MD2 (message digest 2): produce un’impronta a 128 bit, con il messaggio diviso in blocchi da 16 byte. È già stato violato.
  • - MD4: impronta da 128 bit, più veloce del precedente, opera su blocchi da 512 bit ed esegue il riempimento dell’ultimo blocco non completato anche un valore (sempre presente) di 64 bit che rappresenta la lunghezza effettiva del messaggio, cosa che rende molto più sicuro l’algoritmo; ciò nondimeno è stato violato.
  • - MD5: più sicuro del precedente, è basato su operazioni logiche e di OR esclusivo, ma rispetto a MD4 è più lento.
  • - SHA-1 (Secure Hash Algorithm): utilizzato nel protocollo S/MIME, derivato da MD4 e impronta da 160 bit.
  • - RIPE-MD: derivato da MD4 e SHA-1, ha varie versioni (impronta da 128, 160, 256 e 320 bit).

 

Risorse per sviluppo: 

Ti potrebbero anche interessare:

SET (Secure Electronic Transaction) e forme di pagamento

Formalizzato nel 1997, il protocollo SET è dovuto alla collaborazione di varie aziende del settore (Microsoft, IBM, Netscape, RSA, GTE, VISA, Mastercard, e altre) con l’obiettivo di rendere sicuri al massimo i pagamenti in rete con carte di credito.

Risorse per sviluppo: