Mathematical and practical foundations of cryptography, including basic number theory for cryptography, conversion of text, and implementation using a programming language. Historical cryptography, symmetric cryptography, asymmetric cryptography, hash functions, well-known strategies with countermeasures. Programming of cryptographic algorithms.