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