密码学¶
说明
本文档正在更新中……
课程介绍¶
注意
此为 2024-2025 春夏学期课程安排,仅供参考
bhh老师
课程内容¶
- 密码学涉及到的数学基础
- 古典密码
-
Hash 函数
- MD5
- SHA
-
分组密码工作模式与流密码
- DES 算法和 AES 算法
- RSA 算法
- 椭圆曲线算法
考核方式¶
期末总评 = 50 % 卷面 + 50 % 平时作业
平时作业只有 4 次,但是作业难度还是有的,需要动脑子
期末考试¶
考试形式¶
闭卷考试
考试题型¶
- 理论部分(50 分钟):单选题共 60 分,包含选择程序填空(从算法源代码中选取片段)
- 实验部分(80 分钟):函数题 + 程序填空题,共 4 题,共 40 分
考试内容¶
-
4 大算法:
- des:sbox,频繁的移位
- aes:shiftrow,mixcolumn,农夫算法
- rsa:加密,解密,签名,验证
- ecc:加密,解密,签名,验证
-
数学基础:加法逆元,乘法逆元(扩展欧几里得法)
- 古典密码算法:单表,多表,enigma
- Hash 算法:md5(填充规则),sha-1
- 流密码算法:rc4
- 分组加密模式:ecb,cbc,cfb
笔记¶
个人笔记¶
1 数学基础
2 古典密码
3 Hash 函数 MD5
4 分组密码工作模式
5 流密码算法 RC4
6 DES
7 AES
8 RSA
9 ECC
其他¶
个人感受¶
选课的时候,我看了一下教务网上的课程介绍,发现有什么 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。但我个人认为,与其花费时间和精力去维护这么一个旧东西,倒不如直接去用功能完善的新东西
老师讲课讲的很详细、很细致的,认真听了以后再去看源代码就很容易理解了