A New Approach to Enhance the Security and Performance of Blowfish Algorithm 1,2 Ashwak Mahmood ALabaichi , 3 Ramlan Mahmood, 4 Faudziah Ahmad 5,6 Mohammed S. Mechee Information Technology Department- University Utara Malaysia-06010, Sintok, Malaysia 2 Department of computer science-Faculty of Sciences -University of Kerbala- Iraq 3 Faculty of Computer Science and Information Technology- University Putra Malaysia, Serdang, Selangor, Malaysia 4 Information Technology Department- University Utara Malaysia-06010, Sintok, Malaysia 5 and Information Technology Institute of Mathematical Sciences-university of Malaya-Kuala LumpurMalaysia 6 University Putra Malaysia Department of Mathematics-Faculty of Mathematics and Computer Sciencesuniversity of Kufa- Najaf- Iraq 1 Ashwakalabaichi2007@yahoo.com, 3ramlan@fsktm.upm.edu.my,4fudz@uum.edu.my, 5mohsabd@yahoo.com 1 Abstract Blowfish is a secret-key block cipher proposed by B. Shneier. It is a Feistel network which can iterate a simple encryption function 16 times. The block size is 8bytes and the key can be of any length up to 56-bytes. Blowfish algorithm must dynamically compute all sub-keys and S-boxes before the start of encryption; there is a slight overhead in the computation. This computational overhead of sub-keys and S-box creation results in roughly the equivalence of encrypting an additional four kilobytes of data per data file. Its large memory requirement makes it infeasible for smart card applications. Blowfish also suffers from the defect of the weak key problem. It means that there exists a collision of an S-box. That is, for the keydependant S-box of Blowfish (S1), there exists two different bytes of 'a' and 'a0' such that S1(a) = S1(a0 ). In this paper a 64- bit block cipher called blowfish dynamic S-box and a dynamic permutation table encryption algorithm using a variable key length up to 56 bytes are proposed. It is a Feistel network, iterating a simple encryption function 16 times and it is inspired from 64-bits Blowfish designed to satisfy many goals such as reducing requirements of memory as well as improving the security. The security of blowfish dynamic S-box and the dynamic permutation table encryption algorithm (BDSDP) increased by several techniques such as the relocation of bytes-based secret keys, transformation of the cylinder in three different cases, permutation table -based secret keys and the application of one of block cipher modes(CBC). In BDSDP, Algorithm avoids a symmetric from the output of S-box by a specified approach. The memory requirement is reduced by using the idea of cylinder as a single 3D S-box. The size of 3D S-box is 256 bytes instead of four S-boxes the size of each is 1024 bytes without compromising security. The Cryptographic strength in the context of this paper is related to the ability of the algorithm to produce a random output. The experimental results on five data categories show that BDSDP is better from blowfish algorithm and compatible for any files type without restrictions on files contents. Keywords: block cipher, Blowfish algorithm, dynamic S-box, cylinder, F-function; relocate byte, transformation, dynamic permutation table, randomness test 1 4 mo