CoderTools

TEA/XTEA/XXTEA 암호화/복호화

Tiny Encryption Algorithm 계열 - 경량 대칭 블록 암호

보안 알림

TEA/XTEA/XXTEA는 주로 임베디드 시스템과 게임에서 사용되는 경량 암호입니다. 높은 보안이 필요한 애플리케이션의 경우 AES를 사용하십시오.

모든 TEA 계열 알고리즘은 고정된 128비트(16바이트) 키를 사용합니다.
형식 옵션

TEA 계열 소개

TEA(Tiny Encryption Algorithm) 계열은 Cambridge의 Roger Needham과 David Wheeler가 설계한 세 가지 관련 블록 암호로 구성됩니다. TEA는 1994년에 도입되었고, XTEA는 1997년에 TEA의 약점을 수정하기 위해, XXTEA는 1998년에 가변 길이 블록 암호로 도입되었습니다.

이러한 알고리즘은 단순성과 작은 코드 크기로 유명하여 임베디드 시스템, 마이크로컨트롤러 및 코드 크기가 중요한 애플리케이션에 이상적입니다. 특히 게임 개발에서 리소스 및 저장 파일 암호화에 널리 사용됩니다.

알고리즘 비교

알고리즘 블록 크기 키 길이 라운드 보안
TEA 64 bits 128 bits 64 레거시
XTEA 64 bits 128 bits 64 양호
XXTEA 가변 (≥64비트) 128 bits 가변 (6+52/n) 양호

주요 특징

  • 매우 컴팩트 - 몇 줄의 코드로 구현 가능
  • 128비트 키로 대부분의 애플리케이션에 합리적인 보안 제공
  • 리소스가 제한된 장치에서 빠른 암호화/복호화
  • IP 제한 없음 - 완전 무료 사용

암호화 모드 (TEA/XTEA만 해당)

  • CBC: Cipher Block Chaining - 각 블록을 암호화 전에 이전 암호 블록과 XOR합니다. IV 필요.
  • ECB: Electronic Codebook - 각 블록을 독립적으로 암호화합니다. 간단하지만 대부분의 용도에 권장되지 않습니다.
  • CFB: Cipher Feedback - 블록 암호를 스트림 암호로 변환합니다. 자동 동기화 모드.
  • OFB: Output Feedback - 키스트림을 독립적으로 생성합니다. 오류 전파 없음.
  • RAW: 원시 블록 - 체인 모드 없이 단일 블록 직접 암호화. IV 불필요.

보안 고려사항

  • TEA: 알려진 등가 키 취약점과 관련 키 공격이 있습니다. 대신 XTEA 또는 XXTEA를 사용하세요.
  • XTEA: 개선된 키 스케줄로 TEA의 약점을 수정했습니다. 널리 사용되며 합리적으로 안전합니다.
  • XXTEA: 가변 길이 블록에서 작동합니다. 더 나은 확산이지만 일부 이론적 공격이 존재합니다.
  • 높은 보안이 필요한 애플리케이션의 경우 현대 산업 표준인 AES 사용을 고려하세요.

일반적인 사용 사례

  • 게임 리소스 암호화 (Cocos2d-x, Unity 리소스 보호)
  • IoT 장치 통신 암호화
  • 제한된 메모리와 처리 능력을 가진 임베디드 시스템
  • 레거시 시스템 호환성 및 프로토콜 구현

참고자료