# 암호문 자동 키 (Cipher Text Auto-Key, CTAK)

암호문 자동 키(CTAK, Cipher Text Auto-Key)는 앞서 만들어진 암호문을 이용해 다음 키스트림을 생성하는 암호 방식입니다. 키스트림이 암호문에서 '자동으로' 만들어진다는 뜻이며, 블록 암호의 CFB(암호문 피드백) 모드가 대표적인 예입니다. 원래 미국 국가안보국(NSA) 등의 통신 보안 용어로 쓰였습니다.

## 자세히 알아보기

CTAK 방식에서는 송신자와 수신자가 같은 비밀 키와 초기값(IV)을 공유합니다. 첫 키스트림은 초기값으로 만들고, 이후에는 직전 암호문(또는 최근 암호문 일부)을 키와 함께 키 생성 함수에 넣어 다음 키스트림을 만듭니다. 수신자도 받은 암호문으로 같은 계산을 하므로 같은 키스트림을 얻어 복호화할 수 있습니다.

가장 중요한 성질은 자기 동기화입니다. 전송 중 암호문 일부가 손상되거나 사라져도, 손상된 암호문이 키스트림 생성기의 입력 범위를 벗어나면 이후 복호화가 저절로 다시 맞춰집니다. 오류는 제한된 구간에만 번집니다. 이 때문에 잡음이 많은 무선·직렬 통신에 쓰였습니다.

비교 개념으로 평문 자동 키(PTAK)는 평문으로 키스트림을 만들며, 오류가 생기면 이후 전체가 깨질 수 있습니다. 출력 피드백(OFB)처럼 키스트림이 데이터와 무관하게 생성되는 방식은 자기 동기화가 없지만 오류가 번지지 않습니다.

한계도 있습니다. 암호문은 공격자도 볼 수 있으므로, 키스트림의 비밀성은 전적으로 비밀 키와 키 생성 함수의 강도에 달려 있습니다. 또 CTAK 자체는 변조를 탐지하지 못하므로 별도의 메시지 인증이 필요합니다. 현대 시스템에서는 인증 암호(AEAD)가 일반적인 선택입니다.

CTAK는 키스트림 생성기 입력으로 '최근 암호문 몇 비트'를 쓰는지에 따라 오류가 번지는 길이가 정해집니다. 입력 범위가 길수록 키스트림이 더 복잡해지지만, 한 번의 전송 오류가 더 많은 비트를 망가뜨립니다. 블록 암호 CFB 모드에서 64비트 블록을 1바이트씩 되먹이면, 한 바이트 오류가 이후 약 아홉 바이트의 복호화에 영향을 주는 식입니다.

역사적으로 CTAK와 같은 자동 키 개념은 고전 암호인 오토키 암호(비즈네르 변형)에서도 찾을 수 있습니다. 오토키 암호는 키워드 뒤에 평문(또는 암호문)을 이어 붙여 키로 썼는데, 평문을 쓰는 방식이 PTAK, 암호문을 쓰는 방식이 CTAK에 해당합니다.

## 쉽게 말하면

방금 보낸 암호 글자가 다음 글자를 감출 재료가 되는 연쇄식 암호입니다. 중간에 몇 글자가 지워져도 곧 다시 맞춰집니다.

---
출처: https://achivx.kr/glossary/cipher-text-auto-key-ctak-%EC%9E%90%EB%8F%99-%ED%82%A4-%EC%95%94%ED%98%B8%EB%AC%B8-%EC%9E%90%EB%8F%99-%ED%82%A4-%EC%95%94%ED%98%B8%EB%AC%B8/ · ACHIVX 용어 사전 · 수정일 2026-10-20
