Curve Ellittiche

Transcript

Curve Ellittiche
La crittografia moderna
e la sua applicazione
—
Corso FSE per la GdF —
Crittosistemi basati sulle Curve
Ellittiche
Alberto Leporati
Dipartimento di Informatica, Sistemistica e Comunicazione
Università degli Studi di Milano – Bicocca
e-mail: [email protected]
[email protected]
Crittosistemi basati su Curve Ellittiche
vantaggio:
sembrano offrire lo stesso
livello di sicurezza dei
crittosistemi a chiave pubblica
tradizionali
le chiavi sono molto più corte
ECC
RSA
160
1024
210
2048
320
5120
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
2
Crittosistemi basati su Curve Ellittiche
esempio: velocità di esecuzione su una smart card
a 8 bit, senza coprocessore crittografico:
Funzione
ECC 163 bit RSA 1024 bit
Generazione chiavi
3.8 ms
4708.3 ms
Firma
3.0 ms
228.4 ms
Verifica
10.7 ms
12.7 ms
Scambio chiavi
(Diffie-Hellman)
7.3 ms
1654.0 ms
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
3
Crittosistemi basati su Curve Ellittiche
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
4
Curve Ellittiche su 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 discriminante della curva
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
5
Curve Ellittiche su ad esempio, se a = -4
e b = 0.67 abbiamo…
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
6
Curve Ellittiche su 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:
Ax + B
x→
Cx + D
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
7
Curve Ellittiche su 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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
8
Somma tra due punti
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
Milano, 24 Giugno 2005
P+O=O+P=P
La crittografia moderna e la sua applicazione
9
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
2
x3 = λ − x1 − x2
in pratica, le coordinate di
R = (x3, y3 ) sono:
Milano, 24 Giugno 2005
y3 = λ ( x1 − x3 ) − y1
y2 − y1
λ=
x2 − x1
La crittografia moderna e la sua applicazione
10
Somma tra due punti: primo caso
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
11
Somma tra due punti: secondo caso
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
12
Somma tra due punti: secondo caso
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
13
Somma tra due punti: terzo caso
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
x3 = λ2 − x1 − x2
in pratica, le coordinate di
R = (x3, y3 ) sono:
Milano, 24 Giugno 2005
y3 = λ ( x1 − x3 ) − y1
3 x12 + a
λ=
2 y1
La crittografia moderna e la sua applicazione
14
Somma tra due punti: terzo caso
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
15
Curve ellittiche in Crittografia
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 sicurezza
offerta dai campi GF(p) e GF(2m)
da un punto di vista implementativo, le
realizzazioni su GF(2m) sono più veloci e più
economiche
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
16
Curve ellittiche su GF(p)
sia p > 3 un numero primo
le curve su GF(p) sono definite esattamente
come 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)
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
17
Curve ellittiche su GF(p): esempio
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
18
Somma tra due punti
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 Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
19
Curve ellittiche su GF(2m)
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
20
Logaritmi discreti
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 un
intero k (se esiste) tale che kB = P
k è detto il logaritmo (discreto) di P in
base B
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
21
Crittosistemi (ECC)
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]
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
22
RSA basato sulle curve ellittiche
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
23
Altri strumenti
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
24
Elliptic curve DSA
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
25
Elliptic curve DSA
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
26
Elliptic curve DSA
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
27
Elliptic curve DSA
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
Milano, 24 Giugno 2005
La crittografia moderna e la sua applicazione
28