Il cifrario RSA
Cifrario RSA: demo con 2021 = 43 x 47
Cifrario RSA: il metodo - RSA è una permutazione

Questa pagina permette di simulare il comportamento del cifrario RSA (si veda la pagina RSA: il metodo per i dettagli); l'utente deve solo inserire due numeri primi distinti $p$ e $q$, e quindi il messaggio chiaro che deve essere un numero minore di $N = pq$. Come esempio di default usiamo l'anno corrente, $2021 = 43 \times 47$ che è appunto il prodotto di due numeri primi.

Secondo consuetudine immaginiamo due persone Alice e Bruno, che devono scambiarsi un messaggio in modo segreto, in questo caso è solo un numero, ma ovviamente ogni testo può essere trasformato in numeri usando un codice, tipicamente il codice ASCII.

Nella tabella a destra si leggono i vari passi necessari per cifrare e nelle ultime due righe il messaggio cifrato e quello decifrato che deve ovviamente risultare uguale al messaggio originale.

NB 1 Per evitare sovraccarichi sono accettati solo numeri primi < 200.

NB 2 Attualmente RSA è considerato sicuro solo per numeri di 1024, meglio 2048 bit (centinaia di cifre decimali!!!). Questa pagina ha solo fini dimostrativi e non può che usare numeri piccoli e leggibili.


Inserimento dati
$p$ (1º numero primo)
$q$ (2º numero primo)
$m$ messaggio chiaro
($m < N$)
Procedura
DescrizioneVariabileFormulaValore
Alice sceglie due numeri primi $p = 43$ e $q = 47$ e li moltiplica pubblicando il risultato$N$
chiave pubblica
$p \times q = 43 \times 47$ $2021$
Alice, conoscendo $p$ e $q$ calcola facilmente la funzione di Eulero $\Phi(N)$ che deve restare segreta.$\Phi(N)$
chiave privata

$\Phi(N) = (p - 1)(q - 1) = \Phi(2021) = 42 \times 46$
$1932$
Alice calcola la seconda chiave $e$, primo numero primo con $\Phi(N)$ e la pubblica.$e$
chiave pubblica
primo numero tale che $MCD(e, \Phi(N)) = 1$$5$
Alice calcola la chiave segreta $d$, che è l´inverso di $e$ modulo $\Phi(N)$ e NON la pubblica.$d$
chiave privata
d tale che $ e \times d = 1 \pmod {\Phi(N)}$$773$
Bruno per inviarle un messaggio $m$ usando le chiavi pubbliche di Alice, $N$ ed $e$, calcola la potenza $c = m^e \pmod N$ ed invia $c$ per un canale pubblico.$c$
cifrato
$c = m^e \pmod N = 1977^5 \pmod {2021} = $$1418$
Alice e solo Alice che conosce la chiave segreta $d$ può ora decifrare il messaggio $m$ semplicemente calcolando la potenza inversa.$m$
decifrato
$m = c^d \pmod N= 1418^{773} \pmod {2021} = $$1977$
Ovviamente se qualcuno riuscisse a scomporre $N$ in $p$ e $q$, o, equivalentemente, a calcolare $\Phi(N)$, potrebbe calcolare l'esponente $d$ e decifrare il messaggio.