Expand description
Initiation-interval-one scalar arithmetic for Ed25519.
The group order is l = 2^252 + q, where q is only 125 bits. Reduction
therefore folds high bits through multiplication by the fixed eight-limb
radix-2^16 constant q. The multiplier below is fully spatial: each of 24
coefficients owns eight registered 16 x 16 products, and normalization
advances two limbs per stage.
Structs§
- ConstQ
MulIn - Tagged input to
ConstQMulPipe. - ConstQ
MulOut - Tagged output from
ConstQMulPipe. - ConstQ
MulPipe - Seventeen-stage multiplication by the Ed25519 reduction constant
q. - Radix16
X17 - Seventeen radix-
2^16input limbs, least significant first. - Radix16
X25 - Twenty-five radix-
2^16product limbs, least significant first. - Radix16
X33 - Exact 528-bit output of
ScalarWideMulPipe. - Scalar
MulAdd In - Tagged scalar multiply-add request.
- Scalar
MulAdd Out - Tagged canonical scalar multiply-add response.
- Scalar
MulAdd Pipe - Fully pipelined
a * b + c mod lengine. - Scalar
Reduce Pipe - Fifty-seven-stage, initiation-interval-one reduction modulo
l. - Scalar
Reduce Pipe In - Tagged 512-bit reduction request for
ScalarReducePipe. - Scalar
Reduce Pipe Out - Tagged canonical scalar from
ScalarReducePipe. - Scalar
Wide MulIn - Tagged request for
ScalarWideMulPipe. - Scalar
Wide MulOut - Tagged response from
ScalarWideMulPipe. - Scalar
Wide MulPipe - Twenty-two-stage, 512-DSP full scalar multiplier.
Functions§
- const_
q_ mul_ kernel - State transition and hierarchy wiring for
ConstQMulPipe. - scalar_
muladd_ kernel - State transition for
ScalarMulAddPipe. - scalar_
product_ addend_ kernel - Add a canonical scalar addend to a wide radix-
2^16product. - scalar_
reduce_ pipe_ kernel - State transition for
ScalarReducePipe. - scalar_
wide_ mul_ kernel - State transition for
ScalarWideMulPipe.