Cos’è la crittografia RSA? Guida completa a questo algoritmo di crittografia

Crittografia RSA

La crittografia è stata utilizzata nelle civiltà in vari formati per migliaia di anni. Dagli antichi egizi alla moderna Internet, l’uso della crittografia per crittografare e decrittografare i messaggi è uno strumento fondamentale nella comunicazione.

La crittografia RSA (l’algoritmo RSA per essere esatti) è l’algoritmo di crittografia asimmetrica più diffuso al mondo. Reso possibile da una serie di scoperte crittografiche e matematiche, chiunque utilizzi Internet utilizza la crittografia RSA in una forma o nell’altra.

Crittografia RSA

La maggior parte delle criptovalute utilizza un tipo di crittografia asimmetrica simile a RSA, nota come crittografia a curva ellittica. Sebbene diversi, entrambi si fondano su concetti simili e la comprensione dell’RSA è importante per approfondire la comprensione della crittografia utilizzata nelle reti di criptovaluta.

Sfondo crittografico e crittografia simmetrica vs asimmetrica

Fino agli anni ’70, la crittografia si era basata principalmente sull’uso di chiavi simmetriche. Negli algoritmi a chiave simmetrica, due utenti che desiderano comunicare un messaggio tra loro utilizzano le stesse chiavi crittografiche sia per la crittografia del testo in chiaro che per la decrittografia del testo cifrato. Le chiavi rappresentano un segreto condiviso tra le due parti e possono essere utilizzate come forma di comunicazione privata. Tuttavia, ci sono alcuni problemi inerenti a questo design che portano ad alcuni seri inconvenienti del suo utilizzo.

Ad esempio, entrambe le parti devono conoscere la chiave segreta per crittografare e decrittografare il messaggio. Al di fuori dell’incontro di persona per scambiare queste informazioni, è necessaria una notevole quantità di overhead di comunicazione per ottenere ciò in privato attraverso mezzi non sicuri. Terze parti che guardano questi canali potrebbero essere in grado di ottenere la chiave segreta e quindi il metodo di crittografia viene compromesso. Inoltre, il concetto di crittografia a chiave simmetrica non è scalabile. Se desideri inviare messaggi crittografati a più persone, dovrai memorizzare una chiave segreta per ciascuna di queste linee di comunicazione. Ovviamente, questo diventa rapidamente scomodo e chiaramente non è il modello migliore da utilizzare per le reti di criptovaluta in cui viene scambiato valore.

La soluzione a questo problema è arrivata sotto forma di quella che è nota come crittografia asimmetrica, o più comunemente chiamata crittografia a chiave pubblica. La crittografia asimmetrica utilizza due chiavi, una chiave pubblica e una chiave privata. Nella forma più semplice di questo modello, un utente può pubblicare una chiave pubblica, con la quale chiunque altro può utilizzare per inviare a quella persona un messaggio crittografato e solo la persona che ha pubblicato la chiave pubblica e ha la chiave privata corrispondente può decrittografare e visualizzare questo messaggio. L’utilizzo di una chiave annulla l’uso dell’altra e le chiavi non devono essere scambiate tra le parti che desiderano comunicare.

Il modello di crittografia asimmetrica è stato reso possibile da 2 brillanti principi che sono venuti come risultato di una svolta del matematico britannico James Ellis nel 1970. Ellis ha descritto un’idea per cui crittografia e decrittografia sono operazioni inverse l’una dell’altra sulla base di 2 chiavi diverse.

James Ellis

James Ellis, immagine da Il telegrafo.

Il concetto è generalmente rappresentato da un lucchetto e una chiave, con il lucchetto che rappresenta la chiave pubblica e la chiave che rappresenta la chiave privata. Per fare un uso pratico di questa teoria, si sono evoluti due principi.

La funzione botola

Una funzione trapdoor è un concetto molto importante nella crittografia in cui è banale passare da uno stato a un altro stato, ma calcolare nella direzione opposta tornando allo stato originale diventa impossibile senza informazioni speciali, noto come “trapdoor”.

Si chiama la funzione trapdoor più conosciuta oggi, che è la base per la crittografia RSA Fattorizzazione in numeri primi. In sostanza, la scomposizione in fattori primi (nota anche come fattorizzazione di interi) è il concetto nella teoria dei numeri secondo cui gli interi composti possono essere scomposti in numeri interi più piccoli. Tutti i numeri composti (numeri non primi) che sono scomposti nella loro base più elementare sono composti da numeri primi. Questo processo è noto come scomposizione in fattori primi e ha gravi implicazioni se applicato alla crittografia.

decomposizione primaria

Fattorizzazione primaria, immagine utilizzata da Wikipedia

Essenzialmente, la scomposizione in fattori primi di numeri primi estremamente grandi diventa impossibile da calcolare a causa dell’enorme quantità di tentativi ed errori necessari per scomporre con successo il numero nelle sue componenti più elementari. Attualmente, non esiste un algoritmo di fattorizzazione efficiente per eseguire ciò.

L’RSA e il modo in cui utilizza la fattorizzazione primi sono descritti in una sezione successiva, ma prima dobbiamo capire lo scambio di chiavi Diffie-Hellman.

Lo scambio di chiavi Diffie-Hellman

Lo scambio di chiavi Diffie-Hellman è uno dei primi protocolli di crittografia a chiave pubblica e consente fondamentalmente lo scambio di chiavi crittografiche su un supporto pubblico, in modo sicuro. Per semplicità, il tentativo di concettualizzare lo scambio di chiavi Diffie-Hellman e la sezione seguente su come funziona l’algoritmo RSA è molto più banale con concetti astratti rispetto alla matematica pura, quindi applicheremo la matematica solo quando necessario.

L’esempio più comune utilizzato per concettualizzare lo scambio di chiavi Diffie-Hellman è noto come Secret Color Exchange.

Scambio di chiavi Diffie-Helman

Diffie-Helman Key Exchange, immagine utilizzata da Wikipedia

L’immagine sopra rappresenta una linea di comunicazione tra Alice e Bob su un canale pubblico in cui Eve può ascoltare tutto ciò che viene comunicato pubblicamente tra Alice e Bob. Quindi, come possono Alice e Bob comunicare un messaggio privato utilizzando la crittografia asimmetrica senza scambiare esplicitamente tali informazioni sul mezzo pubblico?

Si scambiano informazioni segrete tra loro senza condividerle effettivamente. Il processo funziona come segue:

Passo 1

  • Alice e Bob concordano sul fatto che il giallo è la vernice comune da utilizzare. Queste informazioni vengono trasmesse sul canale pubblico in modo che anche Eve lo sappia.
  • Il giallo rappresenta la chiave pubblica.
  • Alice decide segretamente che userà anche il blu insieme a giallo e Bob decide segretamente che userà il rosso con il giallo.
  • Il blu usato da Alice e il rosso usato da Bob rappresentano le loro chiavi segrete.

Passo 2

  • Successivamente, sia Alice che Bob mescolano i loro colori segreti con il giallo per creare un colore composito.
  • Il mix di Alice crea il verde e il mix di Bob crea l’arancione.
  • Ora sia Alice che Bob si scambiano i loro colori compositi.
  • Anche Eva riceve questi colori ma deve affrontare un problema, questi colori compositi rappresentano una funzione botola.
  • È facile combinare due colori per creare un terzo colore, ma non è possibile invertirlo. È molto difficile determinare quali colori sono stati utilizzati per creare il terzo colore avendo solo il terzo colore e il giallo originale.

Passaggio 3

  • Alice e Bob poi mescolano i loro colori segreti con i colori compositi ricevuti, il che si traduce nel seguente.
  • Alice mescola Blue con il composito Orange di Bob.
  • Bob mescola il rosso con il verde composito di Alice.
  • Entrambe le miscele danno come risultato il marrone.

Questo è il segreto dello scambio di chiavi Diffie-Hellman. Anche se sia Alice che Bob sono finiti con Brown, in realtà non si sono mai scambiati quel colore, ed Eve viene lasciata senza le informazioni necessarie sui colori segreti per poter calcolare il messaggio segreto (Brown).

L’esempio sopra è una visualizzazione molto semplice di come funziona lo scambio. Con la matematica applicata, è possibile ottenere la sicurezza e l’integrità dei messaggi attraverso la crittografia RSA utilizzando la fattorizzazione in fattori primi come botola.

Come funziona l’algoritmo RSA?

L’algoritmo RSA funziona utilizzando la botola di fattorizzazione primaria e lo scambio di chiavi Diffie-Hellman per ottenere la crittografia asimmetrica. Fondamentalmente, la crittografia RSA si basa sulla difficoltà della scomposizione in fattori primi come metodo di sicurezza. Utilizzando un esempio molto semplificato con una matematica limitata descritta, l’algoritmo RSA contiene 4 passaggi.

  1. Generazione delle chiavi: durante questa fase, un utente può utilizzare un generatore di numeri casuali o semplicemente scegliere 2 numeri primi molto grandi (chiamati peq). Questi numeri devono essere tenuti segreti. Calcola n = pq dove “n” è il modulo sia per la chiave pubblica che per quella privata e la sua lunghezza è nota come lunghezza della chiave. Rendi “n” pubblico. Per chiavi di dimensioni uguali o maggiori di 1024 bit, non esiste un metodo efficiente per risolvere questo algoritmo (fattorizzando il numero molto grande “n”) in modo efficiente. Anche il più grande supercomputer del mondo impiegherebbe migliaia di anni per risolverlo. Questo è noto come il problema RSA e, se risolto, comprometterebbe tutti i sistemi crittografici basati su RSA.
  2. Distribuzione delle chiavi: Bob desidera inviare ad Alice informazioni segrete, quindi si verificano i seguenti passaggi.
  1. Bob deve conoscere la chiave pubblica di Alice per crittografare il messaggio.
  2. Alice deve conoscere la sua chiave privata per decrittografare il messaggio.
  3. Affinché Bob possa inviare il suo messaggio crittografato, Alice invia la sua chiave pubblica a Bob.
  4. Alice non distribuisce mai la sua chiave privata.
  • Crittografia: dopo che Bob ha ottenuto la chiave pubblica di Alice, può inviare un messaggio (M) ad Alice. In primo luogo, trasforma (M) (a questo punto un messaggio di testo in chiaro) in un numero intero (m) utilizzando uno schema di riempimento concordato. Quindi calcola il testo cifrato utilizzando la chiave pubblica di Alice e trasmette (c) ad Alice.
  • Decrittografia: Alice può recuperare il messaggio (m) dal testo cifrato (c) utilizzando la sua chiave privata. Può quindi recuperare il messaggio originale (M) invertendo lo schema di riempimento da (m).
  • È possibile trovare una spiegazione più approfondita delle operazioni matematiche utilizzate in RSA Qui, ma è fuori dallo scopo di questo articolo.

    Inoltre, la crittografia RSA consente la firma digitale dei messaggi, che è fondamentale per le criptovalute ed è un componente chiave del modello di transazione UTXO di Bitcoin. Alice può firmare digitalmente un messaggio a Bob per verificare di averlo inviato (convalidando che la sua chiave privata è stata utilizzata) producendo un valore hash del messaggio e allegandolo al messaggio. Questo valore può essere verificato da Bob che utilizza lo stesso algoritmo hash insieme alla chiave pubblica di Alice e confronta il valore hash risultante con il valore hash effettivo del messaggio.

    Conclusione

    La crittografia RSA è il metodo di crittografia asimmetrica più utilizzato al mondo grazie alla sua capacità di fornire un elevato livello di crittografia senza che esista ancora un algoritmo noto per essere in grado di risolverlo. Sulla base di alcune brillanti scoperte nel campo della crittografia e della matematica, tra cui lo scambio di chiavi Diffie-Hellman e la funzione trapdoor, la crittografia RSA è diventata fondamentale per proteggere la comunicazione in tutto il mondo.

    Mike Owergreen Administrator
    Sorry! The Author has not filled his profile.
    follow me
    Like this post? Please share to your friends:
    map