[noise] New branch of Noise spec
Trevor Perrin
trevp at trevp.net
Sun Aug 23 23:56:51 PDT 2015
On Fri, Aug 21, 2015 at 4:33 PM, Trevor Perrin <trevp at trevp.net> wrote:
> Hi,
>
> I've been preparing a new branch of Noise, with most text rewritten
> and some substantive changes:
>
> https://github.com/trevp/noise/blob/noh/noise.md
I've got negative feedback offlist that this is too hard to follow and
too abstract, so I'm working on simplifying:
https://github.com/trevp/noise/blob/noh2/noise.md
But this is a work-in-progress for now.
Trevor
>
>
> Probably could use some text polishing, but I wanted to get this out
> for feedback, so please send some!
>
>
> Terminology changes:
>
> * Instead of Box / Handshake distinction for one-shot or interactive
> handshakes, now there is a Handshake / Application message
> distinction, and within the Handshake a One-way vs Interactive
> distinction.
>
> * The symmetric-key crypto is encapsulated into a "kernel" object.
> The main benefit is ease of presentation, but this might also make it
> clearer how to swap in new symmetric-key crypto like sponges.
>
> Main changes:
>
> * Handshake hashing was a weird mix of hashing completed messages,
> plus using AAD to cover partial messages. This meant repeatedly
> authenticating or hashing the same data. Also, the hashes were left
> around for the lifetime of the session. The new system only hashes
> relevant fields, once, and stops authenticating the hash after the
> handshake.
>
> * A notion of "branching" has been added so you can specify how to
> branch between different versions, or ciphersuites, or handshake
> patterns.
>
> * Prologue had an unclear purpose, so was removed. If you want to
> send plaintext data during an early handshake message, just use the
> payload. If you want to send a version or type indicator, use
> branching.
>
> * The "conventions" I mentioned earlier have been added, including
> framing and padding fields. Also, handshake messages use an extension
> system that allows one party to offer support for new things that will
> be ignored by older implementations.
>
> * I've fleshed out a range of ways to send application messages,
> allowing for forward-secure key updating / ratcheting, and explicit
> nonces.
>
> * Ciphersuites have been separated into "DH functions" and a
> symmetric-key "cipherset", since there was no reason to tie these
> together.
>
>
> Trevor
More information about the Noise
mailing list