[noise] Generating patterns, and ss tokens

Justin Cormack justin at specialbusservice.com
Wed Jun 20 12:33:34 PDT 2018


Ok, I pushed an update that uses the implicit rule to only use ss if the
initiator only has an es DH, which now generates exactly the same ruleset
as the v34 spec other than it suggests that I1K should have an ss matching IK,
which seems reasonable.

I1K:
  <- s
  ...
  -> e, es, s, ss
  <- e, ee
  -> se

So I guess my questions are
1. is that a reasonable rule?
2. are there reasons to use an ss where it is possible but not done
(ie an ss modifier).
  Is having the ephemerals compromised but not the long terms keys, a
useful threat?
3. Does it make sense to have a "no-ss" modifier to remove ss where
not wanted even
  where it is there by default?
4. Should I1K be consistent with the original patterns.

Justin



On 20 June 2018 at 03:33, Justin Cormack <justin at specialbusservice.com> wrote:
> The original version was missing a few; I tidied it up and checked the
> patterns and can confirm it generates exactly the
> same patterns as the v34 spec, other than the fact they contain "ss"
> tokens where possible.
>
> Justin
>
>
> On 20 June 2018 at 00:18, Justin Cormack <justin at specialbusservice.com> wrote:
>> I wrote a quick program to generate all the standard and deferred
>> patterns from a short set of rules based roughly on [1]
>>
>> https://github.com/justincormack/noise-gen
>>
>> You should be able to run it with go installed with
>>
>> go get github.com/justincormack/noise-gen
>> ~/go/bin/noise-gen
>>
>> It seems to generate the same patterns as the standard ones (I havent
>> fully exhaustively checked yet) with the caveat that it adds ss where
>> possible.
>>
>> In the standard patterns this means having an ss in eg:
>>
>> IX:
>> -> e, s
>> <- e, ee, se, s, es, ss
>>
>> XK:
>> -> e, es
>> <- e, ee
>> -> s, se, ss
>>
>> The rule that would generate the same patterns appears to be to drop
>> an ss if it would be the last token (as well as in all deferred
>> patterns).
>>
>>
>> [1] https://moderncrypto.org/mail-archive/noise/2018/001701.html
>>
>> Patterns generated listed below:
>>
>> NN:
>> -> e
>> <- e, ee
>>
>> NX:
>> -> e
>> <- e, ee, s, es
>>
>> NK:
>> -> e, es
>> <- e, ee
>>
>> XN:
>> -> e
>> <- e, ee
>> -> s, se
>>
>> IN:
>> -> e, s
>> <- e, ee, se
>>
>> XX:
>> -> e
>> <- e, ee, s, es
>> -> s, se, ss
>>
>> IX:
>> -> e, s
>> <- e, ee, se, s, es, ss
>>
>> XK:
>> -> e, es
>> <- e, ee
>> -> s, se, ss
>>
>> IK:
>> -> e, es, s, ss
>> <- e, ee, se
>>
>> KN:
>> -> e
>> <- e, ee, se
>>
>> KX:
>> -> e
>> <- e, ee, se, s, es, ss
>>
>> KK:
>> -> e, es, ss
>> <- e, ee, se
>>
>>
>> NX:
>> -> e
>> <- e, ee, s, es
>>
>> NX1:
>> -> e
>> <- e, ee, s
>> -> es
>>
>> NK:
>> -> e, es
>> <- e, ee
>>
>> NK1:
>> -> e
>> <- e, ee, es
>>
>> XN:
>> -> e
>> <- e, ee
>> -> s, se
>>
>> X1N:
>> -> e
>> <- e, ee
>> -> s
>> <- se
>>
>> IN:
>> -> e, s
>> <- e, ee, se
>>
>> I1N:
>> -> e, s
>> <- e, ee
>> -> se
>>
>> XX:
>> -> e
>> <- e, ee, s, es
>> -> s, se, ss
>>
>> X1X:
>> -> e
>> <- e, ee, s, es
>> -> s, ss
>> <- se
>>
>> XX1:
>> -> e
>> <- e, ee, s
>> -> es, s, se, ss
>>
>> X1X1:
>> -> e
>> <- e, ee, s
>> -> es, s, ss
>> <- se
>>
>> IX:
>> -> e, s
>> <- e, ee, se, s, es, ss
>>
>> I1X:
>> -> e, s
>> <- e, ee, s, es, ss
>> -> se
>>
>> I1X1:
>> -> e, s
>> <- e, ee, s, ss
>> -> se, es
>>
>> XK:
>> -> e, es
>> <- e, ee
>> -> s, se, ss
>>
>> X1K:
>> -> e, es
>> <- e, ee
>> -> s, ss
>> <- se
>>
>> XK1:
>> -> e
>> <- e, ee, es
>> -> s, se, ss
>>
>> X1K1:
>> -> e
>> <- e, ee, es
>> -> s, ss
>> <- se
>>
>> IK:
>> -> e, es, s, ss
>> <- e, ee, se
>>
>> I1K:
>> -> e, es, s, ss
>> <- e, ee
>> -> se
>>
>> I1K1:
>> -> e, s, ss
>> <- e, ee, es
>> -> se
>>
>> KN:
>> -> e
>> <- e, ee, se
>>
>> K1N:
>> -> e
>> <- e, ee
>> -> se
>>
>> KX:
>> -> e
>> <- e, ee, se, s, es, ss
>>
>> K1X:
>> -> e
>> <- e, ee, s, es, ss
>> -> se
>>
>> KX1:
>> -> e
>> <- e, ee, se, s, ss
>> -> es
>>
>> K1X1:
>> -> e
>> <- e, ee, s, ss
>> -> se, es
>>
>> KK:
>> -> e, es, ss
>> <- e, ee, se
>>
>> K1K:
>> -> e, es, ss
>> <- e, ee
>> -> se
>>
>> KK1:
>> -> e, ss
>> <- e, ee, se, es
>>
>> K1K1:
>> -> e, ss
>> <- e, ee, es
>> -> se


More information about the Noise mailing list