Secure Hardware Design - ECE 5520

Course Summary

Cryptography plays a fundamental role in the practical implementation of information security, needed in a vast range of applications from safe banking using electronic credit cards, over user privacy in medical record storage, up to protecting a nation state from electronic theft and cyber-attacks. With the Internet of Things, cryptographic implementations will be found over an ever wider range of computing architectures and performance budgets.

The central question addressed in this course is how we can build efficient and secure cryptography in hardware? One aspect of this study is the efficient implementation to meet the performance and cost requirements of computing platforms from embedded computing devices up to server‐level computers. This includes the study of specialized architecture elements that form the trusted computing base. A second aspect is the analysis of implementation attacks, which are a particular concern when attackers have knowledge of, or access to the low‐level implementation of cryptographic operations in computing devices.

Topics covered in the course include the implementation of Finite Field Arithmetic, Random Number Generation, Lightweight Cryptography, High-performance Cryptography, FPGA Security, Side Channel Analysis, Fault Analysis, Physical Unclonable Functions, and Secure Design Flows.

Having successfully completed this course, students will be able to (a) Describe hardware primitives for finite-field arithmetic; (b) explain the design concepts of cryptographic modules including block ciphers, stream ciphers, hash functions, and public-key ciphers; (c) design a hardware implementation for a given cryptographic function based on a high-level specification; (d) describe various methods for reverse engineering of secure hardware, and provide corresponding countermeasures for each of these techniques; and (e) explain the principles of trusted computing.

Syllabus spring 2017


This course is based in part on the following references.