[][src]Module curve25519_dalek::backend::serial::u64::scalar

[]

Arithmetic mod 2252+277423177773723535358519377908836484932^{252} + 27742317777372353535851937790883648493 with five 5252-bit unsigned limbs.

5151-bit limbs would cover the desired bit range (253253 bits), but isn't large enough to reduce a 512512-bit number with Montgomery multiplication, so 5252 bits is used instead. To see that this is safe for intermediate results, note that the largest limb in a 5×55\times 5 product of 5252-bit limbs will be

(0xfffffffffffff^2) * 5 = 0x4ffffffffffff60000000000005 (107 bits).

Structs

Scalar52

The Scalar52 struct represents an element in Z/Z\mathbb Z / \ell \mathbb Z as 5 5252-bit limbs.

Functions

m

u64 * u64 = u128 multiply helper