Basic Cryptography and Programming with Crypto API (Coursera)

Basic Cryptography and Programming with Crypto API (Coursera)

In this MOOC, we will learn the basic concepts and principles of crytography, apply basic cryptoanalysis to decrypt messages encrypted with mono-alphabetic substitution cipher, and discuss the strongest encryption technique of the one-time-pad and related quantum key distribution systems. We will also learn the efficient symmetric key cryptography algorithms for encrypting data, discuss the DES and AES standards, study the criteria for selecting AES standard, present the block cipher operating modes and discuss how they can prevent and detect the block swapping attacks, and examine how to defend against replay attacks.

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

We will learn the Diffie-Hellman Symmetric Key Exchange Protocol to generate a symmetric key for two parties to communicate over insecure channel. We will learn the modular arithmetic and the Euler Totient Theorem to appreciate the RSA Asymmetric Crypto Algorithm, and use OpenSSL utility to realize the basic operations of RSA Crypto Algorithm. Armed with this knowledge, we learn how to use PHP Crypto API to write secure programs for encrypting and decrypting documents and for signing and verify documents. We then apply these techniques to enhance the registration process of a website which ensures the account created is actually requested by the owner of the email account.
Course 2 of 4 in the Fundamentals of Computer Network Security Specialization.

Syllabus

WEEK 1
Basic Cryptography
In this module we learn the basic concepts and principles of crytography, introduce the basic concept of cryptoanalysis using mono-alphabetic substitution cipher as an example, and discuss the one-time-pad and quantum key distribution concepts.

WEEK 2
Symmetric Key Cryptography
In this module we present the basic mechanism of symmetric key crytography algorithms, discuss the DES and AES standard, describe the criteria for selecting AES standard, present the block cipher operating modes and discuss how the block swapping attacks and replay attacks can be prevented and detected.

WEEK 3
Assymetric Key Cryptography
In this module we will learn the Diffie-Hellman Symmetric Key Exchange Protocol, the modular arithmetic, the Euler Totient Theorm, and RSA Asymmetric Crypto Algorithm, and use OpenSSL to realize the basic operations of RSA Crypto Algorithm.
Graded: Project 2b. Decipher the message encrypted with shared key established by the Diffie-Hellman Key Exchange Protocol

WEEK 4
Develop Secure Programs with Crypto API
In this module, we learn how to use Crypto API to write secure programs for encrypting and decrypting documents, and for signing and verify documents. We then apply the techniques to enhance the registration process of a website which ensures the account created is actually belonging to the owner of the email account the request profile.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Cyber Incident Response (Coursera) Coursera
Infosec

Cyber Incident Response (Coursera)

The Cyber Incident Response course will give students an understanding of how incidents are responded to at a high level, as well as allow them to build important technical skills through the hands-on labs and projects. This course starts with a high-level discussion of what happens at each phase of responding to an incident, followed by a technical deep dive into some of the more exciting parts of memory, network, and host analysis and forensics. This course is for anyone wishing to apply learned forensics and offensive knowledge such as ethical hacking to the incident response process.

Aug 10th 2026
3 Weeks
Introducción a Java (Coursera) Coursera
Universidad Nacional Autónoma de México

Introducción a Java (Coursera)

Me llamo Elisa Viso y una de mis pasiones es la de programar y enseñar a programar. El lenguaje Java es uno de los que más me ha gustado en mis 45 años que llevo programando. Si bien te podrá parecer un poco complicado empezar a programar en Java, una vez que cubras los conceptos básicos verás qué rápido se avanza. Java, como todos los lenguajes de programación bien hechos, te dejan hacer cualquier cosa (algunas de ellas con más trabajo que en otros lenguajes y otras casi directamente de cómo piensas la solución al problema).

Aug 10th 2026
5-12 Weeks
International Cyber Conflicts (Coursera) Coursera
The State University of New York

International Cyber Conflicts (Coursera)

By nature, cyber conflicts are an international issue that span across nation-state borders. By the end of the course, you will be able to apply the knowledge gained for analysis and management of international cyber incidents and conflicts including for activities such as development of policy related to cybercrime and cyberwarfare. Management of cyber incidents and conflicts requires an interdisciplinary perspective including an understanding of: 1) characteristics of the cyber threats and conflicts themselves, 2) international efforts to reduce and improve cyber security, and 3) psychological and sociopolitical factors.

Aug 3rd 2026
5-12 Weeks
Principles of Computing (Part 2) (Coursera) Coursera
Rice University

Principles of Computing (Part 2) (Coursera)

This two-part course introduces the basic mathematical and programming principles that underlie much of Computer Science. Understanding these principles is crucial to the process of creating efficient and well-structured solutions for computational problems. To get hands-on experience working with these concepts, we will use the Python programming language. The main focus of the class will be weekly mini-projects that build upon the mathematical and programming principles that are taught in the class.

Aug 10th 2026
4 Weeks
Cybersecurity and Its Ten Domains (Coursera) Coursera
University System of Georgia

Cybersecurity and Its Ten Domains (Coursera)

This course is designed to introduce students, working professionals and the community to the exciting field of cybersecurity. Throughout the MOOC, participants will engage in community discourse and online interaction. Participants will gain knowledge and understanding of cybersecurity and its domains. They will engage with expertly produced videos, gain insight from industry experts, participate in knowledge assessments, practice assessing their environmental awareness, and gain access to materials that address governance and risk management, compliance, business continuity and disaster recovery, cryptography, software development security, access control, network security, security architecture, security operations, and physical and environmental security.

Aug 3rd 2026
5-12 Weeks
An Introduction to Interactive Programming in Python (Part 1) (Coursera) Coursera
Rice University

An Introduction to Interactive Programming in Python (Part 1) (Coursera)

This two-part course is designed to help students with very little or no computing background learn the basics of building simple interactive applications. Our language of choice, Python, is an easy-to learn, high-level computer language that is used in many of the computational courses offered on Coursera. To make learning Python easy, we have developed a new browser-based programming environment that makes developing interactive applications in Python simple.

Aug 10th 2026
5-12 Weeks
Internet of Things: Communication Technologies (Coursera) Coursera
University of California, San Diego

Internet of Things: Communication Technologies (Coursera)

Have you wondered how “Things” talk to each other and the cloud? Do you understand the alternatives for conveying latency-sensitive real time data versus reliable signaling data? Building on the skills from the Sensing and Actuation course, we will explore protocols to exchange information between processors.

Aug 10th 2026
4 Weeks
Functional Program Design in Scala (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Scala 2 version) (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types.

Aug 10th 2026
5-12 Weeks
Parallel programming (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Parallel programming (Scala 2 version) (Coursera)

With every smartphone and computer now boasting multiple processors, the use of functional ideas to facilitate parallel programming is becoming increasingly widespread. In this course, you'll learn the fundamentals of parallel programming, from task parallelism to data parallelism. In particular, you'll see how many familiar ideas from functional programming map perfectly to to the data parallel paradigm. We'll start the nuts and bolts how to effectively parallelize familiar collections operations, and we'll build up to parallel collections, a production-ready data parallel collections library available in the Scala standard library.

Aug 10th 2026
4 Weeks