Exercises from cryptopals.com