Sei sulla pagina 1di 52

Lab ASD

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Laboratorio di Algoritmi e Strutture Dati


Docente: Dott. Francesco Strappaveccia

Osservazioni
Esempio 1
Esempio 2
RSA

francesco.strappaveccia@gmail.com

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt

Universit`
a di Bologna, Sede di Cesena
Sicurezza di RSA

29/05/2012

Implementazione

Lab ASD

Sistemi a Chiave Pubblica


Crittografia Asimmetrica
I

Chiave Crittografica: Uninformazione usata come


parametro in un algoritmo di crittografia, senza tale
chiave lalgoritmo non produce nessun risultato utile e,
secondo il Principrio di Kerckhoff, `e lunica
informazione che deve rimanere segreta.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica


Crittografia Asimmetrica
I

Chiave Crittografica: Uninformazione usata come


parametro in un algoritmo di crittografia, senza tale
chiave lalgoritmo non produce nessun risultato utile e,
secondo il Principrio di Kerckhoff, `e lunica
informazione che deve rimanere segreta.
Crittografia Simmetrica: I sistemi di crittografia
simmetrici sono caratterizzati dalla presenza di
ununica chiave usata per criptare e decriptare il
messaggio( Es. il Cifrario di Cesare),

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica


Crittografia Asimmetrica
I

Chiave Crittografica: Uninformazione usata come


parametro in un algoritmo di crittografia, senza tale
chiave lalgoritmo non produce nessun risultato utile e,
secondo il Principrio di Kerckhoff, `e lunica
informazione che deve rimanere segreta.
Crittografia Simmetrica: I sistemi di crittografia
simmetrici sono caratterizzati dalla presenza di
ununica chiave usata per criptare e decriptare il
messaggio( Es. il Cifrario di Cesare),
Crittografia Asimmetrica: E caratterizzata da una
coppia di chiavi:

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica


Crittografia Asimmetrica
I

Chiave Crittografica: Uninformazione usata come


parametro in un algoritmo di crittografia, senza tale
chiave lalgoritmo non produce nessun risultato utile e,
secondo il Principrio di Kerckhoff, `e lunica
informazione che deve rimanere segreta.
Crittografia Simmetrica: I sistemi di crittografia
simmetrici sono caratterizzati dalla presenza di
ununica chiave usata per criptare e decriptare il
messaggio( Es. il Cifrario di Cesare),
Crittografia Asimmetrica: E caratterizzata da una
coppia di chiavi:
I

Chiave Pubblica: che TUTTI possono vedere ed usare


per criptare messaggi,

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica


Crittografia Asimmetrica
I

Chiave Crittografica: Uninformazione usata come


parametro in un algoritmo di crittografia, senza tale
chiave lalgoritmo non produce nessun risultato utile e,
secondo il Principrio di Kerckhoff, `e lunica
informazione che deve rimanere segreta.
Crittografia Simmetrica: I sistemi di crittografia
simmetrici sono caratterizzati dalla presenza di
ununica chiave usata per criptare e decriptare il
messaggio( Es. il Cifrario di Cesare),
Crittografia Asimmetrica: E caratterizzata da una
coppia di chiavi:
I

Chiave Pubblica: che TUTTI possono vedere ed usare


per criptare messaggi,
Chiave Privata: Nota solo al destinatario, usata per
decriptare i messaggi.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:
I

A deve comprare una merce dal sito X,

Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:

Osservazioni
Esempio 1

A deve comprare una merce dal sito X,

Esempio 2

X passa ad A la sua chiave pubblica (e,n),

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:

Osservazioni
Esempio 1

A deve comprare una merce dal sito X,

Esempio 2

X passa ad A la sua chiave pubblica (e,n),

RSA

A cripta il suo numero di carta di credito con (e,n),

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:

Osservazioni
Esempio 1

A deve comprare una merce dal sito X,

Esempio 2

X passa ad A la sua chiave pubblica (e,n),

RSA

A cripta il suo numero di carta di credito con (e,n),

A invia il numero criptato ad X,

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:

Osservazioni
Esempio 1

A deve comprare una merce dal sito X,

Esempio 2

X passa ad A la sua chiave pubblica (e,n),

RSA

A cripta il suo numero di carta di credito con (e,n),

A invia il numero criptato ad X,

X riceve il messaggio e lo decripta con la sua chiave


privata (d,n),

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:

Osservazioni
Esempio 1

A deve comprare una merce dal sito X,

Esempio 2

X passa ad A la sua chiave pubblica (e,n),

RSA

A cripta il suo numero di carta di credito con (e,n),

A invia il numero criptato ad X,

X riceve il messaggio e lo decripta con la sua chiave


privata (d,n),

il pagamento viene effettuato,

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (2)


Crittografia Asimmetrica

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Esempio 1, e-commerce:

Osservazioni
Esempio 1

A deve comprare una merce dal sito X,

Esempio 2

X passa ad A la sua chiave pubblica (e,n),

RSA

A cripta il suo numero di carta di credito con (e,n),

A invia il numero criptato ad X,

X riceve il messaggio e lo decripta con la sua chiave


privata (d,n),

il pagamento viene effettuato,

A riceve il suo oggetto ed `e felice.

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (3)


Cosa notiamo?

Lezione 10
Sistemi a Chiave
Pubblica

Asimmetrico: perche la chiave utilizzata `e diversa per


chi cripta e chi decripta,

Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (3)


Cosa notiamo?

Lezione 10
Sistemi a Chiave
Pubblica

Asimmetrico: perche la chiave utilizzata `e diversa per


chi cripta e chi decripta,
Pubblico: perche tutti possono mandare messaggi sicuri
ad X, dato che la chiave (e,n) `e di pubblico dominio,

Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (3)


Cosa notiamo?

Lezione 10
Sistemi a Chiave
Pubblica

Asimmetrico: perche la chiave utilizzata `e diversa per


chi cripta e chi decripta,
Pubblico: perche tutti possono mandare messaggi sicuri
ad X, dato che la chiave (e,n) `e di pubblico dominio,
questo tipo di protocollo permette una facile gestione di
comunicazioni sicure molti-ad-uno,

Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (3)


Cosa notiamo?

Lezione 10
Sistemi a Chiave
Pubblica

Asimmetrico: perche la chiave utilizzata `e diversa per


chi cripta e chi decripta,
Pubblico: perche tutti possono mandare messaggi sicuri
ad X, dato che la chiave (e,n) `e di pubblico dominio,

Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA

questo tipo di protocollo permette una facile gestione di


comunicazioni sicure molti-ad-uno,

RSA - Generazione
delle Chiavi

linformazione che rimane segreta alla fine `e solo il


parametro d della chiave privata, il resto, compreso il
funzionamento dellalgoritmo `e completamente
pubblico,

RSA - Decrypt

RSA - Encrypt

Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (3)


Cosa notiamo?

Lezione 10
Sistemi a Chiave
Pubblica

Asimmetrico: perche la chiave utilizzata `e diversa per


chi cripta e chi decripta,
Pubblico: perche tutti possono mandare messaggi sicuri
ad X, dato che la chiave (e,n) `e di pubblico dominio,

Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA

questo tipo di protocollo permette una facile gestione di


comunicazioni sicure molti-ad-uno,

RSA - Generazione
delle Chiavi

linformazione che rimane segreta alla fine `e solo il


parametro d della chiave privata, il resto, compreso il
funzionamento dellalgoritmo `e completamente
pubblico,

RSA - Decrypt

A meno intrusioni nel computer di A, il messaggio


percorre tutto il viaggio fino ad X criptato e non c`e
bisogno di uno scambio sicuro di chiavi

RSA - Encrypt

Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))
A passa a B la sua chiave pubblica (ea , na ) e B fa la
stessa cosa passando ad A (eb , nb ),

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))

A passa a B la sua chiave pubblica (ea , na ) e B fa la


stessa cosa passando ad A (eb , nb ),

A scrive a B raccontandogli della notte brava fatta a


discapito della moglie e cripta il messaggio usando
(eb , nb )

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))

A passa a B la sua chiave pubblica (ea , na ) e B fa la


stessa cosa passando ad A (eb , nb ),

A scrive a B raccontandogli della notte brava fatta a


discapito della moglie e cripta il messaggio usando
(eb , nb )

B riceve il messaggio cifrato e lo decripta con (db , nb ),

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))

A passa a B la sua chiave pubblica (ea , na ) e B fa la


stessa cosa passando ad A (eb , nb ),

A scrive a B raccontandogli della notte brava fatta a


discapito della moglie e cripta il messaggio usando
(eb , nb )

B riceve il messaggio cifrato e lo decripta con (db , nb ),

B se la ride e risponde ad A usando (ea , na ),

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))

A passa a B la sua chiave pubblica (ea , na ) e B fa la


stessa cosa passando ad A (eb , nb ),

A scrive a B raccontandogli della notte brava fatta a


discapito della moglie e cripta il messaggio usando
(eb , nb )

B riceve il messaggio cifrato e lo decripta con (db , nb ),

B se la ride e risponde ad A usando (ea , na ),

A riceve il messaggio cifrato e lo decripta con la sua


chiave privata (da , na ),

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sistemi a Chiave Pubblica (4)


Un altro esempio...
I

A e B vogliono parlare segretamente delle loro


malefatte,
A e B creano le loro coppie chiavi che chiameremo
Ka = ((ea , na ), (da , na )) ed Kb = ((eb , nb ), (db , nb ))

A passa a B la sua chiave pubblica (ea , na ) e B fa la


stessa cosa passando ad A (eb , nb ),

A scrive a B raccontandogli della notte brava fatta a


discapito della moglie e cripta il messaggio usando
(eb , nb )

B riceve il messaggio cifrato e lo decripta con (db , nb ),

B se la ride e risponde ad A usando (ea , na ),

A riceve il messaggio cifrato e lo decripta con la sua


chiave privata (da , na ),

La malefatta `e rimasta segreta.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA
Funzioni One-Way

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1

Data la grande quantit`a di informazioni pubbliche riguardanti


le chiavi ed il protocollo crittografico a chiave pubblica, `e
cruciale identificare una funzione matematica che sia facile
da calcolare ma difficile da invertire, ossia quelle funzioni
chiamate One-Way con Trapdoor. Per facile e difficile
intendiamo dal punto di vista computazionale.
Una cassetta delle lettere, per esempio, pu`
o essere vista
come una funzione one-way. Infatti `e facile inserire una
lettera ma difficile recuperarla. RSA basa la sua sicurezza
proprio su una di queste funzioni.

Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

n `e il nostro modulo o lorologio in cui andiamo a


nascondere il nostro messaggio.

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

n `e il nostro modulo o lorologio in cui andiamo a


nascondere il nostro messaggio.

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.
I Calcolo n = p q.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

n `e il nostro modulo o lorologio in cui andiamo a


nascondere il nostro messaggio.

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.
I Calcolo n = p q.
I Calcolo (n) = (p 1) (q 1), la funzione (x) `
e
anche chiamata la Funzione di Eulero, che `e una
generalizzazione del Piccolo Teorema di Fermat:
ap a mod p ap1 1 mod p a(p) 1 mod p
dove se p e q sono coprimi, allora
(p q) = (p) (q) = (p 1) (q 1).

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

n `e il nostro modulo o lorologio in cui andiamo a


nascondere il nostro messaggio.

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.
I Calcolo n = p q.
I Calcolo (n) = (p 1) (q 1), la funzione (x) `
e
anche chiamata la Funzione di Eulero, che `e una
generalizzazione del Piccolo Teorema di Fermat:
ap a mod p ap1 1 mod p a(p) 1 mod p
dove se p e q sono coprimi, allora
(p q) = (p) (q) = (p 1) (q 1).
I Scelgo e per cui vale MCD(e, (n)) = 1.

n `e il nostro modulo o lorologio in cui andiamo a


nascondere il nostro messaggio.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.
I Calcolo n = p q.
I Calcolo (n) = (p 1) (q 1), la funzione (x) `
e
anche chiamata la Funzione di Eulero, che `e una
generalizzazione del Piccolo Teorema di Fermat:
ap a mod p ap1 1 mod p a(p) 1 mod p
dove se p e q sono coprimi, allora
(p q) = (p) (q) = (p 1) (q 1).
I Scelgo e per cui vale MCD(e, (n)) = 1.
I Calcolo d per cui d e mod (n) = 1 o
alternativamente, d e 1 mod (n).
n `e il nostro modulo o lorologio in cui andiamo a
nascondere il nostro messaggio.

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.
I Calcolo n = p q.
I Calcolo (n) = (p 1) (q 1), la funzione (x) `
e
anche chiamata la Funzione di Eulero, che `e una
generalizzazione del Piccolo Teorema di Fermat:
ap a mod p ap1 1 mod p a(p) 1 mod p
dove se p e q sono coprimi, allora
(p q) = (p) (q) = (p 1) (q 1).
I Scelgo e per cui vale MCD(e, (n)) = 1.
I Calcolo d per cui d e mod (n) = 1 o
alternativamente, d e 1 mod (n).
n `e il nostro modulo o lorologio in cui andiamo a
nascondere il nostro messaggio.
I Chiave Pubblica: (e, n).

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Generazione delle Chiavi


I Passo

La generazione della coppia di chiavi pubblica,(e, n) e


privata (d, n) viene effettuata in questo modo:
I Creo p e q primi.
I Calcolo n = p q.
I Calcolo (n) = (p 1) (q 1), la funzione (x) `
e
anche chiamata la Funzione di Eulero, che `e una
generalizzazione del Piccolo Teorema di Fermat:
ap a mod p ap1 1 mod p a(p) 1 mod p
dove se p e q sono coprimi, allora
(p q) = (p) (q) = (p 1) (q 1).
I Scelgo e per cui vale MCD(e, (n)) = 1.
I Calcolo d per cui d e mod (n) = 1 o
alternativamente, d e 1 mod (n).
n `e il nostro modulo o lorologio in cui andiamo a
nascondere il nostro messaggio.
I Chiave Pubblica: (e, n).
I Chiave Privata: (d, n).

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Encrypt

Lezione 10

II Passo

Sistemi a Chiave
Pubblica
Esempio 1

Data la chiave pubblica (e, n) la fase di encryption del


messaggio m `e effettuata cos`:

Osservazioni
Esempio 1
Esempio 2
RSA

c = m mod n
quindi:
I

Codifichiamo il nostro messaggio di testo in valori


numerici(tipicamente ASCII),

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Encrypt

Lezione 10

II Passo

Sistemi a Chiave
Pubblica
Esempio 1

Data la chiave pubblica (e, n) la fase di encryption del


messaggio m `e effettuata cos`:

Osservazioni
Esempio 1
Esempio 2
RSA

c = m mod n
quindi:
I

Codifichiamo il nostro messaggio di testo in valori


numerici(tipicamente ASCII),
Applichiamo lesponentazione su m.

RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Decrypt

Lezione 10

III Passo

Sistemi a Chiave
Pubblica
Esempio 1

In maniera duale, data la chiave privata (d, n) e dato il


testo cifrato c il passo di decryption `e cos` eseguito:

Osservazioni
Esempio 1
Esempio 2
RSA

m = c mod n

RSA - Generazione
delle Chiavi
RSA - Encrypt

Come per il passo precedente eseguiamo


lesponentazione,

RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

RSA - Decrypt

Lezione 10

III Passo

Sistemi a Chiave
Pubblica
Esempio 1

In maniera duale, data la chiave privata (d, n) e dato il


testo cifrato c il passo di decryption `e cos` eseguito:

Osservazioni
Esempio 1
Esempio 2
RSA

m = c mod n

RSA - Generazione
delle Chiavi
RSA - Encrypt

Come per il passo precedente eseguiamo


lesponentazione,
di seguito, dai valori numerici ottenuti, ricodifichiamo
dallASCII in caratteri alfanumerici.

RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA
E sicuro?

Lezione 10
Sistemi a Chiave
Pubblica

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA
E sicuro?

Lezione 10
Sistemi a Chiave
Pubblica

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1

Comunque, nessuno `e ancora riuscito a violare RSA,

Esempio 2

Osservazioni
Esempio 1

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA
E sicuro?

Lezione 10
Sistemi a Chiave
Pubblica

I
I

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1

Comunque, nessuno `e ancora riuscito a violare RSA,


Lunico modo per risalire a d `e conoscere la
fattorizzazione di n:

Esempio 2

Osservazioni
Esempio 1

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA

Lezione 10

E sicuro?

Sistemi a Chiave
Pubblica

I
I

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1

Comunque, nessuno `e ancora riuscito a violare RSA,


Lunico modo per risalire a d `e conoscere la
fattorizzazione di n:

Esempio 2

Fattorizzo n,

Osservazioni
Esempio 1

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA

Lezione 10

E sicuro?

Sistemi a Chiave
Pubblica

I
I

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1

Comunque, nessuno `e ancora riuscito a violare RSA,


Lunico modo per risalire a d `e conoscere la
fattorizzazione di n:

Esempio 2

I
I

Fattorizzo n,
ottengo p e q,

Osservazioni
Esempio 1

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA

Lezione 10

E sicuro?

Sistemi a Chiave
Pubblica

I
I

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1

Comunque, nessuno `e ancora riuscito a violare RSA,


Lunico modo per risalire a d `e conoscere la
fattorizzazione di n:

Esempio 2

I
I
I

Fattorizzo n,
ottengo p e q,
calcolo (n) e quindi d.

Osservazioni
Esempio 1

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Sicurezza di RSA

Lezione 10

E sicuro?

Sistemi a Chiave
Pubblica

I
I

Non esiste nessun teorema che dimostri la sua


sicurezza,

Esempio 1

Comunque, nessuno `e ancora riuscito a violare RSA,


Lunico modo per risalire a d `e conoscere la
fattorizzazione di n:

Esempio 2

I
I
I

Fattorizzo n,
ottengo p e q,
calcolo (n) e quindi d.

`e per questo motivo che scoprire una funzione per


generare numeri primi, come limplementazione di un
computer quantistico potrebbero scardinare tale
protocollo, mettendo in ginocchio tutti i traffici
telematici!!

Osservazioni
Esempio 1

RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Implementazione
Ricapitolando..
I

Creiamo due numeri primi p e q Test di Primalit`


a,

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Implementazione
Ricapitolando..
I
I

Creiamo due numeri primi p e q Test di Primalit`


a,
Calcoliamo (n) = (p 1) (q 1) Moltiplicazione
e Sottrazione,

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Implementazione
Ricapitolando..
I
I
I

Creiamo due numeri primi p e q Test di Primalit`


a,
Calcoliamo (n) = (p 1) (q 1) Moltiplicazione
e Sottrazione,
Calcoliamo e che deve essere MCD(e, (n)) = 1
generiamo il numero e random e poi applichiamo
Euclide, se MCD = 1 OK, altrimenti generiamo
unaltra volta e e ricalcoliamo lMCD con (n).

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Implementazione
Ricapitolando..
I
I
I

Creiamo due numeri primi p e q Test di Primalit`


a,
Calcoliamo (n) = (p 1) (q 1) Moltiplicazione
e Sottrazione,
Calcoliamo e che deve essere MCD(e, (n)) = 1
generiamo il numero e random e poi applichiamo
Euclide, se MCD = 1 OK, altrimenti generiamo
unaltra volta e e ricalcoliamo lMCD con (n).
Calcoliamo d che deve essere d e 1 mod n visto
che dobbiamo trovare linverso moltiplicativo di e non
dobbiamo fare altro che applicare Euclide Esteso, (cfr.
BigInt EuclideEx per la risoluzione dellequazione)

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Implementazione
Ricapitolando..
I
I
I

Creiamo due numeri primi p e q Test di Primalit`


a,
Calcoliamo (n) = (p 1) (q 1) Moltiplicazione
e Sottrazione,
Calcoliamo e che deve essere MCD(e, (n)) = 1
generiamo il numero e random e poi applichiamo
Euclide, se MCD = 1 OK, altrimenti generiamo
unaltra volta e e ricalcoliamo lMCD con (n).
Calcoliamo d che deve essere d e 1 mod n visto
che dobbiamo trovare linverso moltiplicativo di e non
dobbiamo fare altro che applicare Euclide Esteso, (cfr.
BigInt EuclideEx per la risoluzione dellequazione)
Criptiamo il messaggio c = me mod n Elevamento
a potenza e modulo(divisione normale o Barrett)
(cfr file RSA Encrypt Decrypt per divisione input e
codifica ASCII)

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Lab ASD

Implementazione
Ricapitolando..
I
I
I

Creiamo due numeri primi p e q Test di Primalit`


a,
Calcoliamo (n) = (p 1) (q 1) Moltiplicazione
e Sottrazione,
Calcoliamo e che deve essere MCD(e, (n)) = 1
generiamo il numero e random e poi applichiamo
Euclide, se MCD = 1 OK, altrimenti generiamo
unaltra volta e e ricalcoliamo lMCD con (n).
Calcoliamo d che deve essere d e 1 mod n visto
che dobbiamo trovare linverso moltiplicativo di e non
dobbiamo fare altro che applicare Euclide Esteso, (cfr.
BigInt EuclideEx per la risoluzione dellequazione)
Criptiamo il messaggio c = me mod n Elevamento
a potenza e modulo(divisione normale o Barrett)
(cfr file RSA Encrypt Decrypt per divisione input e
codifica ASCII)
Decriptiamo il messaggio, utilizzando i metodi del
passo precedente ma applicando m = c d mod n

Lezione 10
Sistemi a Chiave
Pubblica
Esempio 1
Osservazioni
Esempio 1
Esempio 2
RSA
RSA - Generazione
delle Chiavi
RSA - Encrypt
RSA - Decrypt
Sicurezza di RSA
Implementazione

Potrebbero piacerti anche