Download - I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini [email protected].

Transcript
Page 1: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

I cifrari a chiave pubblica: I cifrari a chiave pubblica: Introduzione alle curve Introduzione alle curve

ellitticheellittiche

Monica BianchiniMonica [email protected]@ing.unisi.it

Page 2: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Se l’uso di tecniche crittografiche per proteggere i Se l’uso di tecniche crittografiche per proteggere i documenti è antico quanto la scrittura stessa, documenti è antico quanto la scrittura stessa, solo l’avvento del computer ha permesso la solo l’avvento del computer ha permesso la realizzazione pratica dei sistemi crittografici di realizzazione pratica dei sistemi crittografici di nuova concezione, basati su principi impossibili nuova concezione, basati su principi impossibili da applicarsi con sistemi manuali o meccanicida applicarsi con sistemi manuali o meccanici

Si tratta di una nuova classe di cifrari che godono Si tratta di una nuova classe di cifrari che godono di importanti proprietà:di importanti proprietà: • sono molto sicuri, ma al contempo facili da gestiresono molto sicuri, ma al contempo facili da gestire• sono immuni dai principali problemi dei sistemi di sono immuni dai principali problemi dei sistemi di

crittografia classici, primo fra tutti quello della crittografia classici, primo fra tutti quello della gestione e distribuzione delle chiavi gestione e distribuzione delle chiavi

• sono in grado di fornire “servizi” aggiuntivi quali la sono in grado di fornire “servizi” aggiuntivi quali la firma elettronicafirma elettronica e la e la certificazione del mittentecertificazione del mittente

I cifrari a chiave pubblica I cifrari a chiave pubblica 1 1

Page 3: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Tutti si basano sul concetto di Tutti si basano sul concetto di chiave asimmetricachiave asimmetrica, , del tutto assente nella crittografia classicadel tutto assente nella crittografia classica

Infatti, lo svantaggio principale dei metodi a chiave Infatti, lo svantaggio principale dei metodi a chiave privata è che richiedono la comunicazione della privata è che richiedono la comunicazione della chiave fra mittente e ricevente, su un canale sicuro, chiave fra mittente e ricevente, su un canale sicuro, prima della trasmissione di qualsiasi messaggio prima della trasmissione di qualsiasi messaggio cifrato…cifrato… • POTREBBE ESSERE MOLTO DIFFICILE DA REALIZZARE!POTREBBE ESSERE MOLTO DIFFICILE DA REALIZZARE!

Per esempio, se i corrispondenti vivono lontani e Per esempio, se i corrispondenti vivono lontani e decidono di comunicare via edecidono di comunicare via email, non avranno mail, non avranno accesso a nessun canale ragionevolmente sicuro accesso a nessun canale ragionevolmente sicuro per lo scambio della chiaveper lo scambio della chiave

I cifrari a chiave pubblica I cifrari a chiave pubblica 2 2

Page 4: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

I cifrari a chiave pubblica I cifrari a chiave pubblica 3 3Cifrario simmetricoCifrario simmetrico

Cifrario asimmetricoCifrario asimmetrico

Page 5: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Le basi teoriche della crittografia moderna Le basi teoriche della crittografia moderna risalgono a meno di 40 anni fa, a partire dal 1969, risalgono a meno di 40 anni fa, a partire dal 1969, con le prime ricerche di James Ellis,con le prime ricerche di James Ellis, del quartier del quartier generale governativo delle comunicazioni generale governativo delle comunicazioni britanniche (GCHQ)britanniche (GCHQ)

L’idea dei crittosistemi a chiave pubblica è dovuta L’idea dei crittosistemi a chiave pubblica è dovuta a Withfield Diffie e Martin Hellman (1976), mentre a Withfield Diffie e Martin Hellman (1976), mentre la prima realizzazione pratica si ha l’anno la prima realizzazione pratica si ha l’anno successivo, ad opera di Ronald Rivest, Adi Shamir e successivo, ad opera di Ronald Rivest, Adi Shamir e Leonard Adleman, ricercatori al MIT (Massachusetts Leonard Adleman, ricercatori al MIT (Massachusetts Institute of Technology) che formularono Institute of Technology) che formularono RSARSA

I cifrari a chiave pubblica I cifrari a chiave pubblica 4 4

Page 6: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Diffie ed Hellman, pubblicarono un lavoro teorico Diffie ed Hellman, pubblicarono un lavoro teorico fondamentale nel quale, ipotizzando di poter fondamentale nel quale, ipotizzando di poter disporre di un cifrario disporre di un cifrario asimmetricoasimmetrico, dimostravano la , dimostravano la fattibilità di sistemi crittografici di nuovo tipo, adatti fattibilità di sistemi crittografici di nuovo tipo, adatti alla crittografia di massa, basati sull’impiego di alla crittografia di massa, basati sull’impiego di chiavi pubblichechiavi pubbliche

Con i cifrari a chiave pubblica si inizia a parlare diCon i cifrari a chiave pubblica si inizia a parlare di strong encryptionstrong encryption, crittografia forte, crittografia forte

Nella pratica, un cifrario a chiave pubblica è dotato Nella pratica, un cifrario a chiave pubblica è dotato di due chiavi distinte, che sono una l’ “inversa” di due chiavi distinte, che sono una l’ “inversa” dell’altra: se una viene usata per la cifratura, la dell’altra: se una viene usata per la cifratura, la seconda deve essere usata in decifratura, e seconda deve essere usata in decifratura, e viceversa viceversa

Punto fondamentale del crittosistema è che le due Punto fondamentale del crittosistema è che le due chiavi devono essere indipendenti: ossia la chiavi devono essere indipendenti: ossia la conoscenza di una delle due chiavi non deve dare conoscenza di una delle due chiavi non deve dare alcuna informazione utile alla ricostruzione dell’altraalcuna informazione utile alla ricostruzione dell’altra

I cifrari a chiave pubblica I cifrari a chiave pubblica 5 5

Page 7: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

I crittosistemi a chiave pubblica rendono il calcolo I crittosistemi a chiave pubblica rendono il calcolo di ddi dkk, a partire da e, a partire da ekk, computazionalmente , computazionalmente irrealizzabile irrealizzabile e ekk può essere resa pubblica può essere resa pubblica

Il mittente potrà inviare il messaggio cifrato Il mittente potrà inviare il messaggio cifrato utilizzando eutilizzando ekk, ma solo il ricevente autorizzato , ma solo il ricevente autorizzato sarà in grado di decifrarlo, poiché sarà l’unico a sarà in grado di decifrarlo, poiché sarà l’unico a conoscere dconoscere dkk

I cifrari a chiave pubblica I cifrari a chiave pubblica 6 6

Page 8: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

VantaggiVantaggi• La chiave pubblica può essere trasmessa tramite La chiave pubblica può essere trasmessa tramite

un canale insicuro, in quanto la sua conoscenza da un canale insicuro, in quanto la sua conoscenza da parte di terzi non è sufficiente a mettere in pericolo parte di terzi non è sufficiente a mettere in pericolo la sicurezza dei dati cifrati con essa; ciascuna la sicurezza dei dati cifrati con essa; ciascuna chiave segreta resta sotto la responsabilità del solo chiave segreta resta sotto la responsabilità del solo utente proprietario utente proprietario

• In un sistema a chiave segreta per ogni possibile In un sistema a chiave segreta per ogni possibile coppia di utenti deve esistere una chiave: per coppia di utenti deve esistere una chiave: per nn utenti occorrono utenti occorrono nn((nn1)/2 chiavi 1)/2 chiavi

• In un sistema a chiave pubblica, deve esistere una In un sistema a chiave pubblica, deve esistere una coppia di chiavi per ogni possibile utente, ovvero coppia di chiavi per ogni possibile utente, ovvero per per nn utenti occorrono 2 utenti occorrono 2nn chiavi chiavi

I cifrari a chiave pubblica I cifrari a chiave pubblica 7 7

Page 9: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

SvantaggiSvantaggi• Gli algoritmi simmetrici e quelli asimmetrici Gli algoritmi simmetrici e quelli asimmetrici

necessitano di chiavi di lunghezza diversa per necessitano di chiavi di lunghezza diversa per raggiungere lo stesso grado di sicurezza teorica raggiungere lo stesso grado di sicurezza teorica

• Generalmente, gli algoritmi asimmetrici sono molto Generalmente, gli algoritmi asimmetrici sono molto più lenti da eseguire, rispetto a quelli simmetrici, e più lenti da eseguire, rispetto a quelli simmetrici, e pertanto di uso poco agevole per la cifratura di pertanto di uso poco agevole per la cifratura di messaggi lunghi messaggi lunghi

I cifrari a chiave pubblica I cifrari a chiave pubblica 8 8

Page 10: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Dal 1977, sono stati formalizzati diversi Dal 1977, sono stati formalizzati diversi crittosistemi a chiave pubblica, la cui sicurezza è crittosistemi a chiave pubblica, la cui sicurezza è affidata alla difficoltà di risoluzione di problemi affidata alla difficoltà di risoluzione di problemi matematici diversimatematici diversi

RSARSA (1977) (1977) la sicurezza è basata sulla difficoltà la sicurezza è basata sulla difficoltà nella fattorizzazione di interi “grandi”nella fattorizzazione di interi “grandi”

MerkleMerkleHellman Knapsack Hellman Knapsack (1978) (1978) la sicurezza la sicurezza del sistema è basata sulla NPdel sistema è basata sulla NPcompletezza del completezza del problema della somma di sottoinsiemiproblema della somma di sottoinsiemi

• Dato un insieme di interi, è possibile enucleare un Dato un insieme di interi, è possibile enucleare un sottoinsieme di somma nulla?sottoinsieme di somma nulla?

• Tutti i crittosistemi di questo tipo si sono rivelati Tutti i crittosistemi di questo tipo si sono rivelati insicuri, tranne il crittosistema di Chorinsicuri, tranne il crittosistema di ChorRivestRivest

I cifrari a chiave pubblica I cifrari a chiave pubblica 9 9

Page 11: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

McElieceMcEliece (1978) (1978) è basato sulla teoria algebrica è basato sulla teoria algebrica dei codici, ed è a tutt’oggi ritenuto sicuro; la dei codici, ed è a tutt’oggi ritenuto sicuro; la sicurezza è dovuta alla difficoltà del problema di sicurezza è dovuta alla difficoltà del problema di decodificare un codice lineare (che è decodificare un codice lineare (che è NPNPcompleto)completo)

ElGamalElGamal (1984) (1984) la sicurezza è basata sulla la sicurezza è basata sulla difficoltà del calcolo del logaritmo discreto in difficoltà del calcolo del logaritmo discreto in campi finiticampi finiti

Curve ellitticheCurve ellittiche sono crittosistemi che traggono sono crittosistemi che traggono origine da sistemi tipo ElGamal, ma operano sulle origine da sistemi tipo ElGamal, ma operano sulle curve ellittiche piuttosto che sui campi finiti; sono curve ellittiche piuttosto che sui campi finiti; sono i sistemi più sicuri, anche per chiavi piccolei sistemi più sicuri, anche per chiavi piccole

I cifrari a chiave pubblica I cifrari a chiave pubblica 10 10

Page 12: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

I sistemi a chiave pubblica non possono garantire I sistemi a chiave pubblica non possono garantire la sicurezza incondizionata, poiché una spia, la sicurezza incondizionata, poiché una spia, essendo venuta in possesso di un testo cifrato y, essendo venuta in possesso di un testo cifrato y, può codificare ogni possibile testo in chiaro x, può codificare ogni possibile testo in chiaro x, utilizzando eutilizzando ekk, che è pubblica, fino a trovare , che è pubblica, fino a trovare l’unico x tale che y=el’unico x tale che y=ekk(x)(x)

Per i sistemi a chiave pubblica è sensato studiare Per i sistemi a chiave pubblica è sensato studiare la “sicurezza computazionale”la “sicurezza computazionale”

A questo scopo, può essere concettualmente utile A questo scopo, può essere concettualmente utile pensare ad un sistema a chiave pubblica, in pensare ad un sistema a chiave pubblica, in termini astratti, come ad una funzione termini astratti, come ad una funzione unidirezionaleunidirezionale

I cifrari a chiave pubblica I cifrari a chiave pubblica 11 11

Page 13: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

La funzione pubblica di codifica eLa funzione pubblica di codifica ekk deve essere deve essere semplice da calcolare, ma difficile da invertire, semplice da calcolare, ma difficile da invertire, per tutti tranne che per il ricevente: una funzione per tutti tranne che per il ricevente: una funzione siffatta è una funzione siffatta è una funzione oneonewayway (unidirezionale) (unidirezionale)

eekk deve essere una funzione iniettiva e one deve essere una funzione iniettiva e onewayway

Le funzioni unidirezionali giocano un ruolo Le funzioni unidirezionali giocano un ruolo fondamentale nella costruzione di crittosistemi a fondamentale nella costruzione di crittosistemi a chiave pubblicachiave pubblica

Sfortunatamente, anche se vi sono varie classi di Sfortunatamente, anche se vi sono varie classi di funzioni che sono ritenute unidirezionali, non funzioni che sono ritenute unidirezionali, non esiste per nessuna di esse una prova certaesiste per nessuna di esse una prova certa

I cifrari a chiave pubblica I cifrari a chiave pubblica 12 12

Page 14: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Sia n il prodotto di due numeri primi “grandi”, p e Sia n il prodotto di due numeri primi “grandi”, p e q, e sia b un intero positivoq, e sia b un intero positivo

: Z: ZnnZZnn definita da definita da

(x) = x(x) = xbb (mod n) (mod n) è ritenuta essere una funzione unidirezionale (e, è ritenuta essere una funzione unidirezionale (e, di fatto, è la funzione di codifica in RSA)di fatto, è la funzione di codifica in RSA)

Tuttavia, l’essere oneTuttavia, l’essere oneway non è una proprietà way non è una proprietà sufficiente per sufficiente per , poiché il ricevente autorizzato , poiché il ricevente autorizzato deve essere in grado di decifrare i messaggi in deve essere in grado di decifrare i messaggi in maniera efficientemaniera efficiente

I cifrari a chiave pubblica I cifrari a chiave pubblica 13 13

Page 15: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Il ricevente deve possedere una Il ricevente deve possedere una trapdoortrapdoor una una sorta di canale preferenziale, una “scappatoia” sorta di canale preferenziale, una “scappatoia” che gli permetta di accedere rapidamente che gli permetta di accedere rapidamente all’informazione codificata, cioè di decifrare all’informazione codificata, cioè di decifrare facilmente il testo cifrato, grazie alla sua facilmente il testo cifrato, grazie alla sua conoscenza di informazione aggiuntiva su kconoscenza di informazione aggiuntiva su k

eekk deve essere iniettiva, one deve essere iniettiva, oneway, trapdoorway, trapdoor

I cifrari a chiave pubblica I cifrari a chiave pubblica 14 14

Page 16: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

I principali problemi sui quali si basano i sistemi I principali problemi sui quali si basano i sistemi crittografici moderni sono:crittografici moderni sono:

• Il problema della fattorizzazione di interi grandi Il problema della fattorizzazione di interi grandi ((Integer Factorization Problem – IFPInteger Factorization Problem – IFP ))

• Il problema del calcolo del logaritmo discreto su Il problema del calcolo del logaritmo discreto su campi finiti (campi finiti (Discrete Discrete Logarithm ProblemLogarithm Problem – DLP – DLP ))

• Il problema del calcolo del logaritmo discreto su Il problema del calcolo del logaritmo discreto su curve ellittiche (curve ellittiche (Elliptic Curve Discrete Elliptic Curve Discrete Logarithm Logarithm ProblemProblem – ECDLP – ECDLP ))

Riassumendo... Riassumendo...

Page 17: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Un Un campocampo è un è un insieme Ginsieme G che soddisfa le seguenti che soddisfa le seguenti proprietà:proprietà:• Sono definite due operazioni, genericamente indicate Sono definite due operazioni, genericamente indicate

con + e con + e (e che nel caso dei reali/complessi sono (e che nel caso dei reali/complessi sono effettivamente la somma e il prodotto)effettivamente la somma e il prodotto)

• La somma ed il prodotto sono operazioni interne al La somma ed il prodotto sono operazioni interne al campocampo

• Valgono le proprietà commutativa e associativa per Valgono le proprietà commutativa e associativa per somma e prodottosomma e prodotto

• Vale la proprietà distributiva tra prodotto e somma Vale la proprietà distributiva tra prodotto e somma (sia destra che sinistra)(sia destra che sinistra)

• Esiste, ed è unico, l’elemento neutro, sia per la Esiste, ed è unico, l’elemento neutro, sia per la somma che per il prodotto (0 ed 1, rispettivamente)somma che per il prodotto (0 ed 1, rispettivamente)

• Per ciascun elemento del campo, esiste l’elemento Per ciascun elemento del campo, esiste l’elemento inverso relativamente a somma e prodotto (l’opposto inverso relativamente a somma e prodotto (l’opposto per la somma, il reciproco per il prodotto) per la somma, il reciproco per il prodotto)

I campi vettoriali I campi vettoriali 1 1

Page 18: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

La cardinalità dell’insieme G viene indicata con |La cardinalità dell’insieme G viene indicata con |G| ed è chiamata G| ed è chiamata ordineordine del campo: se questa è del campo: se questa è finita allora G è un campo finitofinita allora G è un campo finito

Sia ZSia Znn={0, 1, 2, 3, ... , n={0, 1, 2, 3, ... , n1} un campo finito1} un campo finito• Se n=pSe n=pqq, dove p è un numero primo e q un intero , dove p è un numero primo e q un intero

positivo, p e q sono detti rispettivamente positivo, p e q sono detti rispettivamente caratteristicacaratteristica e e grado di estensionegrado di estensione del campo del campo

• g è un g è un generatoregeneratore per il campo finito Z per il campo finito Znn se ogni se ogni elemento di Zelemento di Znn può essere scritto come potenza di può essere scritto come potenza di g (escluso lo 0)g (escluso lo 0)

I campi vettoriali I campi vettoriali 2 2

Page 19: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

RSA è realizzato in ZRSA è realizzato in Znn, dove n è il prodotto di due , dove n è il prodotto di due numeri primi distinti p e q numeri primi distinti p e q (n)=(p(n)=(p1)(q1)(q1) 1) (numero degli interi positivi minori di n primi con n)(numero degli interi positivi minori di n primi con n)

Sia nSia n =pq, con p e q numeri primi. Siano P=C=Z=pq, con p e q numeri primi. Siano P=C=Znn

Sia KSia K ={(n,p,q,a,b): n={(n,p,q,a,b): n =pq, p,q primi, ab=pq, p,q primi, ab1 (mod 1 (mod (n))}(n))}

Per k=Per k=(n,p,q,a,b): (n,p,q,a,b):

eekk(x) = x(x) = xbb (mod n) (mod n)

ddkk(y) = y(y) = yaa (mod n) (mod n)

x,y x,y Z Znn

I valori di n e b sono pubblici, p,q ed a segretiI valori di n e b sono pubblici, p,q ed a segreti

Il crittosistema RSA Il crittosistema RSA 1 1

Page 20: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Le operazioni di codifica e decodifica sono inverse Le operazioni di codifica e decodifica sono inverse

Infatti, poiché abInfatti, poiché ab1 (mod 1 (mod (n)), ab=t(n)), ab=t(n)+1, per (n)+1, per qualche intero tqualche intero t 11

Sia ZSia Znn** l’insieme dei residui modulo n primi con n l’insieme dei residui modulo n primi con n

Sia xSia xZZnn**, allora…, allora…

(x(xbb))a a x xtt(n)+1(n)+1 (mod n) (mod n) (x (x(n)(n)))t t x (mod n)x (mod n) 11t t x (mod n) x (mod n) x (mod n) x (mod n)

(x(x(n)(n)=1 per il teorema di Eulero che asserisce che =1 per il teorema di Eulero che asserisce che ZZnn

** è un gruppoè un gruppo moltiplicativo di ordine moltiplicativo di ordine (n))(n))

Il crittosistema RSA Il crittosistema RSA 2 2

Page 21: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Supponiamo che siano p=101 e q=113 Supponiamo che siano p=101 e q=113 n=11413 e n=11413 e (n)=100(n)=100112=11200112=11200

Poiché 11200=2Poiché 11200=26655227, un intero b può essere 7, un intero b può essere utilizzato quale esponente di codifica se e solo se utilizzato quale esponente di codifica se e solo se b non è divisibile per 2, 5 o 7 b non è divisibile per 2, 5 o 7

Il proprietario della chiave privata non fattorizzerà Il proprietario della chiave privata non fattorizzerà (n), verificherà solo che MCD((n), verificherà solo che MCD((n),b)=1 (n),b)=1 utilizzando l’algoritmo di Euclideutilizzando l’algoritmo di Euclide

Supponiamo che scelga b=3533; allora Supponiamo che scelga b=3533; allora l’algoritmo di Euclide calcola bl’algoritmo di Euclide calcola b11=6597 (mod =6597 (mod 11200) 11200) l’esponente di decodifica è a=6597 l’esponente di decodifica è a=6597

Esempio di sistema RSA insicuro Esempio di sistema RSA insicuro 1 1

Page 22: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Il proprietario della chiave privata pubblica Il proprietario della chiave privata pubblica n=11413 e b=3533n=11413 e b=3533

Supponiamo che il suo corrispondente voglia Supponiamo che il suo corrispondente voglia inviargli il testo 9726, egli calcoleràinviargli il testo 9726, egli calcolerà

9726972635333533 (mod 11413)=5761 (mod 11413)=5761

ed invierà il testo cifrato 5761 sul canaleed invierà il testo cifrato 5761 sul canale

Quando il proprietario della chiave privata riceve Quando il proprietario della chiave privata riceve y=5761, utilizza l’esponente di decifratura y=5761, utilizza l’esponente di decifratura segreto a per calcolaresegreto a per calcolare

576157616597 6597 (mod 11413)=9726(mod 11413)=9726

Esempio di sistema RSA insicuro Esempio di sistema RSA insicuro 2 2

Page 23: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

La sicurezza del crittosistema RSA è basata sulla La sicurezza del crittosistema RSA è basata sulla “speranza” che e“speranza” che ekk(x)=x(x)=xbb (mod n) sia one (mod n) sia oneway, così way, così da rendere computazionalmente impossibile, per da rendere computazionalmente impossibile, per una spia, decrittare il testo cifratouna spia, decrittare il testo cifrato

La scappatoia (trapdoor) che permette al La scappatoia (trapdoor) che permette al proprietario della chiave privata di decifrare il proprietario della chiave privata di decifrare il crittogramma è costituita dalla conoscenza della crittogramma è costituita dalla conoscenza della fattorizzazione di n=pqfattorizzazione di n=pq

Dato che il proprietario della chiave privata Dato che il proprietario della chiave privata conosce p e q, può calcolare conosce p e q, può calcolare (n)=(p(n)=(p1)(q1)(q1) e 1) e quindi l’esponente di decifratura a, utilizzando quindi l’esponente di decifratura a, utilizzando l’algoritmo di Euclide estesol’algoritmo di Euclide esteso

Sicurezza di RSASicurezza di RSA

Page 24: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

La potenza di un numero in aritmetica finita si La potenza di un numero in aritmetica finita si definisce come definisce come

aabb=x (mod n)=x (mod n)

Come nell’aritmetica ordinaria, è possibile Come nell’aritmetica ordinaria, è possibile definire un’operazione inversa rispetto definire un’operazione inversa rispetto all’esponente: il all’esponente: il logaritmologaritmo

Per definizione, il logaritmo è l’esponente a cui si Per definizione, il logaritmo è l’esponente a cui si deve elevare la base a per ottenere il valore x: deve elevare la base a per ottenere il valore x:

b=logb=logaa x (mod n) x (mod n) Tale logaritmo si dice Tale logaritmo si dice logaritmo discretologaritmo discreto

Se il calcolo della potenza è relativamente Se il calcolo della potenza è relativamente semplice, il calcolo del logaritmo è semplice, il calcolo del logaritmo è computazionalmente molto complesso, può avere computazionalmente molto complesso, può avere più soluzioni o nessuna più soluzioni o nessuna

Il logaritmo discreto Il logaritmo discreto 1 1

Page 25: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Per esempio, in ZPer esempio, in Z77, si ha: , si ha: 2200 = 1 = 1 2211 = 2 = 2 2222 = 4 = 4 2233 = 1 = 1 2244 = 2 = 2 2255 = 4 = 4 2266 = 1 = 1

e quindi, il loge quindi, il log224 è pari a 2 ma anche a 5; 4 è pari a 2 ma anche a 5; viceversa non esistono logviceversa non esistono log223, log3, log225, log5, log226 6

In generale, si ritiene che il problema del calcolo In generale, si ritiene che il problema del calcolo del logaritmo discreto sia “difficile” come il del logaritmo discreto sia “difficile” come il problema della fattorizzazione di numeri grandi, problema della fattorizzazione di numeri grandi, anche se non esiste attualmente una anche se non esiste attualmente una dimostrazione dell’assertodimostrazione dell’asserto

Il logaritmo discreto Il logaritmo discreto 2 2

Page 26: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

ÈÈ realizzato in Z realizzato in Znn, con n numero primo e g , con n numero primo e g generatore di Zgeneratore di Znn, e si basa sulla difficoltà di calcolo , e si basa sulla difficoltà di calcolo dell’intero k tale che p=gdell’intero k tale che p=gkk (mod n), noti p, g, ed n (mod n), noti p, g, ed n

Alice e Bob vogliono scambiarsi un messaggioAlice e Bob vogliono scambiarsi un messaggio• Siano n e g due numeri interi che soddisfano le Siano n e g due numeri interi che soddisfano le

seguenti proprietà:seguenti proprietà: n è un numero primo grande (100n è un numero primo grande (100200 cifre)200 cifre) g<ng<n MCD(g,nMCD(g,n1)=1: g e n primi fra loro1)=1: g e n primi fra loro n e g noti ad Alice e Bobn e g noti ad Alice e Bob

• Alice sceglie keyAlice sceglie keyprivAliceprivAlice=a<n e calcola h=g=a<n e calcola h=gaa (mod n)(mod n)

• Bob sceglie keyBob sceglie keyprivBobprivBob=b<n e calcola k=g=b<n e calcola k=gbb (mod (mod n)n)

Metodo di DiffieMetodo di DiffieHellman Hellman per lo scambio di chiavi per lo scambio di chiavi 1 1

Page 27: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Alice e Bob pubblicano rispettivamente Alice e Bob pubblicano rispettivamente keykeypubAlicepubAlice=h e key=h e keypubBobpubBob=k=k

Alice calcola keyAlice calcola keyAliceBobAliceBob=k=kaa (mod n) e la usa come (mod n) e la usa come chiave per crittare i messaggi diretti a Bobchiave per crittare i messaggi diretti a Bob

Bob calcola keyBob calcola keyBobAliceBobAlice=h=hbb (mod n) e la usa come (mod n) e la usa come chiave per crittare i messaggi diretti ad Alicechiave per crittare i messaggi diretti ad Alice

keykeyAliceBobAliceBob=key=keyBobAliceBobAlice ? ?

kkaa (mod n)=(g (mod n)=(gbb (mod n)) (mod n))aa (mod n)=g (mod n)=gbba a (mod n)(mod n)

=g=gaab b (mod n)=(g(mod n)=(gaa (mod n)) (mod n))bb (mod n) (mod n)

=h=hbb (mod n) (mod n)

k_s=keyk_s=keyAliceBobAliceBob=key=keyBobAlice BobAlice è la è la chiave di sessionechiave di sessione

Metodo di DiffieMetodo di DiffieHellman Hellman per lo scambio di chiavi per lo scambio di chiavi 2 2

Page 28: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Dopo che Alice e Bob hanno generato una chiave Dopo che Alice e Bob hanno generato una chiave di sessione, possono scambiarsi messaggi di sessione, possono scambiarsi messaggi utilizzando un qualsiasi cifrario simmetricoutilizzando un qualsiasi cifrario simmetrico

Il metodo di DiffieIl metodo di DiffieHellman è di fatto un protocollo Hellman è di fatto un protocollo “sicuro” per lo scambio di chiavi, da utilizzarsi in “sicuro” per lo scambio di chiavi, da utilizzarsi in crittosistemi simmetricicrittosistemi simmetrici

Ma… quanto “sicuro” ?Ma… quanto “sicuro” ?• Il problema del calcolo del logaritmo discreto è Il problema del calcolo del logaritmo discreto è

computazionalmente intrattabile con la potenza di computazionalmente intrattabile con la potenza di calcolo attuale, almeno per n intero calcolo attuale, almeno per n intero “sufficientemente grande” “sufficientemente grande” lungo qualche lungo qualche centinaio di bitcentinaio di bit

Metodo di DiffieMetodo di DiffieHellman Hellman per lo scambio di chiavi per lo scambio di chiavi 3 3

Page 29: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

ElGamal è realizzato in ZElGamal è realizzato in Znn, con n numero primo e , con n numero primo e g generatore di Zg generatore di Znn

Sia n un numero primo. Siano P=C=ZSia n un numero primo. Siano P=C=Znn

Sia K ={(n,g,a,c,b,d,h): g generatore di ZSia K ={(n,g,a,c,b,d,h): g generatore di Znn, a=g, a=gcc, , b=gb=gdd}}

Per k=Per k=(n,g,a,c,b,d,h): (n,g,a,c,b,d,h):

(g(ghh (mod n), e (mod n), ekk(x)=x(x)=xbbhh (mod n)) (mod n))

ddkk(y) = (g(y) = (ghh (mod n)) (mod n))dd (y (mod n))(y (mod n))

x,y x,y Z Znn

I valori di n, g, a, e b sono pubblici, c, d ed h I valori di n, g, a, e b sono pubblici, c, d ed h segretisegreti

Il crittosistema di ElGamalIl crittosistema di ElGamal

Page 30: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Negli ultimi tempi l’interesse degli appassionati di Negli ultimi tempi l’interesse degli appassionati di teoria dei numeri verso le teoria dei numeri verso le curve ellittichecurve ellittiche è è andato crescendo, forse a causa del loro impiego andato crescendo, forse a causa del loro impiego per la famosa dimostrazione dell’ultimo teorema per la famosa dimostrazione dell’ultimo teorema di Fermat da parte di Andrew Wilesdi Fermat da parte di Andrew Wiles

I cifrari basati sulle curve ellittiche furono proposti I cifrari basati sulle curve ellittiche furono proposti in maniera indipendente da Victor Miller e Neal in maniera indipendente da Victor Miller e Neal Koblitz verso la metà degli anni ottantaKoblitz verso la metà degli anni ottanta

Le curve ellittiche possono interpretarsi come una Le curve ellittiche possono interpretarsi come una “versione analogica” del concetto di gruppo “versione analogica” del concetto di gruppo moltiplicativo in un campo finitomoltiplicativo in un campo finito

Per comprendere come questa particolare classe Per comprendere come questa particolare classe di cubiche possa essere impiegata per costruire di cubiche possa essere impiegata per costruire una categoria di metodi crittografici, attualmente una categoria di metodi crittografici, attualmente ritenuti i più sicuri, occorre introdurne le proprietà ritenuti i più sicuri, occorre introdurne le proprietà matematiche fondamentalimatematiche fondamentali

Crittografia e curve ellitticheCrittografia e curve ellittiche

Page 31: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

o Definizione 1Definizione 1Sia K un campo di caratteristica pSia K un campo di caratteristica p2,3 e sia 2,3 e sia xx33+ax+b, con a,b+ax+b, con a,bK, un polinomio cubico privo di K, un polinomio cubico privo di radici multiple; una radici multiple; una curva ellitticacurva ellittica su K è l’insieme su K è l’insieme costituito dalle coppie (x,y) con x,ycostituito dalle coppie (x,y) con x,yK che K che soddisfano l’equazionesoddisfano l’equazione

yy22=x=x33axaxbbpiù un punto isolato più un punto isolato OO, detto , detto punto all’infinitopunto all’infinito

Se p=2, l’equazione delle curve ellittiche può Se p=2, l’equazione delle curve ellittiche può assumere le due forme…assumere le due forme…

yy22cy=xcy=x33axaxbb curva curva supersingolaresupersingolare yy22xy=xxy=x33axaxbb curva curva non non

supersingolaresupersingolare ……e per p=3e per p=3

yy22=x=x33axax22bxbxcc

Le curve ellittiche Le curve ellittiche 1 1

Page 32: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Grafici delle curve ellittiche sul campo Grafici delle curve ellittiche sul campo di di equazione (a) yequazione (a) y22=x=x33x, (b) yx, (b) y22=x=x331, (c) y1, (c) y22=x=x335x5x66

Le curve ellittiche Le curve ellittiche 2 2

Page 33: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

o Definizione 2Definizione 2

Sia E una curva ellittica su Sia E una curva ellittica su , e siano P e Q punti , e siano P e Q punti di E; si definiscono l’opposto di P e la somma Pdi E; si definiscono l’opposto di P e la somma PQ, Q, in base alle seguenti regolein base alle seguenti regole

• Se P coincide con il punto all’infinito Se P coincide con il punto all’infinito OO, allora , allora P=P=OO e Pe PQ=Q, cioè Q=Q, cioè OO è l’elemento neutro per è l’elemento neutro per l’addizione di puntil’addizione di punti

• Altrimenti, l’opposto Altrimenti, l’opposto P di P è il punto con ascissa x P di P è il punto con ascissa x uguale a quella di P ed ordinata opposta, cioè uguale a quella di P ed ordinata opposta, cioè P=(x,P=(x,y)y)

• Se Q=Se Q=P, PP, PQ= Q= OO

Le curve ellittiche Le curve ellittiche 3 3

Page 34: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

• Se P e Q hanno ascisse distinte, allora Se P e Q hanno ascisse distinte, allora rr= PQ interseca = PQ interseca

la curva E esattamente in un ulteriore punto R (se la curva E esattamente in un ulteriore punto R (se rr non è tangente ad E in P, nel qual caso R=P, o in Q, non è tangente ad E in P, nel qual caso R=P, o in Q, così che R=Q); se R è distinto da P e Q, Pcosì che R=Q); se R è distinto da P e Q, PQ=Q=R.R.

Le curve ellittiche Le curve ellittiche 4 4

Page 35: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

• Se P=Q, sia Se P=Q, sia t t la tangente alla curva in P e sia R la tangente alla curva in P e sia R (l’unico) ulteriore punto di intersezione di (l’unico) ulteriore punto di intersezione di tt con la con la curva, allora Pcurva, allora PQ=2P=Q=2P=R R

Le curve ellittiche Le curve ellittiche 5 5

Page 36: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Come si calcolano le coordinate di PCome si calcolano le coordinate di PQ ?Q ?• Se P=(xSe P=(x11,y,y11) e Q=(x) e Q=(x22,y,y22) con x) con x11xx22, sia y=, sia y=xx

l’equazione della retta l’equazione della retta rr per P e Q (che non è per P e Q (che non è verticale); in questo caso, verticale); in questo caso, =(y=(y22yy11)/(x)/(x22xx11) e ) e =y=y11xx11; ;

i punti di i punti di rr, (x,, (x,xx), giacciono anche sulla curva ), giacciono anche sulla curva ellittica E se e solo se soddisfano l’uguaglianza ellittica E se e solo se soddisfano l’uguaglianza xx33((xx))22axaxb=0b=0

• Due soluzioni dell’equazione cubica sono note e Due soluzioni dell’equazione cubica sono note e corrispondono ai punti P e Q; poiché in un polinomio corrispondono ai punti P e Q; poiché in un polinomio monico di grado n, la somma delle radici coincide con monico di grado n, la somma delle radici coincide con il coefficiente del termine di grado nil coefficiente del termine di grado n1, 1, 22=x=x11xx22xx33, , da cui…da cui…

xx33=[(y=[(y22yy11)/(x)/(x22xx11)])]22xx11xx22

ee

yy33= = yy11[(y[(y22yy11)/(x)/(x22xx11)](x)](x11xx33))

Le curve ellittiche Le curve ellittiche 6 6

Page 37: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

• Se P=QSe P=Q, , =dy/dx==dy/dx=[[ff(x,y)/(x,y)/x]/[x]/[ff(x,y)/(x,y)/y]y]||PP, con , con

ff(x,y)=y(x,y)=y22(x(x33axaxb), cioè b), cioè =(3x=(3x112 2 a)/2ya)/2y11, da cui…, da cui…

xx33=[(3x=[(3x112 2 a)/2ya)/2y11]]2 2 2x2x11

eeyy33= = yy11[(3x[(3x11

22 a)/2ya)/2y11](x](x11xx33))

I punti di una curva ellittica E formano un gruppo I punti di una curva ellittica E formano un gruppo abeliano relativamente all’operazione di sommaabeliano relativamente all’operazione di somma

Come in ogni gruppo abeliano, si userà la Come in ogni gruppo abeliano, si userà la notazione nP, per indicare l’operazione di somma notazione nP, per indicare l’operazione di somma del punto P con se stesso effettuata n volte, se del punto P con se stesso effettuata n volte, se n>0, ovvero la somma di n>0, ovvero la somma di P con se stesso P con se stesso effettuata effettuata nn volte, per n negativo volte, per n negativo

Per definizione, il punto all’infinito Per definizione, il punto all’infinito OO rappresenta rappresenta il “terzo punto di intersezione” delle rette verticali il “terzo punto di intersezione” delle rette verticali con la curva Econ la curva E

Le curve ellittiche Le curve ellittiche 7 7

Page 38: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Sia K il campo finito ZSia K il campo finito Znn, costituito da n = p, costituito da n = pq q elementielementi

Sia E una curva ellittica definita su ZSia E una curva ellittica definita su Znn

E è composta da al più 2nE è composta da al più 2n1 punti, il punto all’infinito 1 punti, il punto all’infinito O O e 2n coppie (x,y)e 2n coppie (x,y)ZZnnZZnn, ovvero per ciascuna delle , ovvero per ciascuna delle n possibili ascisse xn possibili ascisse xZZn n esistono al più 2n ordinate esistono al più 2n ordinate yyZZnn che soddisfano l’equazione di E che soddisfano l’equazione di E

In realtà, vale il seguente…In realtà, vale il seguente…

o Teorema di HasseTeorema di Hasse

Sia N il numero di punti in ZSia N il numero di punti in Znn appartenenti ad una appartenenti ad una curva ellittica E, definita su Zcurva ellittica E, definita su Znn; vale la disuguaglianza; vale la disuguaglianza

|N |N (n (n1)|1)| 2 2nn

Curve ellittiche su campi finiti Curve ellittiche su campi finiti

Page 39: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Supponiamo di codificare il plaintext x come un intero rSupponiamo di codificare il plaintext x come un intero r Sia E una curva ellittica definita su ZSia E una curva ellittica definita su Znn, con n=p, con n=pqq, numero , numero

intero “grande” e dispariintero “grande” e dispari Un metodo probabilistico (non esistono algoritmi Un metodo probabilistico (non esistono algoritmi

deterministici per risolvere questo problema!) per deterministici per risolvere questo problema!) per codificare r mediante Pcodificare r mediante Prr può essere schematizzato come può essere schematizzato come segue:segue:• Si sceglie k (Si sceglie k (≤50 è sufficiente); sia 0≤r<R, e n>Rk≤50 è sufficiente); sia 0≤r<R, e n>Rk• Gli interi compresi fra 1 ed Rk possono essere scritti nella Gli interi compresi fra 1 ed Rk possono essere scritti nella

forma rkforma rkj, con 1≤j<k j, con 1≤j<k si stabilisce una corrispondenza si stabilisce una corrispondenza biunivoca fra detti interi ed un sottoinsieme degli elementi di biunivoca fra detti interi ed un sottoinsieme degli elementi di ZZnn

• Per esempio, ciascun numero Per esempio, ciascun numero 1≤i<Rk 1≤i<Rk può essere scritto come può essere scritto come un intero ad s cifre in base p, ciascuna cifra del quale un intero ad s cifre in base p, ciascuna cifra del quale rappresenta il relativo coefficiente di un polinomio di grado rappresenta il relativo coefficiente di un polinomio di grado ss1, corrispondente ad un elemento di Z1, corrispondente ad un elemento di Znn

Da plaintext a punti su E Da plaintext a punti su E 1 1

Page 40: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Pertanto, dato r, per ogni Pertanto, dato r, per ogni 1≤j<k, si ottiene un 1≤j<k, si ottiene un elemento xelemento xccZZnn, coincidente con , coincidente con rkrkjj

Per tale xPer tale xcc, si calcola , si calcola yy22=x=xcc33axaxccb, e si cerca di b, e si cerca di

estrarre la radice quadrata per calcolare il estrarre la radice quadrata per calcolare il corrispondente valore di ycorrispondente valore di ycc

• Se si riesce a calcolare un ySe si riesce a calcolare un ycc, tale che y, tale che ycc22==ff(x(xcc), si ), si

ottiene Pottiene Prr=(x=(xcc, y, ycc))

• Se invece tale ySe invece tale ycc non esiste, allora si incrementa j di non esiste, allora si incrementa j di un’unità e si riprova a calcolare yun’unità e si riprova a calcolare ycc a partire a partire xxcc==rkrkjj11

Da plaintext a punti su E Da plaintext a punti su E 2 2

Page 41: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Posto di riuscire a trovare un xPosto di riuscire a trovare un xcc t.c. esiste y t.c. esiste ycc

calcolato come sopra, per jcalcolato come sopra, per j≤k, r può essere ≤k, r può essere ricalcolato da ricalcolato da PPrr=(x=(xcc,y,ycc) come r=[(x) come r=[(x1)k)], con 1)k)], con xxccx (mod n) e xx (mod n) e x Z Znn

Poiché Poiché ff(x) è un quadrato in Z(x) è un quadrato in Znn approssimativamente nel 50% dei casi (tale approssimativamente nel 50% dei casi (tale probabilità vale esattamente N/2n, che è molto probabilità vale esattamente N/2n, che è molto vicino ad ½), la probabilità che il metodo proposto vicino ad ½), la probabilità che il metodo proposto fallisca nel calcolare il punto Pfallisca nel calcolare il punto Prr la cui coordinata x la cui coordinata xcc è compresa fra rkè compresa fra rk1 e rk1 e rkk è k è 2 2kk

Da plaintext a punti su E Da plaintext a punti su E 3 3

Page 42: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

I vantaggi dei crittosistemi costruiti attraverso I vantaggi dei crittosistemi costruiti attraverso curve ellittiche rispetto ai codici su campi finiti curve ellittiche rispetto ai codici su campi finiti sono:sono:

• Gran numero di gruppi abeliani (costituiti dai punti Gran numero di gruppi abeliani (costituiti dai punti di una curva) che si possono costruire su uno di una curva) che si possono costruire su uno stesso campo finitostesso campo finito

• Non esistenza di algoritmi subesponenziali per Non esistenza di algoritmi subesponenziali per risolvere il problema del logaritmo discreto su risolvere il problema del logaritmo discreto su curve non supersingolaricurve non supersingolari

• Chiavi più corte per garantire lo stesso grado di Chiavi più corte per garantire lo stesso grado di sicurezzasicurezza

Crittosistemi su curve ellittiche Crittosistemi su curve ellittiche 1 1

Page 43: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Le curve ellittiche permettono di formulare un Le curve ellittiche permettono di formulare un problema analogo a quello del logaritmo discreto problema analogo a quello del logaritmo discreto su un campo finito (su un campo finito (DLPDLP, , Discrete Logarithm Discrete Logarithm ProblemProblem))

ProblemaProblema

Siano dati una curva ellittica E su ZSiano dati una curva ellittica E su Znn ed un punto ed un punto BBE; il problema del logaritmo discreto su E in E; il problema del logaritmo discreto su E in base B (base B (ECDLPECDLP, , Elliptic Curve Discrete Logarithm Elliptic Curve Discrete Logarithm ProblemProblem) è) è

dato dato PPEE trovare, se esiste, trovare, se esiste, xxZZ tale che tale che xB=PxB=P

Crittosistemi su curve ellittiche Crittosistemi su curve ellittiche 2 2

Page 44: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

OsservazioniOsservazioni

• Per i campi finiti esiste un algoritmo, detto Per i campi finiti esiste un algoritmo, detto index index calculuscalculus, che permette di calcolare il logaritmo , che permette di calcolare il logaritmo discreto (ovvero di risolvere il DLP) con complessità discreto (ovvero di risolvere il DLP) con complessità subesponenzialesubesponenziale

• Tale algoritmo si fonda sulla definizione delle Tale algoritmo si fonda sulla definizione delle operazioni di somma e prodotto, e quindi non è operazioni di somma e prodotto, e quindi non è applicabile sulle curve ellittiche che possiedono applicabile sulle curve ellittiche che possiedono esclusivamente una struttura additivaesclusivamente una struttura additiva

• La sicurezza dei crittosistemi su curve ellittiche La sicurezza dei crittosistemi su curve ellittiche risiede nell’attuale non conoscenza di algoritmi risiede nell’attuale non conoscenza di algoritmi subesponenziali per risolvere l’ECDLPsubesponenziali per risolvere l’ECDLP

• Esistono tuttavia algoritmi subesponenziali per Esistono tuttavia algoritmi subesponenziali per particolari classi di curve ellittiche (in particolare per particolari classi di curve ellittiche (in particolare per le curve supersingolari)le curve supersingolari)

Crittosistemi su curve ellittiche Crittosistemi su curve ellittiche 3 3

Page 45: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Supponiamo che Alice e Bob vogliano accordarsi su Supponiamo che Alice e Bob vogliano accordarsi su una chiave segreta da utilizzare per un crittosistema una chiave segreta da utilizzare per un crittosistema classicoclassico

1)1) Alice e Bob devono fissare un campo finito ZAlice e Bob devono fissare un campo finito Znn, dove n=p, dove n=prr, , ed una curva ellittica E definita su questo campoed una curva ellittica E definita su questo campo

2)2) Il passo successivo consiste nel rendere pubblico un punto Il passo successivo consiste nel rendere pubblico un punto BBE, detto E, detto basebase (che avrà un ruolo analogo al generatore g (che avrà un ruolo analogo al generatore g nel caso del Diffienel caso del DiffieHellman classico); non è necessario che Hellman classico); non è necessario che B sia un generatore di E, ma si suppone che abbia ordine o B sia un generatore di E, ma si suppone che abbia ordine o “sufficientemente” grande“sufficientemente” grande

3)3) Alice sceglie un numero a costituito dallo stesso numero di Alice sceglie un numero a costituito dallo stesso numero di cifre (o), che terrà segreto, ed invia pubblicamente a Bob la cifre (o), che terrà segreto, ed invia pubblicamente a Bob la quantità aBquantità aB

4)4) Allo stesso modo, Bob sceglie b dello stesso ordine di Allo stesso modo, Bob sceglie b dello stesso ordine di grandezza ed invia ad Alice la quantità bBgrandezza ed invia ad Alice la quantità bB

5)5) Entrambi possono calcolare abB che servirà da chiave Entrambi possono calcolare abB che servirà da chiave segretasegreta

DiffieDiffieHellman su curve ellittiche Hellman su curve ellittiche

Page 46: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Sia data la curva ellittica ySia data la curva ellittica y22=x=x33xx11 e il suo punto e il suo punto B(1;1)B(1;1)

Alice sceglie a=2, calcola aB e lo pubblica Alice sceglie a=2, calcola aB e lo pubblica aB=(2;aB=(2;3)3)

Bob sceglie b=3, calcola bB e lo pubblica Bob sceglie b=3, calcola bB e lo pubblica bB= bB= (13;47)(13;47)

La chiave segreta è abB, cioè il punto di La chiave segreta è abB, cioè il punto di coordinate 7082/2209 e 615609/103823coordinate 7082/2209 e 615609/103823

Esempio Esempio

Page 47: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Viene fissata una curva ellittica E su un campo ZViene fissata una curva ellittica E su un campo Znn ed ed un punto Bun punto BEE

Ogni utente sceglie un intero casuale a, che Ogni utente sceglie un intero casuale a, che rappresenterà la sua chiave segreta, e pubblica aBrappresenterà la sua chiave segreta, e pubblica aB

Se Alice vuole spedire a Bob il messaggio MSe Alice vuole spedire a Bob il messaggio ME, si E, si attua il protocollo seguenteattua il protocollo seguente1)1) Alice sceglie un intero casuale k ed invia a Bob la Alice sceglie un intero casuale k ed invia a Bob la

coppia (kB, Mcoppia (kB, Mk(bB)), dove (bB) e la chiave pubblica k(bB)), dove (bB) e la chiave pubblica di Bobdi Bob

2)2) Bob può decodificare il messaggio originale Bob può decodificare il messaggio originale calcolandocalcolando

M=MM=Mk(bB)k(bB)b(kB)b(kB)

utilizzando la propria chiave segreta b utilizzando la propria chiave segreta b È evidente che un intruso che sapesse risolvere il È evidente che un intruso che sapesse risolvere il

problema ECDLP potrebbe ricavare b e da questo problema ECDLP potrebbe ricavare b e da questo risalire al paintextrisalire al paintext

ElGamal su curve ellittiche ElGamal su curve ellittiche

Page 48: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Il programma Il programma PGPPGP ( (Pretty Good PrivacyPretty Good Privacy, , Philip R. Philip R. Zimmerman, 1991) è a chiave pubblica e utilizza Zimmerman, 1991) è a chiave pubblica e utilizza il seguente protocollo di comunicazione:il seguente protocollo di comunicazione:• Un utente invia la propria chiave pubblica ad un Un utente invia la propria chiave pubblica ad un

corrispondente; l’eventuale intercettazione è corrispondente; l’eventuale intercettazione è irrilevante; chiunque vi abbia accesso, infatti, può irrilevante; chiunque vi abbia accesso, infatti, può spedire posta cifrata al proprietario della chiave spedire posta cifrata al proprietario della chiave privata, ma una volta effettuata la cifratura di un privata, ma una volta effettuata la cifratura di un messaggio, nemmeno l’autore è in grado di messaggio, nemmeno l’autore è in grado di rileggerlorileggerlo

• Il corrispondente codifica il messaggio con la chiave Il corrispondente codifica il messaggio con la chiave pubblica ricevuta e lo invia al proprietario della pubblica ricevuta e lo invia al proprietario della chiave; se anche il messaggio venisse intercettato, chiave; se anche il messaggio venisse intercettato, solo il legittimo destinatario, in possesso della solo il legittimo destinatario, in possesso della chiave privata, è in grado di decifrarlochiave privata, è in grado di decifrarlo

““What one man can invent another can discover.” What one man can invent another can discover.” [Sherlock Holmes] [Sherlock Holmes]

The Adventure of the Solitary Cyclist, Sir Arthur Conan DoyleThe Adventure of the Solitary Cyclist, Sir Arthur Conan Doyle

PGP PGP 1 1

Page 49: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Chiave di sessioneChiave di sessione• Poiché la cifratura asimmetrica è molto più lenta Poiché la cifratura asimmetrica è molto più lenta

della crittografia simmetrica, la tecnologia PGP della crittografia simmetrica, la tecnologia PGP utilizza un approccio ibrido al problema della utilizza un approccio ibrido al problema della sicurezza:sicurezza: Il messaggio viene inizialmente cifrato con un Il messaggio viene inizialmente cifrato con un

algoritmo di cifratura a chiave segreta (algoritmo di cifratura a chiave segreta (IDEAIDEA o o CASTCAST): viene automaticamente creata una chiave ): viene automaticamente creata una chiave casuale temporanea, detta casuale temporanea, detta chiave di sessionechiave di sessione, che , che viene utilizzata per cifrare soltanto quel documentoviene utilizzata per cifrare soltanto quel documento

La chiave di sessione viene a sua volta cifrata La chiave di sessione viene a sua volta cifrata mediante la chiave pubblica del ricevente (RSA o mediante la chiave pubblica del ricevente (RSA o DiffieDiffieHellman)Hellman)

• Quando il messaggio giunge a destinazione, il Quando il messaggio giunge a destinazione, il ricevente utilizza la propria chiave privata per ricevente utilizza la propria chiave privata per decifrare la chiave di sessione, che poi impiega decifrare la chiave di sessione, che poi impiega per decifrare il messaggioper decifrare il messaggio

PGP PGP 2 2

Page 50: I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini monica@ing.unisi.it.

Firma digitaleFirma digitale• Per essere certo della provenienza di un Per essere certo della provenienza di un

messaggio, il destinatario può richiedere al messaggio, il destinatario può richiedere al mittente di apporre al messaggio la propria firma mittente di apporre al messaggio la propria firma digitale, utilizzando la propria chiave privata: digitale, utilizzando la propria chiave privata: viene così creato un file cifrato che non può viene così creato un file cifrato che non può essere duplicato in alcun modoessere duplicato in alcun modo

• Chiunque sia in possesso della chiave pubblica del Chiunque sia in possesso della chiave pubblica del mittente può leggere la firma ed identificare la mittente può leggere la firma ed identificare la provenienza del messaggioprovenienza del messaggio

• Un documento, cui sia stata apposta una firma Un documento, cui sia stata apposta una firma digitale, non può essere falsificato, né digitale, non può essere falsificato, né disconosciutodisconosciuto

• La possibilità di autenticare la provenienza e la La possibilità di autenticare la provenienza e la sicurezza dei messaggi digitali hanno aperto la sicurezza dei messaggi digitali hanno aperto la strada all’estrada all’ecommerce: la cifratura e le firme commerce: la cifratura e le firme digitali, infatti, hanno reso “sicuri” i pagamenti via digitali, infatti, hanno reso “sicuri” i pagamenti via Internet tramite carta di creditoInternet tramite carta di credito

PGP PGP 3 3