Efficient library for cryptographic operations on elliptic curves.
Present library is designed to allow deploying on 8, 16, 32 and 64 bit platforms. User have to define word size in "Globals.h" accordingly. The source code is in C language to allow deploying on the largest devices spectrum possible.
Present library is organized by hierarchic components, or groups of functions. Functions at level i are algorithms built exploiting ones at i-1 level, and are building blocks for i+1 level algorithms. List of components:
- Multiprecision positive integer arithmetic functions (under completion)
- Prime field arithmetic functions (under completion)
- Elliptic curve arithmetic functions (to be defined)
- Elliptic curve-based protocols (to be defined)
The test
folder shows C examples for testing the correctness of functions, and Wolfram Mathematica(R) codes allowing test vectors generation.
- A.J. Menezes, P.C. van Oorschot, S.A. Vanstone. Handbook of Applied Cryptography. Taylor & Francis, 2010.
- D. Hankerson, A.J. Menezes, S.A. Vanstone. Guide to Elliptic Curve Cryptography. Springer, 2004.
- D.E. Knuth, The Art of Computer Programming – Seminumerical Algorithms, volume 2, Addison-Wesley, Reading, Massachusetts, 2nd edition, 1981.
- D. Harvey, and P. Zimmermann. Short division of long integers. Computer Arithmetic (ARITH), 2011 20th IEEE Symposium on. IEEE, 2011.
- W. Hasenplaugh, G. Gaubatz, V. Gopal. Fast Modular Reduction. Proceedings of ARITH'07, 2007.
- NIST FIPS 186-4, available at http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf
- Random number generator, available at https://www.random.org/bytes/