Thursday, November 27, 2014

Let's do some crypto!

One of the more famous and widely used application of computer science is a cryptography. Idea behind core cryptography is fairly simple, keep my message secret.

The modern day cryptographic infrastructure as we know it, is mostly broken. The central idea behind this series is to make readers aware of these issues. The best way to do that is to actually break these systems. In this and the series posts that will follow, I will demonstrate attacks on different algorithms due to simple implementation errors or design issues in the algorithm itself.

This series is greatly inspired by Matasano Crypto Challenges. I strongly encourage you to go and solve them first, if you are looking for real action. I will be using those challenges as a reference. keep in mind that this work is strictly for educational purposes only.

Enough of the disclaimer and introduction, let's start!

Some words that you should understand 'out of the box'.


1. Plaintext: 'This is plaintext'.

2. Ciphertext: We operate on plaintext, and encrypt it.

3. Keys: Keys are the secret information that we use to restore ciphertext to extract meaningful data.

4. Keyspace: Collection of all  possible keys. Rule of thumb, size matters. Bigger the better.

5. Alice, Bob and Eve: Alice and Bob try to communicate, and Eve tries to listen. Pun intended.


Next post is on different ways of text representation, brush up your python skills. If you are not experienced in python, well don't worry I will teach you.


Credits:
Matasano Crypto Challenges.