solutions to http://cryptopals.com/