DM886: Cryptographic Engineering

Study Board of Science

Teaching language: Danish or English depending on the teacher
EKA: N340107102
Assessment: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Autumn
Level: Master

STADS ID (UVA): N340107101
ECTS value: 5

Date of Approval: 05-02-2022

Duration: 1 semester

Version: Approved - active

Entry requirements


Academic preconditions


Course introduction

Cryptography provides algorithms that are crucial for the security (e.g., confidentiality, integrity, and authenticity) of our modern communication. However, the theoretical security of these algorithms is only one of the required aspects to achieve security – it is also important to implement these algorithms efficiently and securely. This course explains how to achieve high performance even for small embedded devices when implementing cryptographic algorithms and how to protect an implementation against timing attacks that are not looking for weaknesses in the algorithm or the implementation but attempt to exploit the run time of an implementation to reveal secret information.

The course is accompanied by hands-on tutorials on efficient implementation, timing attacks, and countermeasures.
The course has a focus on:
  • developing skills in low-level programming in C and assembly language,
  • developing skills in analyzing the performance and the bottlenecks of an implementation,
  • developing skills in optimizing software implementations with a focus on embedded devices,
  • developing skills in protecting cryptographic implementations against timing attacks.
In relation to the competence profile of the degree it is the explicit focus
of the course to:
  • give expert knowledge in a defined subject area that is based on the highest international field of research within the field of computer science,
  • give skills to analyze advantages and disadvantages of different computer science methods, also within academically complex areas, and
  • give the competence to be able to take responsibility for own professional development and specialization.

The course builds upon knowledge of network security obtained during the bachelor and provides knowledge that can be used for a master thesis in the area of applied cryptography.

Expected learning outcome

The student will be able to:

  • detect and evaluate the performance and bottlenecks of an implementation,
  • develop optimizations for cryptographic applications, and
  • analyze and protect cryptographic applications in regards to timing attacks


The following main topics are contained in the course:

  • Introduction to Cryptography
  • Implementation of Cryptography
  • Optimization on Embedded Devices
  • Timing Attacks and Countermeasures


See itslearning for syllabus lists and additional literature references.
The following literature covers parts of the course: “Cryptographic Engineering” by Çetin Kaya Koç, Springer. 
This literature is not a requirement for the course but provides further information on its topics.

Examination regulations

Exam element a)




Oral examination




Second examiner: Internal


7-point grading scale


Student Identification Card


Normally, the same as teaching language

Examination aids

To be announced during the course.

ECTS value


Additional information

The oral examination is online.

Indicative number of lessons

30 hours per semester

Teaching Method

The course is held in the form of interactive or pre-recorded online lectures and hybrid online/in-person tutorials.
Participants need to be prepared to spend time on writing source code as preparation for the tutorial sessions.
The course will be held in a block of 5 to 6 weeks with 10x90min lectures and 5x90min tutorials per week.

Teacher responsible

Name E-mail Department
Ruben Niederhagen Concurrency


Administrative Unit

Institut for Matematik og Datalogi (datalogi)

Team at Educational Law & Registration


Offered in


Recommended course of study

Profile Education Semester Offer period

Transition rules

Transitional arrangements describe how a course replaces another course when changes are made to the course of study. 
If a transitional arrangement has been made for a course, it will be stated in the list. 
See transitional arrangements for all courses at the Faculty of Science.