Cryptography provides algorithms and protocols for secure communication over an insecure channel. These tools are also used in many other aspects of information security such as access control or digital signature. Cryptography plays a crucial role in a wide scope of real-world applications, from the classical military and national security applications to email and online banking. The course focuses on concepts and techniques underlying public-key cryptography. It also covers more advanced cryptographic tasks, for example, identification schemes.
At the end of the class, students should be able to: 1) define and describe basic concepts of blockchain technologies; 2) define and describe basic concepts of cryptocurrency protocols; 3) apply mining and consensus algorithms.