Skip to content

Commit 24e1fd0

Browse files
committed
clarify guidance on which sgn0 method to use
1 parent 49110f4 commit 24e1fd0

File tree

1 file changed

+28
-16
lines changed

1 file changed

+28
-16
lines changed

draft-irtf-cfrg-hash-to-curve.md

+28-16
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ informative:
7676
ins: T. Saito
7777
name: Tsunekazu Saito
7878
org: NTT
79-
SECG1:
79+
SEC1:
8080
title: "SEC 1: Elliptic Curve Cryptography"
8181
target: http://www.secg.org/sec1-v2.pdf
8282
date: May, 2009
@@ -749,9 +749,13 @@ informative:
749749
WB19:
750750
title: Fast and simple constant-time hashing to the BLS12-381 elliptic curve
751751
seriesinfo:
752-
"Technical report": ePrint 2019/403
752+
"In": IACR Trans. CHES
753+
"volume": 2019
754+
"issue": 4
755+
DOI: 10.13154/tches.v2019.i4.154-179
756+
"ePrint": 2019/403
753757
target: https://eprint.iacr.org/2019/403
754-
date: 2019
758+
date: Aug, 2019
755759
author:
756760
-
757761
ins: R. S. Wahby
@@ -889,6 +893,14 @@ informative:
889893
author:
890894
-
891895
org: IEEE Computer Society
896+
x9.62:
897+
title: "Public Key Cryptography for the Financial Services Industry: the Elliptic Curve Digital Signature Algorithm (ECDSA)"
898+
date: Sep, 1998
899+
seriesinfo:
900+
"ANSI": X9.62-1998
901+
author:
902+
-
903+
org: ANSI
892904

893905
--- abstract
894906

@@ -1061,9 +1073,8 @@ That construction is described in {{roadmap}}.
10611073

10621074
A procedure related to encoding is the conversion of an elliptic curve point to a bit string.
10631075
This is called serialization, and is typically used for compactly storing or transmitting points.
1064-
For example, {{SECG1}} gives a standard method for serializing points.
1065-
The reverse operation, deserialization, converts a bit string to an elliptic
1066-
curve point.
1076+
The reverse operation, deserialization, converts a bit string to an elliptic curve point.
1077+
For example, {{SEC1}} and {{p1363a}} give standard methods for serialization and deserialization.
10671078

10681079
Deserialization is different from encoding in that only certain strings
10691080
(namely, those output by the serialization procedure) can be deserialized.
@@ -1291,10 +1302,9 @@ The following sgn0 variant is defined such that sgn0\_be(x) = -1
12911302
just when the big-endian encoding of x is lexically greater than
12921303
the encoding of -x.
12931304

1294-
This variant is convenient when points are serialized
1295-
in big-endian byte order, or when points are serialized
1296-
according to IEEE 1363a-2004 {{p1363a}} and the extension
1297-
degree of F is greater than 1.
1305+
This variant SHOULD be used when points on the target elliptic curve
1306+
are serialized using the SORT compression method given in
1307+
IEEE 1363a-2004 {{p1363a}}, Section 5.5.6.1.2, and other similar methods.
12981308

12991309
~~~
13001310
sgn0_be(x)
@@ -1324,13 +1334,15 @@ The following sgn0 variant is defined such that sgn0\_le(x) = -1
13241334
just when x != 0 and the parity of the least significant nonzero
13251335
entry of the vector representation of x is 1.
13261336

1327-
This variant is convenient when points are serialized
1328-
in little-endian byte order.
1329-
For example, this serialization is specified for the
1337+
This variant SHOULD be used when points on the target elliptic curve are serialized
1338+
using any of the following methods:
1339+
1340+
- the LSB compression method given in IEEE 1363a-2004 {{p1363a}}, Section 5.5.6.1.1,
1341+
- the method given in {{SEC1}} Section 2.3.3, or
1342+
- the method given in ANSI X9.62-1998 {{x9.62}}, Section 4.2.1.
1343+
1344+
This variant is also compatible with the compression method specified for the
13301345
Ed25519 and Ed448 elliptic curves {{!RFC8032}}.
1331-
This variant is also convenient when points are serialized
1332-
according to IEEE 1363a-2004 {{p1363a}} and the extension
1333-
degree of F is exactly 1.
13341346

13351347
~~~
13361348
sgn0_le(x)

0 commit comments

Comments
 (0)