Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Information and Network Security:28
Blowfish
Prof Neeraj Bhargava
Vaibhav Khanna
Department of Computer Science
School of Engineering and Systems Sciences
Maharshi Dayanand Saraswati University Ajmer
Blowfish
• a symmetric block cipher designed by Bruce Schneier in 1993/94
• characteristics
• fast implementation on 32-bit CPUs, 18 clock cycles per byte
• compact in use of memory, less than 5KB
• simple structure for analysis/implementation
• variable security by varying key size
• Allows tuning for speed/security tradeoff
• Blowfish is an algorithm which was developed by Bruce Schneier in 1993 to
replace DES.
• This symmetric cipher splits messages into blocks of 64 bits and encrypts
them individually.
• And later it was named as Blowfish Encryption Algorithm.
• Blowfish can be found in several software categories ranging from e-
commerce platforms for securing payments to password management
tools, where it is used to protect passwords.
• It is definitely one of the most flexible encryption methods available.
• It is known in the market for its tremendous speed and overall
effectiveness as it has never been defeated in the market.
Structure Of The Blowfish Encryption Algorithm
• A blowfish encryption algorithm is a symmetric block cipher as the same
key is used for both encryption and decryption.
• The key has to be kept a secret except for the sender and the receiver. This
image shows a high-level example of the process of symmetric encryption.
• A block cipher is basically a computer routine that takes any amount of
plain text and converts it into coded text, or cipher-text.
• It performs this routine in chunks of texts called blocks.
• And in order for the text to be decoded on the other side of the
transmission, the function must also generate a key to unlock the cipher-
text.
Blowfish Key Schedule
• uses a 32 to 448 bit key
• used to generate
• 18 32-bit subkeys stored in P-array: P1 to P18
• S-boxes stored in Si,j,
• i=1..4
• j=0..255
Information and network security 28 blowfish
Blowfish Encryption
• uses two primitives: addition & XOR
• data is divided into two 32-bit halves L0 & R0
for i = 1 to 16 do
Ri = Li-1 XOR Pi;
Li = F[Ri] XOR Ri-1;
L17 = R16 XOR P18;
R17 = L16 XOR i17;
• where
F[a,b,c,d] = ((S1,a + S2,b) XOR S3,c) + S4,a
Break 32-bit Ri into (a,b,c,d)
How Does Blowfish Algorithm Work?
• Blowfish uses a unique form of key generation.
• The second part of the Blowfish routine is a key expansion that
converts a single key of up to 448 bits into a table of subkeys i.e. 4168
bytes in size.
• The creation of subkeys further increases security, because a hacker
would have to crack more than just the original key.
How Does Blowfish Algorithm Work?
How Does Blowfish Algorithm Work?
• 32 bits enter the algorithm.
• They’re split into four 8-bit boxes, transformed/encrypted, then put back
together. Blowfish runs through this routine sixteen times.
• It is, therefore, an incredibly fast cipher that has a relatively simpler
structure and is very effective.
• Blowfish generates a really large key and this itself is a huge benefit to
security.
• With the increase in the speed of computer processing, Blowfish is able to
create a much longer key.
• And due to this it is much more difficult to try to hack the key value.
Information and network security 28 blowfish
Discussion
• provided key is large enough, brute-force key search is not practical,
especially given the high key schedule cost
• key dependent S-boxes and subkeys make analysis very difficult
• Very few cryptoanalysis results on blowfish
• changing both halves in each round increases security
• Some study shows improved avalanche effects
The Practical Example of Blowfish Algorithm
• Let’s say an embedded system wants to establish a secure data
exchange session with a laptop, perhaps over a wireless medium.
• At the start of the session, both the embedded system and the laptop
compute a private Blowfish key and public and private RSA keys.
• The embedded system and laptop exchange the public RSA keys and
use them to encrypt and exchange their private Blowfish keys.
• The two machines then encrypt the remainder of their Blowfish
communications using Blowfish.
• When the communications session is over, all the keys are discarded.
Assignment
• Explain the Structure Of The Blowfish Encryption Algorithm
• How Does Blowfish Algorithm Work.

More Related Content

Information and network security 28 blowfish

  • 1. Information and Network Security:28 Blowfish Prof Neeraj Bhargava Vaibhav Khanna Department of Computer Science School of Engineering and Systems Sciences Maharshi Dayanand Saraswati University Ajmer
  • 2. Blowfish • a symmetric block cipher designed by Bruce Schneier in 1993/94 • characteristics • fast implementation on 32-bit CPUs, 18 clock cycles per byte • compact in use of memory, less than 5KB • simple structure for analysis/implementation • variable security by varying key size • Allows tuning for speed/security tradeoff
  • 3. • Blowfish is an algorithm which was developed by Bruce Schneier in 1993 to replace DES. • This symmetric cipher splits messages into blocks of 64 bits and encrypts them individually. • And later it was named as Blowfish Encryption Algorithm. • Blowfish can be found in several software categories ranging from e- commerce platforms for securing payments to password management tools, where it is used to protect passwords. • It is definitely one of the most flexible encryption methods available. • It is known in the market for its tremendous speed and overall effectiveness as it has never been defeated in the market.
  • 4. Structure Of The Blowfish Encryption Algorithm • A blowfish encryption algorithm is a symmetric block cipher as the same key is used for both encryption and decryption. • The key has to be kept a secret except for the sender and the receiver. This image shows a high-level example of the process of symmetric encryption. • A block cipher is basically a computer routine that takes any amount of plain text and converts it into coded text, or cipher-text. • It performs this routine in chunks of texts called blocks. • And in order for the text to be decoded on the other side of the transmission, the function must also generate a key to unlock the cipher- text.
  • 5. Blowfish Key Schedule • uses a 32 to 448 bit key • used to generate • 18 32-bit subkeys stored in P-array: P1 to P18 • S-boxes stored in Si,j, • i=1..4 • j=0..255
  • 7. Blowfish Encryption • uses two primitives: addition & XOR • data is divided into two 32-bit halves L0 & R0 for i = 1 to 16 do Ri = Li-1 XOR Pi; Li = F[Ri] XOR Ri-1; L17 = R16 XOR P18; R17 = L16 XOR i17; • where F[a,b,c,d] = ((S1,a + S2,b) XOR S3,c) + S4,a Break 32-bit Ri into (a,b,c,d)
  • 8. How Does Blowfish Algorithm Work? • Blowfish uses a unique form of key generation. • The second part of the Blowfish routine is a key expansion that converts a single key of up to 448 bits into a table of subkeys i.e. 4168 bytes in size. • The creation of subkeys further increases security, because a hacker would have to crack more than just the original key.
  • 9. How Does Blowfish Algorithm Work?
  • 10. How Does Blowfish Algorithm Work? • 32 bits enter the algorithm. • They’re split into four 8-bit boxes, transformed/encrypted, then put back together. Blowfish runs through this routine sixteen times. • It is, therefore, an incredibly fast cipher that has a relatively simpler structure and is very effective. • Blowfish generates a really large key and this itself is a huge benefit to security. • With the increase in the speed of computer processing, Blowfish is able to create a much longer key. • And due to this it is much more difficult to try to hack the key value.
  • 12. Discussion • provided key is large enough, brute-force key search is not practical, especially given the high key schedule cost • key dependent S-boxes and subkeys make analysis very difficult • Very few cryptoanalysis results on blowfish • changing both halves in each round increases security • Some study shows improved avalanche effects
  • 13. The Practical Example of Blowfish Algorithm • Let’s say an embedded system wants to establish a secure data exchange session with a laptop, perhaps over a wireless medium. • At the start of the session, both the embedded system and the laptop compute a private Blowfish key and public and private RSA keys. • The embedded system and laptop exchange the public RSA keys and use them to encrypt and exchange their private Blowfish keys. • The two machines then encrypt the remainder of their Blowfish communications using Blowfish. • When the communications session is over, all the keys are discarded.
  • 14. Assignment • Explain the Structure Of The Blowfish Encryption Algorithm • How Does Blowfish Algorithm Work.