CNIT 141: Cryptography

Spring 2025

Scoreboard · My Scores · Submit Flags · Take a Quiz

Canvas Outage

CNIT 141 students should have received
an email from sam.bowne@agentmail.to
showing how to take the final exam
without using Canvas.

Since Canvas is down and I cannot access quiz
scores, your grade will be based on projects
and the final exan only, assuming you got
20 on all the quizzes.

Here is the new grading system:

A: 368
B: 300
C: 165
D: 98
F: 97 or less

I am working on gathering all the extra
credit I sent to Canvas and adding it to
my new scoring system.

If you submitted projects in Canvas, or
have any other issues to discuss, please
email sbowne@ccsf.edu or come to one of my
Twitch sessions shown at the top of samsclass.info

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)

AI Agents

Recommended

ED 33: Ubuntu Linux Desktop (10 pts)
ML 135: OpenClaw on Ubuntu Linux (15 pts)

Not Recommended

ML 123: Running Llama 3 Locally (15 pts)
ML 133: MCP with Claude (15 pts)
H 112: Cloudflare Quick Tunnel (25 pts)
ML 134: IronClaw on Ubuntu Linux (15 pts)

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 · Scoreboard archived 12-6-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
12-6-25: Scoreboard archived, set up for S26
AI Agents added 3-4-26
Quiz system added 3-12-26