Cos'è rsa?

RSA (Rivest–Shamir–Adleman)

RSA è un algoritmo%20di%20crittografia%20a%20chiave%20pubblica ampiamente utilizzato per la trasmissione sicura dei dati. È uno dei più antichi e ancora molto diffusi algoritmi di crittografia a chiave pubblica. RSA è utilizzato in applicazioni come la crittografia e la firma digitale.

Come funziona:

RSA si basa sulla difficoltà pratica della fattorizzazione%20di%20grandi%20numeri%20interi, il "problema della fattorizzazione". La chiave%20pubblica viene resa nota a tutti e viene utilizzata per crittografare i messaggi. Il messaggio%20crittografato può essere decrittografato solo con la chiave%20privata.

Generazione delle Chiavi:

  1. Scelta dei Primi: Vengono scelti due numeri primi grandi e distinti, p e q.
  2. Calcolo di n: Si calcola n = p * q*. Questo numero è chiamato modulo.
  3. Calcolo della funzione totiente di Eulero: Si calcola φ(n) = (p - 1) * (q - 1).
  4. Scelta di e: Si sceglie un intero e tale che 1 < e < φ(n) e che e sia coprimo con φ(n) (cioè, il massimo comun divisore di e e φ(n) sia 1). e è l'esponente pubblico. Un valore comune per e è 65537 (2<sup>16</sup> + 1).
  5. Calcolo di d: Si calcola d, l'inverso moltiplicativo modulare di e modulo φ(n). In altre parole, d è l'unico intero che soddisfa l'equazione d * e ≡ 1 (mod φ(n)). d è l'esponente privato.

La chiave%20pubblica è (n, e) e la chiave%20privata è (n, d). p e q devono essere mantenuti segreti e non vengono più utilizzati dopo che sono stati usati per generare le chiavi.

Crittografia:

Per crittografare un messaggio M con la chiave pubblica (n, e), si calcola il testo cifrato C come:

C = M<sup>e</sup> mod n

Decrittografia:

Per decrittografare un testo cifrato C con la chiave privata (n, d), si calcola il messaggio originale M come:

M = C<sup>d</sup> mod n

Sicurezza:

La sicurezza di RSA si basa sulla difficoltà di fattorizzare il modulo n. Se un attaccante fosse in grado di fattorizzare n in p e q, potrebbe calcolare φ(n) e quindi ricavare la chiave privata d dalla chiave pubblica e. Pertanto, è essenziale scegliere numeri primi p e q sufficientemente grandi in modo che la fattorizzazione di n sia computazionalmente impraticabile. Attualmente, si raccomanda l'uso di chiavi RSA di almeno 2048 bit per una sicurezza adeguata.

Applicazioni:

  • Crittografia dei dati
  • Firme digitali
  • Scambio di chiavi
  • Protocolli sicuri (ad esempio, SSL/TLS)