Hardware Security and Side-Channels

COMP 590 – 184 – Spring 2026

Instructor: Andrew Kwong
Contact: andrew@cs.unc.edu
Class Meetings: Tuesday/Thursday 2:00-3:15PM, Wilson Hall-Rm 0128
Office Hours Thursday 4:00-5:00PM, FB340
Syllabus

The goal of this course is to prepare students for a world where hardware vulnerabilities can leak secrets to software-only attackers. Students will learn how to conduct and defend against state-of-the-art side-channel attacks on real hardware through a combination of both lectures and completing lab programming assignments. This course will practically demonstrate the pitfalls of widely adopted modern hardware design decisions, and will prepare students to design hardware and software resilient against such attacks.

Course Structure

Grades will be based upon the following:

Lab Assignments (80%)

Students will complete programming-oriented lab assignments that are designed to guide them towards carrying out real-world attacks on hardware. There will be 5 to 6 in total, focused on providing students with an opportunity to put theory into practice.

Final Exam (20%)

Students will sit for a final exam that will test their understanding of the course’s high level concepts, both from the lab assignments and the lectures.

Acknowledgements

This course is based upon MIT's 6.5950 course. Much thanks to Mengjia Yan and her course staff for their hard work on starting this!

Schedule

Week 1

Thursday, January 8
Introduction

Week 2

Tuesday, January 13

Thursday, January 15
Lecture Slides : Caches
—Recommended Supplemental Reading:

Week 3

Tuesday, January 20
Lecture Slides : Cache Attacks
— Recommended Supplemental Reading:

Thursday, January 22
Lecture Slides : Eviction Sets
— Recommended Supplemental Reading:

Week 4

Tuesday, January 27
— Snow day

Thursday, January 29
Lecture Slides : ML-Assisted Side-Channels
— Recommended Supplemental Reading:

Week 5

Tuesday, February 3
Lecture Slides : Cache Side-channel Mitigations
— Recommended Supplemental Reading:

Thursday, February 5
Lecture by Noah Brown
Lecture Slides : Virtual Memory for Security
— Recommended Supplemental Reading:

Week 6

Tuesday, February 10

Thursday, February 12
Lecture Slides : Transient Execution Attacks
— Recommended Supplemental Reading:

Week 7

Tuesday, February 17
Lecture Slides : Spectre Attacks
— Recommended Supplemental Reading:

Thursday, February 19
Lecture Slides : Microarchitectural Data Sampling
— Recommended Supplemental Reading:

Week 8

Tuesday, February 24
Lecture Slides : Transient Execution Defenses
— Recommended Supplemental Reading:
  • Branch History Injection: On the Effectiveness of Hardware Mitigations Against Cross-Privilege Spectre-v2 Attacks
  • Thursday, February 26
    Guest Lecture by: James Chuang, Mufan Qiu, and Dohhyun Kim
    Lecture Slides : Keystroke Timing Attacks
    — Recommended Supplemental Reading:
  • KeyTAR: Practical Keystroke Timing Attacks and Input Reconstruction
  • Week 9

    Tuesday, March 3
    Lecture Slides : Hardware Security Modules

    Thursday, March 5
    Lecture Slides : Hardware Security Modules cont.

    Week 10

    Tuesday, March 10
    Lecture Slides : Trusted Execution Environments
    — — Recommended Supplemental Reading:

    Thursday, March 12
    Lock Picking —

    Week 11

    Tuesday, March 17

    Spring Break. No Class.

    Thursday, March 19

    Spring Break. No Class.

    Week 12

    Tuesday, March 24
    Lecture Slides : Attacks Against Trusted Execution Environments
    — Recommended Supplemental Reading:

    Thursday, March 26
    Lecture Slides : Rowhammer
    — Recommended Supplemental Reading:

    Week 13

    Tuesday, March 31
    Lecture Slides : Rowhammer Continued
    — Recommended Supplemental Reading:

    Thursday, April 2

    Well-being day. No Class.

    Week 14

    Tuesday, April 7

    Thursday, April 9
    Guest Lecture by: Yichang Hu
    Lecture Slides : Rowhammering GPUs
    — Recommended Supplemental Reading:
  • GDDRHammer: Greatly Disturbing DRAM Rows -- Cross-Component Rowhammer Attacks from Modern GPUs
  • Week 15

    Tuesday, April 14
    Lecture Slides : More Rowhammer
    — Recommended Supplemental Reading:

    Thursday, April 16
    Lecture Slides : Hardware Support for Memory Safety
    — Recommended Supplemental Reading:

    Week 16

    Tuesday, April 21
    Lecture Slides : Hardware Bugs and Fuzzing
    — Recommended Supplemental Reading:

    Thursday, April 23