User Tools

Site Tools


complexity_cryptography_and_financial_technology

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

complexity_cryptography_and_financial_technology [2018/12/20 13:55]
channam.ngo@unitn.it
complexity_cryptography_and_financial_technology [2021/01/29 10:58]
Line 1: Line 1:
-====== Complexity, Cryptography and Financial Technology ​ ====== 
  
-This course is one of the [[teaching_activities|security courses]] of the [[start|Security Group]] in Trento. ​ 
- 
-It is offered at the University of Trento in the framework of the [[https://​masterschool.eitdigital.eu/​programmes/​cse/​|Cyber Security track]] of the [[https://​www.eitdigital.eu/​|European Institute of Innovation and Technology (EIT Digital)]] Master School programme. 
- 
-It is also available in the normal[[http://​web.unitn.it/​en/​scienze/​6859/​master-science-computer-science|Master Degree in Computer Science]] and in [[http://​offertaformativa.unitn.it/​en/​lm/​information-and-communications-engineering |Information and Communications Engineering]] at the University of Trento. ​ 
- 
-===== Lecturers ===== 
- 
-  * [[http://​www.massacci.org|Fabio Massacci]] 
-  * [[https://​sites.google.com/​g.unitn.it/​namnc/​home|Chan Nam Ngo]] 
- 
-===== Syllabus ===== 
- 
-==== 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 [[https://​www.innopay.com/​blog/​join-the-co-creation-of-unbias-to-revolutionise-sme-financing|UNBIAS]] in collaboration with InnoPay NL. The second case study is [[https://​www.youtube.com/​watch?​v=cOGgB9GdPT0|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. 
- 
-==== Prerequisites ==== 
- 
-Students should have attended a general security course, e.g. [[https://​sites.google.com/​view/​intro2cns|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: 
-  * Complexity and Cryptography:​ An Introduction. Book by DJA Welsh and J Talbot 
-  * [[http://​www.wisdom.weizmann.ac.il/​~/​oded/​cc-book.html|Computational Complexity: A Conceptual Perspective]]. Book by O Goldreich. An old version of the book is on'​line. See also [[http://​www.wisdom.weizmann.ac.il/​~/​oded/​cc.html|Goldreich'​s page on complexity theory]] 
-  * [[http://​cacr.uwaterloo.ca/​hac/​|Handbook of Applied Cryptography|]] Book by  AJ Menezes, PC van Oorschot and SA Vanstone ​ 
- 
- 
-More advanced books 
-  * Cryptography:​ An Introduction. Book by N Smart 
-  * [[http://​theory.cs.princeton.edu/​complexity/​|Computational Complexity: A Modern Approach]]. Book by S Arora and B Barak 
- 
-Additional research papers will be given by the instructors in class. 
- 
-===== Schedule ===== 
- 
-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 [[https://​easyroom.unitn.it/​Orario|Easyroom]]. 
- 
-==== Past Lectures, Lab Sessions and Exercises ==== 
- 
-^ Date ^ Weekday ^ Hours ^ Topic ^ Slides ^ Additional materials ^ 
-| //​13/​09/​18//​ | Thu | 2 | Admin and Introduction | {{:​teaching:​cryptofintech:​2018:​2018-lecture-1-intro.pdf|Slides}} ​ | [[http://​www.sciencedirect.com/​science/​article/​pii/​S0007681317301246|FinTech General Overview]],​[[http://​www.sciencedirect.com/​science/​article/​pii/​S1567422315000678|a summary article on payments and cards]] (you should read it and then pick the cited articles), [[http://​www.sciencedirect.com/​science/​article/​pii/​S0148619518300390|fintech lenders]], [[http://​www.sciencedirect.com/​science/​article/​pii/​S0921800917301295|InsurTech and FinTech ]], [[http://​www.sciencedirect.com/​science/​article/​pii/​B9780128104415000117|Payments for Ecosystem Services and REDD+]], [[http://​www.sciencedirect.com/​science/​article/​pii/​S1084804517303247|Security and Privacy Requirements]] | 
-| 14/09/18 | Fri | 2 | Introduction to Crypto-based FinTech | {{:​teaching:​cryptofintech:​2018:​2018-lecture-2-introduction_to_crypto-based_fintech.pdf|Slides}} {{:​teaching:​cryptofintech:​2018:​2018-lecture-2-introduction_to_crypto-based_fintech_-_exercise.pdf|Exercise}} ​ | For a bit of history see [[https://​en.wikipedia.org/​wiki/​DigiCash|wiki page on DigiCash]]. For general introduction to the key issues in payment see a paper on [[https://​www.federalreserve.gov/​econresdata/​feds/​2016/​files/​2016095pap.pdf|payments and distributed ledgers]] by the Federal Reserve Board | 
-| 17/09/18 | Mon | 2 | Cryptocurrency Examples | {{:​teaching:​cryptofintech:​2018:​2018-lecture-3-cryptocurrency.pdf|Slides}} | For further details and possible extensions of PTN see a {{ teaching:​cryptofintech:​2018:​money.pdf|PTN survey}} (joint work of instructors with an Economics professor in UK). For a bit of history see [[https://​en.wikipedia.org/​wiki/​Ripple_(payment_protocol)|Wiki page on Ripple]] and [[https://​en.wikipedia.org/​wiki/​Zcash|Wiki page on ZCash]]. Technical details of Ripple can be explored on [[https://​developers.ripple.com/​introduction.html|Ripple Developer Center]]. To understand more about ZCash, look into their [[https://​z.cash/​technology/​index.html|Technology page]] and the [[http://​zerocash-project.org/​media/​pdf/​zerocash-extended-20140518.pdf|original scientific paper of ZeroCash]].| 
-| 19/09/18 | Wed | 2 | Requirements for FinTech Case Studies | {{:​teaching:​cryptofintech:​2018:​2018-lecture-4-requirements-fintech.pdf|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 | {{:​teaching:​cryptofintech:​2018:​2018-lecture-5-complexity-introduction.pdf|sides}} ​ | See Section 1.2 of [[http://​www.wisdom.weizmann.ac.il/​~/​oded/​cc-book.html|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 | {{:​teaching:​cryptofintech:​2018:​2018-lecture-6-finite_fields.pdf|slides}} | Read [[http://​cacr.uwaterloo.ca/​hac/​about/​chap2.pdf|Chapter 2]] and [[http://​cacr.uwaterloo.ca/​hac/​about/​chap3.pdf|Chapter 3]] of the [[http://​cacr.uwaterloo.ca/​hac/​|Handbook of Applied Cryptography]]. Read also the original paper of [[https://​ieeexplore.ieee.org/​stamp/​stamp.jsp?​arnumber=1057074|El-Gamal Cryptosystem]] and [[https://​dl.acm.org/​citation.cfm?​id=802212|GM Cryptosystem]]. Find the reference implementation of [[https://​git.gnupg.org/​cgi-bin/​gitweb.cgi?​p=libgcrypt.git;​a=blob_plain;​f=cipher/​elgamal.c;​hb=HEAD|El-Gamal Cryptosystem]] and [[https://​github.com/​prvnkumar/​libgm|GM Cryptosystem]] in C. | 
-| 28/09/18 | Fri | 2 | Lab on Finite Field 1 (libsnark) | {{:​teaching:​cryptofintech:​2018:​lab1.pdf|Exercise}} | | 
-| 01/10/18 | Mon | 2 | Lecture + Lab on Elliptic Curves | {{:​teaching:​cryptofintech:​2018:​2018-lecture-7-elliptic_curves.pdf|Slides and Exercise}} | Read Appendix 6 of [[https://​csrc.nist.gov/​csrc/​media/​publications/​fips/​186/​2/​archive/​2000-01-27/​documents/​fips186-2.pdf|FIPS 186-2]] for the list of recommended curves. | 
-| 05/10/18 | Fri | 2 | Digital Signature | {{:​teaching:​cryptofintech:​2018:​2018-lecture-8-digital_signature.pdf|Slides}} | Read the main body of [[https://​csrc.nist.gov/​csrc/​media/​publications/​fips/​186/​2/​archive/​2000-01-27/​documents/​fips186-2.pdf|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 |  {{:​teaching:​cryptofintech:​2018:​tut1.pdf|Tutorial}} | | 
-| 16/11/18 | Fri | 2 | Libsnark Tutorial: Basic Gadgets | {{:​teaching:​cryptofintech:​2018:​tut2.pdf|Tutorial}} | | 
-| 19/11/18 | Mon | 2 | Student evaluation (theory) | | | 
-| 21/11/18 | Wed | 2 | Libsnark Tutorial: Fundamental Relations and Gadgets | {{:​teaching:​cryptofintech:​2018:​tut3.pdf|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 | {{:​teaching:​cryptofintech:​2018:​exercise1.pdf|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 | {{:​teaching:​cryptofintech:​2018:​2018-lecture-15-futuresmex.pdf|Slides}} | {{:​sp18proceedings.pdf|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| {{:​teaching:​cryptofintech:​2018:​tut1mpc.pdf|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)