The student will be requested to have a good preparation on the presented topics, and to be able to implement some of the algorithms in a programming language
Abstract: Basic cryptograpy and coding theory will be developed. Some protocols and algorithms will be discussed focusing an security and data integrity.
Programme: Elementary arithmetics: Integers, divisibility, prime numbers, Euclidean division and g.c.d., Congruence classes, Chinese remainder theorem, cyclic and abelian groups, Lagrange theorem, Euler theorem, the structure of invertible classes mod p^n, Fields with p elements, polynomials, Euclidean division and g.c.d., Congruence classes of polynomials, Finite fields, primitive elements and polynomials, Legendre/Jacoby symbols and quadratic reciprocity. Cryptography: Classical cryptosystems: Shift cyphers, Vigenère Chipher, Substitution Chiper, One time pads, LFSR Data Encryption Standard: Simplified DES and differential cryptanalysis, Attacks, password encryption RSA: the algorithm, Attacks, Primality testing, the public key concept. Discrete logarithms: Bit commitment, Diffie-Helman Key exchange, ELGAMAL Hash function: SHA, birthday attacks Digital signatures: RSA signatures, Hashing and signing, DSA Error correcting codes: Binary block codes, distance and correction of errors, classical bounds, linear codes, cyclic codes, Hamming codes, BCH and Reed-Solomon codes.
 Wade Trappe, Lawrence C. Washington, Introduction to cryptography: with coding theory 2nd ed.. Pearson Prentice Hall. 2006.