FIRMA DIGITALE

 

Nella crittografia asimmetrica, o a chiave pubblica, si usano 2 chiavi distinte per cifrare e decifrare i messaggi, e questa coppia di chiavi gode delle seguenti caratteristiche:

  1. l’una o l’altra chiave possono essere usate per cifrare il testo;
  2. non si può decifrare il testo con la stessa chiave usata per cifrarlo;
  3. le due chiavi sono generate con la stessa procedura e correlate univocamente;
  4. conoscendo una delle due chiavi, non c’è modo di risalire l’altra.

Di fatto in una comunicazione riservata il destinatario deciderà quale della 2 sue chiavi sarà quella pubblica (divulgabile) e quale sarà invece la chiave privata (da tenere segreta) e farà usare al mittente la prima chiave per fargli cifrare il messaggio da ricevere:

 

 

Ma si può anche cifrare un messaggio con la chiave privata. A prima vista questa operazione non serve a nulla perché chiunque può decifrare il testo con la chiave pubblica del mittente visto che è nota… Invece è una funzione importantissima perché, se l’operazione riesce, significa che il messaggio è stato inviato proprio dal titolare della chiave pubblica usata per la decifratura, perché solo lui dispone della chiave privata con la quale il testo è stato cifrato.

Questa è la firma digitale:

 

 

In sostanza il mittente “firma” il messaggio con la propria chiave privata (il messaggio codificato con la chiave privata rappresenta la firma digitale) ed il destinatario verifica tale firma con la chiave pubblica del mittente.

Per creare una coppia di chiavi che soddisfi le 4 condizioni viste sopra, si usa solitamente l’algoritmo RSA (inventato nel 1977 da Ronald Rivest, Adi Shamir e Leonard Adleman) che si basa sulla fattorizzazione di numeri primi molto grandi. Nel sistema Bitcoin si usa invece l’algoritmo ECDSA-512 (Elliptic Curve Digital Signature Algorithm), un moltiplicatore su curva ellittica a 512 bit che offre gli stessi livelli di sicurezza di RSA, ma utilizza minor spazio e chiavi più brevi. Questi 2 algoritmi sono interessantissimi ma non sono certo facili e quindi non vado oltre. Per chi volesse approfondire, anche on-line, c’è moltissimo materiale disponibile.


Nel paragrafo successivo vedremo come nel Sistema Bitcoin vengano costruite le chiavi private necessarie per firmare le transazioni:

 

                        

Condividi sui Social