ECE 5580 Cryptographic Engineering | ECE | Virginia Tech


Course Information


Implementation of cryptographic operations and protocols in contemporary computing platforms. Mapping of cryptographic operations, evaluation and optimization of performance and implementation cost, analysis of security against brute-force cryptanalysis and implementation-level attacks. Design of countermeasures against implementation-level attacks, security-testing procedures, and architectures to support a trusted computing base.

Why take this course?

Cryptography is fundamental to ensure trustworthiness of computing in everyday operations, touching every operational aspect of the information society. Computer scientists and engineers therefore have a need to handle and optimize cryptographic implementations with an eye on efficiency and effectiveness. This course discusses techniques for cryptographic engineering in contemporary computing platforms. One aspect of this study is the efficient implementation to meet the performance and cost requirements of computing platforms from handheld computing devices to server-level computers. It includes 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. A related aspect is the study of security testing procedures to certify platforms. The material is therefore relevant to research as well as to design practice.


5560 or CS 5560

The course requires the background material in cryptographic algorithms covered in 5560/CS 5560.

Major Measurable Learning Objectives

  • Implement common cryptographic operations in contemporary computing platforms.
  • Compare performance-evaluation techniques and optimization techniques for the implementation of cryptographic operations
  • Analyze countermeasures to thwart implementation-level attacks on cryptographic operations in hardware and software
  • Evaluate security-testing procedures for the implementation of cryptographic operations
  • Identify the architectural elements that constitute a trusted computing base

Course Topics


Percentage of Course

1. Implementation of Finite Field Arithmetic 15%
2. Implementation of Symmetric-Key and Hash Building Blocks 10%
3. Implementation of True and Pseudo Random Number Generators 5%
4. Implementation of Public-Key Operations 10%
5. Optimization for High-Performance and Lightweight Cryptography 5%
6. Cryptanalytic Machines 5%
7. Side-channel Analysis and Side-channel Resistant Design 15%
8. Fault Analysis and Fault Detection 15%
9. Security Testing Procedures 10%
10. Building Blocks of a Trusting Computing Base 10%