You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
: The identity element for the G1, G2, and GT subgroups respectively.
212
212
213
213
hash\_to\_curve\_g1(ostr, dst) -> P
214
-
: A cryptographic hash function that takes an arbitrary octet string as input and returns a point in G1, using the hash\_to\_curve operation defined in [@!I-D.irtf-cfrg-hash-to-curve] and the inputted dst as the domain separation tag for that operation (more specifically, the inputted dst will become the DST parameter for the hash\_to\_field operation, called by hash\_to\_curve).
214
+
: A cryptographic hash function that takes an arbitrary octet string as input and returns a point in G1, using the hash\_to\_curve operation defined in [@!RFC9380] and the inputted dst as the domain separation tag for that operation (more specifically, the inputted dst will become the DST parameter for the hash\_to\_field operation, called by hash\_to\_curve).
: returns the canonical representation of the point P of the elliptic curve E1 or E2 as an octet string. This operation is also known as serialization. Note that we assume that when the point is valid, all the serialization operations will always succeed to return the octet string representation of the point.
@@ -251,7 +251,7 @@ The schemes operations defined in this section depend on the following parameter
251
251
252
252
* A pairing-friendly elliptic curve, plus associated functionality given in (#notation).
253
253
254
-
* A hash-to-curve suite as defined in [@!I-D.irtf-cfrg-hash-to-curve], using the aforementioned pairing-friendly curve. This defines the hash\_to\_curve and expand\_message operations, used by this document.
254
+
* A hash-to-curve suite as defined in [@!RFC9380], using the aforementioned pairing-friendly curve. This defines the hash\_to\_curve and expand\_message operations, used by this document.
255
255
256
256
* get\_random(n): returns a random octet string with a length of n bytes, sampled uniformly at random using a cryptographically secure pseudo-random number generator (CSPRNG) or a pseudo random function. See [@!RFC4086] for recommendations and requirements on the generation of random numbers.
257
257
@@ -1140,7 +1140,7 @@ It is RECOMMENDED that the `create_generators` and `messages_to_scalars` operati
1140
1140
1141
1141
### Generators Calculation
1142
1142
1143
-
The `create_generators` procedure defines how to create a set of randomly sampled points from the G1 subgroup, called the generators. It makes use of the primitives defined in [@!I-D.irtf-cfrg-hash-to-curve] (more specifically of `hash_to_curve` and `expand_message`) to hash a seed to a set of generators. Those primitives are implicitly defined by the ciphersuite, through the choice of a hash-to-curve suite (see the `hash_to_curve_suite` parameter in (#ciphersuite-format)).
1143
+
The `create_generators` procedure defines how to create a set of randomly sampled points from the G1 subgroup, called the generators. It makes use of the primitives defined in [@!RFC9380] (more specifically of `hash_to_curve` and `expand_message`) to hash a seed to a set of generators. Those primitives are implicitly defined by the ciphersuite, through the choice of a hash-to-curve suite (see the `hash_to_curve_suite` parameter in (#ciphersuite-format)).
1144
1144
1145
1145
Since `create_generators` generates constant points, as an optimization, implementations MAY cache its result for a specific `count` (which can be arbitrarily large, depending on the application). Care must be taken, to guarantee that the generators will be fetched from the cache in the same order they had when they where created (i.e., an application should not short or in any way rearrange the cached generators).
1146
1146
@@ -1322,9 +1322,9 @@ Procedure:
1322
1322
1323
1323
This operation describes how to hash an arbitrary octet string to a scalar values in the multiplicative group of integers mod r (i.e., values in the range from 1 to r - 1). This procedure acts as a helper function, used internally in various places within the operations described in the spec.
1324
1324
1325
-
The operation takes as input an octet string representing the octet string to hash (`msg`) and a domain separation tag (`dst`). The length of the dst MUST be less than 255 octets. See section 5.3.3 of [@!I-D.irtf-cfrg-hash-to-curve] for guidance on using larger dst values.
1325
+
The operation takes as input an octet string representing the octet string to hash (`msg`) and a domain separation tag (`dst`). The length of the dst MUST be less than 255 octets. See section 5.3.3 of [@!RFC9380] for guidance on using larger dst values.
1326
1326
1327
-
**Note** This operation makes use of `expand_message` defined in [@!I-D.irtf-cfrg-hash-to-curve]. The operation `expand_message` may fail (abort). In that case, `hash_to_scalar` MUST also ABORT.
1327
+
**Note** This operation makes use of `expand_message` defined in [@!RFC9380]. The operation `expand_message` may fail (abort). In that case, `hash_to_scalar` MUST also ABORT.
1328
1328
1329
1329
```
1330
1330
hashed_scalar = hash_to_scalar(msg_octets, dst)
@@ -1690,7 +1690,7 @@ The signature proofs of knowledge generated in this specification are created us
1690
1690
1691
1691
## Implementing hash\_to\_curve\_g1
1692
1692
1693
-
The security analysis models hash\_to\_curve\_g1 as random oracles. It is crucial that these functions are implemented using a cryptographically secure hash function. For this purpose, implementations MUST meet the requirements of [@!I-D.irtf-cfrg-hash-to-curve].
1693
+
The security analysis models hash\_to\_curve\_g1 as random oracles. It is crucial that these functions are implemented using a cryptographically secure hash function. For this purpose, implementations MUST meet the requirements of [@!RFC9380].
1694
1694
1695
1695
In addition, ciphersuites MUST specify unique domain separation tags for hash\_to\_curve. Some guidance around defining this can be found in (#ciphersuites).
1696
1696
@@ -1765,9 +1765,9 @@ The parameters that each ciphersuite needs to define are generally divided into
1765
1765
1766
1766
- octet\_point\_length: Number of bytes to represent a point encoded as an octet string outputted by the `point_to_octets_E*` function.
1767
1767
1768
-
- hash\_to\_curve\_suite: The hash-to-curve ciphersuite id, in the form defined in [@!I-D.irtf-cfrg-hash-to-curve]. This defines the hash\_to\_curve\_g1 (the hash\_to\_curve operation for the G1 subgroup, see the Notation defined in (#notation)) and the expand\_message (either expand\_message\_xmd or expand\_message\_xof) operations used in this document.
1768
+
- hash\_to\_curve\_suite: The hash-to-curve ciphersuite id, in the form defined in [@!RFC9380]. This defines the hash\_to\_curve\_g1 (the hash\_to\_curve operation for the G1 subgroup, see the Notation defined in (#notation)) and the expand\_message (either expand\_message\_xmd or expand\_message\_xof) operations used in this document.
1769
1769
1770
-
- expand\_len: Must be defined to be at least `ceil((ceil(log2(r))+k)/8)`, where `log2(r)` and `k` are defined by each ciphersuite (see Section 5 in [@!I-D.irtf-cfrg-hash-to-curve] for a more detailed explanation of this definition).
1770
+
- expand\_len: Must be defined to be at least `ceil((ceil(log2(r))+k)/8)`, where `log2(r)` and `k` are defined by each ciphersuite (see Section 5 in [@!RFC9380] for a more detailed explanation of this definition).
1771
1771
1772
1772
- P1: A fixed point in the G1 subgroup, different from the point BP1 (i.e., the base point of G1, see (#terminology)). This leaves the base point "free", to be used with other protocols, like key commitment and proof of possession schemes (for example, like the one described in Section 3.3 of [@I-D.irtf-cfrg-bls-signature]).
1773
1773
@@ -1793,7 +1793,7 @@ The following two ciphersuites are based on the BLS12-381 elliptic curves define
1793
1793
1794
1794
The first ciphersuite uses the hash-to-curve suite `BLS12381G1_XOF:SHAKE-256_SSWU_RO_`, defined by this document in [Appendix A.1](#bls12-381-hash_to_curve-def), which is based on the SHAKE-256 extendable output function, as defined in Section 6.2 of [@!SHA3].
1795
1795
1796
-
The second ciphersuite uses the hash-to-curve suite `BLS12381G1_XMD:SHA-256_SSWU_RO_`, defined in Section 8.8.1 of the [@!I-D.irtf-cfrg-hash-to-curve] document, which is based on the SHA-256, as defined in Section 6.2 of [@!SHA2] .
1796
+
The second ciphersuite uses the hash-to-curve suite `BLS12381G1_XMD:SHA-256_SSWU_RO_`, defined in Section 8.8.1 of the [@!RFC9380] document, which is based on the SHA-256, as defined in Section 6.2 of [@!SHA2] .
1797
1797
1798
1798
For both ciphersuites defined in this section, the fixed point `P1` of G1 is defined as the output of the `create_generators` procedure defined in (#generators-calculation) instantiated with the parameters defined by each ciphersuite, with the inputs `count = 1`, not supplying an `api_id` value and making use of the following "Definitions" for the `seed_dst`, `generator_dst` and `generator_seed` variables;
1799
1799
@@ -1854,7 +1854,7 @@ Note that these two ciphersuites differ only in the hash-to-curve suites used. T
1854
1854
1855
1855
- octet\_point\_length: 48, based on the RECOMMENDED approach of `ceil(log2(p)/8)`.
1856
1856
1857
-
- hash\_to\_curve\_suite: "BLS12381G1\_XMD:SHA-256\_SSWU\_RO\_" as defined in Section 8.8.1 of the [@!I-D.irtf-cfrg-hash-to-curve] for the G1 subgroup.
1857
+
- hash\_to\_curve\_suite: "BLS12381G1\_XMD:SHA-256\_SSWU\_RO\_" as defined in Section 8.8.1 of the [@!RFC9380] for the G1 subgroup.
@@ -2468,17 +2468,17 @@ Additionally, the authors would like to acknoledge Jacques Traore and Antoine Du
2468
2468
2469
2469
# BLS12-381 hash\_to\_curve Definition Using SHAKE-256
2470
2470
2471
-
The following defines a hash\_to\_curve suite [@!I-D.irtf-cfrg-hash-to-curve] for the BLS12-381 curve for both the G1 and G2 subgroups using the extendable output function (xof) of SHAKE-256 as per the guidance defined in section 8.9 of [@!I-D.irtf-cfrg-hash-to-curve].
2471
+
The following defines a hash\_to\_curve suite [@!RFC9380] for the BLS12-381 curve for both the G1 and G2 subgroups using the extendable output function (xof) of SHAKE-256 as per the guidance defined in section 8.9 of [@!RFC9380].
2472
2472
2473
-
Note the notation used in the below definitions is sourced from [@!I-D.irtf-cfrg-hash-to-curve].
2473
+
Note the notation used in the below definitions is sourced from [@!RFC9380].
2474
2474
2475
2475
## BLS12-381 G1
2476
2476
2477
2477
The suite of `BLS12381G1_XOF:SHAKE-256_SSWU_RO_` is defined as follows:
2478
2478
2479
2479
```
2480
2480
* encoding type: hash_to_curve (Section 3 of
2481
-
[@!I-D.irtf-cfrg-hash-to-curve])
2481
+
[@!RFC9380])
2482
2482
2483
2483
* E: y^2 = x^3 + 4
2484
2484
@@ -2492,14 +2492,14 @@ The suite of `BLS12381G1_XOF:SHAKE-256_SSWU_RO_` is defined as follows:
2492
2492
* k: 128
2493
2493
2494
2494
* expand_message: expand_message_xof (Section 5.3.2 of
2495
-
[@!I-D.irtf-cfrg-hash-to-curve])
2495
+
[@!RFC9380])
2496
2496
2497
2497
* hash: SHAKE-256
2498
2498
2499
2499
* L: 64
2500
2500
2501
2501
* f: Simplified SWU for AB == 0 (Section 6.6.3 of
2502
-
[@!I-D.irtf-cfrg-hash-to-curve])
2502
+
[@!RFC9380])
2503
2503
2504
2504
* Z: 11
2505
2505
@@ -2512,14 +2512,14 @@ The suite of `BLS12381G1_XOF:SHAKE-256_SSWU_RO_` is defined as follows:
2512
2512
cef35ef55a23215a316ceaa5d1cc48e98e172be0
2513
2513
2514
2514
* iso_map: the 11-isogeny map from E' to E given in Appendix E.2 of
2515
-
[@!I-D.irtf-cfrg-hash-to-curve]
2515
+
[@!RFC9380]
2516
2516
2517
2517
* h_eff: 0xd201000000010001
2518
2518
```
2519
2519
2520
-
Note that the h_eff values for this suite are copied from that defined for the `BLS12381G1_XMD:SHA-256_SSWU_RO_` suite defined in section 8.8.1 of [@!I-D.irtf-cfrg-hash-to-curve].
2520
+
Note that the `h_eff` values for this suite are copied from that defined for the `BLS12381G1_XMD:SHA-256_SSWU_RO_` suite defined in section 8.8.1 of [@!RFC9380].
2521
2521
2522
-
An optimized example implementation of the Simplified SWU mapping to the curve E' isogenous to BLS12-381 G1 is given in Appendix F.2 [@!I-D.irtf-cfrg-hash-to-curve].
2522
+
An optimized example implementation of the Simplified SWU mapping to the curve E' isogenous to BLS12-381 G1 is given in Appendix F.2 [@!RFC9380].
0 commit comments