A computer implemented method for generating and verifying digital signature for an electronic message m, when system coefficients are g, q, and p and a signer's public key is v.sub.A (.ident.g.sup.-a.sbsp.A mod p), a blind digital signature scheme comprising the steps of:
- for a verifiers, selecting an arbitrary number r.sub.B, calculating a remainder x.sub.B (.ident.mv.sub.A.sup.r.sbsp.B mod p) obtained by dividing by p the product of the r.sub.B.sup.th power of the signer's public key v.sub.A (.ident.g.sup.-aA mod p) by message m, and transmitting x.sub.B to the signer;
- for the signer, selecting an arbitrary number r.sub.A, calculating a remainder x.sub.A (.ident.mv.sub.A.sup.r.sbsp.B g.sup.-r.sbsp.A mod p) obtained by dividing by p the product of the -r.sub.A.sup.th power of g by x.sub.B received, and transmitting x.sub.A to the verifier;
- for said verifier, applying x.sub.A received from said signer and message m to the hash function to obtain h(x.sub.A, m), and calculating a remainder y.sub.B (.ident.h(x.sub.A, m) +r.sub.B mod q) obtained by dividing by q arbitrary number r.sub.B added to h(x.sub.A, m), and transmitting y.sub.B to the signer;
- for said signer, calculating a remainder y.sub.A (.ident.r.sub.A +y.sub.B a.sub.A mod q) obtained by dividing by q arbitrary number r.sub.A added to the product of received y.sub.B by secret key a.sub.A to thereby transmit y.sub.A to the verifier, and for said verifier, receiving a blind signature (x.sub.A,y.sub.A) for message m;
- and
- in order to verify the generated digital signature, for said verifiers, calculating a remainder x.sub.A g.sup.y.sbsp.A v.sub.A.sup.h(x.sbsp.A.sup., m) mod p obtained by dividing by p the product of the h(x.sub.A, m).sup.th power of v.sub.A by the y.sub.A.sup.th power of g and by x.sub.A, to thereby verify the validity of signer A's digital signature (x.sub.A,y.sub.A) by recovering message m and confirming its contents.