Matasano Crypto Challenges

12/14/14 c0nrad

I recently finished the Matasano crypto challeneges. I definetly enjoyed the challeneges even if they were a bit frustrating at times. It took me about a year and nine months to solve the first six sets.

The challeneges can be found at There's six sets of eight problems covering a wide range of different crypto ideas.

What was actually most frustrating about the problems wasn't the actual problems. It was how other people described the problems. I can't remember where I read it, but I remember reading comments about how certain people were able to just "breeze through" the problems. Which is great, we need smart and talented people.

But for everyone else out there, the problems can be a bit tricky. Some of the problems can be a little hard to debug when something goes wrong. Sometimes you have to do a bit of research to even understand what the problem is asking. Problem 47/48 requires you to read a research paper, and then implmentment the attack. It took me longer than I'd like to admit to solve the problem. But in the end, it was definetly worth it.

Some advice for people getting started:

You're going to be reusing a lot of code, the problems build on themselves. Make sure you code works correctly from the beginning. Make sure you're implementing that padding correctly from the start.

Don't expect to get X problems done in one day just because you got X done yesterday. They are definitely of differing difficulty.

Careful debugging will save you hours. Make sure you're code is doing what you expect every step of the way. Personally for most of the problems I wrote test cases for each peice of functionality I think I'd need before I even started coding. But that can take a bit of time.

I found it was best to "sprint" through a set of 8, and then take a break for a few weeks. Back when you had to email Matasano for the problems this was kind of forced. But I'd reccomend it even if we have all the problems now.

Stick with it! They are tricky problems. And they take time.

Other than that, best of luck. If you more info, check out the website ( or maceij has a pretty good writeup.

Best of luck!