Before getting started with Block Cipher, digital computer communications based on bits, where 1 byte equals 8 bits. For instance, the word cryptoquantus consist of 13 characters (byte), so it equals to 8×13 = 104 bits .

ASCII (American Standard Code for Information Interchange) is an encoding representing each typed character by a number, where each number is stored in one byte {0..255}. Unicode is an alternative encoding for Mandarin, Greek, Arabic, etc. languages, typically 2-bytes per character. Hence, ASCII encoding represents, C-67, R-82, Y-89, P-80, T-84, O-79, Space-32 etc.

Block Cipher

Block Cipher function maps, n bits to n bits, where there are (2^n) possible block options. It’s also reversible function such as, Dec(key,(Enc(key, X)))=X, for all X (Plaintext). Ideal block cipher supports the maximum number of encryption mappings, where (2^n)! possible transformations or keys.

Feistel Cipher (Lucifer)

He was a German-born cryptographer who worked on the design of ciphers at IBM. He wanted an approximation of ideal block cipher, built out of components that are easily realizable and contributed to DES.

Feistel Cipher (Lucifer) is simply a Product Cipher that consist of a network for symmetric block ciphers.

F => stands for substitution

Right and Left intersection represents permutation (swap).

L_i: The left half of data after round i.

R_i: The right half of data after round i.

K_i: The sub-key for round i.

The i-th Round: L_i = R_i-1

R_i = L_(i-1) + F(R_(i-1), K_i)

There is no need for F to be reversible since decryption also uses F.

DES (Data Encryption Standard)

It’s the most widely used block cipher based on Feistel Cipher.

NBS (NIST) issued request for proposal for national cipher standard, In 1973 and adopted and published as DES, in 1977, developed by IBM (Feistel) and NSA.

Today, it’s considered as broken but there are still exist some applications.

DES Parameters

Block size: 64 bits, Key size: 56 bits, # of rounds: 16 rounds, Round function (F): maps 32bits to 32bits, Sub-key generation (K_i): maps 56 bits to 16*48 bits.

F (Round Function): (R_i) = 32 bits, (K_i) = 48 bits

Sub-Key Generation (K_i)

Here, PC’s stand for permuted choice, PC1(64 bits) to 56 bits, PC2(56 bits) to 48 bits.

DES Reliability

Due to Avalanche Effect, when an input is changed slightly, the output changes significantly e.g. flipping a single bit results half of the output bits flip.

DES & Brute Force Attack

For n-bits key, attacker efforts O[2^(n-1)] (where O notation describes the limiting behavior of a function when the argument tends towards a particular value or infinity) and requires to recognize the correct plaintext.

Trials on Brute Force Attacks:

In 1997: a few months In 1998: a few days
In 1999: 22 hours Today: ≈ 362 seconds

Hence, it’s said to be vulnerable against brute force attack.

O.S. Tapsin