Firma digitale ideale in criptovaluta

2

Quali sono le caratteristiche della firma digitale ideale per la verifica delle transazioni di criptovaluta?

Il motivo per cui lo chiedo è perché questa risposta sulle firme bitcoin descrive una potenziale vulnerabilità che rende questo particolare uso di ECDSA non ottimale con una possibile soluzione nei commenti.

Capisco che le caratteristiche ideali potrebbero essere al momento impossibili, come essere senza collisioni o persino peggio per sempre contraddittorie, ma vorrei sapere per capire questa particolare applicazione delle firme digitali.

    
posta Community 02.01.2014 - 04:38
fonte

2 risposte

2

Il problema con ECDSA non è correlato a ciò che è firmato con ECDSA; la necessità di un parametro k completamente casuale per ogni firma si applica indipendentemente dal fatto che la firma sia per una cripto-valuta o un'e-mail o un certificato digitale o altro.

ECDSA, come schema di firma digitale, è abbastanza ragionevole. È efficiente (più veloce di RSA), la sua firma è breve (più breve di RSA), è stata studiata per molto tempo. La necessità di casualità è un problema importante, ma esistono soluzioni . In ogni caso, può essere visto come un problema di implementazione; e i computer moderni (inclusi gli smartphone) hanno accesso a tutta la casualità necessaria. Se solo il codice è scritto correttamente.

    
risposta data 02.01.2014 - 17:46
fonte
0

Rispetta solo i requisiti dell'ECDSA e tutto andrà bene. Anche l'utilizzo di RSA per le firme andrebbe bene.

Quel caso particolare che hai indicato, riutilizzando il numero casuale nella transazione, l'utente malintenzionato è in grado di recuperare la chiave privata solo risolvendo

Key=((r * modpow((s1 - s2), p - 2, p) * ((m1 * s2) - (m2 * s1)) % p

Esempio di attacco:

R=6819641642398093696120236467967538361543858578256722584730163952555838220871
S1=5111069398017465712735164463809304352000044522184731945150717785434666956473
M1=4834837306435966184874350434501389872155834069808640791394730023708942795899
S2=31133511789966193434473156682648022965280901634950536313584626906865295404159
M2=108808786585075507407446857551522706228868950080801424952567576192808212665067

Fornisce il risultato 35027840177330064405683178523079910253772859809146826320797401203281604260438

Che rappresenta la chiave per 1FaapwdwYVVBiV6Qvkis88c2KHPoxX1Jb1

Riferimenti

link

    
risposta data 11.09.2018 - 15:43
fonte

Leggi altre domande sui tag