Cryptography is the practice and study of techniques for secure communication and data protection in the presence of adversaries.