[slides] block cipher modes of operation and cmac for authentication

32
Block Cipher Modes of Block Cipher Modes of Operation Alberto Grand Politecnico di Torino Computer Systems Security – prof. Antonio Lioy

Upload: project-symphony-collection

Post on 12-Nov-2014

1.192 views

Category:

Documents


1 download

DESCRIPTION

These are the slides used for presenting the Block Cipher Modes of Operation and CMAC for Authentication document by Alberto Grand.

TRANSCRIPT

Page 1: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Block Cipher Modes of Block Cipher Modes of Operation

Alberto Grand

Politecnico di TorinoComputer Systems Security – prof. Antonio Lioy

Page 2: [slides] Block Cipher Modes of Operation and CMAC for Authentication

What are modes of operation?

� Block ciphers only allow to encrypt entire blocks.� Block ciphers only allow to encrypt entire blocks.

� What if our message is longer/shorter than the block size?

We use modes of operation!

� Algorithms that exploit a block cipher to provide a service (e.g. confidentiality, authentication)

5 NIST-recommended modes providing confidentiality: � 5 NIST-recommended modes providing confidentiality: ECB, CBC, CFB, OFB, CTR

� CMAC may be considered a block cipher mode of operation providing authentication.

2

Page 3: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Electronic Codebook (ECB)

� Associates each possible plaintext block to a ciphertext block, like a codebook.ciphertext block, like a codebook.

Hello world! aY1\:?§h24(r

� Requires padding

� Encryption/decryption of multiple blocks in parallel

� A 1-bit error in a ciphertext block garbles the corresponding decrypted block.

3

Page 4: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Deficiencies of ECB

� Problems when the original message contains regular � Problems when the original message contains regular data patterns, because always encrypted in the same way.

� Only suitable for 1-block-sized data (e.g. a key)

� “The securest thing you can do with ECB is not use it!”

4

Page 5: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Cipher Block Chaining (CBC)

� Allows the same plaintext blocks to be encrypted to � Allows the same plaintext blocks to be encrypted to different ciphertext blocks.

� Encrypted blocks are “chained” through XORing.

� Requires an initialisation vector (IV)

Hello

IV

world q%1aX l’3z1$

IV

CIPHER

q%1aX

CIPHER

l’3z1$

CIPHER-1 CIPHER-1

IV

Hello world5

Page 6: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Features of CBC

� No parallel encrypting , while parallel decrypting is � No parallel encrypting , while parallel decrypting is possible.

� A 1-bit error affects two blocks:

� the corresponding block is garbled

� the corresponding bit is flipped in the next block

� Problem with the IV: 1-bit error only flips 1 bit in the 1st block, no garbled block. Hard to detect!the 1st block, no garbled block. Hard to detect!

� Solutions:

� encipher the IV

� don’t transmit the IV, but compute it from a known value

� use authentication!

6

Page 7: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Propagating CBC (PCBC)

� It’s a variation of CBC designed to propagate errors.� It’s a variation of CBC designed to propagate errors.

� It also involves the previous plaintext block in the XOR operation.

� Is error propagation desirable? It depends!

� NO if transmission errors

� YES if intentional, malicious changes

Used in Kerberos v.4, but abandoned starting from � Used in Kerberos v.4, but abandoned starting from v.5 because inversion of two adjacent blocks does not affect subsequent blocks.

7

Page 8: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Cipher Feedback (CFB)

� Turns a block cipher into a stream cipher, message � Turns a block cipher into a stream cipher, message size need not be multiple of block size.

� Very similar to CBC (ciphering and XORing are swapped).

IV

CIPHER CIPHER CIPHER

IV

CIPHER

Hello

CIPHER

q%1aX

world

CIPHER

l’3z1$

q%1aX l’3z1$

Hello world

CIPHERCIPHER

8

Page 9: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Features of CFB

� No parallel encrypting of multiple blocks – although � No parallel encrypting of multiple blocks – although some form of pipelining is possible.

� Parallel decryption is possible

� Only the forward function is used.

� A 1-bit error :

� flips corresponding bit in current segment

may garble the next ⌈b/s⌉ segments� may garble the next ⌈b/s⌉ segments

� This is highly noticeable, so CFB is less exposed to the risk of deliberate bit changes.

9

Page 10: [slides] Block Cipher Modes of Operation and CMAC for Authentication

OpenPGP with CFB

� Widespread standard for exchanging encrypted e-� Widespread standard for exchanging encrypted e-mail messages.

� A variant of CFB is used for symmetric cryptography:

� a random block R is enciphered and used as an IV

� the first 2 bytes of R are replicated in the 2nd block for integrity checksintegrity checks

� Leak of information! About 215 set-up attempts + about 215 attempts per block enable an attacker to discover the first 2 bytes of any block.

� PGP stands for “Pretty Good Privacy”!

10

Page 11: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Output Feedback (OFB)

� Turns a block cipher into a stream cipher.� Turns a block cipher into a stream cipher.

� It features the iteration of the forward cipher on an IV.

IV

CIPHER CIPHER CIPHER

IV

CIPHER

Hello

CIPHER

q%1aX

world

CIPHER

l’3z1$

q%1aX l’3z1$

Hello world

CIPHERCIPHER

11

Page 12: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Features of OFB (i)

� Neither encryption nor decryption can be performed in parallel due to block chaining.

� If IV available prior to ciphertext, keystream blocks can be pre-computed.

� IV needs to be a nonce, otherwise know-plaintext attack is possible (under same key):attack is possible (under same key):

� an attacker who knows the ith plaintext block can easily reconstruct the ith keystream block

� he can then understand the ith block of every message

12

Page 13: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Features of OFB (ii)

� A 1-bit error in a ciphertext block only produces a bit-specific error in the corresponding block:

� good for error correcting codes, which work even when applied before encryption

� bad because it’s hardly noticeable!

� A 1-bit error in the IV causes all blocks to be � A 1-bit error in the IV causes all blocks to be garbled.

13

Page 14: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Counter (CTR)

� Turns a block cipher into a stream cipher.� Turns a block cipher into a stream cipher.

� Keystreams blocks are generated by encrypting a set of counter blocks.

CTR block #1

CIPHER CIPHER CIPHERCIPHER

CTR block #2 CTR block #1 CTR block #2

Hello

CIPHER

q%1aX

world

CIPHER

l’3z1$

q%1aX l’3z1$

Hello world

CIPHERCIPHER

14

Page 15: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Features of CTR (i)

� Both encryption and decryption can be performed � Both encryption and decryption can be performed fully in parallel on multiple blocks.

� Provides true random access to ciphertext blocks.

� If the initial counter block is available, keystream blocks may be computed prior to receiving the ciphertext .

It’s simple!� It’s simple!

� No inverse cipher function is required for decryption.

� It is becoming increasingly used.

15

Page 16: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Features of CTR (ii)

� Assurance is required that:� Assurance is required that:

� counters do not repeat within a single message

� counters do not repeat across all messages under a given key

� Done through an incrementing function.

� Usually, first b-m bits are a message nonce, following m bits are incremented (message length < following m bits are incremented (message length < 2m blocks).

� Alternatively, counters are concatenated (total length of all messages < 2m blocks)

16

Page 17: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Padding: pros and cons

� Increases amount of data to be sent with no � Increases amount of data to be sent with no increase of transmitted information.

� With regular data pattern, padding with random values makes cryptanalysis more difficult.

� When padding scheme in known, it may expose exchange of messages to timing attacks.

OpenSSL prior to v.0.9.6c with CBC-MAC� OpenSSL prior to v.0.9.6c with CBC-MAC

� MAC is located at the end, padding is needed

� Message only evaluated if padding is correct

� Attacker may systematically find out bits starting from second-to-last block.

17

Page 18: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Ciphertext Stealing (CTS)

� Sometimes padding is unacceptable� Sometimes padding is unacceptable

� limited bandwidth

� exchange of many messages that would require padding

� We want to avoid extra data, but cipher blocks need entire blocks!

� Solution: use CTS!

by accomplishing some extra operations, enables to � by accomplishing some extra operations, enables to produce as many output data as given in input

� we pay in terms of complexity and execution time

� we still cannot encyrpt very short messages (< 1 block).

� Usually not worth it!

18

Page 19: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Related-mode attacks (i)

� Attacks against a given block cipher mode of operation:

� we must know which mode is being used

� we need an oracle of another mode, but with the same underlying cipherunderlying cipher

19

Page 20: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Related-mode attacks (ii)

Using ECB against CTR

� MU intercepted Ci and C0

� He chooses P’i = C0 + i

� C’i = CIPHk(P’i)

� Since Ci = CIPHk(C0 + i) ⊕ Pi he can compute Pi = ⊕

� Since Ci = CIPHk(C0 + i) ⊕ Pi he can compute Pi = Ci ⊕ C’i.

� Only one chosen plaintext query is required.

20

Page 21: [slides] Block Cipher Modes of Operation and CMAC for Authentication

The CMAC Mode for The CMAC Mode for Authentication

Page 22: [slides] Block Cipher Modes of Operation and CMAC for Authentication

What is CMAC?

� The 5 modes of operation provide confidentiality, � The 5 modes of operation provide confidentiality, but we need authentication and integrity.

� We must use a mode for authentication!

� it implies integrity

� A MAC algorithm provides stronger assurance of data integrity than a checksum.

CMAC exploits the CBC mode of operation to chain � CMAC exploits the CBC mode of operation to chain cipherblocks and obtain a value which depends on all previous blocks.

22

Page 23: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Once upon time…

� …there was an insecure mode for authentication � …there was an insecure mode for authentication named CBC-MAC:

� only provided security for messages whose length was a multiple of the block size

� attacker could change the whole message (except last block) without notice when CBC was used for encryption with the same key.

Black & Rogaway made it secure for arbitrary-length � Black & Rogaway made it secure for arbitrary-length messages using 2 extra keys (XCBC).

� Iwata & Kurosawa derived the extra keys from the shared secret (OMAC, OMAC1 = CMAC).

23

Page 24: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Subkey generation

� 2 subkeys K1, K2 are generated from the key� 2 subkeys K1, K2 are generated from the key

� Can be computed once and stored (must be secret!)

� Rb is a value related to the block size

� Rb = 012010000111 when b = 128

� Rb = 05911011 when b = 64

L CIPHk (0b)

if MSB (L) = 0 then K L << 1

� Finite-field mathematics are involved!

24

if MSB1(L) = 0 then K1 L << 1

else K1 (L << 1) ⊕ Rbif MSB1(K1) = 0 then K2 K1 << 1

else K2 (K1 << 1) ⊕ Rb

Page 25: [slides] Block Cipher Modes of Operation and CMAC for Authentication

CMAC generation

if Mlen = 0 then n 1

⌈ ⌉

if Mlen = 0 then n 1

else n ⌈Mlen / b⌉

if M*n complete then Mn M*n ⊕ K1 else Mn (M*n ‖10

j) ⊕ K1C0 0b

for i 1 to n do

Ci CIPHk (Ci-1 ⊕ Mi)

T MSBTlen(Cn)

� Formatting of the message does not need to complete before starting CBC encryption.

25

Page 26: [slides] Block Cipher Modes of Operation and CMAC for Authentication

CMAC verification

� Receiver may decrypt data with the appropriate � Receiver may decrypt data with the appropriate algorithm.

� He then applies CMAC generation process to the data.

� He compares the generated MAC with the one he received:

if identical, message is authentic� if identical, message is authentic

� if not, in-transit errors or attack!

26

Page 27: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Length of the MAC (i)

� When verification fails, we are sure the message is � When verification fails, we are sure the message is inauthentic.

� But when it succeeds, we are not 100% sure it is authentic!

� MU may have simply guessed the right MAC for a message

� His chances of succeeding are 1/2Tlen

� Longer MACs provide higher assurance, but use � Longer MACs provide higher assurance, but use more bandwidth/storage space.

� If attacker can make more than one attempt his chances increase!

27

Page 28: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Length of the MAC (ii)

� For most applications, 64 bits are enough.� For most applications, 64 bits are enough.

� NIST provides guidance. Two parameters:

� MaxInvalids : maximum number of attempts before system halts

� Risk : highest acceptable probability that an inauthentic message is mistakenly trusted.

� Tlen ≥ log2 (MaxInvalids / Risk)Tlen ≥ log2 (MaxInvalids / Risk)

� e.g. MaxInvalids = 1

Risk = 0.25

⇒ Tlen = 2 bits

28

Page 29: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Message span of the key (i)

� It’s the total number of messages to which CMAC is � It’s the total number of messages to which CMAC is applied with the same key.

� Affects security against attacks based on detecting 2 distinct messages that lead to the same MAC.

� We call this event a collision.

� This happens because possible messages are much more than possible MACs.than possible MACs.

� It should not occur during the lifetime of a key.

� Message span should be limited!

29

Page 30: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Message span of the key (ii)

� Probability says that a collision is expected among a � Probability says that a collision is expected among a set of 2b/2 messages.

� For general purpose applications:

� no more than 248 messages when b = 128

� no more than 221 messages when b = 64

� For higher level of security:

no more than 248 message blocks when b = 128 (222 GB)� no more than 248 message blocks when b = 128 (222 GB)

� no more than 221 message blocks when b = 64 (16 MB)

� Sometimes message span is time-limited.

30

Page 31: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Protection vs. replay attacks

� No protection against replay attacks is ensured by � No protection against replay attacks is ensured by CMAC:

� Malicious user may intercept a message with its correct MAC and send it at a later time.

� It’s perfectly valid!

� Such protection must be provided by protocol or application that uses CMAC for authentication:application that uses CMAC for authentication:

� sequential number

� timestamp

� message nonce

� etc.

31

Page 32: [slides] Block Cipher Modes of Operation and CMAC for Authentication

Any questions?

32