Solutions for the Matasano crypto challenges as described at http://cryptopals.com .
All problems are solved in Python 3. pycrypto has been used as a library for common algorithms and utilities.
The solution to MD4 collisions from set 7 is not complete. This is due to me getting bored and moving to set 8 early. I plan to revisit it once I finish set 8, which might take a while (read: an inordinate amount of time, don't hold your breath).
As I explained on my blog, the challenge authors have asked not to share the challenges of set 8. I believe this implies not sharing the solutions either, since they would give a pretty good insight into the original challenge and all the required parameters.
I asked the cryptopals team for permission to share the solutions here, but have not received any reply in several months. Therefore for now they remain in a private repository; sorry about that. I still plan to write about interesting things I learn thanks to these challenges, on the blog.
When I started this repository I also started a walkthrough on GitBook. The walkthrough fell behind quite soon (it does not explain all the solutions I have actually implemented), and to be honest I am not sure if I will ever complete it. However explanations for more "challenging" (ahem...) challenges can be found on some blog posts I published:
- Overview of DSA
- Cloning the Mersenne Twister generator
- Challenge 51, or the CRIME attack
- Challenges 52 and 53, or how to multiply hash collisions
- Challenges 47 and 48, on the RSA padding oracle
The code should also be reasonably commented (if I can say so myself :-)).