【密码学】ZUC祖冲之算法

一、ZUC算法简介

ZUC算法(祖冲之算法)是中国自主研发的一种流密码算法,2011年被3GPP批准成为4G国际标准,主要用于无线通信的加密和完整性保护。ZUC算法在逻辑上采用三层结构设计,包括线性反馈移位寄存器(LFSR)比特重组(BR)非线性函数F。ZUC算法集包括祖冲之算法、加密算法128-EEA3和完整性算法128-EIA3,已被国际组织3GPP推荐为4G无线通信的第三套国际加密和完整性标准的侯选算法。

二、ZUC算法流程

  1. 关键步骤(Operation)
    LFSR:线性反馈移位寄存器生成一系列的内部状态。分为2种模式:初始化模式工作模式
    1.初始化模式:LFSR接收1个31比特字“的输人,对寄存器单元变量s0,s1…s15进行更新。
    2.工作模式:LFSR无输人,直接对寄存器单元变量s0,s1…s15进行更新。

在这里插入图片描述

比特重组(BR):从LFSR的寄存器单元中抽取128比特组成4个32比特字。
输入为LFSR寄存器单元变量s0,s2,s5,s7,s9,s11,s14,s15,输出为4个 32 比特字 X0、X1、X2、X3

在这里插入图片描述

非线性函数F:将LFSR生成的状态进行复杂的非线性变换,增强密钥流的随机性。把一个96比特压缩为32比特的一个非线性压缩函数。
F的输人为3个32比特字X0、X1、X2,输出为一个32比特字W。
在这里插入图片描述
密钥装入:密钥载入过程将128比特的初始密钥k和128比特的初始向量iv扩展为16个31比特长的整数,作为LFSR寄存器单元s0,s1…s15的初始状态。
在这里插入图片描述

2.算法运行

祖冲之算法的输入参数为初始密钥k初始向量iv正整数L,输出参数为L 个密钥字Z。算法运行过程包括初始化步骤工作步骤
在这里插入图片描述

初始化(Key and IV Setup)
调用密钥装载过程,将128比特的初始密钥k和128比特的初始向量iv装入到FSR的寄存器单元变量S0,S1,S2…S15中作为LFSR的初态;并置非线性函数F中的32比特存储单元R1和R2全为0。然后重复循环过程32次。
在这里插入图片描述
在这里插入图片描述
以下是ZUC算法的特点,以表格形式呈现:

特点描述
算法类型流密码算法
密钥长度128位
IV长度128位
输出生成32位的密钥流
结构由LFSR、BR(比特重组)和F(非线性函数)三部分组成
LFSR16级线性反馈移位寄存器,基于素域GF(2^31 - 1)的m序列
BR(比特重组)破坏LFSR在素域上的线性结构,增强随机性
F(非线性函数)包含S盒,提供非线性,确保算法安全的关键部分
S盒由4个8x8的S盒并置而成,其中S2=S0,S3=S1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抓跟ミgragon

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值