/crypto

Course topics & links for crypto & appsec course taught in 2021

Primary LanguagePython

Cryptography Fundamentals course (now with some AppSec)

Details

Most of the content (and lecture recordings) are on Moodle but I'm adding a list of topics & some resources here for anyone who wants to quickly browse them.

Book/Tutorial Recommendations

YouTube Channels

People

Podcasts

Conferences

Communities

Week 1

Topics:

  • History
  • Classical Ciphers
  • XOR
  • GitHub
  • Kali
  • Python Basics
  • cryptii.com - Website with many interactive ciphers/encoding.
  • GCHQ CyberChef
  • repl.it - Online code editor

Week 2

Topics

  • Binary
  • ASCII
  • Hexadecimal
  • Attack Model
  • Kerckhoff's Principle
  • Python's Cryptography Library
  • Python - cryptography - Cryptography library for Python

Week 3

Topics

  • Padding, Cribs, and NSA Archive on Archive.org
  • Key Reuse with One-Time Pad
  • Frequency Analysis & Classical Cipher Example
  • Cryptanalysis Attack Models/Types
  • JetBrains IDEs & PyCharm
  • Kali Linux & VirtualBox
  • Randomness & Pseudo-Random Number Generators (PRNGs)
  • Confusion & Diffusion
  • Ciphertext Indistinguishability (IND) and Non-Malleability (NM)
  • ARX (Add-Rotate-XOR) Ciphers
  • S-Boxes (Substitution) and P-Boxes (Permutation)

Week 4

Topics

  • ARX Ciphers continued
  • Block Ciphers
  • P-Boxes, S-Boxes, Substitution-Permutation Networks (SP Network)
  • Parity Bits
  • Question about VPNs
  • Feistel Networks
  • DES - Data Encryption Standard, DES-X & Key whitening, Triple-DES aka 3DES
  • AES - Advanced Encryption Standard
  • Block Cipher Modes of Operation

Week 5

Topics

  • Confidentiality
  • Block Cipher Modes of Operation (Confidentiality-only): ECB, CBC, CTR, OFB, CFB.
  • Stream Ciphers
  • Nonce: Number-used-only-ONCE.
  • Cryptographic Oracle & Oracle Attack
  • Integrity: Parity Bits (revision), Check-Digits, Checksums
  • Common Vulnerabilities & Exposures (CVE)
  • Hashing (brief overview - more to come)
  • Message Authentication Codes (brief overview - more to come)
  • Dates, Time, and Timezones (Answering question from student)
  • Sockets & Netcat (brief overview - more to come)
  • Threading (brief overview - more to come)

Week 6 - No Classes due to Easter Holidays

Week 7

  • Netcat
  • UNIX: /etc/services & ports, less, pipes
  • Hex Editors & Assembly Language Basics
  • UNIX: Manpages, Keyboard Shortcuts / Signals, System Calls, /proc
  • Library Security & Supply Chain Attacks
  • Sockets with Python / Homework Review
  • Netcat & Reverse Shells
  • HTTP, curl, Requests & Responses
  • Python: Classes & Files
  • Mirai Botnet Quick Code Review
  • CTFs & upcoming HackTheBox Cryptapocalypse

Week 8

Topics

  • Message Authentication Codes
  • Authenticated Encryption (AE)
  • Hashing & Passwords
  • Diffie-Hellman Key Exchange
  • Public Key Cryptography

Week 9

Topics - Week 8 topics in more detail

  • Message Authentication Codes
  • Authenticated Encryption (AE)
  • Hashing & Passwords: SHA2, SHA3, bcrypt, scrypt, Argon2
  • Diffie-Hellman Key Exchange
  • Public Key Cryptography

Week 10

Topics

  • RSA
  • Elliptic Curve Cryptography (ECC) & ECDH
  • Computational Hardness: Integer Factoring & Discrete Log
  • Digital Signatures & Non-repudiation
  • Public Key Infrastructure (PKI)
  • Transport Layer Security (TLS)

Week 11

Topics

  • Web Security Basics
  • APIs
  • OAuth
  • OWASP Top 10
  • Containers

Week 12

Topics

Week 13

Topics

  • More C
  • x86/64 Assembly

Week 14

Topics

  • Revision
  • Practice Test

Week 15

Topics

  • Test

Week 16 - CVE Presentations