In
crittografia
la
crittografia ellittica
(in
inglese
Elliptic Curve Cryptography
o anche
ECC
) e una tipologia di
crittografia a chiave pubblica
basata sulle
curve ellittiche
definite su
campi finiti
. L'utilizzo di questo metodo crittografico e stato proposto da
Neal Koblitz
[1]
e
Victor S. Miller
[2]
nel
1985
.
Le curve ellittiche sono utilizzate in diversi metodi di
fattorizzazione
di numeri interi che sono utilizzati in
crittologia
come per esempio la
fattorizzazione a curve ellittiche Lenstra
che pur utilizzando le curve ellittiche non sono normalmente classificate come metodi crittografici.
Le chiavi pubbliche si basano sulla creazione di un problema matematico molto difficile da risolvere senza informazioni, ma che con l'utilizzo di alcune informazioni (la chiave privata) diventa di semplice e rapida risoluzione. L'utente distribuisce pubblicamente il problema (la chiave pubblica) e tiene nascoste le informazioni aggiuntive (la chiave privata). Il problema viene utilizzato per mescolare i messaggi da trasmettere in modo da renderli non comprensibili. Il primo sistema a chiave pubblica sviluppato e stato l'algoritmo
RSA
e si basava sull'utilizzo di due
numeri primi
di grandi dimensioni che venivano moltiplicati tra di loro, il cui prodotto era distribuito come chiave pubblica. Per decifrare i messaggi era necessario risalire ai due numeri o fattori primi componenti, ma l'operazione di fattorizzazione e un'operazione molto onerosa a livello computazionale, se non si hanno ulteriori informazioni, mentre se si conosce uno dei due numeri primi l'operazione diventa banale. Con l'evoluzione della potenza di calcolo dei
computer
e delle tecniche di fattorizzazione per ottenere pero una sicurezza adeguata con tale metodo bisogna utilizzare numeri primi di migliaia di cifre con conseguenti chiavi molto lunghe e quindi scomode da usare.
Un'altra tipologia di problemi matematici richiedono invece la risoluzione dell'equazione
con
ignoto e
e
noti (in sostanza l'equazione e
, ovvero
uguale al logaritmo in base
di
). Questa classe di equazioni puo essere risolta con semplicita nel campo dei
numeri reali
e
complessi
tramite l'uso dei
logaritmi
. Ma se queste equazioni vengono portate in un
campo finito
in molti casi diventano estremamente difficili da risolvere dato che coinvolgono il noto problema complesso del
logaritmo discreto
.
In particolare una
curva ellittica
e una
curva piana
definita da un'equazione del tipo:
L'insieme delle soluzioni di questa equazione sono i punti che formano la curva (tutte le soluzioni dell'equazioni con il punto all'infinito formano un
gruppo abeliano
se si considera il punto all'infinito come l'elemento identico). Se le coordinate
e
sono scelte in un
campo finito
le soluzioni formano un gruppo abeliano finito. Il problema del logaritmo discreto utilizzato nella crittografia a curva ellittica e molto piu difficile del problema della fattorizzazione di numeri primi, a parita di dimensione del campo, e quindi a parita di sicurezza questa crittografia richiede chiavi pubbliche di dimensione inferiore, e quindi piu facilmente utilizzabili rispetto a quelle utilizzate dal metodo RSA.
Allo stato attuale (2006), non esistono articoli matematici che abbiano stabilito il grado di difficolta del sistema basato su curve ellittiche; in ogni caso, la
National Security Agency
ha acquisito una tecnologia basata su curve ellittiche, che e stata inserita tra gli algoritmi raccomandati per la
NSA Suite B
. Inoltre, mentre i
brevetti
sul metodo RSA sono scaduti, alcuni brevetti sui sistemi ECC sono ancora validi.
Un esempio di applicazione della crittografia basata sulle curve ellittiche e l'
ECDSA
.
- ^
N. Koblitz,
Elliptic curve cryptosystems
, in
Mathematics of Computation
48, 1987, pp. 203?209
- ^
V. Miller,
Use of elliptic curves in cryptography
, CRYPTO 85, 1985.