ZUC算法

news/2025/2/23 12:59:55/文章来源:https://www.cnblogs.com/qswz/p/18718595

1. 算法概述

ZUC(祖冲之密码算法)是我国发布的商用密码算法中的序列密码算法。可用于数据保密性保护、完整性保护等。

ZUC算法密钥长度为128比特,由128比特种子密钥和128比特初始向量共同作用产生32比特位宽的密钥流。

ZUC算法标准包括三个部分,相对应的国家和密码行业标准分别为GB/T 33133.1-2016《信息安全技术 祖冲之序列密码算法 第1部分:算法描述》​、GM/T 0001.2-2012《祖冲之序列密码算法 第2部分:基于祖冲之算法的机密性算法》​、GM/T 0001.3-2012《祖冲之序列密码算法 第3部分:基于祖冲之算法的完整性算法》​。

ZUC256版本算法采用256比特密钥与184比特的初始向量,可产生32/64/128比特三种不同长度的认证标签。目前暂未发布。

1)ZUC算法的结构

ZUC算法由线性反馈移位寄存器(LFSR)​、比特重组(BR)​、非线性函数F三个基本部分组成,如图所示。

 

ZUC算法结构在逻辑上分为上、中、下三层,其中上层是16级LFSR,中间层是BR,下层是非线性函数F。

上层:LFSR以一个有限域GF(231-1)上的16次本原多项式为连接多项式,输出具有良好的随机统计特性。LFSR的输出作为中层BR的输入。

中间层:BR从LFSR的状态中取出128比特,拼成4个字(X0,X1,X2,X3)​,供下层的非线性函数F和输出密钥序列使用。BR实现LFSR数据单元到非线性函数F和密钥输出的数据转换,其主要目的是破坏LFSR在素域GF(231-1)上的线性结构。结合下层的非线性函数F,BR可使得一些在素域GF(231-1)上的密码攻击方法变得非常困难。

下层:非线性函数F从中层的BR接收3个字(X0,X1,X2)作为输入,经过内部的异或、循环移位和模232加法运算,以及两个非线性S盒变换,最后输出一个32比特W。

最后,非线性函数F输出的W与BR输出的X3异或,形成ZUC算法的输出密钥字序列Z。

2)ZUC算法的使用

在生成密钥流时,ZUC算法采用128比特的初始密钥和128比特的IV作为输入参数,共同决定LFSR里寄存器的初始状态。随着电路时钟的变化,LFSR的状态被比特重组之后输入非线性函数F,每一拍时钟输出一个32比特的密钥流Z。随后,密钥流与明文按位异或生成密文。

3)基于ZUC的两种算法

基于ZUC的两种算法包括机密性算法128-EEA3和完整性算法128-EIA3。

---------------记录个人学习ZUC算法的笔记----------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/884816.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【API】终极 API 学习路线图

API 是 Internet 通信的主干。每个开发人员都需要了解 API。以下是涵盖最重要主题的路线图:API 简介API 是一组用于构建应用程序的协议和工具。存在不同类型的 API,例如 public、private 和 partner。 2. API 术语 需要了解各种 API 术语,例如 HTTP 版本、Cookie 和缓存。 3…

cs144-lab0

CS144: 计算机网络导论 2025年冬季 check0: 本次实验中大概四项任务:在电脑上安装GNU/Linux系统; 手动执行网络任务(如获取网页、发送邮件); 用C++编写一个从互联网获取网页的小程序; 实现网络的核心抽象之一:内存中的可靠字节流(在写入端和读取端之间)。1 配置GNU/L…

[ubuntu使用]安装微信

ubuntu 24.04 一段时间没用ubuntu系统了,刚换的笔记本,二手Thinkpad X1 Carborn 2018,结果装ubuntu24就是装不了,安装完成启动不了。无奈安装的ubuntu20,正常使用后,在更新的时候提示更新到ubuntu22和ubuntu24,最终也升级到最新了,不知道什么问题。 言归正传,使用的时…

2024“全球网络和软件品牌价值15强”——爱码士IT培训

2024“全球网络和软件品牌价值15强”排行榜英国品牌评估机构“品牌金融”(Brand Finance)发布2024“全球网络和软件品牌价值15强”排行榜(Internet & Software 15),微软、甲骨文、思爱普蝉联前三位。 品牌价值被理解为品牌所有者通过在公开市场上许可该品牌所获得的净经济…

第六讲 动态规划

第一题 最大子段和第二题 采药第三题 宝物筛选第四题 最长公共子序列

Nginx - [02] 安装部署

官网下载地址:http://nginx.org/en/download.html 001 || 安装[windows] 解压之后,在命令提示符窗口启动nginx.exe在浏览器访问80端口:localhost:80002 || 安装[linux] 1、下载tar包解压后执行./configure 2、执行make、make install 3、执行whereis nginx查找 4、在/usr/l…

前端实践问题

拖拽过程中,如果原本的元素消失了,onDrop还能触发么?具体表现是什么? 即使原始元素在拖拽过程中被移除了,只要拖拽操作未被中断,onDrop 事件仍然可以触发拖拽数据独立存储拖拽操作一旦开始(dragstart),浏览器会将拖拽数据存储在独立的 DataTransfer 对象中。即使原始元…

使用Dify快速搭建AI Agent智能助手应用

1 定义 智能助手(Agent Assistant),利用LLM的推理能力,自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,在无人类干预的情况下完成任务。 2 咋用智能助手? “探索”中找到Agent的应用模板,添加到工作区或在此基础自定义。在工作室也可从0编排一个Agent…

第二课 信用卡欺诈预测

目录数据预处理导包查看数据特征工程目标变量特征衍生特征选择信用卡正常消费和盗刷对比交易金额和交易次数信用卡消费时间分析交易金额和交易时间的关系特征分布(非常重要,帮助筛选特征) 数据预处理 导包 除了常规的导包,这里还有一行代码如下 pd.set_option(display.floa…

【自动化运维】AIOps的下一步走向哪里?

【摘要】本文从AIOps的演进谈起,提出了AIOps的挑战症结所在,重点分析AIOps是怎样的运维工作模式,其智能运维场景如何构建,以及大模型和AI Agent给场景带来的新思路。本文对AIOps的发展趋势有较深入的思考,值得同行学习借鉴。 【作者】彭华盛,广发证券数字化运维研发团队负…