[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"5mlZKbdj6k":3},"# Algebra & Cryptography\n\nA collection of [Lean 4](https://lean-lang.org/) files written as a personal study of modern algebra and its applications to cryptography. Built on top of [Mathlib](https://github.com/leanprover-community/mathlib4).\n\n> **Status:** heavily work in progress. Expect gaps, rough edges, and frequent rewrites; files will be added, restructured, and refined over time as the study progresses.\n\n## Layout\n\n- [Algebra](Algebra/): core algebraic structures\n  - [Group](Algebra/Group/)\n    - [Cyclic](Algebra/Group/Cyclic.lean): cyclic groups and their connection to ℤ/nℤ\n  - [Ring](Algebra/Ring/)\n    - [Polynomials](Algebra/Ring/Polynomials.lean): polynomial rings, working over 𝔽₃[X]\n    - [Ideals](Algebra/Ring/Ideals.lean): ideals, kernels, quotients, and the prime/maximal hierarchy\n  - [Field](Algebra/Field/)\n    - [Galois](Algebra/Field/Galois.lean): finite fields GF(pⁿ) and their structure\n    - [QuadraticResidues](Algebra/Field/QuadraticResidues.lean): squares in 𝔽ₚ, Euler's criterion, and the Legendre symbol\n- [Crypto](Crypto/): cryptographic schemes built on the above\n  - [DiffieHellman](Crypto/DiffieHellman.lean): key exchange in a cyclic group\n  - [Rsa](Crypto/Rsa.lean): RSA correctness from Bézout and Euler's theorem\n  - [EllipticCurves](Crypto/EllipticCurves.lean): Weierstrass curves over finite fields\n  - [Paillier](Crypto/Paillier.lean): additively homomorphic encryption, decryption correctness proven as algebra\n\n## Build\n\n```sh\nlake build\n```\n\nThe Mathlib revision is pinned in [lakefile.toml](lakefile.toml).\n\n![Structures](assets/structures.png)\n",1784558052660]