**Cryptography**, or **cryptology**, is the practice and study of techniques for secure communication in the presence of adversarial behavior. More generally, cryptography is about constructing and analyzing protocols that prevent third parties or the public from reading private messages; various aspects of information security, such as data confidentiality, data integrity, authentication, and non-repudiation, are central to modern cryptography. Modern cryptography exists at the intersection of the disciplines of mathematics, computer science, electrical engineering, communication science, and physics. Applications of cryptography include electronic commerce, chip-based payment cards, digital currencies, computer passwords, and military communications.

Prior to the current era, cryptography was virtually synonymous with encryption, turning information from legible to nonsensical gibberish. To prevent attackers from gaining access to an encrypted communication, the sender only discloses the decoding process to the intended receivers. In the literature on cryptography, the names Alice (“A”) for the sender, Bob (“B”) for the intended receiver, and Eve (“eavesdropper”) for the adversary are frequently used. Since the invention of rotor cipher machines in World War I and the introduction of computers in World War II, cryptography technologies have grown more complicated and diverse in their uses.

Modern cryptography is heavily based on mathematical theory and computer science practice; cryptographic algorithms are designed around computational hardness assumptions, making such algorithms hard to break in actual practice by any adversary. While it is theoretically possible to break into a well-designed system, it is impossible in actual practice to do so. Such schemes, if well designed, are therefore termed “computationally secure”. Theoretical advances, e.g., improvements in integer factorization algorithms, and faster computing technology require these designs to be continually reevaluated and, if necessary, adapted. There exist information-theoretically secure schemes that provably cannot be broken even with unlimited computing power, such as the one-time pad, but these schemes are much more difficult to use in practice than the best theoretically breakable but computationally secure schemes.

Modern cryptography is mainly reliant on mathematical theory and computer science practice; cryptographic methods are developed around computational hardness assumptions, making such systems difficult for any adversary to crack in actual practice. While it is theoretically conceivable to break into a well-designed system, doing so in practice is impossible. Such systems, if correctly constructed, are therefore referred to as “computationally safe.” Theoretical breakthroughs, such as improvements in integer factorization techniques and faster computer power, necessitate that these designs be reevaluated and, if required, updated on a regular basis. There are information-theoretically secure techniques that can be proven.