Cryptography: How to Attack, What to Protect?