The course is divided into core part, which treats the basics concepts and theoretical foundations and of coding theory and cryptography, and optional parts that include selected applications.
Core part:1. Data compression (symbol coding, Shannon's theory, Huffman coding, arithmetic coding, dictionary methods) 2. Cryptography (Basic concepts: symmetric cryptosystems, block ciphers, stream ciphers, asymmetric cryptosystems, hash functions, message authentication codes, digital signatures. Theoretical foundations: pseudorandom generators, one-way functions, their relations and uses in security analysis.) 3. Error-correcting codes (Shannon’s theorem, upper and lower bounds on the number of codewords, linear codes)
For the optional part the lecturer selects some of the following topics: selected cryptosystems, selected cryptographic protocols, efficient computation over finite fields, zero knowledge proof systems, secret sharing schemes, selected error-correcting codes (turbo codes, low density parity-check codes, Goppa codes), probabilsictic models of data