Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Noise Extension: Hybrid Forward Secrecy #39

Closed
david415 opened this issue Nov 12, 2018 · 9 comments
Closed

Noise Extension: Hybrid Forward Secrecy #39

david415 opened this issue Nov 12, 2018 · 9 comments

Comments

@david415
Copy link
Contributor

david415 commented Nov 12, 2018

Are you interested in this feature?

Here's the noise fork by Yawning Angel that has the XXhfs using NewHope-Simple:

Here's the spec extension:

https://raw.githubusercontent.com/noiseprotocol/noise_spec/41d478d3dd97d77a6695f4d6cf6283e2830e9ca6/extensions/ext_hybrid_forward_secrecy.md

@mcginty
Copy link
Owner

mcginty commented Nov 18, 2018

Yes, I'm interested in adding HFS support.

@dsprenkels
Copy link

Hey all, in August/September I will probably have some time to implement this. Can I claim this issue for now?

@mcginty
Copy link
Owner

mcginty commented Jul 15, 2019

@dsprenkels go for it :).

@dsprenkels
Copy link

dsprenkels commented Aug 2, 2019

Here's some preliminary notes.

@dsprenkels
Copy link

dsprenkels commented Aug 27, 2019

Hey @mcginty, today I have worked on the HFS support. I have pushed the updates to my hfs branch.

@david415
Copy link
Contributor Author

I'd like to try out your branch... What is a valid Noise HFS specification string?
This one is not valid:
Noise_XXhfs_25519+Kyber1024_ChaChaPoly_BLAKE2b

@dsprenkels
Copy link

dsprenkels commented Aug 28, 2019

Because Trevor's spec did not mention anything about the +-syntax, I have currently implemented the resolving in a way that you have to specify the KEM separately in the builder. Let me give an example:

let params: NoiseParams = "Noise_NNhfs_25519_ChaChaPoly_SHA256".parse().unwrap();
let mut h_i = Builder::new(params.clone())
    .kem(KemChoice::Kyber1024)
    .build_initiator()
    .unwrap();

In this case, the resolver is the default resolver (not ring). Btw. don't forget to enable the hfs and pqclean_kyber1024 features.

I agree that, given the fact that Kyber1024 is currently the only supported KEM, explicitly choosing it might feel a bit pointless. Maybe this is something to be updated.

Note to self: Ask the community about this.

@david415
Copy link
Contributor Author

Hi all. I'm looking forward to this feature getting landed. No hurry I'm just saying that I'm looking forward. Cheers!

@mcginty
Copy link
Owner

mcginty commented Feb 8, 2020

This is now merged in master.

@mcginty mcginty closed this as completed Feb 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants