Through " Why do we need to convert hashes to points on an elliptic curve? ", I found out why Hashing to Point is necessary.
However, using the algorithm below can sign and verify without Hasing to Point?
- $a$ is secret key
- $H$ is scalar hash function
Sign:
- $k = random (mod\ r)$
- $r = kG_2$
- $s = a (H(m||r) + k)$ : If don't know k, won't know a. Also hashing both m and r to prevent tamper.
Verify:
- $e(G_1, sG_2) == e(aG_1, r + H(m||r)G_2)$
- So $e(G_1, G_2)^{a(H(m||r) + k)} == e(G_1, G_2)^{a(k + H(m||r))}$
If these methods weren't used before, why would they?
Would that be more inefficient than finding a Point with a Hash?
Or maybe it's not safe?