第一周预习报告
AI 对学习内容的总结
总结
根据提供的文档内容,前两章主要介绍了密码学的基础知识以及在实际中的应用案例,并涉及了一些有关密码学开发环境搭建的内容。以下是前两章的总结:
第1章 密码学概述
密码学历史悠久,起源于公元前400年左右,直到二战后才逐渐揭开神秘面纱,走入公众视野。随着信息技术的发展,尤其是互联网、电子商务和电子政务的兴起,越来越多的个人信息需要保护,这也推动了密码学的发展。本章还讲述了苏格兰女王玛丽的故事,她在与英格兰女王伊丽莎白一世的斗争中,试图通过使用密码保护通信,但最终被对手破解,导致她的命运发生转折。
第2章 搭建C和C++密码开发环境
这一章节介绍了如何在不同的操作系统上搭建密码学开发环境,包括Linux和Windows系统。具体步骤如下:
-
在Linux上安装OpenSSL:
- 解压下载好的OpenSSL压缩包。
- 进入解压后的目录,使用
./config
命令进行配置。 - 使用
make
命令编译OpenSSL。 - 最后使用
make install
命令安装OpenSSL。
-
在Windows上编译安装GmSSL:
- 解压GmSSL压缩包。
- 安装ActivePerl和Visual Studio 2017。
- 使用管理员权限打开“VS 2017的开发人员命令提示符”,并切换到GmSSL目录。
- 运行
perl Configure VC-WIN32
命令进行配置。 - 使用
nmake
命令编译GmSSL。 - 使用
nmake install
命令安装GmSSL。
此外,还简要介绍了如何使用OpenSSL的一些命令行工具,例如查看版本信息、查看支持的加密算法列表、以及获取命令的帮助信息。
总结
这两章的内容涵盖了密码学的基础理论知识和实际操作技能。第一章通过历史故事引出了密码学的重要性,并阐述了现代密码学的发展背景。第二章则详细说明了如何在不同平台上搭建密码学开发环境,为后续深入学习密码学技术打下了基础。通过这些内容的学习,读者可以了解到密码学的基本概念,并掌握基本的密码学工具的使用方法。
对 AI 总结的反思与补充
反思与补充
在密码学简史中还有大量内容需要我们学习以及注意,比如对于对称密码与非对称密码的区别以及应用场景的不同之处,需要我们花时间去了解和学习,并且辨别其中不同,这样才能更好的理解以及应用,以及对于加密算法的了解,当然只是了解的话,知道各个密码算法的名称以及类别足以,但要是系统性学习的话,就得逐步学习RSA、SM类、AES等等的实现方法及其应用范围,这需要大量的时间。
第二章,主要是在ubuntu与openeuler中升级以及应用openssl以及gmssl,我在virtualbox中实现的较为顺利,遇到的问题会在后面展示。
学习思维导图
代码
mindmap
root((第一周预习报告))
密码学概述
玛丽女王密码
密码学简史
密码学五元组
需要解决的五大问题
加密算法分类
::icon(fa fa-book)
开发环境搭建
重要的两个密码库 OpenSSl<br/>和Crypto++
OpenSSl
openssl支持的对称加密算法与非对称加密算法
支持的信息摘要算法
密钥和证书管理
BIO接口与EVP接口
在windows下编译openssl1.1.1与1.0.2m
测试使用openssl命令
c++密码开发Crypto++库
实践
安装国产库GMssl
在Linux下编译安装
Ubuntu
openeuler
openssl
思维导图截屏
基于AI学习
学习内容
学习者:我在学习密码学中的五元组知识点,请你以苏格拉底的⽅式对我进⾏提问,⼀次⼀个问题
AI:1 份文档阅读完成
当然可以。苏格拉底式提问是一种通过连续的提问来引导思考和探索问题本质的教学方法。我们将使用这种方法来帮助你深入理解密码学中的五元组。让我们从最基础的概念开始。
第一个问题
什么是明文(Plaintext),你能描述一下它的定义吗?
请先思考这个问题,然后再回答。
学习者:明文应该是,我们不想别人知道的内容,真正传递信息的内容
AI:1 份文档阅读完成
非常好,你已经抓住了明文的一个重要特征。为了更精确一点,明文是指在加密之前的原始信息,也就是我们希望保护的信息。它是未经任何变换处理的信息,可以直接被阅读和理解。
第二个问题
那么,什么是密文(Ciphertext)呢?你能尝试定义一下吗?
请考虑这个问题并给出你的答案。
学习者:将明文通过特定变化后,或者加密后的内容
AI:1 份文档阅读完成
很好,你已经接近了正确的定义。密文确实是明文经过加密算法处理后的结果,它是被转换过的信息形式,通常看起来是随机的、无意义的字符序列,以防止未经授权的访问。
第三个问题
接下来,请问什么是密钥(Key)?它在加密过程中起到什么作用?
请思考并回答这个问题。
学习者:密钥是加解密过程中的一个参数,控制加解密算法的操作
AI:1 份文档阅读完成
非常好!你已经很好地概括了密钥的基本作用。密钥确实是加解密算法中的一个关键参数,它决定了加密和解密的具体方式。
第四个问题
那么,什么是加密算法(Encryption Algorithm)?你能描述一下它的功能吗?
请继续思考并回答这个问题。
学习者:将明文加密为密文的计算方式
AI:1 份文档阅读完成
你的回答非常准确!加密算法确实是一种将明文转换为密文的计算过程或规则。它使用密钥来执行这种转换,使得即使别人截获了密文,也无法轻易地理解其内容。
第五个问题
最后,什么是解密算法(Decryption Algorithm)?它的作用是什么?
请思考并回答这个问题。
学习者:将密文转换为铭文的特定计算方式
AI:你的回答基本上是对的,但可以稍微更完整一些。解密算法是一种将密文转换回原始明文的计算过程或规则。它同样需要使用密钥来执行这一逆向转换,从而恢复出原始的信息。
学习者:针对我密码学中的五元组知识点,我理解了吗?
AI:从你对每个概念的回答来看,你已经掌握了密码学五元组的基本概念。让我们回顾一下你对每个概念的理解:
1. **明文(Plaintext)**:
- 你理解为“我们不想别人知道的内容,真正传递信息的内容”。这是对的,明文是未经加密的原始信息。
2. **密文(Ciphertext)**:
- 你认为是“将明文通过特定变化后,或者加密后的内容”。这也是正确的,密文是明文经过加密算法处理后的结果。
3. **密钥(Key)**:
- 你描述为“加解密过程中的一个参数,控制加解密算法的操作”。这个理解也很准确,密钥是用于加密和解密的关键参数。
4. **加密算法(Encryption Algorithm)**:
- 你定义为“将明文加密为密文的计算方式”。这是对的,加密算法负责将明文转换为密文。
5. **解密算法(Decryption Algorithm)**:
- 你解释为“将密文转换为明文的特定计算方式”。这也是正确的,解密算法负责将密文还原为原始的明文。
你对这些概念的理解是准确的,你已经掌握了密码学五元组的基本含义。如果你还有任何疑问或需要进一步澄清的地方,可以继续提问。总的来说,你已经很好地掌握了这些概念。
学习实践过程遇到的问题以及解决方式
一
在openeuler中安装gmssl时,发现openeuler的交互界面是黑白的,这样的话会很复杂在进行交互,所以利用娄老师发的链接中的步骤来进行安装图形化界面,具体如下
安装麒麟软件团队推出的 UKUI 桌面环境,UKUI 是麒麟软件团队历经多年打造的一款Linux 桌面,主要基于 GTK 和 QT 开发。与其它 UI 界面相比,UKUI 更加注重易用性和敏捷度,各元件相依性小,可以不依赖其它套件而独自运行,给用户带来亲切和高效的使用体验。 UKUI 支持 x86_64 和 aarch64 两种架构。
安装 UKUI:sudo dnf install ukui
在确认正常安装后,如果希望以图形界面的方式启动,请在命令行运行以下代码sudo systemctl set-default graphical.target
重启系统sudo shutdown -r now
重启后可看到图形界面,输入“用户名”“密码”进入系统,完成系统安装。
在安装过程中,发现系统内存不够,转到D盘后就可以直接安装。
二
在安装gmssl时不熟悉过程,请教同学以及上网查阅后解决问题,以及在刚开始启动virtualbox时遇到了error,我将所用到的链接都放到下面
解决gmssl安装链接
virtualbox启动error