From nobody Wed Aug 17 22:12:11 2022
Return-Path: <tadahiko.ito.public@gmail.com>
X-Original-To: spasm@ietfa.amsl.com
Delivered-To: spasm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id 3F7F9C14CE3F
 for <spasm@ietfa.amsl.com>; Wed, 17 Aug 2022 22:12:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level: 
X-Spam-Status: No, score=-2.104 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_FROM=0.001,
 HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001,
 URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001]
 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 HyQoSkeS8AxL for <spasm@ietfa.amsl.com>;
 Wed, 17 Aug 2022 22:12:04 -0700 (PDT)
Received: from mail-qt1-x830.google.com (mail-qt1-x830.google.com
 [IPv6:2607:f8b0:4864:20::830])
 (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 0DB8CC152597
 for <spasm@ietf.org>; Wed, 17 Aug 2022 22:12:04 -0700 (PDT)
Received: by mail-qt1-x830.google.com with SMTP id c20so400955qtw.8
 for <spasm@ietf.org>; Wed, 17 Aug 2022 22:12:04 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; 
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:from:to:cc;
 bh=vFkOORmrQYRBeEC8CtirJ+WVugTCw6RonNr+ivGTWIc=;
 b=HVAFgd90xkkEAN6V8RcAa8ArClVA1XEtmNkVtx+hyJjm5DymU//3BFhdCeHa9HVExF
 fec+pTVDCKZR1dpJQvp1fGJr8Uc0K0ySBNawvRHExBXcEJa6wsavsFPR6+ZHc+HpjBtj
 HDLRd+ob8eWB4hIpjpBKOJ89YGPiMrjp9V9UOqY7QWHMOkpYysyIKx0BJFX+K1gfYpjj
 /7AFe8DOitDW2Wk+SmZ8EO2jBjYlq47ZIG6IO8CjFz0MhG3gsaHedamo7kgQDuDtpgCP
 0K2a9MnQPJqbDJ7vrpOOrDpk33p9pcnXh8qVWcNDY7OqeeCZk+NBpN+FHSYSJzxmvnz/
 HFRg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=cc:to:subject:message-id:date:from:in-reply-to:references
 :mime-version:x-gm-message-state:from:to:cc;
 bh=vFkOORmrQYRBeEC8CtirJ+WVugTCw6RonNr+ivGTWIc=;
 b=DjijWKgMYzzwpEMwHA321AJdKE8r863XxpCMDrtnT98bi8vQyVkH+6iFtLOGhOoG1x
 KqZ0Q9AtI9s66wd2VxFOUkSVE68X8eDnWikBjBAtiZJ6Aa06VNxOX5lFCD2r1O6ltVQN
 3rPAsz8lPAScZgZUpirQOX9VnYnKu+Kpu623n1Swz50/3fFGIVIrZfpfZPOjCy1mMNFT
 Uoy/tLi0RZ474AVCHIdxYNjlKU05yz3EkeBwYf6/VS9AxiauoXouGW9a5/Is4hbR5aYL
 hz4alCycH97WAaW4pP8L63kOM/JSEGsckL1JAfaT9gPKHR4D3bv6cP8Q13xzuFlqIDVD
 PCPw==
X-Gm-Message-State: ACgBeo3zZOLh9cXRKcybQs5tNP7GhzjG6xrfveYCDn2gWMmie593Jcn/
 rCWDYHHbyTWdYKXAil9Ihx1VAXhXJzC3BNiWnNU=
X-Google-Smtp-Source: AA6agR6cgdlCiTDvNk1SuazIqMrF2vg+ZS8NLuPiY0LpJoU0yxqK4SkBdqaTKKnu8vB8eIzrXYCmoJL4+hR/MeKUaQg=
X-Received: by 2002:ac8:5c03:0:b0:343:6db0:58e2 with SMTP id
 i3-20020ac85c03000000b003436db058e2mr1249658qti.311.1660799522734; Wed, 17
 Aug 2022 22:12:02 -0700 (PDT)
MIME-Version: 1.0
References: <CH0PR11MB5739393F19DD5282E3D7EF549F6A9@CH0PR11MB5739.namprd11.prod.outlook.com>
 <CH0PR11MB5444B9D3A0CB6E447A2FA3E5C16A9@CH0PR11MB5444.namprd11.prod.outlook.com>
 <88358933-A540-4000-9C7D-D248F670122F@amazon.com>
In-Reply-To: <88358933-A540-4000-9C7D-D248F670122F@amazon.com>
From: Tadahiko Ito <tadahiko.ito.public@gmail.com>
Date: Thu, 18 Aug 2022 14:11:51 +0900
Message-ID: <CAFTXyYC=Zt0hhk5G2A6b6AOM6Aww7jL3CwUmcZfNpmsWW0cpGQ@mail.gmail.com>
To: "Massimo, Jake" <jakemas=40amazon.com@dmarc.ietf.org>
Cc: "Scott Fluhrer (sfluhrer)" <sfluhrer@cisco.com>,
 Mike Ounsworth <Mike.Ounsworth@entrust.com>, 
 LAMPS <spasm@ietf.org>, "cfrg@irtf.org" <cfrg@irtf.org>,
 pqc-forum <pqc-forum@list.nist.gov>, 
 "Kampanakis, Panos" <kpanos@amazon.com>, "sean@ssn3rd.com" <sean@ssn3rd.com>, 
 "bas@westerbaan.name" <bas@westerbaan.name>
Content-Type: multipart/alternative; boundary="00000000000098880605e67d0549"
Archived-At: <https://mailarchive.ietf.org/arch/msg/spasm/-IFqvaFJ3cKWAnMRKlkaYTiAWUA>
Subject: Re: [lamps] [CFRG] [pqc-forum] RE: Whether to hash-then-sign with
 Dilithium and Falcon?
X-BeenThere: spasm@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "This is a venue for discussion of doing Some Pkix And SMime
 \(spasm\) work." <spasm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spasm>,
 <mailto:spasm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spasm/>
List-Post: <mailto:spasm@ietf.org>
List-Help: <mailto:spasm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spasm>,
 <mailto:spasm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Aug 2022 05:12:08 -0000

--00000000000098880605e67d0549
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

> It was my understanding that the signing procedure may need to be

> repeated several times to produce a signature, and thus pre-hashing

> would prevent the need to individually hash the input message with

> each attempt.



When we were trying to implement PQC in functional module of HSM for our
use case, It was pain. I believe HSM vender will implement much better, but
It may still have problem.

Hash then Sign was great that we can separate key management (and signing)
function from data management (and hashing) function. It seems crypto
module producer might need to implement scheduling function for data
management function. I far those problems decrease efficiency, but we might
need to care that.



>> (=E2=80=A6) Assuming our understanding below is correct, a direct-sign a=
lgorithm

>> would require the entire thing to be streamed to a network HSM for
signing

>> and to a TPM for verification.



Currently, I am doubting that we might not have that many protocols with
direct-signing algorithm which would sign intolerable large data. For those
protocol with direct-signing, I believe we can have several approaches.



1)    Sign to smaller compressed data (e.g. by using CMS) instead of raw
data.
It was biggest feedback I got so far, when I told about those stuff on IETF
last year.
For this option, Users may need to change data structure, but If we cannot
find that much direct-signing use case, it might be reasonable.
Direct-signing use case holders may need to take other option.
In addition, when I ask our engineer for our use case, he said that was
long recognized issue, and it might be good chance to do so.

2)    Use pre-hash
Users do not need to change data structure, but we may meet
interoperability challenge.

3)    Separate PQC into key management function and data management
function,
I tried, but I believe It was not good choice. <
https://eprint.iacr.org/2020/990.pdf>  (I am sorry that we have not updates
that document.)

4)    Ask NIST to make hash-and-sign PQC

If they make one, it would be easy. (well.. I believe we should not assume
that)



Regards Tadahiko

2022=E5=B9=B48=E6=9C=8818=E6=97=A5(=E6=9C=A8) 4:41 Massimo, Jake <jakemas=
=3D40amazon.com@dmarc.ietf.org>:

> Thanks Mike, Scott.
>
> I've added to the github repo so we can track discussions on this topic
> https://github.com/jakemas/draft-massimo-pq-pkix-00/issues/23
>
>     >> So it seems like the Dilithium designers explicitly want the hash
> to differ
>     >> across repeated attempts.
>     >>
>
>     > Hmmm, I don't see that in Dilithium; are they referring to the
> internal ExpandMask function?  That isn't applied to the input message.
>     >In any case, it's easy to derive SHAKE( M || 1 ), SHAKE( M || 2 ),
> ... without multiple passes through M; you compute the partial SHAKE stat=
e
> after process M, and then apply that partial state to 1, 2, ...
>
> I think we are referring to different parts of the signing process here.
> For reference, my security consideration was referring to page 4 of the
> Dilithium spec that states:
> "Our full scheme in Fig. 4 also makes use of basic optimizations such as
> pre-hashing the message M so as to not rehash it with every signing
> attempt." and Figure 4 itself.
>
> It was my understanding that the signing procedure may need to be repeate=
d
> several times to produce a signature, and thus pre-hashing would prevent
> the need to individually hash the input message with each attempt. I
> believe the desired differing of the hash you mentioned is within the
> internals of the signing procedure and not on the input message itself.
>
>    >> Third, I can imagine that some applications (like TLS) will want to
> use non-pre-hashed versions of Dilithium and Falcon, but other applicatio=
ns
> (like code-signing) would prefer pre-hashed versions. These are not
> interoperable with each other. Is NIST planning to produce algorithm
> definitions, OIDs, Codepoints, etc, for both versions?
>
>    >Expanding on the code-signing example: the messages to be signed can
> be very large; consider a several GB firmware image. Assuming our
> understanding below is correct, a direct-sign algorithm would require the
> entire thing to be streamed to a network HSM for signing and to a TPM for
> verification. Conversely code-signing environments often include
> counter-signatures from Time Stamping Authorities which protect against
> future discovery of collision attacks against the hash function -- as an
> example, Windows still accepts RSA-SHA1 signatures produced before SHA1 w=
as
> deprecated. I can imagine that the code-signing community will decide tha=
t
> the performance gains of hash-then-sign outweigh the security loss.
>
>  >So, will NIST standardize both direct-sign and some variant of
> hash-then-sign for PQC signature primitives?
>
> I do agree that there may be optimizations that users may wish to make
> dependent on the context, i.e., hash-then-sign vs direct-sign. It's for
> this reason I tried to give an overview of the security of each option in
> the draft, but ultimately leave that up to the user. It is a good point
> regarding NISTs perspective on what should be explicitly standardized her=
e.
>
>     >> This provides strong security against pre-computed
>     >> collision attacks since an attacker has no a-priori knowledge of
> `r` and
>     >> provides per-key hash-domain separation of the message to be signe=
d.
>
>     >Rather, it limits the usability of any found collision to a specific
> public key; however it does nothing to frustrate a collision attack again=
st
> a specific public key.
>
> Right, more details on the advantages of message binding on the PQC-forum
> from C. Peikert's
> https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/eAaiJO1qzkA/m/K66=
R_ftNBwAJ.
> It was this discussion I was trying to encompass in the draft.
>
> Cheers,
> Jake
>
> ------
>
>
> =EF=BB=BFOn 17/08/2022, 10:51, "'Scott Fluhrer (sfluhrer)' via pqc-forum"=
 <
> pqc-forum@list.nist.gov> wrote:
>
>     CAUTION: This email originated from outside of the organization. Do
> not click links or open attachments unless you can confirm the sender and
> know the content is safe.
>
>
>
>     > -----Original Message-----
>     > From: 'Mike Ounsworth' via pqc-forum <pqc-forum@list.nist.gov>
>     > Sent: Wednesday, August 17, 2022 1:27 PM
>     > To: 'LAMPS' <spasm@ietf.org>; cfrg@irtf.org; pqc-forum <pqc-
>     > forum@list.nist.gov>; jakemas@amazon.com; kpanos@amazon.com;
>     > sean@ssn3rd.com; bas@westerbaan.name
>     > Subject: [pqc-forum] Whether to hash-then-sign with Dilithium and
> Falcon?
>     >
>     > Hi Jake, Panos, Sean, Bas,
>     >
>     >
>     > We notice that your IETF draft-massimo-lamps-pq-sig-certificates-00
> has the
>     > following security consideration:
>     >
>     > > Within the hash-then-sign paradigm, hash functions are used as a
>     > > domain restrictor over the message to be signed. By pre-hashing,
> the
>     > > onus of resistance to existential forgeries becomes heavily
> reliant on
>     > > the collision-resistance of the hash function in use. As well as
> this security
>     > goal, the hash-then-sign paradigm also has the ability to improve
>     > performance by reducing the size of signed messages. As a corollary=
,
> hashing
>     > remains mandatory even for short messages and assigns a further
>     > computational requirement onto the verifier. This makes the
> performance of
>     > hash-then-sign schemes more consistent, but not necessarily more
> efficient.
>     > > Dilithium diverges from the hash-then-sign paradigm by hashing th=
e
>     > message during the signing procedure (at the point in which the
> challenge
>     > polynomial).
>     > > However, due to the fact that Dilithium signatures may require th=
e
>     > > signing procedure to be repeated several times for a signature to
> be
>     > produced, Dilithium implementations can make use of pre-hashing the
>     > message to prevent rehashing with each attempt.
>     >
>     >
>     > First, quoting from the Dilithium NIST Round 3 submission documents=
:
>     >
>     > > Since our signing procedure may need to be repeated several times
>     > > until a signature is produced, we also append a counter in order =
to
>     > > make the SHAKE-256 output differ with each signing attempt of the
> same
>     > message.
>     >
>     > So it seems like the Dilithium designers explicitly want the hash t=
o
> differ
>     > across repeated attempts.
>     >
>
>     Hmmm, I don't see that in Dilithium; are they referring to the
> internal ExpandMask function?  That isn't applied to the input message.
>
>     In any case, it's easy to derive SHAKE( M || 1 ), SHAKE( M || 2 ), ..=
.
> without multiple passes through M; you compute the partial SHAKE state
> after process M, and then apply that partial state to 1, 2, ...
>
>     >
>     >
>     > Second, we had a similar discussion within the context of composite
>     > signatures when figuring out how to combine Dilithium and Falcon wi=
th
>     > ECDSA and RSA. We came out with a different conclusion; that
> hash-then-
>     > sign reduces the security properties of Dilithium and Falcon down t=
o
> the
>     > collision resistance of the hash function used to pre-hash.
>     >
>     > We would like community opinion on this.
>     >
>     >
>     > Here's the Security Consideration text that we're working on:
>     >
>     >
>     >
>     >
>     > In the hash-then-sign paradigm, the message to be signed is hashed
>     > externally to the signature primitive, and then the hash value is
> signed.
>     >
>     > The hash-then-sign paradigm is required, for example, with RSA
> signatures in
>     > order to sign messages larger than the RSA modulus. Hash-then-sign
> also
>     > gives performance and bandwidth benefits, for example, when the
> signature
>     > is performed by a networked cryptographic appliance since you only
> need to
>     > send a small hash value rather than streaming the entire message.
>     >
>     > With Dilithium and Falcon signatures it is not recommended to
> pre-hash for
>     > the following reasons:
>     >
>     >
>     > The Dilithium construction includes
>     >
>     > ~~~
>     > Sign(sk,M):
>     > 10: mu \in {0, 1}^384 :=3D CRH(tr || M)
>     > ~~~
>     >
>     > where `CRH` is any collision-resistant hash function and `tr` is a
> component
>     > of the secret key.
>
>     A hash of the public key, actually; see line 7 of the key generation
> process (which explicitly computes it from the components of the public
> key) - Dilithium stores it in the private key so the signer doesn't need =
to
> recompute it every time.
>
>     > This provides strong security against pre-computed
>     > collision attacks since an attacker has no a-priori knowledge of `r=
`
> and
>     > provides per-key hash-domain separation of the message to be signed=
.
>
>     Rather, it limits the usability of any found collision to a specific
> public key; however it does nothing to frustrate a collision attack again=
st
> a specific public key.
>
>     Now, it does probably add a constant factor to any attack that
> searches for a simultaneous collision between the hash that RSA/ECDSA use=
s
> (without the prepend) and the hash that Dilithium uses (with the known
> prepend) - I would hesitate to give a value to that constant factor, but =
it
> is likely not large.
>
>     >
>     >
>     > The Falcon construction includes
>     >
>     > ~~~
>     > Sign (m, sk, beta^2):
>     > 1: r <- {0, 1}^320 uniformly
>     > 2: c <- HashToPoint(r || m, q, n)
>     > ~~~
>     >
>     > where `HashToPoint` is a SHAKE-256-based construct. This provides
> strong
>     > security against pre-computed collision attacks since an attacker
> has no a-
>     > priori knowledge of `r` and provides per-signature hash-domain
> separation
>     > of the message to be signed.
>     >
>     > If the message to be signed is pre-hashed, for example `m0 =3D
> SHA256(m)`
>     > and then m0 provided to Dilithium or Falcon to sign, then you have
> re-
>     > introduced the collision problem since two messages m1 and m2 where
>     > SHA256(m1) =3D=3D SHA256(m2) hash value will result a single Falcon=
 or
> Dilithium
>     > signature value which is simultaneously valid for both m1 and m2.
> This
>     > removes the extra collision resistance built in to the Dilithium an=
d
> Falcon
>     > primitives and reduces it to the collision resistance strength of
> the underlying
>     > hash function. For this reason it is in general not recommended to
> pre-hash
>     > when using Dilithium or Falcon except in cases where the implemento=
r
> is
>     > comfortable with this reduction in security.
>     >
>     > Therefore, for the purpose of interoperability of composite
> signatures,
>     > implementations MUST NOT pre-hash messages for Dilithium and Falcon=
.
> If
>     > pre-hashed versions of these signatures are desired, then separate
> signature
>     > algorithms will need to be defined.
>     >
>     >
>
>     --
>     You received this message because you are subscribed to the Google
> Groups "pqc-forum" group.
>     To unsubscribe from this group and stop receiving emails from it, sen=
d
> an email to pqc-forum+unsubscribe@list.nist.gov.
>     To view this discussion on the web visit
> https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/CH0PR11MB5444=
B9D3A0CB6E447A2FA3E5C16A9%40CH0PR11MB5444.namprd11.prod.outlook.com
> .
>
> _______________________________________________
> CFRG mailing list
> CFRG@irtf.org
> https://www.irtf.org/mailman/listinfo/cfrg
>

--00000000000098880605e67d0549
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><span class=3D"gmail-im" style=3D"color:rgb(80,0,80)"><p c=
lass=3D"MsoNormal" align=3D"left" style=3D"margin:0mm;font-size:10.5pt;font=
-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"E=
N-US">&gt;=C2=A0</span><span lang=3D"EN-US" style=3D"font-size:12pt;font-fa=
mily:Arial,sans-serif;color:rgb(34,34,34)">It was my understanding that the=
 signing procedure may need to be=C2=A0</span></p><p class=3D"MsoNormal" al=
ign=3D"left" style=3D"margin:0mm;font-size:10.5pt;font-family:=E6=B8=B8=E6=
=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"EN-US" style=3D"font-=
size:12pt;font-family:Arial,sans-serif;color:rgb(34,34,34)">&gt; repeated s=
everal times to produce a signature, and thus pre-hashing=C2=A0</span></p><=
p class=3D"MsoNormal" align=3D"left" style=3D"margin:0mm;font-size:10.5pt;f=
ont-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=
=3D"EN-US" style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(3=
4,34,34)">&gt; would prevent the need to individually hash the input messag=
e with=C2=A0</span></p><p class=3D"MsoNormal" align=3D"left" style=3D"margi=
n:0mm;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:=
rgb(0,0,0)"><span lang=3D"EN-US" style=3D"font-size:12pt;font-family:Arial,=
sans-serif;color:rgb(34,34,34)">&gt; each attempt.</span></p><p class=3D"Ms=
oNormal" style=3D"margin:0mm;text-align:justify;font-size:10.5pt;font-famil=
y:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"EN-US">=
=C2=A0</span></p></span><p class=3D"MsoNormal" style=3D"margin:0mm;text-ali=
gn:justify;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;c=
olor:rgb(0,0,0)"><span lang=3D"EN-US">When we were trying to implement PQC =
in functional module of HSM for our use case, It was pain. I believe HSM ve=
nder will implement much better, but It may still have problem.</span></p><=
p class=3D"MsoNormal" style=3D"margin:0mm;text-align:justify;font-size:10.5=
pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span la=
ng=3D"EN-US">Hash then Sign was great that we can separate key management (=
and signing) function from data management (and hashing) function. It seems=
 crypto module producer might need to implement scheduling function for dat=
a management function. I far those problems decrease efficiency, but we mig=
ht need to care that.</span></p><p class=3D"MsoNormal" style=3D"margin:0mm;=
text-align:justify;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D=
,serif;color:rgb(0,0,0)"><span lang=3D"EN-US">=C2=A0</span></p><p class=3D"=
MsoNormal" align=3D"left" style=3D"margin:0mm;font-size:10.5pt;font-family:=
=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"EN-US" st=
yle=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(80,0,80)">&gt;=
&gt; (=E2=80=A6) Assuming our understanding below is correct, a direct-sign=
 algorithm</span></p><span class=3D"gmail-im" style=3D"color:rgb(80,0,80)">=
<p class=3D"MsoNormal" align=3D"left" style=3D"margin:0mm;font-size:10.5pt;=
font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=
=3D"EN-US" style=3D"font-size:12pt;font-family:Arial,sans-serif;color:rgb(8=
0,0,80)">&gt;&gt; would require the entire thing to be streamed to a networ=
k HSM for signing</span></p><p class=3D"MsoNormal" align=3D"left" style=3D"=
margin:0mm;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;c=
olor:rgb(0,0,0)"><span lang=3D"EN-US" style=3D"font-size:12pt;font-family:A=
rial,sans-serif;color:rgb(80,0,80)">&gt;&gt; and to a TPM for verification.=
=C2=A0</span></p><p class=3D"MsoNormal" align=3D"left" style=3D"margin:0mm;=
font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,=
0,0)"><span lang=3D"EN-US">=C2=A0</span></p></span><p class=3D"MsoNormal" a=
lign=3D"left" style=3D"margin:0mm;font-size:10.5pt;font-family:=E6=B8=B8=E6=
=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"EN-US">Currently, I a=
m doubting that we might not have that many protocols with direct-signing a=
lgorithm which would sign intolerable large data. For those protocol with d=
irect-signing, I believe we can have several approaches.</span></p><p class=
=3D"MsoNormal" align=3D"left" style=3D"margin:0mm;font-size:10.5pt;font-fam=
ily:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"EN-US=
">=C2=A0</span></p><p align=3D"left" style=3D"margin:0mm 0mm 0mm 18pt;font-=
size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif"><span lang=3D"EN=
-US">1)<span style=3D"font-stretch:normal;font-size:7pt;line-height:normal;=
font-family:&quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0</span></s=
pan><span lang=3D"EN-US">Sign to smaller compressed data (e.g. by using CMS=
) instead of raw data.<br>It was biggest feedback I got so far, when I told=
 about those stuff on IETF last year.<br>For this option, Users may need to=
 change data structure, but If we cannot find that much direct-signing use =
case, it might be reasonable. Direct-signing use case holders may need to t=
ake other option.=C2=A0<br>In addition, when I ask our engineer for our use=
 case, he said that was long recognized issue, and it might be good chance =
to do so.<br><br></span></p><p align=3D"left" style=3D"margin:0mm 0mm 0mm 1=
8pt;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif"><span l=
ang=3D"EN-US">2)<span style=3D"font-stretch:normal;font-size:7pt;line-heigh=
t:normal;font-family:&quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0<=
/span></span><span lang=3D"EN-US">Use pre-hash=C2=A0<br>Users do not need t=
o change data structure, but we may meet interoperability challenge.<br><br=
></span></p><p align=3D"left" style=3D"margin:0mm 0mm 0mm 18pt;font-size:10=
.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif"><span lang=3D"EN-US">3)=
<span style=3D"font-stretch:normal;font-size:7pt;line-height:normal;font-fa=
mily:&quot;Times New Roman&quot;">=C2=A0=C2=A0=C2=A0=C2=A0</span></span><sp=
an lang=3D"EN-US">Separate PQC into key management function and data manage=
ment function,=C2=A0<br>I tried, but I believe It was not good choice. &lt;=
<a href=3D"https://eprint.iacr.org/2020/990.pdf" target=3D"_blank">https://=
eprint.iacr.org/2020/990.pdf</a>&gt; =C2=A0(I am sorry that we have not upd=
ates that document.)<br><br></span></p><p align=3D"left" style=3D"margin:0m=
m 0mm 0mm 18pt;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,ser=
if"><span lang=3D"EN-US">4)<span style=3D"font-stretch:normal;font-size:7pt=
;line-height:normal;font-family:&quot;Times New Roman&quot;">=C2=A0=C2=A0=
=C2=A0=C2=A0</span></span><span lang=3D"EN-US">Ask NIST to make hash-and-si=
gn PQC</span></p><p align=3D"left" style=3D"margin:0mm 0mm 0mm 18pt;font-si=
ze:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><=
span lang=3D"EN-US">If they make one, it would be easy. (well.. I believe w=
e should not assume that)</span></p><p class=3D"MsoNormal" style=3D"margin:=
0mm;text-align:justify;font-size:10.5pt;font-family:=E6=B8=B8=E6=98=8E=E6=
=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D"EN-US">=C2=A0</span></p><p cla=
ss=3D"MsoNormal" style=3D"margin:0mm;text-align:justify;font-size:10.5pt;fo=
nt-family:=E6=B8=B8=E6=98=8E=E6=9C=9D,serif;color:rgb(0,0,0)"><span lang=3D=
"EN-US">Regards Tadahiko</span></p></div><br><div class=3D"gmail_quote"><di=
v dir=3D"ltr" class=3D"gmail_attr">2022=E5=B9=B48=E6=9C=8818=E6=97=A5(=E6=
=9C=A8) 4:41 Massimo, Jake &lt;jakemas=3D<a href=3D"mailto:40amazon.com@dma=
rc.ietf.org">40amazon.com@dmarc.ietf.org</a>&gt;:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left-width:1px;b=
order-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"=
>Thanks Mike, Scott.<br>
<br>
I&#39;ve added to the github repo so we can track discussions on this topic=
 <a href=3D"https://github.com/jakemas/draft-massimo-pq-pkix-00/issues/23" =
rel=3D"noreferrer" target=3D"_blank">https://github.com/jakemas/draft-massi=
mo-pq-pkix-00/issues/23</a> <br>
<br>
=C2=A0 =C2=A0 &gt;&gt; So it seems like the Dilithium designers explicitly =
want the hash to differ<br>
=C2=A0 =C2=A0 &gt;&gt; across repeated attempts.<br>
=C2=A0 =C2=A0 &gt;&gt;<br>
<br>
=C2=A0 =C2=A0 &gt; Hmmm, I don&#39;t see that in Dilithium; are they referr=
ing to the internal ExpandMask function?=C2=A0 That isn&#39;t applied to th=
e input message.<br>
=C2=A0 =C2=A0 &gt;In any case, it&#39;s easy to derive SHAKE( M || 1 ), SHA=
KE( M || 2 ), ... without multiple passes through M; you compute the partia=
l SHAKE state after process M, and then apply that partial state to 1, 2, .=
..<br>
<br>
I think we are referring to different parts of the signing process here. Fo=
r reference, my security consideration was referring to page 4 of the Dilit=
hium spec that states:<br>
&quot;Our full scheme in Fig. 4 also makes use of basic optimizations such =
as pre-hashing the message M so as to not rehash it with every signing atte=
mpt.&quot; and Figure 4 itself. <br>
<br>
It was my understanding that the signing procedure may need to be repeated =
several times to produce a signature, and thus pre-hashing would prevent th=
e need to individually hash the input message with each attempt. I believe =
the desired differing of the hash you mentioned is within the internals of =
the signing procedure and not on the input message itself. <br>
<br>
=C2=A0 =C2=A0&gt;&gt; Third, I can imagine that some applications (like TLS=
) will want to use non-pre-hashed versions of Dilithium and Falcon, but oth=
er applications (like code-signing) would prefer pre-hashed versions. These=
 are not interoperable with each other. Is NIST planning to produce algorit=
hm definitions, OIDs, Codepoints, etc, for both versions?<br>
<br>
=C2=A0 =C2=A0&gt;Expanding on the code-signing example: the messages to be =
signed can be very large; consider a several GB firmware image. Assuming ou=
r understanding below is correct, a direct-sign algorithm would require the=
 entire thing to be streamed to a network HSM for signing and to a TPM for =
verification. Conversely code-signing environments often include counter-si=
gnatures from Time Stamping Authorities which protect against future discov=
ery of collision attacks against the hash function -- as an example, Window=
s still accepts RSA-SHA1 signatures produced before SHA1 was deprecated. I =
can imagine that the code-signing community will decide that the performanc=
e gains of hash-then-sign outweigh the security loss.<br>
<br>
=C2=A0&gt;So, will NIST standardize both direct-sign and some variant of ha=
sh-then-sign for PQC signature primitives?<br>
<br>
I do agree that there may be optimizations that users may wish to make depe=
ndent on the context, i.e., hash-then-sign vs direct-sign. It&#39;s for thi=
s reason I tried to give an overview of the security of each option in the =
draft, but ultimately leave that up to the user. It is a good point regardi=
ng NISTs perspective on what should be explicitly standardized here.<br>
<br>
=C2=A0 =C2=A0 &gt;&gt; This provides strong security against pre-computed<b=
r>
=C2=A0 =C2=A0 &gt;&gt; collision attacks since an attacker has no a-priori =
knowledge of `r` and<br>
=C2=A0 =C2=A0 &gt;&gt; provides per-key hash-domain separation of the messa=
ge to be signed.<br>
<br>
=C2=A0 =C2=A0 &gt;Rather, it limits the usability of any found collision to=
 a specific public key; however it does nothing to frustrate a collision at=
tack against a specific public key.<br>
<br>
Right, more details on the advantages of message binding on the PQC-forum f=
rom C. Peikert&#39;s <a href=3D"https://groups.google.com/a/list.nist.gov/g=
/pqc-forum/c/eAaiJO1qzkA/m/K66R_ftNBwAJ" rel=3D"noreferrer" target=3D"_blan=
k">https://groups.google.com/a/list.nist.gov/g/pqc-forum/c/eAaiJO1qzkA/m/K6=
6R_ftNBwAJ</a>. It was this discussion I was trying to encompass in the dra=
ft.<br>
<br>
Cheers,<br>
Jake<br>
<br>
------<br>
<br>
<br>
=EF=BB=BFOn 17/08/2022, 10:51, &quot;&#39;Scott Fluhrer (sfluhrer)&#39; via=
 pqc-forum&quot; &lt;<a href=3D"mailto:pqc-forum@list.nist.gov" target=3D"_=
blank">pqc-forum@list.nist.gov</a>&gt; wrote:<br>
<br>
=C2=A0 =C2=A0 CAUTION: This email originated from outside of the organizati=
on. Do not click links or open attachments unless you can confirm the sende=
r and know the content is safe.<br>
<br>
<br>
<br>
=C2=A0 =C2=A0 &gt; -----Original Message-----<br>
=C2=A0 =C2=A0 &gt; From: &#39;Mike Ounsworth&#39; via pqc-forum &lt;<a href=
=3D"mailto:pqc-forum@list.nist.gov" target=3D"_blank">pqc-forum@list.nist.g=
ov</a>&gt;<br>
=C2=A0 =C2=A0 &gt; Sent: Wednesday, August 17, 2022 1:27 PM<br>
=C2=A0 =C2=A0 &gt; To: &#39;LAMPS&#39; &lt;<a href=3D"mailto:spasm@ietf.org=
" target=3D"_blank">spasm@ietf.org</a>&gt;; <a href=3D"mailto:cfrg@irtf.org=
" target=3D"_blank">cfrg@irtf.org</a>; pqc-forum &lt;pqc-<br>
=C2=A0 =C2=A0 &gt; <a href=3D"mailto:forum@list.nist.gov" target=3D"_blank"=
>forum@list.nist.gov</a>&gt;; <a href=3D"mailto:jakemas@amazon.com" target=
=3D"_blank">jakemas@amazon.com</a>; <a href=3D"mailto:kpanos@amazon.com" ta=
rget=3D"_blank">kpanos@amazon.com</a>;<br>
=C2=A0 =C2=A0 &gt; <a href=3D"mailto:sean@ssn3rd.com" target=3D"_blank">sea=
n@ssn3rd.com</a>; <a href=3D"mailto:bas@westerbaan.name" target=3D"_blank">=
bas@westerbaan.name</a><br>
=C2=A0 =C2=A0 &gt; Subject: [pqc-forum] Whether to hash-then-sign with Dili=
thium and Falcon?<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; Hi Jake, Panos, Sean, Bas,<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; We notice that your IETF draft-massimo-lamps-pq-sig-cert=
ificates-00 has the<br>
=C2=A0 =C2=A0 &gt; following security consideration:<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; &gt; Within the hash-then-sign paradigm, hash functions =
are used as a<br>
=C2=A0 =C2=A0 &gt; &gt; domain restrictor over the message to be signed. By=
 pre-hashing, the<br>
=C2=A0 =C2=A0 &gt; &gt; onus of resistance to existential forgeries becomes=
 heavily reliant on<br>
=C2=A0 =C2=A0 &gt; &gt; the collision-resistance of the hash function in us=
e. As well as this security<br>
=C2=A0 =C2=A0 &gt; goal, the hash-then-sign paradigm also has the ability t=
o improve<br>
=C2=A0 =C2=A0 &gt; performance by reducing the size of signed messages. As =
a corollary, hashing<br>
=C2=A0 =C2=A0 &gt; remains mandatory even for short messages and assigns a =
further<br>
=C2=A0 =C2=A0 &gt; computational requirement onto the verifier. This makes =
the performance of<br>
=C2=A0 =C2=A0 &gt; hash-then-sign schemes more consistent, but not necessar=
ily more efficient.<br>
=C2=A0 =C2=A0 &gt; &gt; Dilithium diverges from the hash-then-sign paradigm=
 by hashing the<br>
=C2=A0 =C2=A0 &gt; message during the signing procedure (at the point in wh=
ich the challenge<br>
=C2=A0 =C2=A0 &gt; polynomial).<br>
=C2=A0 =C2=A0 &gt; &gt; However, due to the fact that Dilithium signatures =
may require the<br>
=C2=A0 =C2=A0 &gt; &gt; signing procedure to be repeated several times for =
a signature to be<br>
=C2=A0 =C2=A0 &gt; produced, Dilithium implementations can make use of pre-=
hashing the<br>
=C2=A0 =C2=A0 &gt; message to prevent rehashing with each attempt.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; First, quoting from the Dilithium NIST Round 3 submissio=
n documents:<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; &gt; Since our signing procedure may need to be repeated=
 several times<br>
=C2=A0 =C2=A0 &gt; &gt; until a signature is produced, we also append a cou=
nter in order to<br>
=C2=A0 =C2=A0 &gt; &gt; make the SHAKE-256 output differ with each signing =
attempt of the same<br>
=C2=A0 =C2=A0 &gt; message.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; So it seems like the Dilithium designers explicitly want=
 the hash to differ<br>
=C2=A0 =C2=A0 &gt; across repeated attempts.<br>
=C2=A0 =C2=A0 &gt;<br>
<br>
=C2=A0 =C2=A0 Hmmm, I don&#39;t see that in Dilithium; are they referring t=
o the internal ExpandMask function?=C2=A0 That isn&#39;t applied to the inp=
ut message.<br>
<br>
=C2=A0 =C2=A0 In any case, it&#39;s easy to derive SHAKE( M || 1 ), SHAKE( =
M || 2 ), ... without multiple passes through M; you compute the partial SH=
AKE state after process M, and then apply that partial state to 1, 2, ...<b=
r>
<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; Second, we had a similar discussion within the context o=
f composite<br>
=C2=A0 =C2=A0 &gt; signatures when figuring out how to combine Dilithium an=
d Falcon with<br>
=C2=A0 =C2=A0 &gt; ECDSA and RSA. We came out with a different conclusion; =
that hash-then-<br>
=C2=A0 =C2=A0 &gt; sign reduces the security properties of Dilithium and Fa=
lcon down to the<br>
=C2=A0 =C2=A0 &gt; collision resistance of the hash function used to pre-ha=
sh.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; We would like community opinion on this.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; Here&#39;s the Security Consideration text that we&#39;r=
e working on:<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; In the hash-then-sign paradigm, the message to be signed=
 is hashed<br>
=C2=A0 =C2=A0 &gt; externally to the signature primitive, and then the hash=
 value is signed.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; The hash-then-sign paradigm is required, for example, wi=
th RSA signatures in<br>
=C2=A0 =C2=A0 &gt; order to sign messages larger than the RSA modulus. Hash=
-then-sign also<br>
=C2=A0 =C2=A0 &gt; gives performance and bandwidth benefits, for example, w=
hen the signature<br>
=C2=A0 =C2=A0 &gt; is performed by a networked cryptographic appliance sinc=
e you only need to<br>
=C2=A0 =C2=A0 &gt; send a small hash value rather than streaming the entire=
 message.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; With Dilithium and Falcon signatures it is not recommend=
ed to pre-hash for<br>
=C2=A0 =C2=A0 &gt; the following reasons:<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; The Dilithium construction includes<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; ~~~<br>
=C2=A0 =C2=A0 &gt; Sign(sk,M):<br>
=C2=A0 =C2=A0 &gt; 10: mu \in {0, 1}^384 :=3D CRH(tr || M)<br>
=C2=A0 =C2=A0 &gt; ~~~<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; where `CRH` is any collision-resistant hash function and=
 `tr` is a component<br>
=C2=A0 =C2=A0 &gt; of the secret key.<br>
<br>
=C2=A0 =C2=A0 A hash of the public key, actually; see line 7 of the key gen=
eration process (which explicitly computes it from the components of the pu=
blic key) - Dilithium stores it in the private key so the signer doesn&#39;=
t need to recompute it every time.<br>
<br>
=C2=A0 =C2=A0 &gt; This provides strong security against pre-computed<br>
=C2=A0 =C2=A0 &gt; collision attacks since an attacker has no a-priori know=
ledge of `r` and<br>
=C2=A0 =C2=A0 &gt; provides per-key hash-domain separation of the message t=
o be signed.<br>
<br>
=C2=A0 =C2=A0 Rather, it limits the usability of any found collision to a s=
pecific public key; however it does nothing to frustrate a collision attack=
 against a specific public key.<br>
<br>
=C2=A0 =C2=A0 Now, it does probably add a constant factor to any attack tha=
t searches for a simultaneous collision between the hash that RSA/ECDSA use=
s (without the prepend) and the hash that Dilithium uses (with the known pr=
epend) - I would hesitate to give a value to that constant factor, but it i=
s likely not large.<br>
<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; The Falcon construction includes<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; ~~~<br>
=C2=A0 =C2=A0 &gt; Sign (m, sk, beta^2):<br>
=C2=A0 =C2=A0 &gt; 1: r &lt;- {0, 1}^320 uniformly<br>
=C2=A0 =C2=A0 &gt; 2: c &lt;- HashToPoint(r || m, q, n)<br>
=C2=A0 =C2=A0 &gt; ~~~<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; where `HashToPoint` is a SHAKE-256-based construct. This=
 provides strong<br>
=C2=A0 =C2=A0 &gt; security against pre-computed collision attacks since an=
 attacker has no a-<br>
=C2=A0 =C2=A0 &gt; priori knowledge of `r` and provides per-signature hash-=
domain separation<br>
=C2=A0 =C2=A0 &gt; of the message to be signed.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; If the message to be signed is pre-hashed, for example `=
m0 =3D SHA256(m)`<br>
=C2=A0 =C2=A0 &gt; and then m0 provided to Dilithium or Falcon to sign, the=
n you have re-<br>
=C2=A0 =C2=A0 &gt; introduced the collision problem since two messages m1 a=
nd m2 where<br>
=C2=A0 =C2=A0 &gt; SHA256(m1) =3D=3D SHA256(m2) hash value will result a si=
ngle Falcon or Dilithium<br>
=C2=A0 =C2=A0 &gt; signature value which is simultaneously valid for both m=
1 and m2. This<br>
=C2=A0 =C2=A0 &gt; removes the extra collision resistance built in to the D=
ilithium and Falcon<br>
=C2=A0 =C2=A0 &gt; primitives and reduces it to the collision resistance st=
rength of the underlying<br>
=C2=A0 =C2=A0 &gt; hash function. For this reason it is in general not reco=
mmended to pre-hash<br>
=C2=A0 =C2=A0 &gt; when using Dilithium or Falcon except in cases where the=
 implementor is<br>
=C2=A0 =C2=A0 &gt; comfortable with this reduction in security.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt; Therefore, for the purpose of interoperability of compos=
ite signatures,<br>
=C2=A0 =C2=A0 &gt; implementations MUST NOT pre-hash messages for Dilithium=
 and Falcon. If<br>
=C2=A0 =C2=A0 &gt; pre-hashed versions of these signatures are desired, the=
n separate signature<br>
=C2=A0 =C2=A0 &gt; algorithms will need to be defined.<br>
=C2=A0 =C2=A0 &gt;<br>
=C2=A0 =C2=A0 &gt;<br>
<br>
=C2=A0 =C2=A0 --<br>
=C2=A0 =C2=A0 You received this message because you are subscribed to the G=
oogle Groups &quot;pqc-forum&quot; group.<br>
=C2=A0 =C2=A0 To unsubscribe from this group and stop receiving emails from=
 it, send an email to <a href=3D"mailto:pqc-forum%2Bunsubscribe@list.nist.g=
ov" target=3D"_blank">pqc-forum+unsubscribe@list.nist.gov</a>.<br>
=C2=A0 =C2=A0 To view this discussion on the web visit <a href=3D"https://g=
roups.google.com/a/list.nist.gov/d/msgid/pqc-forum/CH0PR11MB5444B9D3A0CB6E4=
47A2FA3E5C16A9%40CH0PR11MB5444.namprd11.prod.outlook.com" rel=3D"noreferrer=
" target=3D"_blank">https://groups.google.com/a/list.nist.gov/d/msgid/pqc-f=
orum/CH0PR11MB5444B9D3A0CB6E447A2FA3E5C16A9%40CH0PR11MB5444.namprd11.prod.o=
utlook.com</a>.<br>
<br>
_______________________________________________<br>
CFRG mailing list<br>
<a href=3D"mailto:CFRG@irtf.org" target=3D"_blank">CFRG@irtf.org</a><br>
<a href=3D"https://www.irtf.org/mailman/listinfo/cfrg" rel=3D"noreferrer" t=
arget=3D"_blank">https://www.irtf.org/mailman/listinfo/cfrg</a><br>
</blockquote></div>

--00000000000098880605e67d0549--

