RustCrypto / hashes

Collection of cryptographic hash functions written in pure Rust
1.87k stars 251 forks source link

Please add SIDH encryption #18

Closed FlogramMatt closed 7 years ago

FlogramMatt commented 7 years ago

Encryption that is resistant to Quantum computers. Microsoft's open source implementation: https://www.microsoft.com/en-us/research/project/sidh-library/

newpavlov commented 7 years ago

Thank you for the reference!

Unfortunately SIDH is outside of the scope for this repository. When I'll start repo for key exchange algorithms I'll include it into the list of desirable algorithms, or I'll just create a separate repository for it if I get time to implement it.

I will close this issue, but I'll keep SIDH in mind.

burdges commented 7 years ago

Imho, there are no currently available post-quantum public key exchanges that will still be in use in two years.

Among the lattice based schemes Leo Ducas' new hybrid lattice-ring approach will eclipse the pure Ring-LWE schemes like New Hope, etc. We expect them to increase real security, provide better security against theoretical advances, and offer significantly smaller key sizes.

SIDH was heralded largely for providing smaller key sizes, and maybe offering non-ephemeral keys, but recently (a) the key sizes were further compressed, (b) invalid key attacks knocked it back to ephemeral only, and (c) ongoing work on key validation looks interesting.

It's always fun to learn stuff , but imho one should wait 6-12 months to see what shakes out. It's just the wrong moment in time to implement either a lattice or an isogeny based key exchange.

Anyone who simply wants post-quantum public key cryptography in Rust should be trying to give academic cryptographers more reason to build their stuff in Rust in the first place, like say addressing LLVMs issues with producing constant time code.