# Cryptography Fundamentals – Part 1

## Introduction

In this mini-course, we will learn about various aspects of cryptography. We’ll start with cryptography objectives, the need for it, various types of cryptography, PKI, and we’ll look at some practical usage in our daily digital communication. In this mini-course, I will explain every detail with an example which end users can perform on their machines.

Today, digital communication has become far more important than what it was a decade ago. We use internet banking, social networking sites, online shopping, and online business activities. Everything is online these days, but the internet is not the most secure means to conduct all those activities. Nobody would want to do an online transaction with communication from their machine to their bank through an open channel. With cryptography, the channel secured between different entities which helps to do business activity in a more secure fashion. Cryptography is a method of storing and transmitting data in a particular form so that only those for whom it is intended can read it. Cryptography is a broad term which includes sub disciplines and very important concepts such as encryption. Let’s get into the main objectives of cryptography.

## Cryptography Objectives

**C-Confidentiality**: Ensuring the information exchanged between two parties is confidential between them and is not visible to anyone else.**I-Integrity**: Ensuring that message integrity is not changed while in transit.**A-Availability**: Ensuring systems are available to fulfill requests all the time.

Here are some additional concepts:

**Authentication**: To confirm someone’s identity with the supplied parameters, such as usernames, passwords, and biometrics.**Authorization**: The process to grant access to a resource to the confirmed identity based on their permissions.**Non-Repudiation**: To make sure that only the intended endpoints have sent the message and later cannot deny it.

## Cryptography key definitions

Here’s some cryptographic key terminology:

**Plaintext**: The original raw text document onto which encryption needs to be applied.

**Ciphertext**: When we apply encryption to a plaintext document, the output is ciphertext.

**Encryption**: Encryption is the process of converting plaintext to ciphertext using an encryption algorithm. We have different types of encryption available today like symmetric, asymmetric and hybrid encryption. We will discuss them in depth later in the course.

**Encryption algorithm**: An encryption algorithm is a mathematical procedure for converting plaintext into ciphertext with a key. Various examples of encryption algorithms include RSA, AES, DES, and 3DES.

**Key-length**: Choosing an encryption algorithm with an appropriate keysize is an important decision to make. The strength of the key is usually determined by keysize, or the number of bits. Thus, the larger the bit size of a key, the more difficult it is to break the key. For example, with a key which has a bit length of 5, the key will have only 2^5 or 32 combinations. That’s pretty easy to break considering today’s computation methods. That’s why older algorithms like WEP (40 bits) & DES (56 bits) are considered obsolete and now much more powerful algorithms with larger key sizes, such as AES (128 bits), are now used.

**Hash**: A hash value, also called a message digest, is a number generated from a string of text. As per the hash definition, no two different texts should produce the same hash value. If an algorithm can produce the same hash for a different string of text, then that algorithm is not collision free and can be cracked. Various examples of hash algorithm are MD2, MD5 and SHA-1 etc.

**Digital signature**: Digital signature is the process of making sure that the two entities talking with each other can establish a trust relationship among them. We will take a look at its practical demonstration later in this document.