A cylindrical coordinate system with dynamic permutation table for blowfish algorithm - Al-Abiachi, Ashwak M.; Mahmod, Ramlan; Ahmad, Faudziah (Medwell Journal, 2014)
The Blowfish Algorithm (BA) is a symmetric block cipher that iterates simple encryption and decryption functions by using Feistel networks.BA keys vary from 32-448 bits to ensure a high level of security.However, the BA requires a high memory percentage and it has a problem regarding randomness of output with text and image files having large strings of identical bytes.One solution to the seissues is to design a new Cryptography algorithm based on the BA that incorporates an F-function into a Cylindrical Coordinate System (CCS).The resulting F-function is known as a CCS with a Dynamic Permutation Table (DPT) or CCSDPT whereas the new algorithm is called the New BA (NBA).The objectives of the CCSDPT are to reduce memory requirements, enhance the randomness of the output and increase resistance to attacks through byte relocation and transformation in the right cylinder.NBA is evaluated by investigates the output of the algorithm by using statistical tests from the National Institute of Standard and Technology (NIST) with five types of data and compared with the BA.The findings of the NIST tests show that the NBA is suitable for any data stream, even those with long strings of identical bytes. The combination of a DPT with a dynamic 3D S-box strengthens the resistance of the NBA against attacks and increases the randomness of the output.C++ is used in the implementation of both algorithms.The NIST tests are implemented under Linux.