암호문 자동 키 (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에 해당합니다.
쉽게 말하면
방금 보낸 암호 글자가 다음 글자를 감출 재료가 되는 연쇄식 암호입니다. 중간에 몇 글자가 지워져도 곧 다시 맞춰집니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.