Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Wenliang Du

Cryptography is a foundation in cybersecurity. It is the underlying building block of many defense mechanisms, systems, and protocols.  Without crypto, we will not be able to safely conduct many things on the Internet, such as web browsing, online banking, working remotely, etc. Without crypto, blockchain and cryptocurrency will not exist.

Read more

Cryptography is a foundation in cybersecurity. It is the underlying building block of many defense mechanisms, systems, and protocols.  Without crypto, we will not be able to safely conduct many things on the Internet, such as web browsing, online banking, working remotely, etc. Without crypto, blockchain and cryptocurrency will not exist.

In this course, we systematically study the basic principles of cryptography.  In particular, we focus on the three essential pillars of cryptography, including secret-key encryption, one-way hash function, and public-key cryptography. We study how they work and how they are used in the real-world applications. We also look at the risks they face, and how these risks are mitigated in the real world. Furthermore, we study the common mistakes people make when using crypto algorithms and protocols. We show how these mistakes can be exploited in attacks.

The course emphasizes hands-on learning. For each topic covered, students not only learn the theory, they also get to work on the hands-on exercises developed by the instructor. These exercises are called SEED labs, and they are being used by over 1000 institutes worldwide. The course is based on the widely-adopted textbook written by the instructor. The title of the book is "Computer & Internet Security: A Hands-on Approach".

Enroll now

What's inside

Syllabus

Course Overview

Update on the textbook (May 10, 2022): I have already published the 3rd edition of my book. There are three volumes. The "Internet Security" volume contains all the contents covered in this course, so you should get this volume if you plan to buy one.

Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Emphasizes hands-on learning with SEED labs, which are used by over 1000 institutes worldwide, providing practical experience in cryptography
Includes a section on Bitcoin and Blockchain, covering topics such as Proof-of-Work Consensus, Bitcoin transactions, and Ethereum Blockchain
Explores Transport Layer Security (TLS), covering the TLS handshake protocol, data transmission, and implementation of TLS clients and servers
Examines Public-Key Infrastructure (PKI), including certificate issuance and how PKI defeats Man-In-The-Middle (MITM) attacks, which are essential for network security
Based on a widely-adopted textbook written by the instructor, which may require students to purchase the book to follow along with the course
Covers classical crypto systems, DES, AES, and encryption modes, but does not specify the software or libraries used for implementation, which may require additional research

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical introduction to cryptography

According to learners, Cryptography: A Hands-on Approach provides a solid foundation in core cryptographic principles. The course is particularly lauded for its hands-on exercises and SEED labs, which students find highly practical and effective for understanding concepts like encryption modes and digital signatures. While some found the pace challenging at times, the focus on real-world applications and common mistakes makes it a highly relevant course for those interested in cybersecurity. The coverage of topics like TLS and Blockchain is seen as a significant plus.
Instructor explains concepts effectively.
"The instructor explains the concepts clearly and makes complex topics understandable."
"Professor is knowledgeable and passionate about the subject."
"Lectures are well-structured and easy to follow."
"His explanations for the different encryption modes were particularly good."
"Appreciate the instructor's focus on common mistakes and real-world implications."
Connects theory to practical applications like TLS and Blockchain.
"Liked the inclusion of topics like TLS and how cryptography is used in web security."
"The sections on Bitcoin and Blockchain were a useful addition, showing crypto in a modern context."
"Helped me understand how crypto is applied in protocols like TLS and how attacks work."
"Very relevant content for today's cybersecurity landscape."
"Discussing common mistakes and vulnerabilities was very insightful."
Offers a strong introduction to cryptography basics.
"This course provided a great overview of the basic principles of cryptography. Perfect for beginners."
"It covers the fundamental concepts like hash functions, secret-key, and public-key cryptography clearly."
"Gave me a solid understanding of the building blocks of modern security systems."
"A good starting point for anyone wanting to learn about cryptography without deep math."
"Learned the core ideas behind RSA, DES, AES, and Diffie-Hellman effectively."
Provides practical experience with crypto concepts.
"The hands-on labs provided by the instructor were extremely beneficial in understanding the concepts practically."
"I really enjoyed the SEED labs. They are a great way to solidify the theoretical knowledge learned in the lectures."
"The exercises (SEED labs) are key and excellent. Practical application of crypto concepts."
"Working through the SEED labs helped me grasp the nuances of symmetric and asymmetric encryption modes."
"The hands-on exercises were super useful for connecting the theory to actual implementation details."
May lack depth for advanced learners or specific topics.
"While good for foundations, it didn't go into deep mathematical proofs or advanced topics."
"Could use more in-depth coverage on specific algorithms or optimization techniques."
"Felt like it sometimes glossed over the 'why' behind certain cryptographic design choices."
"Good intro, but don't expect to become a crypto expert from this alone."
"Needed external resources to fully understand some of the attack vectors discussed."
Material can be dense or move quickly at times.
"Some parts felt a bit rushed, especially the mathematical background for RSA."
"The pace can be challenging if you don't have some prior technical background."
"Had to pause and rewatch lectures frequently to keep up with the concepts."
"Found some of the explanations, particularly on attacks, a bit brief and hard to fully grasp."
"Requires significant time commitment outside lectures for the labs and understanding."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Cryptography: A Hands-on Approach with these activities:
Review Basic Number Theory
Strengthen your understanding of number theory concepts. This will provide a solid foundation for understanding RSA and other public-key cryptography algorithms.
Browse courses on Modular Arithmetic
Show steps
  • Review modular arithmetic principles.
  • Practice solving modular equations.
  • Understand prime number generation and testing.
Read 'Serious Cryptography'
Supplement your learning with a book that provides a practical perspective on modern cryptography. This will help you understand the real-world applications of the concepts covered in the course.
Show steps
  • Obtain a copy of 'Serious Cryptography'.
  • Read the chapters relevant to the course syllabus.
  • Work through the examples and exercises.
Implement AES Encryption
Reinforce your understanding of AES by implementing it from scratch. This hands-on exercise will solidify your knowledge of the algorithm's inner workings.
Show steps
  • Study the AES algorithm specification.
  • Implement the key expansion routine.
  • Implement the encryption and decryption rounds.
  • Test your implementation with known test vectors.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Blog Post on Padding Oracle Attacks
Solidify your understanding of padding oracle attacks by explaining the concept in a blog post. This will force you to articulate the attack clearly and concisely.
Show steps
  • Research padding oracle attacks thoroughly.
  • Outline the key concepts and steps of the attack.
  • Write a clear and concise explanation of the attack.
  • Include examples and diagrams to illustrate the attack.
  • Publish your blog post online.
Build a Secure Chat Application
Apply your knowledge of cryptography to build a secure chat application. This project will challenge you to integrate various cryptographic techniques to ensure confidentiality and integrity.
Show steps
  • Design the architecture of your chat application.
  • Implement key exchange using Diffie-Hellman or RSA.
  • Implement encryption using AES or ChaCha20.
  • Implement message authentication using HMAC.
  • Test your application for security vulnerabilities.
Read 'Cryptography Engineering'
Expand your understanding of cryptography engineering principles. This book provides valuable insights into the practical considerations of designing and implementing secure systems.
Show steps
  • Obtain a copy of 'Cryptography Engineering'.
  • Focus on chapters related to system design and implementation.
  • Consider the trade-offs between security and performance.
Contribute to a Cryptographic Library
Deepen your understanding of cryptography by contributing to an open-source cryptographic library. This will expose you to real-world code and best practices.
Show steps
  • Identify an open-source cryptographic library.
  • Browse the library's code and documentation.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Cryptography: A Hands-on Approach will develop knowledge and skills that may be useful to these careers:
Cryptographer
A cryptographer researches, designs, and tests cryptographic systems. Cryptographers are experts in algorithms, protocols, and security principles. This course, with its focus on the essential pillars of cryptography, including secret key encryption, one way hash functions, and public key cryptography, is valuable. The coverage of real world applications, risks, and common mistakes made when using cryptographic algorithms are all highly relevant. The course's hands-on learning approach using SEED labs will help you gain practical experience in the field. The material on Transport Layer Security and Bitcoin/Blockchain protocols may be useful. Many cryptographer positions require a master's degree or doctorate.
Security Architect
Security architects design, develop, and implement security solutions for organizations. They need a solid understanding of cryptographic principles to build secure systems. If you want to be a Security Architect, this course may be helpful, as it covers secret key encryption, one way hash functions, and public key cryptography, which are essential components of many security systems. The course’s emphasis on hands on learning and real world applications helps you gain practical experience. The coverage of common mistakes and risks associated with cryptography is beneficial for this role. Knowledge of TLS protocol is also important.
Penetration Tester
Penetration testers, or ethical hackers, assess the security of systems by simulating attacks. A strong understanding of cryptography is essential for identifying vulnerabilities. This course focuses on how cryptographic systems work and the risks they face. The hands-on exercises, which demonstrate how mistakes can be exploited in attacks, makes this course helpful. The study of common mistakes in using crypto algorithms and protocols is valuable. The course covers topics such as padding oracle attacks, collision attacks, and man in the middle attacks. The study of TLS is relevant to the Penetration Tester.
Blockchain Developer
Blockchain developers create and maintain blockchain based applications. A solid understanding of cryptography is essential, as cryptography forms the foundation for blockchain technology. This course covers cryptography and its role in security. The course curriculum covers Bitcoin and Blockchain and it may be useful to you. The course touches on topics such as proof of work consensus, Bitcoin transactions, and Ethereum Blockchain. The information taught may give you insight on how to safeguard cryptographic keys. It will also increase your overall knowledge, which will improve your value to an organization.
Security Consultant
Security consultants advise organizations on how to improve their security posture. They assess risks, design security solutions, and help implement security best practices. This course, with its coverage of cryptographic principles, risks, and real world applications, is valuable for a Security Consultant. This course will help you understand the underlying security mechanisms. The hands on exercises could prove valuable during this course. The topics of TLS, PKI, and attacks will increase your awareness of common security challenges.
Network Security Engineer
Network security engineers are responsible for implementing and maintaining security infrastructure, including firewalls, intrusion detection systems, and VPNs. Cryptography plays a vital role in securing network communications. This course covers secret key encryption, one way hash functions, and public key cryptography, which are all relevant to securing networks. The course's emphasis on real world applications and risks helps you apply cryptographic principles in practice. The study of TLS is important. Overall, this course should increase your knowledge of cryptography.
Application Security Engineer
An application security engineer focuses on ensuring the security of software applications. They identify vulnerabilities, implement security controls, and conduct security testing. Knowledge of cryptography is essential for securing applications and data. To become an Application Security Engineer, this course, with its coverage of cryptographic principles, risks, and real world applications, is very helpful. The study of common mistakes made when using crypto algorithms and protocols is valuable. The course's hands on exercises show how these mistakes can be exploited in attacks. The material on authenticated encryption and padding oracle attacks provides real value.
Information Security Analyst
Information Security Analysts protect an organization's computer systems and networks from cyber threats. Knowledge of cryptography is helpful for understanding and mitigating security risks. This course covers cryptography and its role in security. The course's emphasis on real world applications and risks may prove useful. The course touches on topics such as padding oracle attacks, collision attacks, and man in the middle attacks. The information will give you insight on how to safeguard cryptographic keys. It will also increase your overall knowledge, which will improve your value to an organization.
Cloud Security Engineer
Cloud security engineers are responsible for securing cloud based systems and data. Cryptography is essential for protecting data in the cloud. This course covers cryptography and its role in security. The course emphasizes real world applications and risks. The course may touch on topics such as TLS, authentication, and encryption. The knowledge attained may help to protect cryptographic keys and data in the cloud. Overall, it will increase your knowledge, which will improve your value to an organization.
Software Developer
Software developers design, develop, and maintain software applications. While not always directly involved in cryptography, a basic understanding of security principles is beneficial. This course may be useful, as it covers cryptography and its role in security. The course touches on topics such as encryption, hash functions, and digital signatures. The information will give you insight on how to write more secure code. It will also increase your overall knowledge, which will improve your value to an organization. If you want to be a Software Developer, consider this course.
Data Scientist
Data scientists analyze large datasets to extract insights and build predictive models. A basic understanding of cryptography is useful for securing sensitive data. This course may be helpful, as it covers cryptography and its role in security. The course touches on topics such as encryption and hash functions, which are relevant to protecting data. The information will give you insight on how to safeguard cryptographic keys. It will also increase your overall knowledge, which will improve your value to an organization. Knowledge taught may be handy to a Data Scientist.
Systems Administrator
Systems administrators are responsible for maintaining computer systems and servers. A basic understanding of cryptography is useful for securing systems and data. This course may be useful, as it covers cryptography and its role in security, especially if one is interested in working with systems that deal with sensitive data. The course may touch on topics such as encryption, authentication, and digital signatures. It should increase your knowledge and improve your value to an organization. The Systems Administrator role can be a very rewarding career.
IT Manager
IT managers oversee an organization's information technology infrastructure and resources. While not always needing in depth cryptographic knowledge, they do need awareness of security principles. If you want to be an IT Manager, this course may be valuable, since this course touches on topics such as encryption and digital signatures. The information can give you insight on the importance of cryptography in the organization. It should increase your knowledge and improve your value to an organization. The IT Manager role requires leadership and organizational skills.
Technical Writer
Technical writers create documentation for software, hardware, and other technical products. While not directly needing cryptographic knowledge, a general understanding of security concepts is useful. This course may be useful, as it covers cryptography and its role in security. The course touches on topics such as encryption, hash functions, and digital signatures, which may be relevant when documenting security features. The Technical Writer role requires the ability to explain technical concepts clearly and concisely.
Compliance Officer
A Compliance Officer is responsible for ensuring an organization adheres to laws, regulations, and internal policies. While they might not directly implement cryptographic solutions, understanding data protection principles is key. This course may be useful, as it covers cryptography and its role in security. The course might touch on topics such as encryption, authentication, and data integrity, which are relevant to meeting compliance requirements. The Compliance Officer role requires a deep understanding of legal and regulatory frameworks.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Cryptography: A Hands-on Approach.
Provides a practical and modern introduction to cryptography. It covers many of the topics discussed in the course, such as symmetric-key cryptography, hash functions, and public-key cryptography. It also delves into more advanced topics, making it a valuable resource for students who want to deepen their understanding. This book useful reference tool for understanding the practical applications of cryptography.
Focuses on the practical aspects of cryptography engineering. It provides guidance on how to design and implement secure cryptographic systems. It covers topics such as key management, random number generation, and side-channel attacks. This book is more valuable as additional reading than it is as a current reference. It is commonly used by industry professionals.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser