CoderTools

TEA/XTEA/XXTEA加密解密

微型加密算法家族 - 轻量级对称分组密码

安全提示

TEA/XTEA/XXTEA是主要用于嵌入式系统和游戏的轻量级密码。对于高安全性应用,请使用AES替代。

所有TEA系列算法均使用固定的128位(16字节)密钥。
格式选项

关于TEA系列

TEA(微型加密算法)家族包含三种相关的分组密码,由剑桥大学的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位密钥为大多数应用提供合理的安全性
  • 在资源受限的设备上快速加密/解密
  • 无知识产权限制 - 完全免费使用

加密模式(仅TEA/XTEA)

  • CBC: 密码分组链接 - 每个分组在加密前与前一个密文分组异或。需要IV。
  • ECB: 电子密码本 - 每个分组独立加密。简单但不推荐用于大多数场景。
  • CFB: 密码反馈 - 将分组密码转换为流密码。自同步模式。
  • OFB: 输出反馈 - 独立生成密钥流。无错误传播。
  • RAW: 原始分组 - 直接单块加密,无链接模式。不需要IV。

安全注意事项

  • TEA:存在已知的等价密钥漏洞和相关密钥攻击。请使用XTEA或XXTEA替代。
  • XTEA:通过改进的密钥调度修复了TEA的弱点。广泛使用且相当安全。
  • XXTEA:对可变长度分组进行操作。扩散性更好,但存在一些理论攻击。
  • 对于需要高安全性的应用,建议使用AES,这是现代行业标准。

常见用例

  • 游戏资源加密(Cocos2d-x、Unity游戏资源保护)
  • 物联网设备通信加密
  • 内存和处理能力有限的嵌入式系统
  • 传统系统兼容性和协议实现

参考资料