20221413杜佳妍《密码系统设计》第一周

news/2024/12/23 10:19:58/文章来源:https://www.cnblogs.com/RoyWang1108/p/18401932

第一周预习报告

学习内容

  • 《Windows C/C++加密解密实战》第 1,2 章

  • 第一章概念复习

  • 第二章主要在 Linux(Ubuntu,openEuler)上把软件更新到最新版(3.0版本以上)

AI 对学习内容的总结(1分)

要求

  • 让AI阅读学习内容并进行总结

总结

第一章概念复习

1. 基本概念

  • 密码学:一门研究信息系统安全保密的科学,包括密码编码学和密码分析学。
  • 密码编码学:研究如何安全地加密信息,防止未授权访问。
  • 密码分析学:研究如何在未知密钥的情况下从密文推演出明文或密钥。

2. 密码学要解决的5大问题

  • 机密性:确保信息不被非授权用户获取。
  • 可用性:保障信息资源随时可提供服务。
  • 完整性:确保信息在传输过程中未被篡改。
  • 认证性:验证消息来源和消息本身的真实性。
  • 不可否认性:确保用户无法否认其行为。

3. 密码学中的五元组

  • 明文:原始信息。
  • 密文:加密后的信息。
  • 密钥:加密和解密过程中使用的参数。
  • 加密算法:将明文转换为密文的函数。
  • 解密算法:将密文恢复为明文的函数。

4. 加解密算法的分类

  • 对称算法
  • 优点:运算速度快,密钥较短,密文长度与明文长度相同或相近。
  • 缺点:密钥分发需要安全通道,密钥量大,难以管理,难以解决不可否认问题。
  • 非对称算法
  • 优点:密钥分发容易,密钥管理简单,可实现数字签名。
  • 缺点:运算速度慢,密钥位数要求多,密文长度通常大于明文。

第二章C/C++密码库OpenSSL

1. OpenSSL概述

  • OpenSSL的重要性:广泛用于C/C++开发中,支持多种加密算法,利用面向对象设计方法,是提高面向对象设计能力的重要工具。
  • OpenSSL的历史:由Netscape公司提出SSL协议,Eric A.Young和Tim J. Hudson开发,后由OpenSSL项目组接管,支持SSL和TLS协议。
  • OpenSSL版本:从0.9.1版发展到1.1.1版,采用C语言开发,具有跨平台性,支持Linux、Windows、BSD、Mac等。

2. OpenSSL源代码模块结构

  • 模块划分:主要分为密码算法库、SSL协议库以及应用程序。
  • Crypto目录:包含所有密码算法库的源代码,是实现密码算法、密钥管理和证书管理的核心。

3. OpenSSL加密库调用方式

  • 调用方式:直接调用、通过OpenSSL加密库接口调用、通过Engine平台和OpenSSL对象调用。
  • Engine技术:允许用户自定义加解密函数,降低应用开发难度。

4. OpenSSL支持的对称加密算法

  • 算法种类:AES、DES、Blowfish、CAST、IDEA、RC2、RC4、RC5。
  • 模式支持:ECB、CBC、CFB、OFB。
  • 封装技术:使用EVP接口封装所有对称加密算法,提供统一API。

5. OpenSSL支持的非对称加密算法

  • 算法种类:DH、RSA、DSA、ECC。
  • 用途:密钥交换、数字签名、数据加解密。
  • 封装技术:使用EVP技术封装,提供统一API。

6. OpenSSL支持的信息摘要算法

  • 算法种类:MD2、MD5、MDC2、SHA1、RIPEMD。
  • 封装技术:使用EVPDigest接口封装,提供统一API。

7. OpenSSL密钥和证书管理

  • 标准实现:ASN.1证书和密钥相关标准。
  • 编解码功能:DER、PEM、BASE64。
  • 密钥保护:提供私钥加密保护功能。
  • 证书管理:实现X.509标准编解码、PKCS#12和PKCS#7格式编解码。

8. 面向对象与OpenSSL

  • 面向对象方法:在C语言中实现面向对象设计,提高系统的灵活性和可重用性。
  • BIO接口:封装文件及网络操作,提供统一的I/O操作接口。
  • EVP接口:封装所有加密算法,提供统一的加密和解密功能。

学习总结

通过学习OpenSSL,开发者可以:

  • 掌握如何在C/C++程序中使用OpenSSL进行加密解密。
  • 理解OpenSSL的源代码结构和模块划分。
  • 学习如何使用OpenSSL提供的对称和非对称加密算法。
  • 掌握证书和密钥的管理,以及如何使用EVP和BIO接口。
  • 提高面向对象设计能力,理解如何在C语言中实现面向对象的思想。

对 AI 总结的反思与补充(2分)

要求

  • AI总结的问题
  • 自己的补充

反思与补充

1. 反思

在利用AI助手进行总结学习的过程中,他能做到很好地将重点分类整理,但同时我意识到AI助手对概念的理解和总结是较为笼统的,并且实际应用中会面临更多的实际操作问题,这是在书本当中无法提供的。

2. 补充

第一章概念补充

  • 机密性解决方案:使用密码算法对需要保密的信息进行加密
  • 完整性解决方案:利用密码函数生成信息“指纹”​,实现完整性检验
  • 认证性解决方案:利用密钥和认证函数相结合来确定信息的来源
  • 不可否认性解决方案:对信息进行数字签名

第二章OpenSSL学习补充

  • 错误处理:在使用OpenSSL时,正确的错误处理机制是确保系统稳定性的关键,需要熟悉OpenSSL的错误代码和处理方法,以便于在出现问题时能够快速定位和解决。
  • 配置管理:OpenSSL的配置管理对于确保系统的安全性和性能至关重要,需要了解如何配置OpenSSL的参数,以满足特定的安全需求和性能要求。

学习思维导图(2分)

要求

  • Mermaid 代码与截图(参考Mermaid MindMap语法)或者提交思维导图链接(如果使用线上编辑器,推荐processon,xmind,...)

思维导图




基于 AI 的学习(2分)

要求

  • 至少找到自己理解不是太好 2 个概念,让 AI 对自己进行苏格拉底提问

  • 参考下面提示语或者使用 AI Agent

提示词:“我在学***X知识点,请你以苏格拉底的方式对我进行提问,一次一个问题”

  1. 核心是要求AI工具:“请你以苏格拉底的方式对我进行提问”

  2. 然后AI工具就会给你提问,如果不知道问题的答案,可以反问AI:“你的理解(回答)是什么?”

  3. 如果你觉得差不多了,可以先问问AI工具:“针对我XXX知识点,我理解了吗?”

  4. AI工具会给出它的判断,如果你也觉得自己想清楚了,可以最后问AI工具:“我的回答结束了,请对我的回答进行评价总结”,让它帮你总结一下。

学习内容

1. OpenSSL





2.OpenSSL加密库调用

在此过程中我发现,在向AI助手询问关于OpenSSL加密库调用相关知识点时,AI助手对我提出的问题与询问OpenSSL相关知识点时一致

学习实践过程遇到的问题与解决方式(AI 驱动,优先使用AI工具解决问题)(2分)

  • 问题 1:在阅读教材过程中,有些专业性较强的内容较为难懂

  • 解决过程:向AI助手进行提问

  • 问题2:仅仅依靠阅读教材上的书面文字,无法对所学内容有较为清晰的认识

  • 解决过程:通过向AI助手求助,可得到代码示例

作业提交要求(1分)

  1. 提交Markdown 文件,文档命名“学号姓名《密码系统设计》.md”

  2. 提交Markdown 文件转为 PDF,文档命名“学号姓名《密码系统设计》第 X 周.pdf”

  3. 提交代码托管链接(可选):学号姓名 gitee(github) 链接

  4. 内容质量高有加分

参考资料

  • AI工具(你使用的AI工具及其链接)

  • Kimi

  • 图书

  • 《Windows C/C++加密解密实战》

  • 网站

  • openssl

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

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

相关文章

信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查找、二分比较、循环结构、图领奖

信息学奥赛初赛天天练-85-NOIP2014普及组-基础题4-链表、随机存取、顺序存取、二分查找、二分比较、循环结构、图领奖 PDF文档公众号回复关键字:202409071 NOIP 2014 普及组 基础题4 9 下列选项中不属于图像格式的是( ) A JPEG 格式 B TXT 格式 C GIF 格式 D PNG 格式 10…

【笔记】【THM】Phishing(网络钓鱼)(这个模块还没学完)

钓鱼佬永不空军!!! (请不要违反法律进行网络钓鱼)【笔记】【THM】Phishing(网络钓鱼) 了解如何分析和防御网络钓鱼电子邮件。使用各种技术调查现实世界的网络钓鱼尝试。 在本模块中,您将学习如何动手分析各种网络钓鱼攻击。从检查电子邮件的源属性到查看恶意网络钓鱼附…

Kafka原理剖析之「Topic创建」

一、前言 Kafka提供了高性能的读写,而这些读写操作均是操作在Topic上的,Topic的创建就尤为关键,其中涉及分区分配策略、状态流转等,而Topic的新建语句非常简单 bash kafka-topics.sh \ --bootstrap-server localhost:9092 \ // 需要写入endpoints --create --topic topicA …

SpringBoot集成WebSocket实现后端向前端推送数据

SpringBoot集成WebSocket实现后端向前端推送数据 这里最好了解一定 websocket 参考地址:https://developer.mozilla.org/zh-CN/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications在此之前可以了解一下【轮询(Polling)、长轮询(Long Polling)、服务器发送…

扫码获取微信公众号用户的openid,向某个用户推送消息

1. 生成二维码: 生成二维码比较简单的方法是直接使用phpqrcode程序包(可在网上下载得到)。 若想获得ThinkPHP支持,需将程序包放在ThinkPHP/Extend/Vendor目录下,让后在程序中引用,代码如下: vendor("phpqrcode.phpqrcode"); //要生成二维码的数据 $text="…

京东h5st参数js逆向

扣代码的环节挺简单的就不讲了 直接到重点 发现许多包都会有一个h5st的加密参数 那么我们就要看这个参数是怎么生成的我们可以根据请求堆栈 找到h5st的入口 当然还有一种更简单的方法 就是直接全局搜索h5st 这里采用后者这里sign函数就是h5st生成的地方 但是这是个promise异步函…

GenRec论文阅读笔记

GenRec: Large Language Model for Generative Recommendation论文阅读笔记 Abstract ​ 本文提出了一种使用大型语言模型(LLM)的创新推荐系统方法,该方法纯粹基于原始文本数据,即使用项目名称或标题作为项目 ID,而不是创建精心设计的用户或项目 ID。更具体地说,我们提出…

XGBoost模型 0基础小白也能懂(附代码)

XGBoost 是 eXtreme Gradient Boosting 的缩写称呼,它是一个非常强大的 Boosting 算法工具包,优秀的性能(效果与速度)让其在很长一段时间内霸屏数据科学比赛解决方案榜首,现在很多大厂的机器学习方案依旧会首选这个模型。XGBoost模型 0基础小白也能懂(附代码) 原文链接 …

编程技术开发105本经典书籍推荐分享

最近整理了好多的技术书籍,对于提高自己能力来说还是很有用的,当然要有选择的看,不然估计退休了都不一定看得完,分享给需要的同学。 编程技术开发105本经典书籍推荐:https://zhangfeidezhu.com/?p=753 分享截图本文来自博客园,作者:张飞的猪,转载请注明原文链接:http…

ArcMap批量附色操作,并保存mxd

ArcMap批量附色操作,并保存mxd 1、对单文件操作 1、保存当前ArcMap中打开的shp文件为mxd文件 打开label_shp_root中的任意一个shp文件夹保存成mxd文件2、对当前在arcmap中打开的shp文件应用color配色 color配色是手动设置好一个shp文件夹的配色方案并保存成mxd文件应用color.m…

Linux 忘记密码

最近需要搞几台虚拟机,之前的vm密码进不去 找了几个方法 不是很贴切, Centos7 重启页面 e--> grub ,在linux16 行 修改ro 为rw,最后加上 init=/bin/sh F10 或Ctrl+x进入这里的 rw代替 进os之后 mount -o remount,rw /passwd touch /.autorelabel exec /sbin/init

使用 `Roslyn` 分析器和修复器对.cs源代码添加头部注释

之前写过两篇关于Roslyn源生成器生成源代码的用例,今天使用Roslyn的代码修复器CodeFixProvider实现一个cs文件头部注释的功能, 代码修复器会同时涉及到CodeFixProvider和DiagnosticAnalyzer, 实现FileHeaderAnalyzer 首先我们知道修复器的先决条件是分析器,比如这里,如果要对代…