Cryptography on Software Platforms (SS 2024)

Course Number 705222 | Sommersemester 2024


This course delves into the efficient implementation of cryptographic algorithms on software platforms. Main learning objectives
1. Algorithmic techniques for efficiently implementing cryptographic primitives targeting software platforms.
2. Hands-on implementation of cryptographic primitives on
    2.1 Powerful Intel/AMD processors
    2.2 Resource-constrained Arm microcontrollers
3. Introduction to the Jasmin framework for high-assurance cryptographic software.
Discord channel Discussions with other students are possible in the #cryptoengineering channel in Discord.


Lecture materials:
  1. General information
  2. General_C_optimization techniques         Code
  3. Exploiting memory hierarchy - part 1
  4. Exploiting memory hierarchy - part 2         Code
  5. Bitsliced implementation
  6. Vectorized implementation                            Code
  7. Algorithms for modular reduction
  8. Multi-precision integer arithmetic
  9. Introduction to Arm Cortex-M4 microcontroller
  10. Introduction to High Assurance Cryptography
  11. How to Jazz
  12. Introduction to EasyCrypt
Assignment materials:
  1. ASCON tutorial
  2. Assignment 1
  3. Assignment 2
  4. Bonus Assignment

Administrative Information


Previous Knowledge- Programming in C/C++ and basics of cryptography.  

Objective- Students gain hands-on knowledge of designing cryptographic primitives on high-end (Intel/AMD) as well as resource-constrained (Arm) software platforms. They gain introductory knowledge of using the Jasmin framework for developing high-assurance cryptography. @nbsp;

Language- English  

Teaching Method- Lectures will be in-person (1.5 hours integrated lecture and practical session).  

How to get a grade- 100% from practical assignments with oral defense.


Office hours- Email the lecturers for appointment.


Sujoy Sinha Roy
Sinha Roy

Associate Professor

View more
Aikata Aikata

PhD Student

View more