[−][src]Module curve25519_dalek::backend::serial::u64
The u64
backend uses u64
s and a (u64, u64) -> u128
multiplier.
On x86_64, the idiom (x as u128) * (y as u128)
lowers to MUL
instructions taking 64-bit inputs and producing 128-bit outputs. On
other platforms, this implementation is not recommended.
On Haswell and newer, the BMI2 extension provides MULX
, and on
Broadwell and newer, the ADX extension provides ADCX
and ADOX
(allowing the CPU to compute two carry chains in parallel). These
will be used if available.
Modules
constants | This module contains backend-specific constant values, such as the 64-bit limbs of curve constants. |
field | Field arithmetic modulo \(p = 2^{255} - 19\), using \(64\)-bit limbs with \(128\)-bit products. |
scalar | Arithmetic mod \(2^{252} + 27742317777372353535851937790883648493\) with five \(52\)-bit unsigned limbs. |