When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 4 modules in this course
A prominent expert in the number theory Godfrey Hardy described it in the beginning of 20th century as one of the most obviously useless branches of Pure Mathematics”. Just 30 years after his death, an algorithm for encryption of secret messages was developed using achievements of number theory. It was called RSA after the names of its authors, and its implementation is probably the most frequently used computer program in the world nowadays. Without it, nobody would be able to make secure payments over the internet, or even log in securely to e-mail and other personal services. In this course we will start with the basics of the number theory and get to cryptographic protocols based on it. By the end, you will be able to apply the basics of the number theory to encrypt and decrypt messages, and to break the code if one applies RSA carelessly. You will even pass a cryptographic quest!
As prerequisites we assume only basic math (e.g., we expect you to know what is a square or how to add fractions), basic programming in python (functions, loops, recursion), common sense and curiosity. Our intended audience are all people that work or plan to work in IT, starting from motivated high school students.
In this week we will discuss integer numbers and standard operations on them: addition, subtraction, multiplication and division. The latter operation is the most interesting one and creates a complicated structure on integer numbers. We will discuss division with a remainder and introduce an arithmetic on the remainders. This mathematical set-up will allow us to created non-trivial computational and cryptographic constructions in further weeks.
What's included
8 readings11 assignments
Show info about module content
8 readings•Total 120 minutes
Numbers•15 minutes
Divisibility•10 minutes
Remainders•20 minutes
Problems•10 minutes
Divisibility Tests•10 minutes
Modular Arithmetic•20 minutes
Applications•15 minutes
Modular Subtraction and Division•20 minutes
11 assignments•Total 126 minutes
Divisibility•15 minutes
Remainders•10 minutes
Properties of Divisibility•10 minutes
Divisibility Tests•8 minutes
Modular Arithmetic•8 minutes
Remainders of Large Numbers•10 minutes
Modular Division•10 minutes
Puzzle: Take the last rock•30 minutes
Division by 101•10 minutes
Division by 4•5 minutes
Four Numbers•10 minutes
Euclid's Algorithm
Module 2•4 hours to complete
Module details
This week we'll study Euclid's algorithm and its applications. This fundamental algorithm is the main stepping-stone for understanding much of modern cryptography! Not only does this algorithm find the greatest common divisor of two numbers (which is an incredibly important problem by itself), but its extended version also gives an efficient way to solve Diophantine equations and compute modular inverses.
What's included
7 videos4 readings7 assignments
Show info about module content
7 videos•Total 78 minutes
Greatest Common Divisor•11 minutes
Euclid’s Algorithm•15 minutes
Extended Euclid’s Algorithm•10 minutes
Least Common Multiple•8 minutes
Diophantine Equations: Examples•5 minutes
Diophantine Equations: Theorem•16 minutes
Modular Division•12 minutes
4 readings•Total 36 minutes
Greatest Common Divisor: Code•15 minutes
Extended Euclid's Algorithm: Code•10 minutes
Slides•1 minute
Slides•10 minutes
7 assignments•Total 110 minutes
Tile a Rectangle with Squares•20 minutes
Least Common Multiple: Code•15 minutes
Diophantine Equations: Code•20 minutes
Modular Division: Code•20 minutes
Greatest Common Divisor•10 minutes
Least Common Multiple•10 minutes
Diophantine Equations•15 minutes
Building Blocks for Cryptography
Module 3•4 hours to complete
Module details
Cryptography studies ways to share secrets securely, so that even eavesdroppers can't extract any information from what they hear or network traffic they intercept. One of the most popular cryptographic algorithms called RSA is based on unique integer factorization, Chinese Remainder Theorem and fast modular exponentiation. In this module, we are going to study these properties and algorithms which are the building blocks for RSA. In the next module we will use these building blocks to implement RSA and also to implement some clever attacks against RSA and decypher some secret codes.
What's included
11 readings6 assignments
Show info about module content
11 readings•Total 107 minutes
Introduction•10 minutes
Prime Numbers•10 minutes
Factoring: Existence•10 minutes
Factoring: Uniqueness•10 minutes
Unique Factoring: Consequences•10 minutes
Remainders for Two Modulo Values•10 minutes
Chinese Remainder Theorem•10 minutes
Modular Exponentiation•10 minutes
Fast Modular Exponentiation•7 minutes
Fermat's Little Theorem•10 minutes
Euler's Theorem•10 minutes
6 assignments•Total 145 minutes
Integer Factorization•20 minutes
Remainders•30 minutes
Chinese Remainder Theorem: Code•15 minutes
Fast Modular Exponentiation: Code•20 minutes
Modular Exponentiation•30 minutes
Puzzle: Arrange Apples•30 minutes
Cryptography
Module 4•5 hours to complete
Module details
Modern cryptography has developed the most during the World War I and World War II, because everybody was spying on everybody. You will hear this story and see why simple cyphers didn't work anymore. You will learn that shared secret key must be changed for every communication if one wants it to be secure. This is problematic when the demand for secure communication is skyrocketing, and the communicating parties can be on different continents. You will then study the RSA cryptosystem which allows parties to exchange secret keys such that no eavesdropper is able to decipher these secret keys in any reasonable time. After that, you will study and later implement a few attacks against incorrectly implemented RSA, and thus decipher a few secret codes and even pass a small cryptographic quest!
What's included
8 readings2 assignments2 ungraded labs
Show info about module content
8 readings•Total 80 minutes
Cryptography•10 minutes
Secure Communication•10 minutes
Substitution Ciphers•10 minutes
One-time Pad•10 minutes
Many Time Pad Attack•10 minutes
RSA Cryptosystem•10 minutes
Attacks and Vulnerabilities•10 minutes
Randomness Generation•10 minutes
2 assignments•Total 150 minutes
RSA Quiz: Code•120 minutes
RSA Quest - Quiz•30 minutes
2 ungraded labs•Total 60 minutes
Many Time Pad Attack•30 minutes
RSA Quest Notebook•30 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructors
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.5
609 reviews
5 stars
69.29%
4 stars
20.36%
3 stars
5.41%
2 stars
1.64%
1 star
3.28%
Showing 3 of 609
A
AC
5·
Reviewed on Nov 30, 2020
Excellent course to learn number theory principles and relate them to asymmetric cryptosystems. The course is highly rigorous and challenging.
T
TV
5·
Reviewed on Feb 4, 2021
Thank you! enjoyed learning number theory, understood new concepts of modular programming, how public key -private key works and the basis of rsa algorithm.
R
RD
5·
Reviewed on Sep 17, 2020
Excellent material and teachers.Specifically, the course contents of week 4 : the RSA quiz and the RSA quest quiz material is outstanding! Kudos!
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.