Page 1
Crittosistemi basati sulle Curve
Ellittiche
Dipartimento di Inform
atica, Sistemistica e Comunicazione
Universitàdegli Studi di Milano –Bicocca
Alberto Leporati
e-mail: [email protected]
[email protected]
Crittografia
—Corso di Laurea Specialistica —
—in Inform
atica —
Page 2
Alberto Leporati
Corso di Crittografia
2
�vantaggio:
�sembrano offrire lo stesso
livello di sicurezzadei
crittosistemi a chiave pubblica
tradizionali
�le chiavi sono molto piùcorte
Crittosistemi basati su Curve E
llittiche
5120
320
2048
210
1024
160
RSA
ECC
�l’uso di chiavi piùcorte comporta:
�maggiore velocità
per cifratura/decifratura
�memorizzazione efficiente
�minore utilizzo della larghezza di banda
Page 3
Alberto Leporati
Corso di Crittografia
3
�esempio: velocità
di esecuzione su una sm
art card
a 8 bit, senza coprocessore crittografico:
Crittosistemi basati su Curve E
llittiche
1654.0 ms
7.3 ms
Scambio chiavi
(Diffie-Hellman)
12.7 ms
10.7 ms
Verifica
228.4 ms
3.0 ms
Firma
4708.3 ms
3.8 ms
Generazione chiavi
RSA 1024 bit
ECC 163 bit
Funzione
Page 4
Alberto Leporati
Corso di Crittografia
4
�si tenga presente che:
�firm
a 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
/) afferm
a che le loro soluzioni basate su ECC non
necessitano di sm
art card con coprocessori
crittografici
Øsi ha una riduzione dei costi di circa
3 –5 dollari per carta
Crittosistemi basati su Curve E
llittiche
Page 5
Alberto Leporati
Corso di Crittografia
5
�siano a, b œ
�due costanti tali che
4a3+ 27b2∫0
�una curva ellitticanon singolareèl’insieme
Edi soluzioni(x, y) œ
�ä�dell’equazione:
y2= x3+ ax + b
insiem
e a un punto speciale O, detto punto
all’infinito
�la quantità4a3+ 27b2si chiama discrimi-
nantedella curva
Curve E
llittiche su � ���
Page 6
Alberto Leporati
Corso di Crittografia
6
�ad esempio, se a = -4
e b = 0.67abbiamo…
Curve E
llittiche su � ���
Page 7
Alberto Leporati
Corso di Crittografia
7
�la condizione 4a3+ 27b2∫0ènecessaria e
sufficienteaffinchéx3+ ax + b = 0abbia tre
radici distinte(reali o complesse)
�se 4a3+ 27b2= 0, la curva viene detta singolare
�equazioni cubiche in xe ypiùgenerali possono
essere tutte ridotte alla forma norm
ale di
Weierstrass:
y2= x3+ ax + b
tram
ite trasform
azioni razionali, cioè
del tipo:
DCx
BAx
x++
→
Curve E
llittiche su � ���
Page 8
Alberto Leporati
Corso di Crittografia
8
�mentre le equazioni quadratichesono ben
comprese dai matem
atici, quelle cubichesono
ancora oggetto di studio
�le curve ellittiche sono un ponte
tra Algebra
e
Geom
etria, gettato nel XIX
secolo da Abel,
Gauss, Jacobi e Legendre
�una curva ellittica nonèun’ellisse !
�il nom
e corretto sarebbe varietà
Abeliana di
dimensione uno
�il term
ine “ellittiche”
deriva dal fatto che gli
integrali ellitticisono molto importanti nello
studio delle curve ellittiche
Curve E
llittiche su � ���
Page 9
Alberto Leporati
Corso di Crittografia
9
�data una curva Esu �, vogliamo calcolare
P + Q, con P = (x 1, y 1 ) e Q = (x 2, y 2 )
�consideriamo tre casi:
�x 1
∫x 2
�x 1= x2e y 1= -y 2
�x 1= x2e y 1= y2 (i due punti coincidono)
�otterrem
o che (E, +)èun gruppo Abeliano,
nel quale Oèl’identità:
"P œE P + O = O + P = P
Somma tra due punti
Page 10
Alberto Leporati
Corso di Crittografia
10
Somma tra due punti: primo caso
se x1∫x 2,
�sia Lla retta passante per Pe per Q
�Linterseca Ein un terzo punto, che chiamiamo R’
�sia Ril simmetrico di R’rispetto all’asse delle x
�poniam
o P + Q = R
12
12
13
13
21
2
3
)(
xx
yy
yx
xy
xx
x
−−=
−−
=
−−
=
λ
λλ
�in pratica, le coordinate di
R = (x 3, y 3 ) sono:
Page 11
Alberto Leporati
Corso di Crittografia
11
Somma tra due punti: primo caso
Page 12
Alberto Leporati
Corso di Crittografia
12
�se x 1= x2e y1= -y 2, 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 som
matra due punti
Somma tra due punti: secondo caso
Page 13
Alberto Leporati
Corso di Crittografia
13
Somma tra due punti: secondo caso
Page 14
Alberto Leporati
Corso di Crittografia
14
�nel terzo caso, stiamo sommando Pa se stesso
�possiamo assumere y1∫0, altrimenti ricadremmo
nel secondo caso
�il terzo caso viene trattato come il primo, dove L
èla retta tangentea Enel punto P
Somma tra due punti: terzo caso
1
2 1
13
13
21
2
3
2
3
)(
y
ax
yx
xy
xx
x
+=
−−
=
−−
=
λ
λλ
�in pratica, le coordinate di
R = (x 3, y 3 ) sono:
Page 15
Alberto Leporati
Corso di Crittografia
15
Somma tra due punti: terzo caso
Page 16
Alberto Leporati
Corso di Crittografia
16
�in crittografia non si usano le curve su �, ma
quelle su GF(p)e GF(2
m)
�il loro uso èstato proposto nel 1985 da Victor
Miller e da Neal Koblitz
�non si inventano nuovi crittosistem
i, ma si
riadattano
quelli giàesistenti
�non sembra esserci differenza tra la sicurezza
offerta dai cam
pi GF(p)e GF(2
m)
�da un punto di vista implementativo, le
realizzazioni su GF(2
m)sono piùvelocie più
economiche
Curve ellittiche in Crittografia
Page 17
Alberto Leporati
Corso di Crittografia
17
�sia p > 3un num
ero primo
�le curve su GF(p)sono definite esattam
ente
come quelle su �; le operazioni su �
vengono
sostituite con le analoghe operazioni su GF(p)
�la curva èform
ata da tutti i punti (x, y)che
soddisfano la congruenza:
y2ªx3+ ax + b modp
piùil puntoO = (0,0)
Curve ellittiche su GF(p)
Page 18
Alberto Leporati
Corso di Crittografia
18
Curve ellittiche su GF(p): esempio
Page 19
Alberto Leporati
Corso di Crittografia
19
�se x3+ ax + b = 0 non contiene radici
multiplein GF(p), ovvero se:
4a3+ 27b2T0 modp
allora la curva ellittica può essere usata
per definire un gruppo Abeliano (E,+
)finito
�la som
masu E èdefinita usando le stesse
form
ulesulle coordinate che risultano per
le curve definite su �
Somma tra due punti
Page 20
Alberto Leporati
Corso di Crittografia
20
�siano a, b œGF(2
m), con b ∫0
�poichéGF(2
m)ha caratteristica 2, l’equazione
della curva èleggerm
ente diversa:
y2 + xy =x3+ ax + b
�le formule per la som
mavanno aggiustate
di
conseguenza
�l’opposto
di un punto (x, y)èil punto (x, x + y),
dove x + yèlo xor
bit a bit tra xe y
Curve ellittiche su GF(2m)
Page 21
Alberto Leporati
Corso di Crittografia
21
�sia Euna curva ellittica, definita su GF(p)
o su GF(2
m), e sia B
un punto su E
�ECDLP(Elliptic Curve Discrete Logarithm
Problem) èil seguente problema:
dato un punto P œE, trovare un
intero k(se esiste) tale che kB = P
�kèdetto il logaritm
o(discreto) di Pin
base B
Logaritm
i discreti
Page 22
Alberto Leporati
Corso di Crittografia
22
�una volta definito ECDLP, si possono realizzare:
�lo scambio di chiavi di Diffie-Hellman
�il crittosistema di El Gam
al
�sui gruppi prodotti dalle curve ellittiche, gli
algoritm
i Rho di Pollard, Pohlig-Hellm
ane Index
Calculusnon sono applicabili
�tuttavia, esistono anche curve “deboli”dal punto
di vista crittografico
�ECDLP su curve supersingolaripuò essere ridotto al
logaritm
o discreto su un campo “piccolo”
[ Menezes, Okamoto, Vanstone-1993]
Crittosistemi (E
CC)
Page 23
Alberto Leporati
Corso di Crittografia
23
�siano pe qdue num
eri primi(grandi), che devono
rimanere segreti
�sia n = pÿq
�si scelgono a caso
due interi ae btali che:
E: y2= x3+ ax + b
definisce una curva ellitticasia su GF(p)che su
GF(q)
�per cifrareil testo in chiaro P œE, si calcola
eP m
odn, dove eèla chiave pubblica
di cifratura
�per decifrareoccorre conoscere il numero di
puntisu E, sia modulo pche modulo q
RSA basato sulle curve ellittiche
Page 24
Alberto Leporati
Corso di Crittografia
24
�esistono diverse proposte
di analoghi di RSA
�esistono test probabilisticidi primalitànei quali la
risposta èsempre esatta (solo il tempo di
esecuzione ècasuale)
�le curve ellittiche hanno ispirato il metodo ECMdi
fattorizzazionedi Lenstra, e un algoritm
o (di
Kaliski) per generare bit pseudocasuali
�nel 1989 Koblitz ha proposto di usare anche le
curve iperellittiche, ma da allora sono state fatte
poche ricerchesulla loro sicurezza
Altri strumenti
Page 25
Alberto Leporati
Corso di Crittografia
25
�sia pprimooppure una potenza di 2
�sia Euna curva ellittica su GF(p)
�sia Aun punto su Eavente ordine qprimo, 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 firm
are) èk
Elliptic curve D
SA
Page 26
Alberto Leporati
Corso di Crittografia
26
�per firm
arex œPcon 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 modq
s = (SHA-1(x) + kt)r-1 modq
�se viene t = 0oppure s = 0, occorre scegliere un
altro valore
di r
Elliptic curve D
SA
Page 27
Alberto Leporati
Corso di Crittografia
27
�per verificare
che (t, s) œ�
q*ä�
q*èuna firm
a per x œ{0,1}*, si calcola:
w = s-1
modq
i = w ÿSHA-1(x) m
odq
j = wt m
odq
(u, v) = iA + jB
e si accettala firma come valida(cioèver k(x,(t,s))
= true) se e solo se:
u modq = t
Elliptic curve D
SA
Page 28
Alberto Leporati
Corso di Crittografia
28
�infatti, i = s-1ÿSHA-1(x) m
odq, e j = s-1t
modq, 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
modq, vale:
iA + j = rA = (u, v)
e quindi, in particolare, u ªt m
odq
Elliptic curve D
SA