当前位置: 首页 > news >正文

密码学学习记录

算法

ZUC算法

包括祖冲之算法、128-EEA3机密性算法、128-EIA3完整性算法

密钥长度为128bit,与128bit初始向量共同作用产生32bit的密钥流

zuc是序列密码算法,zuc算法负责生成密钥流,与明文异或获得密文

ZUC算法在逻辑上分为上中下三层。上层是16级线性反馈移位寄存器(LFSR),中层是比特重组(BR),下层是非线性函数F

上层LFSR:包括16个31位的寄存器s0~s15

初始化模式下接收一个31bit 的 u,而u是通过F函数输出的w向右循环一位获得的,

工作模式下不接收任何参数

俩个工作模式目的都是为了更新s0~s15的状态

中层 br 比特重组:从上层16个寄存器选取8个特定单元抽取128bit形成4乘32位,形成X0~X3

下层非线性函数F:

把x0~x2处理后的输出结果W与x3异或获得输出密钥流z

密钥装入:16个寄存器31位怎么装?

128bit的密钥分成16份,128bit IV 也份为16份,也就是每一份有8+8=16bit,

31-16=15bit,15bit作为中间的d值,查表获得。d0~d15是固定值

参数需要输入一个整数L,作用是根据明文长度确定获得L个密钥流z

sm4算法 我国第一个商用密码算法

数据分组长度为128比特,密钥为128bit,加密算法和密钥扩展算法都是32轮非线性迭代结构,

是平衡Feistel,加解密算法结构一致,解密时只需要将加密时的轮密钥逆序排列就可以从密文分组中恢复出明文分组。

基本密码部件

1 非线性字节变换S盒:八位输入,八位输出,实现非线性置换

置换规则:输入的高半字节为行号,低半字节为列号,然后查找s表,得到输出

2非线性字变换tao:混淆作用,具体是四个4盒并行置换也就是输入32bit记为A,输出32bit字

记为B

3字线性部件L变换:扩散作用,希望一个密文会被多个明文影响

输入为B,输出为C,是线性循环移位

2,10,18,24会考

tao和L合起来就是字合成变换T

轮密钥来源见下文密钥扩展算法

反序变换:把x35赋值给了Y0,类推

通过加密变换得到密文X0~X35,

密钥扩展算法

FK0~FK3 都是常数,参数CK也是常量32位

图里倒数第三行开头是rki

SM2

困难基于椭圆曲线上点群离散对数问题

基于椭圆曲线密码ECC

密钥在192~256,常用256

密钥对生成:生成私钥:随机数d

公钥计算:

公钥私钥生成过程中长度?

私钥为256时,公钥为256+256=512bit

密文比明文长多少?

c1经过倍乘为512,c3如果使用SM3为256bit,c2长度与明文长度相等

所以长512+256bit

SM9算法

是一种标识密码,08年申请型号,16年发布,将用户标识作为公钥。

原理:基于双线性对的标识密码

包含四个算法:数字签名算法,密钥交换协议,密钥封装协议,公钥加密算法

kgc和用户都各有一个公钥和一个私钥

分别是主密钥和用户密钥

主私钥和用户私钥都是256bit

主公钥是512bit,用户公钥为标识数据如手机号

http://www.jsqmd.com/news/523779/

相关文章:

  • Go语言基础之数组
  • 世毫九实验室九大衍生理论课题与技术攻关方向(初审意见)
  • ai---openClaw 配置企业微信
  • CloudFlare域名接入与Nginx真实IP获取实战指南
  • LeetCode 234. 回文链表
  • 永磁同步电机FOC最小损耗算法
  • ESP32开发板国内镜像加速安装指南(附2023最新可用JSON地址)
  • 48个适合人力资源工作和运营的AI提示词
  • 基于MATLAB Simulink的PEM电解槽制氢仿真模型研究
  • 【认知雷达(Cognitive Radar)与深度学习融合架构】第5章 LSTM时序预测与多目标轨迹关联
  • 探索异构混合阶多智能体系统的一致性:UGV 与 UAV 的协同之旅
  • 51单片机初相识
  • 基于多因子定价模型解析:美元强势与利率预期重构驱动的金价8连跌机制
  • Cube MX实战:如何用STM32F系列和ADS1255构建高精度电流源(附完整代码)
  • 分布式驱动电动汽车:最优横摆力矩控制与规则扭矩分配控制的对比研究——基于LQR计算与最小附着利...
  • 聚焦镀锌管/角钢/方管/螺旋管,精选本土标杆企业,助力工程采购决策 - 深度智识库
  • Timer-S1 正式发布:首个十亿级时序基础模型,预测性能达到 SOTA
  • 从这8道Swift题逆袭大厂:2025最新类型系统考点精讲(含泛型实战)
  • 从干系人管理到项目交付:绩效域全流程避坑指南
  • SCN-Adaboost随机配置网络模型的多特征输入二分类及多分类模型实现
  • OpenClaw本地快速部署指南及主流AI模型API接入方法
  • 都在用 Java8 或 Java17,那 Java9 到 16 呢?他们真的没用吗?
  • VideoAgentTrek-ScreenFilter免配置环境:中文Web界面一键启动全流程
  • DeepSeek总结:JDK8-JDK22重要新特性
  • 【56页PPT】工业互联网工业超脑智能制造智慧工厂解决方案:总体架构设计、九大核心价值、九大数字化详细功能介绍、五大要素......
  • 杰理之有USB mic 的同时还需要有16K的IIS 输出 声音异常问题【篇】
  • GriddyCode:用Lua脚本打造个性化代码编辑器的终极指南
  • 手把手教你用fscan+MSF搞定CTFshow内网靶场(附PHAR攻击技巧)
  • 基于多因子流动性模型的“黄金闪崩”解析:利率预期强化与资金再平衡驱动的金价8%下跌机制
  • 【高创新】基于优化的自适应差分导纳算法的改进最大功率点跟踪研究(Matlab代码实现)