[noise] Implementing HFS support for Noise

Daan Sprenkels hello at dsprenkels.com
Thu Aug 29 03:06:37 PDT 2019

Hey all,

As David already mentioned yesterday, I have spent some efforts on
implementing HFS support for the snow implementation in Rust this week
[1], based on the spec from [2]. Currently, there is a fully functional

I also have a a couple points of discussion on which I hope to get some
general feedback.

## HFS patterns

Trevor's HFS spec makes no mention of how to specify the KEM that is to
be used. There seem to be a couple of straightforward options:

1. Add the name into the pattern after the DH-scheme seperated with a
   `+`, for example: `Noise_XXhfs_25519+Kyber1024_AESGCM_SHA256`. This
   was already proposed by [3].
2. Make this library-dependent (i.e. view this in the same way as
   loading static keys).

I feel there is a general preference to the first one. What do you
think? Should we standardize the first format?

## Selecting post-quantum KEMs

For snow, I have used Kyber1024, by request of David, (and also because
of personal affiliation). However, to provide the users with some
choice, we should maybe also decide on a second one to "unofficially"
standardize. In any case, I agree to update to the winners from the NIST
competition once that's finished. Until then, should we implement a
second one (and which)?


I hope that I'm not overestimating the interest for post-quantum noise.
I know that the Katzenpost project is interested, but do you guys know
if there are any other users that want this?

Daan Sprenkels

[1]: https://github.com/mcginty/snow/pull/61

More information about the Noise mailing list