0% found this document useful (0 votes)
136 views13 pages

Blowfish Encryption Algorithm

The document discusses the Blowfish encryption algorithm. It describes Blowfish as a block cipher with a variable-length key, designed in 1993 by Bruce Schneier. The algorithm uses large key-dependent S-boxes and diverse mathematical operations like XOR and addition to encrypt 64-bit blocks of data. It is also designed to be fast, compact and simple to implement on microprocessors.

Uploaded by

durai murugan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views13 pages

Blowfish Encryption Algorithm

The document discusses the Blowfish encryption algorithm. It describes Blowfish as a block cipher with a variable-length key, designed in 1993 by Bruce Schneier. The algorithm uses large key-dependent S-boxes and diverse mathematical operations like XOR and addition to encrypt 64-bit blocks of data. It is also designed to be fast, compact and simple to implement on microprocessors.

Uploaded by

durai murugan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

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

You might also like