All outcomes
Skills

Implement a Cipher From Mathematical Specification and Analyse a Real Vulnerability

8 weeks · 0 milestones

Implement a symmetric cipher (AES, ChaCha20, or equivalent) from its published mathematical specification — no library calls for the core cipher operations, only for testing correctness against known test vectors. Additionally, write an analysis of one published cryptographic vulnerability (a CVE with a known mathematical weakness such as padding oracle, timing side-channel, or nonce reuse) explaining the exact mathematical flaw exploited and how the implementation deviated from the secure specification. Proof: the implementation and vulnerability analysis reviewed by a security practitioner or CS lecturer with cryptography background who presents a different cipher specification you haven't seen and asks you to implement the key schedule or identify the flaw in a published attack — you must engage with the new material in real time, not describe your prepared examples.

Milestone map

Milestone map

3 milestones

Implement AES and RSA From First Principles

10–18 weeks (includes mathematical prerequisites)

Study the mathematical foundations of symmetric encryption (AES, block cipher modes) and public-key cryptography (RSA). Implement AES encryption and decryption without using a cryptographic library for the core algorithm — including the key schedule, SubBytes, ShiftRows, MixColumns, and AddRoundKey steps. Separately, implement RSA from first principles: key generation from two primes, modular exponentiation, encryption, and decryption.

Proof required

Submit: a public GitHub repository containing your AES implementation (with test vectors from NIST FIPS 197) and your RSA implementation (key generation, encrypt, decrypt — with a test demonstrating round-trip correctness); and a written explanation (300 words) of why AES is considered secure and what 'semantic security' means in practical terms. A cryptographer, security researcher, or CS lecturer with cryptography experience must review the implementations and confirm they are correct.

What gets checked

  • AES implementation passes NIST FIPS 197 known-answer test vectors — not just informal round-trip tests
  • RSA implementation includes key generation from actual primes — not hardcoded example keys
  • A cryptographer or security researcher has confirmed both implementations are correct and the security explanation is accurate

Common mistakes

  • Using a cryptographic library (OpenSSL, PyCryptodome) for the core algorithm — the proof requires implementing the algorithm, not calling it
  • RSA implementation that skips primality testing and uses small primes — secure RSA parameters require real key generation

Resources

Foundationstart here

Depthgo deeper

What a verifier looks for

  • Run the AES implementation against NIST FIPS 197 known-answer test vectors — does it produce correct ciphertexts?
  • Ask: 'why is ECB mode insecure for encrypting images?' — tests mode-of-operation understanding beyond AES
  • Does the semantic security explanation correctly describe the property — not just 'hard to break'?

Analyse a Real TLS 1.3 Handshake and Implement HMAC

8–12 weeks (after milestone 1)

Study digital signatures (RSA-PSS, ECDSA), certificate chains, and how TLS 1.3 uses these primitives together. Implement HMAC-SHA256 without using a MAC library. Capture a real TLS 1.3 handshake in Wireshark and annotate it, identifying each message, what cryptographic operation it performs, and which key material it uses.

Proof required

Submit: a public GitHub repository containing your HMAC-SHA256 implementation with test vectors from RFC 2104; a Wireshark capture of a TLS 1.3 handshake with an annotated walkthrough (at least 400 words) identifying each message and the cryptographic operation it performs; and a brief analysis (200 words) of what properties ECDSA provides that plain RSA signing does not. A cryptographer, security practitioner, or CS lecturer must confirm the walkthrough is accurate.

What gets checked

  • HMAC implementation passes RFC 2104 test vectors
  • TLS 1.3 walkthrough identifies every handshake message and its cryptographic role — not just names the messages
  • A cryptographer or security practitioner has confirmed the walkthrough is accurate

Common mistakes

  • Wireshark walkthrough that identifies message names without explaining what each message does cryptographically
  • ECDSA analysis that describes the output ('shorter signatures') without addressing the mathematical security difference from RSA

Resources

Foundationstart here

Depthgo deeper

What a verifier looks for

  • Does the HMAC implementation pass RFC 2104 test vectors?
  • Does the TLS walkthrough correctly identify the ClientHello, ServerHello, handshake key derivation, and Finished messages?
  • Ask: 'what would happen if TLS skipped the Finished message?' — tests understanding of the Finished message's authentication role

Demonstrate and Present a Cryptographic Attack

6–10 weeks (after milestone 2)

Study a real cryptographic attack in depth — one of: padding oracle attack, BEAST, CRIME, timing side-channel on RSA, or chosen-ciphertext attack on an unauthenticated cipher. Implement a proof-of-concept of the attack on a controlled environment you own. Write a technical report (600 words) explaining the attack, why it works, and the correct defence.

Proof required

Submit: a technical report (at least 600 words) explaining the attack, its mathematical basis, and the correct defence; a public GitHub repository with a proof-of-concept on a controlled environment you own; and a recording or transcript of a presentation to a cryptographer or security practitioner who asked at least two challenging questions about the attack mechanics.

What gets checked

  • Proof-of-concept demonstrates the attack on a system you control — not a theoretical description only
  • Report explains the mathematical reason the attack works — not just 'it exploits a vulnerability'
  • At least two specific challenging questions about attack mechanics were asked in the presentation

Common mistakes

  • Report that describes the attack at a high level without explaining the cryptographic primitive failure
  • Proof-of-concept that describes the attack setup but does not actually execute it against the target

Resources

Foundationstart here

Depthgo deeper

What a verifier looks for

  • Does the proof-of-concept actually execute the attack on a controlled system — not just describe it?
  • Does the report explain the mathematical reason for the vulnerability?
  • Were at least two specific challenging questions asked about attack mechanics in the presentation?

We use analytics to improve Powstik. No ads, ever.