Solutions for the CryptoPals challenges