0
$\begingroup$

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

$\endgroup$
1
  • $\begingroup$ It depends on the context! $H_i$ can take the inputs with concatenation. $\endgroup$
    – kelalaka
    Nov 15, 2022 at 18:19

1 Answer 1

0
$\begingroup$

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$

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.