3 ms·
And yet unfortunately, LibreSSL still doesn't support any safe curves ( https://safecurves.cr.yp.to https://safecurves.cr.yp.to ) like Curve25519. Nor the abili
by byuu 10y ago
And yet unfortunately, LibreSSL still doesn't support any safe curves ( https://safecurves.cr.yp.to https://safecurves.cr.yp.to ) like Curve25519. Nor the ability to choose between multiple curves for the 99% of browsers that only support the NIST curves (only the most recent Firefox nightlies and Chrome support it.) The former landed in OpenSSL 1.1.0, and the latter in 1.0.2, whereas LibreSSL is a fork of 1.0.1. And after Dual EC DRBG, it is negligent to trust more curves that the NSA has tampered with.
The curve has been out for a long time now, and it really doesn't take much code to do this. Here's a recent implementation of it that I wrote, which runs in constant time and is based in part off curve25519-donna-c64 and with some help from MerryMage:
http://hastebin.com/raw/lutiloyaxa http://hastebin.com/raw/lutiloyaxa
As you can see, most of the work is just simulating a 256-bit type efficiently. But they should already have the field element types in their signify code (which uses Ed25519), so they'd only have to write the first 86 lines of that code.
At this point, I've pretty much given up hope of being able to use the even nicer Curve448 within the next five years with TLS. I'm unaware of any TLS libraries or browsers that support it.
- dogma1138 10y agoOpenSSL supports ECC X25519 since august this year. Apple uses 25519 for iCloud encryption as well as encrypting AirPlay and wireless communication with various accessories. X25519 Is also supported in Chrome https://www.chromestatus.com/feature/5682529109540864 https://www.chromestatus.com/feature/5682529109540864
- byuu 10y ago> OpenSSL supports ECC X25519 since august this year. "The former landed in OpenSSL 1.1.0" > X25519 Is also supported in Chrome "only the most recent Firefox nightlies and Chrome support it" > Apple uses 25519 for iCloud encryption as well as encrypting AirPlay and wireless communication with various accessories. I was referring to its use in HTTPS/TLS, but that's good to hear! :D Hopefully they'll add it to Safari soon.
- dogma1138 10y agoWasn't contradicting you, just adding a bit of info. Does firefox actually supports X25519 now? I haven't seen it in the builds (it's also not on the reference list i use). I know Edge is going to support it by the end of the year, no clue on Safari yet. But anyhow if you want to have a full list of software that supports Curve25519/X25519(DH) as well as other open crypto standards IANIX has an upto date list https://ianix.com/index.html https://ianix.com/index.html
- byuu 10y agoOh okay, in that case my apologies for the misunderstanding ;) Firefox is said to support it in the nightly releases, but not yet in the official releases. This is the last time I checked about a month ago (I no longer use Firefox.)
- hannob 10y agoThe problem is that despite being deployed and having a lot of support there still is no official RFC for X25519 in TLS. We have only an RFC for the curve as a cryptographic primitive (RFC 7748). A bit unfortunate that IETF process runs so slow in this regard.