Cryptography explained
Tags: webdev, devops
Published: 2021-09-07 06:18:31

## Introduction
Cryptography is the study and practice of techniques used for secure communication in the presence of adversarial behavior. An Adversary is a malicious entity that does not want the users of a specific cryptosystem to communicate and achieve their goal. The adversary might try to corrupt the data or retrieve the information in the data. <br><br>

Cryptography is about constructing and analyzing ways and protocols that prevent third parties from reading private data while it is transmitted to the desired receiver. The pillars of cryptography are confidentiality, data integrity, authentication and non-repudiation(highly used principle in blockchain). Ciphers, Encryption and Cryptographic hash functions form a huge part of cryptography. Cryptography is based on the disciplines of mathematics, computer science and physics. Cryptography is highly used in, sending emails and messages, secure credit card transactions, cryptocurrencies, blockchains, storing data and and military communications.<br><br>

## Overview
Encryption is a modern day implementation of cryptography, It is the technique of converting readable information into something completely unreadable, such that only authorized parties can convert the unreadable information back into readable information, thus increasing communication security. This is made possible as the algorithm to decode the unreadable pseudorandom text is only shared in-between the authorized parties. Since the development of cryptographic machines like the enigma and Lorenz cipher machine in the world wars, cryptographic techniques have advanced manifold as its use cases have also increased. Cryptography is used everywhere, the messages sent via social media apps are also encrypted so that no hacker in between can intercept the messages. Cryptography, over several years, has become more term of computer science than mathematics as it is used a lot in computers. Modern cryptography is heavily based on mathematical theory and computer science practice, cryptographic algorithms are designed around computational hardness assumptions which states that an algorithm cannot be broken efficiently(in context to time). Well designed cryptographic algorithms cannot be broken in most cases, and the only way to break a cryptographic algorithm is bruteforce, which is a trial and error method of finding out what the encrypted data is, in the case of bruteforce, it depends on the amount of computational resources allocated to breaking the algorithm. There are some cryptographic algorithms which cannot be broken even by bruteforce, like OTP(one time pad).

## Terminology
In cryptographic literature, the names "Alice", "Bob" and "Eve" are frequently used. "Alice" is the sender and "Bob" is the receiver, whereas "Eve"(eavesdropper) is an adversary. You can assume names in cryptographic literature according to a specific scheme. You have to name the entities in alphabetical order, like first a name starting with "A", then "B","C","D" and so on, but you skip the name with "E" as a common entity because it is the adversary. For example: **A**lice, **B**ob, **C**harlie, **D**arwin, **F**inn and so on.<br>
**Cryptography** is the practice of cryptographic techniques whereas **cryptology** is the study of both cryptography and cryptanalysis. **Cryptolinguistics** is the study of characteristics of languages that have some application in cryptography or cryptology. For example: frequency data, letter combinations(linguistics), patters, etc.

## Disciplines
There are a lot of disciplines under cryptographic, there is assymetric key encryption, symmetric key encryption, substitution cipher and a lot more.

### Read More
- Cryptographic Hash functions
- Cipher
- ciphertext
- codetext
- cryptanalysis