
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.
This module introduces secret-key cryptography, contrasting classic cipher systems with modern algorithms like DES and AES, and explores encryption modes, initialization vectors, padding, padding oracle attacks, and pattern oracle attacks.
Explore classic cipher systems, including substitution and transposition ciphers, and examine how frequency analysis reveals letters and common sequences, forming the building blocks of modern ciphers.
Explore polyalphabetic ciphers and the Enigma machine, showing how rotors, wiring, and a plugboard create shifting mappings, guarded by initial rotor positions and a secret codebook.
Explore how encryption modes—CBC, CFB, OFB, and CTR—use IV and feedback to prevent identical ciphertext for identical plaintext in block ciphers.
Explore common mistakes with initialization vectors in encryption, showing how fixed or predictable ivs undermine security in ofb mode and illustrating known-plaintext and chosen-plaintext attacks.
Explore authenticated encryption with GCM mode, showing how encryption alone fails to preserve integrity and how GCM combines encryption with a message authentication tag to detect tampering.
Understand PKCS#5 padding in CBC mode, filling the final block and removing padding on decryption. Some modes like CFB do not require padding, and libraries may handle it.
Demonstrates a padding oracle attack, where an oracle’s padding validity feedback allows attackers to progressively reveal plaintext from ciphertext, with practical lab demonstrations.
Examine classic and modern crypto systems, from the Enigma to DES and AES, and learn about block modes, initialization vectors, padding, padding oracle attacks, and authenticated encryption with GCM.
Explore the concept and properties of a one-way hash function and the collision and hash extension attacks. Apply these ideas to cryptocurrency, blockchain, password authentication, and trusted timestamp.
Discover how one-way hash functions enable fair commitment by hashing a value, using fixed-length outputs and collision resistance to prevent cheating in online interactions.
Explore how hash functions work, focusing on the MD and SHA families, Merkle-Damgård construction, and why legacy MD5 and SHA-1 are vulnerable to collision and extension attacks.
Explore how cryptographic hash functions enable integrity verification and authentication, from verifying downloads with trusted hashes to securing passwords with salts and multiple iterations against brute-force attacks.
Examine the properties of one-way hash functions, MD5 and SHA-1 weaknesses, collision attacks, and the role of hashes in message authentication codes and blockchain applications.
Explore public key cryptography, including the Diffie-Hellman key exchange, RSA, and digital signatures, and learn how public and private keys solve key distribution challenges with practical tools.
The lecture explains how diffie-hellman uses public parameters g and p and the discrete logarithm to establish a shared secret over an open channel, enabling public key cryptography.
Learn how RSA generates public and private keys from primes p and q, with n = p q and phi(n) = (p-1)(q-1). Use e and d to encrypt and decrypt.
Learn to generate RSA keys with OpenSSL, export public and private keys, and perform encryption and decryption, then compare RSA performance with symmetric algorithms and explain the hybrid mode.
This lecture explains why padding is essential for block ciphers, contrasts PKCS 1.5 padding in RSA, and discusses textbook RSA weaknesses and the role of IV in practice.
Discover how digital signatures prove message origin and integrity by signing hashes with a private key and verifying with a public key using RSA.
Learn public key encryption and digital signatures using Python and the crypto library, generating RSA keys, encrypting and decrypting, and creating and verifying signatures with elliptic curve examples.
Explore how public key cryptography enables authentication and secure key exchange, enabling passwordless logins on cloud services and GitHub, using private keys, certificates, and offline verification.
Examine how a man-in-the-middle intercepts and alters public key exchanges, differentiating eavesdropping from interception, and explore how PKI helps thwart these attacks.
Explore how public key infrastructure uses trusted certificate authorities and digital signatures to verify identities, issue certificates, and build a chain of trust from root authorities to end users.
Explore how public key certificates verify identity through certificate authorities, chain validation with intermediate certificates, and revocation mechanisms, using x.509 and RSA keys.
Learn how to configure a web server to use a public key certificate to establish a trusted tls channel, including certificate chains, private key protection, and hostname verification in browsers.
Explore how public key infrastructure defeats man in the middle attacks by validating certificates, proving private key ownership, and protecting identity and public keys amid domain name system cache poisoning.
Analyze PKI attack surfaces across verification, approval, and user confirmation, including certificate authority breaches and private key exposure, and how hash weaknesses enable forged certificates and domains that resemble sites.
Explore how a man-in-the-middle attack targets public key infrastructure and key exchange, then build trust with certificate authorities, generate and sign X.509 certificates, and secure files, plus lab cleanup steps.
This module introduces the kiosk protocol and SSL-based security, covering handshake, key negotiation, encryption, data integrity, and a hands-on lab with a Python SSL proxy.
Learn how TLS encrypts data, negotiates a key via the handshake, and manages records between the application and transport layers, comparing TLS 1.3 and 1.2 and the evolution from SSL.
Explain the tls handshake protocol, detailing key exchange and authentication, compare rsa-based and diffie-hellman methods, and describe ephemeral keys and forward secrecy in tls 1.3.
After a handshake, the SSL layer splits data into records, encrypts with a MAC, and transmits over TCP; boundaries may not align with TCP segments, so a buffer holds leftovers.
Build a tls client that performs a tcp handshake to establish a tls session, verifies the server certificate with trusted roots, and prints handshake details like the cipher.
Verify the hostname during the TLS handshake to prevent man-in-the-middle attacks and DNS hijacks, beyond certificate validity.
Explore building a TLS server program that presents a certificate and private key, optionally requests a client certificate for authentication, and handles the handshake with a browser or client.
Explore how a tls mitm proxy intercepts and inspects client-server traffic by installing a root certificate, generating on-demand certificates, routing via dns, and optionally modifying responses.
Explore the chaos protocol’s handshake and key exchange among kiosk, client, and server to secure encrypted data transmission with integrity checks, and complete the hands-on lab.
Explore how blockchain and Bitcoin underpin cryptocurrency and their applications. Build a blockchain emulator on your computer using container technology, with labs to come.
Explore how blockchain functions as a public, distributed, append-only ledger. Understand hash chaining, anonymous transactions via pseudonyms, and consensus protocols such as proof of work, stake, or authority.
Explain how proof-of-work drives blockchain consensus in a peer-to-peer network, detailing how miners broadcast transactions, assemble blocks, solve hash puzzles, and rely on merkle roots, forks, longest chain, and rewards.
Trace cryptocurrency history from DigiCash and Hashcash to the Bitcoin whitepaper. Explore Bitcoin accounts, the distributed ledger, and secure, central authority free transactions.
generate a bitcoin address from a private key using a public key hash. compress the public key, perform double hashing with a checksum, and encode in base58.
Explore how bitcoin transactions use multiple inputs and outputs, unlocking and locking scripts in a stack-based script language, with transaction fees and miner incentives shaping spending.
Explain how locking and unlocking scripts secure bitcoin transactions, detailing pay-to-public-key-hash and pay-to-script-hash, including signatures, public keys, and multi-signature cases with real-world examples.
Explain how double spending occurs in Bitcoin, how confirmations and hash power influence security, and why waiting for several blocks reduces double spending risk.
Explore the Ethereum blockchain as a platform for smart contracts and decentralized apps, contrasting it with bitcoin and the move from proof of work to proof of stake with validators.
Explore blockchain basics, bitcoin mechanics, addresses, and transactions, then examine Etherium as a smart contract platform and the vulnerabilities that threaten real-world crypto.
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".