Challenges from http://cryptopals.com