ECEn 522R: Hardware Security
The BYU Hardware Security course (ECEn 522R) introduces students to the theory and practice of securing computing systems at the hardware level. The class begins with foundational topics such as cryptography, VLSI design basics, and hardware security primitives, then moves into threats like hardware Trojans, supply chain attacks, and counterfeiting. Students also study advanced adversarial techniques, including side-channel and fault-injection attacks, and examine defense mechanisms such as secure intellectual property, hardware obfuscation, true random number generators, and modern architectural protections like ARM Pointer Authentication Codes and CHERI memory safety. By the end of the semester, students develop a broad understanding of both the vulnerabilities and defensive strategies in hardware systems.
Hands-on learning is central to the course, with weekly labs that align directly with lecture topics. Students gain practical experience through activities such as bus snooping, exploring physically unclonable functions (PUFs), analyzing true random number generators, and conducting side-channel power analysis. Other labs focus on hardware Trojans and test-oriented attacks, giving students the chance to work with real hardware boards and apply attack and defense concepts. In addition to the labs, students prepare project proposals, deliver in-class presentations, and complete a final project and report, allowing them to explore specific hardware security challenges in depth.
There are no formal pre-requisites for the class. You should have some experience C programming, and it’s helpful if you’ve done this on a microcontroller. Some experience with analog and digital circuits is also very helpful, as well as some experience using FPGAs. However, if you are willing to do some extra learning outside of class, you can succeed in the class even if you are missing some of these skills. We encourage students to work together on assignments to help with knowledge gaps, and the final project is very open-ended, and you can choose to work in any area you are comfortable with.