Subject: [Cfrg] I-D Action: draft-irtf-cfrg-spake2-09.txt

From: [email-masked]
Date: Thu, 03 Oct 2019 19:56:27 -0700

A New Internet-Draft is available from the on-line Internet-Drafts directories.
This draft is a work item of the Crypto Forum RG of the IRTF.

        Title           : SPAKE2, a PAKE
        Authors         : Watson Ladd
                          Benjamin Kaduk
	Filename        : draft-irtf-cfrg-spake2-09.txt
	Pages           : 18
	Date            : 2019-10-03

Abstract:
   This document describes SPAKE2 which is a protocol for two parties
   that share a password to derive a strong shared key with no risk of
   disclosing the password.  This method is compatible with any group,
   is computationally efficient, and SPAKE2 has a security proof.

The IETF datatracker status page for this draft is:
https://datatracker.ietf.org/doc/draft-irtf-cfrg-spake2/

There are also htmlized versions available at:
https://tools.ietf.org/html/draft-irtf-cfrg-spake2-09
https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-spake2-09

A diff from the previous version is available at:
https://www.ietf.org/rfcdiff?url2=draft-irtf-cfrg-spake2-09

Please note that it may take a couple of minutes from the time of submission
until the htmlized version and diff are available at tools.ietf.org.

Internet-Drafts are also available by anonymous FTP at:
ftp://ftp.ietf.org/internet-drafts/

---

From: Greg Hudson <[email-masked]>
Date: Sat, 5 Oct 2019 22:05:11 -0400

I have two clarity concerns and two copy-editing notes:

* This version of the draft refers to "the quotient group" in two
places.  If I look up "quotient group" I find that it's the set of all
cosets of a given normal subgroup in G.  Is that really applicable here?
 RFC 7748 just refers to "the prime-order subgroup" and I assume that's
what we mean here (aka the subset of elements of G which have order 1 or p).

* This version defines new names pA, pB, cA, and cB for protocol
messages.  It is easy to misread these names as scalars multiplied by
group elements.  I don't have a great suggestion for improving clarity
here, unfortunately.

* Section 4 begins with "The protocol transcript TT, as defined in
Section Section 3.3" which has a repeated word.

* Section 6 contains "... can lead to attacks It is..." which is missing
punctuation.

This version also removes SPAKE2+, removes the undesirable check for S
and T elements of small order, and adds a multiplication by h in the
computation of K.  I think the draft 7 approach to the cofactor was fine
(it was consistent with X25519), but the new approach does have the
advantage of breaking interoperability if the multiplication is omitted.
So I have no blocking substantive concerns.

---

From: Watson Ladd <[email-masked]>
Date: Sun, 6 Oct 2019 08:05:04 -0700

> what we mean here (aka the subset of elements of G which have order 1 or

It's very much not what I mean. In order to avoid checks for prime order I
multiply through by the cofactor. This means the mistake will break interop
and test vectors not fail silently.

> group elements.  I don't have a great suggestion for improving clarity

Yeah... I'll think about it.

> * Section 6 contains "... can lead to attacks It is..." which is missing

Excellent catches!

> So I have no blocking substantive concerns.

It was wrong in various subtle ways hence the change back to approaches
from earlier drafts.

> _______________________________________________
> Cfrg mailing list
> [email-masked]
> https://www.irtf.org/mailman/listinfo/cfrg
>