Sunday, January 18, 2009

Blind Signature

Blind signature is a technique which is used to obtain digital signature on some value without exposing that. The scenario is like this, consider a person A who wants a digital signature of B on some message m, but at the same time A did not want to disclose the message even to B. How to do it?

The question seems complex! if B does not know the massage then how could he sign on it? D. Chaum had proposed a solution for this problem in his paper "blind signature for untraceable cash". The proposal is as follows.
  1. Let public key of B is (n,e)
  2. A generates a random number r
  3. Then A calculates c=m*(r^e) and sends to B for digital signature
  4. B now did not know about m, because he got m*(r^e) and since r is not disclosed to B he has no idea about m. B does digital signature on the value m*(r^e) using his private key (n,d).
  5. Signature scheme being RSA the output is actually (m*(r^e))^d. which is (m^d)*(r^ed). which in turn is ( (m^d) * r )
  6. This value is send back to A
  7. Since A knows r he calculates inverse of r say r'. such that r*r' = 1 mod n. And then finds s=( (m^d) * r ) * r'.
  8. Value of s is m^d which is the digital signature on m by B.
The digital signature of m is been obtained by A without even exposing the value of m to B.

2 comments:

public key infrastructure said...

Glad to know more about the blind signature. Blind Signature have many uses like timestamping, digital cash, anonymous access control etc. In fact, you will find out lot of variations on blind signatures theme.

Gaurav said...

Nice information. I also like your IRCTC seat availability Indian Rail App.