Skip to main content

Module scalar_parallel

Module scalar_parallel 

Source
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§

ConstQMulIn
Tagged input to ConstQMulPipe.
ConstQMulOut
Tagged output from ConstQMulPipe.
ConstQMulPipe
Seventeen-stage multiplication by the Ed25519 reduction constant q.
Radix16X17
Seventeen radix-2^16 input limbs, least significant first.
Radix16X25
Twenty-five radix-2^16 product limbs, least significant first.
Radix16X33
Exact 528-bit output of ScalarWideMulPipe.
ScalarMulAddIn
Tagged scalar multiply-add request.
ScalarMulAddOut
Tagged canonical scalar multiply-add response.
ScalarMulAddPipe
Fully pipelined a * b + c mod l engine.
ScalarReducePipe
Fifty-seven-stage, initiation-interval-one reduction modulo l.
ScalarReducePipeIn
Tagged 512-bit reduction request for ScalarReducePipe.
ScalarReducePipeOut
Tagged canonical scalar from ScalarReducePipe.
ScalarWideMulIn
Tagged request for ScalarWideMulPipe.
ScalarWideMulOut
Tagged response from ScalarWideMulPipe.
ScalarWideMulPipe
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^16 product.
scalar_reduce_pipe_kernel
State transition for ScalarReducePipe.
scalar_wide_mul_kernel
State transition for ScalarWideMulPipe.