2025-2026-1 20231301 《信息安全设计》第三周学习总结

news/2025/9/28 20:50:46/文章来源:https://www.cnblogs.com/twilight0966/p/19117554

View Post

2025-2026-1 20231301 《信息安全设计》第三周学习总结

2025-2026-1 20231301 《信息安全设计》第三周学习总结

目录
  • 作业信息
  • 学习内容总结
    • 杂凑函数概述
      • 1. 基本概念
      • 2. 核心特性
      • 3. 安全要求
    • 杂凑函数分类
      • 1. 不带密钥杂凑函数
      • 2. 带密钥杂凑函数(HMAC)
    • SM3算法详解
      • 1. 算法结构
      • 2. 算法流程
      • 3. 核心组件
      • 4. 代码实现关键
    • HMAC机制
      • 1. 基本原理
      • 2. 设计目标
      • 3. 算法步骤
    • SHA系列算法
      • 1. 算法比较
      • 2. SHA-256核心流程
    • C语言实现要点
      • 1. 数据类型处理
      • 2. 多文件组织
      • 3. Makefile示例
    • 思维导图
    • 安全建议

作业信息

作业 链接
作业课程 <班级>(2025-2026-1 信息安全设计)
作业要求 <作业>(2025-2026-1 信息安全设计 预习作业要求)
作业目标 《Head First C 嗨翻C语⾔》 第四章
《Windows C/C++ 加密解密实战》> 预习第四章
作业正文 <博客>(第三周学习总结)

学习内容总结

杂凑函数概述

1. 基本概念

杂凑函数(Hash Function),又称哈希函数、消息摘要函数或散列函数,是一种将任意长度的输入消息转换为固定长度输出的单向函数。如图1所示:

2. 核心特性

  • 压缩性:任意长度输入→固定长度输出
  • 单向性:难以从输出反推输入
  • 抗碰撞性:难以找到两个不同输入产生相同输出
  • 雪崩效应:输入微小变化导致输出巨大变化

3. 安全要求

输入长度任意
输出长度固定(至少128位)
计算效率高
抗碰撞性

杂凑函数分类

截屏2025-09-28 下午8.35

1. 不带密钥杂凑函数

仅用于完整性校验
如MD5、SHA系列、SM3

分类:
弱单向(OWHF):给定h,难找m使H(m)=h
强单向(CRHF):难找不同m1,m2使H(m1)=H(m2)

2. 带密钥杂凑函数(HMAC)

提供认证功能
需要共享密钥
可用于消息认证码(MAC)

SM3算法详解

1. 算法结构

SM3采用Merkle-Damgard结构,如图:

截屏2025-09-28 下午8.38

2. 算法流程

填充:附加"1"+k个"0"+长度值

示例:消息"abc"填充后:

61626380 00000000 00000000 00000000
00000000 00000000 00000000 00000018

迭代压缩:

分组处理512位数据块
使用压缩函数CF进行迭代

输出:256位哈希值

3. 核心组件

初始值IV:8个32位字
常量Tj:分段定义
布尔函数:FFj和GGj
置换函数:P0和P1

4. 代码实现关键

// 压缩函数核心
for(int j=0; j<=63; ++j) {SS1 = SL(SL(A,12) + E + SL(Tj(j),j), 7);SS2 = SS1 ^ SL(A,12);TT1 = FFj(j,A,B,C) + D + SS2 + W1[j];TT2 = GGj(j,E,F,G) + H + SS1 + W[j];D = C;C = SL(B,9);B = A;A = TT1;H = G;G = SL(F,19);F = E;E = P0(TT2);
}

HMAC机制

1. 基本原理

HMAC = H(K⊕opad || H(K⊕ipad || M))

2. 设计目标

直接使用现有哈希函数
保持原哈希函数性能
简单密钥处理
明确的安全边界

3. 算法步骤

调整密钥K长度
K⊕ipad
附加消息并哈希
K⊕opad
附加中间结果并哈希

SHA系列算法

1. 算法比较

算法 输出长度 分组长度 安全性
SHA-1 160位 512位 已不安全
SHA-256 256位 512位 安全
SHA-512 512位 1024位 安全
SM3 256位 512位 安全

2. SHA-256核心流程

  • 预处理:填充+附加长度
  • 消息扩展:16字→64字
  • 压缩函数:64轮循环 -- 使用Ch、Maj、Σ0、Σ1等逻辑函数
  • 最终哈希:拼接中间状态

C语言实现要点

1. 数据类型处理

// 正确处理数据类型转换
float z = (float)x / y;  // 显式类型转换

2. 多文件组织

project/
├── encrypt.h // 函数声明
├── encrypt.c // 函数实现
└── main.c // 主程序

3. Makefile示例

makefileCC = gcc
CFLAGS = -Wallmessage_hider: message_hider.o encrypt.o$(CC) $(CFLAGS) -o $@ $^%.o: %.c$(CC) $(CFLAGS) -c $<

思维导图

截屏2025-09-28 下午8.46

安全建议

避免使用MD5、SHA-1等已被破解算法
推荐使用SHA-256、SHA-3或SM3
HMAC密钥长度应不小于哈希输出长度
注意抵抗生日攻击(输出长度≥256位)

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

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

相关文章

SQL逐字稿

古法处理中...

2025攻丝机厂家 TOP 企业品牌推荐排行榜,全自动,半自动,转盘,伺服,平推,全自动钻孔,半自动钻孔攻丝机公司推荐

引言在工业自动化加速渗透的当下,攻丝机作为机械加工领域的关键设备,其性能与稳定性直接影响企业生产效率与产品精度。然而当前市场中,攻丝机产品质量参差不齐,部分设备存在故障率高、精度不足、适配性差等问题,不…

网页中的基本元素有哪些网站优化是往新闻中心发新闻吗

#1.python程序中__name__的作用是什么?__name__这个系统变量用来表示程序的运行方式. 如果程序在当前膜快运行,__name__的名称就是__main__, 如果不在(被调用),则显示为导入模块的名称.扩展:常常这样写if __name__ "__main__":来表名这是整个工程开始运行的入口.效…

实用指南:微信公众号网页调试, 某讯参数,drviceToken V2

实用指南:微信公众号网页调试, 某讯参数,drviceToken V2pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

wap网站开发价格网页页面设计报价

Blazor不得不说真是好东西&#xff0c;极大的提升了开发效率&#xff0c;很多的页面交互功能基本上只需要写很少的代码就能实现了&#xff0c;而且还是无js实现&#xff0c;你也绝对没有想到过&#xff0c;Blazor实现文件上传是有多么简单&#xff01;先说结论&#xff1a;Blaz…

网站建设实训的方法wordpress 图片打开慢

难度困难314 给定一个非空二叉树&#xff0c;返回其最大路径和。 本题中&#xff0c;路径被定义为一条从树中任意节点出发&#xff0c;达到任意节点的序列。该路径至少包含一个节点&#xff0c;且不一定经过根节点。 示例 1: 输入: [1,2,3]1/ \2 3输出: 6示例 2: 输入: …

织梦网站装修公司源码中铁建设集团有几个局

PC 终端作为最主流最高频的生产力工具&#xff0c;其操作系统承载着用户的大量场景、数据以及技能。随着生成式人工智能浪潮的来临&#xff0c;新的技术架构、交互模式和新的生态&#xff0c;都需要操作系统承担起更多责任&#xff0c;即需要新一代的操作系统产品 ——AIOS&…

Excel 转在线协作难题破解:SpreadJS 纯前端表格控件的高效的技术方案与实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2025 年芝麻灰厂家 TOP 企业品牌推荐排行榜,芝麻灰路沿石,花岗岩石材,火烧板,地铺石,板材,挡车球,桥栏杆,楼梯踏步,门牌石,水篦子公司推荐

在石材行业快速发展的当下,芝麻灰凭借坚固耐用、装饰性强的特质,成为市政工程、房地产建设等领域的热门选材。但市场上的芝麻灰厂家数量众多,资质参差不齐,让采购者面临诸多选择难题。部分厂家存在资源储备不足导致…

帮人注册网站_做app可以做网站背景音乐的英文歌曲

随着信息化时代的深入发展&#xff0c;数据库技术作为支撑信息化应用的核心技术&#xff0c;其重要性日益凸显。本次大会以“数据价值&#xff0c;驱动未来”为主题&#xff0c;聚焦数据库领域的前沿技术与最新动态&#xff0c;吸引了数千名业界专家、企业代表和数据库技术爱好…

网站管理密码高端网站建设网站定制

1.右键“此电脑”&#xff0c;点击管理 2.选择“存储”–磁盘管理 3.右键未分配磁盘–新建简单卷 4.一路默认设置即可

北京设计公司网站自己做网站能关联支付宝吗

MoE&#xff08;Mixture of Experts&#xff09;架构在人工智能领域具有以下优势&#xff1a; 1. **表现力强大**&#xff1a;MoE通过融合多个专家模型&#xff0c;能够更好地适应不同输入样本的特点&#xff0c;提高模型的表达能力&#xff0c;从而在处理复杂任务时表现出更高…

手机网站登陆模板安阳seo优化

学习和掌握QT6.3的技巧和入门方法&#xff0c;可以让你更快速地掌握和使用这个开发工具。下面是一些建议和步骤&#xff1a; 学习基础知识&#xff1a;在开始学习QT6.3之前&#xff0c;建议先了解一些基础知识&#xff0c;例如C编程语言和图形用户界面的基本概念等。这些知识可…

做网站所需技术wordpress 首页变量

相信不少同学在开发“微信支付”的时候遇到了无法获取Token的难题&#xff0c;这里贴出我成功获取Token的php源码&#xff1a; 步骤如下&#xff1a; 1&#xff0c;确保你服务器的php环境是搭建好的&#xff0c;意思就是可以正确运行php程序 2&#xff0c;确定微信Token访问你…

网站图片怎样做seo优化东莞网站设计制作

插入排序的最好的情况是O(n)&#xff0c;最坏的情况O(n^2),因此是稳定的 冒泡排序最好的情况是O(n)&#xff0c;最坏的情况O(n^2)因此是稳定的 //插入排序 void insert_sort(int* arr, int n) { int temp -1; for (int i1;i<n;i){ temp arr[i]; int j i - 1; //从后往前…

Node.js 记录删除:完整指南

Node.js 记录删除:完整指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco",…

革吉网站建设网页设计师的发展前景

mixins 是一个 js 对象&#xff0c;它可以包含我们组件中JS部分的任意功能选项&#xff0c;如&#xff1a;data、components、methods、created、computed 等等。我们只要将公用的功能以对象的方式传入 mixins 选项中&#xff0c;当组件使用 mixins 对象时所有 mixins 对象都将…

一般使用的分辨率的显示密度是多少dpi苏州网站建设优化

CCNA-第十四篇-NAT-下 这一篇是是针对一下华为设备的nat,然后讲讲链路聚合 下一篇来一个DHCP一点点的SDN的介绍 **然后讲完SDN就基本上CCNA结束了哦**华为的链路聚合叫Eth-trunk 思科的链路聚合叫Ether-Channel 华为静态NAT 环境如下 首先把他的telnet开起来,server也是…

2025.9.28

今天上早八,出去做美甲,用了4个小时,然后吃麻辣烫,不好吃,然后回学校上选修课

无旋Treap(非指针)实现

#include<bits/stdc++.h>namespace fastIO{template<typename T> inline void input(T& x){T s=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar()) if(ch==-) f=-1;for(;isdigit(ch);ch=getch…