La crittografia moderna e la sua applicazionevhdl.pbworks.com/f/Curve+Ellittiche.pdf · lo scambio...

Preview:

Citation preview

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: alberto.leporati@unimib.it

leporati@disco.unimib.it

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

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

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

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

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

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

Curve Ellittiche su ����

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

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

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

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:

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

Somma tra due punti: primo caso

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

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

Somma tra due punti: secondo caso

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:

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

Somma tra due punti: terzo caso

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

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)

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

Curve ellittiche su GF(p): esempio

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

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)

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

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)

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

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

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

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

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

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

Recommended