TEA/XTEA/XXTEA 암호화/복호화
Tiny Encryption Algorithm 계열 - 경량 대칭 블록 암호
보안 알림
TEA/XTEA/XXTEA는 주로 임베디드 시스템과 게임에서 사용되는 경량 암호입니다. 높은 보안이 필요한 애플리케이션의 경우 AES를 사용하십시오.
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 장치 통신 암호화
- 제한된 메모리와 처리 능력을 가진 임베디드 시스템
- 레거시 시스템 호환성 및 프로토콜 구현