Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Crittografia a Chiave Pubblica: Principi, Applicazioni e Algoritmo RSA - Prof. Armando, Appunti di Sicurezza Dei Sistemi Informativi

In dettaglio la crittografia a chiave pubblica, partendo dalle motivazioni storiche e dai limiti della crittografia simmetrica. Vengono illustrati i principi di funzionamento, le applicazioni per la segretezza e l'autenticazione, e i requisiti di un sistema a chiave pubblica sicuro. Un focus particolare è dedicato all'algoritmo rsa, con una spiegazione approfondita del meccanismo di cifratura e decifratura, la generazione delle chiavi e la dimostrazione della sua correttezza basata sul teorema di eulero. Infine, vengono analizzati i protocolli per la distribuzione delle chiavi e l'algoritmo di diffie-hellman, evidenziando le vulnerabilità e le contromisure. Una panoramica completa e dettagliata dei concetti fondamentali della crittografia a chiave pubblica, rendendolo una risorsa preziosa per lo studio e l'approfondimento della materia.

Tipologia: Appunti

2025/2026

In vendita dal 23/10/2025

tezcat96
tezcat96 🇮🇹

9 documenti

1 / 6

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Crittografia a chiave pubblica
Motivazioni e Contesto Storico
La crittografia a chiave pubblica, la cui concezione è formalmente datata a maggio
1975, emerge dalla necessità di superare due limiti intrinseci della crittografia
convenzionale (simmetrica):
1. Il Problema della Distribuzione delle Chiavi (Key Distribution Problem):
Nei sistemi simmetrici, mittente e destinatario devono condividere la medesima
chiave segreta. La distribuzione sicura di tale chiave a tutti i partecipanti di una
rete di comunicazione è un'operazione complessa e vulnerabile, specialmente in
contesti su larga scala.
2. Il Problema delle Firme Digitali (Problem of Signatures): Vi era la
necessità di un meccanismo crittografico che potesse replicare la funzione di
una firma autografa, garantendo quindi l'autenticità e l'integrità di un
documento digitale.
La scoperta rivoluzionaria fu che una singola architettura concettuale poteva risolvere
entrambi i problemi simultaneamente.
Principio di Funzionamento
A differenza della crittografia simmetrica, che impiega una singola chiave condivisa
per la cifratura e la decifratura, la crittografia a chiave pubblica si basa sull'uso di una
coppia di chiavi matematicamente correlate:
Chiave Pubblica (
PU b
): Questa chiave può essere distribuita liberamente
senza compromettere la sicurezza del sistema. Viene utilizzata per cifrare i
messaggi o per verificare una firma digitale. Immagina la chiave pubblica come
un lucchetto aperto d’ora in avanti, ogni volta che cifriamo un messaggio con la
chiave pubblica è come se chiudessimo il lucchetto.
Chiave Privata (
PR b
): Questa chiave deve essere mantenuta segreta dal suo
proprietario. È impiegata per decifrare i messaggi ricevuti o per apporre una
firma digitale. Immagina la chiave privata come l’unica chiave che apre il
lucchetto.
Il fondamento di questo sistema risiede nelle funzioni unidirezionali a trappola
(trap-door one-way functions). Una funzione è:
Unidirezionale (one-way): Facile da calcolare in una direzione (es.
y
=
f
(
x
),
ma computazionalmente intrattabile da invertire (calcolare x conoscendo y).
A trappola (trapdoor): L'inversione della funzione diventa
computazionalmente fattibile solo se si è a conoscenza di un'informazione
segreta, la "trappola", che nel contesto crittografico corrisponde alla chiave
privata.
La sicurezza si basa sull'impossibilità pratica di derivare la chiave privata dalla
conoscenza di quella pubblica.
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Crittografia a Chiave Pubblica: Principi, Applicazioni e Algoritmo RSA - Prof. Armando e più Appunti in PDF di Sicurezza Dei Sistemi Informativi solo su Docsity!

Crittografia a chiave pubblica

Motivazioni e Contesto Storico La crittografia a chiave pubblica, la cui concezione è formalmente datata a maggio 1975, emerge dalla necessità di superare due limiti intrinseci della crittografia convenzionale (simmetrica):

  1. Il Problema della Distribuzione delle Chiavi (Key Distribution Problem): Nei sistemi simmetrici, mittente e destinatario devono condividere la medesima chiave segreta. La distribuzione sicura di tale chiave a tutti i partecipanti di una rete di comunicazione è un'operazione complessa e vulnerabile, specialmente in contesti su larga scala.
  2. Il Problema delle Firme Digitali (Problem of Signatures): Vi era la necessità di un meccanismo crittografico che potesse replicare la funzione di una firma autografa, garantendo quindi l'autenticità e l'integrità di un documento digitale. La scoperta rivoluzionaria fu che una singola architettura concettuale poteva risolvere entrambi i problemi simultaneamente. Principio di Funzionamento A differenza della crittografia simmetrica, che impiega una singola chiave condivisa per la cifratura e la decifratura, la crittografia a chiave pubblica si basa sull'uso di una coppia di chiavi matematicamente correlate:  Chiave Pubblica ( PU (^) b ): Questa chiave può essere distribuita liberamente senza compromettere la sicurezza del sistema. Viene utilizzata per cifrare i messaggi o per verificare una firma digitale. Immagina la chiave pubblica come un lucchetto aperto d’ora in avanti, ogni volta che cifriamo un messaggio con la chiave pubblica è come se chiudessimo il lucchetto.

 Chiave Privata ( PR b ): Questa chiave deve essere mantenuta segreta dal suo

proprietario. È impiegata per decifrare i messaggi ricevuti o per apporre una firma digitale. Immagina la chiave privata come l’unica chiave che apre il lucchetto. Il fondamento di questo sistema risiede nelle funzioni unidirezionali a trappola (trap-door one-way functions). Una funzione è:

 Unidirezionale (one-way): Facile da calcolare in una direzione (es. y = f ( x ),

ma computazionalmente intrattabile da invertire (calcolare x conoscendo y).  A trappola (trapdoor): L'inversione della funzione diventa computazionalmente fattibile solo se si è a conoscenza di un'informazione segreta, la "trappola", che nel contesto crittografico corrisponde alla chiave privata. La sicurezza si basa sull'impossibilità pratica di derivare la chiave privata dalla conoscenza di quella pubblica.

Applicazioni: Segretezza e Autenticazione La crittografia asimmetrica può essere impiegata per diversi servizi di sicurezza:  Segretezza (Confidentiality): Per inviare un messaggio confidenziale a un destinatario B, il mittente A cifra il messaggio utilizzando la chiave pubblica di

B (^ PU^ b ). Solo B, in possesso della corrispondente chiave privata (^ PR^ b ), sarà

in grado di decifrare il messaggio. Un crittanalista, pur intercettando il messaggio cifrato (Y) e conoscendo la chiave pubblica, non potrà risalire al messaggio in chiaro (X).  Autenticazione (Authentication): Per "firmare" digitalmente un messaggio, il

mittente A lo cifra utilizzando la propria chiave privata ( PR a ). Chiunque riceva

il messaggio può verificarne l'autenticità decifrandolo con la chiave pubblica

di A (^ PU^ a ). Se la decifratura produce un risultato intelligibile, si ha la garanzia

che il messaggio è stato creato dal legittimo possessore della chiave privata

PR a.

Segretezza e Autenticazione Combinate: Per ottenere entrambi i servizi, si esegue una doppia cifratura. Il mittente A prima cifra il messaggio con la propria

chiave privata ( PR a ) per firmarlo, e successivamente cifra il risultato con la

chiave pubblica del destinatario B ( PU b ) per garantirne la segretezza. Il

destinatario B eseguirà le operazioni inverse: prima decifrerà con la propria

chiave privata ( PR b ) per rimuovere il livello di confidenzialità e poi verificherà

la firma utilizzando la chiave pubblica di A ( PU a ).

Requisiti di un Sistema a Chiave Pubblica Un sistema crittografico a chiave pubblica, per essere considerato sicuro ed efficace, deve soddisfare i seguenti requisiti:

  1. Deve essere computazionalmente semplice per un'entità B generare la propria

coppia di chiavi (pubblica PU b e privata PR b ).

  1. Deve essere computazionalmente semplice per un mittente A, conoscendo la chiave pubblica di B e il messaggio M, generare il testo cifrato

C = E ( PU b , M ).

  1. Deve essere computazionalmente semplice per il destinatario B decifrare il testo

cifrato C utilizzando la propria chiave privata^ PR^ b per recuperare M:

M = D ( PR b ,C ).

  1. Deve essere computazionalmente infattibile per un avversario determinare la

chiave privata^ PR^ b conoscendo la chiave pubblica^ PU^ b.

a

ϕ ( n )

≡ 1 ( mod n )

Questo teorema costituisce il pilastro matematico su cui si fonda la correttezza dell'algoritmo RSA, garantendo che l'operazione di decifratura inverta correttamente quella di cifratura. L'Algoritmo RSA L'algoritmo RSA, sviluppato da Rivest, Shamir e Adleman nel 1978, è l'algoritmo a chiave pubblica più diffuso e si basa sulla difficoltà computazionale della fattorizzazione di numeri grandi. Meccanismo di Cifratura e Decifratura Dato un messaggio M rappresentato come un intero tale che M < n, le operazioni di cifratura e decifratura sono definite come segue:

 Cifratura: C = M e^ ( mod n ).

 Decifratura: M = C

d

( mod n ).

La coppia (e, n) costituisce la chiave pubblica , mentre la coppia (d, n) è la chiave privata. Generazione delle Chiavi Il processo per generare una coppia di chiavi RSA si articola nei seguenti passaggi:

  1. Scegliere due numeri primi grandi e distinti, p e q.
  2. Calcolare il modulo n e il valore della funzione totiente ϕ (n):

o n = p ∗ q.

o ϕ ( n )=( p − 1 )( q − 1 ).

  1. Scegliere l'esponente pubblico e :deve essere un intero tale che 1 < e < ϕ(n) e MCD(e, ϕ (n))=1 (cioè, e e ϕ(n) devono essere coprimi).
  2. Calcolare l'esponente privato d :l'inverso moltiplicativo di e modulo ϕ (n).

Deve quindi soddisfare la relazione e ∗ d ≡ 1 ( mod ϕ ( n )).

  1. Pubblicare e conservare le chiavi : La chiave pubblica è la coppia (e, n), mentre la chiave privata è (d, n). I numeri primi originali p e q devono essere scartati o custoditi in modo estremamente sicuro. Correttezza dell'Algoritmo La correttezza di RSA, ovvero la garanzia che D (^) ( PR ,E ( PU , M ) (^) )= M , discende

direttamente dal Teorema di Eulero.Poiché e ⋅ d ≡ 1 ( modϕ ( n )) , esiste un intero k

tale che e ⋅ d = k ⋅ ϕ ( n )+ 1 .L'operazione di decifratura applicata al testo cifrato C

diventa: C d

( mod n )=( M

E

d

( mod n )= M

ed

( mod n )= M

kϕ ( n ) + 1

( mod n )

Utilizzando le proprietà dell'aritmetica modulare e il Teorema di Eulero ( M ϕ ( p ) ≡ 1 ( mod p ) )si dimostra che il risultato è M, confermando che la decifratura restituisce il messaggio originale.

Sicurezza e Debolezze di RSA

Sicurezza: La robustezza di RSA si fonda sul fatto che per calcolare la chiave privata d partendo dalla chiave pubblica (e, n), un avversario deve prima

conoscere ϕ (n). Per ottenere ϕ (n), è necessario conoscere i fattori primi p e q

di n. Di conseguenza, violare la sicurezza di RSA è computazionalmente equivalente a fattorizzare il modulo n. Per questo motivo, si utilizzano chiavi di dimensioni elevate (es. 1024 bit o superiori).  Malleabilità: L'algoritmo RSA nella sua forma pura ("textbook RSA") è malleabile. Ciò significa che un avversario può manipolare un testo cifrato C per ottenere un nuovo testo cifrato C' che, una volta decifrato, produce un messaggio M' correlato matematicamente al messaggio originale M. Per mitigare questa vulnerabilità, nella pratica si utilizzano schemi di padding (riempimento), come OAEP o PKCS#1, che introducono elementi randomici nel messaggio prima della cifratura. Distribuzione di Chiavi con RSA Un protocollo per la distribuzione di una chiave segreta k tramite RSA può essere così strutturato:

  1. Alice sceglie una chiave di sessione casuale k.

2. Alice cifra k utilizzando la chiave pubblica di Bob, ottenendo C 1 = k

e

( mod n ).

  1. Alice invia a Bob la coppia (c 1 ,c 2 ) dove c 2 è il messaggio m cifrato con un

algoritmo simmetrico e la chiave k =( c 2 = E k ( m ).

  1. Bob riceve la coppia, usa la sua chiave privata per decifrare c 1 e recuperare

k ( k = c

d

( mod n ) ) e, con questa, decifra c2 per ottenere m.

Una debolezza di questo schema è l'assenza di Perfect Forward Secrecy (PFS). Se la chiave privata a lungo termine di Bob venisse compromessa, un avversario che avesse registrato il traffico passato potrebbe decifrare tutte le chiavi di sessione k e, di conseguenza, tutte le comunicazioni precedenti. Scambio di chiavi Diffie-Hellman (DH) L’algoritmo di Diffie-Hellman permette a due parti di stabilire una chiave segreta condivisa su un canale di comunicazione insicuro, senza che la chiave stessa venga mai trasmessa esplicitamente.  Principio Matematico: La sicurezza di DH si basa sulla difficoltà del problema del logaritmo discreto. Dati un numero primo q, una radice primitiva α

modulo q ed un valore Y A = α

X (^) A

( mod q ) , computazionalmente difficile trovare

l’esponente segreto XA.  Protocollo: