Selected Topics of Information Security - Cryptography on Hardware Platforms (WS 2022/23)

Course Number 705221 | Wintersemester 2022/23

Content

This course teaches how to implement cryptographic algorithms efficiently on hardware platforms. It covers hardware implementation aspects of symmetric-key, asymmetric-key cryptographic primitives, true and pseudo random number generation, physically unclonable functions, as well as basics of homomorphic encryption. The content offered in the lectures is accompanied by practical assignments. In the practical assignments, you will be given reference proof-of-concept software implementations and you will build hardware-software codesign architectures for them.

Learning goals: 

  1. Problem-oriented hardware development for cryptography.
  2. Standard and performance-optimized implementation techniques.
  3. Secure implementation techniques.
  4. Prototyping in real FPGA and performance benchmarking of crypto. 

Besides learning how to implement cryptographic algorithms securely and efficiently, you learn design methods for FPGA. In the semiconductor industry, FPGAs are used for prototyping as well as product developments.

Discussions with other students are possible in the #cryptoengineering channel in Discord.

Material

Tools

For assignments and practical sessions, we will use Xilinx Vivado WebPack 2019.1 version. You need to bring a laptop during the practical sessions. Below, you can find the installation guides for Xilinx Vivado WebPack 2019.1.

We will use the PYNQ-Z2 FPGA board for implementing the cryptographic primitives. With Vivado 2019.1, you need to copy the PYNQ-Z2 board-specific files into the installation directory (see the installation guide).

Lecture slides

00 Introduction & Motivation

01 Introduction to FPGAs

02 Modular Arithmetic-I, Modular_Arithmetic-II

03 Implementation of public-key crypto in HW
(NTT-INTT Python code)

04 Practical_BRAM_BROM.

Video of practical

05 Design of Random Number Generator

Postprocessing of raw TRNG bits

Statistical_tests_for_TRNG

 

Magazine_PQC_Tutorial

Practical session/Tutorial slides

00 Practical Session Overview

01 Verilog HDL Review

02 Xilinx Vivado Basics (2022-10-11-codes, 2022-10-17-codes)

03 SDK Programming (Ubuntu version)

Changing clock frequency in Vivado

Assignments

Assignment 1 (pdf)

Assignment 1 (Vivado project)

Assignment 1 (SDK project)

(Barrett Python model)

 

Administrative Information

Previous Knowledge

Basics of cryptography and digital design (e.g., DSD course). Familiarity with Verilog or SystemVerilog.

Prerequisites Curriculum

See position in curriculum.

Objective

After attending this course, students learn how to design cryptographic algorithms on hardware and hardware-software co-design platforms. As a group, students design and implement a cryptoprocessor on an actual FPGA.

Language

English

Teaching Method

Learning goals: 1) Problem-oriented hardware development for cryptography. 2) Standard and performance-optimized implementation techniques. 3) Secure implementation techniques. 4) Prototyping in real FPGA and performance benchmarking of crypto. Besides learning how to implement cryptographic algorithms securely and efficiently, you learn design methods for FPGA. In the semiconductor industry, FPGAs are used for prototyping as well as product developments. Lectures will be in-person (1 hour lecture on Monday, 1 hour lecture + 1 hour practical session on Wednesday). You will be given two practical assignments and you will work in a team of 2 students in general. Topics to be covered: This course teaches how to implement cryptographic algorithms efficiently on hardware platforms. It covers hardware implementation aspects of symmetric-key, asymmetric-key cryptographic primitives, true and pseudo random number generation, physically unclonable functions, as well as basics of homomorphic encryption. In the practical assignments, you will be given reference proof-of-concept software implementations and you will build hardware-software codesign architectures for them.

How to get a grade

Evaluation: 100% from two practical assignments. There will be no written exam. Oral defense after submitting assignments.

Registration

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

Lecture Dates

Date Begin End Location Event Type Comment
2022/12/05 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2022/12/06 09:00 11:00 Seminarraum Abhaltung VU fix/Practical
2022/12/12 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2022/12/13 09:00 11:00 Seminarraum Abhaltung VU fix/Practical
2022/12/19 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2022/12/20 09:00 11:00 Seminarraum Abhaltung VU fix/Practical
2023/01/09 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2023/01/10 09:00 11:00 Seminarraum Abhaltung VU fix/Practical
2023/01/16 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2023/01/17 12:00 14:00 Seminarraum Abhaltung VU fix/Practical
2023/01/23 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2023/01/24 09:00 11:00 Seminarraum Abhaltung VU fix/Practical
2023/01/30 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2023/01/30 10:00 11:00 Seminarraum Abhaltung VU fix/Lecture
2023/01/31 09:00 11:00 Seminarraum Abhaltung VU fix/Practical

Lecturers

Sujoy Sinha Roy
Sujoy
Sinha Roy

Assistant Professor

View more
Ahmet Can Mert
Ahmet Can
Mert

Post-doctoral Researcher

View more