Welcome to Course 2 of Introduction to Applied Cryptography. In this course, you will be introduced to basic mathematical principles and functions that form the foundation for cryptographic and cryptanalysis methods. These principles and functions will be helpful in understanding symmetric and asymmetric cryptographic methods examined in Course 3 and Course 4. These topics should prove especially useful to you if you are new to cybersecurity. It is recommended that you have a basic knowledge of computer science and basic math skills such as algebra and probability.
Building upon the foundation of cryptography, this module focuses on the mathematical foundation including the use of prime numbers, modular arithmetic, understanding multiplicative inverses, and extending the Euclidean Algorithm. After completing this module you will be able to understand some of the fundamental math requirement used in cryptographic algorithms. You will also have a working knowledge of some of their applications.
A more in-depth understanding of modular exponentiation is crucial to understanding cryptographic mathematics. In this module, we will cover the square-and-multiply method, Eulier's Totient Theorem and Function, and demonstrate the use of discrete logarithms. After completing this module you will be able to understand some of the fundamental math requirement for cryptographic algorithms. You will also have a working knowledge of some of their applications.
Chinese Remainder Theorem
The modules builds upon the prior mathematical foundations to explore the conversion of integers and Chinese Remainder Theorem expression, as well as the capabilities and limitation of these expressions. After completing this module, you will be able to understand the concepts of Chinese Remainder Theorem and its usage in cryptography.
Finally we will close out this course with a module on Trial Division, Fermat Theorem, and the Miller-Rabin Algorithm. After completing this module, you will understand how to test for an equality or set of equalities that hold true for prime values, then check whether or not they hold for a number that we want to test for primality.