User Tools

Site Tools


Complexity, Cryptography and Financial Technology

This course is one of the security courses of the Security Group in Trento.

It is offered at the University of Trento in the framework of the Cyber Security track of the European Institute of Innovation and Technology (EIT Digital) Master School programme.

It is also available in the normalMaster Degree in Computer Science and in Information and Communications Engineering at the University of Trento.



Course Objectives

This 12ECTS course provides the broad overview of modern crypto-based Financial Technology. Module 1 provides the foundations of Cryptography and Computational Complexity that are needed for understanding the technology that is behind crypto-based FinTech. Module 2 focuses on two rich case studies in collaboration with EIT partners. The first case study is UNBIAS in collaboration with InnoPay NL. The second case study is FuturesMEX in collaboration with Durham Business School UK.

Students interested in further exploring the research topics behind this area can also take a Software Project (6ECTS) or a Research Project (12ECTS) by contacting the lecturers.

Intended Learning Outcomes

Regular and active participation in the teaching activities offered by the course (lectures, laboratories and group work) and in independent study and project activities will enable students to:

  • identify the relevant security characteristics of a crypto-based FinTech problem;
  • organize and integrate the algorithm and information needed for finding a solution;
  • compare methods and tools discussed during the course and choose the ones most suited to the solution;
  • apply the methods learned during the course to a complex industrial relevant scenario.

In terms of soft skills, active participation in the group-based teaching activities will enable students to learn how to organize group work, apply problem-solving techniques, deliver a presentation, and make critical code review to support their results with compelling arguments.


Students should have attended a general security course, e.g. Introduction to Computer and Network Security or a cryptography course.

Course Content

  • Introduction to Crypto-based FinTech:
    • Fintech Characteristics, Bitcoin as an example, Distributed systems overview
  • Complexity:
    • Introduction to computing relations, P vs NP (search and decision problems), One-way functions, Interactive proofs, Zero knowledge proofs, Introduction to Multi-Party Computations
  • Cryptography
  • Finite Field (Discrete Log, Quadratic Residuosity), recap of Digital Signatures, Elliptic Curves Digital Signature Algorithm, Quadratic Arithmetic Programs, Pairing-based zk-SNARKS, Multy-party computation based on Garbled Circuits, Secret Sharing
  • Labs will be done for libraries implementing the above features
    • Hyperledger (Java), libsnark (C), SPDZ (Python)
  • FinTech Case Studies (depend on the EIT partnership)
  • Students Presentations
    • Proposal for FinTech case study 1, Hostile review for FinTech case study 1

See details in the list of upcoming topics below.

Teaching Methods and Learning Activities

The instructors will use:

  • highly interactive lecture-style presentation during which students will be required to actively participate;
  • lab exercises given to small groups of students, who must discuss, analyze and present to the class the results achieved.

If the number of attendees is too small, individual projects will be assigned for the EIT students who need to attend the course.

Assessment Methods and Criteria

This is an eligible course so we expect active participations.

Grading is organized as follows:

  • Participation and submission of lab materials: 7 points
  • Midterm theory evaluation: 8 points
  • Presentation by students on the UNBIAS case study: 4 points
  • Participation, submission of lab materials, and final implementation of UNBIAS: 8 points
  • Participation, submission of lab materials, and final implementation of IOP: 8 points

Reference and Bibliographic Material

The following books might be useful:

More advanced books

Additional research papers will be given by the instructors in class.


The lectures/seminars etc. are

  • Mon. 13:30-15:30 room A220
  • Wed. 9:30-11:30 room A211 (Changed!)
  • Fri. 13:30-15:30 room A215

(well, they change us all the time so check on Easyroom.

Past Lectures, Lab Sessions and Exercises

Date Weekday Hours Topic Slides Additional materials
13/09/18 Thu 2 Admin and Introduction Slides FinTech General Overview,a summary article on payments and cards (you should read it and then pick the cited articles), fintech lenders, InsurTech and FinTech , Payments for Ecosystem Services and REDD+, Security and Privacy Requirements
14/09/18 Fri 2 Introduction to Crypto-based FinTech Slides Exercise For a bit of history see wiki page on DigiCash. For general introduction to the key issues in payment see a paper on payments and distributed ledgers by the Federal Reserve Board
17/09/18 Mon 2 Cryptocurrency Examples Slides For further details and possible extensions of PTN see a PTN survey (joint work of instructors with an Economics professor in UK). For a bit of history see Wiki page on Ripple and Wiki page on ZCash. Technical details of Ripple can be explored on Ripple Developer Center. To understand more about ZCash, look into their Technology page and the original scientific paper of ZeroCash.
19/09/18 Wed 2 Requirements for FinTech Case Studies slides The Innopay Case study is on Google Classroom
21/09/18 Fri 2 Bitcoin by prof. A. Montresor
24/09/18 Mon 2 Introduction to Complexity sides See Section 1.2 of Gold Reich Book. There is an old version of the chapter on the web page. You can also see
26/09/18 Wed 2 Finite Field, Discrete Logs, Quadratic Residuosity slides Read Chapter 2 and Chapter 3 of the Handbook of Applied Cryptography. Read also the original paper of El-Gamal Cryptosystem and GM Cryptosystem. Find the reference implementation of El-Gamal Cryptosystem and GM Cryptosystem in C.
28/09/18 Fri 2 Lab on Finite Field 1 (libsnark) Exercise
01/10/18 Mon 2 Lecture + Lab on Elliptic Curves Slides and Exercise Read Appendix 6 of FIPS 186-2 for the list of recommended curves.
05/10/18 Fri 2 Digital Signature Slides Read the main body of FIPS 186-2.
08/10/18 Mon 2 P vs NP: Decision
12/10/18 Wed 2 Recap on P vs NP: Search & Decision
15/10/18 Fri 2 P vs NP: Computational
19/10/18 Mon 2 Randomness
24/10/18 Wed 2 Zero-Knowledge Proof
14/11/18 Wed 2 Libsark Tutorial: Getting Started Tutorial
16/11/18 Fri 2 Libsnark Tutorial: Basic Gadgets Tutorial
19/11/18 Mon 2 Student evaluation (theory)
21/11/18 Wed 2 Libsnark Tutorial: Fundamental Relations and Gadgets Tutorial
23/11/18 Fri 2 Students presentation and feedback on Invoice Factoring use case (1)
26/11/18 Mon 2 Libsnark Exercise: Basic FinTech Gadgets Exercise
28/11/18 Wed 2 Libsark Tutorial: Merkle Tree for FinTech
30/11/18 Fri 2 Students presentation and feedback on Invoice Factoring use case (2)
3/12/18 Mon 2 FuturesMEX Slides FuturesMEX paper
05/12/18 Wed 1 Libsnark Tutorial: FuturesMEX advanced gadgets (1)
07/12/18 Fri 3 Libsnark Tutorial: FuturesMEX advanced gadgets (2)
10/12/18 Mon 2 Student final presentation and feedback on Invoice Factoring use case (graded)
12/12/18 Wed 2 HyperLedger Tutorial
14/12/18 Mon 2 Student tutoring in class
17/12/18 Wed 2 Student tutoring in class
19/12/18 Wed 2 SPDZ Tutorial Tutorial

Planned Lectures, Lab Sessions and Exercises

Date Weekday Hours Topic Slides Additional materials
21/12/18 Fri 2 Student tutoring in class
25/01/19 Fri 8 Final project

Other Material

Other material is available in Google Classroom or in the Github repo.

complexity_cryptography_and_financial_technology.txt · Last modified: 2021/01/29 10:58 (external edit)