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

The R Programming Environment (Coursera) Coursera
Johns Hopkins University

The R Programming Environment (Coursera)

This course provides a rigorous introduction to the R programming language, with a particular focus on using R for software development in a data science setting. Whether you are part of a data science team or working individually within a community of developers, this course will give you the knowledge of R needed to make useful contributions in those settings.

Jun 1st 2026
4 Weeks
Videojuegos: ¿de qué hablamos? (Coursera) Coursera
Universitat Autònoma de Barcelona

Videojuegos: ¿de qué hablamos? (Coursera)

Probablemente, todos hemos jugado a algún videojuego, pero ¿qué hay detrás de él? Podemos decir que - con independencia del videojuego - hay un árduo trabajo multidisciplinar que incluye desde aspectos de diseño hasta la programación como tal del videojuego. Este curso pretende ser un curso introductorio que muestre qué aspectos hay que considerar en el videojuego, y que permita con posterioridad abordar individualmente los temas que se consideran nucleares: diseño, arte, motor del videojuego y 'game play'.

Jun 1st 2026
5-12 Weeks
Palo Alto Networks Cybersecurity Foundation (Coursera) Coursera
Palo Alto Networks

Palo Alto Networks Cybersecurity Foundation (Coursera)

In this course, students will learn fundamental principles associated with the current cybersecurity landscape and identify concepts required to recognize and potentially mitigate attacks against enterprise networks as well as mission critical infrastructure. Students will also learn how to initially setup and configure security zones, authentication, and policies on a next generation firewall.

Jun 2nd 2026
5-12 Weeks
Desenvolvimento Ágil com Java Avançado (Coursera) Coursera
Instituto Tecnológico de Aeronáutica

Desenvolvimento Ágil com Java Avançado (Coursera)

Neste curso, assumimos que você já sabe projetar e desenvolver programas mais complexos em Java, graças às boas práticas e princípios orientados a objetos e TDD exercitados nos cursos anteriores; mas você talvez não se sinta ainda confortável em projetar programas para Web e com dados armazenados em banco de dados, bem como em aplicar conceitos mais avançados de Java. O objetivo deste curso é enriquecer sua experiência com conceitos avançados de Java, programação de aplicações Web e acesso a banco de dados no contexto de modelagem ágil.

Jun 1st 2026
4 Weeks
Bitcoin and Cryptocurrency Technologies (Coursera) Coursera
Princeton University

Bitcoin and Cryptocurrency Technologies (Coursera)

To really understand what is special about Bitcoin, we need to understand how it works at a technical level. We’ll address the important questions about Bitcoin, such as: How does Bitcoin work? What makes Bitcoin different? How secure are your Bitcoins? How anonymous are Bitcoin users? What determines the price of Bitcoins? Can cryptocurrencies be regulated? What might the future hold?

Jun 1st 2026
5-12 Weeks
¡A Programar! Una introducción a la programación (Coursera) Coursera
University of Edinburgh,Universidad ORT Uruguay

¡A Programar! Una introducción a la programación (Coursera)

¿Alguna vez pensaste en crear tus propios juegos de computadora, pero no tenías idea cómo hacerlo o por dónde comenzar? Este curso te enseñará a programar utilizando Scratch, un lenguaje de programación visual muy fácil de usar, y más importante aún, aprenderás los principios fundamentales de la computación para que comiences a pensar como ingeniero/a de software.

Jun 1st 2026
5-12 Weeks
Android App Components - Services, Local IPC, and Content Providers (Coursera) Coursera
Vanderbilt University

Android App Components - Services, Local IPC, and Content Providers (Coursera)

This 4 week MOOC builds upon the core Android app components and concurrency frameworks covered in Course 2 by focusing on started and bound services, local inter-process communication (IPC), and content providers. Case study apps will be examined from multiple perspectives to learn how to program these app components using Android's material design paradigm.

Jun 1st 2026
4 Weeks
Development of Real-Time Systems (Coursera) Coursera
EIT Digital

Development of Real-Time Systems (Coursera)

This course is intended for the Master's student and computer engineer who likes practical programming and problem solving! After completing this course, you will have the knowledge to plan and set-up a real-time system both on paper and in practice. The course centers around the problem of achieving timing correctness in embedded systems, which means to guarantee that the system reacts within the real-time requirements.

Jun 1st 2026
5-12 Weeks
Linux Server Management and Security (Coursera) Coursera
University of Colorado System

Linux Server Management and Security (Coursera)

Whether you are accessing a bank website, Netflix or your home router, chances are that your computer is interacting with a Linux system. The world runs on Linux. In this course, we will dive into how Linux works from an enterprise perspective. In week 1 we will look at what Linux is used for in the enterprise. By the end of week 1, you will be able to differentiate between different versions of Linux and understand how they are used in an enterprise environment. In week 2, we will explore how Linux systems are configured.

Jun 1st 2026
5-12 Weeks
Cloud Computing Applications, Part 1: Cloud Systems and Infrastructure (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Applications, Part 1: Cloud Systems and Infrastructure (Coursera)

Welcome to the Cloud Computing Applications course, the first part of a two-course series designed to give you a comprehensive view on the world of Cloud Computing and Big Data! In this first course we cover a multitude of technologies that comprise the modern concept of cloud computing. Cloud computing is an information technology revolution that has just started to impact many enterprise computing systems in major ways, and it will change the face of computing in the years to come.

Jun 1st 2026
4 Weeks