Secure Hardware Design (Spring 2026)
Learn to attack processors… and learn to defend them!
Welcome to 6.5950/6.5951 (previously 6.S983 and 6.888)!
6.5950/6.5951 is a research-oriented course on secure hardware design. 6.5950/6.5951 will help you understand the critical security problems in modern hardware and common limitations of existing security solutions. Through a mix of lectures and paper discussions, we will learn the principles of various attacks and how to design effective hardware mitigations and hardware/software co-design solutions.
Feel free to post your anonymous feedback here during the semester.
Meeting Location and Times
Required Lectures: Mondays and Wednesdays from 1:00pm to 2:30pm in Room E25-111.
Note that participation is required at scheduled time; take this course only if you will generally be able to participate!
Lecture videos can be found on Panopto.
We will use Piazza for all course-related discussion.
Assignments and Grading
Starting Spring 2026, 6.5950/6.5951 now includes a cumulative, in-class exam. This differs from previous offerings of the course which had no formal assessments. Please plan accordingly.
6.5950/6.5951 will have an in-class exam for the Spring 2026 term. Your grade is based on three components:
-
Lab Assignments (80% for graduate version, 90% for undergraduate version): There will be 8 lab assignments. You will be asked to implement your own attacks that work on real machines (not simulators). You must complete all labs to pass this course. After the final lab has been released, we will release a graded (for completion), end-of-term survey for you to fill out. Please take the time to fill out the survey, as it will help us improve the course for future students.
-
Exam (10% for graduate and undergraduate version): There will be a cumulative, in-class exam on May 6th.
-
Paper Discussion (10% for graduate version): Each student taking the graduate version will be assigned a particular conference paper and presentation partner. You are expected to review relevant materials, write a presentation, and lead the class discussion for that topic. Although we will not be formally tracking attendance, we expect regular attendance and participation from all students (both undergraduate and graduate).
Grade distribution follows the following categories:
- A: [90, 100]
- B: [80, 90)
- C: [70, 80)
- F: [0, 65)
Staff
Professor Mengjia Yan
Email: mengjia at csail.mit.edu
Office: 32-G840
TA Kosi Nwabueze, Vincent Ulitzsch, Kelly Xu
Email: shd-staff at mit.edu
Office: 32-G786
Office Hours:
Kelly: Tuesdays 2:30pm–4:30pm (32-G7 Lobby)
Kosi: Wednesdays 11:30am–1:30pm (32-G7 Lobby)
Course Assistant Taylor Braun
Email: shd-staff at mit.edu
Prerequisites
6.5950/6.5951 is primarily intended for seniors, M.Eng, and PhD students who want to learn about how to design hardware processors with security as the primary goal. You should have a good understanding of basic computer architecture (i.e., a strong grasp of the material taught in 6.004) and experience with the C programming language.
6.5950/6.5951 is a 12-unit (3-0-9) subject. It is listed as an AUS/AAGS and TQE course.
Late Policy
Throughout the semester, you have 120 free late hours. You can use these free late hours if you are sick, have a busy week, or need more time to complete the lab. There are two ways that you could lose points due to late submissions. Firstly, after using all free late hours, there is 1% penalty per additional late hour. Secondly, if a single lab is submitted more than 120 hours late (even if part of them are free late hours), no credit will be awarded for that lab.
Please note that long weekends (Feb 14–16, Apr 18–20) and spring break (Mar 21–29) are excluded from late hour calculations.
In addition, extensions without penalty may be granted on a case-by-case basis with support from S3. Please email the staff to request an extra extension. If there are medical issues that require further accommodation, please contact the staff.
Collaboration Policy
Laboratory exercises should be completed individually, and the work you hand in must be your own. Copying another person’s work or allowing your work to be copied by others is a serious academic offense and will be treated as such. As a general rule, follow the MIT Academic Integrity Policy and, when in doubt, ask the course staff. Violations of this policy will be treated severely.
Examples of permitted collaboration
- Allowed: Talk to a friend about a lab assignment and discuss at a high level how to go about completing the assignment.
- Allowed: Ask a staff member for help if you are confused or stuck.
- Allowed: After you’ve completed and submitted your own lab, help a friend debug their code solely by looking at their code and trying to identify problems with it.
Examples of prohibited collaboration
- Not Allowed: Help a friend debug their code by bringing up your solution and comparing the two to identify differences.
- Not Allowed: Using code from a friend who previously took the class as a starting point for completing your labs and then making some modifications to that code.
- Not Allowed: Working together so closely that you are basically typing in your solutions side by side.
- Not Allowed: Copying any portion of someone elses work even if you make some modifications to it.
- Not Allowed: Sharing any portion of your code with someone else.
- Not Allowed: Get help from a friend who is looking at their solutions while helping you.
See the MIT Academic Integrity Policy.
Generative AI Policy
The use of generative AI tools, such as large language models (LLMs), is permitted for lab assignments. However, we caution that overuse may detract from your learning and your understanding of the concepts these labs are designed to teach. We recommend approaching these tools as collaborators to discuss high-level concepts rather than as a means to obtain direct solutions. Additionally, since exercises are finely tuned to specific hardware setups, AI agents may be unable to interact with or provide accurate support for many exercises.
Warning
You’ll learn how to attack computer systems in this class in order to better understand how to design defenses. Please don’t attack other people’s computers or information without their prior permission. As well as being a bad idea, it may be illegal or a violation of MIT network rules and can get you into serious trouble.