A personal research repository at the intersection of mathematics, cryptographic theory, and zero-knowledge systems.
It contains curated notes, implementations, and experiments — from abstract algebra to working circuits — documenting the structural logic behind modern cryptographic primitives and privacy-preserving protocols.
| Module | Topic | Description |
|---|---|---|
Let's Begin |
What is cryptography? Why it matters | A beginner-friendly overview of cryptography and its role in secure systems. |
History |
Classical ciphers, crypto timeline | From Caesar ciphers to public-key cryptography and modern ZK systems. |
The Math |
Sets, functions, logic, etc | We start with the basics and dive into advanced mathematical topics. |
Crypto-Math |
Finite fields, elliptic curves, polynomials, hashes | Mathematical tools foundational to cryptographic systems. |
ZERO |
Zero-Knowledge | Introduction to Zero-Knowledege proofs. |
Proofs |
Soundness, completeness, proof techniques, types | How cryptographic proofs are constructed, verified, and reasoned about. |
Extras |
Resources | Further reading, papers, courses, and curated external links. |
This module sets the stage by providing the most fundamental questions: What is cryptography? Why do we need cryptography? And how does cryptography shape the digital world we experience?
We start with an abstract introduction to cryptography — not only as a mechanism for secrecy, but also as a mathematical construct for guaranteeing confidentiality, integrity, authenticity, and trust. From securing your messages to powering digital currencies, cryptography is at the heart of modern information systems. You’ll explore its core goals, its evolution alongside technology, and the problems it was designed to solve. No prior mathematical or technical background is assumed — this section is meant to provide intuitive insights before diving deeper.
Whether you are a curious beginner, or just reviewing in preparation for more difficult concepts, this module lays the groundwork for all that is to come.
For the module on history.
We begin with classical ciphers like the Caesar cipher, Vigenère cipher, and the genius of ancient cryptographers who relied on secrecy through obscurity.
Then we move into the era of mechanical cryptography, featuring systems like the Enigma machine, whose cracking shaped the outcome of World War II. Next comes the revolutionary shift to modern cryptography: the invention of public-key cryptography, RSA, Diffie-Hellman, and the emergence of digital signatures and hash functions. Finally, we touch on the rise of zero-knowledge proofs, blockchain, and cryptography’s role in decentralized systems.
This historical lens doesn’t just show what came before — it reveals how each leap in cryptography responded to real-world needs and laid the groundwork for the tools we study today.
Before we can unlock the mechanics of cryptographic systems, we need to speak the language they’re built in: Mathematics.
This module starts with the essentials:
- Foundation
a. Set Theory.
c. Logic and Propositional Calculus.
d. Basic combinatorics and Proof techniques.
- Number Theory
b. Greatest Common Divisor (GCD), Euclidean algorithm.
d. Euler’s theorem and Fermat’s Little Theorem.
i. Modular inverses.
- Abstract Algebra
a. Groups theory (cyclic groups, group homomorphisms, orders).
b. Rings theory and Fields.
c. Polynomials over finite fields.
d. Vector spaces.
- Linear Algebra
b. Determinants, rank and null space.
c. Linear independence and basis.
d. Dot product and inner product
- Probability & Information Theory
b. Random variables and distributions.
c. Entropy and mutual information.
- Computational Mathematics
a. Time and space complexity (Big O notation).
b. Computational hardness assumptions (e.g., factoring, discrete log).
d. P vs NP problems.
e. Hash functions and collision resistance (a mathematical prespective).
Key concepts:
- Elliptic curve groups over finite fields.
- Weierstrass equations.
- Polynomial commitments.
- Cryptographic hash functions.
- Pairings (e.g., bilinear pairings for zkSNARKs).
Hands-on intuition meets formal definitions, leading into cryptography friendly math.
In cryptography, zero-knowledge is an approach that allows one party (the prover) to prove to another party (the verifier) that a given argument is true without disclosing any further information other than the truth of the statement. It protects privacy by certifying knowledge or validity without releasing any underlying data. This concept, established in 1985, is crucial in strengthening security and privacy, notably in blockchain and authentication systems, as it allows verification without exposing critical information.
In this module we dive into the basic principles of zero-knowledge proofs.
Soundness: The property that prevents a dishonest prover from convincing an honest verifier that a statement is true when it is actually false. A sound system ensures that if a prover cannot actually possess the information (the "secret") to make the statement true, the protocol will expose their attempt to cheat with a very high probability, thus protecting the system from false claims.
Completeness: The property that ensures an honest prover can always convince an honest verifier that a statement is true, provided the statement is actually true. This means if the statement being proven is valid, the proof process will successfully demonstrate its validity, making the verifier accept it.
Proof Techniques: Cryptographic methods that allow a prover to demonstrate the truth of a statement to a verifier without revealing any information beyond the statement's validity itself. The core principles are completeness (an honest prover can convince an honest verifier), soundness (a dishonest prover cannot fool a verifier), and zero-knowledge (the verifier learns nothing but the truth of the statement). Key types include interactive ZKPs, which require multiple back-and-forth exchanges, and non-interactive ZKPs (like zk-SNARKs and Bulletproofs), which produce a single, self-contained proof.
Types of Zero-Knowledge Proofs:
Interactive Zero-Knowledge Proofs: These proofs involve multiple rounds of interaction between the prover and the verifier, with the verifier asking challenges that the prover must answer correctly.
Non-Interactive Zero-Knowledge Proofs (NIZKs): These are more complex but allow for a single proof to be generated and verified later without further interaction. Notable examples include:
- zk-SNARKs (Succinct Non-Interactive ARguments of Knowledge): These create very small proofs that can be verified quickly.
- Bulletproofs: A type of ZKP that offers shorter proof sizes than traditional SNARKs while not requiring a trusted setup.
- zk-STARKs (Scalable Transparent ARguments of Knowledge): Offer greater transparency, as they do not require a trusted setup, making them more trustless. More scalable and robust against quantum computing attacks.
A curated selection of learning materials:
- Lattice Theory (post-quantum cryptography).
- https://www.youtube.com/playlist?list=PLBlnK6fEyqRgJU3EsOYDTW7m6SUmW6kII.
- https://www.youtube.com/playlist?list=PL2jrku-ebl3H50FiEPr4erSJiJHURM9BX.
- https://www.youtube.com/playlist?list=PL8Vt-7cSFnw29cLUVqAIuMlg1QJ-szV0K.
- https://medium.com/@barchitect/advanced-cryptography-primitives-group-finite-field-elliptic-curve-and-pairing-8489e296115d.
- https://www.britannica.com/science/modern-algebra/Rings.
- https://eprint.iacr.org/2021/571.
- https://mkowal2.github.io/posts/2020/01/understanding-mi/.
- https://www.math.toronto.edu/swastik/courses/rutgers/finitefields-F19/intro.pdf.
- https://o1-labs.github.io/proof-systems/plonk/polynomial_commitments.html.
- https://codethechange.stanford.edu/guides/guide_zk.html.
- https://rareskills.io/zk-book.
- https://www.helius.dev/blog/zero-knowledge-proofs-an-introduction-to-the-fundamentals
- https://github.com/matter-labs/awesome-zero-knowledge-proofs
Stay updated, deepen concepts and create without limits.
- Maintainer: Parishrut
- Email: asp.eth.2025@gmail.com