What is a blind signature?
A blind signature is a form of a digital signature in which the content of the message is hidden (blinded) before it is signed. With this technique, the signer will not have access to the contents of the message they are signing. This provides anonymity and unlinkability to the person who made that message. This technique is normally used when the author and the signer are different parties. To better understand blind signatures, it is better to go over some concepts of digital signatures first.
What is a digital signature?
A digital signature is a cryptographic technique used to verify the identity of the person sending the message. This technique uses
Alice has a message
that she wants to sign and send to Bob. She computes the hash of the message
and encrypts the hash with her . This encrypted hash is also known as the digital signature.private key A key, only known to Alice, which can be used to encrypt/decrypt data. Alice appends the signature (encrypted hash)
with the message and sends it to Bob. Bob computes the hash of the message
Then he decrypts the digital signature with Alice's
and compares it with the hash of the message he computed in step 5.public key A key that is publicly available and can be used to encrypt/decrypt messages to/from Alice. If both the hashes are equal, then it can be confirmed that Alice sent the message and the message was not corrupted on the network.
Note: Read more about digital signatures here.
How do blind signatures work?
In a blind signature, the message's contents are blinded by the sender. Therefore, the signer does not have access to the contents of the message. Later the message can be unblinded by the sender so that the signature remains on the unblinded message. The simplest example of a blinded signature is a blind RSA signature, which can be done in the following steps:
Alice generates a message
that she wants to send to Bob with a bank's signature, and she doesn't want the bank to know the message's contents. Alice multiplies the message with a blinding factor
, where r is a random number that is relatively prime to (meaning the greatest common divisor of and is equal to ), is the exponent of the bank's public key and is the modulo of the bank's public key. The message after multiplying with the blinding factor is:
Alice sends this blinded message to the bank (signing authority).
The bank then generates an RSA signature
for the blinded message by raising it to the bank's secret exponent and taking a modulus with the bank's public exponent
Bank sends this signature on the blinded message
to Alice. Alice then removes the blinding factor from
to reveal the unblinded signature by multiplying it with
The detailed working of the equation above is as follows:
Where
Alice then sends this unblinded signature
to Bob. Bob then uses the bank's public key to decrypt the signature
thus verifying that this message was signed by the bank's private key (which is only accessible to the bank).
Free Resources