- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Block Cipher Design Principles

Block Cipher is an encryption algorithm that works with a symmetric key in a deterministic way. The plain text is divided into several blocks of equal size. If the length of the plain text does not allow block division of equal size, padding is done over the plain text. His type of encryption method can encrypt on blocks of 128 bits, the key can be 128, 192, or 256 bits. In block ciphers, the length of the plain text is equal to the length of the cipher text.

This type of encryption process considered each block at a time and gives an output of n bits for an input of n bits. But if there are two identical blocks, the process will produce two different cipher texts for them. It is a reversible function having a public and a private key, which makes its computation easy and also a deterministic process.

## Operation

There are 5 modes of operation of block cipher so that algorithm can be improved and a wider range of applications can be achieved. The modes are as follows −

**Electronic Code Book Mode**− in this type of operation, the plain text is divided into multiple blocks of 64 bits each. Each of the blocks separately goes through encryption with the help of the same key. After encryption, the blocks of cipher text are sent to the receiver which goes through a decryption process to decode the plain text. These blocks are decrypted separately with the help of the same key for all the blocks. In the encryption process, since the same key was used, it always produces the same result for a single character. That is, if there are two identical blocks, the process will not produce two different cipher texts for them. Hence, ECB is preferred for small plain texts with fewer or no repetitive characters.**Cipher Block Chaining Mode**− to overcome the problem of repetitive texts in ECB, CBC was developed which produces new cipher texts every time for identical blocks. To establish this, a method of chaining is done here. While encryption of a block, along with the key the encryption result of the previous block is also fed to the current encryption. Hence, the current encryption box is not only dependent on the current plain text but also on the result of the former block. In the case of the first block operation, there is no previous block result to be added to a random text block that is generated called Initialization Vector and it is given as input to the first block encryption.**Cipher Feedback Mode**− in the case of encryption where there are no blocks of data, that is, the plain text is composed of characters or bits, and cipher feedback mode is applied. In this type of encryption, the encrypted results of one bit are fed to the next bit encryption due to which there are chances of error propagation as errors from the bit are again passed to the next bit.**Output Feedback Mode**− this type of encryption also concerns bits and characters but unlike CFB it does not consider each bit at a time, rather a block of bits is considered at each encryption step. Also, the bit rate propagation is removed over here as the results of previous blocks are not added to the next block, instead, a feedback mechanism is used.**Counter Mode**− it works similarly to OFB but the use of feedback from previous blocks is removed over here instead a number series called counter, is added to each encryption step. After each step, the counter is increased by 1 so that the same counter is not fed to all the blocks and the same cipher for identical blocks is not created.

## Principles

In block cipher, several points are to be managed to define the level of complexity of the algorithm. The factors are as follows −

**The number of encryption rounds**− the number of encryption rounds that the plain text will go through explains the decoding difficulty and hence establishes security. For example, the DES block cipher mechanism goes through 16 rounds while AES goes through 10 rounds. Hence, comparatively, DES is more secure than AES. But the excessive increase in the rounds can also affect slowing the algorithm, hence a perfect trade-off between the speed and the security must be maintained while determining the number of rounds.**Function’s designing**− in the designing of the Feistal block cipher, the construction of the round function greatly affects the complexity of the algorithm. The function designed should be non-linear to increase the strength of the function. It should also be created in a way that no other function can substitute it and can make the same output. With the increase in complexity, the security level also increases, for this the avalanche effect is also integrated such that for a minimal change in the input block there occurs a noticeable change in the cipher text.**Key scheduling algorithm**− the generation of the keys for each of the rounds is defined by this algorithm. For example, in DES the key of the original length of 56bit is divided into two halves of 28 bit each.

## Conclusion

Hence, the working process of a block cipher is faster than other encryption methods as it considered a block of data at a time, and also since the block size is the same, the time or strength does not vary with each block. The security and complexity can be altered according to the need of the project with the help of the design principles explained above.