CoderTools

Cifrado/Descifrado TEA/XTEA/XXTEA

Familia Tiny Encryption Algorithm - Cifradores de bloques simétricos ligeros

Aviso de seguridad

TEA/XTEA/XXTEA son cifradores ligeros utilizados principalmente en sistemas embebidos y juegos. Para aplicaciones de alta seguridad, utilice AES en su lugar.

Todos los algoritmos de la familia TEA utilizan una clave fija de 128 bits (16 bytes).
Opciones de formato

Acerca de la familia TEA

La familia TEA (Tiny Encryption Algorithm) comprende tres cifradores de bloques relacionados diseñados por Roger Needham y David Wheeler en Cambridge. TEA fue introducido en 1994, XTEA en 1997 para corregir debilidades de TEA, y XXTEA en 1998 como cifrador de bloques de longitud variable.

Estos algoritmos son conocidos por su simplicidad y pequeño tamaño de código, lo que los hace ideales para sistemas embebidos, microcontroladores y aplicaciones donde el tamaño del código es crítico. Son particularmente populares en el desarrollo de juegos para cifrado de recursos y archivos de guardado.

Comparación de algoritmos

Algoritmo Tamaño de bloque Longitud de clave Rondas Seguridad
TEA 64 bits 128 bits 64 Heredado
XTEA 64 bits 128 bits 64 Buena
XXTEA Variable (≥64 bits) 128 bits Variable (6+52/n) Buena

Características principales

  • Extremadamente compacto - puede implementarse en pocas líneas de código
  • Clave de 128 bits proporciona seguridad razonable para la mayoría de aplicaciones
  • Cifrado/descifrado rápido en dispositivos con recursos limitados
  • Sin restricciones de propiedad intelectual - completamente libre de uso

Modos de cifrado (solo TEA/XTEA)

  • CBC: Cipher Block Chaining - Cada bloque se XORea con el bloque cifrado anterior antes del cifrado. Requiere IV.
  • ECB: Electronic Codebook - Cada bloque se cifra de forma independiente. Simple pero no recomendado para la mayoría de usos.
  • CFB: Cipher Feedback - Transforma el cifrador de bloques en cifrador de flujo. Modo auto-sincronizante.
  • OFB: Output Feedback - Genera el flujo de claves independientemente. Sin propagación de errores.
  • RAW: Bloque crudo - Cifrado directo de un solo bloque sin modo de encadenamiento. No requiere IV.

Consideraciones de seguridad

  • TEA: Tiene vulnerabilidad de claves equivalentes conocida y ataques de claves relacionadas. Use XTEA o XXTEA en su lugar.
  • XTEA: Corrigió las debilidades de TEA con un programa de claves mejorado. Ampliamente utilizado y razonablemente seguro.
  • XXTEA: Opera en bloques de longitud variable. Mejor difusión pero existen algunos ataques teóricos.
  • Para aplicaciones que requieren alta seguridad, considere usar AES que es el estándar moderno de la industria.

Casos de uso comunes

  • Cifrado de recursos de juegos (Cocos2d-x, protección de recursos Unity)
  • Cifrado de comunicaciones de dispositivos IoT
  • Sistemas embebidos con memoria y potencia de procesamiento limitadas
  • Compatibilidad de sistemas heredados e implementaciones de protocolos

Referencias