Don't put the solutions to the crypto challenges up

10 points by king_mob ↗ HN
Seriously. I've learnt more programming in the past two days going through the first sets than i ever have before. I can't help but feel that solutions would ruin that, the need to really get your head around the concepts. If the point of the crypto challenges is to demonstrate how crypto fails, isn't it better to force people into understanding the attacks?

Joking aside i am actually interested in the rational behind providing direct solutions in code, in place of say, the plaintext you should be able to retrieve.

Also, thanks a bunch for putting this up, it's by far the most enjoyable resource I've found on crypto.

11 comments

[ 2.0 ms ] story [ 29.1 ms ] thread
Crypto challenges, you say? Where can one find some interesting crypto challenges, preferably beginner level> Poject Euler?
I should of added, i'm referring to the matasano crypto challenges www.cryptopals.com
It's a blast. Between various job hunt activities I'm simultaneously learning Go and working through the challenges (just as advertised, it's a great way to explore a new language).
(This thread is about CRYPTOPALS.COM, the site at which we've finally published the crypto challenges we've been running over email. There's also an IRC channel on Freenode, #cryptopals, where lots of people are hanging out.)

Give us ideas on how we can put them up without spoiling them, and we'll try to do that.

Part of the problem with not posting solutions is that we embargoed participants from posting their solutions. We'd like to stop doing that; the people who have generously held back their solutions have done us a favor, and we'd like to stop asking it of them.

Once people start posting solutions anywhere, we think it's better that there be a curated set of solutions (we're working on ways to make it receptive to git pull requests) than things scattered all over the Internet.

Thank you, by the way, for the kind words!

Give us ideas on how we can put them up without spoiling them, and we'll try to do that.

Invisiclues-style, where you give progressively bigger and bigger hints to solvers trying to get through them?

I realize however you do it would be a compromise of some sorts, for what its worth how you explained it here seems to be the best solution, thanks for the explanation!
Where there is an exact answer could you provide the sha256(answer) on the challenge page? This way plain text is not shown but we can check our answers against the hash.

Perhaps a wrapper function to call the language/platform specific sha256 could be asked for as a Set 1 challenge. In this particular challenge the answer to a well known input would be un-hashed for verification purposes.

Hey actually i just thought of something, how about a leader board like you have with microcorruption, where everyone can share their solutions and discuss different ways to approach the attack? That way the people who want to share the wealth can, and it would encourage a culture of learning rather than straight copy.
Perhaps the solutions could be encrypted, so that you need to decrypt them to read them?
I actually really like this idea, decrypting a solution would mean you would of had to come up with one first, then you could check against the preferred method.