Computational Cryptography


Code 3.4.3327.9
Semester 9th
Flow L - Computer Software
Category Obligatory by selection
Credits 4
Class Hours - Lab Hours 4 - 0
Lecturers Aris Pagourtzis, Petros Potikas (T & R Associates)

Description

Classical cryptography: Substitution cryptosystems, Caesar, Vigenere, cryptanalysis methods. Perfect secrecy (Shannon), one-time pad. Semantic security, CPA, CCA, PCPA. Symmetric cryptography. Pseudorandomness, stream cryptosystems. Block cryptosystems: Feistel circuits, DES, AES, operation modes. Message authentication codes (MACs). Hash functions, salt, Merkle trees.
Elements of number theory: divisibility, residue arithmetic, quadratic residues, Chinese remainder theorem. Elements of group theory: groups, rings, Legendre theorem. Euler's φ function. Prime number tests. Public key cryptography. RSA and Rabin cryptosystems, relation to factoring problem. The discrete logarithm problem, ElGamal cryptosystem. Diffie-Hellman key exchange. Digital signatures: RSA, DSS, blind signatures. Cryptographic protocols: secret sharing, zero knowledge proofs, identification. Elements of complexity theory: one-way functions. Applications: encrypted communications, electronic voting, attacks, crypto-currencies (bitcoin).
The course contains (in addition to exercises) a project with a written report and presentation.