0

$ G \space is \space an \space elliptic \space curve \space group \space G \space with \space order \space q$ and three hash functions are defined as this: $$ H_1: \{0,1\}^*\times G \rightarrow Z^*_q $$ $$ H_2: \{0,1\}^*\times G \times G \rightarrow Z^*_q $$ $$ H_3: \{0,1\}^*\times Z^*_q \times G \times G \rightarrow Z^*_q $$ I searched and found this question and as far as I understand $ H_0: \{0,1\}^* \rightarrow Z^*_q $ maps some arbitrary length of zeros and ones to $Z_q^*$ but what do H1,H2, and H3 do? why use G multiple times? what would be the reason for this?

Abol_Fa
  • 73
  • 7

1 Answers1

0

what do H1, H2 and H3 do?

$$ H_1: \{0,1\}^*\times G \rightarrow Z^*_q $$

$H_1$ takes some arbitrary length string of zeros and ones, along with an element of the group G, and maps them into a element of $Z_q^*$

$$ H_2: \{0,1\}^*\times G \times G \rightarrow Z^*_q $$

$H_2$ takes some arbitrary length string of zeros and ones, along with two elements of the group G, and maps them into a element of $Z_q^*$

And, so to answer your question:

why use G multiple times?

We use G two times because $H_2$ has two inputs which are both elements of G (and the bitstring). Similarly, the standard curve addition operation can be summarized as $+: G \times G \rightarrow G$, that is, it takes two elements of G is input, and has an element of G as an output.

And, to complete your questions:

$$ H_3: \{0,1\}^*\times Z^*_q \times G \times G \rightarrow Z^*_q $$

$H_3$ has inputs which is the bitstring, an element of $Z^*_q$ and two elements of $G$, and maps them into an element of $Z^*_q$

poncho
  • 147,019
  • 11
  • 229
  • 360