跳转至

密码学

说明

本文档正在更新中……

课程介绍

注意

此为 2024-2025 春夏学期课程安排,仅供参考

bhh老师

课程内容

  1. 密码学涉及到的数学基础
  2. 古典密码
  3. Hash 函数

    1. MD5
    2. SHA
  4. 分组密码工作模式与流密码

  5. DES 算法和 AES 算法
  6. RSA 算法
  7. 椭圆曲线算法

考核方式

期末总评 = 50 % 卷面 + 50 % 平时作业

平时作业只有 4 次,但是作业难度还是有的,需要动脑子

期末考试

考试形式

闭卷考试

考试题型
  • 理论部分(50 分钟):单选题共 60 分,包含选择程序填空(从算法源代码中选取片段)
  • 实验部分(80 分钟):函数题 + 程序填空题,共 4 题,共 40 分
考试内容
  1. 4 大算法:

    1. des:sbox,频繁的移位
    2. aes:shiftrow,mixcolumn,农夫算法
    3. rsa:加密,解密,签名,验证
    4. ecc:加密,解密,签名,验证
  2. 数学基础:加法逆元,乘法逆元(扩展欧几里得法)

  3. 古典密码算法:单表,多表,enigma
  4. Hash 算法:md5(填充规则),sha-1
  5. 流密码算法:rc4
  6. 分组加密模式:ecb,cbc,cfb

笔记

个人笔记

1 数学基础
2 古典密码
3 Hash 函数 MD5
4 分组密码工作模式
5 流密码算法 RC4
6 DES
7 AES
8 RSA
9 ECC

其他

bhh老师的个人网页

个人感受

选课的时候,我看了一下教务网上的课程介绍,发现有什么 rsa 算法之类的东西,刚好之前学习 git,配置 SSH key 的时候用到了 rsa,我就想着选上这门课来了解一下。不过现在看来,我个人对密码学不是很感兴趣,但是也不排斥学习这么一个新知识

这门课用的编辑器是 VC6 或者 Dev C++(包括期末考试的时候),比较老了

碎碎念

现在比较主流的 C 语言编辑器是 VS Code 或者 CLion,我看周围的同学包括我自己,用 VS Code 比较多,这门课用上 VC6 会比较不习惯

那老师平时可能用 VC6 比较多,接触 VS Code 会不习惯,可能也不会深入了解 VS Code 的功能。但是我还是挺希望这门课(包括别的涉及编程的课)能与时俱进一下,使用目前比较主流的编辑器

VC6 这个编辑器是 20 多年前的产品了,对现代操作系统兼容性较差,这门课用的 VC6 是“特供版”的。而且旧版编译器支持的功能有限,且可能存在漏洞。未来学生就业或是学习怎么可能还会接触 VC6 呢

老师之前上课说,VS Code 功能没有 VC6 多,但老师可能不是很了解 VS Code。VS Code 本身只是一个文本编辑器,不下载扩展甚至运行不了代码文件,只要下载了对应的扩展,支持的功能肯定是比 VC6 要多得多的

老师曾花时间去修 Dev C++ 的调试 bug。但我个人认为,与其花费时间和精力去维护这么一个旧东西,倒不如直接去用功能完善的新东西

老师讲课讲的很详细、很细致的,认真听了以后再去看源代码就很容易理解了

评论区

欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问