Hacker News new | past | comments | ask | show | jobs | submit login

Quick plug: set 8 is out. It's all about attacks on elliptic curves and GCM.

This set is huge. There's as much content as in any two or three other sets.

This set is tough. It's easily the toughest set so far. And there is some math. But it's fascinating stuff and (I hope) pretty approachable.

This set is OG cryptopals. That means we're (for now) distributing it via email. If you want to check it out, send a mail to set8.cryptopals@gmail.com with subject "Crazy Flamboyant for the Rap Enjoyment".

First of all, I swear by Cryptopals. They are what made me realize I get, like and can do cryptography. They are just the best programming/math/crypto/anything challenges I've ever played, and one of my first and most satisfying accomplishments.

Secondly, Sean suggested I should speed run set 8 (which I have been saving to run through in a single go) live on Twitch.

People seem to like the idea, so I'll have to figure out a schedule, but this is happening. Check Twitter if you are interested or have advice.


(For context, I think I was the first to finish set 7, which I sped run while at Recurse Center in 30 hours.)

You were the first to finish set 7.

I assume most people don't know, so: Filippo was one of our earliest adopters of cryptopals. He is a monster. He demolished everything we put in front of him.

You should watch Filippo run set 8. I've read a bunch of his code via cryptopals, and I'm a better programmer because of it. I'm very excited to watch him work in realtime.

Any tips for live coding on Twitch? I would like to do that with Set 1.

There is livecoding.tv also. (I'm not related with the project).

Strongest possible recommendation for Sean's Set 8. You'll never look at elliptic curves the same way again.

Very interesting! I've been working on implementing (Ed,Curve)25519 recently.

It's been really fascinating to learn how to use hyperelliptic.org/EFD and turn the pure optimized voodoo of DJB's C implementations into minimalist C++ code.

Here is my current progress: http://hastebin.com/raw/vohusotobe

After separating the math operations on the prime field (2^255-19) into its own type, I was able to reduce Curve25519 to a 30-line class, that's still (hopefully) safe from side-channel leaks and ~90% as fast as the original C version was. Ed's about three times that size on account of all the hashing that's involved, and building a table for scalar multiply over the constant B.

However, there's still a very clear gap in my knowledge of how it all actually works. The math is so far beyond my current knowledge that I don't really have any understanding of its potential weaknesses. The best I can do so far is compare and confirm test vectors against the official implementation, and rely on the work of others in verifying the strength and security of the curve itself.

I'll definitely try and go through this set the next time I have downtime.

I'm kind of sad that from the email over 2 years ago:

"1. Set 7 is out and, if you finished Set 6, you'll be getting Set 8 (Elliptic Curve) sometime in the next few weeks."

Oh well, 2 years later I can still do them :)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact