A study of the blowfish encryption algorithm.

Item

Title
A study of the blowfish encryption algorithm.
Identifier
AAI9521269
identifier
9521269
Creator
Finch, Patricia J. M.
Contributor
Adviser: Michael Anshel
Date
1995
Language
English
Publisher
City University of New York.
Subject
Computer Science | Mathematics
Abstract
Bruce Schneier published his Blowfish Encryption algorithm in the April, 1994 issue of Dr. Dobb's Journal. I have done an analysis of the encryption portion of this algorithm and have obtained an implementation-independent form of it which can be used to model changes in overhead in either the Blowfish algorithm or in an implementation of it.;Blowfish is a new block-encryption algorithm. It takes as input a 64-bit block of plaintext and returns a 64-bit block of ciphertext. The algorithm is constructed as a Feistel network of 16 rounds. Within each round, the Blowfish function F is executed. The Blowfish function F takes as input a 32-bit string. This input string is broken up into four 8-bit strings. Each of these 8-bit strings is input to its own 8-in 32-out S-box. Additional manipulations of the data are performed and the single result is returned to the Feistel network.;Key generation is lengthy; however, if long messages are encrypted the overhead of the key generation diminishes rapidly. Once the keys have been generated, the performance of the entire encryption portion of Blowfish is heavily dependent on the performance of the Blowfish function F. For this reason, I concentrate on the Blowfish function F.;Blowfish is a heavily implementation-dependent algorithm. In order to gain a better understanding of Blowfish, I remove many of these dependencies. Among other tools, the methods of both parallel and sequential algorithms are used to determine work and time according to the dictates of each kind of analysis. For the parallel analysis, I use the perspective of the Work-Time framework.;As a result of the various analyses and removal of dependencies, I have come up with a general form or template for Blowfish. When this template is instantiated, changes to the Blowfish algorithm itself can be exactly measured whereas changes in the implementation of Blowfish are only substantially measured. Three examples are given in support of my template's ability to predict changes in both implementation and modification of the algorithm.
Type
dissertation
Source
PQT Legacy CUNY.xlsx
degree
Ph.D.
Item sets
CUNY Legacy ETDs