Cryptopals
What’s this?
Well, since I have a bit of free time on my hands these days, I am thinking of learing a bit about cryptography. I am always amazed at the way we manipulate strings of bits and bytes in cryptography, to hide a message. That too in plain sight. It always has been a very fascinating thing for me, and me being me, I always wanted to know how it works. So, upon searching for some resources, I came accross this amazing website, cryptopals.com. More on it coming right up!
What is cryptopals.com?
It is a website (duh) that has a collection of problems on cryptography. According to the introduction written over there, the site is meant to be used as a learning resource, and I don’t know about you guys but I definitely love learning about stuff by doing it. The website states that no prerequisite knowledge of crypto or maths, (maths that is taught beyond grade 9 to be exact) is required.
What’s so good about this?
Just the fact that this will help me learn cryptography by doing crypto stuff is enough a reason for me to immediately start solving some problems over there. The site mentions that the challenges are made to be incrementally hard, with the ones in set one being very easy. They even say that if you’ve done even a little bit of cryptography before hand you should be able to complete the first set in a few minutes.
Well, I am just gonna say that I know myself. And I do NOT know cryptography. And it is definitely gonna take hours if not days to solve each problem.
What are you gonna write about? And what’s so special about that?
“So well, I googled, cryptopals set x problem x solution, and a bunch of solutions showed up, why should I read this?”, I hear you say. Well as of the time that I started writing this blog, I couldn’t find a detailed walkthrough of the problems. Maybe it’s because I was looking for the solutions of relatively easy problems. There might always be better solutions and guides out there. But in this blog I’d like to show we can learn about cryptography from scratch. Since I am an absolute beginner myself, I believe that I can describe the problems that a lot of people like me might face. I will list all the resources that helped me along the way.
And well I am in no way saying that my writeups will be a good walkthrough for all these problems, that’s definitely not true. There are a lot of people out there who are way better than me at both blogging and cryptography, and they will be writing both better blogs and walkthroughs to these problems. All that I am saying is that, this set of writeups are gonna show how a total noob as myself can start learing anything that he/she wants, and get better at them. (Other than that these posts will also serve as a gauge for my improvement, since I do not expect a lot of people following these blogs. The count is 0 for now. And you can call me crazy for talking to myself like this. But I think that I will have company soon.)
Also I will be posting the code for the solutions to these problems at my repo.
Disclaimer
Well, to the people following these blogs, (and the ones who stumble upon this in the future, ) who already know a bit of cryptography, (don’t know what you guys are doing here, but thanks anyways,) it might happen that I start solving a problem with the stupidest way possible. Just bear with me, I know I am kinda dumb, but I am a good learner too. (That’s what my mom says anyways.) Things should get better with each problem that I solve.