The Curve:
FourQ is a high-security, high-performance elliptic curve that targets the 128-bit security level [1]. It is defined by the twisted Edwards equation:
E(GF(p2)): –x2 + y2 = 1 + dx2y2,
where p is the Mersenne prime p = 2127 – 1 and d is a non-square in GF(p2). FourQ comes equipped with two efficiently computable endomorphisms which enable four-dimensional scalar decompositions. The powerful combination of these endomorphisms together with the use of complete, extended twisted Edwards coordinates and very efficient arithmetic over p = 2127 – 1 facilitates scalar multiplications that are significantly faster than any other available alternative.
Library Features:
- FourQlib includes support for core ECC functions necessary to implement most popular elliptic curve-based schemes. In particular, FourQlib supports the computation of scalar multiplication in three variants:
1. Variable-base scalar multiplication (e.g., this is used for computing the shared secret in the Diffie-Hellman key exchange)
2. Fixed-base scalar multiplication (e.g., this can be used for key generation in the Diffie-Hellman key exchange)
3. Double-scalar multiplication, for digital signature verification
- Full protection against timing and cache attacks by executing crypto-sensitive operations in constant-time with no correlation between timing and secret data
- High performance without compromising security, portability and usability
- Library runs on Windows and Linux
- Includes Portable C version for x86, x64, and ARM
- Also includes high-performance, optimized versions for x64 and for ARM with NEON
Download:
The FourQ Library is no longer actively maintained, but is available for research purposes at: https://www.microsoft.com/en-us/download/details.aspx?id=52310 (opens in new tab)
Reference:
[1] Craig Costello and Patrick Longa, “FourQ: four-dimensional decompositions on a Q-curve over the Mersenne prime”, in Advances in Cryptology – ASIACRYPT 2015 (to appear), 2015. Extended version available at: http://eprint.iacr.org/2015/565 (opens in new tab)
[2] Patrick Longa, “FourQNEON: faster elliptic curve scalar multiplications on ARM processors”, TechReport MSR-TR-2016-25, 2016. Available at: http://research.microsoft.com/apps/pubs/?id=266450 (opens in new tab)