Cryptography is the study and practice of techniques for secure communication in the presence of third parties. It deals with developing and analysing protocols which prevents malicious third parties from retrieving information being shared between two entities. Some key principles of cryptography include confidentiality, data integrity, authentication, and non-repudiation. Cryptography is widely applied in computer security, network security, and internet security. Common techniques include symmetric encryption algorithms, cryptanalysis methods, and the use of substitution and transposition ciphers.