Design and Implementation of an Improvement Of Blowfish Encryption Algorithm

Block cipher is a major part of cipher algorithm like stream cipher and other techniques. Its power comes from dealing with plaintext as parts and operating on each block independently. Blowfish is a secret-key block cipher proposed by B. Shneier. It is a Feistel network, iterating a simple encryption function 16 times. The block size is 8-bytes and the key can be any length up to 56-bytes. In this paper, a Blowfish was improved to encrypt 16-bytes using a variable key length from 8-bytes up to 144-bytes. During the design of Improved Blowfish algorithm, the pragmatic aim was to satisfy as many goals as possible while keeping the cipher simple. Only by keeping a cipher simple one can achieve a well-understood level of security, good performance, and a versatility of design that makes the cipher highly adaptable to future demands. The improved algorithm reduced the memory requirement by using a single S-box instead of four S-boxes without compromising security. The security of improved Blowfish algorithm will be increased by several techniques where the block size and key length were increased, using more complex function before the first round and after the last round and using a complex function to avoid a symmetric to the output of S-box.