0% found this document useful (0 votes)
17 views20 pages

BlockCipherPresentation 6

Uploaded by

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

BlockCipherPresentation 6

Uploaded by

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

Block Ciphers and DES

Fundamentals, Structure, and Implementation


Agenda

INTRODUCTION FEISTEL DES SECURITY PRACTICAL


TO BLOCK NETWORKS ALGORITHM CONSIDERATION APPLICATIONS
CIPHERS S
Learning
Objectives

• Understand block cipher


basics
•Master Feistel concepts
• Comprehend DES components
•Analyze security aspects
•Implement basic operations
•Apply knowledge practically
Fixed-length
transformation

Block Key-dependent
Cipher operation

Fundament Reversible process


als
Building block of
encryption
Block
Cipher
Structure
Feistel Network Basics
A Feistel network is a symmetric structure used in the construction
of block ciphers. It is named after cryptographer Horst Feistel.

1. The input (the data to be encrypted or decrypted) is divided


into two equal-sized halves. Let's call them the left half and the
right half.
2. The core of the Feistel network is a function often called the
Feistel function. It takes two inputs: a data block (half of the
data) and a key (part of the encryption key) and produces an
output that is mixed with the other half of the data.
3. The Feistel network applies this function in multiple rounds. In
each round, the right half is passed through the Feistel function
along with a round-specific key, and the output is then XORed
with the left half.
Feistel Network Basics
4. The Feistel network applies this function in multiple rounds. In
each round, the right half is passed through the Feistel function
along with a round-specific key, and the output is then XORed
with the left half.
5. After the XOR operation, the two halves are swapped. The right
half becomes the new left half, and the XORed left half
becomes the new right half.
6. This process is repeated for several rounds. The number of
rounds can vary depending on the specific cipher's design.
More rounds generally mean more security, but they also take
more time.
7. After the final round, the two halves are combined to produce
the final encrypted data block. To decrypt, the same process is
applied in reverse, with the round keys used in the opposite
order.
DES Overview

Block Size: 64 bits Key Length: 56 bits

Structure: Feistel
Rounds: 16 Network
DES Round Structure
Round
Key
Expansio (48 bits)
Input S-box
n P-box Output
Block XOR (48?32
(32?48 (32 bits) (32 bits)
(32 bits) bits)
bits)

DES Round Function:


1. Expand 32-bit input to 48 bits
2. XOR with 48-bit round key
3. Pass through 8 S-boxes (6?4 bits each)
4. Apply P-box permutation
5. Produce 32-bit output
S-boxes Deep Dive
• S-box table structure • Step-by-step example
• Input/output mapping • Bit selection process
• Selection criteria • Output generation
6 bits ? 4 bits
Example: 101101 ? 1001
Key Schedule
Initial Key Schedule Process:
Key 1. Start with 64-bit key
2. Apply PC-1 (56 bits)
3. Split into C and D blocks
4. Perform circular shifts
PC-1
5. Apply PC-2 (48 bits)
6. Generate round key

Split

Rotation

PC-2
Triple DES

Single DES Double DES Triple DES

56-bit key 112-bit key 168-bit key

Security Level Comparison:


• Single DES: 2^56 possible keys
• Double DES: 2^112 theoretical (2^57 effective)
• Triple DES: 2^168 theoretical (2^112 effective)
Security Considerations
Attack Type Vulnerability Mitigation

Brute Force Key Search Increase Key Length

Differential Pattern Analysis Strong S-boxes

Linear Statistical Analysis Complex Round


Function
Implementation Example
def des_round(block, key): Key Points:
expanded = expand(block) • Input processing
mixed = xor(expanded, key) • Key mixing
substituted = sbox(mixed) • Substitution
return pbox(substituted) • Permutation
Practical Applications

Banking Secure Data Network


Systems Commun Storage Security
ications
Best Practices
Key Management

Implementation Security

Performance Optimization

Migration Strategies
Common Pitfalls

Implementation Errors Key Handling Mistakes

Security Assumptions Performance Issues


Future Considerations

Past Presen Future


t

DES Curren Quant


Develo t um
pment Usage Threat
s
Summary
Imple
mentat
ion
Securit
y

Block
Block Cipher
Ciphers s

DES
Feistel
Networ
ks
Resources

Academic Papers Online Tools

Reference
Practice Problems
Implementations

You might also like