Clark School Home UMD
ECE

ENEE459B Reverse Engineering and Hardware Security Laboratory

Course Description: An advanced laboratory on cybersecurity with focus on hardware security and software reverse engineering. Roles that computer hardware plays in cybersecurity which include: implementing cryptography primitives in hardware, security threats from hardware and their countermeasures, and enhancement of system security and trust by hardware. Fundamentals of software reverse engineering used in industry to conduct software audits, detect vulnerabilities, identify malicious code and find weaknesses in software.

Prerequisite(s): ENEE244, ENEE245, and ENEE350.

Corequisite(s): None

Course Objectives:

  • Understand security vulnerabilities in hardware design, physical tamper and side channel attacks to systems.
  • Learn the fundamentals and practical techniques to design secure and trusted digital systems.
  • Get familiar with hardware security primitives.
  • Master techniques for writing and analyzing x86 assembly code.
  • Develop reverse engineering skills with IDA Pro.
  • Practice secure programming.
  • Use Wireshark for protocol and packet analysis.

Topics Covered:

  • Verilog Syntax and Structure
  • Verilog Structural and Gate-Level Modeling
  • Simulation Environment for Schematics and Verilog Models
  • Adder Circuits: Full-Adder Components, Ripple-Carry and Carry-Lookahead Structures
  • Encoders, Decoders, and Seven-Segment Displays
  • Asynchronous and Synchronous Counters
  • Verilog Modeling with Level-Sensitive and Edge-Sensitive Behaviors
  • Digital Data Representation and Conversions
  •  Sequence Analyzers and Finite State Machine Design
  • Combinational and Sequential Multiplier Circuits
  • Digital Calculator Implementation
  •  First-In First-Out (FIFO) Buffer Design
  • Error Detection and Correction Codes

Learning Outcomes

  • Ability to apply knowledge of math, scinece, and engineering (SIGNIFICANT).
  • Ability to design/conduct expt. & analyze/interpret data (SIGNIFICANT).
  • Ability to design a system, component, or process to meet needs (SIGNIFICANT).
  • Ability to function on a multi-disciplinary team (MODERATE)
  • Ability to identify, formulate, and solve engineering problems (SIGNIFICANT).
  • Understanding of professional and ethical responsibilities (SIGNIFICANT).
  • Ability to communicate effectively (MODERATE).
  •  Recognition of need for and ability to engage in life-long learning (MODERATE)
  • Knowledge of contemporary issues (SIGNIFICANT).
  • Techniques, skills, and modern engineering tools necessary for practice (SIGNIFICANT)