From 6f15d54a5c599684101a06754d86a24bfa3eea84 Mon Sep 17 00:00:00 2001 From: hirugohan Date: Mon, 16 Mar 2026 00:01:26 +0700 Subject: [PATCH 1/3] feat: add elliptic curve ch01 --- textbooks/elliptic-curves-prasma/ch01.md | 10 ++++++++++ textbooks/elliptic-curves-prasma/ch02.md | 0 textbooks/elliptic-curves-prasma/ch02_01.md | 0 textbooks/elliptic-curves-prasma/ch02_02.md | 0 textbooks/elliptic-curves-prasma/ch02_02_01.md | 0 textbooks/elliptic-curves-prasma/ch02_03.md | 0 textbooks/elliptic-curves-prasma/ch03.md | 0 textbooks/elliptic-curves-prasma/ch04.md | 0 textbooks/elliptic-curves-prasma/ch04_01.md | 0 textbooks/elliptic-curves-prasma/ch04_02.md | 0 textbooks/elliptic-curves-prasma/ch04_03.md | 0 textbooks/elliptic-curves-prasma/ch04_04.md | 0 textbooks/elliptic-curves-prasma/ch04_05.md | 0 textbooks/elliptic-curves-prasma/ch05.md | 0 textbooks/elliptic-curves-prasma/ch05_01.md | 0 textbooks/elliptic-curves-prasma/ch05_02.md | 0 textbooks/elliptic-curves-prasma/ch05_03.md | 0 textbooks/elliptic-curves-prasma/ch05_04.md | 0 textbooks/elliptic-curves-prasma/ch05_05.md | 0 textbooks/elliptic-curves-prasma/ch05_06.md | 0 textbooks/elliptic-curves-prasma/ch05_07.md | 0 textbooks/elliptic-curves-prasma/ch05_08.md | 0 textbooks/elliptic-curves-prasma/ch05_09.md | 0 textbooks/elliptic-curves-prasma/index.md | 5 +++++ 24 files changed, 15 insertions(+) create mode 100644 textbooks/elliptic-curves-prasma/ch01.md create mode 100644 textbooks/elliptic-curves-prasma/ch02.md create mode 100644 textbooks/elliptic-curves-prasma/ch02_01.md create mode 100644 textbooks/elliptic-curves-prasma/ch02_02.md create mode 100644 textbooks/elliptic-curves-prasma/ch02_02_01.md create mode 100644 textbooks/elliptic-curves-prasma/ch02_03.md create mode 100644 textbooks/elliptic-curves-prasma/ch03.md create mode 100644 textbooks/elliptic-curves-prasma/ch04.md create mode 100644 textbooks/elliptic-curves-prasma/ch04_01.md create mode 100644 textbooks/elliptic-curves-prasma/ch04_02.md create mode 100644 textbooks/elliptic-curves-prasma/ch04_03.md create mode 100644 textbooks/elliptic-curves-prasma/ch04_04.md create mode 100644 textbooks/elliptic-curves-prasma/ch04_05.md create mode 100644 textbooks/elliptic-curves-prasma/ch05.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_01.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_02.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_03.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_04.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_05.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_06.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_07.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_08.md create mode 100644 textbooks/elliptic-curves-prasma/ch05_09.md create mode 100644 textbooks/elliptic-curves-prasma/index.md diff --git a/textbooks/elliptic-curves-prasma/ch01.md b/textbooks/elliptic-curves-prasma/ch01.md new file mode 100644 index 0000000..e4a6aa6 --- /dev/null +++ b/textbooks/elliptic-curves-prasma/ch01.md @@ -0,0 +1,10 @@ +# Chapter 1: Introduction + +Since the construction of Miller's algorithm [Mil], the cryptography community has started to use elliptic curves and their pairing extensively; by now; many publicly available code libraries allow one to efficiently compute these mathematical objects. + +Compared to Machine Learning, where the mathematical pre-requisites consist of Linear Algebra, Calculus, and basic Statistics, elliptic curves require substantially more background and are usually taught at a master level in pure Mathematics. This state of affairs poses a challenge to engineers and others who wish to understand the mathematical building blocks. + +This notes aim to give a self-contained, rigorous and elementary account of most of the maths required for pairing-based cryptography. I sometimes formulated elementary arguments to replace non-elementary ones. I completely avoid relying on Galois theory or algebraic gemotery andeven ring theory is mostly skipped. + +Footnotes: +- Mil (Miller's algorithm): Miller, V.S., 2004. The Weil pairing, and its efficient calculation. Journal of cryptology, 17(4), pp.235-261 diff --git a/textbooks/elliptic-curves-prasma/ch02.md b/textbooks/elliptic-curves-prasma/ch02.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch02_01.md b/textbooks/elliptic-curves-prasma/ch02_01.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch02_02.md b/textbooks/elliptic-curves-prasma/ch02_02.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch02_02_01.md b/textbooks/elliptic-curves-prasma/ch02_02_01.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch02_03.md b/textbooks/elliptic-curves-prasma/ch02_03.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch03.md b/textbooks/elliptic-curves-prasma/ch03.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch04.md b/textbooks/elliptic-curves-prasma/ch04.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch04_01.md b/textbooks/elliptic-curves-prasma/ch04_01.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch04_02.md b/textbooks/elliptic-curves-prasma/ch04_02.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch04_03.md b/textbooks/elliptic-curves-prasma/ch04_03.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch04_04.md b/textbooks/elliptic-curves-prasma/ch04_04.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch04_05.md b/textbooks/elliptic-curves-prasma/ch04_05.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05.md b/textbooks/elliptic-curves-prasma/ch05.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_01.md b/textbooks/elliptic-curves-prasma/ch05_01.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_02.md b/textbooks/elliptic-curves-prasma/ch05_02.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_03.md b/textbooks/elliptic-curves-prasma/ch05_03.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_04.md b/textbooks/elliptic-curves-prasma/ch05_04.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_05.md b/textbooks/elliptic-curves-prasma/ch05_05.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_06.md b/textbooks/elliptic-curves-prasma/ch05_06.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_07.md b/textbooks/elliptic-curves-prasma/ch05_07.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_08.md b/textbooks/elliptic-curves-prasma/ch05_08.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/ch05_09.md b/textbooks/elliptic-curves-prasma/ch05_09.md new file mode 100644 index 0000000..e69de29 diff --git a/textbooks/elliptic-curves-prasma/index.md b/textbooks/elliptic-curves-prasma/index.md new file mode 100644 index 0000000..6c86ce8 --- /dev/null +++ b/textbooks/elliptic-curves-prasma/index.md @@ -0,0 +1,5 @@ +--- +title: Elliptic curves over finite fields and their pairings - an elementary and rigorous account +author: Matan Prasma +year: December, 2024 +--- -- 2.49.1 From 510417ef3032c015e18f4ae4a3866175de107212 Mon Sep 17 00:00:00 2001 From: shoko Date: Sun, 15 Mar 2026 17:46:03 +0000 Subject: [PATCH 2/3] Add ch02_01 Set Theory (sample conversion from PDF) --- .../ch02_01_set_theory.md | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 textbooks/elliptic-curves-prasma/ch02_01_set_theory.md diff --git a/textbooks/elliptic-curves-prasma/ch02_01_set_theory.md b/textbooks/elliptic-curves-prasma/ch02_01_set_theory.md new file mode 100644 index 0000000..c688c3c --- /dev/null +++ b/textbooks/elliptic-curves-prasma/ch02_01_set_theory.md @@ -0,0 +1,36 @@ +# Chapter 2: Naive Set Theory + +As our logic syntax we use the symbols $\forall$, $\exists$, $\vee$, $\wedge$, $!$, $\neg$, $\Rightarrow$ and $\Leftrightarrow$ to denote 'for all', 'exists', 'or', 'and', 'unique', 'not', 'implies' and 'if and only if' (or 'iff', meaning implies and implied) respectively. + +We typically define a new notion by saying that something is called **'name'** if it satisfies a certain condition. In definitions, this 'if' is meant as an 'if and only if' in that we will call something 'name' if and only if it satisfies the condition of the definition. + +## 2.1 Sets and functions + +> **Slogan.** Sets are the machine code of modern Mathematics. + +On a fundamental level, modern Math is built on Set Theory. From that point of view, a set $S$ is a collection of elements such that for every object $x$ in our 'universe' we can determine whether $x$ is an element of $S$, denoted $x \in S$ or that $x$ is not an element of $S$, denoted $x \notin S$. + +When we want to specify the elements of a set $S$, we do so with bounding curly brackets and commas separating between elements e.g. $S = \{a, b, c\}$. Repeated elements in a set are ignored so $\{1, 1, 2, 3\} = \{1, 2, 3\}$. Also, the order of elements does not matter, so $\{2, 3, 1\} = \{1, 2, 3\}$. + +If $S$ has finite number of elements (or just 'finite') we denote by $\#S$ (or $|S|$) the number of elements of $S$. Of course, $S$ need not be finite, and in this case, we need a rule in order to specify the elements of $S$, e.g. $S = \{n \mid n \text{ is a natural number and } n \geq 2\}$ or if the rule is clear after a few cases, we can write $S = \{2, 3, 4, \dots\}$. For sets $A, B$ we write $A \subseteq B$ if $\forall a \in A$ we have $a \in B$ and say that $A$ is included in $B$. Observe that for sets $A, B$, $A = B$ if and only if $A \subseteq B$ and $B \subseteq A$. The basic operations on sets include + +**union** +$$A \cup B = \{x \mid x \in A \vee x \in B\},$$ + +**intersection** +$$A \cap B = \{x \mid x \in A \wedge x \in B\},$$ + +and **complement** (or subtraction) +$$A \setminus B = \{x \mid x \in A \wedge x \notin B\}.$$ + +> **Remark 2.1.** More generally, let $I$ be a set that we refer to as an 'index set'. Suppose that for every $i \in I$ we are given a set $U_i$. Then we can form the union +> $$\bigcup_{i \in I} U_i = \{x \mid \exists i \in I : x \in U_i\}$$ +> and the intersection +> $$\bigcap_{i \in I} U_i = \{x \mid \forall i \in I : x \in U_i\}.$$ + +Our fundamental assumption is that there exist a special set, called the **empty set** and denoted $\emptyset$ that has no elements. More formally, we can write +$$\emptyset = \{x \mid x \neq x\}$$ +and observe that for every set $A$ we have $\emptyset \subseteq A$. Using the empty set, we can in fact define all natural numbers as follows: + +$$0 := \emptyset,$$ +$$1 := \{\emptyset\},$$ -- 2.49.1 From dcd26a7f091219e83b87cdd1fbae7205a17d9474 Mon Sep 17 00:00:00 2001 From: shoko Date: Wed, 18 Mar 2026 18:04:14 +0000 Subject: [PATCH 3/3] Add preface with motivation and resources --- preface.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 preface.md diff --git a/preface.md b/preface.md new file mode 100644 index 0000000..3d6b205 --- /dev/null +++ b/preface.md @@ -0,0 +1,5 @@ +**Preface** + +This exists because we believe learning math should be enjoyable for everyone. These notes are meant as a reference for anyone studying the same topics and wanting a cross-reference. + +Since doing this alone, we couldn't cross-reference with anyone else. So this preface is an invitation: create and publish your own notes. If you can't create or publish solo, maybe we can start a math club — a more laid-back format to share things. -- 2.49.1