Timing Attack ad RSA
|
RSA è un algoritmo crittografico a chiave pubblica, oggi
ampliamente usato, per trasferire informazioni elettroniche in modo sicuro.
L’algoritmo RSA è stato inventato dal team di Rivest, Shamir e Adleman nel
1978.
RSA è un cifrario a chiave pubblica che permette di
cifrare un messaggio attraverso un procedimento che sfrutta le proprietà dei
numeri primi. RSA usa un esponente pubblico e
per cifrare ed un esponente privato d
per decifrare. Esso usa un modulo N
che è il prodotto di due grandi numeri primi
p e
q
, ovvero
N = p * q
. Gli esponenti e e d
devono essere scelti in modo da soddisfare la condizione: ed =1 mod (p-1)(q-1) Allora, la coppia di chiavi RSA ha come chiave pubblica la
coppia
(N,e) e come chiave privata la coppia (N,d).
Così prendiamo la chiave pubblica (N=33,e=3) e la corrispondente chiave privata
d=7. Scartiamo il fattore originale
p,q. Continuando con il nostro esempio, supponiamo di voler
spedire un messaggio M=19. La codifica genera un messaggio codificato C=Me
mod N=193 mod 33 = 28. Il mittente spedirà il messaggio
cifrato C=28. Per decifrare il messaggio C, il destinatario usa la chiave privata
d
e calcola M=Cd
mod N=287 mod 33 = 19, che corrisponde al messaggio
originale. Un altro uso dell’algoritmo RSA è la generazione di una firma digitale il cui scopo è quello di verificare la sorgente del messaggio. Durante la firma si usa la chiave privata d e si esegue l’operazione matematica F=Md mod N per creare la firma. Il mittente invia al destinatario messaggio e firma, così il ricevente, per verificare la firma, ovvero che quel messaggio è stato spedito effettivamente dal mittente, usa la chiave pubblica e del mittente ed esegue l’operazione Me mod N, la cui firma va confrontata con quella ricevuta per verificare la validità del messaggio.
|