# The Binary Numbering System (base-2)

Every machine is an electronic system. in order to communicate with machines, the best way is to via electrical signals. Every electronic machine has a minimum of two signals i.e. “positive” and “negative”. Considering this as fundamental principles computers used binary to build their systems The Binary Numbering System is the most fundamental numbering system in all digital and computer-based systems. a binary number is … Continue reading The Binary Numbering System (base-2)

# MD5 – Message-Digest Algorithm

The MD5 hashing algorithm is a one-way cryptographic function that accepts a message of any length as input and returns as output a fixed-length encrypted value further used for authentication. As it is hash function so it is irreversible. MD5 hash function is severely compromised, MD5 is not collision-resistant. The weaknesses of MD5 have been exploited in the field, most infamously by the Flame malware … Continue reading MD5 – Message-Digest Algorithm

# Diffie Hellman Key Exchange

In early 70’s to send a secret message, both parties (sender and receiver) have to exchange the key to encrypt and decrypt the message. Exchange secret key may lead to compromising the security, as while exchange this key if someone intercepted secret key then the interceptor can decrypt all messages. This problem is called the key exchange problem in computer science  The key exchange problem … Continue reading Diffie Hellman Key Exchange

# Modular Exponentiation

Modular Exponentiation as also known as repeated sequence algorithm which performs exponentiation over modulus. Which essential in computer cryptosystems. A typical problem related to cryptography involves exponentials with a very large number e.g. 36078267  mod 17. To perform these very large number calculation we need an efficient approach. The approach should be a time-efficient and memory-efficient approach. As directly calculating (36078 * 267 mod 17) … Continue reading Modular Exponentiation

# Insertion Sort Algorithm

Insertion sort is a simple sorting algorithm which work mechanism in which sorted array is built having one item at a time.  The array elements are compared with each other sequentially Upon each iteration, an item is taken from the list and inserted into the correct position by comparison with next elements of an array. This process is repeated until we reach the last item … Continue reading Insertion Sort Algorithm

# Selection Sort Algorithm

Selection sort is a simple sorting algorithm. Divide the array into two arrays, sorted and unsorted. Then   selects the smallest element from an unsorted list in each iteration and places that element at the sorted array one by one. This process continues moving unsorted array boundary by one element to the sorted array. Let’s consider an array with values { 12, 4, 45, 2, … Continue reading Selection Sort Algorithm

# Merge Sort Algorithm

Merge Sort is an algorithm use divide and conquer approach in which the array is split in two halves, calls itself for the two halves and then merges the two sorted halves on which we try to perform merge sort. So in merge sort we will break array into sub arrays, these subarrays into even smaller subarrays, until we have multiple subarrays with single element … Continue reading Merge Sort Algorithm

# Quick Sort Algorithm

Quicksort is an algorithm use divide and conquer approach in which the array is split into subarrays by selecting value from array as pivot and then the sub-arrays are recursively called to sort the elements. Steps for quick sort are 1. Pick an element from an array called a pivot. (Different versions of Quicksort pick pivot in different ways) 2. Partitioning- Divide the array into two … Continue reading Quick Sort Algorithm

# Bubble Sort algorithm

Bubble Sort is the simplest sorting algorithm that works by iterating through the array from the first index to the last index and comparing adjacent elements and then swapping them if they appear in the wrong order. I.e. If the next element is smaller than the current element, they are swapped.  As it iterates for all the array elements with repeatedly swapping the adjacent elements. … Continue reading Bubble Sort algorithm

# Cryptography – Mixture of Art and science

Being human, we always concern about our privacy. Privacy plays a significant role in our lives, right from starting on the day till the end of the day. As part of privacy, we want our data, message to be secure. A common example is when we send a text message mostly expecting that only intended recipients should receive it. So being intelligent, human started manipulating … Continue reading Cryptography – Mixture of Art and science

# Deep Dive in RC4 (RC4 Source Code in C#)

RC4 (Rivest Cipher 4) was designed by Ron Rivest. It is remarkable for its speed and simplicity. It widely used in many applications and protocols. Though, there are multiple Vulnerability has been discovered in RC4.  It is a stream cipher type. It encrypt/decrypt input data one by one. In this way, the encryption or decryption can be implemented on the length of the variable. This algorithm does not … Continue reading Deep Dive in RC4 (RC4 Source Code in C#)

# eXtended Tiny Encryption Algorithm (XTEA) – PART II

In this article, we will demonstrate eXtended Tiny Encryption Algorithm (XTEA). Don’t forget to read the Part I of TEA. XTEA (eXtended TEA) is a block cipher designed to fix weaknesses in TEA. Like TEA, XTEA is a 64-bit block Feistel cipher with a 128-bit key and a suggested 64 rounds. As per book “Information Security and Cryptology – ICISC 2003“ TEA is a 64-round … Continue reading eXtended Tiny Encryption Algorithm (XTEA) – PART II

# Tiny Encryption Algorithm (TEA)- Part I

Tiny Encryption Algorithm is a simple, powerful & notably fast encryption algorithm. Although TEA algorithm has a few weaknesses as it suffers from equivalent keys (Which left the room for related-key attacks) – each key is equivalent to three others, which means that the effective key size is only 126. It is Feistel type cipher, the algorithm relies on the alternate use of XOR and ADD … Continue reading Tiny Encryption Algorithm (TEA)- Part I

# Deterministic Algorithm

A deterministic algorithm is an Algorithm in which for a given input, the computer will always produce the same output by going through the same states that also means for given the same input, it will take the same amount of time/memory/resources every time it run. In other words, I would say A deterministic algorithm is simply an algorithm that has a predefined output. For instance, … Continue reading Deterministic Algorithm

# Symmetric Cryptography

This is the simplest kind of Cryptography that involves only one secret key to encrypt and decrypt information. It is also known as “Secret Key Cryptography”.   Both Sender and receiver should know the key to be able to communicate securely.   For Example: if Mahesh & Shalini wants to communicate using symmetric-key cryptography then both would have to devise key and use it for … Continue reading Symmetric Cryptography

# Asymmetric Cryptography (Public Key Cryptography) – Part I

Asymmetric cryptography, also known as public key cryptography, it uses two distinct, yet related keys. One key, the Public Key, is used for encryption and the other, the Private Key, is for decryption. Let say Mahesh wants to send an encrypted message to Shalini, Mahesh will look for Shalini Public key and use it for encrypt the message before sending it. Then Shalini Can decrypt … Continue reading Asymmetric Cryptography (Public Key Cryptography) – Part I

# Basic of Cryptography (Type of Cryptography)- Part II

Cryptography categorized based on number of keys used for encryption and decryption; Below are list of cryptography catgories  Secret Key Cryptography – It is also call symmetric encryption where for both encryption and decryption uses same key. This is mainly used for confidentiality. Public Key Cryptography – It is also called asymmetric encryption; this algorithm uses two key’s one for encryption and one for decryption. … Continue reading Basic of Cryptography (Type of Cryptography)- Part II

# Caesar Cipher (Cracking Caesar Cipher with the Brute-Force Technique) – Part II

In Part I, I have written code to encrypt the plain text for demonstration purpose . In this article we will use Brute Force technique to decrypt the encrypted message. Note: please make sure to read articles Brute force and Caesar Cipher before this article. Here is C# Code snippet for the same Above code produce below  result, the above code took 17 iteration  to get the actual … Continue reading Caesar Cipher (Cracking Caesar Cipher with the Brute-Force Technique) – Part II

# Caesar Cipher Source Code – Part I

The Caesar cipher is one of the earliest known and simplest ciphers; Created and used in 44 BC by Julius Caesar. It is a type of substitution cipher in which each letter in the plain text is ‘shifted’ with certain number of places in the alphabet. For example, if we right shift the alphabets by 3 char then we get the below text;     … Continue reading Caesar Cipher Source Code – Part I

# Brute Force – Part I

Brute force is a straight forward strategy to solving a problem, it’s also called as ‘Exhaustive Search’ in which you try all possibilities to reach solution of a problem. In Brute force attack, attacker systematically checks all possible passwords and passphrases until the correct one is found. Alternatively, the attacker can attempt to guess the key, which is typically created from the password using a key … Continue reading Brute Force – Part I

# SHA-256(Source Code in C# using .Net in-built Cryptography library) – Part II

.Net Framework provides in built support for various hash functions like MD-5, SHA-1, SHA-256 etc…   ComputeHash method Computes the hash value to the specified byte array.   Below are the overloaded methods to Compute Hash using SHA-256 class in System.Security.Cryptography  library     Here is C# source code using .Net In-build library Continue reading SHA-256(Source Code in C# using .Net in-built Cryptography library) – Part II

# SHA-256(Source Code in C#) – Part I

SHA-256 (Secure Hash Algorithm), is one of the cryptographic hash function, commonly used in Blockchain. It generates an almost-unique 256-bit (32-byte) signature for a text.  SHA-256 is successor hash functions to SHA-1. it is one of the strongest hash functions available and has not yet been compromised in any way.   Here is source code written in C#. I will try to give more details in next … Continue reading SHA-256(Source Code in C#) – Part I

# What do you mean by Hashing?

Hashing is process of converting any size of data into fix size of data by performing mathematical operations. A message to be hashed is called input; the Algorithm is used to do so is called hash function; the output is called hash value.   There are many algorithm which used to generate hash value like MD5, SHA-1, SHA-256, Tiger etc.    Hash function generates a … Continue reading What do you mean by Hashing?

# Basic of Cryptography – Part I

Cryptograph means secret writing, in order to make information secret we use cipher, an algorithm that converts plain text to cipher-text. Cipher has been used long before computer existance. In 44 BC Julius Caesar uses the technique now called Caeser Cipher to send message. He used to shfit the letter by 3 character.  Another great example from history, Nazis Enigma Machine used during war to translate message. … Continue reading Basic of Cryptography – Part I