首页 > 其他分享 >20221413杜佳妍《密码系统设计》第一周

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

时间:2024-09-07 17:24:45浏览次数:10  
标签:加密 第一周 AI OpenSSL 20221413 密码 算法 密钥 杜佳妍

第一周预习报告

学习内容

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分)

要求

思维导图




基于 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,OpenSSL,20221413,密码,算法,密钥,杜佳妍
From: https://www.cnblogs.com/RoyWang1108/p/18401932

相关文章

  • 开学第一周9.1周日学习日记
    算法cf1989ABCDhttps://codeforces.com/contest/1989B最长公共子序列 //相当于枚举以b[i]为起点遍历a的最长公共子序列 //因为是子序列所以abacccab即使后面先取了第一个a也不影响最长长度#include<bits/stdc++.h>usingnamespacestd;voidsolve() { stringa......
  • 暑假第一周
    学习Hadoop数据库完成Hadoop基本概念学习本周我主要学习了Hadoop的基本概念和架构,涵盖了Hadoop的核心组件,如HDFS(HadoopDistributedFileSystem)和MapReduce。通过阅读官方文档、在线教程和相关书籍,我掌握了Hadoop的工作原理和主要功能。我还观看了几个教学视频,深入理解了HDFS......
  • 数据结构学习第一周
    本文需要掌握的知识1.认识数据结构2.了解数据结构(逻辑结构)的分类3.内存储器模型以及分配方式(物理结构)4.认识Node类5.简单了解泛型1.数据结构(D-S/DataStructure)1.1简介1.1.1数据分为原子数据和复合数据1.1.2结构分为逻辑结构和物理结构数据结构是由数据和数据......
  • 暑假集训第一周专题:树
    暑假集训第一周专题:树本专题其实还是看中对题目的阅读理解能力,dfs实现起来很简单,主要是知道题目到底要干嘛A.KuroandWalkingRoute题面输入输出思路即所有路线减去经过x到y的路线由x到y的路线,包括从某些点到x,经过一些点再到y,从y再到某些点有根据题目......
  • linux 第一周重点整合 (续)
    压缩指令:gzip说明:linux压缩文件为.gz(gzip)格式语法:gzip[选项]文件名选项:-r:可以将目录下的文件递归压缩-l:显示已经压缩文件的压缩信息-d:解压缩eg:gzipaa.c压缩aa.c文件gzip-daa.c.gz解压aa.c.gzgzip-ra递归压缩a文件夹,将a文件夹中的所有文件进行压缩,文件......
  • 最爽手撕算法个人笔记【第一周-数组】
    27.移除元素给你一个数组nums和一个值val,你需要原地移除所有数值等于val的元素。元素的顺序可能发生改变。然后返回nums中与val不同的元素的数量。假设nums中不等于val的元素数量为k,要通过此题,您需要执行以下操作:更改nums数组,使nums的前k个元素包含不......
  • 第一周
    弗洛伊德基本思想弗洛伊德算法作为求最短路径的经典算法,其算法实现相比迪杰斯特拉等算法是非常优雅的,可读性和理解都非常好。基本思想:弗洛伊德算法定义了两个二维矩阵:矩阵D记录顶点间的最小路径例如D[0][3]=10,说明顶点0到3的最短路径为10;矩阵P记录顶点间最小路径中的中......
  • 暑假第一周周报
    主要学习了二分算法:写了一些经典的二分算法;还写了一些和其他算法结合的二分:递归分治,题目:给一个数组{a},定义h(a,b)为在十进制下a+b与a的位数差,求和所有的h(ai,aj),0<i<j<n;不能暴力n方,用分治的思想,分解成最小的子问题求两个数的位数差,再层层往上归并,将后半段排序后,枚......
  • SMU Summer 2024 第一周周报 (zhaosang)
    学到了很多,不仅仅是学习方面的,在学校学跟在家寒假对比,天差地别吧。补题的过程中收获满满,最近练习二分三分,栈队列单调栈等习题,题目不简单,努力学习中。。打比赛也是,也有打的很惨的时候,我自己需要多总结找出原因,把短板补齐。总的来说,这个星期很累,但很爽!星期一:https://www.cnblogs......
  • hadoop第一周总结
    在Hadoop学习的第一个周,我经历了一段充实而又具有挑战性的学习过程。在这个过程中,我深入了解了Hadoop的基本概念、核心组件和工作原理。以下是我对本周学习的总结:首先,我开始了解Hadoop的概念和背景。Hadoop是一个开源的分布式存储和计算框架,旨在处理大规模数据集,并且具有高可靠性......