密码学_ZUC算法

目录

ZUC算法介绍

算法结构

线性反馈移位寄存器LFSR

  LFSR初始化模式

  LFSR工作模式

比特重组BR

非线性函数F

 加密流程


ZUC算法介绍

        祖冲之算法集(ZUC算法)是由我国学者自主设计的加密和完整性算法,包括祖冲之算法、加密算法128-EEA3和完整性算法128-EIA3,已经被国际组织3GPP推荐为4G无线通信的第三套国际加密和完整性标准的侯选算法。在日本福冈召开的第53次3GPP系统架构组会议上,我国祖冲之密码算法(ZUC)被批准成为新一代宽带无线移动通信系统(LTE)国际标准。(上述说明来自百度百科)

算法结构

        ZUC算法由线性反馈移位寄存器LFSR比特重组BR非线性函数F构成(根据GB/T33133.1-2016中所述如下ZUC算法结构图)看不懂暂时没关系,只需要记住总共分为三大步

密码学_ZUC算法_第1张图片

ZUC算法结构图

线性反馈移位寄存器LFSR

        LFSR分为两种模式:初始化模式工作模式

        两种模式都是对寄存器S0到S15进行更新。

  LFSR初始化模式

        LFSR接收1个31比特字 u 的输入,对寄存器单元变量s0,s1,...s15进行更新,计算过程如下:

密码学_ZUC算法_第2张图片
模2得31次方-1乘法和模2得31次方-1加法的实现自行学习或者参见GB/T33133.1-2016附录B。

  LFSR工作模式

        和初始模式的区别是没有输入参数u,如下图

密码学_ZUC算法_第3张图片

比特重组BR

        输入为LFSR寄存器单元变量s0,s1,...s15

        输出为4个32比特字X0、X1、X2、X3      

        比特重组就是从LFSR的16个寄存器单元中按一定规则抽取128比特组成4个32比特字X0、X1、X2、X3。

非线性函数F

密码学_ZUC算法_第4张图片

 密码学_ZUC算法_第5张图片

        其中S[参数]指的是S盒代换,其解释如下:
        32比特S盒S由4个小的8x8的S盒并置而成,即S=(S0,S1,S2,S3),其中S0=S2,S1=S3。
设S(或S)的8比特输人为x。将x视作两个16进制数的连接,即x=hl.则表中第h行和第l列交叉的元素即为S0或S1)的输出。
        设S盒S的32比特输人X和32 比特输出Y分别为:
X=x0 ‖ x1 ‖ x2 ‖ x3
Y=y0 ‖ y1 ‖ y2 ‖ y3
替换前的S=(x0,x1,x2,x3),替换后的S=(y0,y1,y2,y3)

例如:x0经过S0表替换得到y0

S0/S2表

密码学_ZUC算法_第6张图片

 S1/S3表

密码学_ZUC算法_第7张图片

密钥装入过程

密码学_ZUC算法_第8张图片

 

密码学_ZUC算法_第9张图片

         si就是密钥k和初始向量iv分别拆分成16份,再和di共同组成。

 加密流程

        初始化阶段

密码学_ZUC算法_第10张图片

        工作模式阶段

密码学_ZUC算法_第11张图片

        这里L的值是根据明文长度对32取模后上取整得到的,最后将得到的L个密钥字Z和明文做亦或操作即可得出密文。

参考文献:GB/T33133.1-2016

写作不易,转载请注明,学海无涯,如有错误请小伙伴们不吝赐教。

你可能感兴趣的:(加密算法,密码学)