Conceptio › Archive › arXiv CS
arXiv CS open access

End-to-End NTT on FPGA for FHE Acceleration

Mohamed Allam et al. · arxiv_cs
arXiv CS · Papers
Open Source ↗Direct PDF ↓
cryptographycybersecurityprivacysecurity
Fully homomorphic encryption (FHE) enables privacy-preserving computation on encrypted data without decryption. Despite its strong security guarantees, FHE incurs substantial computational and memory overhead. In FHE-based deep learning inference, on average 63% of the CPU time is spent on the numbe
Conceptio Open Archive

Analyze & explore related research in Conceptio

Connect this record directly into your research workflow or AI agent. Explore citations across open repositories, query full text, and export structured proof bundles.

arXiv:2611.03325v1 [cs.CR] 2 Nov 2026

End-to-End NTT on FPGA for FHE Acceleration Mohamed Allam

Thomas Spendlhofer

mohamed.allam@bsc.es Barcelona Supercomputing Center (BSC) Barcelona, Spain Universitat Politècnica de Catalunya (UPC) Barcelona, Spain

thomas.spendlhofer@bsc.es Barcelona Supercomputing Center (BSC) Barcelona, Spain

Hugo Sanz-González

Antonio J. Peña

hsanzgon@bsc.es Barcelona Supercomputing Center (BSC) Barcelona, Spain

antonio.pena@bsc.es Barcelona Supercomputing Center (BSC) Barcelona, Spain

Abstract Fully homomorphic encryption (FHE) enables privacy-preserving computation on encrypted data without decryption. Despite its strong security guarantees, FHE incurs substantial computational and memory overhead. In FHE-based deep learning inference, on average 63% of the CPU time is spent on the number theoretic transform (NTT) and its inverse (INTT), which reduce the complexity of polynomial multiplication from 𝑂 (𝑁 2 ) to 𝑂 (𝑁 log 𝑁 ). Prior FPGA works follow two approaches: accelerating entire FHE schemes, which yields significant speedups but ties them to specific parameters and algorithms, or accelerating only the NTT, which applies across schemes, algorithms, and libraries. Most FPGA NTT designs require interconnects that grow with parallelism and utilize significant resources, which complicates routing on multi-die FPGAs. Additionally, to the best of our knowledge, end-to-end NTT acceleration within an FHE context has so far been left unexplored. We design a fully unrolled, delay-commutator streaming NTT/ INTT kernel, and floorplan it across the three dies of an AMD Alveo V80. At 400 MHz, the kernel transforms a polynomial of 216 coefficients every 5.12 𝜇s, the highest throughput among FPGA designs at this size. Offloaded end to end, it is up to 22× faster than the CPU per transform. We integrate the kernel into the Lattigo FHE library and evaluate it end to end. With 128-bit secure parameters, it accelerates core FHE operations, such as key switching and bootstrapping, by 1.8–2.2×, and neural network inference by 1.8–2.1×.

Keywords Privacy-Preserving Machine Learning, Fully Homomorphic Encryption, FPGA, NTT, CKKS, Private Inference

1

Introduction

Fully homomorphic encryption (FHE) [22] is a lattice-based, quantum-safe cryptographic primitive that enables computation on encrypted data without decryption. It is particularly useful for preserving data privacy in cloud computing, since it enables servers to process sensitive information—such as medical or financial records—while maintaining end-to-end confidentiality. However, FHE incurs significant memory and computational overhead: depending on the cryptographic parameters, it may

require orders of magnitude more memory and computation than the same calculation on unencrypted data. FHE schemes used in machine learning, primarily CKKS [9], encode plaintext data into polynomials over large modular rings, so that encrypted computation reduces to polynomial arithmetic. Polynomial multiplication in particular is a critical performance bottleneck. The number theoretic transform (NTT) reduces the complexity of this multiplication from 𝑂 (𝑁 2 ) to 𝑂 (𝑁 log 𝑁 ). The NTT and its inverse (INTT) dominate the cost of key CKKS operations such as key switching and bootstrapping [27]. In our experiments, they consume on average ∼63% of the CPU time in FHE neural network inference. The NTT is costly because of its large working set, irregular access patterns, and modular arithmetic on large integers. FPGAs are a strong acceleration fit for the NTT, since these enable pipelined architectures tailored to modular arithmetic and memory layouts that match its access patterns. State-of-the-art FPGA works [2, 3, 60, 61, 63] often accelerate an entire FHE scheme; despite significant speedups over CPUs, they are tailored to one implementation of a scheme and hard to adapt to new schemes or algorithms. Dedicated NTT accelerators instead apply across schemes, algorithms, and libraries. Most FPGA accelerators propose iterative or partially unrolled architectures [2, 3, 12, 35–37, 40, 45, 57, 60], which operate at high parallelism and utilize significant resources. Given the access patterns of the NTT, they generate significant routing congestion and are challenging to place and route on multi-die FPGAs, often exhausting the limited inter-die wires at high frequencies. Fully unrolled designs alleviate routing demands by dedicating a pipelined hardware stage to each transform stage. Works that reach high parallelism reorder coefficients among groups of stages through addressed buffers, shufflers or transposes [34, 38, 71], while those built on delay commutators, which reorder with fixed delays and switches only, have been implemented at low parallelism or small polynomial sizes [10, 25, 54, 56, 67, 69]. Across these works, timing closure at high frequency, routing congestion, and multi-die placement are rarely discussed, and, to the best of our knowledge, none evaluates end-to-end NTT offloading within an FHE library or application. In this work, we address these challenges through a fully unrolled, delay-commutator streaming NTT/INTT kernel, floorplanned across the three dies of an AMD Alveo V80 FPGA,

Allam et al.

integrated into the Lattigo [16] FHE library and evaluated on privacy-preserving neural network inference. In summary, our main contributions are: • A placed-and-routed streaming NTT/INTT kernel for 𝑁 =216 and 62-bit primes on a multi-die FPGA, with the highest frequency and throughput among comparable FPGA designs. • Integration of the kernel into the Lattigo FHE library, and evaluation of end-to-end NTT/INTT offloading, up to ∼22× faster than the CPU per transform, and of core CKKS operations, such as key switching and bootstrapping, with up to ∼2× speedup. • End-to-end evaluation on several FHE neural network inference workloads, attaining speedups of up to ∼15× for NTT/INTT and ∼2× for inference. The rest of the paper is structured as follows. Section 2 introduces FHE, the RNS-CKKS scheme and the NTT. Section 3 describes the kernel architecture and our design considerations. Section 4 presents the experimental setup and evaluation. Section 5 discusses related work, and Section 6 concludes the paper.

2

Background

In this section, we provide the necessary theoretical background on FHE, the RNS-CKKS scheme, and NTT.

2.1

FHE and RNS-CKKS

FHE is a cryptographic primitive whose security relies on the hardness of lattice-based assumptions, primarily the learning with errors (LWE) and ring-LWE problems [44, 49], which offer post-quantum security guarantees. CKKS [9] is an approximate FHE scheme that encodes vectors of real or complex numbers and supports efficient SIMD computation. A message is represented as a plaintext polynomial whose coefficients approximate the target values under a fixed scaling factor. This polynomial is then encrypted to produce a ciphertext of two polynomials (𝑎, 𝑏) under secret key 𝑠, which carries a small noise for security that grows with each operation. The ability of CKKS to handle real numbers and perform vectorized linear algebra—such as matrix multiplications, convolutions, dot products, and activation approximations—makes it particularly effective for privacy-preserving deep learning inference [48]. In CKKS, encrypted computation is performed as approximate arithmetic over the cyclotomic ring 𝑅𝑄 = Z𝑄 [𝑋 ]/(𝑋 𝑁 + 1), where 𝑁 is a power of two and 𝑄 is a large integer modulus. Homomorphic multiplication of two ciphertexts results in a ciphertext of three polynomials (𝑎, 𝑏, 𝑐) encrypted under 𝑠 2 and an increased scale. The rescaling operation restores the scale, while relinearization restores the ciphertext to the form (𝑎, 𝑏), encrypted under the original key 𝑠. The latter is attained via key switching, which is also needed after rotations. RNS-CKKS [8] uses the Chinese remainder theorem to store each polynomial as 𝐿+1 residue polynomials, or limbs, one per prime of Î𝐿 the ciphertext modulus 𝑄 = 𝑖=0 𝑞𝑖 . Rescaling divides a ciphertext by its last prime, removing one limb; a ciphertext with ℓ+1 limbs is at level ℓ. RNS-CKKS is often combined with hybrid key switching [24], Î which limits noise growth with an auxiliary modulus 𝑃 = 𝑗 𝑝 𝑗 , extending the ring to 𝑅𝑄𝑃 . Hybrid key switching splits the limbs

into dnum digits, each extended to 𝑄𝑃 and transformed with NTTs, so the NTT/INTT work grows with dnum [31]. Once a ciphertext is left with a single limb, bootstrapping is required to refresh it. This process raises the ciphertext to a higher level, enabling further multiplications. Bootstrapping is the most expensive operation in CKKS, performing many rotations and multiplications, each followed by a key switch [6, 7].

2.2

NTT

NTT is a fundamental algorithm for efficient polynomial multiplication. It reduces the computational complexity from 𝑂 (𝑁 2 ) to 𝑂 (𝑁 log 𝑁 ), where 𝑁 , a power of two, is the polynomial degree, by operating in a polynomial ring Z𝑞 [𝑋 ]/Φ(𝑋 ). If Φ(𝑋 ) = 𝑋 𝑁 − 1, the NTT computes a positively-wrapped convolution (PWC), using an 𝑁 -th primitive root of unity 𝜔 satisfying 𝜔 𝑁 ≡ 1 (mod 𝑞). However, PWC requires explicit zero-padding to emulate linear convolution, which is inefficient. To avoid this, FHE schemes typically work in the negacyclic ring Z𝑞 [𝑋 ]/(𝑋 𝑁 + 1), where polynomial multiplication is a negatively-wrapped convolution (NWC). NWC requires a primitive 2𝑁 -th root of unity 𝜓 , such that 𝜓 𝑁 ≡ −1 (mod 𝑞) and 𝜓 2 ≡ 𝜔 (mod 𝑞). NWC may be implemented by scaling the inputs and outputs of a standard NTT: pre-multiplying polynomial coefficients by 𝜓 𝑖 before the forward transform and post-multiplying by 𝜓 −𝑖 after the inverse transform. The pre-scaling and post-scaling operations may be fused into the transform itself by merging the powers of 𝜓 into the twiddle factors, producing the NTT𝜓 variant. The forward and inverse transforms are provided in equations (1) and (2), respectively.

𝑎b𝑗 =

𝑁 −1 ∑︁

𝑎𝑖 𝜓 𝑖 (2𝑗+1)

(mod 𝑞)

(1)

𝑖=0

𝑎𝑖 = 𝑁 −1

𝑁 −1 ∑︁

𝑎b𝑗 𝜓 −𝑖 (2𝑗+1)

(mod 𝑞)

(2)

𝑗=0

This formulation is algebraically equivalent to NWC but performs no scaling outside the transform. The main difference between the NTT and INTT lies in the type of butterfly operation performed, as well as in the fact that the INTT requires a final scaling by 𝑁 −1 mod 𝑞. Forward NTT uses the

Algorithm 1 Cooley–Tukey NTT𝜓 1: procedure NTT(𝐴, 𝑁 , 𝑞,𝜓 )

⊲ 𝜓 : 2𝑁 -th root of unity for 𝑚 ← 1, 2, 4, . . . , 𝑁 /2 do 3: 𝑡 ← 𝑁 /(2𝑚) 4: for 𝑖 ← 0 . . . 𝑚 − 1 do 5: 𝜁 ← 𝜓 bit_rev(𝑚+𝑖 ) mod 𝑞 6: for 𝑗 ← 2𝑖𝑡 . . . (2𝑖 + 1)𝑡 − 1 do 7: 𝑢 ← 𝐴[ 𝑗], 𝑣 ← 𝐴[ 𝑗 + 𝑡] · 𝜁 mod 𝑞 8: 𝐴[ 𝑗] ← 𝑢 + 𝑣 mod 𝑞, 𝐴[ 𝑗 + 𝑡] ← 𝑢 − 𝑣 mod 𝑞 9: end for 10: end for 11: end for 12: return 𝐴 13: end procedure 2:

End-to-End NTT on FPGA for FHE Acceleration

kernel clock

QDMA H2C stream

512 b

CDC FIFO

reorder buffer (2 limbs)

16 queues

stage

1

2

3

4

5

6

7

8

9 10 11 12 13 14 15

16

8

4

2

1

1

1

1

1

1

16 BUs per stage

0

Host CPU

PCIe 32 × 62 b

C2H stream 512 b

CDC FIFO

FIFO

output serializer

1

1

2

4

8

twiddle generators

commutator

16

𝑐

32 × 62 b

TF roots store

HBM

𝐴𝑖

𝑧 −2

𝐴

MM

TF

68 twiddle generators

scheduler

64 × 2 (NTT/INTT)

FIFO swap NTT/INTT limb (0,1,2)

lane wiring

.. . 𝐵𝑖

control (PCIe BAR)

reg

AXI4-Lite CSRs

(a) Kernel overview. H2C/C2H: host-to-card/card-to-host streams; CDC: clockdomain crossing; TF: twiddle factor; BU: butterfly unit. Numbers below the stages: twiddle generators per stage.

2𝑐 : 1–1,024 words, set per transform type

𝐴′

BU1

operand delay 25 cyc.

𝑐 𝑧 −2

𝐵

BU0

𝐵′

BU15

reg

𝑐

(b) Pipeline stage. 𝐴/𝐵: the two 16-lane paths; 𝑧 −2 : delay of 2𝑐 words; reg: register; BU: butterfly unit; TF: twiddle factor.

Figure 1: The streaming NTT/INTT kernel. Cooley–Tukey (CT) butterfly, whereas INTT uses the Gentleman– Sande (GS) butterfly, as shown in equations (3) and (4), where 𝜁 is a power of 𝜓 (the twiddle factor). 𝑢′ = 𝑢 + 𝑣 · 𝜁

(mod 𝑞),

𝑣′ = 𝑢 − 𝑣 · 𝜁

(mod 𝑞)

𝑢′ = 𝑢 + 𝑣

(3)

(mod 𝑞),

𝑣 ′ = (𝑢 − 𝑣) · 𝜁 −1

Clock

Memory

Size

CDC FIFO (input) Reorder buffer Pipeline FIFO (input) Pipeline FIFO (output) Output serializer CDC FIFO (output)

DMA → kernel kernel kernel kernel kernel kernel → DMA

BRAM URAM (32) URAM (28) URAM (56) LUTRAM BRAM

512 × 512 b 8 × 4,096 × 248 b 4,096 × 1,984 b 8,192 × 1,984 b 32 × 1,984 b 512 × 512 b

(4)

Methodology

In this section, we describe our kernel architecture and its main components: the stream interface, the streaming pipeline, the butterfly unit and on-the-fly twiddle factor generation, and finally how we floorplan it across the FPGA dies.

3.1

Buffer

(mod 𝑞)

Algorithm 1 illustrates a CT forward NTT𝜓 with input in natural order and output in bit-reversed order.

3

Table 1: Buffers in the stream interface.

Overall Architecture

Figure 1a shows the kernel, a fully pipelined streaming NTT/INTT architecture for 𝑁 = 216 and moduli of up to 𝑘 = 62 bits. Limbs are streamed between host and kernel over the streaming queues of the QDMA engine, without staging in HBM. HBM holds only the twiddle roots, which a 256-bit AXI master loads into the roots store once, at setup. The pipeline consists of 16 stages, each computing one stage of the transform. Every stage contains 16 butterfly units (BUs) and between 1 and 16 on-the-fly twiddle generators, 68 in total. A scheduler coordinates the pipeline and keeps up to three limbs in flight at once. The host controls the kernel through an AXI4-Lite slave. It starts a job with a single register write and then polls for completion while results are streamed from the card to the host.

DMA clock: 333 MHz; kernel clock: 400 MHz.

3.2

Stream Interface

The host streams limbs through the QDMA engine in AXI4-Stream mode, with 16 queues per direction that share a 512-bit stream at 333 MHz (21.3 GB/s). A limb is split into 16 slices of 32 KB, one per queue. Two 512-beat clock-domain crossing (CDC) FIFOs, one per direction, pass the streams between the DMA and the kernel clocks. Reorder buffer. The reorder buffer turns 512-bit input beats, eight coefficients in host order, into pipeline words of 32 coefficients from across the limb. It consists of 8 banks, each four coefficients wide, followed by two layers of 2:1 multiplexers that place the coefficients on the pipeline lanes. Each beat is written to two banks in one cycle and each word reads every bank once, so neither writes nor reads conflict. The buffer holds two limbs; hence, one limb is written while the previous feeds the pipeline through a 4,096-word input FIFO. Output serializer. The output serializer turns each pipeline word into four 512-bit beats of eight coefficients, each padded to 64 bits, without reordering; the host places each coefficient at its index. It is fed by an 8,192-word output FIFO and consists of a 32-word LUTRAM FIFO whose head is read four times, once per beat, through a 4:1 multiplexer. Table 1 lists the buffers of the stream interface.

Allam et al.

Table 2: NTT and INTT stages. For each butterfly, the input position (word, path, lane) at which its two operands arrive, in input order (natural for NTT, bit-reversed for INTT). Stage Pairs

Operand 1 Operand 2

Stride

Via

NTT 0 1–11 12 13 14 15

(𝑡, 𝐴, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 )

(𝑡, 𝐵, 𝑖 ) (𝑡 +211−𝑠 , 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖+8) (𝑡, 𝑝, 𝑖+4) (𝑡, 𝑝, 𝑖+2) (𝑡, 𝑝, 𝑖+1)

none 211−𝑠 words 8 lanes 4 lanes 2 lanes 1 lane

– delay wiring wiring wiring wiring

(𝑡, 𝐴, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 ) (𝑡, 𝑝, 𝑖 )

(𝑡, 𝐵, 𝑖 ) (𝑡, 𝑝, 𝑖+1) (𝑡, 𝑝, 𝑖+2) (𝑡, 𝑝, 𝑖+4) (𝑡, 𝑝, 𝑖+8) (𝑡 +2𝑠 −5 , 𝑝, 𝑖 )

none 1 lane 2 lanes 4 lanes 8 lanes 2𝑠 −5 words

– wiring wiring wiring wiring delay

𝑎 𝑗 , 𝑎 𝑗 +215 𝑎 𝑗 , 𝑎 𝑗 +215−𝑠 𝑎 𝑗 , 𝑎 𝑗 +23 𝑎 𝑗 , 𝑎 𝑗 +22 𝑎 𝑗 , 𝑎 𝑗 +21 𝑎 𝑗 , 𝑎 𝑗 +20

INTT 0 𝑎 𝑗 , 𝑎 𝑗 +20 1 𝑎 𝑗 , 𝑎 𝑗 +21 2 𝑎 𝑗 , 𝑎 𝑗 +22 3 𝑎 𝑗 , 𝑎 𝑗 +23 4 𝑎 𝑗 , 𝑎 𝑗 +24 5–15 𝑎 𝑗 , 𝑎 𝑗 +2𝑠

3.3

Streaming Pipeline

The pipeline consumes one word of 32 coefficients per cycle, split into two paths, 𝐴 and 𝐵, of 16 lanes each, so a limb streams as 2,048 words over consecutive cycles. The reorder buffer places the two operands of each stage-0 pair on the same lane of 𝐴 and 𝐵: for the NTT, whose input is in natural order, the first half of the limb on 𝐴 and the second half on 𝐵; for the INTT, whose input is in bit-reversed order, the even positions on 𝐴 and the odd on 𝐵. Each stage (Figure 1b) comprises 16 butterflies and computes stage 𝑠 of the transform, for both transform types. It performs its 𝑁 /2 butterfly operations over 2,048 iterations, one word per iteration: it reorders the incoming 𝐴 and 𝐵, generates the twiddle factors its butterflies need, and passes 𝐴′ and 𝐵 ′ to the next stage. Butterfly 𝑖 is hardwired to lane 𝑖 of the 𝐴 and 𝐵 paths: it always reads 𝐴[𝑖] and 𝐵 [𝑖] and writes its two results back to them. Stage inputs must already be aligned when they arrive at the BUs. Table 2 lists, for every stage of both transform types, where the two operands of a pair arrive and their stride, the distance among the two operands in the stream. Three cases occur: • No stride (stage 0 of both transform types). The operands are placed in the same word and lane, on different paths, and the stage needs no reordering. • Stride of 2𝑐 words (NTT stages 1–11, INTT stages 5–15). The operands are placed on the same path and lane, 2𝑐 words apart. A delay commutator aligns them. • Stride of 2𝑙 lanes (NTT stages 12–15, INTT stages 1–4). The operands are placed in the same word and path, 2𝑙 lanes apart. A fixed lane wiring aligns them. Commutator. The commutator (Figure 1b) is an input register, a delay line on path 𝐵, a 2×2 swap, a delay line on path 𝐴, and an output register. Each delay line delays by 2𝑐 words and is 995 bits wide: 16 coefficients plus control bits, which travel with the data. Since the same physical stage serves both NTT and INTT, each line is built for the larger of its two delays (Table 3) and its depth is selected at run time by the transform type. Depending on depth, a

Table 3: Commutator delay per stage/transform. The larger of the two is built. S: shift registers (SRL), B: BRAM, U: URAM. Stage

0 1

NTT INTT

– 1K 512 256 128 64 32 16 8 4 2 1 – – – – – – – – – 1 2 4 8 16 32 64 128 256 512 1K

2

3

4

5

6

7 8 9 10 11 12

13

14 15

Built – 1K 512 256 128 64 32 16 8 16 32 64 128 256 512 1K Storage – U B B B B S S S S S B B B B U

delay line is implemented as shift registers (SRLs) up to 32 words, BRAM from 64 to 512 words, and URAM for the 1,024-word lines of stages 1 and 15. A RAM delay line is 14 BRAM36 or 14 URAM blocks wide. Together, the lines hold 130,304 coefficients (1.99𝑁 , 8.1 Mbit), the only large memory in the pipeline. The swap is two 2:1 multiplexers per lane, one per output, each selecting between the current 𝐴 and the delayed 𝐵: 32 coefficientwide multiplexers sharing one select. The select is registered and replicated 32 times, one copy per multiplexer. In stages where only one transform type uses the commutator, a further 2:1 multiplexer on each output bypasses it for the other, leaving only the input register. The latency of the commutator is 2𝑐 + 2 cycles. Lane wiring. The lane wiring is a fixed crossing of the lanes and utilizes no memory. For a stride of 2𝑙 lanes, it routes the operand of 𝐴[𝑖+2𝑙 ] onto 𝐵 [𝑖] in the lanes with bit 𝑙 clear, and that of 𝐵 [𝑖−2𝑙 ] onto 𝐴[𝑖] in the lanes with bit 𝑙 set; the other 16 coefficient positions are untouched. Because the other transform type uses a commutator at the same stage, each of the 16 rerouted positions implements a coefficient-wide 2:1 multiplexer selected by the transform type. The multiplexers feed the register that every stage features after its commutator, so the crossing adds no latency. Twiddle factor generators. A stage needs as many generators as the largest number of distinct twiddle factors its 16 butterflies require in one iteration, over both transform types. The twiddle of the pair 𝑎 𝑗 , 𝑎 𝑗+𝑑 , where 𝑑 is the stride of the stage in coefficient indices, depends only on ⌊ 𝑗/2𝑑⌋. When 𝑑 ≥ 16, the 16 pairs of an iteration share this value, hence one generator serves all 16 butterflies; when 𝑑 < 16, these need 16/𝑑 distinct twiddles and as many generators. Table 4 lists these counts; each stage implements the larger of its NTT and INTT counts, 68 generators in total.

3.4

Butterfly Unit

The butterfly unit, in Figure 2, computes CT butterflies for the forward transform and GS butterflies for the inverse. Both modes reuse the same units: a modular multiplier, a modular adder, a Table 4: Distinct twiddle factors per iteration, by stage and transform type. The larger of the two at each stage sets the number of on-the-fly twiddle factor generators implemented. Stage 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Tot. NTT 1 1 1 1 1 1 1 1 1 1 1 1 2 4 8 16 42 INTT 16 8 4 2 1 1 1 1 1 1 1 1 1 1 1 1 42 Built 16 8 4 2 1 1 1 1 1 1 1 1 2 4 8 16 68

End-to-End NTT on FPGA for FHE Acceleration

3.5

×2 −1

𝐴

𝐵

𝑇𝐹

delay

mod add

21 cyc.

4 cyc.

WLM

mod sub

21 cyc.

4 cyc.

out0

out1

0/4 cyc.

CT (NTT): out0 = 𝐴 + 𝐵 𝑇 𝐹 , out1 = 𝐴 − 𝐵 𝑇 𝐹 GS (INTT): out0 = (𝐴+𝐵) 2−1 , out1 = (𝐴−𝐵) 𝑇 𝐹 2−1

Figure 2: Butterfly unit. WLM: word-level Montgomery multiplier; unlabeled bars: 2:1 multiplexers selected by the transform type.

Algorithm 2 Word-Level Montgomery multiplication procedure WLM(𝐵,𝑇 𝐹, 𝑞) ⊲ 𝑊 = 17, 𝜆 = 4, 𝑅 = 2𝑊 𝜆 , 𝑞ℎ = 𝑞 ≫ 𝑊 𝑡 ← 𝐵 ·𝑇𝐹 ⊲ full 2𝑘-bit product for 𝑖 ← 1 . . . 𝜆 do 𝑡𝑙 ← 𝑡 mod 2𝑊 , 𝑡ℎ ← 𝑡 ≫ 𝑊 𝑡 ′ ← (−𝑡𝑙 ) mod 2𝑊 ⊲ 𝑞 ′ = −1: no multiply 𝑐 ← 𝑡 ′ [𝑊 −1] ∨ 𝑡𝑙 [𝑊 −1] ⊲ 𝑐 = 1 iff 𝑡𝑙 ≠ 0 𝑡 ← 𝑡ℎ + 𝑞 ℎ · 𝑡 ′ + 𝑐 end for if 𝑡 ≥ 𝑞 then 𝑡 ← 𝑡 − 𝑞 return 𝑡 ⊲ = 𝐵 · 𝑇 𝐹 · 𝑅 −1 mod 𝑞 end procedure

modular subtractor and a 21-cycle delay line. Multiplexers set by the transform type connect them in the CT or the GS order, and both output at the same latency. Modular multiplication uses word-level Montgomery reduction (WLM, Algorithm 2) with 𝑊 = 17-bit words, so that 2𝑊 = 2𝑁 ; at 𝑘 = 62, this requires 𝜆 = 4 reduction steps. NTT-friendly primes satisfy 𝑞 ≡ 1 mod 2𝑁 = 2𝑊 . Their Montgomery constant 𝑞 ′ = −𝑞 −1 mod 2𝑊 is therefore −1, and each reduction step needs no multiplication by 𝑞 ′ . The Montgomery factor 𝑅 is carried by the twiddle factors, so WLM(𝐵,𝑇 𝐹 ) returns 𝐵 · 𝜓 𝑒 . The inverse transform includes a final scaling by 𝑁 −1 mod 𝑞 (Equation (2)). Instead of a separate 𝑁 −1 multiplication on the output, each of the 16 stages scales both GS outputs by 1/2: together, these scale by 𝑁 −1 . Neither halving costs a multiplier: out0 is halved modulo 𝑞 by one 𝑘-bit carry chain (the ×2−1 block in Figure 2); out1 is halved for free, since 2−1 mod 𝑞 is folded into the twiddle factors. The WLM multiplier utilizes 20 DSP58 blocks: 12 for the full 62×62-bit product and two for each of the four reduction steps. The adder and subtractor are carry chains in LUTs with a conditional correction by 𝑞, and the delay line utilizes shift registers (SRLs). The 256 BUs utilize 5,120 DSPs.

On-the-Fly Twiddle Factor Generation

The NTT𝜓 requires 𝑁 − 1 twiddle factors per prime and transform type (Algorithm 1). Stored twiddle factors must be reloaded for every prime of the modulus chain and, since many butterflies share each of these, require either a distribution network, which adds routing congestion, or replicated storage larger than the polynomial itself. We therefore generate twiddle factors on the fly, trading storage for multipliers. We split each exponent into its low and high byte, 𝑒 = 𝑒𝑙𝑜 +256 𝑒ℎ𝑖 , 𝑖 and keep √ two sets of 256 twiddle roots, 𝑟𝑙𝑜 [𝑖] = 𝜓 and 𝑟ℎ𝑖 [𝑖] = 256𝑖 𝜓 (2 𝑁 in total), so that any twiddle factor is one modular multiplication of two roots [28, 32, 33, 67] (Equation (5)). 𝑒 𝜓 𝑒 = 𝜓 𝑒𝑙𝑜 · 𝜓 256 ℎ𝑖 = 𝑟𝑙𝑜 [𝑒𝑙𝑜 ] · 𝑟ℎ𝑖 [𝑒ℎ𝑖 ] (5) TF roots store. Since prime chains are known in advance, the host computes the twiddle roots of every prime and transform type once, at setup, and the kernel loads them from HBM into the on-chip roots store. The roots store holds up to 64 primes for both transform types, sufficient for a full CKKS modulus chain, and utilizes 16 URAM. The host also folds two constants into 𝑟𝑙𝑜 in advance: the Montgomery factor 𝑅 2 and, for the INTT, the 2−1 of the GS halving ′ [𝑖] = 𝜓 𝑖 𝑅 2 , or (Section 3.4). We denote these precomputed roots 𝑟𝑙𝑜 𝑖 2 −1 𝜓 𝑅 2 for the INTT. Local buffers. The generators read the twiddle roots from local buffers in each stage. Since up to three limbs, each with its own prime, may be in flight, every buffer holds three banks, one per limb; the scheduler fills a bank from the roots store in 512 cycles ahead of its limb, overlapping limb loading. In every iteration, the generators of a stage share 𝑒𝑙𝑜 and differ only in 𝑒ℎ𝑖 , so a stage ′ buffer for all its generators (three banks of 256 words keeps one 𝑟𝑙𝑜 in two BRAM36), while each generator keeps its own 𝑟ℎ𝑖 buffer. On-the-fly twiddle factor generator. The generator (Figure 3) ingests an exponent 𝑒, derived from the iteration and the transform type, and multiplies its two twiddle roots with one WLM multiplier (Equation (6)). The result is 𝜓 𝑒 𝑅, the operand the butterfly expects (Section 3.4). Each generator utilizes a WLM multiplier (20 DSPs) and its 𝑟ℎ𝑖 buffer (two BRAM36); the 68 generators utilize 1,360 DSPs and 136 BRAM36.  ′ 𝑇 𝐹 = WLM 𝑟𝑙𝑜 [𝑒𝑙𝑜 ], 𝑟ℎ𝑖 [𝑒ℎ𝑖 ] = 𝜓 𝑒 𝑅 (· 2−1 ) mod 𝑞 (6)

′ buffer 𝑟𝑙𝑜

𝑒𝑙𝑜

′ [𝑒 ] 𝑟𝑙𝑜 𝑙𝑜

shared by stage

TF roots store

iteration 𝑡 , NTT/INTT

exponent 𝑒

𝑒ℎ𝑖

𝑟ℎ𝑖 buffer per generator

𝑟ℎ𝑖 [𝑒ℎ𝑖 ]

WLM

𝜓𝑒𝑅

generator

Figure 3: On-the-fly twiddle factor generator. WLM: wordlevel Montgomery multiplier.

Allam et al.

S0

S1

S2

S3

S4

S5

S6

S7

S8

S9

AMD EPYC 9645 processors (96 cores each) and 1.5 TB of memory. All CPU baselines use Lattigo v6.2.0 [16]. We used an AI assistant to help with analysis and plotting scripts.

AXI master S10

stream interface

HBM

QDMA

TF roots store

4.2 S15

SLR0

S14

2 words + TF

S13

S12

SLR1

S11

2 words + TF

SLR2

Figure 4: Floorplan. S0–S15: pipeline stages; black bars: registered SLR crossings of the stage chain; orange: twiddle-root broadcast from the TF roots store, registered per boundary.

3.6

Floorplan

The V80 features three SLRs, with 18,870 super long lines (SLLs) at each boundary. We manually floorplan all kernel cells (Figure 4). The two external interfaces of the kernel are placed at opposite ends of the device: the QDMA engine in SLR0 and the HBM ports next to SLR2. We therefore place the stream interface in SLR0 and the roots store, with the AXI master that loads it, in SLR2. The AXI master connects to an HBM BLI port, which bypasses the networkon-chip (NoC) of the V80 entirely. Limbs flow through a U-shaped pipeline that starts and ends next to the stream interface: S0–S1 and S14–S15 in SLR0, S2–S6 and S12–S13 in SLR1, and S7–S11 in SLR2. Twiddle roots flow against the forward direction of the limbs: for every limb, the roots store broadcasts the modulus and twiddle roots from SLR2 to all stages through a register tree, with one register pair per SLR boundary and one register in front of each stage. Each boundary is thus traversed only by two stage-to-stage words, one in each direction (S1/S2 and S13/S14, S6/S7 and S11/S12), each 1,984 data bits wide, and by the twiddle-root broadcast. Each of these paths is registered on both sides of the boundary, and together they utilize fewer than 4,200 SLLs. Control signals reach the stages through a register tree that limits their fan-out. Since they change only while the pipeline is idle or once per limb, we also constrain them as two-cycle multicycle paths, which relaxes their routing and eases timing closure: the reset, held for 1,300 cycles; the transform direction, changed only on an empty pipeline; the job configuration registers; and the modulus of each stage, which changes at most once every 2,048 cycles.

4

Evaluation

In this section, we describe the experimental setup, report implementation results, and compare our kernel with state-of-the-art FPGA designs. We then describe the integration into Lattigo, analyze offloading in terms of latency and power, and evaluate it on CKKS operations and FHE neural network inference workloads.

4.1

Experimental Setup

Our kernel is written in SystemVerilog and implemented for 𝑁 = 216 and primes of up to 62 bits on an AMD Alveo V80 card with Vivado 2025.1. Synthesis and implementation use the default strategies, followed by post-route physical optimization with the Explore directive. The card is attached over PCIe Gen5 x8 to a host with two

Implemented Kernel

4.2.1 Post-Place-and-Route Results. The kernel closes timing at 400 MHz, and we report all results at this frequency. It utilizes 60% of the DSPs of the V80 and about a quarter of its LUTs and FFs (Table 5). SLR1, which holds seven of the 16 stages, is the most utilized, with 73.5% of its DSPs. The design is not limited by routing resources: the kernel shows no routing congestion, and each SLR boundary utilizes 22.1% of its SLLs. The frequency is instead bound by wire delay across a clock domain that spans all three SLRs. The critical paths are shallow, 4.65 logic levels on average, but routing accounts for 74% of their delay. 4.2.2 Comparison with State-of-the-Art FPGA Designs. Table 6 compares the resource utilization, frequency, latency, and throughput of our kernel against prior FPGA NTT implementations. To weigh performance against hardware cost, we use the area-time product (ATP), the product of the latency and a normalized area term that aggregates LUTs, FFs, DSPs, BRAMs, and URAMs. Designs with lower parallelism [12, 23, 37, 40, 45, 67] run at 196– 300 MHz and require 54.9–168.8 𝜇s per transform at 𝑁 =216 , 11–33× our latency, mostly at a higher ATP. Zaman et al. [67], the only other delay-commutator pipeline in the table, use one butterfly per stage. Only Kurniawan et al. [40] reach a lower ATP, with 288 DSPs, but at 13× our latency. At 𝑁 =217 , Kim et al. [34] and Dang Truong et al. [11] require 89.5 and 257.7 𝜇s, at a higher ATP. Poseidon [63] reaches 450 MHz with 512 butterflies, but on 32-bit moduli, and requires 16× our latency at a higher ATP; SAM [57] requires 74× our latency, also at a higher ATP. The closest designs to ours are the four fully pipelined kernels with 256 butterflies on the U280: AutoNTT [38], AutoNest [71], Seven-step [35], and TP-NTT [36]. These run at 208–280 MHz and require 8.28–10.01 𝜇s per transform, 1.6–2.0× our latency. AutoNTT, AutoNest and Seven-step experience a higher ATP. TP-NTT attains a lower ATP, 7,692: it restricts the primes to utilize 11 DSPs per butterfly, against 25 for our kernel, and stores all 𝑁 twiddle factors per prime, against 512 twiddle roots for ours.

Table 5: Kernel per-SLR utilization and SLR crossings. Resource LUT FF DSP BRAM tile URAM SLLs

SLR0

SLR1

SLR2

223k (24.8%) 269k (32.8%) 178k (20.8%) 415k (23.0%) 505k (30.8%) 339k (19.8%) 2,240 (56.2%) 2,540 (73.5%) 1,700 (49.9%) 147 (11.0%) 212 (17.7%) 48 (4.0%) 172 (25.4%) 0 16 (2.6%) Used / available

SLR0 ↔ SLR1 4,178 / 18,870 (22.1%): 2,094 up, 2,084 down SLR1 ↔ SLR2 4,178 / 18,870 (22.1%): 2,094 up, 2,084 down

End-to-End NTT on FPGA for FHE Acceleration

Table 6: Comparison with state-of-the-art FPGA NTT implementations.

Implementation

Platform

N

log q

Red.

PEs

OTF TF

Stored TF

LUT/FF/BRAM/URAM/DSP

Freq. (MHz)

Lat. (𝜇s)

Th.put (NTT/s)

ATP

Poseidon [63] Kurniawan [40] Mareta [45] Duong-Ngoc [12] OpenNTT [37] SAM [57]

U280 VU37P U250 ZU9EG ZCU102 U250

216 216 216 216 216 216

32 60 60 60 52 64

Bar – Bar Bar WLM –

512 32 16 32 32 –

× × ✓ ✓ ✓ P

𝑁 𝑁 128 375 𝑂 (log 𝑁 ) 304

358k / 344k / 1,024 / 0 / 4,032 74.5k / 61.4k / 155𝑎 / 0 / 288 274.4k / 83.1k / 241𝑎 / 0 / 630 148.5k / 90.9k / 137𝑎 / 0 / 564 157k / 117k / 98 / 0 / 896 267k / 328k / 2,126𝑏 / – / 2,736

450 250 250 200 210 165

80.17 66.51 66.2 83.8 78.4 380

12,474 15,035 15,106 11,933 – –

92,320 7,702 16,266 15,761 19,882 414,732

Guo et al. [23] Zaman et al. [67] Kim et al. [34]𝑐 Dang Truong et al. [11] AutoNTT [38]𝑑 AutoNest [71] Seven-step [35] TP-NTT [36]

ZU15EG Virtex-7 VU190 VU13P U280 U280 U280 U280

216 216 217 217 216 216 216 216

64 64 62 62 64 64 64 60

Bar WLM Bar – WLM WLM WLM WLM

– 16 68 – 256 256 256 256

– P ✓ – × × P ×

– 6,206 – – – 𝑁 √ 𝑂( 𝑁) 𝑂 (𝑁 )

82.1k / 76.2k / 356.5𝑏 / – / 678 47.3k / 36.3k / 127 / 0 / 399 365k / 335k / 2,258𝑎 / 0 / 1,332 118.3k / 119.2k / 822 / 0 / 840 503k / 840k / 292 / 128 / 5,120 747k / 929k / 176 / 184 / 6,080 460k / 470k / 280 / 0 / 6,320 361k / 340k / 1,128𝑏 / – / 2,816

300 196 200 280 208 280 248 250

54.9 168.8 89.5 257.7 10.01 8.48 8.34 8.28

– – 11,170 – 99,900 117,925 119,904 –

13,097 20,580 76,808 97,900 15,574 15,950 12,560 7,692

V80

216

62

WLM

256

✓

512

670k / 1,259k / 407 / 188 / 6,480

400

5.12

195.3k

10,567

Our Work

Red.: WLM = word-level Montgomery, Bar = Barrett. OTF TF: twiddles generated on the fly (P: partial, only inter-dimension twiddles for SAM and Seven-step, the last five stages for Zaman). Stored TF: twiddles stored per prime. Lat.: average time per transform, over consecutive transforms for Zaman, Kim, Seven-step, and TP-NTT, 𝑁 /( coefficients per cycle · 𝑓 ) for AutoNTT, AutoNest, and ours, 1/throughput for Poseidon and single-transform latency otherwise. ATP = Lat. × (kLUT + kFF + DSP + BRAM + 8× URAM)/5. 𝑎 BRAM36 converted from the reported on-chip RAM in KB. 𝑏 BRAM36 equivalent, including URAM. 𝑐 INTT. 𝑑 HLS; reproduced on the U280 in [71].

Host→card

615 µs

CPU 222 µs (2.8×)

MM, 33 limbs

99 µs (6.2×)

Streaming, 1 limb

89 µs (6.9×)

Streaming, 33 limbs 0

Host→card Kernel Card→host

28 µs (22.0×) 200

400

Time per limb (µs)

600

Lattigo Integration

We integrate the kernel into Lattigo [16], an open-source FHE library, by offloading its Ring transforms, which cover all the limbs of a polynomial, and its SubRing transforms, covering a single limb. We batch the digit decomposition of key switching, which Lattigo transforms one limb at a time, into one call per digit, so that the card amortizes its transfers over multiple limbs. The offloaded transforms call a C library that we have developed, which interfaces with the QDMA driver and streams the limbs through its queues. Limbs are transferred without staging copies. The library also loads the twiddle roots of the prime chain at setup.

80

6.9×

60

10.6× 12.8×

40

14.4×

16.5×

18.5× 18.8× 19.5×

20.4× 21.4× 22.0×

20

Figure 5: CPU vs. kernel offloading in MM mode and streaming mode, 1 and 33 limbs per call, split into host-to-card transfer, kernel, and card-to-host transfer. Labels: end-toend speedup over CPU.

4.3

Card→host

100

Time per limb (µs)

MM, 1 limb

Kernel

0

1

2

3

4

6

8

10

Limbs per call

12

17

25

33

Figure 6: Streaming mode with 1 to 33 limbs per call, time per limb split into host-to-card transfer, kernel, and card-to-host transfer. Labels: end-to-end speedup over CPU.

4.4

Offloading Analysis

We test two offload modes (Figure 5): our streaming mode and memory-mapped (MM) mode, which we implement by instantiating AXI ports on HBM. In MM mode, the DMA engine copies the limbs into HBM, the kernel reads them and writes the result back, and the DMA engine copies the result to the host. In this mode, an NTT call of a single non-pipelined limb requires 222 𝜇s, versus 615 𝜇s on CPU (2.8×), but card-to-host transfers dominate it (103 𝜇s). Since

Allam et al.

Figure 7: Board power of the V80 by rail, 5-sample moving average. Shaded: 60 s of NTT executions.

3

4

dnum

6

11

(a) MulRelin, level 10 (11 limbs).

the DMA engine must read HBM, these peak at 7.0–8.0 GB/s, against 15.3–17.2 GB/s from host to card. With pipelined calls, the average latency drops to 99 𝜇s per limb (6.2× CPU), still dominated by the card-to-host transfer. In streaming mode, a call of a single limb requires 89 𝜇s (6.9× CPU): 43 𝜇s to stream the limb to the card, 11 𝜇s in the kernel, and 31 𝜇s to stream the result back. With 33 pipelined limbs per call, the NTT and the output transfer of each limb overlap the input transfer of the next, and the latency drops to 28 𝜇s per limb (22.0× CPU). Figure 6 shows the per-limb latency of streaming mode with 1 to 33 limbs per call: the speedup over the CPU rises from 6.9× to 22.0×, since the kernel and the card-to-host transfer are hidden behind the input stream. From three limbs on, the host-to-card stream accounts for more than 65% of the time per limb, and at 33 limbs the call transfers at 18.8 GB/s in each direction, close to the 21.3 GB/s peak of the stream interface.

4.5

Power Analysis

We read the power of the V80 from its board sensors every 0.5 s while the host runs batches of 10,000 pipelined NTTs for 60 s (Figure 7). The measurement includes the transfers in both directions, since the kernel ingests its input and returns its output over the PCIe streams. The kernel adds 14.0 W to the 59.1 W the card draws while idle, most of it (11.3 W) in the fabric, while the HBM power stays flat, since no limb passes through HBM. At one NTT every 26.5 𝜇s, the card spends 1.94 mJ per NTT, 0.37 mJ above idle.

4.6

CKKS Operations

We evaluate the offload on two core CKKS operations: key switching, measured through ciphertext-ciphertext multiplication (MulRelin), and bootstrapping. The number of NTT calls depends on dnum, the number of digits in the key-switching decomposition [31]. Each digit is extended to the full basis 𝑄𝑃, which requires transforming its limbs out of and back into the NTT domain, so the number of transforms grows with dnum (Figure 8). For MulRelin at level 10 (Figure 8a), the offload is faster at every dnum, from 2.07× at dnum=1 to 2.17× at dnum=11, where it reduces the MulRelin time from 154.1 ms to 71.1 ms. Within the 128-bit security bound (dnum≥4), the speedup is 1.98–2.19×. For bootstrapping (Figure 8b), the speedup rises from 1.66× at dnum=2 to 2.09× at dnum=25. Within the security bound (dnum≥5), it is 1.76–2.09×; at dnum=5 (log 𝑄𝑃 = 1546), the offload reduces the bootstrapping time from 12.04 s to 6.84 s. From dnum=2 to 13, the

0

2

3

2.09×

2

Latency (s)

1

1.99×

0

10

1.92×

50

1.76×

Other

1.96×

Transceivers

CPU + FPGA

20 1.69×

HBM

2.17×

100

80

2.19×

Time (s)

CPM5 (PCIe, DMA)

60

1.97×

VCCINT (fabric)

40

30

2.06×

20

150

2.07×

0

CPU 40

Latency (ms)

40

CPU + FPGA

1.98×

Power (W)

CPU 200

1.66×

80

5

7

9

13 25

dnum

(b) Bootstrapping (25 limbs).

Figure 8: Latency of MulRelin and bootstrapping, CPU-only vs. CPU with NTT/INTT on FPGA, against dnum. Shaded: log 𝑄𝑃 > 1550, not 128-bit secure [6]. Times are the mean of 10 runs. Labels: end-to-end speedup over CPU. Table 7: Cryptographic parameters of the workloads. Parameter Ring dimension (𝑁 ) Multiplicative depth log 𝑞 0 (first prime) log Δ (scale) log 𝑄 log 𝑃 log 𝑄𝑃 dnum Hamming weight of secret key

MLP

CNNs

216 5 55 40 255 183 (3 × 61) 438 2 192

216 25𝑎 55 40 1276 244 (4 × 61) 1520 7 192

𝑎 Including bootstrapping levels.

speedup follows the share of CPU time spent in NTT and INTT, which rises from 50.0% to 63.8%.

4.7

FHE Neural Network Inference

We evaluate end-to-end inference on six FHE neural networks with Lattigo, following the convolution formulation, polynomial approximation, and bootstrap placement methodology of Orion [14]. The networks fall into three categories: a shallow network that requires no bootstrapping; convolutional neural networks (CNNs) that operate on a single ciphertext (ResNet-20 and ResNet-32 on CIFAR-10); and CNNs whose activations span multiple ciphertexts in some layers (AlexNet and VGG16 on CIFAR-10, ResNet-18 on Tiny-ImageNet). Table 7 lists the cryptographic parameters, all 128-bit secure [6]. We exclude setup, which runs once for many inferences. The CPU-only and the offloaded runs produce identical outputs. Table 8 summarizes the results, and Figure 9 compares the time per inference: the offload speeds up inference by 1.81–2.08×. Per inference, the time Lattigo spends in NTT and INTT falls by 11.4– 15.1× in the shallow and single-ciphertext networks, and by 5.1– 14.0× in the multi-ciphertext networks.

End-to-End NTT on FPGA for FHE Acceleration

Table 8: FHE inference: CPU vs. CPU + NTT/INTT on FPGA, per inference (mean of 5 inferences).

CPU

CPU + FPGA (NTT/INTT)

Dataset MNIST Bootstraps 0 NTT calls 351 Limbs per call 3.81

CPU + FPGA Total (s) NTT/INTT (s) Per limb (𝜇 s) Speedup NTT speedup

CIFAR-10 37 41.5k 9.52

CIFAR-10 61 68.1k 9.54

VGG16

ResNet-18

CIFAR-10 CIFAR-10 15 28 21.1k 37.3k 9.08 9.22

Tiny-IN 128 199k 9.11

1.44 0.81 (56.1%)

393.9 238.4 (60.5%)

649.1 392.8 (60.5%)

171.4 105.4 (61.4%)

319.3 192.4 (60.1%)

560.7 430.3 (76.6%)

0.80 0.071 (8.9%) 52.4

190.8 15.8 (8.3%) 39.4

312.7 26.8 (8.6%) 40.7

89.6 7.5 (8.4%) 38.6

165.8 15.3 (9.2%) 44.1

301.0 84.7 (28.1%) 43.3

1.5

2.07 × 15.1 ×

2.08 × 14.7 ×

1.91 × 14.0 ×

1.93 × 12.5 ×

1.86 × 5.1 ×

4.7.2 Single-Ciphertext Networks. ResNet-20 and ResNet-32 on CIFAR-10 operate on a single ciphertext in every layer. ResNet-32 is the deeper of the two and requires 61 bootstraps per inference, against 37 for ResNet-20. Accordingly, ResNet-32 issues 68.1k NTT calls per inference, against 41.5k for ResNet-20. Their NTT profiles, however, coincide: their calls carry 9.5 limbs on average, and NTT and INTT require 60.5% of their wall-clock time in the CPU-only runs. Since these feature similar profiles, the offload accelerates both networks alike. It reduces the time per inference of ResNet-20 from 393.9 s to 190.8 s (2.07×) and that of ResNet-32 from 649.1 s to 312.7 s (2.08×), close to the Amdahl bound of 2.53× set by their NTT share. 4.7.3 Multi-ciphertext Networks. AlexNet, VGG16, and ResNet-18 require 15, 28, and 128 bootstraps per inference. In some of their layers, the activations span several ciphertexts. Inference then uses multi-threading: each ciphertext is processed by its own thread, and the threads issue their NTT calls concurrently. AlexNet and VGG16 span two ciphertexts in their first two convolutional layers and a single ciphertext afterward. ResNet-18, with 64×64×3 inputs, spans eight, four, two, and one ciphertexts in its four stages. AlexNet and VGG16 issue 21.1k and 37.3k NTT calls per inference, and ResNet-18 199k. The calls of all three networks carry 9.1–9.2 limbs on average. In the CPU-only runs, 1.2, 1.1, and 2.6 threads issue NTT calls at a time on average. We therefore count the NTT and INTT time as the time during which at least one transform is in flight. NTT and INTT then require 61.4% and 60.1% of the wallclock time of AlexNet and VGG16, close to the single-ciphertext networks, and 76.6% in ResNet-18.

0.80

649

600

191

200

0

MLP

400

313

200

100

ResNet-20

1.91×

0

ResNet-32

1.93×

171

300

150 100

2.08×

394

300

0.5

90

200

1.86× 600

319

400 166

AlexNet

0

561

301

200

100

50 0

4.7.1 Shallow Network. Our multi-layer perceptron (MLP) is a three-layer fully connected network composed of a 784×128 layer, a 128×128 layer, and a 128×10 output layer, with square activations. Its multiplicative depth is 5, so bootstrapping is not required. Its short modulus chain limits each call to 3.81 limbs on average, the smallest batches of all workloads; accordingly, the cost per limb is the highest, 52.4 𝜇s. Offloading reduces the time per inference from 1.44 s to 0.80 s, a 1.81× speedup, against an Amdahl bound of 2.28×.

400

1.0

200

1.81 × 11.4 ×

2.06×

1.44

0.0

Time per inference (s)

CPU only Total (s) NTT/INTT (s)

ResNet-20 ResNet-32 AlexNet

Time per inference (s)

1.81× MLP

VGG16

0

ResNet-18

Figure 9: FHE inference time, CPU only vs. CPU + NTT/INTT on the FPGA, mean of 5 inferences. Bar labels: time per inference (s); above each panel: speedup.

AlexNet and VGG16 thus behave like the single-ciphertext networks. The offload accelerates them by 1.91× (171.4 s to 89.6 s) and 1.93× (319.3 s to 165.8 s), against Amdahl bounds of 2.59× and 2.51×. ResNet-18 features a higher bound, 4.27×, but it gains 1.86× (560.7 s to 301.0 s). With the offload, its concurrent calls queue serially on the card, so its NTT and INTT time falls by only 5.1×, against 14.0× and 12.5× for AlexNet and VGG16. Across all workloads, the batch size of the calls and multithreading determine the gain. At 3.81 limbs per call, the MLP gains 1.81×. The single-ciphertext networks, at 9.5 limbs per call, gain 2.07–2.08×. The multi-ciphertext networks issue calls almost as large, 9.1–9.2 limbs, but share the card among concurrent threads and gain 1.86–1.93×. Figure 10 shows the same trend in the cost per limb: larger calls amortize the fixed cost of each transfer.

5

Related Work

Hardware acceleration of the NTT has been explored on GPUs, ASICs, and processing-in-memory systems. GPU implementations map the butterflies onto thousands of threads, generate twiddle factors on the fly to relieve memory bandwidth, and fuse kernels onto tensor cores [13, 17, 18, 26, 29, 32, 47, 53, 68, 72, 73]. ASIC accelerators build vectorized NTT units around large onchip memories, with four-step decompositions, transpose-based or conflict-free memories, and short words that localize communication [20, 30, 31, 33, 51, 52], and processing-in-memory designs execute the NTT inside DRAM [5]. FPGA accelerators implement either the full scheme or only the NTT. Full-scheme designs [2, 3, 50, 60, 61, 63] accelerate bootstrapping, but target fixed parameters and specific algorithms. NTT accelerators apply across schemes and libraries. We classify these

Allam et al.

100

Time per limb (µs)

Table 9: FPGA FHE and NTT accelerator approaches.

NTT Inference workload (average)

MLP

80

VGG16, ResNet-18 AlexNet, ResNet-20, -32

60 40 20 0

0

5

10

15

20

Limbs per call

25

30

Figure 10: Latency per limb of the inference workloads against the NTT on FPGA: line, NTT batches of 1–33 limbs (Figure 6); dots, latency per offloaded limb in each workload.

by how they map the log 𝑁 butterfly stages onto hardware and how they reorder coefficients among stages. Iterative accelerators reuse an array of PEs across stages and reorder the coefficients through banked memory with conflict-free access [11, 12, 23, 37, 40, 41, 45]. These utilize few resources but require 55–84 𝜇s per transform at 𝑁 =216 . Dataflow accelerators unroll the stages but still reorder through networks or memories among them. Ye et al. [64] and NTTGen [62] pair fixed wiring with a permutation network, Kim et al. [34] doublebuffer BRAMs among groups of stages, and AutoNTT [38] implements crossbar shufflers on a constant-geometry formulation [55]. SAM [57], Seven-step [35], TP-NTT [36], and AutoNest [71] decompose the transform into sub-NTTs joined by transposes, and AutoNest splits its transposes into blocks to shorten their critical paths. In both classes, the reordering interconnect grows with parallelism, adding routing congestion and SLR crossings. Delay commutators avoid this interconnect [19, 59]. NTT designs built on these run at low parallelism or small polynomial sizes [10, 21, 25, 39, 42, 43, 56, 65, 69]. Stelzer et al. [54] stream up to 64 coefficients per cycle, but only up to 𝑁 =212 ; Zaman et al. [67] reach 𝑁 =216 with one butterfly per stage, and Wang and Ikeda [58] stream eight lanes at 𝑁 =214 . ASIC accelerators [4, 15, 66] and zeroknowledge accelerators [1, 70] adopt such pipelines at larger scale. To share hardware between the NTT and the INTT, these pipelines reverse the data flow [15, 39, 54], select different folding sets [56], or reformulate the data flow [69]; Proteus [25] notes that delays sized for both orderings would avoid these changes, but discards the option as too complex. Our kernel streams 32 coefficients per cycle at 𝑁 =216 and computes the NTT and the INTT in the same direction through delays sized for both orderings. Most works store the twiddle factors, which requires memory that grows with 𝑁 for every prime [25, 36, 40, 42, 54, 63], and AutoNest fetches those of its last stage from √ HBM for every transform [71]. Generating every twiddle from 2 𝑁 twiddle roots with one modular multiplication was introduced in FFT processors [28] and on GPUs [32], and BTS [33] and Osiris [15] dedicate one such multiplier to each PE or butterfly. Zaman et al. [67] apply it to the last five stages of a delay-commutator pipeline and

Architecture Reorder

OTF E2E Works

PE array PE array PE array Multi-stage Multi-stage Multi-stage Sub-NTT Sub-NTT Unrolled Unrolled Unrolled Unrolled

Memory Memory Network Memory Memory Network Network Transpose Buffers Network Delay Delay

× ✓ × × ✓ × × × ✓ × × ✓

× × × × × × × × × × × ×

[2, 3, 38, 50] [37, 46] [61] [40, 63] [45] [38] [60] [35, 36, 57, 71] [34] [38, 64, 71] [10, 21, 25, 42, 54, 56, 65, 67] [58]

Unrolled

Delay

✓

✓

Our work

PE array: one array iterated over all stages; Multi-stage: a core of several stages iterated over stage groups; Sub-NTT: multi-dimensional decomposition into unrolled sub-NTTs. OTF: all twiddles generated on chip. E2E: placed and routed with per-SLR results, and run end to end under a CPU-hosted FHE library.

store the twiddles of the first eleven. Recurrences need only a few seeds, but one multiplier per PE and a fixed generation order [34, 37, 46, 57, 66]; powers of a few bases need 375 words and 15 multipliers at 𝑁 =216 [12], and power generation needs 254 multipliers [20]. Our kernel generates all twiddles on chip with 68 generators that share one low-digit buffer per stage and place no constraint on the dataflow. Most of these works do not discuss placement or multi-die crossings and none of them evaluates end-to-end offloading within an FHE library. Table 9 summarizes FPGA approaches.

6

Conclusions

In this work, we have designed a fully unrolled, delay-commutator streaming NTT/INTT kernel. Our kernel streams 32 coefficients per cycle through 256 butterfly units in 16 stages and reorders coefficients with delay commutators and fixed lane wiring instead of networks or transposes. A total of 68 generators produce the twiddle factors on the fly from 512 twiddle roots per prime. We have floorplanned the kernel across the three SLRs of an AMD Alveo V80 and closed timing at 400 MHz. Our kernel transforms a polynomial of 𝑁 =216 coefficients every 5.12 𝜇s. Offloaded end to end, including the transfers over PCIe, it is up to 22.0× faster than CPU-only executions. To the best of our knowledge, among FPGA designs at this polynomial size, it is the delay-commutator NTT with the highest parallelism and attains the highest throughput, 1.6–2.0× higher than designs with the same parallelism, with a competitive area-time product. We have integrated the kernel into the Lattigo FHE library and evaluated it on FHE workloads with 128-bit secure parameters. The offload speeds up MulRelin by 1.98–2.19×, bootstrapping by 1.76– 2.09×, and FHE neural network inference by 1.81–2.08×, while the NTT/INTT time per inference falls by up to 15.1×. The host-to-card stream accounts for more than 65% of the time per offloaded limb. Future work may reduce this share with a second stream interface, through the second PCIe controller of the V80, or by integrating the kernel into a larger FHE accelerator to retain limbs on the card.

End-to-End NTT on FPGA for FHE Acceleration

Acknowledgments Funded by the European Union (ERC, HomE, 101043467). Views and opinions expressed are however those of the author(s) only and do not necessarily reflect those of the European Union or the European Research Council Executive Agency. Neither the European Union nor the granting authority can be held responsible for them. Antonio J. Peña was partially supported by the Ramón y Cajal fellowship RYC2020-030054-I, funded by MCIN/AEI/10.13039/501100011033 and by “ESF Investing in your future”. Special thanks to the HomE team, to Antonio Filgueras from OmpSs@FPGA and Juan Miguel De Haro Ruiz from Microarchitecture Design and implementation (MAD) at BSC for the valuable support.

References [1] Kaveh Aasaraai, Emanuele Cesena, Rahul Maganti, Nicolas Stalder, Javier Varela, and Kevin Bowers. 2022. CycloneNTT: An NTT/FFT Architecture Using QuasiStreaming of Large Datasets on DDR- and HBM-based FPGA Platforms. Cryptology ePrint Archive, Paper 2022/1657. [2] Rashmi Agrawal, Anantha Chandrakasan, and Ajay Joshi. 2024. HEAP: A Fully Homomorphic Encryption Accelerator with Parallelized Bootstrapping. In Proceedings of the 51st Annual International Symposium on Computer Architecture (Buenos Aires, Argentina) (ISCA ’24). IEEE Press, Buenos Aires, Argentina, 756–769. doi:10.1109/ISCA59077.2024.00060 [3] Rashmi Agrawal, Leo de Castro, Guowei Yang, Chiraag Juvekar, Rabia Yazicigil, Anantha Chandrakasan, Vinod Vaikuntanathan, and Ajay Joshi. 2023. FAB: An FPGA-Based Accelerator for Bootstrappable Fully Homomorphic Encryption. In 2023 IEEE International Symposium on High-Performance Computer Architecture (HPCA). IEEE, Montreal, QC, Canada, 882–895. doi:10.1109/HPCA56546.2023.1 0070953 [4] Aikata Aikata, Ahmet Can Mert, Sunmin Kwon, Maxim Deryabin, and Sujoy Sinha Roy. 2025. REED: Chiplet-based Accelerator for Fully Homomorphic Encryption. IACR Transactions on Cryptographic Hardware and Embedded Systems 2025, 2 (2025), 163–208. doi:10.46586/tches.v2025.i2.163-208 [5] Tathagata Barik, Priyam Mehta, Zaira Pindado, Harshita Gupta, Mayank Kabra, Mohammad Sadrosadati, Onur Mutlu, and Antonio J. Peña. 2026. Long Integer NTT Execution on UPMEM-PIM for 128-bit Secure Fully Homomorphic Encryption. Future Generation Computer Systems (2026), 108386. doi:10.1016/j.future.2 026.108386 [6] Jean-Philippe Bossuat, Christian Mouchet, Juan Troncoso-Pastoriza, and JeanPierre Hubaux. 2021. Efficient Bootstrapping for Approximate Homomorphic Encryption with Non-Sparse Keys. In Advances in Cryptology – EUROCRYPT 2021 (Lecture Notes in Computer Science, Vol. 12696). Springer, Cham, 587–617. doi:10.1007/978-3-030-77870-5_21 [7] Jung Hee Cheon, Kyoohyung Han, Andrey Kim, Miran Kim, and Yongsoo Song. 2018. Bootstrapping for Approximate Homomorphic Encryption. In Advances in Cryptology – EUROCRYPT 2018, Jesper Buus Nielsen and Vincent Rijmen (Eds.). Springer International Publishing, Cham, 360–384. [8] Jung Hee Cheon, Kyoohyung Han, Andrey Kim, Miran Kim, and Yongsoo Song. 2018. A Full RNS Variant of Approximate Homomorphic Encryption. In Selected Areas in Cryptography – SAC 2018: 25th International Conference, Calgary, AB, Canada, August 15–17, 2018, Revised Selected Papers (Calgary, AB, Canada). Springer-Verlag, Berlin, Heidelberg, 347–368. doi:10.1007/978-3-030-10970-7_16 [9] Jung Hee Cheon, Andrey Kim, Miran Kim, and Yongsoo Song. 2017. Homomorphic Encryption for Arithmetic of Approximate Numbers. In Advances in Cryptology – ASIACRYPT 2017, Tsuyoshi Takagi and Thomas Peyrin (Eds.). Springer International Publishing, Cham, 409–437. [10] Sin-Wei Chiu and Keshab K. Parhi. 2025. Architectures for Serial and Parallel Pipelined NTT-Based Polynomial Modular Multiplication. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 33, 9 (2025), 2474–2487. doi:10.1109/ TVLSI.2025.3576782 [11] Quang Dang Truong, Phap Duong-Ngoc, and Hanho Lee. 2025. Hybrid Number Theoretic Transform Architecture for Homomorphic Encryption. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 33, 7 (2025), 2039–2043. doi:10.1109/TVLSI.2025.3552852 [12] Phap Duong-Ngoc, Sunmin Kwon, Donghoon Yoo, and Hanho Lee. 2023. AreaEfficient Number Theoretic Transform Architecture for Homomorphic Encryption. IEEE Transactions on Circuits and Systems I: Regular Papers 70, 3 (2023), 1270–1283. doi:10.1109/TCSI.2022.3225208 [13] Phap Duong-Ngoc, Thang Xuan Pham, Hanho Lee, and Tuy Tan Nguyen. 2022. Flexible GPU-Based Implementation of Number Theoretic Transform for Homomorphic Encryption. In 2022 19th International SoC Design Conference (ISOCC). 259–260.

[14] Austin Ebel, Karthik Garimella, and Brandon Reagen. 2025. Orion: A Fully Homomorphic Encryption Framework for Deep Learning. In Proceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 2. 734–749. [15] Austin Ebel and Brandon Reagen. 2026. Osiris: A Systolic Approach to Accelerating Fully Homomorphic Encryption. ACM Trans. Archit. Code Optim. (Jan. 2026). doi:10.1145/3788287 Just Accepted. [16] EPFL-LDS and Tune Insight SA. 2024. Lattigo v6. Online: https://github.com/t uneinsight/lattigo. [17] G. Fan, M. Zhang, F. Zheng, S. Fan, T. Zhou, X. Deng, W. Tang, L. Kong, Y. Song, and S. Yan. 2025. WarpDrive: GPU-Based Fully Homomorphic Encryption Acceleration Leveraging Tensor and CUDA Cores. In IEEE Int. Symp. on High Performance Computer Architecture (HPCA). 1187–1200. [18] Shengyu Fan, Zhiwei Wang, Weizhi Xu, Rui Hou, Dan Meng, and Mingzhe Zhang. 2023. TensorFHE: Achieving Practical Computation on Encrypted Data Using GPGPU. In IEEE International Symposium on High-Performance Computer Architecture (HPCA). 922–934. [19] Mario Garrido, Jesús Grajal, Miguel A. Sánchez, and Oscar Gustafsson. 2013. Pipelined Radix-2𝑘 Feedforward FFT Architectures. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 21, 1 (2013), 23–32. [20] Robin Geelen, Michiel Van Beirendonck, Hilder V. L. Pereira, Brian Huffman, Tynan McAuley, Ben Selfridge, Daniel Wagner, Georgios Dimou, Ingrid Verbauwhede, Frederik Vercauteren, and David W. Archer. 2022. BASALISC: Programmable Hardware Accelerator for BGV Fully Homomorphic Encryption. Cryptology ePrint Archive, Paper 2022/657. https://eprint.iacr.org/2022/657 [21] Yue Geng, Xiao Hu, and Zhongfeng Wang. 2024. GS-MDC: High-Speed and AreaEfficient Number Theoretic Transform Design. IEEE Transactions on Circuits and Systems II: Express Briefs 71, 12 (2024), 4974–4978. doi:10.1109/TCSII.2024.3430954 [22] Craig Gentry. 2009. A Fully Homomorphic Encryption Scheme. Ph. D. Dissertation. Stanford University, Stanford, CA, USA. [23] Jianbo Guo, Jiaoyang Zhu, and Hao Xiao. 2026. A High-Performance and Configurable NTT Accelerator Based on Scalable 2-D Architecture. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 34, 2 (2026), 506–518. doi:10.1109/TVLSI.2025.3606636 [24] Shai Halevi, Yuriy Polyakov, and Victor Shoup. 2019. An Improved RNS Variant of the BFV Homomorphic Encryption Scheme. In Topics in Cryptology – CT-RSA 2019, Mitsuru Matsui (Ed.). Springer International Publishing, 83–105. [25] Florian Hirner, Ahmet Can Mert, and Sujoy Sinha Roy. 2024. Proteus: A Pipelined NTT Architecture Generator. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 32, 7 (2024), 1228–1238. doi:10.1109/TVLSI.2024.3377366 [26] Dian Jiao, Xianglong Deng, Zhiwei Wang, Shengyu Fan, Yi Chen, Dan Meng, Rui Hou, and Mingzhe Zhang. 2025. Neo: Towards Efficient Fully Homomorphic Encryption Acceleration Using Tensor Core. In 52nd Annual International Symposium on Computer Architecture. 107–121. [27] Wonkyung Jung, Eojin Lee, Sangpyo Kim, Keewoo Lee, Namhoon Kim, Chohong Min, Jung Hee Cheon, and Jung Ho Ahn. 2020. HEAAN Demystified: Accelerating Fully Homomorphic Encryption Through Architecture-centric Analysis and Optimization. arXiv:2003.04510. [28] Hyeong-Ju Kang, Byung-Do Yang, and Jong-Yeol Lee. 2013. Low Complexity Twiddle Factor Multiplication with ROM Partitioning in FFT Processor. Electronics Letters 49, 9 (2013), 589–591. doi:10.1049/el.2013.0689 [29] J. Kim, W. Choi, and J. Ahn. 2024. Cheddar: A Swift Fully Homomorphic Encryption Library for CUDA GPUs. arXiv:2407.13055 (2024). [30] Jongmin Kim, Sangpyo Kim, Jaewan Choi, Jaiyoung Park, Donghwan Kim, and Jung Ho Ahn. 2023. SHARP: A Short-Word Hierarchical Accelerator for Robust and Practical Fully Homomorphic Encryption. In 50th Annual International Symposium on Computer Architecture (ISCA). [31] Jongmin Kim, Gwangho Lee, Sangpyo Kim, Gina Sohn, Minsoo Rhu, John Kim, and Jung Ho Ahn. 2022. ARK: Fully Homomorphic Encryption Accelerator with Runtime Data Generation and Inter-Operation Key Reuse. In IEEE/ACM International Symposium on Microarchitecture (MICRO). [32] Sangpyo Kim, Wonkyung Jung, Jaiyoung Park, and Jung Ho Ahn. 2020. Accelerating Number Theoretic Transformations for Bootstrappable Homomorphic Encryption on GPUs. In 2020 IEEE International Symposium on Workload Characterization (IISWC). 264–275. doi:10.1109/IISWC50251.2020.00033 [33] Sangpyo Kim, Jongmin Kim, Michael Jaemin Kim, Wonkyung Jung, John Kim, Minsoo Rhu, and Jung Ho Ahn. 2022. BTS: An Accelerator for Bootstrappable Fully Homomorphic Encryption. In Proceedings of the 49th Annual International Symposium on Computer Architecture. 711–725. [34] Sunwoong Kim, Keewoo Lee, Wonhee Cho, Yujin Nam, Jung Hee Cheon, and Rob A. Rutenbar. 2020. Hardware Architecture of a Number Theoretic Transform for a Bootstrappable RNS-based Homomorphic Encryption Scheme. In IEEE 28th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 56–64. https://ieeexplore.ieee.org/document/9114594 [35] Emre Koçer, Selim Kirbiyik, Tolun Tosun, Ersin Alaybeyoğlu, and Erkay Savaş. 2025. IO-Optimized Design-Time Configurable Negacyclic Seven-Step NTT Architecture for FHE Applications. In Proceedings of the Great Lakes Symposium

Allam et al.

on VLSI (GLSVLSI). doi:10.1145/3716368.3735514 [36] Emre Koçer, Tolun Tosun, Beren Aydoğan, Erkay Savaş, Furkan Turan, and Ingrid Verbauwhede. 2026. TP-NTT: Batch NTT Hardware with Application to Relinearization. IACR Transactions on Cryptographic Hardware and Embedded Systems 2026, 4 (2026), 705–730. doi:10.46586/tches.v2026.i4.705-730 [37] Florian Krieger, Florian Hirner, Ahmet Can Mert, and Sujoy Sinha Roy. 2024. OpenNTT: An Automated Toolchain for Compiling High-Performance NTT Accelerators in FHE. In Proceedings of the 43rd IEEE/ACM International Conference on Computer-Aided Design (ICCAD). 1–9. doi:10.1145/3676536.3697123 [38] Dilshan Kumarathunga, Qilin Hu, and Zhenman Fang. 2025. AutoNTT: Automatic Architecture Design and Exploration for Number Theoretic Transform Acceleration on FPGAs. In 2025 IEEE 33rd Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM). 1–9. doi:10.1109/FC CM62733.2025.00024 [39] Dur E Shahwar Kundi, Jose M. Bermudo Mera, Pierre-Yves Strub, and Michael Hutter. 2024. High-Performance NTT Hardware Accelerator to Support ML-KEM and ML-DSA. In Proceedings of the 2024 Workshop on Attacks and Solutions in Hardware Security (ASHES). 100–105. doi:10.1145/3689939.3695785 [40] Stefanus Kurniawan, Phap Duong-Ngoc, and Hanho Lee. 2023. Configurable Memory-Based NTT Architecture for Homomorphic Encryption. IEEE Transactions on Circuits and Systems II: Express Briefs 70, 10 (2023), 3942–3946. doi:10.1109/TCSII.2023.3289489 [41] Chulwoo Lee, Hanyoung Lee, Ardianto Satriawan, and Hanho Lee. 2024. Configurable Arithmetic Core Architecture for RNS-CKKS Homomorphic Encryption. IEEE Access PP (01 2024), 1–1. doi:10.1109/ACCESS.2024.3473903 [42] Ju-Hyung Lee, Young-Chan Jang, and Kyung-Wook Shin. 2026. A Radix-2/4/8Based Pipelined NTT/INTT Architecture for Homomorphic Encryption. IEEE Access 14 (2026), 87042–87058. doi:10.1109/ACCESS.2026.3699867 [43] Chen Liu et al. 2024. HMNTT: A Highly Efficient MDC-NTT Architecture for Privacy-preserving Applications. In Proceedings of the Great Lakes Symposium on VLSI (GLSVLSI). doi:10.1145/3649476.3658734 [44] Vadim Lyubashevsky, Chris Peikert, and Oded Regev. 2010. On Ideal Lattices and Learning with Errors over Rings. In Advances in Cryptology – EUROCRYPT 2010 (Lecture Notes in Computer Science, Vol. 6110). Springer, 1–23. doi:10.1007/978-3642-13190-5_1 [45] Rella Mareta, Ardianto Satriawan, Phap Ngoc Duong, and Hanho Lee. 2024. A Bootstrapping-Capable Configurable NTT Architecture for Fully Homomorphic Encryption. IEEE Access 12 (2024), 52911–52921. doi:10.1109/ACCESS.2024.3386 977 [46] Ahmet Can Mert, Aikata, Sunmin Kwon, Youngsam Shin, Donghoon Yoo, Yongwoo Lee, and Sujoy Sinha Roy. 2023. Medha: Microcoded Hardware Accelerator for computing on Encrypted Data. IACR Transactions on Cryptographic Hardware and Embedded Systems 2023, 1 (2023), 463–500. doi:10.46586/tches.v2023.i1.463500 [47] Ozgun Ozerk, Can Elgezen, Ahmet Can Mert, Erdinc Ozturk, and Erkay Savas. 2021. Efficient Number Theoretic Transform Implementation on GPU for Homomorphic Encryption. Cryptology ePrint Archive, Paper 2021/124. https: //eprint.iacr.org/2021/124 [48] Zaira Pindado, Thomas Spendlhofer, Mohamed Allam, Priyam Mehta, Lena Martens, and Antonio J. Peña. 2026. SoK of Private Deep Neural Network Inference with Approximate Fully Homomorphic Encryption. Cryptology ePrint Archive, Paper 2026/047. https://eprint.iacr.org/2026/047 [49] Oded Regev. 2009. On Lattices, Learning with Errors, Random Linear Codes, and Cryptography. Journal of the ACM (JACM) 56, 6 (2009), 1–40. [50] M. Sadegh Riazi, Kim Laine, Blake Pelton, and Wei Dai. 2020. HEAX: An Architecture for Computing on Encrypted Data. In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS ’20). Association for Computing Machinery, 1295–1309. doi:10.1145/3373376.3378523 [51] Nikola Samardzic, Axel Feldmann, Aleksandar Krastev, Srinivas Devadas, Ronald Dreslinski, Christopher Peikert, and Daniel Sanchez. 2021. F1: A Fast and Programmable Accelerator for Fully Homomorphic Encryption. In MICRO-54: 54th Annual IEEE/ACM International Symposium on Microarchitecture (Virtual Event, Greece) (MICRO ’21). Association for Computing Machinery, New York, NY, USA, 238–252. doi:10.1145/3466752.3480070 [52] Nikola Samardzic, Axel Feldmann, Aleksandar Krastev, Nathan Manohar, Nicholas Genise, Srinivas Devadas, Karim Eldefrawy, Chris Peikert, and Daniel Sanchez. 2022. CraterLake: A Hardware Accelerator for Efficient Unbounded Computation on Encrypted Data. In Int. Symp. Comp. Arch. [53] Kaustubh Shivdikar, Gilbert Jonatan, Evelio Mora, Neal Livesay, Rashmi Agrawal, Ajay Joshi, Jose L. Abellan, John Kim, and David Kaeli. 2022. Accelerating Polynomial Multiplication for Homomorphic Encryption on GPUs . In 2022 IEEE International Symposium on Secure and Private Execution Environment Design (SEED). IEEE Computer Society, Los Alamitos, CA, USA, 61–72. doi:10.1109/SE ED55351.2022.00013 [54] Tobias Stelzer, Patrick Karl, and Andreas Zankl. 2026. Flexible Parallel Radix-4 MDC NTT for FHE. IEEE Transactions on Circuits and Systems II: Express Briefs 73, 8 (2026), 863–867. doi:10.1109/TCSII.2026.3700928

[55] J. Takala, D. Akopian, J. Astola, and J. Saarinen. 2000. Constant Geometry Algorithm for Discrete Cosine Transform. IEEE Transactions on Signal Processing 48, 6 (2000), 1840–1843. doi:10.1109/78.845951 [56] Weihang Tan, Sin-Wei Chiu, Antian Wang, Yingjie Lao, and Keshab K. Parhi. 2024. PaReNTT: Low-Latency Parallel Residue Number System and NTT-Based Long Polynomial Modular Multiplication for Homomorphic Encryption. IEEE Transactions on Information Forensics and Security 19 (2024), 1646–1659. doi:10.1 109/TIFS.2023.3338553 [57] Cheng Wang and Mingyu Gao. 2023. SAM: A Scalable Accelerator for Number Theoretic Transform Using Multi-Dimensional Decomposition. In 2023 IEEE/ACM International Conference on Computer Aided Design (ICCAD). 1–9. doi:10.1109/IC CAD57390.2023.10323744 [58] Zeyu Wang and Makoto Ikeda. 2024. High-Throughput and Fully-Pipelined Ciphertext Multiplier for Homomorphic Encryption. IEICE Electronics Express 21, 6 (2024), 20230628. doi:10.1587/elex.21.20230628 [59] Erling H. Wold and Alvin M. Despain. 1984. Pipeline and Parallel-Pipeline FFT Processors for VLSI Implementations. IEEE Trans. Comput. C-33, 5 (1984), 414–426. [60] Zhihan Xu, Rajgopal Kannan, and Viktor K. Prasanna. 2026. HERA: A Bandwidthefficient Accelerator for Fully Homomorphic Encryption on HBM-enabled FPGA. In Proceedings of the ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA). 265–276. doi:10.1145/3748173.3779201 [61] Zhihan Xu, Tian Ye, Rajgopal Kannan, and Viktor K. Prasanna. 2025. FAST: FPGA Acceleration of Fully Homomorphic Encryption with Efficient Bootstrapping. In Proceedings of the 2025 ACM/SIGDA International Symposium on Field Programmable Gate Arrays (FPGA ’25). Association for Computing Machinery, New York, NY, USA, 115–126. doi:10.1145/3706628.3708879 [62] Yang Yang, Sanmukh R. Kuppannagari, Rajgopal Kannan, and Viktor K. Prasanna. 2022. NTTGen: A Framework for Generating Low Latency NTT Implementations on FPGA. In Proceedings of the 19th ACM International Conference on Computing Frontiers (Turin, Italy) (CF ’22). Association for Computing Machinery, New York, NY, USA, 30–39. doi:10.1145/3528416.3530225 [63] Yinghao Yang, Huaizhi Zhang, Shengyu Fan, Hang Lu, Mingzhe Zhang, and Xiaowei Li. 2023. Poseidon: Practical Homomorphic Encryption Accelerator. In 2023 IEEE International Symposium on High-Performance Computer Architecture (HPCA). 870–881. doi:10.1109/HPCA56546.2023.10070984 [64] Tian Ye, Yang Yang, Sanmukh R. Kuppannagari, Rajgopal Kannan, and Viktor K. Prasanna. 2021. FPGA Acceleration of Number Theoretic Transform. In High Performance Computing (ISC High Performance) (Lecture Notes in Computer Science). Springer. doi:10.1007/978-3-030-78713-4_6 [65] Zhaoxiang Ye, Ray C. C. Cheung, and Kai Huang. 2022. PipeNTT: A Pipelined Number Theoretic Transform Architecture. IEEE Transactions on Circuits and Systems II: Express Briefs 69, 10 (2022), 4068–4072. [66] Sungwoong Yune, Hyojeong Lee, Adiwena Putra, Hyunjun Cho, Cuong Duong Manh, Jaeho Jeon, and Joo-Young Kim. 2025. ABC-FHE: A ResourceEfficient Accelerator Enabling Bootstrappable Parameters for Client-Side Fully Homomorphic Encryption. In 62nd ACM/IEEE Design Automation Conference (DAC). [67] Moonis Amir Zaman, Muhammad Bilal Khan, Waqar Ahmad, Ayesha Khalid, and Máire O’Neill. 2026. A Lightweight and Hardware-Efficient NTT FPGA Accelerator for FHE Applications. IEEE Transactions on Circuits and Systems II: Express Briefs 73, 1 (2026), 78–82. doi:10.1109/TCSII.2025.3633181 [68] Yujia Zhai, Mohannad Ibrahim, Yiqin Qiu, Fabian Boemer, Zizhong Chen, Alexey Titov, and Alexander Lyashevsky. 2022. Accelerating Encrypted Computing on Intel GPUs. In 2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS). 705–716. doi:10.1109/IPDPS53621.2022.00074 [69] Bo Zhang, Mingzhe Zhang, and Shoumeng Yan. 2026. Binary Subscript Representation and Efficient Pipelined Number Theoretic Transform. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 45, 9 (2026), 4316–4329. doi:10.1109/TCAD.2025.3648669 [70] Ye Zhang, Shuo Wang, Xian Zhang, Jiangbin Dong, Xingzhong Mao, Fan Long, Cong Wang, Dong Zhou, Mingyu Gao, and Guangyu Sun. 2021. PipeZK: Accelerating Zero-Knowledge Proof with a Pipelined Architecture. In ACM/IEEE 48th Annual International Symposium on Computer Architecture (ISCA). [71] Yilan Zhu, Geng Yang, Xingyu Tian, Dilshan Kumarathunga, Liang Kong, Xianglong Deng, Shengyu Fan, Guang Fan, Guiming Shi, Lei Chen, Bo Zhang, Yisong Chang, Shoumeng Yan, Zhenman Fang, and Mingzhe Zhang. 2026. An Efficient and Scalable Hardware Architecture for Number Theoretic Transform on FPGA with Design Automation. In 2026 IEEE International Symposium on High Performance Computer Architecture (HPCA). doi:10.1109/HPCA68181.2026.11408615 [72] Ege Özcan and Erkay Savaş. 2023. Two Algorithms for Fast GPU Implementation of the Number Theoretic Transform. Cryptology ePrint Archive, Report 2023/1410. https://eprint.iacr.org/2023/1410 [73] Ege Özcan, Erkay Savaş, et al. 2022. Homomorphic Encryption on GPU: Optimized NTT Kernels for BFV. Cryptology ePrint Archive, Report 2022/1222. https://eprint.iacr.org/2022/1222

Related documents

Record · ID 1527829 · SHA-256 deff57b05b38a17e
Retrieved via Conceptio: every document is proof-bundled with source, license, and retrieval metadata.
Bring this data into your agent: Connect via MCP or API · 20 free credits to start · no card required
Read the Docs → · View CLI source on GitHub · Conceptio Open Knowledge Archive