430 likes | 634 Views
Introduzione alle curve ellittiche. Riassumendo. I principali problemi sui quali si basano i sistemi crittografici moderni sono: Il problema della fattorizzazione di interi grandi ( Integer Factorization Problem – IFP )
E N D
Riassumendo... • 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 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)
Crittografia e curve ellittiche • Negli ultimi tempi l’interesse degli appassionati di teoria dei numeri verso le curve ellittiche è andato crescendo, forse a causa del loro impiego per la famosa dimostrazione dell’ultimo 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 • 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
Le curve ellittiche • Definizione 1 Sia K un campo di caratteristica p2,3 e sia x3+ax+b, con a,bK, un polinomio cubico privo di radici multiple; una curva ellittica su K è l’insieme costituito dalle coppie (x,y) con x,yK che soddisfano l’equazione y2=x3axb più un punto isolato O, detto punto all’infinito • Se p=2, l’equazione delle curve ellittiche può assumere le due forme… y2cy=x3axb curva supersingolare y2xy=x3axb curva non supersingolare • …e per p=3 y2=x3ax2bxc
Le curve ellittiche Grafici delle curve ellittiche sul campo di equazione (a) y2=x3x, (b) y2=x31, (c) y2=x35x6
Le curve ellittiche • Definizione 2 Sia E una curva ellittica su , e siano P e Q punti di E; si definiscono l’opposto di P e la somma PQ, in base alle seguenti regole • Se P coincide con il punto all’infinito O, allora P=O e PQ=Q, cioè O è l’elemento neutro per l’addizione di punti • Altrimenti, l’opposto P di P è il punto con ascissa x uguale a quella di P ed ordinata opposta, cioè P=(x,y) • Se Q=P, PQ= O
Le curve ellittiche • Se P e Q hanno ascisse distinte, allora r= PQ interseca la curva E esattamente in un ulteriore punto R (se rnon è tangente ad E in P, nel qual caso R=P, o in Q, così che R=Q); se R è distinto da P e Q, PQ=R.
Le curve ellittiche • Se P=Q, sia t la tangente alla curva in P e sia R (l’unico) ulteriore punto di intersezione di t con la curva, allora PQ=2P=R
Le curve ellittiche • Come si calcolano le coordinate di PQ ? • Se P=(x1,y1) e Q=(x2,y2) con x1x2, sia y=x l’equazione della retta r per P e Q (che non è verticale); in questo caso, =(y2y1)/(x2x1) e =y1x1; i punti di r, (x,x), giacciono anche sulla curva ellittica E se e solo se soddisfano l’uguaglianza x3(x)2axb=0
Le curve ellittiche • Due soluzioni dell’equazione 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 n1, 2=x1x2x3, da cui… x3=[(y2y1)/(x2x1)]2x1x2 e y3= y1[(y2y1)/(x2x1)](x1x3) Un polinomio si dice monico se il coefficiente del termine di grado massimo è uguale ad 1.
Le curve ellittiche • Se P=Q, =dy/dx=[f(x,y)/x]/[f(x,y)/y]|P, con f(x,y)=y2(x3axb), cioè =(3x12 a)/2y1, da cui… x3=[(3x12 a)/2y1]2 2x1 e y3= y1[(3x12a)/2y1](x1x3) • I punti di una curva ellittica E formano un gruppo abeliano relativamente all’operazione di somma
Le curve ellittiche • Come in ogni gruppo abeliano, si userà la notazione nP, per indicare l’operazione 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 all’infinito Orappresenta il “terzo punto di intersezione” delle rette verticali con la curva E
Curve ellittiche su campi finiti • Sia K il campo finito Zn, costituito da n = pq elementi • Sia E una curva ellittica definita su Zn • E è composta da al più 2n1 punti, il punto all’infinito O e 2n coppie (x,y)ZnZn, ovvero per ciascuna delle n possibili ascisse xZn esistono al più 2n ordinate yZn che soddisfano l’equazione di E In realtà, vale il seguente… • Teorema di Hasse Sia N il numero di punti in Zn appartenenti ad una curva ellittica E, definita su Zn; vale la disuguaglianza |N (n1)| 2n
Da plaintext a punti su E 1 • Supponiamo di codificare il plaintext x come un intero r • Sia E una curva ellittica definita su Zn, con n=pq, numero intero “grande” e dispari • Un metodo probabilistico (non esistono algoritmi deterministici per risolvere questo problema!) per codificare r mediante Pr può essere schematizzato come segue: • Si sceglie k (≤50 è sufficiente); sia 0≤r<R, e n>Rk • Gli interi compresi fra 1 ed Rk possono essere scritti nella forma rkj, con 1≤j<k si stabilisce una corrispondenza biunivoca fra detti interi ed un sottoinsieme degli elementi di Zn • Per esempio, ciascun numero 1≤i<Rk può essere scritto come un intero ad s cifre in base p, ciascuna cifra del quale rappresenta il relativo coefficiente di un polinomio di grado s1, corrispondente ad un elemento di Zn
Da plaintext a punti su E 2 • Pertanto, dato r, per ogni 1≤j<k, si ottiene un elemento xcZn, coincidente con rkj • Per tale xc, si calcola y2=xc3axcb, e si cerca di estrarre la radice quadrata per calcolare il corrispondente valore di yc • Se si riesce a calcolare un yc, tale che yc2=f(xc), si ottiene Pr=(xc, yc) • Se invece tale yc non esiste, allora si incrementa j di un’unità e si riprova a calcolare yc a partire xc=rkj1
Da plaintext a punti su E 3 • Posto di riuscire a trovare un xc t.c. esiste yccalcolato come sopra, per j≤k, r può essere ricalcolato da Pr=(xc,yc) come r=[(x1)k)], con xcx (mod n) e x Zn • Poiché f(x) è un quadrato in Zn 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 Pr la cui coordinata xc è compresa fra rk1 e rkk è 2k
Crittosistemi su curve ellittiche • 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 finito • Non esistenza di algoritmi subesponenziali per risolvere il problema del logaritmo discreto su curve non supersingolari • Chiavi più corte per garantire lo stesso grado di sicurezza
Crittosistemi su curve ellittiche • Le curve ellittiche permettono di formulare un problema analogo a quello del logaritmo discreto su un campo finito (DLP, Discrete Logarithm Problem) • Problema Siano dati una curva ellittica E su Zn ed un punto BE; il problema del logaritmo discreto su E in base B (ECDLP, Elliptic Curve Discrete Logarithm Problem) è dato PE trovare, se esiste, xZ tale che xB=P
Crittosistemi su curve ellittiche 3 • 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à 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 additiva • La sicurezza dei crittosistemi su curve ellittiche risiede nell’attuale non conoscenza di algoritmi subesponenziali per risolvere l’ECDLP • Esistono tuttavia algoritmi subesponenziali per particolari classi di curve ellittiche (in particolare per le curve supersingolari)
DiffieHellman su curve ellittiche • Supponiamo che Alice e Bob vogliano accordarsi su una chiave segreta da utilizzare per un crittosistema classico • Alice e Bob devono fissare un campo finito Zn, dove n=pr, ed una curva ellittica E definita su questo campo • Il passo successivo consiste nel rendere pubblico un punto BE, detto base (che avrà un ruolo analogo al generatore g nel caso del DiffieHellman classico); non è necessario che B sia un generatore di E, ma si suppone che abbia ordine o “sufficientemente” grande • Alice sceglie un numero a costituito dallo stesso numero di cifre (o), che terrà segreto, ed invia pubblicamente a Bob la quantità aB • Allo stesso modo, Bob sceglie b dello stesso ordine di grandezza ed invia ad Alice la quantità bB • Entrambi possono calcolare abB che servirà da chiave segreta
Esempio • Sia data la curva ellittica y2=x3x1e il suo punto B(1;1) • Alice sceglie a=2, calcola aB e lo pubblica aB=(2;3) • Bob sceglie b=3, calcola bB e lo pubblica bB= (13;47) • La chiave segreta è abB, cioè il punto di coordinate 7082/2209 e 615609/103823
ElGamal su curve ellittiche • Viene fissata una curva ellittica E su un campo Zn ed un punto BE • Ogni utente sceglie un intero casuale a, che rappresenterà la sua chiave segreta, e pubblica aB • Se Alice vuole spedire a Bob il messaggio ME, si attua il protocollo seguente • Alice sceglie un intero casuale k ed invia a Bob la coppia (kB, Mk(bB)), dove (bB) e la chiave pubblica di Bob • Bob può decodificare il messaggio originale calcolando M=Mk(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
PGP 1 “What one man can invent another can discover.” [Sherlock Holmes] The Adventure of the Solitary Cyclist, Sir Arthur Conan Doyle • 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; l’eventuale 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 l’autore è 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
PGP 2 • Chiave di sessione • 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 • La chiave di sessione viene a sua volta cifrata mediante la chiave pubblica del ricevente (RSA o DiffieHellman) • 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 3 • 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 • 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 • La possibilità di autenticare la provenienza e la sicurezza dei messaggi digitali hanno aperto la strada all’ecommerce: la cifratura e le firme digitali, infatti, hanno reso “sicuri” i pagamenti via Internet tramite carta di credito