ZUC 是什么
ZUC(祖冲之序列密码算法,GM/T 0001)是我国自主设计的序列密码,输出 32 位密钥流字,用于链路数据的加密与完整性保护。它最广为人知的身份是 3GPP 选定的 128-EEA3 加密算法与 128-EIA3 完整性算法,被 LTE 空口数据保护采用,后续 5G 也有基于 ZUC 的算法套件。序列密码的特点是加解密速度快、便于硬件实现,适合对时延和吞吐有要求的链路场景。
基本信息
| 标准 | GM/T 0001-2012《祖冲之序列密码算法》 |
|---|---|
| 国际采用 | 3GPP LTE:128-EEA3(加密)与 128-EIA3(完整性),规范见 TS 35.221 系列 |
| 结构 | 16 级线性反馈移位寄存器(LFSR)+ 比特重组(BR)+ 非线性函数 F |
| 输入参数 | 128 位密钥与 128 位初始向量(ZUC-128);ZUC-256 面向 5G,支持更长的密钥与 IV |
| 输出 | 32 位密钥流字,按需取用与明文异或完成加密 |
| 完整性用法 | 128-EIA3 为基于 ZUC 的消息认证码,用于校验数据未被篡改 |
结构三部分的作用
| 部件 | 作用 | 说明 |
|---|---|---|
| LFSR | 产生长周期的内部状态序列 | 在素域上定义的本原多项式递推,是算法周期与统计特性的基础 |
| 比特重组 BR | 从 LFSR 状态抽取比特拼装成字 | 把状态送入非线性函数并输出,是状态与输出之间的桥梁 |
| 非线性函数 F | 引入非线性混淆 | 含两个 32 位记忆单元与 S 盒,破断线性关系 |
| 初始化 | 密钥与 IV 装载后运行预热 | 预热轮数使状态充分扩散,避免初始相关性影响输出 |
企业侧的关注点
- 使用方式:企业通常通过符合规范的通信设备或密码模块使用 ZUC,很少自行实现算法
- 验收依据:核对设备声明的算法与检测认证证明,确认支持的是 EEA3/EIA3 还是仅传统算法
- 固件版本:算法实现的合规性依赖厂商固件与认证范围,升级前确认证明是否随版本更新
- 密钥与 IV:链路密钥与 IV 的生成、更新周期由设备与核心网协商,需确认不出现固定或复用
- 场景边界:ZUC 的规范定位偏重移动通信链路保护,文件加密等通用场景应选对应算法
- 互操作:跨厂商设备对接时,先做一次带流量的互通测试,确认算法套件协商结果
自研实现只在有明确测试能力时考虑:序列密码的实现细节(初始化并行化、侧信道防护)直接影响安全性,用未经验证的实现替代成熟模块,风险远大于收益。
验收材料建议同时保留设备的算法声明、认证证明与互通测试记录;只凭厂商口头说明「支持国密」,在检查与招标评审中难以作为依据。