인증 암호화(AEAD)란?

암호화와 변조 검출을 하나의 처리로 수행하는 암호 방식. AEAD는 Authenticated Encryption with Associated Data의 약자로, 암호화는 하지 않지만 변조는 검출하고 싶은 헤더 등의 부가 데이터도 인증 대상에 포함할 수 있다. 암호화할 때 인증 태그를 만들고, 복호화할 때 태그를 검증하여 일치하지 않으면 평문을 내놓지 않고 오류로 처리한다. AES-GCM이나 ChaCha20-Poly1305가 대표적이며, TLS 1.3에서는 AEAD만 사용된다. 같은 키로 논스를 재사용하면 기밀성도 변조 검출도 손상된다.

일본어 명칭: 認証付き暗号(AEAD)

인증 암호화(AEAD)은(는) 암호 기술의 기초와 응용 등 1개 분야의 연습 문제 8개에 나와요.

분야: 암호 기술의 기초와 응용

도전해 보기: 인증 암호화(AEAD) 관련 문제

AES-GCM 같은 인증 암호화(AEAD)가 하나의 처리로 제공하는 것으로 올바른 것은?

  1. A데이터의 기밀성뿐이며, 변조 검출에는 별도로 디지털 서명이 필요하다
  2. B데이터의 기밀성과, 암호문이나 부가 데이터가 변조되지 않았다는 것의 검증
  3. C기밀성과 변조 검출에 더해, 제3자에 대한 부인 방지
정답과 해설 보기

정답: B. 데이터의 기밀성과, 암호문이나 부가 데이터가 변조되지 않았다는 것의 검증

인증 암호화(AEAD: Authenticated Encryption with Associated Data)는 암호화와 동시에 인증 태그를 계산하고, 복호화할 때 태그를 검증하여 암호문이 변조되었으면 평문을 내놓지 않고 오류로 처리합니다. 암호화는 하지 않지만 변조는 검출하고 싶은 헤더 등을 '부가 데이터'로서 태그 계산에 포함할 수도 있습니다. GCM은 CTR 모드에 의한 암호화와, 갈루아 체의 곱셈을 사용하는 GHASH에 의한 인증을 조합한 모드이며, TLS 1.3에서는 AEAD만 사용됩니다. 태그는 대칭 키로 만들므로 메시지 인증 코드와 마찬가지로 부인 방지에는 사용할 수 없습니다.

AES-GCM에서 사용하는 96비트 논스(IV)에 대한 설명으로 올바른 것은?

  1. A비밀로 할 필요는 없고 카운터로 만들어도 되지만, 같은 키로 같은 값을 두 번 사용해서는 안 된다
  2. B공격자에게 알려지면 평문이 새어 나가므로, 키와 마찬가지로 비밀로 하여 보관해야 한다
  3. C매번 무작위로 골라야 하며, 1씩 증가하는 카운터로 만들면 안전성이 손상된다
정답과 해설 보기

정답: A. 비밀로 할 필요는 없고 카운터로 만들어도 되지만, 같은 키로 같은 값을 두 번 사용해서는 안 된다

GCM의 논스에 요구되는 것은 같은 키 아래에서 값이 겹치지 않는(유일한) 것입니다. 비밀로 할 필요는 없으며, 송신 횟수를 세는 카운터로 만들어도 조건을 충족합니다. 같은 키로 같은 논스를 사용하면 CTR 모드와 마찬가지로 평문의 XOR이 새어 나갈 뿐만 아니라 인증에 사용하는 값도 구해져, 태그를 위조당할 우려가 있습니다. 무작위로 논스를 고르는 경우에는 우연한 중복을 피하기 위해 하나의 키로 암호화하는 횟수에 상한이 정해져 있습니다(NIST SP 800-38D에서는 2^32회).

해설 속 인증 암호화(AEAD)

인증 암호화(AEAD)이(가) 나오는 문제 (8)

  1. AES-GCM 같은 인증 암호화(AEAD)가 하나의 처리로 제공하는 것으로 올바른 것은?
  2. AES-GCM에서 사용하는 96비트 논스(IV)에 대한 설명으로 올바른 것은?
  3. TLS 1.3의 암호 스위트 TLS_AES_128_GCM_SHA256이 지정하는 것의 조합으로 올바른 것은?
  4. 이미지 데이터를 AES의 ECB 모드로 암호화했더니, 암호화한 후의 이미지에서도 원래 그림의 윤곽을 알아볼 수 있었다. 이 원인으로 올바른 것은?
  5. AES(블록 길이 16바이트)를 CBC 모드로 사용하고, 패딩에는 PKCS#7 방식을 사용한다. PKCS#7 방식에서는 부족한 바이트 수를 n이라 할 때 값이 n인 바이트를 n개 덧붙이며, 평문의 길이가 정확히 16의 배수일 때도 값이 16인 바이트를 16개 덧붙인다. 96바이트의 평문을 암호화했을 때 암호문의 길이(IV는 포함하지 않음)는?
  6. CBC 모드로 암호화한 데이터를 받는 서버가, 복호화한 후의 패딩이 올바르지 않을 때와 패딩은 올바르지만 내용 검사에 실패했을 때 서로 다른 오류를 돌려주고 있었다. 이 상황에 대한 설명으로 올바른 것은?
  7. CTR 모드에서 실수로 같은 키와 같은 논스를 사용해 두 메시지를 암호화했다. 어떤 위치의 바이트에 대해 첫 번째 평문 P₁은 01001000(ASCII의 'H'), 그 암호문 C₁은 01110100, 두 번째 암호문 C₂는 01010101이다. 공격자가 P₁을 알고 있을 때, 같은 위치의 두 번째 평문 P₂는?
  8. TLS 1.3(RFC 8446)에서 TLS 1.2로부터 바뀐 점으로 올바른 것은?

관련 용어

블록 암호 운용 모드(Block Cipher Mode of Operation) TLS AES 논스(Nonce) 디피-헬먼 키 교환(Diffie-Hellman Key Exchange) RSA 암호(RSA Cryptosystem) 메시지 인증 코드(Message Authentication Code) 해시 함수(Hash Function) HMAC 전방향 안전성(Forward Secrecy)

용어집으로 돌아가기