The Blowfish Block Cipher System

Abstract:

The Blowfish is one of block cipher systems. It was developed as a better substitute for the Triple-DES system. Blowfish has following features:

  • a. an input key length is a variable from minimum 32-bit up to maximum 448-bit;
  • large subkey tables to make a brute-force attack harder by using hexadecimal string of π value to initialize the 32-bit subkey set (P-array[18] and Sboxes[4][256]); and
  • one block encryption algorithm is used using fixed-sized all-zero strings in the subkey generation phase to make key-dependent subkeys.

Overall, the Blowfish has many common features with other block ciphers as following, thus I could reuse many methods/classes from the cryptoUtil.

  • large S-boxes data structure for lookup;
  • combined operations, .e.g. XOR mod 2^32; and
  • multiple rounds of Feistel iteration by swapping left and right half of a block

Sentiment Analysis Using Machine Learning and Deep Learning