The aim of the course is to acquaint students with the basic principles of the science of cryptography and its application for information protection in modern computer systems. The course is more application-oriented and includes: stream and block ciphers, DES algorithms, AES algorithms, algorithms with public cryptographic keys, RSA algorithms, digital signatures and certificates, hash functions. The most commonly used cryptographic algorithms in software for communication, Web and mobile applications are discussed. The acquired knowledge can be used in practice to solve problems related to providing reliable cryptographic protection in various fields - computer networks, e-business, banking, electronic payment systems and more.
1. Cryptography as a science of security and data protection. Difference between Cryptography and Cryptology. Cryptanalysis. Modular arithmetic and historical ciphers.
2. Stream ciphers. Difference between block and stream ciphers. Encryption and decryption with stream ciphers. Using random number generators.
3. AES algorithm. Introduction. Basic mathematical properties of the algorithm. Internal structured AES. Basic levels: Byte Substitution Layer, Diffusion Layer, Key Addition Layer, Key Schedule. Decryption of information.
4. Overview of block ciphers: ECB, CBC, OFB, GCM and others. Encryption models.
5. Cryptographic algorithms using a public key. Asymmetric and symmetric algorithms. Practical aspects of public key algorithms.
6. Basic aspects of RSA algorithms. Using RSA for encryption and decryption. Ways to generate encryption keys.
7. Digital signatures. Principles of digital signatures. RSA signing scheme and its computational aspects. Applied aspects of digital signatures.
8. Hash functions. Signing long messages. Hash function security requirements. Hash algorithms. Application of SHA-1 algorithm.
9. Using MACs (Message Authentication Codes). Principles. MACs for Hash Functions (HMAC) and for block ciphers (CBC-MAC).
10. Creating cryptographic keys. Basic principles and terminology. Using various symmetric and asymmetric techniques to create cryptographic keys.
11. Cryptographic attacks. Classification. Create CPA fonts.
12. Interactive protocols. Security identification and passwords. Authentication question - answer.
13. Authentication when exchanging keys. Security in EBKE, EEBKE protocols. Key exchange via passwords. Creating public keys through Trusted Third Parties.