-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathabstract.tex
More file actions
20 lines (14 loc) · 1.97 KB
/
Copy pathabstract.tex
File metadata and controls
20 lines (14 loc) · 1.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
\documentclass[main.tex]{subfiles}
\begin{document}
\chapter*{Abstract}
Existing elliptic curve software typically forces a choice between highly optimized, rigidly curve-specific cryptographic libraries and flexible, but slower, computer algebra systems.
Furthermore, existing educational literature is heavily fragmented, rarely providing a cohesive progression from basic geometric intuition to advanced mathematical algorithms and their software implementation.
To address these gaps, this thesis presents a mathematical exposition accessible to readers with an advanced high-school mathematics background alongside a zero-dependency, generalized elliptic curve library written in Rust.
The library provides a unified, type-safe architecture supporting arbitrary prime fields, different curve equations, and division-free coordinate systems, as well as a hybrid implementation of Schoof's and Pollard's Kangaroo algorithms for determining the order of elliptic curves over prime fields.
Rust's trait system effectively unifies diverse algebraic structures behind common interfaces and const generics enforce field membership at compile-time.
However, fully encoding curve parameters into type signatures, to enable operator overloading for point arithmetic and type-level curve isomorphisms, is currently blocked by limitations in the Rust compiler's const-evaluation.
Performance benchmarks reveal the inherent trade-offs of a generic architecture.
While the library marginally outperforms OpenSSL on the secp256k1 elliptic curve, it trails significantly behind the specialized libsecp256k1 and OpenSSL's X25519 implementation.
After all, the generic approach incurs an inevitable performance penalty by foregoing field- and curve-specific arithmetic shortcuts, but remains viable for general-purpose cryptographic applications and the experimental deployment of custom elliptic curves.
\vfill\paragraph*{Keywords:}Elliptic Curves, Mathematics, Finite Fields, Point Counting, Cryptography, Rust
\end{document}