FourQlib

Established: August 26, 2015

FourQlib is an efficient and portable math library that provides functions for computing essential elliptic curve operations on a high-performance curve called “FourQ”. This curve targets the 128-bit security level and supports computations that are significantly faster than any other alternative; e.g., it is between four and five times faster than the NIST P-256 curve and between two and three times faster than Curve25519. Please note that while the library is available for download at the link below, this library is not actively maintained and is provided here for research purposes only.

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: http://approjects.co.za/?big=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)

People

Portrait of Tolga Acar

Tolga Acar

Principal Software Engineer

Portrait of Patrick Longa

Patrick Longa

Senior Researcher

Portrait of Karen Easterbrook

Karen Easterbrook

Senior Director

Portrait of Craig Costello

Craig Costello

Researcher