Introduzione
Ultimamente, ci sono state numerose discussioni sui pro e contro di RSA,
e ECDSA[02], nella comunità crittografica. Per i non iniziati, sono due
gli algoritmi di firma digitale più utilizzati, ma anche per i più tecnologici
esperto, può essere abbastanza difficile tenere il passo con i fatti. Questo articolo è un
tentare un confronto semplificato dei due algoritmi. Anche se non lo è
un saggio profondamente tecnico, il lettore più impaziente può controllare la fine del
articolo per un rapido TL; tabella DR con il riassunto della discussione.
ECDSA contro RSA
ECDSA e RSA sono algoritmi utilizzati da crittografia a chiave pubblica[03] sistemi,
fornire un meccanismo per autenticazione. La crittografia a chiave pubblica è il
scienza della progettazione di sistemi crittografici che impiegano coppie di chiavi: a la percezione
chiave (da qui il nome) che può essere distribuito liberamente a chiunque, insieme a
corrispondente chiave privata, che è noto solo al suo proprietario. Autenticazione
si riferisce al processo di verifica che un messaggio, firmato con una chiave privata, fosse
creato dal titolare di una specifica chiave privata. Algoritmi utilizzati per
l'autenticazione è collettivamente nota come algoritmi di firma digitale [04].
Tali algoritmi si basano su complessi problemi matematici che sono relativamente semplici
per calcolare in un modo, anche se abbastanza impraticabile per invertire. Questo significa che per
un aggressore per falsificare una firma digitale, senza alcuna conoscenza del privato
chiave, devono risolvere problemi matematici intrattabili, come numeri interi
fattorizzazione, per la quale non esistono soluzioni efficienti note [05].
Per questo motivo, poiché non esistono soluzioni efficienti disponibili per
problemi matematici sottostanti, la valutazione di algoritmi crittografici può
si verificano solo in relazione ai loro dettagli di implementazione in congiunzione con il
livello di sicurezza che forniscono. A tale scopo, questa sezione presenta a
confronto tra RSA ed ECDSA utilizzando cinque (o sei) metriche di quantificazione. Ogni metrica
viene introdotto nella sua sezione, insieme al suo significato per chiunque lo sia
cercando di decidere tra i due algoritmi.
Adozione
RSA è lo standard industriale per la crittografia a chiave pubblica per molti anni
adesso. La maggior parte di SSL /TLS i certificati erano (e lo sono ancora) firmati con le chiavi RSA.
Sebbene la maggior parte delle CA abbia ormai implementato il supporto per ECDSA
certificati, questa adozione di lunga durata ha portato solo a molti sistemi legacy
supportare RSA. Pertanto, se un fornitore richiede compatibilità con le versioni precedenti
software client, sono costretti a utilizzare certificati firmati con RSA. Al giorno d'oggi,
tuttavia, i clienti più moderni hanno implementato il supporto per ECDSA, che lo farà
probabilmente rimuoverà questo vincolo di compatibilità nel prossimo futuro.
Maturità standard
RSA è stato inizialmente standardizzato per SSL /TLS nel 1994 [06], mentre fu introdotto l'ECDSA
nelle specifiche di TLS v1.2 nel 2008 [07]. Questa differenza di età indica a
disparità nella maturità degli standard che descrivono le migliori pratiche per
ogni algoritmo. Sebbene, gli standard RSA sono stati ampiamente studiati e
verificato, l'ECDSA non ha visto molta attenzione. Di recente, la difesa di questo
algoritmo delle principali CA e sua adozione nella più moderna SSL /TLS i clienti hanno
ha portato alla pubblicazione di ricerche più approfondite, ma rimane ancora a
schema relativamente nuovo. Questo lascia spazio a difetti di design da scoprire o
implementazioni errate saranno divulgate in futuro.
Rapporto tra dimensione chiave e livello di sicurezza
Livello di sicurezza [08] è una metrica in crittografia, che si riferisce alla forza
di una primitiva o funzione crittografica. Viene comunemente misurato in "bit"
indica il numero di operazioni che un utente malintenzionato deve eseguire per comprometterne
sicurezza. Questa metrica può fornire un metodo di quantificazione per confrontare l'efficacia
di vari cryptosystems. Va sottolineato che lo è anche la dimensione della chiave pubblica
misurato in bit, ma è un concetto completamente diverso, riferito al
dimensione fisica della chiave.
A questo proposito, una chiave pubblica RSA a 2048 bit fornisce un livello di sicurezza di
112 bit. Tuttavia, ECDSA richiede solo chiavi pubbliche di dimensioni 224 bit per fornire il file
stesso livello di sicurezza a 112 bit. Questa notevole differenza nella dimensione della chiave ha due
implicazioni significative. Le chiavi di dimensioni minori richiedono una larghezza di banda inferiore per impostare un
SSL /TLS stream, il che significa che i certificati ECDSA sono ideali per i dispositivi mobili
applicazioni. Inoltre, tali certificati possono essere archiviati in dispositivi con molto
vincoli di memoria più limitanti, un fatto che consente m /TLS pile da essere
implementato nei dispositivi IoT senza allocare molte risorse. Pubblicato
la ricerca, mostra anche che ECDSA è più efficiente [09] da implementare in embedded
dispositivi.
Prestazioni e complessità temporale
Gli algoritmi sono ricette astratte che descrivono un metodo per raggiungere un determinato obiettivo.
In informatica, le loro prestazioni sono misurate contando il numero di
operazioni elementari necessarie per raggiungere questa desinenza predeterminata
condizione. Tale metrica viene chiamata complessità temporale. Dal momento che input diversi
le dimensioni richiedono un numero diverso di operazioni, la complessità temporale è di solito
espresso in funzione della dimensione dell'input.
Entrambi gli algoritmi in questione funzionano allo stesso tempo
operazioni matematiche, come divisioni e moltiplicazioni. Pertanto, le dimensioni di input
(che in questo caso è la dimensione delle loro chiavi) rimane il più significativo
fattore che influenza la loro prestazione. Il confronto tra i due algoritmi deve essere
si distingue tra la firma di un messaggio e la verifica di una firma. Nella maggior parte
implementazioni pratiche, RSA sembra essere significativamente più veloce di ECDSA in
verifica delle firme, anche se è più lento durante la firma.
Le cose si complicano per livelli di sicurezza più elevati. Ad esempio, al massimo
configurazione comune di un livello di sicurezza di 112 bit, RSA richiede 2048 bit
contro ECDSA che necessita di chiavi a 224 bit. Nel prossimo livello comune di 128 bit, RSA
richiede una chiave a 3072 bit, mentre ECDSA solo 256 bit. Ciò si traduce in RSA
le prestazioni diminuiscono drasticamente, mentre l'ECDSA ne risente solo leggermente. Come
una conseguenza di questo problema di ridimensionamento, sebbene RSA sembri più performante al
momento, il continuo aumento dei requisiti di sicurezza potrebbe benissimo rendere
ECDSA la soluzione di fatto in futuro.
Resistenza post-quantistica
L'algoritmo di Shor [10] è un noto algoritmo per rompere le chiavi RSA usando
computer quantistici. Dal momento che non ci sono implementazioni pratiche (pubbliche) di a
tale macchina, la seguente è una congettura sul futuro della chiave pubblica
crittografia. Al momento in cui scrivo, la migliore implementazione di Shor's
l'algoritmo può annullare una crittografia RSA con chiave a 15 bit. Anche se questo non suona
riguardo, poiché sempre più ricerche sono dirette al calcolo quantistico, RSA
potrebbe avere seri problemi in qualsiasi momento.
I sostenitori dell'ECDSA non dovrebbero essere rapidi a festeggiare, perché ellittici
crittografia curva è anche vulnerabile [11] a una versione modificata di Shor's
algoritmo. Di conseguenza, se entrambe le cifre possono essere violate da un computer quantistico,
l'unica metrica oggettiva è la complessità richiesta per implementare tale
attacco. Secondo una ricerca pubblica, le chiavi RSA a 2048 bit richiedono 4098 qubit
(e 5.2 trilioni di porte Tofolli) da sconfiggere, mentre le chiavi ECDSA a 256 bit
richiedono solo 2330 qubit (e 126 miliardi di porte Tofolli). Quindi, RSA è di più
costoso da rompere, usando una macchina quantistica teorica.
Conclusione
Sebbene questo confronto non sia affatto completo, è evidente che
RSA ha giustamente guadagnato la sua posizione di firma digitale leader
algoritmo per la maggior parte delle applicazioni di certificazione. Tuttavia, poiché la tecnologia è sempre
avanzare in modi più imprevedibili, consapevolezza della sicurezza e bisogni sono anche
crescente. Poco più di dieci anni fa, la sicurezza dei dispositivi integrati era
finzione e oggigiorno comunicazioni sicure sono un must per ogni mondo reale
applicazione. Di conseguenza, anche se l'ECDSA è relativamente giovane, è di chiunque
indovina se sostituirà RSA come standard per l'autenticazione in SSL /TLS
implementazioni.
Se tu, il lettore, non riesci ancora a decidere quale algoritmo scegliere, ci sono
soluzioni per supportare sia ECDSA che RSA (come meccanismo di fallback), fino al
la community di criptovalute si deposita su un vincitore. Controlla questa sezione dell'articolo per un futuro
guida pratica.
TL; tabella DR
metrico | RSA | ECDSA |
---|---|---|
Adozione | ? | |
Scadenza | ? | |
Dimensione chiave | ? | |
Performance | ? | |
scalata | ? | |
Resistenza P / Q | ? |