Blind signature
# Blind signature

In crittografia, le Blind Signatures (Firme Cieche) sono state introdotte da David Chaum come una forma di firma digitale in cui il contenuto di un messaggio viene nascosto prima di essere firmato. Il messaggio viene quindi firmato in modo cieco, infatti il firmatario non conosce il contenuto del messaggio. Le blind signatures sono utilizzate nei protocolli per la privacy dove il firmatario e l'autore del messaggio sono differenti, ad esempio sono molto utilizzate nel campo dell'e-voting (voto elettronico) e dell'e-cash (denaro elettronico). Gli schemi di blind signatures possono essere implementati usando i comuni schemi di firma a chiave pubblica come RSA o DSA.

## Schema Generale

In questo schema Alice vuole che Bob firmi in modo cieco un messaggio m. Alice quindi cripta il messaggio m (che vuole far firmare a Bob) con la funzione f ottenendo il messaggio cifrato c= f(m). Alice invia il messaggio cifrato c a Bob. Bob firma in modo cieco il messaggio c (cieco perché non sa cosa contiene) con una sua funzione g ottenendo c' =g(c)=g(f(m)). A questo punto Bob invia c' ad Alice. Alice riceve c' e non fa altro che eliminare la sua criptazione ottenuta tramite la funzione f e ottiene così $c^{''}=g(f(m))*f^{-1}=g(m)$

## RSA Blind Signature

Lo schema seguente rappresenta l'implementazione delle blind signatures con lo schema di crittografia RSA.

Si considera inizialmente la chiave pubblica di Bob $(p,e)$, dove $p$ è il prodotto di due numeri primi ed $e$ è l'esponente pubblico della chiave. Alice sceglie un numero casuale $r$ (detto anche blinding factor) coprimo con $p$ e calcola $m^{'}\equiv mr^{e}{\bmod {p}}$ inviandolo attraverso il canale pubblico a Bob. Bob calcola $s^{'}\equiv (m^{'})^{d}{\bmod {p}}$ usando la sua chiave privata $(p,d)$ e invia $s^{'}$ ad Alice. A questo punto Alice può togliere la propria firma e ottenere il messaggio originale $m$ firmato da Bob nel seguente modo $s\equiv s^{'}*r^{-1}{\bmod {p}}\equiv m^{d}{\bmod {p}}$. La dimostrazione dello schema si basa sul fatto che: $r^{ed}\equiv r{\bmod {p}}$ Partendo da questa uguaglianza dimostriamo che $s\equiv s^{'}*r^{-1}{\bmod {p}}\equiv m^{d}{\bmod {p}}$. $s^{'}*r^{-1}{\bmod {p}}\equiv m^{d}{\bmod {p}}$ sostituiamo $s^{'}\equiv (m^{'})^{d}{\bmod {p}}$ e otteniamo $(m^{'})^{d}*r^{-1}{\bmod {p}}\equiv m^{d}{\bmod {p}}$ sostituiamo $m^{'}\equiv mr^{e}{\bmod {p}}$ e otteniamo $(mr^{e})^{d}*r^{-1}{\bmod {p}}\equiv m^{d}{\bmod {p}}$ ora sostituiamo $r^{-ed}\equiv r^{-1}{\bmod {p}}$ e otteniamo $m^{d}r^{ed}*r^{-ed}{\bmod {p}}\equiv m^{d}{\bmod {p}}$ e quindi $m^{d}{\bmod {p}}\equiv m^{d}{\bmod {p}}$.

