CNIT 141: Cryptography

Fall 2023

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)   
H 221: Google Cloud Windows Server (10 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 + 10 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)

Smart Contract Security
for Beginners

Fundamentals

H 530: Blockchains (15 extra)
C 330: MetaMask Wallet (15 extra)

Smart Contracts

C 351: Making a Solidity Contract (10 extra)
C 352: Making a Coin with Solidity (10 extra)
C 353: Reentrancy Attack (25 extra)
C 354: Winning an Auction (10 extra)
C 355: Exploiting a Fallback Function (10 extra)
C 356: Phishing a Contract that Uses tx.origin (10 extra)
H 532: Hacking PoWHCoin (15 extra)

Capture the Ether

C 600: Warmup: Deploy a Contract (15 extra)
C 601: Warmup: Call Me (15 extra)
C 602: Warmup: Choose a Nickname (15 extra)
C 603: Guess the Number (15 extra)
C 604: Guess the Secret Number (15 extra)
C 605: Guess the Random Number (25 extra)

Ethereum

Wallets

C 360: Making a NFT (15 extra)
M 101: Genymotion Android Emulator (15 extra)
C 334: MetaMask Mobile Wallet (10 extra)

Smart Contracts

C 350: CryptoZombies (60 extra)
C 391: Glow (20 extra)

Servers

ED 30: Linux Virtual Machine (15 extra)
C 340: Making a Private Ethereum Blockchain (10 extra)
C 342: MetaMask with Local Testnet (10 extra)
C 343: Mining Sepolia Testnet Ether (20 extra)

Cryptocurrency

C 380: Radix Wallet (20 extra)
C 390: Exodus Wallet (15 extra)
C 303: Double-Spend (51% Attack) on Bitcoin (20 extra)
C 370: Stellar (15 extra)
C 701: Making a Solana Smart Contract (15 extra)
C 702: Phantom Wallet for Solana (15 extra)

Blockchains

H 201: Google Cloud Linux Server (10 extra)
C 311: Multichain (20 extra)
C 312: Joining Samchain (20 extra)
H 531: Hyperledger IROHA (15 extra)
C 525: Lightning Network (20 extra)
C 526: Phoenix Wallet and Lightning Network (20 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

9-8-22: C 330 and C 351 converted to Sepolia testnet
9-14-22: C 107 added
11-27-23: C 800 added

Scoreboard · Submit Flags