암호 기술의 기초와 응용

1 GiB = 2³⁰바이트, 1 EiB = 2⁶⁰바이트로 한다. 블록 길이가 64비트인 블록 암호(3DES 등)를 CBC 모드로 사용하여, 하나의 키로 대량의 데이터를 암호화한다. 암호문 블록을 무작위 64비트 값으로 간주할 때, 생일 역설에 의해 같은 암호문 블록 쌍이 나타날 확률을 무시할 수 없게 되는 데이터양의 기준은?

  1. A약 4 GiB
  2. B약 32 GiB
  3. C약 128 EiB
정답과 해설 보기

정답: B. 약 32 GiB

64비트 블록의 값은 2⁶⁴가지이므로, 생일 역설에 의해 약 2^(64/2) = 2³²개의 블록을 암호화하면 같은 값의 쌍이 나타날 확률을 무시할 수 없게 됩니다(2³²개에서 약 39%). 1블록은 8바이트이므로 데이터양은 2³² × 8 = 2³⁵바이트 = 32 GiB입니다. CBC 모드에서 암호문 블록이 일치하면 대응하는 두 평문 블록의 XOR을 알게 되며, 2016년에 공표된 Sweet32 공격에서는 3DES로 보호된 장시간의 HTTPS 통신에서 Cookie를 꺼낼 수 있음이 밝혀졌습니다. 블록 길이가 128비트인 AES에서는 기준이 2⁶⁴블록까지 넓어집니다.

이 분야 연습하기 분야로 돌아가기

암호 기술의 기초와 응용의 다른 문제

  1. TLS 1.3 등의 프로토콜에서 ECDHE 키 교환으로 얻은 공유 비밀을 그대로 암호 키로 사용하지 않고, HKDF 같은 키 유도 함수(KDF)를 거쳐 키를 만드는 이유로 적절한 것은?
  2. RSA 암호의 구조를 작은 수로 확인한다. 소수 p = 5, q = 11로부터 n = pq를 만들고, 공개 지수를 e = 3으로 한다. φ(n) = (p − 1)(q − 1)이라 할 때, e × d ≡ 1 (mod φ(n))을 만족하는 비밀 지수 d(0 < d < φ(n))는?
  3. RSA 암호에서 공개 키를 n = 55, e = 3으로 한다. 평문 m = 7을 c = m^e mod n으로 암호화했을 때의 암호문 c는?
  4. 교과서 그대로의 RSA 암호(평문 m을 그대로 c = m^e mod n으로 하는 방식)를 패딩을 붙이지 않고 실제 통신에 사용하는 것의 문제점으로 올바른 것은?
  5. 디피-헬먼 키 교환에서는 소수 p와 생성원 g를 공개하고, A 씨와 B 씨가 각각 비밀 값 a, b를 골라 g^a mod p와 g^b mod p를 서로 보낸다. 도청자가 이렇게 공개된 값을 모두 보더라도 공유 비밀 g^(ab) mod p를 구할 수 없다고 생각되는 이유로 올바른 것은?