[noise] rev34 draft

Trevor Perrin trevp at trevp.net
Thu Apr 19 21:09:58 PDT 2018


On Thu, Apr 19, 2018 at 11:44 AM, Justin Cormack
<justin at specialbusservice.com> wrote:
> I am not sure the parenthetical notation helped, I used to find it confusing
> at first. Other than for fallback patterns it is generally obvious from the
> pattern name what keys you need, ie unless there is an N you need a static
> key.

I agree with Justin at the moment.  My arguments for removing the
parenthesized keys are:

 (1) It was intended to list the keys a party is configured with, but
it doesn't fully accomplish that, since it doesn't include PSKs.

 (2) It overloads the "rs" and "re" notation which stands for "r"emote
party in the state variables, but stands for "r"esponder here.

 (3) It's not clear whether the parenthesized text is part of the
pattern's name or part of the pattern.

 (4) As Justin and Nadim point out, it's fairly easy to read what keys
are needed from the pattern name itself, so this is is spending effort
on a redundant annotation.

 (5) It becomes confusing with Bob-initiated pattern notation, since
we'd have to decide - and people would have to remember - whether "s"
vs "rs" stands for Alice vs Bob or Initiator vs Responder, and whether
to reorder the parenthesized arguments or not.  Probably the best
choice would be to not modify the parenthesized text, i.e. here are
Alice and Bob-initiated notations for XK:

XK(s, rs):
  <- s
  ...
  -> e, es
  <- e, ee
  -> s, se

XK(s, rs):
  -> s
  ...
  <- e, es
  -> e, ee
  <- s, se

But it would be easy to think that maybe the "s" is referring to
Alice, since she is the left-hand party and s is to the left of rs.

(6) Probably most of the time when discussing patterns on list, or
when writing them down and analyzing them, I don't bother with the
parentheses, which implies it's a burden more than a help.


Trevor


More information about the Noise mailing list