Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Secure Hardware Design (Spring 2024)

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.

Previous years’ website

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 56-114.

Note that participation is required at scheduled time; take this course only if you will generally be able to participate!

We will use Piazza for all course-related discussion.

Assignments and Grading

6.5950/6.5951 will have no midterm or final exams. There are three required assignments:

  • Lab Assignments (85% for graduate version, 97% for undergraduate version): There will be 6 lab assignments. Students will be asked to implement their own attacks that work on real machines (not simulators).

  • Lab Check-offs(3%): Over the course of the term, we will randomly select one of your labs for an in-person check-off. During a check-off you will discuss your submission with the TA, describing your implementation, and elaborating on your written answers.

  • Paper Discussion (12% for graduate version): Each student taking graduate version will be asked to select a topic from the 3 discussion sessions, review relevant materials, write a presentation, and lead the class discussion for that topic. To facilitate a fruitful exchange, all students (taking either graduate or undergraduate versions) are expected to read the papers prior to the session and engage in class discussion. Although we will not be formally tracking attendance, we expect regular attendance and participation.

Staff

Professor Mengjia Yan
Email: mengjia at csail.mit.edu
Office: 32-G840
Office Hours (32-G840): Fridays 2:30pm-3:30pm

TA Yuheng Yang, William Liu, Peter Deutsch
Email: shd-staff at mit.edu
Office: 32-G786
Office Hours (32-G7 Lobby): Mondays 4pm-6pm; Wednesdays 10am-noon; Lab Due Dates 10am-noon & 6pm-8pm

Infra Joseph Ravichandran
Email: shd-staff at mit.edu
Office: 32-G786

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).

6.5950/6.5951 is a 12-unit (3-0-9) subject. It is listed as an AUS/AAGS and TQE course.

Late Policy

Late lab submissions within 5 late days are subject to a 10% penalty per late day, with a maximum penalty of 50%. After spending 5 late days on a single lab, no credit will be given for that lab.

Throughout the semester, you have 5 free late days, to be used as whole days. It means that the above penalty is automatically waived for your first 5 late days during the semester. You can use these free late days if you are sick, you are having a busy week, or you need more time to complete the lab. Long weekends (i.e., Feb 17-19, Apr 13-15) and the spring break (i.e., Mar 23-31) do not count into late days.

For example, if you had a lab4 submission that would normally earn 100% if turned in on-time on Apr 11 by 11:59 PM, and you had used up free late days, it would earn 90% if turned in on Apr 12 by 11:59 PM, earn the same 90% if turned in on Apr 15 by 11:59 PM due to the long weekend, and earn no credit if turned in on or after Apr 20.

In addition, extensions without penalty may be granted on a case-by-case basis with support from S3. Please email the staff or post a private note on Piazza 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.

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.