Fall 2016 textbook list
The Fall 2016 ECE textbook list is available online for students.
Current Prerequisites & Course Offering
For current prerequisites for a particular course, and to view course offerings for a particular semester, see the Virginia Tech Course Timetables.
ECE 5520 Secure Hardware Design (3C)
Design and implementation of secure hardware at multiple levels of abstraction, covering cryptographic hardware primities, cryptographic modules, and trusted platforms. Reverse engineering of cryptographic modules using passive attacks, active attacks, and cryptanalytic techniques. Countermeasure against reverse engineering. The course uses case studies and literature surveys to reflect on the state-of-the-art in secure hardware implementation.
Secure hardware components are used in an increasing range of applications, from embedded wireless car-keys up to accelerator hardware in data-center servers. Secure hardware needs trustworthiness (the ability to operate as expected). This translates into unique design requirements which are unlike classical digital design requirements such as circuit performance and circuit area. This course explains the design principles of secure hardware and shows how cryptographic algorithms can be mapped into efficient as well as trustworthy implementations. The design problem of secure hardware is considered at various abstraction levels (digital circuits up to trusted platforms). The material is relevant to reserach as well as to design practice.
Typically offered: Spring. Program Area: Computers.
Department Syllabus Information:Major Measurable Learning Objectives:
* Describe hardware primities for finite-field arithmetic.
* Explain the design concepts of cryptographic modules including block ciphers, stream ciphers, hash functions, and public-key ciphers.
* Design a hardware implementation for a given cryptographic function based on a high-level specification.
* Describe various methods for reverse engineering of secure hardware, and provide corresponding countermeasures for each of these techniques.
* Explain the principles of trusted computing.