Introduzione alle curve ellittiche
Sponsored Links
This presentation is the property of its rightful owner.
1 / 42

Introduzione alle curve ellittiche PowerPoint PPT Presentation


  • 66 Views
  • Uploaded on
  • Presentation posted in: General

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 )

Download Presentation

Introduzione alle curve ellittiche

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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)

    • 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 p2,3 e sia x3+ax+b, con a,bK, un polinomio cubico privo di radici multiple; una curva ellittica su K è l’insieme costituito dalle coppie (x,y) con x,yK che soddisfano l’equazione

    y2=x3axb

    più un punto isolato O, detto punto all’infinito

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

    y2cy=x3axbcurva supersingolare

    y2xy=x3axb curva non supersingolare

  • …e per p=3

    y2=x3ax2bxc


Curve ellittiche reali


Le curve ellittiche

Grafici delle curve ellittiche sul campo  di equazione (a) y2=x3x, (b) y2=x31, (c) y2=x35x6


Curva ellittica su numeri reali


Curva ellittica su numeri reali


Curve ellittiche su Zp


Curve ellittiche su Zp


Curve ellittiche su Zp


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 PQ, in base alle seguenti regole

    • Se P coincide con il punto all’infinito O, allora P=O e PQ=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, PQ= 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, PQ=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 PQ=2P=R


Le curve ellittiche

  • Come si calcolano le coordinate di PQ ?

    • Se P=(x1,y1) e Q=(x2,y2) con x1x2, sia y=x l’equazione della retta r per P e Q (che non è verticale); in questo caso, =(y2y1)/(x2x1) e =y1x1; i punti di r, (x,x), giacciono anche sulla curva ellittica E se e solo se soddisfano l’uguaglianza x3(x)2axb=0


Curve ellittiche su Zp


Curve ellittiche su Zp


Curve ellittiche su Zp


Curve ellittiche


Curve ellittiche


Curve ellittiche


Curve ellittiche


Curve ellittiche


Curve ellittiche


Curve ellittiche


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 n1, 2=x1x2x3, da cui…

    x3=[(y2y1)/(x2x1)]2x1x2

    e

    y3= y1[(y2y1)/(x2x1)](x1x3)

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(x3axb), cioè =(3x12 a)/2y1, da cui…

    x3=[(3x12 a)/2y1]2 2x1

    e

    y3= y1[(3x12a)/2y1](x1x3)

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


  • Le curve ellittiche


    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ù 2n1 punti, il punto all’infinito O e 2n coppie (x,y)ZnZn, ovvero per ciascuna delle n possibili ascisse xZn esistono al più 2n ordinate yZn 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  (n1)| 2n


    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 rkj, 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 s1, 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 xcZn, coincidente con rkj

    • Per tale xc, si calcola y2=xc3axcb, 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=rkj1


    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=[(x1)k)], con xcx (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 rk1 e rkk è  2k


    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 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  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)


    DiffieHellman 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 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

      • 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=x3x1e 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 BE

    • 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

      • Alice sceglie un intero casuale k ed invia a Bob la coppia (kB, Mk(bB)), dove (bB) e la chiave pubblica di Bob

      • 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


    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 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


    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’ecommerce: la cifratura e le firme digitali, infatti, hanno reso “sicuri” i pagamenti via Internet tramite carta di credito


  • Login