course aims in Estonian
Aine eesmärk on anda ülevaade põhilistest krüptoprimitiividest, -protokollidest ja -tehnikatest, keskendudes nende rakenduslikele eesmärkidele, ning arendada tudengite võmekust kavandada ja analüüsida turvalisi digisüsteeme.
course aims in English
This course aims to introduce fundamental cryptographic primitives, techniques and protocols, with a focus on their applications and develop the students’ ability to develop and analyse secure digital systems.
learning outcomes in the course in Est.
Õppeaine läbinud üliõpilane:
- kirjeldab enim levinud krüptoprimitiivide põhiomadusi ja nende kasutuseesmärke;
- seletab primitiivide rolli erinevate turvaeesmärkide saavutamisel krüptoprotokollides (nt TLS) ja leiab ning põhjendab lihtsamaid nõrkusi protokollide struktuuris;
- teab, milliseid krüptoalgoritme ja -protokolle praktikas kasutada, kuidas neile parameetreid valida ja miks kõrvalekalded võivad ohtlikuks osutuda;
- on kursis usaldusvõrkude ja avaliku võtme infrastruktuuri (PKI) põhimõtetega ja põhjendab neid;
- programmeerib/skriptib tüüpilisi krüptograafilisi operatsioone, kasutades levinud teeke ja vahendeid;
- kasutab autoriteetseid allikaid parimate krüptotavade kohta.
learning outcomes in the course in Eng.
After completing this course, the student:
- describes the basic properties, functions and limitations of common cryptographic primitives;
- explains how cryptographic protocols (e.g. TLS) combine different primitives to achieve multiple security goals, and identifies and explains basic cryptographic issues in a protocol design;
- knows which cryptographic algorithms and protocols to use in practice, how to securely instantiate them, and the risks associated with selecting nonstandard options;
- understands and justifies the principles of trust networks and PKI;
- writes programs/scripts that perform common cryptographic operations using standard libraries and tools;
- consults authoritative sources on cryptographic best practices.
brief description of the course in Estonian
Aines keskendume sellele, miks, kus ja kuidas krüptograafiat praktikas rakendada. Aine ei ole formaalne krüptoalgoritmide ja -protokollide õpe. Siiski õpime ka erinevusi teoreetilise ja rakendusliku turvataseme vahel ja kuidas vältida praktikas rakenduslike turvanõrkuste tekkimist.
Tudengid õpivad, mis on krüptograafia roll andmete ja suhtluse turvamisel, kuidas kontrollida andmete terviklust ja autentsust ja kuidas kaitsta andmete konfidentsiaalsust. Lisaks õpivad tudengid seda, kuidas tuvastada ebaturvaliste krüptoprotokollide nõrkusi ja neid rünnata ning miks tuleks vältida omaenda protokollide loomist. Kursus annab ülevaate, kust leida ja kuidas tõlgendada infot parimate krüptotavade rakendamiseks.
Teemade loetelu: pseudojuhuslikkus; sümmeetrilised ja asümmeetrilised krüptosüsteemid; räsifunktsioonid, sõnumiautentimiskoodid ja võtmetuletusfunktsioonid; digiallkirjad, sertifikaadid, avaliku võtme infrastruktuur ja eIDAS; TLS; külgkanaliründed ja turvalise programmeerimise põhimõtted; kinnistus- ja identifitseerimisskeemid; nullteadmustõestused ja Sigma-protokollid; saladusejaotus ja turvaline ühisarvutamine; e-hääletamine; postkvantkrüptograafia alused.
brief description of the course in English
Rather than delving into the mathematical theory of cryptography, the course is focused on the why’s of cryptography, as well as its real-world use. Students will also learn about the differences between theoretical and practical security and how to minimise vulnerabilities that come with using cryptography in practice.
Students will learn the role of cryptography in securing communications and data, how cryptography is used to provide data integrity and authenticity and maintain its confidentiality. Students will learn how to identify and exploit weaknesses in insecure cryptographic protocols, and why designing and implementing one’s own protocols is discouraged. The course teaches students where to find and how to interpret information of cryptographic best practices.
List of topics: pseudorandomness; symmetric and asymmetric cryptosystems; hash functions, MACs and KDFs; digital signatures, certificates, PKI and eIDAS; TLS; side channel attacks and basics of secure programming; commitment and identification schemes; zero-knowledge proofs and Sigma protocols; secret sharing and secure multi-party computation; online voting; basics of post-quantum cryptography.
type of assessment in Estonian
-
type of assessment in English
-
independent study in Estonian
-
independent study in English
-
study literature
- Svetlin Nakov. Practical Cryptography for Developers. https://cryptobook.nakov.com;
- Mike Rosulek. The Joy of Cryptography. https://joyofcryptography.com
study forms and load
daytime study: weekly hours
4.0
session-based study work load (in a semester):
lecturer in charge
Taaniel Kraavi, külalisõppejõud (IC - IT kolledž)