Introduzione all’algoritmo RSA

Si è visto nell’ articolo precedente che il software di criptazione e l’algoritmo sono due cose differenti. Osserviamo ora più da vicino il funzionamento delll’algoritmo RSA che è stato sviluppato da tre matematici del MIT Rivest, Shamir e Adleman. Le loro homepage si trovano rispettivamente ai seguenti indirizzi:

Funzionamento

L’algoritmo RSA genera in modo casuale un numero primo molto elevato (la chiave pubblica), poi utilizzando quest’ultima utilizzando funzioni matematiche complesse ricava un altro numero primo molto elevato che è la chiave privata. Queste chiavi sono impiegati dagli utenti per crittografare i documenti. Rivest, Shamir e Adleman hanno definito delle proprietà di base dell’algoritmo RSA .

  1. La decifrazione del messaggio crittografato ricrea il messaggio originale, ciò si può esprimere con l’equazione D(C(M))=M, dove D è l’azione di decrittografia, C quella di crittografia ed M il contenuto del messaggio.
  2. C e D sono relativamente facili da calcolare
  3. La disponibilità di C non offre alcun modo agevole per calcolare D. Pertanto solo chi è in possesso del valore di D può de crittografare un messaggio crittografato con C.
  4. Cifrando un messaggio M e poi decifrandolo si ottiene M cioè vale C(D(M))=M

I matematici che hanno realizzato tale algoritmo affermano che: se chi trasmette i dati ha utilizzato una procedura che soddisfa la proprietà 3, tutti gli altri che cercheranno di decifrare il messaggio dovranno provare tutte le possibili chiavi fino a trovare la chiave che soddisfa la C (M)= M .

Conseguenze

Questo calcolo è relativamente semplice, per un matematico, quando i numeri utilizzati per la crittografia sono costituiti da numeri con 10 0 20 cifre. Però gli schemi di crittografia RSA utilizzano numeri a 512 bit sia per C (chiave pubblica) sia per D(chiave privata). Cioè numeri che in rappresentazione decimale occupano 154 cifre. Entrambi i numeri sono numeri primi molto estesi. Per elaborare questi numeri è richiesto un tempo di calcolo molto elevato, infatti nessuno è in grado di violare una chiave a 512 bit utilizzando l’attacco “forza bruta”, per quanto non si possa mai dire. Questa funzione che soddisfa le proprietà precedenti si chiama a “porta segreta monodirezionale”, perché è facile calcolare la funzione in una direzione, ma non altrettanto nella direzione opposta.