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

Secure Hardware Design (Spring 2023)

Learn to attack processors… and learn to defend them!

Welcome to 6.S983 (previously 6.888)!

6.S983 is a research-oriented course on secure hardware design. 6.S983 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.

Last year’s website

Meeting Location and Times

Required Lectures: Mondays and Wednesdays from 1:00pm to 2:30pm in 36-112

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.S983 will have no midterm or final exams. There are four required assignments:

  • Lab Assignments (75%): There will be 6 lab assignments. Students will be asked to implement their own attacks that work on real machines (not simulators). Students have the option to substitute labs 4-6 with an open-ended course project. The project can be related to research that you are currently doing, subject to instructor approval.

  • Paper Readings (12%): Students are expected to read the paper(s) in the schedule prior to a discussion lecture. By 5:00 PM the night before lecture, you will be required to answer two questions about the paper’s contents and pose a discussion question about the paper. The lowest paper reading score (out of 7) will be dropped.

  • Paper Discussion (10%): Each student will be asked to select a topic from the upcoming lectures, review relevant materials, write a presentation, and lead the class discussion for that lesson. To facilitate a fruitful exchange, students are expected to engage in class discussion. Although we will not be formally tracking attendance, we expect regular attendance and participation.

  • Hands-On Workshops (3%): During recitations, students will be expected to complete coding/capture the flag (CTF) tasks. Easier tasks will be marked for credit, while extra-credit will be given for completing more challenging tasks.


Professor Mengjia Yan
Email: mengjia at
Office: 32-G840
Office Hours: By Appointment

TA Peter Deutsch
Email: pwd at
Office: 32-G786
Office Hours (32-G7 Lobby): 10AM-12PM Wednesdays and 6PM-8PM on Lab Due Dates

Infra Joseph Ravichandran
Email: jravi at
Office: 32-G786
Office Hours (32-G7 Lobby): 6PM-8PM on Lab Due Dates


6.S983 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.S983 is a 12-unit (3-0-9) subject. It is listed as an AUS/AAGS course.

Late Policy

  • Labs: Late lab submissions are subject to a 10% penalty per late day, with a maximum penalty of 50% after 5 days. For example, a lab that would normally earn 100% if turned in on-time by 11:59 PM on 14 March would earn you 90% if turned in on 15 March by 11:59 PM.

  • Paper Summaries: Paper summaries are due at 5:00PM the day before the corresponding discussion. Half credit will be awarded if turned in before the lecture start time. No credit will be awarded if turned in after the lecture begins.

For labs, the late penalty is automatically waived for your first 5 late days. Long weekends and holidays do not count towards this limit (in this case, submitting the following Monday before 11:59PM counts as a single late day). 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. In addition to these free late days, 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 extension beyond your free late days. 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.


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.