密码学_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算法结构图

线性反馈移位寄存器LFSR

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

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

  LFSR初始化模式

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


模2得31次方-1乘法和模2得31次方-1加法的实现自行学习或者参见GB/T33133.1-2016附录B。

  LFSR工作模式

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

比特重组BR

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

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

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

非线性函数F

 

        其中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表

 S1/S3表

密钥装入过程

 

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

 加密流程

        初始化阶段

        工作模式阶段

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

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

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

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值