[noise] Potential redesign?

Trevor Perrin trevp at trevp.net
Thu Mar 19 01:03:05 PDT 2015


On Wed, Mar 18, 2015 at 9:10 PM, Watson Ladd <watsonbladd at gmail.com> wrote:
> On Mon, Mar 16, 2015 at 5:51 PM, Trevor Perrin <trevp at trevp.net> wrote:
[...]
>>
>> https://github.com/trevp/noise/blob/noise2/noise.md
>>
>>
> <snip>
>
> This seems to kick the protocol design and assurance question down the
> road,

Not really - we'd specify a bunch of prefab protocols the (e.g. the
Box** and Handshake** I proposed), give good explanations of their
properties, and hopefully get some proofs for them.

I imagine that libraries would provide these, and we'd steer people
towards them.


> while adding a lot of complexity (parser+interpreter) to an
> implementation. Of course, there are other ways to implement
> (source-to-source transformations, etc) but they are all very complex.

I'm also imagining that libraries should be able to handle arbitrary
descriptors for users who need a protocol we didn't anticipate or
think was important enough.  But I don't think it's that complicated.

There's basically 3 tokens here (add my static key to message;
generate and add an ephemeral key; do a DH between some keys and mix
into PRF chain).  The descriptor is just a very simple config string,
not network input.  It doesn't even need to be parsing, it could be:

message = Message(session)
message.e()
message.dhee()
message.dhes()
send(message)
...


> On the plus side, there are some similar ideas for DSLs for the
> implementation of crypto protocols on top of primitives kicking
> around: I don't recall offhand a specific reference.

I'd like to see those references, if you can find them.


Trevor


More information about the Noise mailing list