Cryptography on Software Platforms (SS 2026)

Course Number 705219 | Sommersemester 2026

Content

This course delves into the efficient implementation of cryptographic algorithms on software platforms.   Main learning objectives
1.How to implement cryptographic primitives efficiently
  • Assignment 1: Symmetric-key algorithm
  • Assignment 2: Public-key algorithm
2.Two types of platforms
  • High-end Intel/AMD processors with AVX vector processing
  • Resource-constrained Arm microcontrollers
3. High assurance cryptographic implementations
  • Constant-time implementations
  • Power side-channel resistance
  • Jasmin framework for formally verified code
Discord channel Discussions with other students are possible in the #cryptoengineering channel on Discord.

Material

Slides and code are available here.    
00. Course Information  
01. General C code optimization -- Sample code  
02. Optimization for memory hierarchy
Matrix multiplication
Code  
03. Bitslicing  
04. Programming with AVX256  
05. Modular arithmetic  
06. Multi-precision arithmetic  
07. ARM microarchitecture and programming  
08. Constant time coding  
08. Physical side-channels  

Assignments

 

Administrative Information

Previous Knowledge

Familiarity with C/C++ programming. Knowing the basics of cryptography helps.

Prerequisites Curriculum

See position in the curriculum

Objective

Optimized software code development for cryptographic primitives targeting high-end and low-end computer architectures, secure implementation techniques, and basic formal verification techniques.

Language

English

Teaching Method

See the General Information slides.

How to get a grade

See the General Information slides.

Registration

https://online.tugraz.at/tug_online/ee/rest/pages/slc.tm.cp/course-registration/592113

Lecturers

Sujoy Sinha Roy
Sujoy
Sinha Roy

Associate Professor

View more
Aikata .
Aikata
.


Maciej Czuprynko
Maciej
Czuprynko

PhD Student

View more