【密码学】一文读懂ZUC算法

本文详细介绍了ZUC密码算法,包括其结构、线性反馈移位寄存器LFSR的工作原理、比特重组BR和非线性函数F的计算过程,以及密钥装入和算法的具体步骤。ZUC已被采纳为3GPP国际加密标准,并在中国成为国家密码标准。
摘要由CSDN通过智能技术生成

密码学 一文读懂ZUC密码

一文读懂ZUC

这次在来聊一个国产密码, 祖冲之算法(ZUC)是中华人民共和国政府采用的一种序列密码标准,由国家密码管理局于2012年3月21日发布,相关标准为“GM/T 0001-2016 祖冲之序列密码算法”,2016年10月成为中国国家密码标准(GB/T 33133-2016)。祖冲之算法于2011年9月被3GPP采纳为国际加密标准(TS 35.221),可供LTE移动终端选用。【维基百科】

算法简介

祖冲之算法结构分为三层, 第一层是线性反馈移位寄存器(LFSR), 第二层是比特重组(BR), 最后一层是非线性函数F, 下图参考参考资料当中的pdf。

ZUC-算法结构

线性反馈移位寄存器LFSR

初始化模式

在初始化模式下,LFSR接受一个31bit的字u, u是通过非线性函数F的32bit舍弃最低bit得到, 主要计算过程如下:

  • v = 2 15 S 15 + 2 17 S 13 + 2 21 S 10 + 2 20 S 4 + ( 1 + 2 8 ) S 0   m o d   ( 2 31 − 1 ) v=2^{15} S_{15}+2^{17} S_{13}+2^{21} S_{10}+2^{20} S_{4}+\left(1+2^{8}\right) S_{0} \bmod \left(2^{31}-1\right) v=215S15+217S13+221S10+220S4+(1+28)S0mod(2311)
  • S 16 = ( v + u )   m o d   ( 2 31 − 1 ) S_{16}=\left(v + u\right) \bmod \left(2^{31}-1\right) S16=(v+u)mod(2311)
  • 如果 S 16 = 0 S_{16} = 0 S16=0, 则令 S 16 = 2 31 − 1 S_{16} = 2^{31} - 1 S16=2311
  • ( S 1 S_1 S1, S 2 S_2 S2, …, S 16 S_{16} S16) -> ( S 0 S_0 S0, S 1 S_1 S1, …, S 15 S_{15} S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值