Cys535 Lecture03
Cys535 Lecture03
• 56-bit permutation
• K+ =1111 0000 1100 1100 1010 1010 1111 0101
0101 0110 0110 0111 1000 1111
Example
1)Process the key.
B2 = 010001
S2(B2) = 1100
Example
2) Process a 64-bit data block.
f=
0010 0011 0100 1010 1010 1001 1011 1011
Example
2) Process a 64-bit data block.
R1 = L0 + f(R0 , K1 )
R1 =
1100 1100 0000 0000 1100 1100 1111 1111+
0010 0011 0100 1010 1010 1001 1011 1011
= 1110 1111 0100 1010 0110 0101 0100 0100
3.3 Strength of DES
Strength of DES – Key Size
• 56-bit keys have 256 = 7.2 x 1016 values
• brute force search looks hard
• recent advances have shown is possible
▫ in 1997 on Internet in a few months
▫ in 1998 on dedicated hardware (EFF) in a few days
▫ in 1999 above combined in 22hrs!
• still must be able to recognize plaintext
• now considering alternatives to DES
Strength of DES – Timing Attacks
• attacks actual implementation of cipher
• use knowledge of consequences of
implementation to derive knowledge of some/all
subkey bits
• specifically use fact that calculations can take
varying times depending on the value of the
inputs to it
Strength of DES – Analytic Attacks
• now have several analytic attacks on DES
• these utilise some deep structure of the cipher
▫ by gathering information about encryptions
▫ can eventually recover some/all of the sub-key bits
▫ if necessary then exhaustively search for the rest
• generally these are statistical attacks
• include
▫ differential cryptanalysis
▫ linear cryptanalysis
▫ related key attacks
Cipher Block Chaining (CBC)
Cipher Block Chaining (CBC)
• message is broken into blocks
• but these are linked together in the encryption
operation
• each previous cipher blocks is chained with current
plaintext block, hence name
• use Initial Vector (IV) to start process
Ci = DESK1(Pi XOR Ci-1)
C-1 = IV
• uses: bulk data encryption, authentication
Cipher Block Chaining (CBC)
Cipher FeedBack (CFB)
Cipher FeedBack (CFB)
• message is treated as a stream of bits
• added to the output of the block cipher
• result is feed back for next stage (hence name)
• standard allows any number of bit (1,8 or 64 or
whatever) to be feed back
▫ denoted CFB-1, CFB-8, CFB-64 etc
• is most efficient to use all 64 bits (CFB-64)
Ci = Pi XOR DESK1(Ci-1)
C-1 = IV
• uses: stream data encryption, authentication
Cipher FeedBack (CFB)
Output FeedBack (OFB)
Output FeedBack (OFB)
• message is treated as a stream of bits
• output of cipher is added to message
• output is then feed back (hence name)
• feedback is independent of message
• can be computed in advance
Ci = Pi XOR Oi
Oi = DESK1(Oi-1)
O-1 = IV
• uses: stream encryption over noisy channels
Output FeedBack (OFB)
Counter (CTR)
Counter (CTR)
• a “new” mode, though proposed early on
• encrypts counter value rather than any feedback
value
• must have a different key & counter value for every
plaintext block (never reused)
Ci = Pi XOR Oi
Oi = DESK1(i)
• uses: high-speed network encryptions
Counter (CTR)
End.