28
La crittografia moderna e la sua applicazione Corso FSE per la GdF Crittosistemi basati sulle Curve Ellittiche Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano – Bicocca Alberto Leporati e-mail: [email protected] [email protected]

La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

La crittografia modernae la sua applicazione— Corso FSE per la GdF —

Crittosistemi basati sulle CurveEllittiche

Dipartimento di Informatica, Sistemistica e Comunicazione

Università degli Studi di Milano – Bicocca

Alberto Leporati

e-mail: [email protected]

[email protected]

Page 2: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 2

� vantaggio:� sembrano offrire lo stesso livello di sicurezza dei crittosistemi a chiave pubblica tradizionali

� le chiavi sono molto più corte

Crittosistemi basati su Curve Ellittiche

5120320

2048210

1024160

RSAECC

� l’uso di chiavi più corte comporta:� maggiore velocità per cifratura/decifratura

� memorizzazione efficiente

� minore utilizzo della larghezza di banda

Page 3: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 3

� esempio: velocità di esecuzione su una smart card a 8 bit, senza coprocessore crittografico:

Crittosistemi basati su Curve Ellittiche

1654.0 ms7.3 msScambio chiavi

(Diffie-Hellman)

12.7 ms10.7 msVerifica

228.4 ms3.0 msFirma

4708.3 ms3.8 msGenerazione chiavi

RSA 1024 bitECC 163 bitFunzione

Page 4: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 4

� si tenga presente che:� firma e verifica sono state realizzate decifrando e cifrando con un crittosistema a chiave pubblica

� i tempi di esecuzione variano molto a secondo della curva e degli esponenti di RSA usati

� la Certicom (http://www.certicom.com/) afferma che le loro soluzioni basate su ECC non necessitano di smart card con coprocessori crittografici

Ø si ha una riduzione dei costi di circa

3 – 5 dollari per carta

Crittosistemi basati su Curve Ellittiche

Page 5: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 5

� siano a, b œ � due costanti tali che 4a3 + 27b2 ∫ 0

� una curva ellittica non singolare è l’insieme E di soluzioni (x, y) œ � ä � dell’equazione:

y2 = x3 + ax + b

insieme a un punto speciale O, detto punto all’infinito

� la quantità 4a3 + 27b2 si chiama discrimi-nante della curva

Curve Ellittiche su ����

Page 6: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 6

� ad esempio, se a = -4e b = 0.67 abbiamo…

Curve Ellittiche su ����

Page 7: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 7

� la condizione 4a3 + 27b2 ∫ 0 è necessaria e

sufficiente affinché x3 + ax + b = 0 abbia tre radici distinte (reali o complesse)

� se 4a3 + 27b2 = 0, la curva viene detta singolare

� equazioni cubiche in x e y più generali possono essere tutte ridotte alla forma normale di Weierstrass:

y2 = x3 + ax + b

tramite trasformazioni razionali, cioè del tipo:

DCx

BAxx

+

+→

Curve Ellittiche su ����

Page 8: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 8

� mentre le equazioni quadratiche sono ben comprese dai matematici, quelle cubiche sono ancora oggetto di studio

� le curve ellittiche sono un ponte tra Algebra e Geometria, gettato nel XIX secolo da Abel, Gauss, Jacobi e Legendre

� una curva ellittica non è un’ellisse !� il nome corretto sarebbe varietà Abeliana di dimensione uno

� il termine “ellittiche” deriva dal fatto che gli integrali ellittici sono molto importanti nello studio delle curve ellittiche

Curve Ellittiche su ����

Page 9: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 9

� data una curva E su �, vogliamo calcolare P + Q, con P = (x1, y1 ) e Q = (x2, y2 )

� consideriamo tre casi:� x1 ∫ x2� x1 = x2 e y1 = - y2� x1 = x2 e y1 = y2 (i due punti coincidono)

� otterremo che (E, +) è un gruppo Abeliano, nel quale O è l’identità:

" P œ E P + O = O + P = P

Somma tra due punti

Page 10: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 10

Somma tra due punti: primo caso

se x1 ∫ x2,

� sia L la retta passante per P e per Q

� L interseca E in un terzo punto, che chiamiamo R’

� sia R il simmetrico di R’ rispetto all’asse delle x

� poniamo P + Q = R

12

12

1313

21

2

3

)(

xx

yy

yxxy

xxx

−=

−−=

−−=

λ

λ

λ

� in pratica, le coordinate di R = (x3, y3 ) sono:

Page 11: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 11

Somma tra due punti: primo caso

Page 12: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 12

� se x1 = x2 e y1 = - y2, allora P + Q = O

� infatti, poniamo:

(x, y) + (x, -y) = O

per tutti gli (x, y) œ E

� questo significa che (x, - y) è l’inverso di (x, y) rispetto alla somma tra due punti

Somma tra due punti: secondo caso

Page 13: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 13

Somma tra due punti: secondo caso

Page 14: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 14

� nel terzo caso, stiamo sommando P a se stesso

� possiamo assumere y1 ∫ 0, altrimenti ricadremmo nel secondo caso

� il terzo caso viene trattato come il primo, dove L

è la retta tangente a E nel punto P

Somma tra due punti: terzo caso

1

2

1

1313

21

2

3

2

3

)(

y

ax

yxxy

xxx

+=

−−=

−−=

λ

λ

λ

� in pratica, le coordinate di R = (x3, y3 ) sono:

Page 15: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 15

Somma tra due punti: terzo caso

Page 16: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 16

� in crittografia non si usano le curve su �, ma quelle su GF(p) e GF(2m)

� il loro uso è stato proposto nel 1985 da Victor Miller e da Neal Koblitz

� non si inventano nuovi crittosistemi, ma si riadattano quelli già esistenti

� non sembra esserci differenza tra la sicurezzaofferta dai campi GF(p) e GF(2m)

� da un punto di vista implementativo, le realizzazioni su GF(2m) sono più veloci e piùeconomiche

Curve ellittiche in Crittografia

Page 17: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 17

� sia p > 3 un numero primo

� le curve su GF(p) sono definite esattamentecome quelle su �; le operazioni su � vengono sostituite con le analoghe operazioni su GF(p)

� la curva è formata da tutti i punti (x, y) che soddisfano la congruenza:

y2 ª x3 + ax + b mod p

più il punto O = (0,0)

Curve ellittiche su GF(p)

Page 18: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 18

Curve ellittiche su GF(p): esempio

Page 19: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 19

� se x3 + ax + b = 0 non contiene radici multiple in GF(p), ovvero se:

4a3 + 27b2 T 0 mod p

allora la curva ellittica può essere usata per definire un gruppo Abeliano (E, +)finito

� la somma su E è definita usando le stesse formule sulle coordinate che risultano per le curve definite su �

Somma tra due punti

Page 20: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 20

� siano a, b œ GF(2m), con b ∫ 0

� poiché GF(2m) ha caratteristica 2, l’equazione della curva è leggermente diversa:

y2 + xy = x3 + ax + b

� le formule per la somma vanno aggiustate di conseguenza

� l’opposto di un punto (x, y) è il punto (x, x + y),

dove x + y è lo xor bit a bit tra x e y

Curve ellittiche su GF(2m)

Page 21: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 21

� sia E una curva ellittica, definita su GF(p)o su GF(2m), e sia B un punto su E

� ECDLP (Elliptic Curve Discrete Logarithm Problem) è il seguente problema:

dato un punto P œ E, trovare unintero k (se esiste) tale che kB = P

� k è detto il logaritmo (discreto) di P in base B

Logaritmi discreti

Page 22: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 22

� una volta definito ECDLP, si possono realizzare:� lo scambio di chiavi di Diffie-Hellman

� il crittosistema di El Gamal

� sui gruppi prodotti dalle curve ellittiche, gli algoritmi Rho di Pollard, Pohlig-Hellman e Index Calculus non sono applicabili

� tuttavia, esistono anche curve “deboli” dal punto di vista crittografico� ECDLP su curve supersingolari può essere ridotto al logaritmo discreto su un campo “piccolo”

[Menezes, Okamoto, Vanstone - 1993]

Crittosistemi (ECC)

Page 23: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 23

� siano p e q due numeri primi (grandi), che devono rimanere segreti

� sia n = pÿ q� si scelgono a caso due interi a e b tali che:

E: y2 = x3 + ax + b

definisce una curva ellittica sia su GF(p) che su GF(q)

� per cifrare il testo in chiaro P œ E, si calcola eP mod n, dove e è la chiave pubblica di cifratura

� per decifrare occorre conoscere il numero di punti su E, sia modulo p che modulo q

RSA basato sulle curve ellittiche

Page 24: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 24

� esistono diverse proposte di analoghi di RSA

� esistono test probabilistici di primalità nei quali la risposta è sempre esatta (solo il tempo di esecuzione è casuale)

� le curve ellittiche hanno ispirato il metodo ECM di fattorizzazione di Lenstra, e un algoritmo (di Kaliski) per generare bit pseudocasuali

� nel 1989 Koblitz ha proposto di usare anche le curve iperellittiche, ma da allora sono state fatte poche ricerche sulla loro sicurezza

Altri strumenti

Page 25: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 25

� sia p primo oppure una potenza di 2

� sia E una curva ellittica su GF(p)

� sia A un punto su E avente ordine q primo, tale che ECDLP sia intrattabile in ‚AÚ

� lo spazio dei messaggi è P = {0,1}*

� lo spazio delle firme è A = �q* ä�q*

� lo spazio delle chiavi è K = {(p, q, E, A, k, B) : B = kA}, con 0 § k § q-1

� la chiave pubblica (per verificare) è (p, q, E, A, B)

� la chiave privata (per firmare) è k

Elliptic curve DSA

Page 26: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 26

� per firmare x œ P con la chiave k, si sceglie a caso

r, con 1 § r § q-1, e si calcola:

sigk(x, r) = (t, s)

dove:

rA = (u, v)

t = u mod q

s = (SHA-1(x) + kt)r -1 mod q

� se viene t = 0 oppure s = 0, occorre scegliere un

altro valore di r

Elliptic curve DSA

Page 27: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 27

� per verificare che (t, s) œ�q* ä�q* è una firma per x œ {0,1}*, si calcola:

w = s -1 mod q

i = w ÿ SHA-1(x) mod q

j = wt mod q

(u, v) = iA + jB

e si accetta la firma come valida (cioè verk(x,(t,s)) = true) se e solo se:

u mod q = t

Elliptic curve DSA

Page 28: La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio di chiavi di Diffie-Hellman il crittosistema di El Gamal sui gruppi prodotti dalle

Milano, 24 Giugno 2005 La crittografia moderna e la sua applicazione 28

� infatti, i = s-1ÿ SHA-1(x) mod q, e j = s-1t

mod q, da cui:

iA + jB = iA + jkA = (i + jk)A

= s-1(SHA-1(x) + tk)A

� poiché s-1= r(SHA-1(x) + tk)-1 mod q, vale:

iA + j = rA = (u, v)

e quindi, in particolare, u ª t mod q

Elliptic curve DSA