# Hash Function representation in identity-based encryption

Some describe as $H:F_{q}\times G_{2}\rightarrow \{0,1\}^{n}$.Some describe as $H:\{0,1\}^{*}\times\{0,1\}^{*}\rightarrow F_{q}$. What is the meaning of product function? what kind of operation does it refer to?

## 1 Answer

The authors describe it that way because the functions operate on different inputs and produce different outputs. In your first example $H$ outputs an $n$ bit string, while in the second $H$ outputs an element of the field $F_q$. Clearly, one can represent an element of a field $F_q$ by a bitstring of size $n$ for some $n$ (using some suitable encoding). However, I guess that the authors who use the second definition use the output of $H$ for some computation in $F_q$, while the authors that use the first one use it to compute an XOR with some other $n$ bit string or the like.

The product just means that the function takes as input a pair $(a,b)$ where $a$ comes from the first domain ($F_q$ or $\{0,1\}^*$) and $b$ comes from the second domain ($G_2$ or $\{0,1\}^*$). The details how $H$ exactly looks like is not specified by this notation. For instance, if $H$ has two inputs $(a,b)$ one way of implementing it is as $H'(a\|b)$ with $a$ and $b$ being some encodings to bitstrings and $\|$ denotes concatenation and $H'$ takes inputs from $\{0,1\}^*$.