4 RSA
RSA (dai nomi dei tre ricercatori che lo proposero, Rivest,
Shamir e Adleman) è probabilmente il più noto algoritmo crittografico
asimmetrico, e può essere utilizzato sia per la cifratura che per
la firma. I passi preliminari sono i seguenti (per alcune
definizioni si veda il paragrafo precedente):
- Bob sceglie due numeri primi molto grandi,
e
.
- Bob calcola
e
(la funzione
detta funzione
fi di Eulero, indica il numero di elementi di
primi rispetto a
).
- Bob sceglie un numero
, tale che
,
primo rispetto a
.
- Bob calcola
(ovvero
trova quel numero
tale che
, per come è
stato scelto
tale numero esiste ed è unico, e si può
calcolare con un algoritmo detto di Euclide).
- Bob rende disponibili i valori
e
, che costituiscono la sua
chiave pubblica, e tiene segreti i valori
,
e
, che costituiscono la sua chiave privata.
A questo punto l'uso di RSA per la cifratura funziona come segue:
- Sia
il testo in chiaro del messaggio che Alice vuole mandare a Bob
cifrandolo. Alice calcola
e lo
manda a Bob.
- Bob riceve
da Alice, e può decifrare il messaggio calcolando
.
RSA può essere utilizzato per la firma nel modo seguente:
- Sia
il testo in chiaro del messaggio che Bob vuole mandare ad Alice
firmandolo. Bob calcola la firma come
e la manda ad Alice.
- Alice riceve
e
da Bob, e verifica che sia
.
Se è così la firma è autentica, altrimenti è falsa.
La sicurezza di RSA si basa sulla congettura dell'intrattabilità
del problema della scomposizione in fattori primi, per cui un
intruso, noti
e
, non può calcolare
perché
non conosce
e
(e quindi
).
©2001 Davide Cerri