11. Decryption

That's cool, you can encrypt and all. But what about decrypting :)

This section is mostly for fun, since we won't need it for our attacks. Feel free to skip it, but since you already have most of the code why not implement it?

The idea here is that you will have to reverse each rounds. And for this you will need to code the inverse functions corresponding to the different round's transformation functions. AddRoundKeyInverse() should be straightforward while MixColumnsInverse() is a bit more involved.

When you're done, you should go check the Set 2.