Project 6: Crypto in the real world


Tutor: Guillaume Didier guillaume.didier AT irisa.fr

Context

Cryptanalysis is the process of finding weaknesses in cryptographic systems, and using these weaknesses to decipher the ciphertext without having the secret key. Attacks can target the cryptographic primitive itself (i.e., the mathematical foundations of the algorithm), but more often cryptanalysis targets the usage of this primitive. Indeed, the devil is usually in the details! The interaction between compression and encryption, cipher modes, and protocol negotiation are a few ways attackers can blow up encryption that used primitives that are deemed safe, because they are used inappropriately.

When the iron blast door is attached to a wooden door frame, don’t blow up the door, just break the door frame!

Aim

In this project we will try to reproduce an attack on AES using the CBC encryption mode, also known as a padding oracle attack.

Progression

To do this you will first set-up a two programs that use OpenSSL to generate messages and decrypt them. You should output the message/read them from files (for instance), so that it is easy for you to intercept and modify them.

Once this is done you will abuse the padding scheme following the same technique as Vaudenay and use the behaviour of the decrypting program when fed slightly modified message to decrypt byte by byte the message.

Help

Where do we start?

We’re bored

Finished everything early/want to do more? Reach out to us, we'll find another attack for you to do.

Bibliography

Read this first to familiarize yourself with cryptographic attacks:

And here are the two articles to read and summarize for the project presentation: