Blowfish Encryption
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
Employ Precomputable Subkeys
Variable number of iterations
7
8
Implementation: Encryption
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
F ( X 31−0 ) = ( ( S1[ X 31− 24 ] + S 2[ X 23−16 ] ) ⊕ S 3[ X 15−8 ] )
+ S 4[ X 7 −0 ]
Addition is mod 232
Wikipedia,
http://upload.wikimedia.org/wikipedia/en
/8/81/BlowfishFFunction.png
10
Data Encryption
• Divide 64-bits into two 32-bit halves: XL, XR
• For i = 1 to 16
o XL = XL XOR Pi
o XR=F(XL) XOR XR
o Swap XL and XR
• Swap XL and XR (Undo the last swap )
• XR=XR XOR P17
• XL = XL XOR P18
• Concatenate XL and XR
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
The Blowfish Paper
http://www.schneier.com/paper-blowfish-fse.html
15