6.19 풀이

(a)

우선, (GenH,MTt)({\rm Gen}_H,{\cal MT}_t)에 대해 다음과 같은 실험 MT-collA,(GenH,MTt)(n)\text{MT-coll}_{\mathcal A,({\rm Gen}_H,{\cal MT}_t)}(n) 을 정의한다:

  1. 키를 sGenH(1n)s \gets {\rm Gen}_H(1^n) 로 생성한다.

  2. adversary A\mathcal Ass를 받고 (x1,x2,x3,,xt)(x_1, x_2, x_3, \dots, x_t)(x1,x2,x3,,xt)(x'_1, x'_2, x'_3, \dots, x'_t)를 반환한다.

  3. 실험의 결과는 MTs(x1,x2,x3,,xt)=MTs(x1,x2,x3,,xt){\cal MT}^s(x_1, x_2, x_3, \dots, x_t) = {\cal MT}^s(x'_1, x'_2, x'_3, \dots, x'_t)인 경우 1로 정의된다.

모든 PPT adversary A\mathcal A에 대해 다음을 만족하는 negligible한 함수 negl{\rm negl}이 항상 존재한다면, (GenH,MTt)({\rm Gen}_H,{\cal MT}_t)는 collision-resistant하다.

P(MT-collA,(GenH,MTt)(n)=1)negl(n)P(\text{MT-coll}_{\mathcal A,({\rm Gen}_H,{\cal MT}_t)}(n) = 1) \leq {\rm negl}(n)

(b)

총 두 개의 party가 있다. 각각 클라이언트(C\mathcal C), 서버(S\mathcal S)로 명명한다. 클라이언트는 유일하다고 가정한다.

  1. 아래 두 조건을 모두 만족시키는 파일 x1,x2,x3,,xtx_1, x_2, x_3, \dots, x_t를 생각한다.

    1. tt는 power of two.

    2. xi=2n|x_i| = 2n.

  2. 클라이언트 C\mathcal C에서 키 sGenH(1n)s \gets {\rm Gen}_H(1^n)를 생성한다.

  3. hii=Hs(xi)h_{i \dots i} = H^s(x_i) 로 정의한다.

  4. hij=Hs(hi(i+j)/2h(i+j)/2+1j)(where ij)h_{i \dots j} = H^s(h_{i \dots (i + j) / 2} || h_{(i + j) / 2 + 1 \dots j}) \quad (\text{where } i \neq j) 로 정의한다.

  5. h1th_{1 \dots t} 를 구한다.

  6. 클라이언트 C\mathcal C의 키 ss를 서버 S\mathcal S에 전달한다.

  7. 클라이언트 C\mathcal C의 파일 x1,x2,x3,,xtx_1, x_2, x_3, \dots, x_t를 서버 S\mathcal S에 전달한다.

  8. 파일 x1,x2,x3,,xtx_1, x_2, x_3, \dots, x_t를 클라이언트 C\mathcal C에서 제거한다.

파일 검증 과정 MT-vrfy(h1t,xi,πi)\text{MT-vrfy}(h_{1 \dots t}, x_i, \pi_i):

  1. 서버 S\mathcal S가 클라이언트 C\mathcal C(xi,πi)(x_i, \pi_i)를 전달한다. πi\pi_i는 길이 (logt)1(\log t) - 1짜리 튜플로, 각각의 hjkh'_{j \dots k}가 담겨 있다.

  2. 위의 3, 4번 과정을 통해 h1th'_{1 \dots t}를 구한다.

  3. 클라이언트 C\mathcal Ch1th_{1 \dots t}h1th'_{1 \dots t}와 같다면, MT-vrfy(h1t,xi,πi)=1\text{MT-vrfy}(h_{1 \dots t}, x_i, \pi_i) = 1을 반환한다.

(c)

우선, MTt{\cal MT}_t의 충돌이 항상 내부 해시 HH의 충돌을 imply함을 보이자.

어떤 두 x=(x1,x2,x3,,xt)x = (x_1, x_2, x_3, \dots, x_t)x=(x1,x2,x3,,xt)x' = (x'_1, x'_2, x'_3, \dots, x'_t)이 서로 충돌한다고 하자.

가정에 의해 xxx \neq x'이어야 하기에 두 순서쌍 중 적어도 한 쌍의 iti \leq t번째 xix_ixix'_i는 달라야 한다.(1)\quad\dots (1)

이제 xix_i가 계산 과정에 들어가는 모든 hh를 찾아서 hjk=hjk(jik)h_{j \dots k} = h'_{j \dots k} \quad (\forall j \leq i \leq k) 라고 가정하자. 이 가정이 참이라면, xixix_i \neq x'_i에 대해 HsH^shii=hiih_{i \dots i} = h'_{i \dots i}를 반환했다는 것이므로 HH의 충돌이다.

위 가정이 거짓이라고 가정하자. 그렇다면 적어도 하나의 hjkhjkh_{j \dots k} \neq h'_{j \dots k} 를 발생시키는 j,kj,k가 존재한다. 이제 (1)(1)로 돌아가 서로 다른 xi,xix_i, x'_i 대신 hjk,hjkh_{j \dots k}, h'_{j \dots k}를 집어넣고 (j,k)(j, k)(1,t)(1, t)이게 될 때까지 반복한다.

가정에 의해 xxxx'은 충돌이 나므로 h18=h18h_{1 \dots 8} = h'_{1 \dots 8}이다. 위 과정을 반복했을 때 여전히 hjkhjkh_{j \dots k} \neq h'_{j \dots k}라면 이는 모순이다. 따라서 충돌이 나지 않을 것이라는 가정은 부정되어야 한다. 따라서 HsH^s는 충돌이 발생한다.

이제 reduction과 귀류법을 사용해 증명할 수 있다.

먼저, (GenH,MTt)({\rm Gen}_H,{\cal MT}_t)가 collision-resistant하지 않다고 가정하자. 가정에 의해, 어떤 PPT adversary AMT\mathcal A_{\cal MT}가 존재해 MTt(x1,x2,x3,,xt)=MTt(x1,x2,x3,,xt){\cal MT}_t(x_1, x_2, x_3, \dots, x_t) = {\cal MT}_t(x'_1, x'_2, x'_3, \dots, x'_t)를 만족시키는 (x1,x2,x3,,xt),(x1,x2,x3,,xt)(x_1, x_2, x_3, \dots, x_t), (x'_1, x'_2, x'_3, \dots, x'_t)를 매우 빠르게 찾을 수 있다.

이를 이용해 또다른 adversary AH\mathcal A_H를 구성하자. AH\mathcal A_H는 내부적으로 AMT\mathcal A_{\cal MT}를 호출하고, AMT\mathcal A_{\cal MT}AH\mathcal A_H에게 (x1,x2,x3,,xt),(x1,x2,x3,,xt)(x_1, x_2, x_3, \dots, x_t), (x'_1, x'_2, x'_3, \dots, x'_t)를 반환한다. 이제 AH\mathcal A_H는 앞서 보인 것처럼 두 순서쌍에서 서로 다른 xix_i를 찾고, 이를 거슬러 올라가면 O(logn)\mathcal O(\log n) 만에 Hs(hjk)=Hs(hjk)H^s(h_{j \dots k}) = H^s(h'_{j \dots k})를 만족시키는 hjkhjkh_{j \dots k} \neq h'_{j \dots k}를 찾을 수 있다. 따라서 AH\mathcal A_H(GenH,H)(\text{Gen}_H, H)의 충돌을 PPT안에 negligible하지 않은 확률로 찾을 수 있으므로 (GenH,H)(\text{Gen}_H, H)는 collision-resistant하지 않다.

이는 (GenH,H)(\text{Gen}_H, H)는 collision-resistant하다는 전제와 모순된다. 따라서 (GenH,MTt)({\rm Gen}_H,{\cal MT}_t)는 collision-resistant하다.

Last updated