Blowfish is a symmetric block cipher designed as a replacement for DES. It encrypts data in 64-bit blocks using a variable-length key. The algorithm uses substitution boxes and a complex key schedule to encrypt the data in multiple rounds. It is very fast, uses little memory, and is resistant to cryptanalysis due to its complex key schedule and substitution boxes.
Report
Share
Report
Share
1 of 14
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.
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.