Il cifrario RSA - Cifrario RSA: il metodo
Cifrario RSA: demo con 55 = 5 x 11
RSA è una permutazione - Cifrario Elgamal: demo, Algoritmo DH: demo

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 almeno 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 = 5$ e $q = 11$ e li moltiplica pubblicando il risultato$N$
chiave pubblica
$p \times q = 5 \times 11$ $55$
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(55) = 4 \times 10$
$\color{red}{40}$
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$$3$
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 \equiv 1 \pmod {\Phi(N)}$$27$
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 \equiv m^e \pmod N = 7^3 \pmod {55} = $$13$
Alice e solo Alice che conosce la chiave segreta $d$ può ora decifrare il messaggio $m$ semplicemente calcolando la potenza inversa.$m$
decifrato
$m \equiv c^d \pmod N= 13^{27} \pmod {55} = $$7$
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.