0Pricing
Cryptology Academy · Lezione

Matematica della cifratura e decifratura RSA

Applichi l'esponenziazione modulare per cifrare e decifrare un messaggio.

Matematica della cifratura e decifratura RSA è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

Benvenuto

Ora che le chiavi RSA sono state generate, possiamo applicarle. La cifratura e la decifratura sono entrambe elevamenti a potenza modulari: semplici da calcolare, ma impraticabili da invertire senza la chiave privata.

Cifratura RSA da manuale

Cifri il messaggio M (come intero) con la chiave pubblica (e, n): C = M^e mod n Esempio: M=42, e=17, n=3233 C = 42^17 mod 3233 Python: C = pow(42, 17, 3233) = 2557

Decifratura RSA da manuale

Decifri il testo cifrato C con la chiave privata (d, n): M = C^d mod n C=2557, d=2753, n=3233 M = 2557^2753 mod 3233 Python: M = pow(2557, 2753, 3233) = 42 ✓

Perché funziona: il teorema di Eulero

C^d mod n = (M^e)^d mod n = M^(ed) mod n. Poiché ed ≡ 1 (mod φ(n)), M^(ed) = M^(1+k×φ(n)) = M × (M^φ(n))^k ≡ M × 1^k = M.

Algoritmo dei quadrati e delle moltiplicazioni

Il calcolo ingenuo di M^e richiederebbe e moltiplicazioni. L'algoritmo dei quadrati e delle moltiplicazioni riduce il numero a O(log e): pow(base, exp, mod) in Python lo utilizza automaticamente.

Limite delle dimensioni del messaggio

RSA da manuale richiede M < n. Con RSA-2048, M può avere al massimo 256 byte. È sufficiente per cifrare una breve chiave AES, ma non per cifrare direttamente file di grandi dimensioni.

Perché RSA da manuale non è sicuro

Problemi dell'RSA grezzo: 1. Lo stesso M produce sempre lo stesso C (deterministico) 2. Con un M piccolo e un e piccolo: C = M^e alla lettera (nessuna riduzione modulare) 3. Moltiplicativo: Enc(M1)×Enc(M2) = Enc(M1×M2) Gli schemi di padding risolvono tutti questi problemi.

Cifratura RSA in Python (OAEP)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes ciphertext = public_key.encrypt( b'Secret message', padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) )

Decifratura RSA in Python

plaintext = private_key.decrypt( ciphertext, padding.OAEP( mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None ) ) print(plaintext) # b'Secret message'

Schema ibrido RSA + AES

# Real-world pattern: aes_key = os.urandom(32) # Random 256-bit AES key encrypted_key = rsa_encrypt(aes_key, recipient_pub) # RSA ciphertext = aes_gcm_encrypt(aes_key, plaintext) # AES # Send: encrypted_key + ciphertext

Prestazioni di RSA

Cifratura RSA-2048 (pubblica): circa 0,1 ms. Decifratura RSA-2048 (privata): circa 1 ms. AES-256-GCM: circa 100 MB/s. La cifratura ibrida combina la velocità dello scambio di chiavi RSA con il throughput dei dati di AES.

Verifica rapida

Usando RSA da manuale con e=3 e n=33, qual è la cifratura di M=5?

Riepilogo

La matematica della cifratura e della decifratura RSA è ormai chiara. Ora vedremo come RSA protegge HTTPS, SSH e la firma del codice nel mondo reale.

Domande Frequenti

La lezione «Matematica della cifratura e decifratura RSA» è gratuita?

Sì — il testo completo di «Matematica della cifratura e decifratura RSA» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Matematica della cifratura e decifratura RSA»?

Applichi l'esponenziazione modulare per cifrare e decifrare un messaggio. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Matematica della cifratura e decifratura RSA»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Concetti di crittografia a chiave pubblica
  2. Generazione delle chiavi RSA passo per passo
  3. Matematica della cifratura e decifratura RSA
  4. Casi d'uso reali di RSA e dimensioni delle chiavi
← Torna a Cryptology Academy