CNIT 141: Cryptography

Spring 2025

Submitting Projects

CCSF students must do these things to get credit:

  • Perform the project steps until you find a flag
  • Capture a whole-desktop image showing the flag
  • Outline or highlight the flag in the image
  • Submit the image in the appropriate Project in Canvas
  • Type the flag into the text field

Basics

C 101. Binary Games (25 pts + 15 extra)
C 102. Caesar Cipher (30)   (requires windows)
C 103. Substitution Cipher (20)   (requires windows)
C 105. Two-Time Pad (20 pts + 65 extra)
C 106. The Rho Method (15 + 15 extra)
C 107. Simple Ciphers with CyberChef (35 extra)
C 108. Hash Extension (30 extra)

Extra Credit

C 104. Obfuscation CTF (49 pts extra)   
IR 100: Windows and Linux Machines (20 pts extra)   


CryptoHack (extra credit)

AES Modes

C 201. Cracking AES (With Weak Keys)   (requires windows) (10 + 10 extra)
C 202. ECB v. CBC Modes with Python 3 (10 + 20 extra)
C 203. PBKDF2 and AES (90 extra)
Python3 Conversions
Execute Python Online

RSA

C 401. RSA Using Very Small Keys (15 + 15 extra)
C 402. Cracking a Short RSA Key (20 + 30 extra)
C 403. RSA Key Formats (10 + 30 extra)

Sodium

C 430: Private-Key Encryption With Sodium (65 extra)
C 431: Public-Key Encryption With Sodium (25 extra)

Math

C 501. Padding Oracle Attack (20 + 50 extra)
C 502. Existential Forgery Attack on RSA Signatures (10 + 20 extra) (Updated 11-5-20)
C 503. Finding Large Primes (10 + 10 extra)
C 504. Factoring Large Numbers (10 + 10 extra)
C 506. Baby-Step, Giant-Step Attack on DLP (50 extra)
C 507. Pollard-Rho Attack on DLP (55 extra)
C 510. Quantum Computing (20 extra)
C 521: Homomorphic Encryption with SEAL (30 extra)
C 522: IBM Homomorphic Encryption (25 extra)
C 523: zk-SNARKs (20 extra)
C 524: Elliptic Curves and Schnorr Signatures (75 extra)

Post-Quantum Cryptography

C 800: Baby Kyber (40 extra)
C 801: ML_KEM Key Agreement (10 extra)
W 11: Configuring a Local HTTPS Server (10 extra)
W 12: Making an HTTPS Server with Post-Quantum Cryptography (10 extra)

C 810: HQC (Hamming Quasi-Cyclic) Encryption (10 extra)

Python Basics

VP 10: Python 3 Setup  10 extra
VP 100: Strings  50 extra
VP 110: Bytes and Files  25 extra

Cryptography with Python

VP 300: Password Hashes  85 extra
VP 301: Caesar Cipher  52 extra
VP 310: XOR  65 extra
VP 320: AES  55 extra
VP 330: Argon2 Hashes  47 extra

Cryptocurrency Projects (Not Recommended)

Scoreboard · Submit Flags · Details

Scoreboard archived 1-15-25

1-15-25: IR 100 added, H 221 removed, cryotocurrency projects moved to a saparate page
3-3-25: W 11 and W 12 added
3-9-25: Points corrected for C 202
4-9-25: C 810 added
4-16-25: C 801 added