H₁ hashes the concatenation of public keys into an integer modulo the large prime torsion factor r. It supports BLS aggregation by reducing variable-length hash output into the scalar domain used by the pairing curve. section 18.2.1
An implementation follows a short pipeline:
- Accept the public-key data, the input length, and the large prime factor r. section 18.3.2
- Compute a secure output length from r, adding security-level bits before rounding to whole bytes. section 18.3.2
- Run KangarooTwelve with the H₁ domain-separation tag, import the resulting bytes as an integer, and reduce it modulo r by adding zero. section 18.3.2
Operational contrast with H₀
For concatenated public keys Q, H₁(Q) produces a scalar modulo r. H₀ uses the same hashing pattern but reduces modulo the field prime, embeds the result as a curve point, and multiplies by the cofactor; H₁ performs no curve embedding. section 18.2.1 section 18.3.2
Figure 18.5 Hash \(H_1(Q)\) to large prime factor in base curve: hashes the concatenation of public keys to a single value.
Shows H₁ mapping concatenated public keys to a value in the large prime factor domain. section 18.2.1
