Cryptology Academy · Lezione

Firme RSA: firma e verifica

Segua i passaggi matematici per firmare l'hash di un documento con una chiave privata.

Lezione 2 di 413 passaggi

Firme RSA: firma e verifica è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 2 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

Le firme RSA invertono i ruoli delle chiavi: la chiave privata firma e quella pubblica verifica. Questo consente a chiunque di verificare la Sua identità usando la Sua chiave pubblica.

Matematica della firma RSA

Per firmare il messaggio M con la chiave privata (d, n): 1. H = SHA256(M) 2. sig = H^d mod n La firma è un numero con la stessa lunghezza in bit di n.

Matematica della verifica RSA

Per verificare la firma sig con la chiave pubblica (e, n): 1. H' = sig^e mod n 2. H = SHA256(M) 3. Valida se H == H' Chiunque disponga della chiave pubblica può verificare la firma: non serve alcun segreto.

Padding delle firme PKCS#1 v1.5

Le firme RSA grezze sono malleabili. PKCS#1 v1.5 applica il padding all'hash prima della firma: 0x00 0x01 [0xFF padding] 0x00 [DigestInfo] [Hash] La verifica controlla l'esatta struttura del padding.

RSA-PSS: un padding migliore

RSA-PSS (Probabilistic Signature Scheme) usa un salt casuale, rendendo diversa ogni firma anche per lo stesso messaggio. La sicurezza è dimostrabile nel modello dell'oracolo casuale. È preferibile a PKCS#1 v1.5.

Firma RSA in Python (PSS)

from cryptography.hazmat.primitives.asymmetric import padding from cryptography.hazmat.primitives import hashes signature = private_key.sign( message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() )

Verifica RSA in Python

try: public_key.verify( signature, message, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() ) print('Valid!') except InvalidSignature: print('Invalid!')

Lunghezza della firma

Firma RSA-2048: 256 byte. RSA-4096: 512 byte. Firma ECDSA-256: ~71 byte (codifica DER variabile). La firma contiene l'intero risultato dell'elevamento a potenza modulare.

Firme cieche

Una firma cieca consente al firmatario di firmare un messaggio senza vederne il contenuto. Viene usata nel voto elettronico e nel denaro elettronico: la banca firma un token oscurato e l'utente ne rimuove l'offuscamento, ottenendo denaro non tracciabile.

Firma RSA nella catena dei certificati

Let's Encrypt firma il certificato del Suo server con la chiave privata RSA della propria CA intermedia. La chiave pubblica del Suo server si trova nel corpo del certificato. I client TLS verificano automaticamente questa catena.

Trasparenza dei certificati

Certificate Transparency registra tutti i certificati emessi in un albero di Merkle verificabile crittograficamente. I Signed Certificate Timestamps (SCT) dimostrano l'inclusione nel registro prima dell'emissione.

Verifica rapida

Nella verifica di una firma RSA, quale chiave viene usata per verificare la firma?

Riepilogo

Le firme RSA sono sicure se usate con un padding appropriato. Ora confronteremo gli schemi di firma RSA, DSA ed ECDSA.
Gratis per iniziare

Impara Cryptology Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
67
Lezioni
261

Domande Frequenti

La lezione «Firme RSA: firma e verifica» è gratuita?

Sì — il testo completo di «Firme RSA: firma e verifica» è 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 «Firme RSA: firma e verifica»?

Segua i passaggi matematici per firmare l'hash di un documento con una chiave privata. 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 2 di 4.

Quanto tempo richiede la lezione «Firme RSA: firma e verifica»?

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. Che cos'è una firma digitale?
  2. Firme RSA: firma e verifica
  3. Schemi di firma DSA ed ECDSA
  4. Le firme nella pratica: firma del codice ed e-mail
← Torna a Cryptology Academy