Blowfish Encryption Algorithm
Blowfish Encryption Algorithm
Algorithm
-----------------------------------------------------------------
3
Main point
Introduction
Structure
Cryptanalysis
Comparison
References
4
Introduction
designed in 1993 by Bruce Blowfish
64-bit block cipher with variable length key
Large key-dependent S-boxes
More resistant to cryptanalysis
Key-dependent permutations
Diverse Mathematical Operations
Combine XOR and addition
5
Continue
Fast
Compact It can run in less than 5K of memory.
Simple to code
Easily modifiable for different security levels
Secure: The key length is variable ,it can be in
the range of 32~448 bits: default 128 bits key
length.
Unpatented and royality-free.
6
Structure of BF
Feistel iterated block cipher
Scalable Key (32 to 448 bits)
Simple operation that are efficient on
microprocessors
XOR, Addition, Table lookup, etc
Arrays:
P – Number of rounds + 2 elements
4 S-boxes – 256 elements
Li = F ( Li −1 ⊕ Pi −1 ) ⊕ Ri −1
Ri = Li −1 ⊕ Pi −1
L17 = L16 ⊕ P18
R17 = R16 ⊕ P17
Wikipedia,
9 http://en.wikipedia.org/wiki/Image:BlowfishDiagram.png
(Implementation: Function F(x
Wikipedia,
http://upload.wikimedia.org/wikipedia/en
/8/81/BlowfishFFunction.png
10
Data Encryption
11
Cryptanalysis
Differential Attack
After 4 rounds a differential attack is no better than a brute
force attack
Weak Keys
S-box collisions
blowfish algorithm has yet to be cracked as the key size
is high, requires 2448 combinations
12
Future Concerns
Simplifications
Fewer and Smaller S-boxes
Fewer Iterations
On-the-fly subkey calculation
Twofish
AES Finalist
128-bit Block Size
More Operations
13
Comparison
14
References
Wikipedia (for illustrations)
http://en.wikipedia.org/wiki/Blowfish_cipher
Applied Cryptography
Bruce Schneier
John Wiley and Sons, Inc. 1996
15