Sandy2x is a Curve25519 implementation tailored for the Intel Sandy Bridge/Ivy Bridge microarchitectures. More precisely, Sandy2x includes implementations of the 1) X25519 ECDH scheme and 2) Ed25519 digital signature scheme. While the previous implementations use the 64 x 64 -> 128-bit multiplier for field multiplications, Sandy2x uses a 2-way vectorized 32 x 32 -> 64-bit multiplier.


The code for fast X25519 shared-secret computation (and not-so-fast key-pair generation) is available here. This code has been submitted to SUPERCOP. Fast key-pair generation and the code for Ed25519 will be made available in the following versions.


All of the Sandy2x software is in the public domain.


Sandy2x: New Curve25519 Speed Records.
Tung Chou. SAC 2015. [pdf].