Exercise 4.7

Problem

Let FF be a pseudorandom function. Show that each of the following MACs is insecure, even if used to authenticate fixed-length messages. (In each case Gen outputs a uniform k{0,1}nk \in \{0, 1\}^n. Let i\langle i \rangle denote an n/2n/2-bit encoding of the integer ii.)

  1. To authenticate a message m=m1,,ml m = m_1, \ldots ,m_l where mi{0,1}nm_i \in \{0, 1\}^n, compute t:=Fk(m1)Fk(ml)t := F_k(m_1) \oplus \cdots \oplus F_k(m_l).

  2. To authenticate a message m=m1,,ml m = m_1, \ldots ,m_l where mi{0,1}n/2m_i \in \{0, 1\}^{n/2}, compute t:=Fk(1m1)Fk(lml)t := F_k(\langle 1 \rangle || m_1) \oplus \cdots \oplus F_k(\langle l \rangle || m_l).

  3. To authenticate a message m=m1,,ml m = m_1, \ldots ,m_l where mi{0,1}n/2m_i \in \{0, 1\}^{n/2}, choose uniform r{0,1}nr \leftarrow \{0, 1\}^n, compute t:=Fk(r)Fk(1m1)Fk(lml)t := F_k(r) \oplus F_k(\langle 1 \rangle || m_1) \oplus \cdots \oplus F_k(\langle l \rangle || m_l), and let the tag be r,t\langle r, t \rangle

Solution

Part 1

Reorder the blocks in mm and the tag doesn't change.

Part 2

Query

  • m1=m1m2m^1 = m_1 || m_2, tag t1=Fk(1m1)Fk(2m2)t_1 = F_k(\langle 1 \rangle || m_1) \oplus F_k(\langle 2 \rangle || m_2)

  • m2=m3m2m^2 = m_3 || m_2, tag t2=Fk(1m3)Fk(2m2)t_2 = F_k(\langle 1 \rangle || m_3) \oplus F_k(\langle 2 \rangle || m_2)

  • m3=m3m4m^3 = m_3 || m_4, tag t3=Fk(1m3)Fk(2m4)t_3 = F_k(\langle 1 \rangle || m_3) \oplus F_k(\langle 2 \rangle || m_4)

Thus m=m1m2m3=m1m4 m^* = m^1 \oplus m^2 \oplus m^3 = m_1 || m_4, tag t=t1t2t3=Fk(1m1)Fk(2m4)t = t_1 \oplus t_2 \oplus t_3 = F_k(\langle 1 \rangle || m_1) \oplus F_k(\langle 2 \rangle || m_4) .

Part 3

Let m{0,1}n/2m \in \{0, 1\}^{n/2}. When choosing r=1mr = \langle 1 \rangle || m, t=Fk(r)Fk(1m)=0nt = F_k(r) \oplus F_k(\langle 1 \rangle || m) = 0^n.

Thus t=1m,0n t = \left\langle \langle 1 \rangle || m, 0^n \right\rangle will be a valid tag for mm.

Last updated

Was this helpful?