that deals with the encoding and decoding of information. The main goal of cryptography is to prevent unauthorized access to information. The history of cryptography goes back to around 1900 BCE in Egypt, where it was essentially a way of writing hieroglyphs in an encrypted manner.
Today's cryptography uses advanced mathematics and computer science techniques to encode and decode messages or information in a secure method. The cryptographic techniques used are known as cryptographic algorithms, hence where the name crypto comes from. Crypto algorithms are designed around the theory of Computational complexity theory and a computational hardness assumption which makes breaking or decoding the crypto algorithm infeasible to an adversary, both in computational time and resources.
Three main branches of cryptography:
Symmetric (Secret-Key) Algorithms: The form of cryptography most commonly thought of: where two parties have an encryption and decryption method to share a private key. This symmetric method was the type of cryptography used from antiquity up until the mid-1970s. Symmetric ciphers are still in use with many applications like bulk data encryption, integrity checking of messages, the .NET framework, and more.
Asymmetric (Public-Key) Algorithms: A new type of cipher introduced in 1976 by researchers Whitfield Diffie, Martin Hellman, and Ralph Merkle. The difference in this cipher compared to its symmetric counterpart is that a user posses a secret key and a public key to use in encoding and decoding information. Some applications for asymmetric algorithms are digital signatures, key-establishment, and data encryption.
Cryptographic Protocols: Cryptographic protocols are the mechanisms or systems that apply cryptographic algorithms. You can think of a house where the symmetric and asymmetric algorithms are the building blocks or foundations that allow applications and protocols to build on top of them. Some crypto protocols are