Cryptographic Engineering - ECE/CS 5580

Course Summary

Cryptography plays a fundamental role in the practical implementation of information security, needed in a vast range of applications from safe banking using electronic credit cards, over user privacy in medical record storage, up to protecting a nation state from electronic theft and cyber‐attacks. With the Internet of Things, cryptographic implementations will be found over an ever wider range of computing architectures and performance budgets.

The central question addressed in this course is how we can build efficient and secure cryptography? 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. This includes the 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.

Topics covered in the course include the implementation of Finite Field Arithmetic, Symmetric‐Key and Public‐Key operations, design and testing of True and Pseudo Random Number Generators, Optimization techniques for High‐Performance and Low‐Footprint Cryptography, Design of Cryptanalytic Machines, Side‐channel and Fault Analysis Techniques, Countermeasures, and Security Testing Procedures.

The course is aimed at students in Electrical and Computer Engineering students as well as Computer Science Students. The course assumes a good understanding of software programming and computer architecture. The course does not require knowledge of low‐ level hardware design. A basic introduction in Cryptography may be learned from ECE/CS 5560, which is a prerequisite for the course. The course does not have a textbook, but will rely on recent publications in the field. The course will include a project involving a practical design experience in cryptographic engineering.

Syllabus spring 2016