Cryptography is the practice and study of techniques for secure communications against a third party “adversary”. Modern cryptography is underpinned by mathematics and “computational hardness assumptions”, cryptographic algorithms are designed to require so much effort to break as to be invisible even to an adversary with significant resources such as a nation-state.