https://doubleodd.group/front.html 1. 1. Double-Odd Elliptic Curves 2. 2. A Geometrical Introduction 3. 3. Formulas 4. 1. 3.1. Affine (x, y) Coordinates 2. 3.2. Affine and Jacobian (x, w) Coordinates 3. 3.3. Affine and fractional (x, u) Coordinates 4. 3.4. x-only Ladders 5. 4. Curve Choices 6. 1. 4.1. do255e 2. 4.2. do255s 7. 5. Benchmarks 8. 6. Implementations * Light (default) * Rust * Coal * Navy * Ayu Double-Odd Elliptic Curves [ ] Double-Odd Elliptic Curves Double-odd elliptic curves are a large subset of elliptic curves: these are curves whose order is equal to 2 modulo 4 (i.e. the order is the double of an odd integer). On top of double-odd elliptic curves, we can define a prime order group suitable for building cryptographic protocols. This is similar to what Ristretto achieves for twisted Edwards curves, albeit with a different method. Some highlights of double-odd elliptic curves are: * There is no cofactor to deal with. A clean prime order group abstraction is provided, with a canonical encoding for elements which is automatically verified when decoding. * The encoding is economical: for \(n\)-bit security, group elements are encoded over \(2n+1\) bits (compared to \(2n+3\) for Ristretto). * All group operations are supported by unified and complete formulas amenable to efficient and secure (constant-time) implementations. * No drastically new cryptographic hypothesis is introduced. Double-odd elliptic curves are fairly mundane; about 1/4th of all elliptic curves are double-odd curves. Such curves are considered secure for cryptography, just like any other random elliptic curve with a large enough subgroup of prime order. * The formulas are fast and provide performance at least on par with twisted Edwards curves. In some respects they are faster; e.g. point doublings can be performed, for half of double-odd curves, with six multiplications (down to 1M+5S for some specific curves). In order to leverage these techniques, two specific double-odd elliptic curves are defined: do255e and do255s. Both provide "128-bit security" (technically, 127 bits); do255e is a GLV curve that can leverage an internal endomorphism for further improved performance, while do255s is a perfectly ordinary curve. Resources The whitepaper contains all the formulas and demonstrations; it also specifies the use of do255e and do255s in higher-level cryptographic functionalities (key pair generation, key exchange, signature, and hash-to-curve). Most of the present site consists in extracts from this whitepaper. Note: the whitepaper is now also published on ePrint . Several implementations of do255e and do255s exist and are listed in the implementations section. Outline Subsequent pages in this site include the following: * A geometrical introduction to double-odd elliptic curves: a self-contained explanatory text (with pictures) to explain the motivation and the core ideas of this work. * The formulas section lists useful formulas for computing over points of double-odd elliptic curves with several convenient systems of coordinates. * Explicit curve choices are listed: these are curves do255e and do255s. Selection criteria and curve parameters are provided. * Some benchmarks on large (x86) and small (ARM Cortex M0+ and M4) architectures are detailed. * Available open-source implementations are listed. About Double-odd elliptic curves were designed by Thomas Pornin, who also wrote this Web site, with contributions from Paul Bottinelli, Gerald Doussot and Eric Schorn.