[CFRG] Re: Pairing-Friendly Curves: Open Questions Before Draft Update
David Waite <david@alkaline-solutions.com> Mon, 15 December 2025 23:35 UTC
Return-Path: <david@alkaline-solutions.com>
X-Original-To: cfrg@mail2.ietf.org
Delivered-To: cfrg@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id AF3E69AF4BCF for <cfrg@mail2.ietf.org>; Mon, 15 Dec 2025 15:35:45 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.304
X-Spam-Level:
X-Spam-Status: No, score=-1.304 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, RDNS_NONE=0.793, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=alkaline-solutions.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id HZA9sTwK9krF for <cfrg@mail2.ietf.org>; Mon, 15 Dec 2025 15:35:45 -0800 (PST)
Received: from caesium6.alkaline.solutions (unknown [157.230.133.164]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id E932D9AF4BCA for <cfrg@irtf.org>; Mon, 15 Dec 2025 15:35:44 -0800 (PST)
From: David Waite <david@alkaline-solutions.com>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alkaline-solutions.com; s=dkim; t=1765841737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=EhAiAFgx05Nr+EY0AlYa9E8YOgPvEucn2lEAVj2gV6k=; b=CogGTAYeLC6I1rRK92DXYCnBbGEL99PKYrm4FiiTWx2gfaIu9Pi8JhYLUXq9ou19WRb3bk XeTjDusWYpbHWmw9pVFQ3FOnDma5mm2LyiLkGpBQT3WgvbZwv5H7Z5NA+bP3Efg6ByH7MU pJSEUDaSoO1m4PAgvzDNHnHAfMWUg5PoJ27hKI/qmZ3mRgFjZ/rQuzqijzCv3BAxKeQGWf 0Ck4BqcVpi6YriL5YXJ6R2E7hz7JFh/wRa4fdKDd2tht6ngFO6fAQxzvYOubpfApyiXBpr aZo0TnJzy3Y0bWRgVFq1TVjtViCK3/r01ccAUqGpqCWlfW9RelOqgdaknmTPUA==
Authentication-Results: caesium6.alkaline.solutions; auth=pass smtp.mailfrom=david@alkaline-solutions.com
Message-Id: <B70B1FC1-BEF1-4C18-B5EB-B42703A9BE7C@alkaline-solutions.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_2D6639DC-CEA2-481B-B5C6-F775786D1F00"
Mime-Version: 1.0
Date: Mon, 15 Dec 2025 16:35:26 -0700
In-Reply-To: <CAOjisRy=_=+rGpjX-3=1uDNfhBrzKggrw+Ts8QVdebeGAtU3xg@mail.gmail.com>
To: Nick Sullivan <nicholas.sullivan@gmail.com>
References: <CAOjisRy=_=+rGpjX-3=1uDNfhBrzKggrw+Ts8QVdebeGAtU3xg@mail.gmail.com>
X-Spamd-Bar: --
Message-ID-Hash: OUZIV2NATCGWSNW3RMGXKI2S6SHQ6BMQ
X-Message-ID-Hash: OUZIV2NATCGWSNW3RMGXKI2S6SHQ6BMQ
X-MailFrom: david@alkaline-solutions.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cfrg.irtf.org-0; header-match-cfrg.irtf.org-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: CFRG <cfrg@irtf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [CFRG] Re: Pairing-Friendly Curves: Open Questions Before Draft Update
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/MzFgr2qShM6BBV15zLGxTfxTq-A>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cfrg>
List-Help: <mailto:cfrg-request@irtf.org?subject=help>
List-Owner: <mailto:cfrg-owner@irtf.org>
List-Post: <mailto:cfrg@irtf.org>
List-Subscribe: <mailto:cfrg-join@irtf.org>
List-Unsubscribe: <mailto:cfrg-leave@irtf.org>
> On Dec 12, 2025, at 9:25 AM, Nick Sullivan <nicholas.sullivan@gmail.com> wrote: > <snip> > Document scope and structure > Should the draft stay focused on curve parameters and test vectors, or also include interface guidance, serialization formats, or tutorial content? Should nonessential background material (e.g. pairing formulae, curve surveys) be moved to an appendix or companion document? Should the draft’s title or positioning be updated to reflect this narrower focus? WRT serialization around BLS-12-381: - draft-irtf-cfrg-bbs-signatures-09 appendix B.2 duplicates the point encoding and decoding, and the algorithm uses this binary representation to serialize points as messages in the signature algorithm (with constraints, discussed below under the curve selection topic) - draft-ietf-cose-bls-key-representations-08 references this, and also applies a delta to the BBS definition as the prescribed way to represent BLS48-581 points in JWK/CWK documents - draft-irtf-cfrg-bls-signature-06 instead references a historical version of a rust crate README. Also, the document originally referenced by paring-friendly-curves for the ZCash work (for its own appendix describing this representation) appears to have moved or disappeared - I believe because the above mentioned README.md has since been edited. It would be great if we could reference this representation definitively in one place, without indicating ZCash as a possibly more authoritative work, and ideally without other dependent specs needing to constrain or expand upon the format. I don’t think any of the three documents I’ve referenced above are ideal though - I think that the serialization should be in this document or one split out from it. My preference as an implementor would be not to split out the point representation - or to have pairing-friendly-curves normatively reference the document that these were split into. As much as possible we should encourage a single serialization for valid points on a particular curve. I suspect such representations are also useful for documenting and leveraging test vectors. > Curve selection > Is the current set of curves appropriate? Some suggest narrowing to BLS12-381 plus one BLS24 and one BLS48 to target 128-, 192-, and 256-bit security levels. Others recommend removing BN curves that may no longer meet security or deployment criteria. A shared rationale is needed for inclusion or removal. Should this document support only BLS-style use cases, or also applications like ZKPs or IBE? draft-irtf-cfrg-pairing-friendly-curves draft 10 dropped the definition of BLS48-581 - I couldn’t immediately see why. However the bls-key-representations draft expects to reference the BLS48-581 curve definition from pairing-friendly-curves - so bls-key-representations no longer has a clear reference path to the curve parameters used for BLS48-581. BBS does not create a crypto suite leveraging BLS48-581 currently, and I don’t know whether there is a need for BLS48-581 elsewhere (i.e. whether it was supported by bls-key-representations only because prior drafts of friendly-curves defined it). <snip> > Serialization > The current draft allows both compressed and uncompressed encodings, including identity elements. Concerns were raised about interoperability and risks from optional encodings. Should the draft specify a simpler, consistent serialization format for implementers? Should identity points be disallowed or tightly constrained? My take is that we should have a single encoding function per curve that produces fixed-length, compressed, non-identity elements - and a decoding function that fails on uncompressed and identity elements. In the BLS case, that encoding should be a subset of the ZCash-based serialization, restricting that “C" is always 1 and “I" is always 0. BBS I believe constrains the algorithm to only support compressed points, but does not constrain serializing infinity. Applications could still have their own binary representation of infinity if they needed it. However, implementations of the deserialization algorithm could by default avoid infinity and non-curve points in the cases where they are not valid. We could also define a consistent bit prefix scheme for various curves as well (that happens to be compatible with the zcash subset when the field is 5 mod 8), possibly as simple as a leading sign bit on an X value, itself prefixed by a leading 1 and an appropriate number of zeros as needed to byte-align. I don’t have any delusions that such a serialization would “win” when a curve is coming from work within another community which has already defined their own representations, however. <snip> -DW
- [CFRG] Re: Pairing-Friendly Curves: Open Question… 酒見由美
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Watson Ladd
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Jack Grigg
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Bellebaum, Thomas
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Bellebaum, Thomas
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Ian Goldberg
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Anja Lehmann
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Nick Sullivan
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Diego F. Aranha
- [CFRG] Pairing-Friendly Curves: Open Questions Be… Nick Sullivan
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Bellebaum, Thomas
- [CFRG] Re: Pairing-Friendly Curves: Open Question… David Waite
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Yumi Sakemi
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Yumi Sakemi
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Yumi Sakemi
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Diego F. Aranha
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Yumi Sakemi
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Diego F. Aranha
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Yumi Sakemi
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Michael Scott
- [CFRG] Re: Pairing-Friendly Curves: Open Question… Yumi Sakemi