I am reading Buchmann's Introduction to Cryptography, 2nd ed. On page 267,
$G$ is a finite cyclic group of prime order $q$. $a\in\mathbb{Z}_{q}=\mathbb{Z}/q\mathbb{Z}$. $h:\{0,1\}^{*}\to G$ is a hash function. $m\in G$. The signer computes $s=h(m)^{a}$.
I am not sure what $h(m)$ means. I know that the set $\{0,1\}^{*}$ contains all words in $0,1$. For example, $0101$ is in this set. But $m$ is in $G$. How do I compute $h(m)$? Thank you.
The star in $h:\{0,1\}^{*}\to G$ is the Kleene star and it simply means zero or more repetition. You may consider the input space as the string of 0 and 1 of arbitrary but finite size.
At first sight, you may say that $m$ need not be in the domain of $h$. If we look a little deeper, we see that we can encode any set, group, field, etc. with $\{0,1\}^{*}$, we already do this with computers, right!.
Let say the size of the group is $\ell$ then you only need bit strings of at most size $\lfloor \log_2 ( \ell )\rfloor +1\;$ to encode them. You only need an order on the group even that it need not be meaningful. The reverse process, decoding, exists since encoding is 1-1.
Now once you encoded the $h$ work with any object. This encoding definition is not part of the hash functions.