Virginia Tech® home

ECE 5580 - Cryptographic Engineering (3C)

Course Description

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.

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