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.
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.
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%|