PubKey is rG
.
Signing:
k = rand()
R = kG
s = k + Hash(msg|P|R)*r
Sig =<s, R>
Verification:
- Check that
sG
equal toR + Hash(msg|P|R)*P
Description:
s = k + hash*prv
, so sG = G(k + hash*prv)
R = kG
, so R + hash*P = kG + hash*prv*G = G (k + hash*prv)