Cos’è la firma digitale





La firma digitale è un metodo matematico volto a dimostrare l’autenticità di un messaggio o di un documento digitale inviato tra mittente e destinatario attraverso un canale di comunicazione non sicuro, garantendo al destinatario che:

  • il mittente del messaggio sia chi dice di essere (autenticazione),
  • il mittente non possa negare di averlo inviato (non rifiuto)
  • il messaggio non sia stato alterato lungo il percorso dal mittente al destinatario (integrità).

Le firme digitali si basano su schemi o protocolli crittografici comunemente usati nella distribuzioni di software, nelle transazioni finanziarie e in altri casi in cui si debba rilevare la falsificazione o l’alterazione del messaggio.

Un tipico schema di firma elettronica basata sulla crittografia a chiave pubblica si compone dei seguenti algoritmi:

– un algoritmo per la generazione della chiave, che seleziona in modo casuale una chiave privata da un insieme di possibili valori, e restituisce una coppia di chiavi, la chiave privata con cui si firma il documento e la corrispondente chiave pubblica di verifica della firma;

– un algoritmo di firma che, presi in input un messaggio e la chiave privata, calcola il codice hash del messaggio e lo crittografa con la chiave privata, producendo una firma;

– un algoritmo di verifica che, presi in input un messaggio, la chiave pubblica e la firma, accetta o rifiuta la firma che compare nel messaggio.




Sono richieste le seguenti due proprietà: primo, l’autenticità di una firma generata da un messaggio fisso e da una chiave privata deve essere verificata facendo uso della corrispondente chiave pubblica.

In secondo luogo, deve essere impossibile generare una firma valida per un messaggio senza avere a disposizione la chiave privata.

Di regola  uno schema di firma digitale è una serie di algoritmi probabilistici in tempo polinomiale (G, S, V), dotati delle seguenti proprietà:

G (algoritmo generatore della chiave) genera una chiave pubblica, pk, e la corrispondente chiave privata, sk, a partire dal valore in input 1n, dove n è il parametro di sicurezza;

S (algoritmo di firma) restituisce un tag t, elaborando in input la chiave privata sk e una stringa x;

V (algoritmo di verifica) valuta i valori dati in input (la chiave pubblica pk, la stringa x e il tag t), determinando se la firma sia autentica o meno.

Ciò al fine di garantire la sicurezza massima.


Discussione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

%d blogger hanno fatto clic su Mi Piace per questo: