TODO:

  • Intro
  • Why I learnt?
  • Struggle
  • What’s the future looks like?
  • Syllabus
  • Resources

Started learning cryptography end of 2023 rigorously, i.e. getting deeper into core of how and why things work, the way they work. This is a compilation of my thoughts, challenges, resources, notes, everything that I know about cryptography.

I'm not an expert in any way, still learning, and breaking things. Most of the implementations that I've done are broken and were done for toy purposes, and still yet to write production grade cryptographic software.

First of all, learning cryptography hasn’t been easy. It’s a paradigm of information theory that has been in use since the information age began, and it’s the only technology I know of, that has gone through countless failures to get to a point where it powers literally all of internet, and will power verifiable computing age in the coming decade.

Why Cryptography

TODO

Struggle

I hope you do not relate with this section, but if you’re struggling, this might help :)

Things I struggled with

  • Basic primitives: Perfect Secrecy, One-time PAD, hash-functions
    • Read history of why it was needed or invented. How it was broken.
  • Problem assumptions: Integer Factorisation, Discrete Logarithm, owf, diffie-hellman,
  • Difference between instantiations: like difference between SHA2, SHA3, Blake2, etc. Or encryption algorithms like DES, AES, RC4, RSA, ElGamal, etc.
    • Leave everything and implement it.
  • Reading formal proofs
    • Most of the time you’re just missing primitive knowledge required to understand the proof.
  • History: I kinda tried skipping this when started initially, but reading these works are inevitable. I know how amazing I felt when I read the 2-page long Adi Shamir’s secret-sharing paper.

Things I currently struggle with

  • Writing Formal proofs
  • Reading papers quickly (although my speed has improved tremendously)
  • Auditing implementations
  • Implementation pitfalls
  • High-Performance implementations

Things that helped

  • Writing Concisely
  • Depicting pictorially
  • Using more formal language for beginner level explanations like those found in wikipedia.
  • Writing proofs by myself, re-reading them when not able to recall

Syllabus

  • Number theory
  • Applied Cryptography
  • Mathematical Cryptography
  • Abstract algebra
  • Coding Theory
  • Complexity Theory
  • Post-Quantum Cryptography
  • Zero Knowledge
  • MPC
  • FHE

Resources

These are the resources that I used to understand basic applied cryptography and advanced mathematical cryptography:

Basic

Intermediate

advanced

Miscellaneous

Resources that I love consuming periodically: