# MIT6.1600: Foundations of Computer Security

## 课程简介

- 所属大学：MIT
- 先修要求：离散数学，编程基础，计算机系统基础
- 编程语言：Python3
- 课程难度：🌟🌟🌟
- 预计学时：50小时

MIT 的计算机系统安全本科生课程，共分为 authentication, transport security, platform security, software security, 和 human/end-user security 五个模块。课程组织还是相当清晰的：authentication 关注于认证安全，即如何证明计算机世界的“你”确实是“你”。接着讲解大家了解较多的通信安全，例如数据传输的加密解密，密钥的交换等。但传输是一方面，代码最终需要在终端上执行，这就涉及到运行代码的平台本身甚至软件代码本身的安全性。最后课程还会讲一些关于隐私安全的内容，上升到社会学的范畴去讨论群体信息安全。学完该课程，你将会掌握计算机安全的很多重要基本概念，例如公钥私钥加密算法、哈希算法、电子签名、密钥交换算法等等。除了稍显复杂枯燥的数学和定理证明外，课程中还会结合具体知识点讲解很多现实发生的安全漏洞，让你对这些安全概念有更感性的认识。此外，还有6个课程实验让你通过编程实现很多漏洞的利用，在实际中加深对知识的理解，个人感觉还是很有意思的。

## 课程资源

- 课程网站：[fall23](https://61600.csail.mit.edu/2023/), [fall22](https://61600.csail.mit.edu/2022/)
- 课程视频：参见课程网站
- 课程教材：没有指定教材，每节课有 notes
- 课程作业：一共6个实验，难度适中

## 资源汇总

@PKUFlyingPig 在学习这门课中用到的所有资源和作业实现都汇总在 [PKUFlyingPig/MIT6.1600 - GitHub](https://github.com/PKUFlyingPig/MIT6.1600) 中。