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游戏资源保护)
- 物联网设备通信加密
- 内存和处理能力有限的嵌入式系统
- 传统系统兼容性和协议实现