
Explore the fundamentals of cryptography and learn to implement encryption in Python. Understand data encryption, decryption, hashing, and integrity to secure information.
Learn the basics of cryptography: turning plain text into ciphertext via encryption, and restoring it with a secret key through decryption, to keep messages confidential from unauthorized readers.
Trace the history of cryptography from ancient ciphers like the Caesar cipher and scytale to modern symmetric and asymmetric algorithms, Enigma, RSA, TLS, PGP, and post-quantum security.
Explain the goals of cryptography—confidentiality, integrity, authentication, and non-repudiation—via encryption, hash functions, digital signatures, and shared secrets to ensure only authorized parties access and verify messages.
Install brew on mac, set up Python and a virtual environment, install the cryptography module with pip, and verify the module version and OpenSSL readiness.
Learn how encryption converts plain text to ciphertext with a key, and how decryption recovers plain text, illustrated by a caesar shift by three and an end-to-end encryption example.
Explore symmetric and asymmetric encryption, comparing shared-key efficiency and key-exchange challenges with public-private key systems like RSA and ECC, enabling secure data transmission and digital signatures.
Explore the role of keys in cryptography, including symmetric keys for both encryption and decryption, and asymmetric public and private keys, where longer keys boost security.
Explore the Data Encryption Standard, a 64-bit block cipher with a 56-bit key and 16 rounds using the f function, expansion, s-boxes, and permutations.
Explore the advanced encryption standard, a symmetric 128-bit block cipher, with key expansion and rounds that implement sub bytes, shift rows, mix columns, and add round key.
Generate a random 16-byte aes key, build an ecb mode cipher, encrypt a 16-byte plaintext with padding, and decrypt it to recover the text, printing key and ciphertext in hex.
RSA enables asymmetric public-key encryption, using a public key for encryption and a private key for decryption, grounded in number theory and modular arithmetic.
Discover how asymmetric key exchange uses public keys, certificates, and digital signatures to establish a secure session key, enabling confidentiality, integrity, and authentication with TLS, forward secrecy, and AES.
Learn how Diffie-Hellman key exchange securely shares a secret key between two users through public parameters and private keys. Use asymmetric encryption to avoid exposing the key.
Public key infrastructure (pki) builds trust for digital communication by issuing and managing digital certificates through a certificate authority hierarchy, validating identities, and enabling authenticated, encrypted connections.
Hashing converts input data into a fixed-size hash via a one-way function, creating a deterministic, fast, irreversible fingerprint used for password storage, file integrity, and digital signatures.
Discover how digital signatures ensure authenticity, integrity, and non‑repudiation by hashing and signing with a private key. Verify with public key and RSA or DSA in emails, updates, and banking.
Explore brute force, dictionary, rainbow table, mitm, replay, and side-channel attacks with real-world examples like des cracker and evil twin wifi, and learn defenses like salting and nonces.
Understand key management with secure storage, rotation, and access control using HSM or KMS, and follow updated algorithms, rng, and trusted libraries to safeguard data.
Explore Fernet, a high level symmetric encryption system provided by the cryptography python library, using a single key to encrypt and decrypt data, with AES and a mac for integrity.
Build a python file locker that encrypts and decrypts files using the fornet encryption system from the cryptography library. Hash passwords with sha-256 and save the key to locker key.
Participate in a Python cryptography project that presents a menu to generate a key from a password, encrypt and decrypt files, and save key in file locker key.
In today's digital world, security is paramount. Every message, transaction, and click is vulnerable to cyber threats, but cryptography ensures that our data stays safe. Cryptography for Beginners takes you step-by-step through the core concepts of cryptography, from basic principles to writing your own encryption programs in Python.
This course is designed for absolute beginners, with no prior cryptography experience required. We will cover:
Symmetric and Asymmetric Encryption: Understanding the difference between these two encryption methods and how they are used in real-world applications like WhatsApp, online banking, and secure email.
Hashing Algorithms: How passwords and sensitive data are securely hashed and verified.
Practical Python Implementation: You’ll learn to write Python code for encryption, decryption, and hashing using modern algorithms like AES, RSA, and SHA.
Real-World Application: In the final project, you’ll build a fully functional Password Manager that encrypts and stores your passwords securely.
By the end of this course, you’ll not only have a solid understanding of cryptography but also the ability to apply these techniques to protect sensitive information. Whether you’re an aspiring developer, cybersecurity enthusiast, or just curious about how data security works, this course provides the hands-on knowledge you need.
I am very excited to see you in the course!!