RSA firma cieca vs firma di un hash

2

La mia comprensione è che la caratteristica chiave di una firma RSA cieca è che il firmatario non è a conoscenza del contenuto del messaggio che viene firmato.

In che modo è diverso dal semplice hashing di alcuni dati e dall'inserimento di tale hash all'input della funzione di firma RSA?

Poiché il firmatario conosce solo l'hash di ciò che stanno per firmare, realizza lo stesso compito: il firmatario non è a conoscenza del contenuto del messaggio effettivo.

Qual è la logica alla base dell'introduzione delle firme RSA cieche, piuttosto che utilizzare il metodo sopra descritto?

    
posta ralien 05.01.2016 - 21:13
fonte

2 risposte

5

Secondo l'articolo di Wikipedia per Firme cieche :

Blind signatures can also be used to provide unlinkability, which prevents the signer from linking the blinded message it signs to a later un-blinded version that it may be called upon to verify.

Il principio di non linkabilità esiste (tra le altre ragioni) per proteggere l'anonimato dell'autore del messaggio. Immagina che 4 persone facciano ciascuno un messaggio cieco al firmatario, a cui il firmatario fornisce le firme. In un secondo momento, uno dei messaggi viene rivelato. La firma dovrebbe dimostrare che A) il messaggio non è alterato (integrità), e B) è uno dei 4 messaggi originali (autenticità), ma non dovrebbe essere in grado di dire quale del originale 4 è (anonimato).

Se si utilizzava "firmare un hash" come una forma di firma cieca, il firmatario (o un utente malintenzionato che registra il proprio traffico di rete) potrebbe ricordare quale hash proviene da quale persona, e quindi una volta rivelato il messaggio completo, è possibile calcola il suo hash, confrontalo con gli hash che sono stati inviati e conosci l'autore che lo ha scritto, quindi de-anonimizzando l'autore.

Alcune applicazioni o casi d'uso potrebbero non interessare alla non linkabilità, nel qual caso firmare un hash è un ottimo modo per fare una firma cieca. Ma se lo fai, allora questo schema non va bene. Ad esempio, le firme cieche sono comunemente usate nei sistemi elettorali in cui l'impossibilità di rintracciare una scheda rivelata alla persona che la lancia è un requisito del sistema.

    
risposta data 05.01.2016 - 21:35
fonte
3

Oltre alla proprietà di linkabilità spiegata da @Mike (ed è molto importante in alcuni contesti, ad esempio in alcuni protocolli di voto), fornire semplicemente un hash al firmatario consente una ricerca esaustiva sul dati - mentre le chiavi vivono in spazi abbastanza grandi da ostacolare la ricerca esauriente, i dati significativi non sono necessariamente così resistenti. Ad esempio, se i dati da firmare sono "sì" o "no", ci sono solo due possibili valori hash e il firmatario può semplicemente provare entrambi a vedere quale corrisponde al valore hash che è stato inviato.

Se vuoi che il firmatario non sia in grado di indovinare cosa sta firmando, dovresti almeno impiegare un hash randomizzato (i dati hash devono includere un numero sufficiente di byte casuali per impedire qualsiasi tentativo di indovinare il firmatario).

    
risposta data 05.01.2016 - 21:58
fonte

Leggi altre domande sui tag