# Why would be the use of such hash function definition? What would be the input of these functions?

$$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?

• It depends on the context! $H_i$ can take the inputs with concatenation. Commented Nov 15, 2022 at 18:19

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^*$$

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.
$$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$$