This paper introduces Curve25519, a high-security elliptic-curve Diffie-Hellman function that achieves record-breaking speeds. It is designed to be fast, secure, and resistant to timing attacks. Curve25519 uses a 32-byte secret key and a 32-byte public key, with the shared secret used for authentication and encryption. The function is based on a specific elliptic curve over a prime field, and its security is conjectured to be extremely strong, as breaking it would be more expensive than brute-forcing a 128-bit key.
The Curve25519 implementation is optimized for speed, with a record of 832,457 cycles on a Pentium III, and similar performance on other processors. It is designed to be constant-time, meaning it is immune to timing attacks, and includes features like free key validation and key compression. The function is also efficient in terms of key size, with both secret and public keys being 32 bytes, which is significantly smaller than typical elliptic curve implementations.
The paper discusses the design choices that contribute to Curve25519's efficiency, including the use of a specific curve shape, a prime field close to a power of two, and a radix that allows efficient arithmetic operations. It also addresses potential security threats, such as small-subgroup attacks and batch discrete logarithms, and explains how Curve25519 is resistant to these attacks.
The paper compares Curve25519's performance to other elliptic curve implementations, noting that it is significantly faster, especially when including features like key validation and timing-attack protection. It also discusses the choice of field structure and prime, emphasizing the importance of efficiency and security in cryptographic applications. Overall, Curve25519 is a high-performance, secure elliptic curve Diffie-Hellman function that is well-suited for a wide range of cryptographic applications.This paper introduces Curve25519, a high-security elliptic-curve Diffie-Hellman function that achieves record-breaking speeds. It is designed to be fast, secure, and resistant to timing attacks. Curve25519 uses a 32-byte secret key and a 32-byte public key, with the shared secret used for authentication and encryption. The function is based on a specific elliptic curve over a prime field, and its security is conjectured to be extremely strong, as breaking it would be more expensive than brute-forcing a 128-bit key.
The Curve25519 implementation is optimized for speed, with a record of 832,457 cycles on a Pentium III, and similar performance on other processors. It is designed to be constant-time, meaning it is immune to timing attacks, and includes features like free key validation and key compression. The function is also efficient in terms of key size, with both secret and public keys being 32 bytes, which is significantly smaller than typical elliptic curve implementations.
The paper discusses the design choices that contribute to Curve25519's efficiency, including the use of a specific curve shape, a prime field close to a power of two, and a radix that allows efficient arithmetic operations. It also addresses potential security threats, such as small-subgroup attacks and batch discrete logarithms, and explains how Curve25519 is resistant to these attacks.
The paper compares Curve25519's performance to other elliptic curve implementations, noting that it is significantly faster, especially when including features like key validation and timing-attack protection. It also discusses the choice of field structure and prime, emphasizing the importance of efficiency and security in cryptographic applications. Overall, Curve25519 is a high-performance, secure elliptic curve Diffie-Hellman function that is well-suited for a wide range of cryptographic applications.