1、ZUC算法简介
ZUC算法属于对称密码算法,具体来说是一种序列密码算法或流密码算法。ZUC算法以中国古代数学家祖冲之首字母命令。
ZUC算法标准包括三个部分:
GMT 0001.1-2012 祖冲之序列密码算法:第1部分:算法描述
GMT 0001.2-2012 祖冲之序列密码算法:第2部分:基于祖冲之算法的机密性算法
GMT 0001.3-2012 祖冲之序列密码算法:第3部分:基于祖冲之算法的完整性算法
可以看出ZUC可以提供机密性和完整性保护功能,其中机密算法称为128-EEA3,完整性保密算法称为128-EIA3。2011年9月,这两个算法与AES、Snow 3G共同成为4G移动通信密码算法国际标准。
ZUC包括两个版本,具体比较如下。ZUC 256bit版本面向5G通信安全标准,保障在后量子时代具备较长时间内移动通信的机密性和完整性。
版本 | 密钥长度 | IV | 密钥流位宽 | 认证标签长度MAC |
128比特版本 | 128b | 128b | 32b | 32b |
256比特版本 | 256b | 184b | 32b | 32/64/128b |
2、ZUC算法结构
ZUC算法逻辑有3个部分构成,从上到下依次是LFSR(线性反馈移位寄存器)、BR(比特重组)和F(非线性函数)。
LFSR包括16个31bit寄存器单元变量,运行模式有2种:初始化模式LFSRWithInitialisationMode(u)和工作模式LFSRWithWorkMode。
BR从LFSR的寄存器单元中抽取128b组成4个32比特字,计算过程为BitReconstruction。
F包含2个32bit记忆单元变量R1和R2,输入为3个32比特字,输出为1个32比特字。其中包含S为32比特的S盒交换。
3、ZUC算法运算过程(128版本为例)
3.1 密钥装入
将128bit的密钥k和128bit的初始向量iv扩展为16个31比特字作为LFSR寄存器变量的初始状态。具体过程如下:
3.2 初始化阶段
在3.1中已经完成LFSR的初态填入,这里再将F中32比特记忆单元变量R1和R2置为全0,然后重复执行32次(BitReconstruction—W-F(X0,X1,X2)—LFSRWithInitialisationMode(W>>1))操作。
3.3工作阶段(32bit密钥字输出)
首先执行一次BR、F和LFSRwithWorkMode,得到的输出W不用丢弃。
然后再来一次BR、F和L异或X3、FSRWithWorkMode,从而输出一个32比特的密钥字Z。
4、ZUC优点文章来源:https://www.toymoban.com/news/detail-602964.html
引入素数域运算LFSR、比特重组BR、最优扩散的线性变换(非线性函数F采用 S 盒和高扩散特性的线性变换 L)。通过对LFSR、BR和F三层结构的综合运用,ZUC算法具有很高的理论安全性,能够有效抵抗目前已知的攻击方法,具备较高的安全冗余、并且算法速度快、软/硬件实现性能都较好。文章来源地址https://www.toymoban.com/news/detail-602964.html
到了这里,关于商用密码应用与安全性评估要点笔记(密码算法ZUC)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!