xxtea

xxtea

HuAmI Lv3

xxtea

那么xxtea又来了!

相比于xtea,乃至tea,这次的改进可谓是大改进,在安全性和加密流程上做了较为巨大的改动,整体安全性也得到了提升:
1、处理任意长度数据
2、增强扩散性和抗差分攻击能力
3、key调度更合理

观察tea和xtea,不难发现其实改动并不大,而且分组明文块的大小始终固定为八字节难免会存在安全性问题。 包括xtea和tea只在一个块中的两个半块进行扩散等等。

XXTEA = XTEA 的多块版本 + 非线性轮函数改进 + 轮数随数组长度调整 + 修复 Block TEA 弱点
xxtea采用相邻半块进行更新,而tea,xtea只在一个块中的两个半块更新:

1
v[i] = v[i] + F( v[i-1], v[(i+1)%n], sum, K[i&3] )

下面从5个方面来看看区别:

存在意义

算法 目标
XTEA 修复 TEA 的弱点(等价密钥问题、周期性问题),适用于固定 64-bit 分组加密
XXTEA 扩展 XTEA,支持任意长度数据块,修复原 Block TEA 的弱点,提高多块消息的安全性

数据块结构

特性 XTEA XXTEA
分组大小 64-bit(v0, v1 两个 32-bit 半块) 任意长度数组 ≥2 个 32-bit 单元
数据处理 只处理两个半块 循环处理整个数组,每块受邻居影响

轮函数与数据扩散

特性 XTEA XXTEA
每轮更新 v0 或 v1 交替 每块 v[i] 更新,受左右邻居影响
数据扩散 限于两个半块之间 整个数组,扩散性强
轮数 固定 64 随数组长度 n 调整(6 + 52/n)
非线性组合 移位 + 加法 + XOR 移位 + XOR + 加法 + 邻居影响

key调度

特性 XTEA XXTEA
key_index 来源 sum 的 bit:(sum&3, (sum>>11)&3) 块索引 i & 3
key 使用规律 随轮数 sum 决定,跳跃式但依赖 sum 直接依赖块索引,循环全数组,更简单且安全
key 与数据块关联 仅两个半块 所有块都用 key 参与更新

安全性对比

特性 XTEA XXTEA
弱点修复 修复 TEA 的等价密钥问题和周期性弱点 修复 Block TEA 多块弱点,增强扩散和抗差分攻击能力
抗差分攻击 有限扩散,攻击难度比 TEA 高 扩散性强,攻击难度更大
适用场景 小分组、嵌入式 任意长度消息,多块数据加密

总结:

  1. XTEA = TEA 改进版,固定 64-bit 分组,key 由 sum 决定,轮数固定。
  2. XXTEA = XTEA 的多块扩展版,可加密任意长度数组,轮函数覆盖全数组,每块受邻居影响,key 由块索引决定,扩散性更强。
  • Title: xxtea
  • Author: HuAmI
  • Created at : 2025-12-15 22:59:57
  • Updated at : 2025-12-15 23:45:17
  • Link: https://redefine.ohevan.com/2025/12/15/xxtea/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments