HomeCriptovaluteCosa c'entra l'algoritmo RSA con le crypto?

Cosa c’entra l’algoritmo RSA con le crypto?

L’algoritmo crittografico RSA è un algoritmo importante in ambito crypto. 

Si tratta di un algoritmo di crittografia asimmetrica inventato addirittura nel 1977, e che si utilizza per cifrare o firmare informazioni.

In particolare in ambito crypto è fondamentale perchè consente di firmare le richieste di transazioni, rendendole così legittime. 

L’algoritmo RSA

RSA sono le iniziali dei cognomi dei tre inventori di questo algoritmo, ovvero Ronald Rivest, Adi Shamir e Leonard Adleman.

L’algoritmo RSA è un sistema di crittografia a chiave pubblica. Viene definito “asimmetrico” perchè si basa su un metodo di cifratura che utilizza una coppia di chiavi matematicamente correlate, ma differenti: la chiave privata, e per l’appunto quella pubblica.

La chiave pubblica viene condivisa con gli altri,mentre ovviamente la chiave privata invece è da tenere assolutamente segreta. La chiave pubblica viene utilizzata per cifrare i dati, ma per decifrarli occorre utilizzare quella privata. 

Nella classica crittografia simmetrica invece si usa un’unica chiave per cifrare e decifrare, quindi tale chiave deve essere tenuta segreta e non può essere resa pubblica. Invece la crittografia asimmetrica consente di scambiare in modo sicuro la chiave pubblica con chiunque. 

La sicurezza

Questo metodo risulta essere sicuro perchè si basa sul principio matematico secondo il quale è relativamente semplice moltiplicare due numeri primi molto grandi tra loro, ma è estremamente difficile (e computazionalmente oneroso) scomporre il risultato nei suoi fattori primi originali.

In pratica, l’utente condivide la sua chiave pubblica con chiunque, così che chiunque può utilizzarla per criptare un messaggio ed inviarglielo. Quando riceve il messaggio criptato, l’utente deve usare la sua chiave privata segreta per decifrarlo.


In questo modo solo l’utente che possiede la chiave privata può leggerlo, mentre chiunque altro lo vedrà criptato e non potrà di fatto decifrarlo.  

In realtà, non è del tutto impossibile decifrare il messaggio, perchè se si indovinasse a caso la chiave privata lo si potrebbe decifrare. Ma è talmente difficile trovare la chiave privata che o risulta praticamente impossibile, o richiederebbe uno sforzo immane, assolutamente fuori portata per chiunque. 

Utilizzo

Probabilmente il più diffuso utilizzo dell’algoritmo RSA è per la navigazione sicura online. 

Quando si accede ad un sito web infatti ormai vi si accede con il protocollo HTTPS. in cui la S finale significa “Sicuro”. 

Questo protocollo sicuro cripta i dati che vengono scambiati dal server all’utente, e viceversa, utilizzando i protocolli SSL/TLS. Tali protocolli utilizzano l’algoritmo RSA durante la fase iniziale della connessione, quella nota come handshake, per stabilire un canale di comunicazione sicuro.

In particolare, quando ci si connette ad un sito web via HTTPS (ormai quasi sempre), il server invia il suo certificato SSL/TLS, che contiene la sua chiave pubblica, spesso generata con l’algoritmo RSA. Il proprio browser a sua volta genera una chiave temporanea per la crittografia simmetrica e la cifra utilizzando la chiave pubblica RSA del server.

A quel punto Il browser invia la chiave cifrata al server, che la decifra utilizzando la propria chiave privata RSA. In questo modo ci si assicura che sia il browser che il server possiedano la stessa chiave segreta, con cui verranno cifrati i successivi pacchetti di dati con la crittografia simmetrica, perchè questa è molto più veloce ed efficiente per il trasferimento di grandi quantità di dati.

L’algoritmo RSA si usa anche per le firme digitali. 

Si procede però al contrario, ovvero utilizzando la chiave privata per la firma (ovvero la cifratura) e la chiave pubblica per verifica (la decifratura).

L’utilizzo in ambito crypto

È proprio questo l’utilizzo comune degli algoritmi di cifratura asimmetrica  in ambito crypto. 

Quando si vuole effettuare una transazione on-chain la si deve firmare affinché i nodi la riconoscano come legittima, ovvero proveniente solamente dal proprietario dell’indirizzo da cui partono i fondi. 

Una volta generata la transazione, questa viene processata da una funzione di hash, che crea un’impronta digitale unica della transazione stessa. 


Quando il mittente la invia ai nodi per la conferma, di fatto la firma con la propria chiave privata, in modo che vi sia la prova matematica che è stata richiesta solo dal legittimo proprietario dei fondi. 

I nodi potranno verificare che la firma sia valida utilizzando la chiave pubblica del mittente, che corrisponde all’indirizzo del wallet da cui è partita la transazione. Se la verifica ha successo, la transazione viene accettata e aggiunta a un blocco. 

Oltretutto tutti, e non solo i nodi, possono effettuare questa verifica, proprio perchè la chiave pubblica è nota a tutti, dato che corrisponde all’indirizzo pubblico del mittente della transazione, a sua volta pubblica. 

L’algoritmo ECDSA

A dire il vero, molti protocolli crypto, tra cui Bitcoin ed Ethereum, utilizzano un altro algoritmo di crittografia asimmetrica per firmare le transazioni. 

Si tratta dell’Elliptic Curve Digital Signature Algorithm (ECDSA), il cui funzionamento però è concettualmente lo stesso di RSA. 

ECDSA viene preferito a RSA perchè risulta essere più efficiente e sicuro, dato che utilizza chiavi più piccole, ma con lo stesso livello di sicurezza di RSA. Ad esempio, una chiave ECDSA a 256 bit offre una sicurezza paragonabile a quella di una chiave RSA a 3072 bit. 

In questo modo si riducono la dimensioni dei dati delle transazioni, risparmiando spazio sulla blockchain e riducendo le commissioni.

Inoltre le operazioni di firma e verifica con ECDSA sono computazionalmente più veloci di quelle con RSA.

Marco Cavicchioli
Marco Cavicchioli
"Classe 1975, Marco è stato il primo a fare divulgazione su YouTube in Italia riguardo Bitcoin. Ha fondato ilBitcoin.news ed il gruppo Facebook "Bitcoin Italia (aperto e senza scam)".
RELATED ARTICLES

Stay updated on all the news about cryptocurrencies and the entire world of blockchain.

Featured video

LATEST