7.10 풀이

편의상 각 ii번째 round의 결과를 ri=(X,Y)r_i = (X, Y) 로 쓴다.

a)

fi(x)=0l/2f_i(x) = 0^{l/2}인 경우.

r0=(L0,R0)r1=(R0,L0fi(R0))=(R0,L00)=(R0,L0)r2=(L0,R0fi(L0))=(L0,R00)=(L0,R0)=r0\begin{aligned} r_0 &= (L_0, R_0) \\ r_1 &= (R_0, L_0 \oplus f_i(R_0)) = (R_0, L_0 \oplus 0) = (R_0, L_0) \\ r_2 &= (L_0, R_0 \oplus f_i(L_0)) = (L_0, R_0 \oplus 0) = (L_0, R_0) = r_0 \\ \end{aligned}

이렇게 반복되는 것을 알 수 있다. 따라서

Fk(L0,R0)={(L0,R0)if rmod2=0(R0,L0)if rmod2=1F_k(L_0, R_0) = \begin{cases} (L_0, R_0) &\text{if } r \bmod 2 = 0 \\ (R_0, L_0) &\text{if } r \bmod 2 = 1 \\ \end{cases}

b)

fi(x)=xf_i(x) = x인 경우.

r0=(L0,R0)r1=(R0,L0fi(R0))=(R0,L0R0)r2=(L0R0,R0fi(L0R0))=(L0R0,R0L0R0)=(L0R0,L0)r3=(L0,L0R0fi(L0))=(L0,L0R0L0)=(L0,R0)=r0\begin{aligned} r_0 &= (L_0, R_0) \\ r_1 &= (R_0, L_0 \oplus f_i(R_0)) = (R_0, L_0 \oplus R_0) \\ r_2 &= (L_0 \oplus R_0, R_0 \oplus f_i(L_0 \oplus R_0)) = (L_0 \oplus R_0, R_0 \oplus L_0 \oplus R_0) = (L_0 \oplus R_0, L_0) \\ r_3 &= (L_0, L_0 \oplus R_0 \oplus f_i(L_0)) = (L_0, L_0 \oplus R_0 \oplus L_0) = (L_0, R_0) = r_0 \\ \end{aligned}

이렇게 반복되는 것을 알 수 있다. 따라서

Fk(L0,R0)={(L0,R0)if rmod3=0(R0,L0R0)if rmod3=1(L0R0,L0)if rmod3=2F_k(L_0, R_0) = \begin{cases} (L_0, R_0) &\text{if } r \bmod 3 = 0 \\ (R_0, L_0 \oplus R_0) &\text{if } r \bmod 3 = 1 \\ (L_0 \oplus R_0, L_0) &\text{if } r \bmod 3 = 2 \\ \end{cases}

Last updated