The Matasanto Crypto Challenge is a series of exercises to gain familiarity with cryptography development practises in general, and broadening one’s appreciation of the importance of secure software design. As described on the author’s site:
We’ve built a collection of 48 exercises that demonstrate attacks on real-world crypto. This is a different way to learn about crypto than taking a class or reading a book. We give you problems to solve. They’re derived from weaknesses in real-world systems and modern cryptographic constructions. We give you enough info to learn about the underlying crypto concepts yourself. When you’re finished, you’ll not only have learned a good deal about how cryptosystems are built, but you’ll also understand how they’re attacked.
As I progress through the challenge, I will be posting my solutions, likely in C, C++, assembler, and Python.