RSA (Rivest, Shamir, Adleman, 1977; pubblicato nel 1978) basa la propria sicurezza su due fatti:

  • È facile moltiplicare due primi grandi e ottenere un numero nn;
  • È difficilissimo (con i computer attuali, impraticabile per primi di 300300 cifre) fattorizzare nn ritrovando pp e qq.

Schema operativo.

  1. Alice sceglie due primi p,qp,q grandi e calcola n=pqn=pq e φ(n)=(p1)(q1)\varphi(n) = (p-1)(q-1).
  2. Sceglie ee coprimo con φ(n)\varphi(n) (chiave pubblica di codifica).
  3. Calcola dd tale che ed1(modφ(n))ed\equiv 1\pmod{\varphi(n)} (chiave privata di decodifica). dd è l’inverso modulare di ee.
  4. Pubblica (n,e)(n,e). Tiene segreti dd, pp, qq.
  5. Bob, per inviare il messaggio m{0,,n1}m\in\{0,\ldots,n-1\}, calcola c=memodnc = m^e\bmod n e invia cc.
  6. Alice decodifica: m=cdmodnm = c^d\bmod n, grazie a Eulero cdmedm1+kφ(n)m1m(modn)c^d \equiv m^{ed} \equiv m^{1+k\varphi(n)} \equiv m\cdot 1 \equiv m\pmod n.

Osservazione — Perché funziona in pratica

Tutte le operazioni di codifica/decodifica si fanno in tempo polinomiale (O(log3n)O(\log^3 n) con esponenziazione veloce). L’unico passo che richiederebbe tempo esponenziale è fattorizzare nn: con primi p,qp,q di 10241024 bit ciascuno (300\approx 300 cifre decimali) nessun calcolatore conosciuto può farlo in tempi ragionevoli. La sicurezza di RSA poggia su questa asimmetria. Lo scenario cambierà se e quando il calcolo quantistico renderà praticabile l’algoritmo di Shor: è una delle ragioni dello sviluppo della crittografia post-quantistica.

Collegamenti

Argomenti: Distribuzioni probabilita
Concetti: Aritmetica modulare · Crittografia rsa · Funzione di eulero
Competenze: Modellizzare
Persone: Adleman · Rivest · Shamir