Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)

Description of a New Variable-Length Key, 64-Bit Block Cipher (Blowfish)

| Bruce Schneier
Blowfish is a new 64-bit block cipher with a variable-length key, designed by Bruce Schneier. It is a Feistel network that iterates a simple encryption function 16 times. The block size is 64 bits, and the key can be up to 448 bits long. Despite a complex initialization phase, Blowfish is efficient on large microprocessors. The paper discusses the need for a new encryption standard due to the vulnerabilities of DES and other algorithms. Blowfish is suitable for bulk encryption, random bit generation, packet encryption, and hashing. It is designed to be implementable on various platforms, including special hardware, large processors, medium-size processors, and small processors. Key requirements include simplicity, a flat keyspace, no weak keys, easy key management, and modularity for different security levels. The design decisions focus on large blocks, scalable keys, simple operations, and precomputable subkeys. The algorithm uses a large number of subkeys, which are precomputed and stored in cache for efficiency. The encryption process involves a 16-round Feistel network with key-dependent permutations and substitutions. The paper also discusses possible simplifications and concludes by encouraging cryptanalytic attacks and improvements. Blowfish is unpatented and placed in the public domain.Blowfish is a new 64-bit block cipher with a variable-length key, designed by Bruce Schneier. It is a Feistel network that iterates a simple encryption function 16 times. The block size is 64 bits, and the key can be up to 448 bits long. Despite a complex initialization phase, Blowfish is efficient on large microprocessors. The paper discusses the need for a new encryption standard due to the vulnerabilities of DES and other algorithms. Blowfish is suitable for bulk encryption, random bit generation, packet encryption, and hashing. It is designed to be implementable on various platforms, including special hardware, large processors, medium-size processors, and small processors. Key requirements include simplicity, a flat keyspace, no weak keys, easy key management, and modularity for different security levels. The design decisions focus on large blocks, scalable keys, simple operations, and precomputable subkeys. The algorithm uses a large number of subkeys, which are precomputed and stored in cache for efficiency. The encryption process involves a 16-round Feistel network with key-dependent permutations and substitutions. The paper also discusses possible simplifications and concludes by encouraging cryptanalytic attacks and improvements. Blowfish is unpatented and placed in the public domain.
Reach us at info@study.space
[slides and audio] Description of a New Variable-Length Key%2C 64-bit Block Cipher (Blowfish)