# Cryptography

### What is cryptography?

Cryptography is the way to protect the information from unauthorized access. Whether the information is in transit or at rest, cryptography is the way to make or to render the information unusable to anyone who does not know the way to decrypt it. The overall process for the encryption is very simple:

- Take the plane text data
- Apply some cryptographic method or algorithm on it
- Turn it into a cyphertext
- Use the algorithm to decrypt the encrypted text back to the normal state

To understand cryptography is a better way, we should know what is confidentiality, integrity, and availability. To read more about the CIA, please refer to: http://www.qualitians.com/cia-confidentiality-integrity-availability/. Encryption helps us to maintain the CIA for the data transferred from one system to the other with the use of encryption keys.

### Non-Repudiation

Repudiation means to deny or to reject the validity of something. Non-repudiation is the widely used term in information security, which provides proof of the origin and integrity of the data. In other words, Non-repudiations is the means by which the recipient can ensure the identity of the sender and the authenticity of the received message. So that neither of the parties can deny having received or sent the message.

Non-repudiation is just the assurance that the data is certainly coming from the origin and it is not altered in any way by anyone.

**For example,** Digital Signatures are a good example that can offer non-repudiation where it comes to online-transaction and it is very crucial to ensure the authenticity of the signature on a document or sending a message.

In a single line, the ability to prevent the denial in a transaction or in an electronic message is non-repudiation.

### Encryption algorithms and techniques

Cryptographic systems can be as simple as substituting a character for the other or as complex as mathematical formulas to change the entire content. Encryption algorithms are the mathematical formulas that are used to encrypt and decrypt the data. Following are the two ways to perform encryption:

- Using only the encryption algorithm (Traditional technique)
- Using encryption algorithm and separate keys to accomplish the task (Modern technique)

Before getting into types of encryption, let’s understand how ciphers work. The encryption algorithm can use two methods to encrypt the data:

**Block Ciphers**– readable bits in a readable pattern are fed and encrypted one at a time**Stream Ciphers**– bits of data are encrypted as a continuous stream

### Type of encryption

Further, there are 2 methods with which these keys can be used: Symmetric encryption and Asymmetric encryption.

**Symmetric Encryption**: also known as single-key encryption; in this method, only one key is used to encrypt and decrypt the data. Communication can be encrypted between the two by having a secret key with both the sender and receiver. Key distribution and management in symmetric encryption are very difficult because the number of key pairs increases with the increase in the number of people in line.**For example**, there are 4 users communicating, then the formula to calculate the key pairs would be: N(N-1)/2 which is: 4(4-1)/2 = 6

**Asymmetric Encryption**(popularly known as public-key cryptography): use of two keys; in this method, one key is used to encrypt the message and the other is used to decrypt the message. The public key, also known as the encryption key could be sent to anyone, and the private key, known as a decryption key, is kept secure on the system.**For example**, suppose two people wish to securely communicate across the Internet. User A (‘John’) sends his public key to User B (‘Amy’), and User B (‘Amy’) sends his public key to User A (‘John’). Neither is concerned if anyone on the Internet steals this key because it can only be used to encrypt messages, not to decrypt them. This way, data can be encrypted by a key and sent without concern, because the only method to decrypt it is the use of the private key belonging to that pair.