• No results found

Message Authentication Code

N/A
N/A
Protected

Academic year: 2022

Share "Message Authentication Code"

Copied!
50
0
0

Loading.... (view fulltext now)

Full text

(1)

Message Authentication Code

Ali El Kaafarani

Mathematical Institute Oxford University

1 of 44

(2)

Outline

1 CBC-MAC

2 Authenticated Encryption

3 Padding Oracle Attacks

4 Information Theoretic MACs

(3)

Basic CBC-MAC for fixed-length messages

Definition

Let F be a pseudorandom function. The basic CBC-MAC can be defined as follows:

Mac(k ∈ {0, 1}n, m): it takes a key k and a message m of length n· L where L = `(n) and does the following;

◦ parse m as m1, · · · , mL, where |mi| = n

◦ initialise t0← 0n, and for i = 1, · · · , L Do

ti← Fk(ti−1⊕ mi)

◦ output the tag tL.

Verify(k ∈ {0, 1}n, m, t): if |m| = n · `(n) and t = Mac(k, m) output 1, output 0 otherwise.

3 of 44

(4)

CBC-MAC

! The previous construction is only secure for fixed-length messages!

There are ways to modify the construction to handle arbitrary-length messages.

For example, one can change the key generation to choose two uniformly independent keys, k1, k2∈ {0, 1}n. The authentication will be done in two steps. First, it computes

t1←CBC-MAC(m, k1), and then it outputs the final result as t← Fk2(t1).

(5)

Differences between CBC-MAC and CBC-mode encryption

There are two main differences:

CBC-mode encryption has arandomIV whereas CBC-MAC has afixedone (i.e. 0n) and they areonlysecure under these conditions

CBC-mode encryption outputs all the intermediate values ci as parts of the ciphertext whereas CBC-MAConlyoutputs the final tag tL(and only secure in this case).

5 of 44

(6)

Outline

1 CBC-MAC

2 Authenticated Encryption

3 Padding Oracle Attacks

4 Information Theoretic MACs

(7)

Authenticated Encryption

A way to achieve bothsecrecyandintegrityat the same time.

No standard terminology or definitions yet.

CAESAR: Competition for Authenticated Encryption: Security, Applicability, and Robustness.

http://competitions.cr.yp.to/caesar.html

The level of secrecy that we want: CCA-secure

The level of integrity: existential unforgeability under chosen-message attacks.

7 of 44

(8)

Unforgeable Encryption

We define the unforgeable encryption experiment as follows:

KeyGen(n): output a key k.

Adversary’s capabilities: access to an encryption oracle Enc(k, ·). All his queries will be stored in Q

Adversary’s output: a ciphertext c.

Winning conditions: compute m ← Dec(k, c) and output 1 if the following hold

◦ m 6= ⊥

◦ m 6∈ Q

Definition

A private key encryption scheme S is unforgeable if for all PPT adversaries A, we have Pr[PrivKUnforg(n) = 1] ≤ negl(n)

(9)

Authenticated Encryption: A Definition

Definition

A private-key encryption scheme is an authenticated encryption scheme is it is both CCA-secure and Unforgeable.

Does any random combination of a secure encryption scheme and a secure message authenticated code yield an

authenticated encryption scheme?

The answer is NO!

Lesson: you can’t just combine two secure cryptographic modules/tools and expect the combination to be automatically secure!

9 of 44

(10)

Authenticated Encryption: A Definition

Definition

A private-key encryption scheme is an authenticated encryption scheme is it is both CCA-secure and Unforgeable.

Does any random combination of a secure encryption scheme and a secure message authenticated code yield an

authenticated encryption scheme?

The answer is NO!

Lesson: you can’t just combine two secure cryptographic modules/tools and expect the combination to be automatically secure!

(11)

Authenticated Encryption: A Definition

Definition

A private-key encryption scheme is an authenticated encryption scheme is it is both CCA-secure and Unforgeable.

Does any random combination of a secure encryption scheme and a secure message authenticated code yield an

authenticated encryption scheme?

The answer is NO!

Lesson: you can’t just combine two secure cryptographic modules/tools and expect the combination to be automatically secure!

9 of 44

(12)

Authenticated Encryption: How to combine MAC and ENC?

MacandEnc: compute them in parallel,

c← Enc(k1, m)and t ← Mac(k2, m)

MacthenEnc:

t← Mac(k2, m)then c ← Enc(k1, m||t)

EncthenMac:

c← Enc(k1, m)then t ← Mac(k2, c)

(13)

MAC and Encrypt

This combination violates the secrecy of the scheme even if Enc is secret. Why?

Remember, MAC doesn’t provide any secrecy, and yet you are sending the tag t in the clear!

MAC can be deterministic (like most MACs used practice)

The scheme is not even CPA-secure in this case!

11 of 44

(14)

MAC and Encrypt

This combination violates the secrecy of the scheme even if Enc is secret. Why?

Remember, MAC doesn’t provide any secrecy, and yet you are sending the tag t in the clear!

MAC can be deterministic (like most MACs used practice)

The scheme is not even CPA-secure in this case!

(15)

MAC then Encrypt

This combination is not guaranteed to be an authenticated encryption either!

m||t has to padded in a specific way to get a multiple of the block length.

The decryption may now fail for two different reasons: incorrect padding or invalid tag! (Note that the padded part is not

protected under the tag scheme!)

What if the attacker can distinguish between the two errors?

Okay, we return a single error message in both cases (even though it is not ideal!)

What about the difference in time to return each of them?

(Some attacks on Secure Socket Layer (SSL) were based on this idea!)

Result: padding-oracle attack (in details soon)!

12 of 44

(16)

Encrypt then MAC

The MAC should be strongly secure.

This guarantees that the adversary can’t produce any new valid ciphertext. (i.e. not obtained from the encryption oracle)

This way, the adversary cannot benefit from the decryption oracle of the CCA game.

Therefore, CPA security of the encryption scheme S is enough.

in this case: CPA-secure S + strongly secure MAC =⇒

CCA-security+integrity

(17)

Encrypt then MAC

The MAC should be strongly secure.

This guarantees that the adversary can’t produce any new valid ciphertext. (i.e. not obtained from the encryption oracle)

This way, the adversary cannot benefit from the decryption oracle of the CCA game.

Therefore, CPA security of the encryption scheme S is enough.

in this case: CPA-secure S + strongly secure MAC =⇒

CCA-security+integrity

13 of 44

(18)

Encrypt then MAC: Generic construction

Given a private-key encryption scheme S = (Enc, Dec) and a message authentication code MAC = (Mac, Verify), we define a private-key encryption scheme S0 = (KeyGen0,Enc0,Dec0)as follows:

KeyGen0(n) :chooseindependent, uniform keys kenc, kmac ∈ {0, 1}n.

Enc0(kenc, kmac, m): compute c ← Enc(kenc, m). Then compute t← Mac(kmac, c). The ciphertext will then be (t, c).

Dec0(c, t, kenc, kmac):

◦ if Verify(kmac, c, t) = 1 then output Dec(kenc, c)

◦ otherwise, output ⊥.

(19)

Authenticated Encryption: an Application and Potential attacks

It is used to offer secure communication sessions.

It is not enough on its own to provide secure sessions, here are some possible attacks:

Re-ordering attack: change the order in which the message were supposed to be delivered (force c2to arrive before c1)

Replay attack: to replay a previously sent valid ciphertext

Reflection attack: to change the direction of the message and resend to the sender instead of the receiver.

Solutions: use counters for the first two problems, and different encryption keys for different directions, i.e. KA→B6= KB→A.

15 of 44

(20)

Outline

1 CBC-MAC

2 Authenticated Encryption

3 Padding Oracle Attacks

4 Information Theoretic MACs

(21)

A Padding Oracle Attack

In CBC mode, messages have to be multiple of the block length

if they are not, we pad them. PKCS#5 is a famous and standardized approach.

Assume that |m| = n and block length= L (both in bytes). Let m= r · L + d. Therefore, b = L − d is the number of bytes that need to be padded to the message.

Exceptionally, if b = 0, we pad L bytes, therefore 1 ≤ b ≤ L.

We append to the message the integer b represented in either 1-byte or two hexadecimal digits.

if 1 byte is needed, we append 0x01 to the end of the message.

If 3 bytes are needed, we append 0x030303

The padded message which is called encoded data, will then be encrypted using CBC-mode encryption.

17 of 44

(22)

A Padding Oracle Attack

Decryption in CBC mode: it first decrypts the ciphertext, it then checks on the correctness of the padding, and finally checks on the validity of the tag.

You first read the values b of the last byte, and make sure it is the same value in the last b bytes.

If the padding is correct, you drop the last b bytes and get the original plaintext, otherwise output “padding error”.

This is a great source of information to the adversary, you can think of it as a limited decryption oracle.

Adversaries can send ciphertexts to the server and learn whether or not they are padded correctly!

This way the adversary can recover the whole message for any ciphertext of his choice.

(23)

A Padding Oracle Attack

Decryption in CBC mode: it first decrypts the ciphertext, it then checks on the correctness of the padding, and finally checks on the validity of the tag.

You first read the values b of the last byte, and make sure it is the same value in the last b bytes.

If the padding is correct, you drop the last b bytes and get the original plaintext, otherwise output “padding error”.

This is a great source of information to the adversary, you can think of it as a limited decryption oracle.

Adversaries can send ciphertexts to the server and learn whether or not they are padded correctly!

This way the adversary can recover the whole message for any ciphertext of his choice.

18 of 44

(24)

A Padding Oracle Attack

We will take the example of a 3-block ciphertext, IV, c1, c2that correspond to the message m1, m2which is of course unknown to the attacker.

By definition, m2 = F−1k (c2) ⊕ c1. The block m2should end with 0xb · · · 0xb

| {z }

btimes

Key idea: if you let c01= c1⊕ ∆, for any string ∆, and you try to decrypt the new cipher text IV, c01, c2then you will get m01, m02, where m02= m2⊕ ∆.

Exploiting this, the adversary can learn b, and consequently the length of the original plaintext.

The attacker starts with modifying the first byte of c1 and sends

(25)

A Padding Oracle Attack

Step 1: find the length of the padded bytes b.

c1 c2

m1 m2&pad

IV

F-1k F-1k

20 of 44

(26)

A Padding Oracle Attack

c1 c2

m1 m2&pad

IV

F-1k F-1k

(27)

A Padding Oracle Attack

c1 c2

m1 m2&pad

IV

F-1k F-1k

22 of 44

(28)

A Padding Oracle Attack

c1 c2

m1 m2&pad

IV

F-1k F-1k

(29)

Second step, recover the plaintext byte by byte.

c1 c2

m1 m2&pad

IV

F-1k F-1k c

?

24 of 44

(30)

c1 c2

m1 m2&pad

IV

F-1k F-1k c

? 5

(31)

c1 c2

m1 m2&pad

IV

F-1k F-1k c

? 5 5 5 5

26 of 44

(32)

c1 c2

m1 m2&pad

IV

F-1k F-1k 1

? 5 5 5 5

(33)

c1 c2

m1 m2&pad

IV

F-1k F-1k 2

? 5 5 5 5

28 of 44

(34)

c1 c2

m1 m2&pad

IV

F-1k F-1k n

? 5 5 5 5

5

No padding error , so this byte is now 5!

(35)

c1 c2

m1 m2&pad

IV

F-1k F-1k n

? 5 5 5 5

5

No padding error , so this byte is now 5!

Simple computation will lead to finding the byte ?

30 of 44

(36)

Outline

1 CBC-MAC

2 Authenticated Encryption

3 Padding Oracle Attacks

4 Information Theoretic MACs

(37)

Information Theoretic MACs

All the MACs we have talked about so far have computational security, i.e. the adversary’s running time are bounded

Can we build a MAC that is secure even in the presence of unbounded adversaries?

Note that we cannot get a perfectly secure MACs. Why?

Clearly because adversaries can guess a valid tag with probability 1/2|t|, if t is the length of the scheme’s tags.

Back to unbounded adversaries: is information theoretic MACs achievable?

Yes,BUTwith a bound on the number of messages to be authenticated!

32 of 44

(38)

Information Theoretic MACs

All the MACs we have talked about so far have computational security, i.e. the adversary’s running time are bounded

Can we build a MAC that is secure even in the presence of unbounded adversaries?

Note that we cannot get a perfectly secure MACs. Why?

Clearly because adversaries can guess a valid tag with probability 1/2|t|, if t is the length of the scheme’s tags.

Back to unbounded adversaries: is information theoretic MACs achievable?

Yes,BUTwith a bound on the number of messages to be authenticated!

(39)

Information Theoretic MACs

As we want to put a bound on the number of the messages to be authenticated, let’s start with most basic case, i.e. only one message. Here is the one-time message authentication

experiment. Notice that here we drop the security parameter n, as we are dealing with unbounded adversaries!

KeyGen : returns a key k

Single tag query: adversary A sends a message m0 and gets a tag on it t0

Adversary’s output: (m, t)

Experiment’s output: 1 iff

Verify(k, t) = 1 and m 6= m0

33 of 44

(40)

Information Theoretic MACs

Definition

A message authentication code S is one-time -secure, if for all adversaries A (including unbounded ones):

Pr[Mac1−timeA,S = 1] ≤ 

(41)

Information Theoretic MACs

We need to first define strongly universal functions (also called pairwise-independent).

Given a keyed function h : K × M → T , where h(k, m) is often written as hk(m). Informally speaking, we say that h is strongly universal if for any m 6= m0 and uniform key k, the images hk(m) and hk(m0)are uniformly and independently distributed in T .

Formally speaking, ∀m 6= m0, and ∀t, t0∈ T , we have Pr[hk(m) = t ∧ hk(m0) = t0] = 1/|T |2

where the probability is taken over uniform choice of k ∈ K.

35 of 44

(42)

Information Theoretic MAC: a construction from a strongly universal function

Given a strongly universal function h : K × M → T , we define a messages authentication code MAC with message space M as follows:

KeyGen : output a uniformly chosen key k ← K

Mac(k, m): output the tag hk(m)

Verify(k, m, t): if m 6∈ M output 0, otherwise output 1 iff t= hk(m).

(43)

Information Theoretic MAC: a construction from a strongly universal function

Theorem

Given a strongly universal function h : K × M → T . A Message authentication code that is based on h with message space M is a one-time 1/|T |-secure MAC.

37 of 44

(44)

Proof.

Let A be an adversary against the MAC scheme. He queries m0 and gets t0. He finally outputs the forgery (m, t). The probability that (m, t) is a valid forgery is the following:

Pr[Mac1−timeA,S = 1] =X

t0

Pr[Mac1−timeA,S = 1 ∧ hk(m0) = t0]

=X

t0

Pr[hk(m) = t ∧ hk(m0) = t0]

=X

t0

1

|T |2

= 1 T

(45)

Strongly Universal Function: a Concrete Construction

Example

Give Zp for some prime p. Let M = T = Zp, and let K = Zp× Zp. we define a keyed function ha,bas

ha,b(m) = a · m + b mod p

Theorem

For any prime p, the function h is strongly universal.

39 of 44

(46)

Strongly Universal Function

Proof.

We will compute the probability that ha,b(m) = tand ha,b(m0) = t0, for m 6= m0, over uniform choice of the key (a, b) ∈ K. We have the following system of linear equations in two variables a, b:

(a· m + b = t mod p a· m0+ b = t0 mod p which has a solution when

(

a= (t − t0) · (m − m0)−1 mod p b= t − a · m mod p

We can deduce that for any m, m0, t, t0 for which m 6= m0, we have a unique key (a, b) ∈ K for which ha,b(m) = tand ha,b(m0) = t0. Since there are exactly |T |2keys, therefore, the probability that

h (m) = tand h (m0) = t0 is 1/|T |2

(47)

Information Theoretic MAC: its limitations

Theorem

If S is a one-time 2−n-secure MAC with constant size keys, then

|k| ≥ 2n.

Proof.

Exercise.

41 of 44

(48)

Information Theoretic MAC: its limitations

Theorem

If S is a `-time 2−n-secure MAC with constant size keys, then

|k| ≥ (` + 1)n.

Corollary

If the key-length of a given MAC is bounded, then it is not information-theoretic secure when authenticating an unbounded number of messages.

(49)

Further Reading (1)

I N.J. Al Fardan and K.G. Paterson.

Lucky thirteen: Breaking the TLS and DTLS record protocols.

In Security and Privacy (SP), 2013 IEEE Symposium on, pages 526–540, May 2013.

I J Lawrence Carter and Mark N Wegman.

Universal classes of hash functions.

In Proceedings of the ninth annual ACM symposium on Theory of computing, pages 106–112. ACM, 1977.

I Jean Paul Degabriele and Kenneth G Paterson.

On the (in) security of IPsec in MAC-then-Encrypt configurations.

In Proceedings of the 17th ACM conference on Computer and communications security, pages 493–504. ACM, 2010.

43 of 44

(50)

Further Reading (2)

I Ted Krovetz and Phillip Rogaway.

The software performance of authenticated-encryption modes.

In Fast Software Encryption, pages 306–327. Springer, 2011.

I Douglas R. Stinson.

Universal hashing and authentication codes.

Designs, Codes and Cryptography, 4(3):369–380, 1994.

References

Related documents

(20) (21) For exceptional and temporary reasons and only for customers / users of the Internet Banking Service from HSBC because the service is not available for the permitted by

Question: Appendix A proposal Contents Part 1 – Project Team (d) and Item 1.1 Purpose - Sub-Consultants -One of the requirements of the proposal is LEED Certification, so we assume

Although more kinds of social support signifi- cantly predicted PTSD in the young women of the stab- bing sample, this was not the case in the explosion sample, and the most

Although hemodynamic management using the trend of the PI and PPV significantly decreased the duration of hypotension and intraoperative fluid balance, the inter- vention did

Positive S values in all of the wells in individuals forest stands provide downward trend of groundwater level in wells of G-ditch catchment in Marianka forest district in

Because many plants are dormant for long periods of the year, it takes time and careful observation to learn what grows naturally in the garden through the seasons and to see

Key words : ambiguity, robust decisions, learning, partial information, optimal stopping, sequential testing of simple hypotheses, Ellsberg Paradox, recursive utility,

Given the fact that the bulk of neonatal deaths occur very early in life as described above, [7] in addition to the observed high contribution of preterm babies