La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini

Presentazioni simili


Presentazione sul tema: "I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini"— Transcript della presentazione:

1 I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini

2 Se luso di tecniche crittografiche per proteggere i documenti è antico quanto la scrittura stessa, solo lavvento del computer ha permesso la realizzazione pratica dei sistemi crittografici di nuova concezione, basati su principi impossibili da applicarsi con sistemi manuali o meccanici Se luso di tecniche crittografiche per proteggere i documenti è antico quanto la scrittura stessa, solo lavvento del computer ha permesso la realizzazione pratica dei sistemi crittografici di nuova concezione, basati su principi impossibili da applicarsi con sistemi manuali o meccanici Si tratta di una nuova classe di cifrari che godono di importanti proprietà: Si tratta di una nuova classe di cifrari che godono 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 crittografia classici, primo fra tutti quello della gestione e distribuzione delle chiavisono immuni dai principali problemi dei sistemi di crittografia classici, primo fra tutti quello della gestione e distribuzione delle chiavi sono in grado di fornire servizi aggiuntivi quali la firma elettronica e la certificazione del mittentesono in grado di fornire servizi aggiuntivi quali la firma elettronica e la certificazione del mittente I cifrari a chiave pubblica 1

3 Tutti si basano sul concetto di chiave asimmetrica, del tutto assente nella crittografia classica Tutti si basano sul concetto di chiave asimmetrica, del tutto assente nella crittografia classica Infatti, lo svantaggio principale dei metodi a chiave privata è che richiedono la comunicazione della chiave fra mittente e ricevente, su un canale sicuro, prima della trasmissione di qualsiasi messaggio cifrato… Infatti, lo svantaggio principale dei metodi a chiave privata è che richiedono la comunicazione della chiave fra mittente e ricevente, su un canale sicuro, prima della trasmissione di qualsiasi messaggio cifrato… POTREBBE ESSERE MOLTO DIFFICILE DA REALIZZARE!POTREBBE ESSERE MOLTO DIFFICILE DA REALIZZARE! Per esempio, se i corrispondenti vivono lontani e decidono di comunicare via e mail, non avranno accesso a nessun canale ragionevolmente sicuro per lo scambio della chiave Per esempio, se i corrispondenti vivono lontani e decidono di comunicare via e mail, non avranno accesso a nessun canale ragionevolmente sicuro per lo scambio della chiave I cifrari a chiave pubblica 2

4 I cifrari a chiave pubblica 3 Cifrario simmetrico Cifrario asimmetrico

5 Le basi teoriche della crittografia moderna risalgono a meno di 40 anni fa, a partire dal 1969, con le prime ricerche di James Ellis, del quartier generale governativo delle comunicazioni britanniche (GCHQ) Le basi teoriche della crittografia moderna risalgono a meno di 40 anni fa, a partire dal 1969, con le prime ricerche di James Ellis, del quartier generale governativo delle comunicazioni britanniche (GCHQ) Lidea dei crittosistemi a chiave pubblica è dovuta a Withfield Diffie e Martin Hellman (1976), mentre la prima realizzazione pratica si ha lanno successivo, ad opera di Ronald Rivest, Adi Shamir e Leonard Adleman, ricercatori al MIT (Massachusetts Institute of Technology) che formularono RSA Lidea dei crittosistemi a chiave pubblica è dovuta a Withfield Diffie e Martin Hellman (1976), mentre la prima realizzazione pratica si ha lanno successivo, ad opera di Ronald Rivest, Adi Shamir e Leonard Adleman, ricercatori al MIT (Massachusetts Institute of Technology) che formularono RSA I cifrari a chiave pubblica 4

6 Diffie ed Hellman, pubblicarono un lavoro teorico fondamentale nel quale, ipotizzando di poter disporre di un cifrario asimmetrico, dimostravano la fattibilità di sistemi crittografici di nuovo tipo, adatti alla crittografia di massa, basati sullimpiego di chiavi pubbliche Diffie ed Hellman, pubblicarono un lavoro teorico fondamentale nel quale, ipotizzando di poter disporre di un cifrario asimmetrico, dimostravano la fattibilità di sistemi crittografici di nuovo tipo, adatti alla crittografia di massa, basati sullimpiego di chiavi pubbliche Con i cifrari a chiave pubblica si inizia a parlare distrong encryption, crittografia forte Con i cifrari a chiave pubblica si inizia a parlare di strong encryption, crittografia forte Nella pratica, un cifrario a chiave pubblica è dotato di due chiavi distinte, che sono una l inversa dellaltra: se una viene usata per la cifratura, la seconda deve essere usata in decifratura, e viceversa Nella pratica, un cifrario a chiave pubblica è dotato di due chiavi distinte, che sono una l inversa dellaltra: se una viene usata per la cifratura, la seconda deve essere usata in decifratura, e viceversa Punto fondamentale del crittosistema è che le due chiavi devono essere indipendenti: ossia la conoscenza di una delle due chiavi non deve dare alcuna informazione utile alla ricostruzione dellaltra Punto fondamentale del crittosistema è che le due chiavi devono essere indipendenti: ossia la conoscenza di una delle due chiavi non deve dare alcuna informazione utile alla ricostruzione dellaltra I cifrari a chiave pubblica 5

7 I crittosistemi a chiave pubblica rendono il calcolo di d k, a partire da e k, computazionalmente irrealizzabile e k può essere resa pubblica I crittosistemi a chiave pubblica rendono il calcolo di d k, a partire da e k, computazionalmente irrealizzabile e k può essere resa pubblica Il mittente potrà inviare il messaggio cifrato utilizzando e k, ma solo il ricevente autorizzato sarà in grado di decifrarlo, poiché sarà lunico a conoscere d k Il mittente potrà inviare il messaggio cifrato utilizzando e k, ma solo il ricevente autorizzato sarà in grado di decifrarlo, poiché sarà lunico a conoscere d k I cifrari a chiave pubblica 6

8 Vantaggi Vantaggi La chiave pubblica può essere trasmessa tramite un canale insicuro, in quanto la sua conoscenza da parte di terzi non è sufficiente a mettere in pericolo la sicurezza dei dati cifrati con essa; ciascuna chiave segreta resta sotto la responsabilità del solo utente proprietario La chiave pubblica può essere trasmessa tramite un canale insicuro, in quanto la sua conoscenza da parte di terzi non è sufficiente a mettere in pericolo la sicurezza dei dati cifrati con essa; ciascuna chiave segreta resta sotto la responsabilità del solo utente proprietario In un sistema a chiave segreta per ogni possibile coppia di utenti deve esistere una chiave: per n utenti occorrono n ( n 1)/2 chiavi In un sistema a chiave segreta per ogni possibile coppia di utenti deve esistere una chiave: per n utenti occorrono n ( n 1)/2 chiavi In un sistema a chiave pubblica, deve esistere una coppia di chiavi per ogni possibile utente, ovvero per n utenti occorrono 2 n chiavi In un sistema a chiave pubblica, deve esistere una coppia di chiavi per ogni possibile utente, ovvero per n utenti occorrono 2 n chiavi I cifrari a chiave pubblica 7

9 Svantaggi Svantaggi Gli algoritmi simmetrici e quelli asimmetrici necessitano di chiavi di lunghezza diversa per raggiungere lo stesso grado di sicurezza teorica Gli algoritmi simmetrici e quelli asimmetrici necessitano di chiavi di lunghezza diversa per raggiungere lo stesso grado di sicurezza teorica Generalmente, gli algoritmi asimmetrici sono molto più lenti da eseguire, rispetto a quelli simmetrici, e pertanto di uso poco agevole per la cifratura di messaggi lunghi Generalmente, gli algoritmi asimmetrici sono molto più lenti da eseguire, rispetto a quelli simmetrici, e pertanto di uso poco agevole per la cifratura di messaggi lunghi I cifrari a chiave pubblica 8

10 Dal 1977, sono stati formalizzati diversi crittosistemi a chiave pubblica, la cui sicurezza è affidata alla difficoltà di risoluzione di problemi matematici diversi Dal 1977, sono stati formalizzati diversi crittosistemi a chiave pubblica, la cui sicurezza è affidata alla difficoltà di risoluzione di problemi matematici diversi RSA (1977) la sicurezza è basata sulla difficoltà nella fattorizzazione di interi grandi RSA (1977) la sicurezza è basata sulla difficoltà nella fattorizzazione di interi grandi Merkle Hellman Knapsack (1978) la sicurezza del sistema è basata sulla NP completezza del problema della somma di sottoinsiemi Merkle Hellman Knapsack (1978) la sicurezza del sistema è basata sulla NP completezza del problema della somma di sottoinsiemi Dato un insieme di interi, è possibile enucleare un sottoinsieme di somma nulla? Dato un insieme di interi, è possibile enucleare un sottoinsieme di somma nulla? Tutti i crittosistemi di questo tipo si sono rivelati insicuri, tranne il crittosistema di Chor Rivest Tutti i crittosistemi di questo tipo si sono rivelati insicuri, tranne il crittosistema di Chor Rivest I cifrari a chiave pubblica 9

11 McEliece (1978) è basato sulla teoria algebrica dei codici, ed è a tuttoggi ritenuto sicuro; la sicurezza è dovuta alla difficoltà del problema di decodificare un codice lineare (che è NP completo) McEliece (1978) è basato sulla teoria algebrica dei codici, ed è a tuttoggi ritenuto sicuro; la sicurezza è dovuta alla difficoltà del problema di decodificare un codice lineare (che è NP completo) ElGamal (1984) la sicurezza è basata sulla difficoltà del calcolo del logaritmo discreto in campi finiti ElGamal (1984) la sicurezza è basata sulla difficoltà del calcolo del logaritmo discreto in campi finiti Curve ellittiche sono crittosistemi che traggono origine da sistemi tipo ElGamal, ma operano sulle curve ellittiche piuttosto che sui campi finiti; sono i sistemi più sicuri, anche per chiavi piccole Curve ellittiche sono crittosistemi che traggono origine da sistemi tipo ElGamal, ma operano sulle curve ellittiche piuttosto che sui campi finiti; sono i sistemi più sicuri, anche per chiavi piccole I cifrari a chiave pubblica 10

12 I sistemi a chiave pubblica non possono garantire la sicurezza incondizionata, poiché una spia, essendo venuta in possesso di un testo cifrato y, può codificare ogni possibile testo in chiaro x, utilizzando e k, che è pubblica, fino a trovare lunico x tale che y=e k (x) I sistemi a chiave pubblica non possono garantire la sicurezza incondizionata, poiché una spia, essendo venuta in possesso di un testo cifrato y, può codificare ogni possibile testo in chiaro x, utilizzando e k, che è pubblica, fino a trovare lunico x tale che y=e k (x) Per i sistemi a chiave pubblica è sensato studiare la sicurezza computazionale Per i sistemi a chiave pubblica è sensato studiare la sicurezza computazionale A questo scopo, può essere concettualmente utile pensare ad un sistema a chiave pubblica, in termini astratti, come ad una funzione unidirezionale A questo scopo, può essere concettualmente utile pensare ad un sistema a chiave pubblica, in termini astratti, come ad una funzione unidirezionale I cifrari a chiave pubblica 11

13 La funzione pubblica di codifica e k deve essere semplice da calcolare, ma difficile da invertire, per tutti tranne che per il ricevente: una funzione siffatta è una funzione one way (unidirezionale) La funzione pubblica di codifica e k deve essere semplice da calcolare, ma difficile da invertire, per tutti tranne che per il ricevente: una funzione siffatta è una funzione one way (unidirezionale) e k deve essere una funzione iniettiva e one way e k deve essere una funzione iniettiva e one way Le funzioni unidirezionali giocano un ruolo fondamentale nella costruzione di crittosistemi a chiave pubblica Le funzioni unidirezionali giocano un ruolo fondamentale nella costruzione di crittosistemi a chiave pubblica Sfortunatamente, anche se vi sono varie classi di funzioni che sono ritenute unidirezionali, non esiste per nessuna di esse una prova certa Sfortunatamente, anche se vi sono varie classi di funzioni che sono ritenute unidirezionali, non esiste per nessuna di esse una prova certa I cifrari a chiave pubblica 12

14 Sia n il prodotto di due numeri primi grandi, p e q, e sia b un intero positivo Sia n il prodotto di due numeri primi grandi, p e q, e sia b un intero positivo : Z n Z n definita da : Z n Z n definita da (x) = x b (mod n) (x) = x b (mod n) è ritenuta essere una funzione unidirezionale (e, di fatto, è la funzione di codifica in RSA) Tuttavia, lessere one way non è una proprietà sufficiente per, poiché il ricevente autorizzato deve essere in grado di decifrare i messaggi in maniera efficiente Tuttavia, lessere one way non è una proprietà sufficiente per, poiché il ricevente autorizzato deve essere in grado di decifrare i messaggi in maniera efficiente I cifrari a chiave pubblica 13

15 Il ricevente deve possedere una trapdoor una sorta di canale preferenziale, una scappatoia che gli permetta di accedere rapidamente allinformazione codificata, cioè di decifrare facilmente il testo cifrato, grazie alla sua conoscenza di informazione aggiuntiva su k Il ricevente deve possedere una trapdoor una sorta di canale preferenziale, una scappatoia che gli permetta di accedere rapidamente allinformazione codificata, cioè di decifrare facilmente il testo cifrato, grazie alla sua conoscenza di informazione aggiuntiva su k e k deve essere iniettiva, one way, trapdoor e k deve essere iniettiva, one way, trapdoor I cifrari a chiave pubblica 14

16 I principali problemi sui quali si basano i sistemi crittografici moderni sono: I principali problemi sui quali si basano i sistemi crittografici moderni sono: Il problema della fattorizzazione di interi grandi (Integer Factorization Problem – IFP ) Il problema della fattorizzazione di interi grandi (Integer Factorization Problem – IFP ) Il problema del calcolo del logaritmo discreto su campi finiti (Discrete Logarithm Problem – DLP ) Il problema del calcolo del logaritmo discreto su campi finiti (Discrete Logarithm Problem – DLP ) Il problema del calcolo del logaritmo discreto su curve ellittiche (Elliptic Curve Discrete Logarithm Problem – ECDLP ) Il problema del calcolo del logaritmo discreto su curve ellittiche (Elliptic Curve Discrete Logarithm Problem – ECDLP ) Riassumendo...

17 Un campo è un insieme G che soddisfa le seguenti proprietà: Un campo è un insieme G che soddisfa le seguenti proprietà: Sono definite due operazioni, genericamente indicate con + e (e che nel caso dei reali/complessi sono effettivamente la somma e il prodotto) Sono definite due operazioni, genericamente indicate con + e (e che nel caso dei reali/complessi sono effettivamente la somma e il prodotto) La somma ed il prodotto sono operazioni interne al campo La somma ed il prodotto sono operazioni interne al campo Valgono le proprietà commutativa e associativa per somma e prodotto Valgono le proprietà commutativa e associativa per somma e prodotto Vale la proprietà distributiva tra prodotto e somma (sia destra che sinistra) Vale la proprietà distributiva tra prodotto e somma (sia destra che sinistra) Esiste, ed è unico, lelemento neutro, sia per la somma che per il prodotto (0 ed 1, rispettivamente) Esiste, ed è unico, lelemento neutro, sia per la somma che per il prodotto (0 ed 1, rispettivamente) Per ciascun elemento del campo, esiste lelemento inverso relativamente a somma e prodotto (lopposto per la somma, il reciproco per il prodotto) Per ciascun elemento del campo, esiste lelemento inverso relativamente a somma e prodotto (lopposto per la somma, il reciproco per il prodotto) I campi vettoriali 1

18 La cardinalità dellinsieme G viene indicata con |G| ed è chiamata ordine del campo: se questa è finita allora G è un campo finito La cardinalità dellinsieme G viene indicata con |G| ed è chiamata ordine del campo: se questa è finita allora G è un campo finito Sia Z n ={0, 1, 2, 3,..., n 1} un campo finito Sia Z n ={0, 1, 2, 3,..., n 1} un campo finito Se n=p q, dove p è un numero primo e q un intero positivo, p e q sono detti rispettivamente caratteristica e grado di estensione del campo Se n=p q, dove p è un numero primo e q un intero positivo, p e q sono detti rispettivamente caratteristica e grado di estensione del campo g è un generatore per il campo finito Z n se ogni elemento di Z n può essere scritto come potenza di g (escluso lo 0) g è un generatore per il campo finito Z n se ogni elemento di Z n può essere scritto come potenza di g (escluso lo 0) I campi vettoriali 2

19 RSA è realizzato in Z n, dove n è il prodotto di due numeri primi distinti p e q (n)=(p 1)(q 1) (numero degli interi positivi minori di n primi con n) RSA è realizzato in Z n, dove n è il prodotto di due numeri primi distinti p e q (n)=(p 1)(q 1) (numero degli interi positivi minori di n primi con n) Sia n =pq, con p e q numeri primi. Siano P=C=Z n Sia K ={(n,p,q,a,b): n =pq, p,q primi, ab 1 (mod (n))} Per k=(n,p,q,a,b): e k (x) = x b (mod n) d k (y) = y a (mod n) x,y Z n I valori di n e b sono pubblici, p,q ed a segreti Il crittosistema RSA 1

20 Le operazioni di codifica e decodifica sono inverse Le operazioni di codifica e decodifica sono inverse Infatti, poiché ab 1 (mod (n)), ab=t (n)+1, per qualche intero t 1 Infatti, poiché ab 1 (mod (n)), ab=t (n)+1, per qualche intero t 1 Sia Z n * linsieme dei residui modulo n primi con n Sia Z n * linsieme dei residui modulo n primi con n Sia x Z n *, allora… Sia x Z n *, allora… (x b ) a x t (n)+1 (mod n) (x (n) ) t x (mod n) (x b ) a x t (n)+1 (mod n) (x (n) ) t x (mod n) 1 t x (mod n) x (mod n) 1 t x (mod n) x (mod n) (x (n) =1 per il teorema di Eulero che asserisce che Z n * è un gruppo moltiplicativo di ordine (n)) Il crittosistema RSA 2

21 Supponiamo che siano p=101 e q=113 n=11413 e (n)= =11200 Supponiamo che siano p=101 e q=113 n=11413 e (n)= =11200 Poiché 11200= , un intero b può essere utilizzato quale esponente di codifica se e solo se b non è divisibile per 2, 5 o 7 Poiché 11200= , un intero b può essere utilizzato quale esponente di codifica se e solo se b non è divisibile per 2, 5 o 7 Il proprietario della chiave privata non fattorizzerà (n), verificherà solo che MCD( (n),b)=1 utilizzando lalgoritmo di Euclide Il proprietario della chiave privata non fattorizzerà (n), verificherà solo che MCD( (n),b)=1 utilizzando lalgoritmo di Euclide Supponiamo che scelga b=3533; allora lalgoritmo di Euclide calcola b 1 =6597 (mod 11200) lesponente di decodifica è a=6597 Supponiamo che scelga b=3533; allora lalgoritmo di Euclide calcola b 1 =6597 (mod 11200) lesponente di decodifica è a=6597 Esempio di sistema RSA insicuro 1

22 Il proprietario della chiave privata pubblica n=11413 e b=3533 Il proprietario della chiave privata pubblica n=11413 e b=3533 Supponiamo che il suo corrispondente voglia inviargli il testo 9726, egli calcolerà Supponiamo che il suo corrispondente voglia inviargli il testo 9726, egli calcolerà (mod 11413)=5761 ed invierà il testo cifrato 5761 sul canale Quando il proprietario della chiave privata riceve y=5761, utilizza lesponente di decifratura segreto a per calcolare Quando il proprietario della chiave privata riceve y=5761, utilizza lesponente di decifratura segreto a per calcolare (mod 11413)=9726 Esempio di sistema RSA insicuro 2

23 La sicurezza del crittosistema RSA è basata sulla speranza che e k (x)=x b (mod n) sia one way, così da rendere computazionalmente impossibile, per una spia, decrittare il testo cifrato La sicurezza del crittosistema RSA è basata sulla speranza che e k (x)=x b (mod n) sia one way, così da rendere computazionalmente impossibile, per una spia, decrittare il testo cifrato La scappatoia (trapdoor) che permette al proprietario della chiave privata di decifrare il crittogramma è costituita dalla conoscenza della fattorizzazione di n=pq La scappatoia (trapdoor) che permette al proprietario della chiave privata di decifrare il crittogramma è costituita dalla conoscenza della fattorizzazione di n=pq Dato che il proprietario della chiave privata conosce p e q, può calcolare (n)=(p 1)(q 1) e quindi lesponente di decifratura a, utilizzando lalgoritmo di Euclide esteso Dato che il proprietario della chiave privata conosce p e q, può calcolare (n)=(p 1)(q 1) e quindi lesponente di decifratura a, utilizzando lalgoritmo di Euclide esteso Sicurezza di RSA

24 La potenza di un numero in aritmetica finita si definisce come La potenza di un numero in aritmetica finita si definisce come a b =x (mod n) Come nellaritmetica ordinaria, è possibile definire unoperazione inversa rispetto allesponente: il logaritmo Come nellaritmetica ordinaria, è possibile definire unoperazione inversa rispetto allesponente: il logaritmo Per definizione, il logaritmo è lesponente a cui si deve elevare la base a per ottenere il valore x: Per definizione, il logaritmo è lesponente a cui si deve elevare la base a per ottenere il valore x: b=log a x (mod n) Tale logaritmo si dice logaritmo discreto Se il calcolo della potenza è relativamente semplice, il calcolo del logaritmo è computazionalmente molto complesso, può avere più soluzioni o nessuna Se il calcolo della potenza è relativamente semplice, il calcolo del logaritmo è computazionalmente molto complesso, può avere più soluzioni o nessuna Il logaritmo discreto 1

25 Per esempio, in Z 7, si ha: Per esempio, in Z 7, si ha: 2 0 = = = = = = = 1 e quindi, il log 2 4 è pari a 2 ma anche a 5; viceversa non esistono log 2 3, log 2 5, log 2 6 In generale, si ritiene che il problema del calcolo del logaritmo discreto sia difficile come il problema della fattorizzazione di numeri grandi, anche se non esiste attualmente una dimostrazione dellasserto In generale, si ritiene che il problema del calcolo del logaritmo discreto sia difficile come il problema della fattorizzazione di numeri grandi, anche se non esiste attualmente una dimostrazione dellasserto Il logaritmo discreto 2

26 È realizzato in Z n, con n numero primo e g generatore di Z n, e si basa sulla difficoltà di calcolo dellintero k tale che p=g k (mod n), noti p, g, ed n È realizzato in Z n, con n numero primo e g generatore di Z n, e si basa sulla difficoltà di calcolo dellintero k tale che p=g k (mod n), noti p, g, ed n Alice e Bob vogliono scambiarsi un messaggio Alice e Bob vogliono scambiarsi un messaggio Siano n e g due numeri interi che soddisfano le seguenti proprietà:Siano n e g due numeri interi che soddisfano le seguenti proprietà: n è un numero primo grande ( cifre) n è un numero primo grande ( cifre) g

27 Alice e Bob pubblicano rispettivamente key pubAlice =h e key pubBob =k Alice e Bob pubblicano rispettivamente key pubAlice =h e key pubBob =k Alice calcola key AliceBob =k a (mod n) e la usa come chiave per crittare i messaggi diretti a Bob Alice calcola key AliceBob =k a (mod n) e la usa come chiave per crittare i messaggi diretti a Bob Bob calcola key BobAlice =h b (mod n) e la usa come chiave per crittare i messaggi diretti ad Alice Bob calcola key BobAlice =h b (mod n) e la usa come chiave per crittare i messaggi diretti ad Alice key AliceBob =key BobAlice ? key AliceBob =key BobAlice ? k a (mod n)=(g b (mod n)) a (mod n)=g b a (mod n) =g a b (mod n)=(g a (mod n)) b (mod n) =g a b (mod n)=(g a (mod n)) b (mod n) =h b (mod n) =h b (mod n) k_s=key AliceBob =key BobAlice è la chiave di sessione k_s=key AliceBob =key BobAlice è la chiave di sessione Metodo di Diffie Hellman per lo scambio di chiavi 2

28 Dopo che Alice e Bob hanno generato una chiave di sessione, possono scambiarsi messaggi utilizzando un qualsiasi cifrario simmetrico Dopo che Alice e Bob hanno generato una chiave di sessione, possono scambiarsi messaggi utilizzando un qualsiasi cifrario simmetrico Il metodo di Diffie Hellman è di fatto un protocollo sicuro per lo scambio di chiavi, da utilizzarsi in crittosistemi simmetrici Il metodo di Diffie Hellman è di fatto un protocollo sicuro per lo scambio di chiavi, da utilizzarsi in crittosistemi simmetrici Ma… quanto sicuro ? Ma… quanto sicuro ? Il problema del calcolo del logaritmo discreto è computazionalmente intrattabile con la potenza di calcolo attuale, almeno per n intero sufficientemente grande lungo qualche centinaio di bitIl problema del calcolo del logaritmo discreto è computazionalmente intrattabile con la potenza di calcolo attuale, almeno per n intero sufficientemente grande lungo qualche centinaio di bit Metodo di Diffie Hellman per lo scambio di chiavi 3

29 ElGamal è realizzato in Z n, con n numero primo e g generatore di Z n ElGamal è realizzato in Z n, con n numero primo e g generatore di Z n Sia n un numero primo. Siano P=C=Z n Sia K ={(n,g,a,c,b,d,h): g generatore di Z n, a=g c, b=g d } Per k=(n,g,a,c,b,d,h): (g h (mod n), e k (x)=x b h (mod n)) (g h (mod n), e k (x)=x b h (mod n)) d k (y) = (g h (mod n)) d (y (mod n)) x,y Z n I valori di n, g, a, e b sono pubblici, c, d ed h segreti Il crittosistema di ElGamal

30 Negli ultimi tempi linteresse degli appassionati di teoria dei numeri verso le curve ellittiche è andato crescendo, forse a causa del loro impiego per la famosa dimostrazione dellultimo teorema di Fermat da parte di Andrew Wiles Negli ultimi tempi linteresse degli appassionati di teoria dei numeri verso le curve ellittiche è andato crescendo, forse a causa del loro impiego per la famosa dimostrazione dellultimo teorema di Fermat da parte di Andrew Wiles I cifrari basati sulle curve ellittiche furono proposti in maniera indipendente da Victor Miller e Neal Koblitz verso la metà degli anni ottanta I cifrari basati sulle curve ellittiche furono proposti in maniera indipendente da Victor Miller e Neal Koblitz verso la metà degli anni ottanta Le curve ellittiche possono interpretarsi come una versione analogica del concetto di gruppo moltiplicativo in un campo finito Le curve ellittiche possono interpretarsi come una versione analogica del concetto di gruppo moltiplicativo in un campo finito Per comprendere come questa particolare classe di cubiche possa essere impiegata per costruire una categoria di metodi crittografici, attualmente ritenuti i più sicuri, occorre introdurne le proprietà matematiche fondamentali Per comprendere come questa particolare classe di cubiche possa essere impiegata per costruire una categoria di metodi crittografici, attualmente ritenuti i più sicuri, occorre introdurne le proprietà matematiche fondamentali Crittografia e curve ellittiche

31 oDefinizione 1 Sia K un campo di caratteristica p 2,3 e sia x 3 +ax+b, con a,b K, un polinomio cubico privo di radici multiple; una curva ellittica su K è linsieme costituito dalle coppie (x,y) con x,y K che soddisfano lequazione y 2 =x 3 ax b più un punto isolato O, detto punto allinfinito Se p=2, lequazione delle curve ellittiche può assumere le due forme… Se p=2, lequazione delle curve ellittiche può assumere le due forme… y 2 cy=x 3 ax bcurva supersingolare y 2 xy=x 3 ax b curva non supersingolare y 2 xy=x 3 ax b curva non supersingolare …e per p=3 …e per p=3 y 2 =x 3 ax 2 bx c Le curve ellittiche 1

32 Grafici delle curve ellittiche sul campo di equazione (a) y 2 =x 3 x, (b) y 2 =x 3 1, (c) y 2 =x 3 5x 6 Le curve ellittiche 2

33 oDefinizione 2 Sia E una curva ellittica su, e siano P e Q punti di E; si definiscono lopposto di P e la somma P Q, in base alle seguenti regole Se P coincide con il punto allinfinito O, allora P= O e P Q=Q, cioè O è lelemento neutro per laddizione di puntiSe P coincide con il punto allinfinito O, allora P= O e P Q=Q, cioè O è lelemento neutro per laddizione di punti Altrimenti, lopposto P di P è il punto con ascissa x uguale a quella di P ed ordinata opposta, cioè P=(x, y)Altrimenti, lopposto P di P è il punto con ascissa x uguale a quella di P ed ordinata opposta, cioè P=(x, y) Se Q= P, P Q= OSe Q= P, P Q= O Le curve ellittiche 3

34 Se P e Q hanno ascisse distinte, allora r = PQ interseca la curva E esattamente in un ulteriore punto R (se r 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, P Q= R.Se P e Q hanno ascisse distinte, allora r = PQ interseca la curva E esattamente in un ulteriore punto R (se r 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, P Q= R. Le curve ellittiche 4

35 Se P=Q, sia t la tangente alla curva in P e sia R (lunico) ulteriore punto di intersezione di t con la curva, allora P Q=2P= RSe P=Q, sia t la tangente alla curva in P e sia R (lunico) ulteriore punto di intersezione di t con la curva, allora P Q=2P= R Le curve ellittiche 5

36 Come si calcolano le coordinate di P Q ? Come si calcolano le coordinate di P Q ? Se P=(x 1,y 1 ) e Q=(x 2,y 2 ) con x 1 x 2, sia y= x lequazione della retta r per P e Q (che non è verticale); in questo caso, =(y 2 y 1 )/(x 2 x 1 ) e =y 1 x 1 ; i punti di r, (x, x ), giacciono anche sulla curva ellittica E se e solo se soddisfano luguaglianza x 3 ( x ) 2 ax b=0Se P=(x 1,y 1 ) e Q=(x 2,y 2 ) con x 1 x 2, sia y= x lequazione della retta r per P e Q (che non è verticale); in questo caso, =(y 2 y 1 )/(x 2 x 1 ) e =y 1 x 1 ; i punti di r, (x, x ), giacciono anche sulla curva ellittica E se e solo se soddisfano luguaglianza x 3 ( x ) 2 ax b=0 Due soluzioni dellequazione cubica sono note e corrispondono ai punti P e Q; poiché in un polinomio monico di grado n, la somma delle radici coincide con il coefficiente del termine di grado n 1, 2 =x 1 x 2 x 3, da cui…Due soluzioni dellequazione cubica sono note e corrispondono ai punti P e Q; poiché in un polinomio monico di grado n, la somma delle radici coincide con il coefficiente del termine di grado n 1, 2 =x 1 x 2 x 3, da cui… x 3 =[(y 2 y 1 )/(x 2 x 1 )] 2 x 1 x 2 e y 3 = y 1 [(y 2 y 1 )/(x 2 x 1 )](x 1 x 3 ) Le curve ellittiche 6

37 Se P=Q, =dy/dx= [ f (x,y)/ x]/[ f (x,y)/ y]| P, con f (x,y)=y 2 (x 3 ax b), cioè =(3x 1 2 a)/2y 1, da cui…Se P=Q, =dy/dx= [ f (x,y)/ x]/[ f (x,y)/ y]| P, con f (x,y)=y 2 (x 3 ax b), cioè =(3x 1 2 a)/2y 1, da cui… x 3 =[(3x 1 2 a)/2y 1 ] 2 2x 1 e y 3 = y 1 [(3x 1 2 a)/2y 1 ](x 1 x 3 ) I punti di una curva ellittica E formano un gruppo abeliano relativamente alloperazione di somma I punti di una curva ellittica E formano un gruppo abeliano relativamente alloperazione di somma Come in ogni gruppo abeliano, si userà la notazione nP, per indicare loperazione di somma del punto P con se stesso effettuata n volte, se n>0, ovvero la somma di P con se stesso effettuata n volte, per n negativo Come in ogni gruppo abeliano, si userà la notazione nP, per indicare loperazione di somma del punto P con se stesso effettuata n volte, se n>0, ovvero la somma di P con se stesso effettuata n volte, per n negativo Per definizione, il punto allinfinito O rappresenta il terzo punto di intersezione delle rette verticali con la curva E Per definizione, il punto allinfinito O rappresenta il terzo punto di intersezione delle rette verticali con la curva E Le curve ellittiche 7

38 Sia K il campo finito Z n, costituito da n = p q elementi Sia K il campo finito Z n, costituito da n = p q elementi Sia E una curva ellittica definita su Z n Sia E una curva ellittica definita su Z n E è composta da al più 2n 1 punti, il punto allinfinito O e 2n coppie (x,y) Z n Z n, ovvero per ciascuna delle n possibili ascisse x Z n esistono al più 2n ordinate y Z n che soddisfano lequazione di E E è composta da al più 2n 1 punti, il punto allinfinito O e 2n coppie (x,y) Z n Z n, ovvero per ciascuna delle n possibili ascisse x Z n esistono al più 2n ordinate y Z n che soddisfano lequazione di E In realtà, vale il seguente… o Teorema di Hasse Sia N il numero di punti in Z n appartenenti ad una curva ellittica E, definita su Z n ; vale la disuguaglianza |N (n 1)| 2 n Curve ellittiche su campi finiti

39 Supponiamo di codificare il plaintext x come un intero r Supponiamo di codificare il plaintext x come un intero r Sia E una curva ellittica definita su Z n, con n=p q, numero intero grande e dispari Sia E una curva ellittica definita su Z n, con n=p q, numero intero grande e dispari Un metodo probabilistico (non esistono algoritmi deterministici per risolvere questo problema!) per codificare r mediante P r può essere schematizzato come segue: Un metodo probabilistico (non esistono algoritmi deterministici per risolvere questo problema!) per codificare r mediante P r può essere schematizzato come segue: Si sceglie k (50 è sufficiente); sia 0r RkSi sceglie k (50 è sufficiente); sia 0r Rk Gli interi compresi fra 1 ed Rk possono essere scritti nella forma rk j, con 1j

40 Pertanto, dato r, per ogni 1j

41 Posto di riuscire a trovare un x c t.c. esiste y c calcolato come sopra, per jk, r può essere ricalcolato da P r =(x c,y c ) come r=[(x 1)k)], con x c x (mod n) e x Z n Posto di riuscire a trovare un x c t.c. esiste y c calcolato come sopra, per jk, r può essere ricalcolato da P r =(x c,y c ) come r=[(x 1)k)], con x c x (mod n) e x Z n Poiché f (x) è un quadrato in Z n approssimativamente nel 50% dei casi (tale probabilità vale esattamente N/2n, che è molto vicino ad ½), la probabilità che il metodo proposto fallisca nel calcolare il punto P r la cui coordinata x c è compresa fra rk 1 e rk k è 2 k Poiché f (x) è un quadrato in Z n approssimativamente nel 50% dei casi (tale probabilità vale esattamente N/2n, che è molto vicino ad ½), la probabilità che il metodo proposto fallisca nel calcolare il punto P r la cui coordinata x c è compresa fra rk 1 e rk k è 2 k Da plaintext a punti su E 3

42 I vantaggi dei crittosistemi costruiti attraverso curve ellittiche rispetto ai codici su campi finiti sono: I vantaggi dei crittosistemi costruiti attraverso curve ellittiche rispetto ai codici su campi finiti sono: Gran numero di gruppi abeliani (costituiti dai punti di una curva) che si possono costruire su uno stesso campo finitoGran numero di gruppi abeliani (costituiti dai punti di una curva) che si possono costruire su uno stesso campo finito Non esistenza di algoritmi subesponenziali per risolvere il problema del logaritmo discreto su curve non supersingolariNon esistenza di algoritmi subesponenziali per risolvere il problema del logaritmo discreto su curve non supersingolari Chiavi più corte per garantire lo stesso grado di sicurezzaChiavi più corte per garantire lo stesso grado di sicurezza Crittosistemi su curve ellittiche 1

43 Le curve ellittiche permettono di formulare un problema analogo a quello del logaritmo discreto su un campo finito (DLP, Discrete Logarithm Problem) Le curve ellittiche permettono di formulare un problema analogo a quello del logaritmo discreto su un campo finito (DLP, Discrete Logarithm Problem) Problema Problema Siano dati una curva ellittica E su Z n ed un punto B E; il problema del logaritmo discreto su E in base B (ECDLP, Elliptic Curve Discrete Logarithm Problem) è dato P E trovare, se esiste, x Z tale che xB=P Crittosistemi su curve ellittiche 2

44 Osservazioni Osservazioni Per i campi finiti esiste un algoritmo, detto index calculus, che permette di calcolare il logaritmo discreto (ovvero di risolvere il DLP) con complessità subesponenzialePer i campi finiti esiste un algoritmo, detto index calculus, che permette di calcolare il logaritmo discreto (ovvero di risolvere il DLP) con complessità subesponenziale Tale algoritmo si fonda sulla definizione delle operazioni di somma e prodotto, e quindi non è applicabile sulle curve ellittiche che possiedono esclusivamente una struttura additivaTale algoritmo si fonda sulla definizione delle operazioni di somma e prodotto, e quindi non è applicabile sulle curve ellittiche che possiedono esclusivamente una struttura additiva La sicurezza dei crittosistemi su curve ellittiche risiede nellattuale non conoscenza di algoritmi subesponenziali per risolvere lECDLPLa sicurezza dei crittosistemi su curve ellittiche risiede nellattuale non conoscenza di algoritmi subesponenziali per risolvere lECDLP Esistono tuttavia algoritmi subesponenziali per particolari classi di curve ellittiche (in particolare per le curve supersingolari)Esistono tuttavia algoritmi subesponenziali per particolari classi di curve ellittiche (in particolare per le curve supersingolari) Crittosistemi su curve ellittiche 3

45 Supponiamo che Alice e Bob vogliano accordarsi su una chiave segreta da utilizzare per un crittosistema classico Supponiamo che Alice e Bob vogliano accordarsi su una chiave segreta da utilizzare per un crittosistema classico 1)Alice e Bob devono fissare un campo finito Z n, dove n=p r, ed una curva ellittica E definita su questo campo 2)Il passo successivo consiste nel rendere pubblico un punto B E, detto base (che avrà un ruolo analogo al generatore g nel caso del Diffie Hellman classico); non è necessario che B sia un generatore di E, ma si suppone che abbia ordine o sufficientemente grande 3)Alice sceglie un numero a costituito dallo stesso numero di cifre (o), che terrà segreto, ed invia pubblicamente a Bob la quantità aB 4)Allo stesso modo, Bob sceglie b dello stesso ordine di grandezza ed invia ad Alice la quantità bB 5)Entrambi possono calcolare abB che servirà da chiave segreta Diffie Hellman su curve ellittiche

46 Sia data la curva ellittica y 2 =x 3 x 1 e il suo punto B(1;1) Sia data la curva ellittica y 2 =x 3 x 1 e il suo punto B(1;1) Alice sceglie a=2, calcola aB e lo pubblica aB=(2; 3) Alice sceglie a=2, calcola aB e lo pubblica aB=(2; 3) Bob sceglie b=3, calcola bB e lo pubblica bB= (13;47) Bob sceglie b=3, calcola bB e lo pubblica bB= (13;47) La chiave segreta è abB, cioè il punto di coordinate 7082/2209 e / La chiave segreta è abB, cioè il punto di coordinate 7082/2209 e / Esempio

47 Viene fissata una curva ellittica E su un campo Z n ed un punto B E Viene fissata una curva ellittica E su un campo Z n ed un punto B E Ogni utente sceglie un intero casuale a, che rappresenterà la sua chiave segreta, e pubblica aB Ogni utente sceglie un intero casuale a, che rappresenterà la sua chiave segreta, e pubblica aB Se Alice vuole spedire a Bob il messaggio M E, si attua il protocollo seguente Se Alice vuole spedire a Bob il messaggio M E, si attua il protocollo seguente 1)Alice sceglie un intero casuale k ed invia a Bob la coppia (kB, M k(bB)), dove (bB) e la chiave pubblica di Bob 2)Bob può decodificare il messaggio originale calcolando M=M k(bB) b(kB) utilizzando la propria chiave segreta b È evidente che un intruso che sapesse risolvere il problema ECDLP potrebbe ricavare b e da questo risalire al paintext È evidente che un intruso che sapesse risolvere il problema ECDLP potrebbe ricavare b e da questo risalire al paintext ElGamal su curve ellittiche

48 Il programma PGP (Pretty Good Privacy, Philip R. Zimmerman, 1991) è a chiave pubblica e utilizza il seguente protocollo di comunicazione: Il programma PGP (Pretty Good Privacy, Philip R. Zimmerman, 1991) è a chiave pubblica e utilizza il seguente protocollo di comunicazione: Un utente invia la propria chiave pubblica ad un corrispondente; leventuale intercettazione è irrilevante; chiunque vi abbia accesso, infatti, può spedire posta cifrata al proprietario della chiave privata, ma una volta effettuata la cifratura di un messaggio, nemmeno lautore è in grado di rileggerlo Un utente invia la propria chiave pubblica ad un corrispondente; leventuale intercettazione è irrilevante; chiunque vi abbia accesso, infatti, può spedire posta cifrata al proprietario della chiave privata, ma una volta effettuata la cifratura di un messaggio, nemmeno lautore è in grado di rileggerlo Il corrispondente codifica il messaggio con la chiave pubblica ricevuta e lo invia al proprietario della chiave; se anche il messaggio venisse intercettato, solo il legittimo destinatario, in possesso della chiave privata, è in grado di decifrarlo Il corrispondente codifica il messaggio con la chiave pubblica ricevuta e lo invia al proprietario della chiave; se anche il messaggio venisse intercettato, solo il legittimo destinatario, in possesso della chiave privata, è in grado di decifrarlo What one man can invent another can discover. [Sherlock Holmes] The Adventure of the Solitary Cyclist, Sir Arthur Conan Doyle PGP 1

49 Chiave di sessione Chiave di sessione Poiché la cifratura asimmetrica è molto più lenta della crittografia simmetrica, la tecnologia PGP utilizza un approccio ibrido al problema della sicurezza: Poiché la cifratura asimmetrica è molto più lenta della crittografia simmetrica, la tecnologia PGP utilizza un approccio ibrido al problema della sicurezza: Il messaggio viene inizialmente cifrato con un algoritmo di cifratura a chiave segreta (IDEA o CAST): viene automaticamente creata una chiave casuale temporanea, detta chiave di sessione, che viene utilizzata per cifrare soltanto quel documento Il messaggio viene inizialmente cifrato con un algoritmo di cifratura a chiave segreta (IDEA o CAST): viene automaticamente creata una chiave casuale temporanea, detta chiave di sessione, che viene utilizzata per cifrare soltanto quel documento La chiave di sessione viene a sua volta cifrata mediante la chiave pubblica del ricevente (RSA o Diffie Hellman) La chiave di sessione viene a sua volta cifrata mediante la chiave pubblica del ricevente (RSA o Diffie Hellman) Quando il messaggio giunge a destinazione, il ricevente utilizza la propria chiave privata per decifrare la chiave di sessione, che poi impiega per decifrare il messaggio Quando il messaggio giunge a destinazione, il ricevente utilizza la propria chiave privata per decifrare la chiave di sessione, che poi impiega per decifrare il messaggio PGP 2

50 Firma digitale Firma digitale Per essere certo della provenienza di un messaggio, il destinatario può richiedere al mittente di apporre al messaggio la propria firma digitale, utilizzando la propria chiave privata: viene così creato un file cifrato che non può essere duplicato in alcun modo Per essere certo della provenienza di un messaggio, il destinatario può richiedere al mittente di apporre al messaggio la propria firma digitale, utilizzando la propria chiave privata: viene così creato un file cifrato che non può essere duplicato in alcun modo Chiunque sia in possesso della chiave pubblica del mittente può leggere la firma ed identificare la provenienza del messaggio Chiunque sia in possesso della chiave pubblica del mittente può leggere la firma ed identificare la provenienza del messaggio Un documento, cui sia stata apposta una firma digitale, non può essere falsificato, né disconosciuto Un documento, cui sia stata apposta una firma digitale, non può essere falsificato, né disconosciuto La possibilità di autenticare la provenienza e la sicurezza dei messaggi digitali hanno aperto la strada alle commerce: la cifratura e le firme digitali, infatti, hanno reso sicuri i pagamenti via Internet tramite carta di credito La possibilità di autenticare la provenienza e la sicurezza dei messaggi digitali hanno aperto la strada alle commerce: la cifratura e le firme digitali, infatti, hanno reso sicuri i pagamenti via Internet tramite carta di credito PGP 3


Scaricare ppt "I cifrari a chiave pubblica: Introduzione alle curve ellittiche Monica Bianchini"

Presentazioni simili


Annunci Google