[CFRG] Review of BBS Signatures draft-07

Julia Hesse <juliahesse2@gmail.com> Tue, 08 October 2024 20:38 UTC

Return-Path: <juliahesse2@gmail.com>
X-Original-To: cfrg@ietfa.amsl.com
Delivered-To: cfrg@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7E512C180B4A; Tue, 8 Oct 2024 13:38:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.859
X-Spam-Level:
X-Spam-Status: No, score=-1.859 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t_SiHGhJlzf7; Tue, 8 Oct 2024 13:38:43 -0700 (PDT)
Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 09C93C151097; Tue, 8 Oct 2024 13:38:43 -0700 (PDT)
Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-37cea34cb57so3670417f8f.0; Tue, 08 Oct 2024 13:38:42 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1728419921; x=1729024721; darn=ietf.org; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=9CQxg3F4+STfgEOdbwmm8vsF/cba+Q0XLMFnqW9yg+U=; b=m32iQUm0Ycf9AP8Av8KDI4qgAYhFcyibx0RYZl7Ix1PjSPqejGCenQhsdJAgCGu92f V7d+DL8s2rQml/xPiKeR79pucZxsasQmEV/YV0WA1R+jyk6hYMHzs+D3Polu63oo2hIj p0hSGEcllySAc4AUPrjm5Bnzdi9ppVsCe8EVPT2SZ4rbay6IuxMs6l52dhfrp3RHe/A3 yIAAcRBbyd9GPTpWQVUfj/ZPbka5XHMMi1X6Rhe1e02YLJXI6u7sRh7sxbb5+wlSo1lz nWReBji5hF58s9pcHHS8lBvx0+X7YJKGBI+sNrLcVsFx8p8Xjh93GS1Hp0twFaz31hPC VFlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728419921; x=1729024721; h=content-transfer-encoding:in-reply-to:from:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=9CQxg3F4+STfgEOdbwmm8vsF/cba+Q0XLMFnqW9yg+U=; b=Uq592O4TZsLOQNEAagN/StKua8xzDMFIZfnK1kwFE/+y4vFAlT9cbZZMmoVao8/X7e 0qVVbdA0HwQbZhgjPYkMU0r40pXBqar75/lZdMMitIhsaYGD4gFyrv6CIZDgfvKHo1WP Oh8QGg0DTFO2q/RdAzvaNCCP1aP7y1O7z12MEpa/UZHbZLrEj6CFo0/nZXWUib2DhyRU t1xLfZrprE7lQjH4LqfF9mDOr7AtkwfPi2zm1h9JGYHyTe3iVbITnhLNzG74tB9XEdpc 0iBhyQk3d+9Y88BXba4uYYwYl8GABBW/wTZ5UzVVPR0FLditNJRy8yMRs9SkdL3+tiiM nA6A==
X-Forwarded-Encrypted: i=1; AJvYcCV/VKVpqBlgi6UhMnQHuS29Dq3rRXDx9Zw5ftA5uEP32P/aXPYrqxJS8aFZr13rParAH/rTTA==@ietf.org, AJvYcCVUiR9y7dxKsa51HW0WQxp3XcBtywBm9SYtBrZkjocoKmvyP/FUAzKI+3oOHEIfN+YxGcuL0UwKq9xdDA==@ietf.org
X-Gm-Message-State: AOJu0YzacLKwTU+U5X2zXH9ZxpIeXiFGJ2RujEPX6VZVo8CUuX1w/Nge MJV9/Chr6ED79c/RKJ/KcAGSQr2wuN39jy8gGQF6oCWUjNJ5AdqiAI0nkS46
X-Google-Smtp-Source: AGHT+IEYLLUCwV9WhQWBAuLAWoc996KR9gHrQcLV4DMkCKL1f9kVa2cTmX9IV9cENMw9dpZtqDJIJQ==
X-Received: by 2002:adf:f34d:0:b0:37d:387c:7092 with SMTP id ffacd0b85a97d-37d3a9b30c0mr77490f8f.7.1728419920692; Tue, 08 Oct 2024 13:38:40 -0700 (PDT)
Received: from ?IPV6:2a02:aa12:a77d:5e00:c029:6ab:be6:ba4? ([2a02:aa12:a77d:5e00:c029:6ab:be6:ba4]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-37d1691a713sm8780003f8f.42.2024.10.08.13.38.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 08 Oct 2024 13:38:40 -0700 (PDT)
Message-ID: <9ac990f3-b6c4-4bdb-b2a8-d4e12927b954@gmail.com>
Date: Tue, 08 Oct 2024 22:38:36 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: "Stanislav V. Smyshlyaev" <smyshsv@gmail.com>
References: <CAMr0u6mctw2=MGqx-JAcYiZmDA6Dvrt_osxbEhKPeJcXZEp7eQ@mail.gmail.com> <CAKa44wJg7LyD9vGK=S-7g4kkUKFF2yeJke1FVb86X2DJcp10jQ@mail.gmail.com> <CAMr0u6kwP=pYgY0B_EdXEZhnK+JAQN76q4QBcnQ0ssgJj9fUkw@mail.gmail.com> <CAMr0u6nb-iwkjoxw8xOfrbHKR8d++09AFW9EZmD7J0=cTW269A@mail.gmail.com> <f4b44228-1de8-4d07-a06a-c7af4d11fc72@gmail.com> <CAMr0u6mFD5MfQxuOerYKcUUC3Kv1WYuCTtAtMcONJhqZ0vy01Q@mail.gmail.com>
From: Julia Hesse <juliahesse2@gmail.com>
In-Reply-To: <CAMr0u6mFD5MfQxuOerYKcUUC3Kv1WYuCTtAtMcONJhqZ0vy01Q@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 7bit
Message-ID-Hash: B64ERP4LG4VVEYMAN3LLVZ6JD75JONYF
X-Message-ID-Hash: B64ERP4LG4VVEYMAN3LLVZ6JD75JONYF
X-MailFrom: juliahesse2@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cfrg.irtf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: crypto-panel@irtf.org, cfrg-chairs@ietf.org, Vasileios Kalos <vasilis.kalos@mattr.global>, Andrew Whitehead <Andrew.Whitehead@portagecybertech.com>, cfrg@ietf.org
X-Mailman-Version: 3.3.9rc5
Precedence: list
Subject: [CFRG] Review of BBS Signatures draft-07
List-Id: Crypto Forum Research Group <cfrg.irtf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cfrg/Nnktr2ZUcrMuyg2CWpE_U97C_bs>
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>

Hi all,

here is my review of draft-irtf-cfrg-bbs-signatures-07. I did not 
implement the draft, so this is only a "theorists" review.

***
I have been struggling with reviewing this draft and in particular 
verifying the security of the described protocol. BBS signatures have 
been continuously evolving in the cryptographic literature, and their 
selective disclosure proofs are relatively complex - certainly not the 
easiest protocol suite to write a specification for. So before diving 
into the detailed comments that always have a negative touch, I'd like 
to say kudos to the authors for tackling this complicated task.

The draft seems to specify algorithms similar to those in [TesZho23]. 
The signing algorithm is close to their Fig. 3. For the proof algorithm 
I was not able to match that to any of (1) the proof described in the 
main body of [TesZho23], (2) their appendix version proposed by Andrew 
Whitehead, or (3) their appendix version proposed by Vasilis Kalos. It 
certainly did not help me that the draft is using additive notation 
while the paper is, as probably most cryptographic papers, using 
multiplicative notation.

Regardless of what version is specified here, I would like to note that 
(2) and (3) only have sketched security arguments in [TesZho23], and no 
proofs of properties such as unlinkability that are claimed in the draft.

Technical comments and questions
---
What is the motivation of computing e as hash of SK and the messages, 
instead of drawing it uniformly? The result is that a signer always 
produces the same signature for the same message set - I fail to see the 
application benefit here.

"each BBS proof is indistinguishable from random" - by whom? Surely not 
by a verifier who has the header and the message.

Regarding the functions from [RFC9380], why is expand_message not 
described in Section 1.2 but hash_to_curve is?

3.1 demands subgroup_check algorithms, but they are already listed in 
1.2 and hence are captured by "...plus associated functionality given in 
Section 1.2". So I'd suggest to drop them from the list in 3.1.

3.2 mentions utility procedures but does not further explain their role, 
as it does for core operations and Interfaces.

Proof unlinkability: the draft claims that "a BBS proof is unlinkable 
against both the Verifiers and the Signer", meaning that it is not 
recognizable whether two proofs were generated from the same signature. 
But for verification, the header, which is tied to a signature and 
chosen by the signer, is required. This means unlinkability only holds 
modulo headers, i.e., one cannot link proofs generated from signatures 
*with the same header*. This is a very restricted form of unlinkability. 
While Section 5 discusses potential threats to unlinkability, it does 
not mention headers. And in any case, I don't think that one should make 
the statement that proofs from signatures with headers, as described in 
this draft, are unlinkable. For example, if one follows the 
recommendations of 6.4, the proofs become fully linkable.

Beyond the issue with headers breaking unlinkability: is there any 
formal proof of unlinkability of the BBS proofs described in this draft, 
e.g., using empty headers? [TesZho23] does not mention unlinkability, 
that's why I'm asking.

What is the motivation behind signing an empty message?

Section 3: there is a lot of forward referencing: interfaces are defined 
using so far unspecified core functions, and core functions are defined 
using so far undefined utility functions. I'd suggest to turn around the 
order: first describe the utility functions, then the core ones, and 
then the interfaces.

Section 6.1 What can happen if the algorithms are run with an invalid 
serialized PK, i.e., if an implementor decides to skip the recommended 
PK validity check?

Section 6.9 "[CRQC] adversaries will not be able to compromise the data 
confidentiality property of a BBS signature - I don't understand how 
this can be true. E.g., if I have a signature (A,e) over one message m_1 
generated from PK, I use my quantum computer to pull SK from PK, then 
compute a*(SK+e)-P1-Q1*domain. Computing the dlog of that to the base 
H_1 will then give me m_1.


Nits
---
zero-knowledge, proofs-of-knowledge of... -> zero-knowledge proofs of 
knowledge of... (twice)

revealing no-information -> revealing no information

Note, the... -> The

For sets I and J, denotes -> Denotes the difference of two sets I and J, 
i.e.,...

is not a valid output of -> is not in the image of

... 3.6), expect -> 3.6) expects

3.3.1:
In definition of this signature scheme -> For defining BBS signatures
based upon -> regarding
pairing cryptography based -> pairing-based
in the case of this scheme -> in case of BBS signatures
in-efficient -> inefficient
the scheme is limited... -> this draft limits to BBS signatures where...

sub-group vs subgroup, octet-string vs octet string - decide on one

BBS proofs, which was -> BBS proofs which were

ciphersuite and and -> ciphersuite and

"H2G_HM2S_"is -> " is (appears multiple times)

creates BBS proof -> creates a BBS proof

compine -> combine

confidenciality -> confidentiality
***