Elliptic Curve Digital Signature Algorithm: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Discrepanza nella nomenclatura delle variabili
Funzionalità collegamenti suggeriti: 3 collegamenti inseriti.
 
(Una versione intermedia di un altro utente non mostrate)
Riga 3:
 
== Dimensioni della chiave e della firma in confronto al DSA ==
Come in generale nella crittografia delle curve ellittiche, la dimensione in bit della [[chiave pubblica]] necessaria all'ECDSA è circa il doppio della dimensione del livello di sicurezza in bit. Per esempio, con un livello di sicurezza di 80 bit (un massimo di <math>2^{80}</math> operazioni necessarie ad un aggressore informatico per trovare la chiave privata) la dimensione di una chiave pubblica ECDSA sarebbe di 160 bit, laddove la [[dimensione della chiave]] pubblica DSA è di almeno 1024 bit. La dimensione della firma è la stessa per ECDSA e DSA: <math>4 t</math> bit, dove <math>t</math> è il livello di sicurezza misurato in bit; nell'esempio precedente (con <math>t</math> = 80 bit), la dimensione della firma è di 320 bit.
 
== Algoritmo di generazione della firma ==
Si supponga che [[Alice e Bob|Alice]] voglia mandare a [[Alice e Bob|Bob]] un messaggio protetto da [[firma digitale]]. Inizialmente devono accordarsi sui parametri della curva <math>(\textrm{CURVE}, G, n)</math>. Oltre al campo e all'equazione della curva, è necessario <math>G</math>, un punto base di ordine primo sulla curva; <math>n</math> è l'ordine moltiplicativo del punto <math>G</math>.
{| class="wikitable" style="margin-bottom: 10px;"
! Parametro
Riga 24:
 
Al fine di generare una firma per il messaggio <math>m</math>, Alice segue questi passi:
# Calcola <math>ze = \textrm{HASH}(m)</math>, dove HASH è una [[funzione crittografica di hash]], come SHA-2.
# Sia <math>z</math> la stringa formata dai <math>L_n</math> bit più a sinistra di <math>e</math>, dove <math>L_n</math> è la lunghezza in bit del gruppo di ordine <math>n</math>.
# Seleziona casualmente in modo '''crittografico-sicuro '''un intero <math>k</math> dall'intervallo <math>[1, n-1]</math>.
Riga 81:
<math>C = k \times G</math>
 
Dalla definizione di <math>r</math>, questo è il passo 6 dell'[[algoritmo]] di verifica.
 
Questo però mostra solo che un messaggio firmato correttamente supererà la verifica; sono necessarie molte altre proprietà per un algoritmo di firma sicuro.