# Fe-Cryptography Specification ## Elliptic Curves **Basics** - Curve and point types - This should include constant values for relevant curves. - BLS12-381 - BN128 - pasta(?) - secp256r1 - Point operations (addition and scalar multiplication) - Scalar multiplication should be implemented using the double-and-add algorithm. - Parings **Signature schemes** - BLS - Depends on: - Point operations - Pairings - ECDSA - Depends on: - Point operations - ## Polynomials **Basics** - Polynomial operations (addition and multiplication) - Multiplication should be implemented with `O(n(log(n)))` time. - https://faculty.sites.iastate.edu/jia/files/inline-files/polymultiply.pdf - Lagrange interpolation - Efficient evaluation. - https://en.wikipedia.org/wiki/Horner%27s_method **Commitment schemes** - KZG - FRI - IPA