Courses taught by Prof. Swarup Bhunia
ECS 397: Hardware Security (Spring, Undergraduate Course, Introduced by Prof. Bhunia)
Security of computer hardware, in the domain of both general purpose and embedded systems,
has emerged as a major concern. New generation of attacks by the hardware hackers and countermeasures
to these attacks are rapidly emerging. To enable secure, trust-worthy operation of computer hardware,
it is important to understand the security issues and incorporate appropriate security measures during
design, verification, test, and deployment. This course aims at providing comprehensive coverage on
security issues in computer hardware covering topics such as cryptography, hardware Trojan, side-channel
information leakage, hardware IP protection against piracy and reverse-engineering, and security in
embedded systems including software infection or bus snooping. After completing this course, students
will be able to analyze and validate computer hardware for security and build secure hardware for
trustworthy computing. The course will include five group projects on hands-on hardware security,
where the students will hack a hardware mopdule, a 32-bit RISC processor, using an Altera FPGA board.
The projects will help understand different attack modes and ways to protect against them.
Students can be creative to launch their own attacks! The final project will have a challenge session,
"Can you Hack It?" Recommended preparation: Logic Design and Computer Organization (EECS 281).
FSNA 137: Volts, Amps, Bits, Bytes (Fall, Undergraduate Course, Co-developed by Prof. Bhunia)
First seminar course for freshman. The electrical grid, the computer, biomedical devices, electric vehicles, interactive art, and smart homes
are a few examples of the pervasiveness of electronics and computer technology. This seminar will introduce
the engineering design process, and present the basics of electricity, electronic circuits, measurement,
sensors, and microcomputers (the Arduino), and how to use them to design and build useful devices.
Students will reverse-engineer products, learn electrical and mechanical prototyping and fabrication,
and apply them in a variety of hands-on labs. The course will conclude with students proposing,
designing, and prototyping innovative design projects. The course will make extensive use of
the Sears Design Lab and Think[box] and is writing intensive.
EECS 314: Computer Architecture (Spring, Undergraduate course)
This course provides students the opportunity to study and evaluate a modern computer architecture design. The course covers topics in fundamentals of computer design, performance, cost, instruction set design, processor implementation, control unit, pipelining, communication and network, memory hierarchy, computer arithmetic, input-output, and an introduction to RISC and superscalar processors. Recommended preparation: Logic Design and Computer Organization (EECS 281).
EECS 301: Digital Design Laboratory (Fall, Undergraduate course)
This course is an introductory experimental laboratory for digital networks. The course introduces students to the process of design, analysis, synthesis and implementation of digital networks. The course covers the design of combinational circuits, sequential networks, registers, counters, synchronous/asynchronous Finite State Machines, register based design, and arithmetic computational blocks. Recommended preparation: Logic Design and Computer Organization (EECS 281).
EECS 495: Nanometer VLSI Design (Fall, Graduate Course, Introduced by Prof. Bhunia)
Semiconductor industry has evolved rapidly over the past four decades to meet the increasing demand on computing power by continuous miniaturization of devices. Now we are in the nanometer technology regime with the device dimensions scaled below 100nm. VLSI design using nanometer technologies involves some major challenges. This course will explain all the major challenges associated with nanoscale VLSI design such as dynamic and leakage power, parameter variations, reliability and robustness. The course will present modeling and analysis techniques for timing, power and noise in nanometer era. Finally, the course will cover the circuit/architecture level design solutions for low power, high-performance, testable and robust VLSI system. The techniques will be applicable to design of microprocessor, digital signal processor (DSP) as well as application specific integrated circuits (ASIC). The course includes a project which requires the student to work on a nanometer design issue. Recommended preparation: VLSI Systems (EECS 426) or MOS Integrated Circuit Design (EECS 485).
EEL 4930: Introduction to Hardware Security and Trust (Spring, Graduate Course, Introduced by Prof. Bhunia) |
This course will cover the following topics: Cryptographic processor and processing overhead analysis, physical and invasive attacks, side-channel attacks, physically unclonable functions, hardware-based true random number generators, watermarking of Intellectual Property (IP) blocks, FPGA security, passive and active metering for prevention of piracy, access control, hardware Trojan detection and isolation in IP cores and integrated circuits (ICs). The course is self contained. Background on digital design would be sufficient. Introductory lectures will cover basic background on cryptography, authentication, secret sharing, VLSI design, test and verification.
EEL 5934: Hardware Security Lab (Fall, Graduate Course, Introduced by Prof. Bhunia)
This lab course focuses on the hands-on learning of computer hardware security. The course will follow a distinctive hands-on teaching approach using a well-designed set of experiments as learning tool. Students will be able to “hack” a system at different levels and analyze different countermeasures for major hardware attacks.