Saturday, October 19, 2019

Blowfish Algorithm Advantages and Disadvantages

Blowfish Algorithm Advantages and Disadvantages Blowfish is a keyed (piece of information that determines the functional output of a cryptographic algorithm or cipher), symmetric cryptographic block cipher. It was designed by Bruce Schneier in 1993. Since then it has been analyzed considerably, and it is slowly gaining acceptance as a strong encryption algorithm. Blowfish is license-free and is available free for all uses. It is also a symmetric block cipher that can be used as a drop-in replacement for DES or IDEA. It takes a variable-length key, from 32 bits to 448 bits, making it ideal for both domestic and exportable use. Blowfish is also one of the fastest block ciphers in public use, making it ideal for a product that functions on a wide variety of processors found in mobile phones as well as in notebook and desktop computers. The first implementation of the Blowfish Algorithm in LabVIEW. With this set of subvi’s one can encrypt data in LabVIEW without the need of external software. This can be used to send data secu rely over Data socket as well as TCP and UDP communications along with protect remote control systems from unauthorized access, by encrypting the control communications. .( B. Schneier, Applied Cryptography, John Wiley & Sons, New York, 1994.) 3.2 Strategies and Mechanisms Blowfish has a 64-bit block size and a key length of somewhere from 32 bits to 448 bits. The algorithm consists of two parts. One is a key-expansion part and one more is a data- encryption part. Key expansion converts a key of at most 448 bits into several subkey arrays totaling 4168 bytes. It is a 16-round Feistel cipher and uses large key-dependent S-boxes (basic component of symmetric key algorithms which performs substitution). Each round consists of a keydependent permutation, and a keydependent substitution. It is also similar in structure to CAST-128, which uses fixed S-boxes. Blowfish is suitable for application where the key does not change frequently, like a communication link or an automatic file encryp tor. It is significantly faster than most encryption algorithm when on 32-bit microprocessor with large data caches. (Fast Software Encryption, Cambridge Security Workshop Proceedings December 1993) 3.3 The Feistel structure of Blowfish A Fiestel network is a general method of transforming any function (generally called F- function) into a permutation. It was inented by Horst Fiestel and has been used in many block chiper designed. The diagram below shows the action of Blowfish. Each line represents 32 bits. The algorithm keeps two subkey arrays: the 18-entry P-array and four 256-entry S-boxes. The S-boxes accept 8-bit input and produce 32-bit output. One entry of the P-array is used every round, and after the final round, each half of the data block is XORed with one of the two remaining unused P-entries. The diagram to the right shows Blowfish’s F-function. The function splits the 32-bit input into four eight-bit quarters, and uses the quarters as input to the S-boxes. The outputs are added modulo 232 and XORed to produce the final 32-bit output. Since Blowfish is a Feistel network, it can be inverted simply by XO7Ring P17 and P18 to the cipher text block, then using the P-entries in reverse order. Blowfish’s algorithm initialize with the P-array and S-boxes. The secret key is then XORed with the P-entries in order and then use the same method to encrypt all the zero string. The consequential ciphertext replaces P1 and P2 then encrypt the new P1 and P2 with the modified subkeys. Now the output is P3 and P4. Altogether Blowfish algorithm will repeat 521 times in order to calculate new subkeys for the P-array and the four S-boxes. It is about 4KB data is processed.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.