암호 기술의 기초와 응용

CBC 모드로 암호화한 데이터를 받는 서버가, 복호화한 후의 패딩이 올바르지 않을 때와 패딩은 올바르지만 내용 검사에 실패했을 때 서로 다른 오류를 돌려주고 있었다. 이 상황에 대한 설명으로 올바른 것은?

  1. A공격자는 암호문을 바꿔 써서 보내고, 오류의 차이를 단서로 키를 모른 채 평문을 1바이트씩 구할 수 있을 우려가 있다
  2. B오류의 차이로 알 수 있는 것은 패딩의 길이뿐이므로, 키가 새어 나가지 않는 한 평문의 내용 자체가 새어 나갈 우려는 없다
  3. C키를 AES-128에서 AES-256으로 바꾸면 오류의 차이로부터 평문을 구할 수 있을 우려는 없어진다
정답과 해설 보기

정답: A. 공격자는 암호문을 바꿔 써서 보내고, 오류의 차이를 단서로 키를 모른 채 평문을 1바이트씩 구할 수 있을 우려가 있다

CBC 모드의 복호화에서는 어떤 암호문 블록의 비트를 반전시키면, 다음 블록의 복호화 결과에서 같은 위치의 비트가 반전됩니다. 공격자는 직전 블록의 마지막 바이트를 바꾸면서 보내고, '패딩이 올바르다'고 판정되는 값을 찾음으로써 평문의 마지막 바이트를 구하며, 이를 반복하여 1바이트씩 평문을 밝혀낼 수 있습니다. 이것이 패딩 오라클 공격으로, 오류의 종류나 응답 시간의 차이가 단서(오라클)가 됩니다. 대책의 기본은 GCM 같은 인증 암호화를 사용하거나, 암호문에 붙인 MAC을 먼저 검증하여 변조된 암호문은 복호화 전에 일률적으로 거부하는 것입니다.

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

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

  1. 블록 암호의 CTR 모드(카운터 모드)의 특징으로 올바른 것은?
  2. CTR 모드에서 실수로 같은 키와 같은 논스를 사용해 두 메시지를 암호화했다. 어떤 위치의 바이트에 대해 첫 번째 평문 P₁은 01001000(ASCII의 'H'), 그 암호문 C₁은 01110100, 두 번째 암호문 C₂는 01010101이다. 공격자가 P₁을 알고 있을 때, 같은 위치의 두 번째 평문 P₂는?
  3. AES-GCM 같은 인증 암호화(AEAD)가 하나의 처리로 제공하는 것으로 올바른 것은?
  4. AES-GCM에서 사용하는 96비트 논스(IV)에 대한 설명으로 올바른 것은?
  5. 어떤 장치에서 56비트 키를 모두 시도하는 무차별 대입에 약 20시간이 걸린다. 같은 장치에서 64비트 키를 모두 시도하는 데 걸리는 시간에 가장 가까운 것은?