Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PoP scheme: recommendation for hash_pubkey_to_point serialization #49

Open
mratsim opened this issue Feb 24, 2022 · 0 comments
Open

PoP scheme: recommendation for hash_pubkey_to_point serialization #49

mratsim opened this issue Feb 24, 2022 · 0 comments

Comments

@mratsim
Copy link
Contributor

mratsim commented Feb 24, 2022

Currently (draft 14) the section about the PoP schemes makes the following recommendation:

The RECOMMENDED way of instantiating hash_pubkey_to_point is to
use the same hash-to-curve function as hash_to_point, with a
different domain separation tag (see
[I-D.irtf-cfrg-hash-to-curve], Section 3.1). Section 4.1
discusses the RECOMMENDED way to construct the domain separation
tag.

In section 1.3 we have

  • PK: The public key for the signature scheme.

[...]

  • point_to_octets(P) -> ostr: returns the canonical
    representation of the point P as an octet string. This
    operation is also known as serialization.

  • octets_to_point(ostr) -> P: returns the point P corresponding
    to the canonical representation ostr, or INVALID if ostr is not
    a valid output of point_to_octets. This operation is also
    known as deserialization.

Curve points usually admits both a compressed and an uncompressed representation.
For example Weierstrass pairing curves with equation y² = ax³ + b might only store x+sign(y) and Edwards curve points are usually compressed by storing just y and the sign of x (https://eprint.iacr.org/2015/677.pdf, Encoding and parsing curve points p2, for pairings on Edwards curves: https://eprint.iacr.org/2009/155.pdf)

For instance BLS12-381 admits 2 "canonical" serialization format (https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-pairing-friendly-curves-10#appendix-C). It should be clearer that the application should enforce a single representation for PopProve and PopVerify purposes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant