Homomorphic Encryption (HE) is one of the most promising post-quantum cryptographic schemes which enable privacy-preserving computation on servers. However, noise accumulates as we perform operations on HE-encrypted data, restricting the number of possible operations. Fully HE (FHE) removes this restriction by introducing the bootstrapping operation, which refreshes the data; however, FHE schemes are highly memory-bound. Bootstrapping, in particular, requires loading GBs of evaluation keys and plaintexts from off-chip memory, which makes FHE acceleration fundamentally bottlenecked by the off-chip memory bandwidth. We propose ARK, an Accelerator for FHE with Runtime data generation and inter-operation Key reuse. ARK enables practical FHE workloads with a novel algorithm-hardware codesign to accelerate bootstrapping. We first eliminate the off-chip memory bandwidth bottleneck through runtime data generation and inter-operation key reuse. This approach enables ARK to fully exploit on-chip memory by a substantial reduction in the working set size. On top of such algorithmic innovations, we build ARK microarchitecture that minimizes on-chip data movement through an efficient, alternating data distribution policy based on the data access patterns and a streamlined dataflow organization of the tailored functional units - including base conversion, number-theoretic transform, and automorphism units. Overall, our co-design effectively handles the heavy computation and data movement overheads of FHE, drastically reducing the cost of HE operations including bootstrapping.
翻译:智能加密(HH)是最有希望的后分子加密(HE)方案之一,它使得服务器上能够进行隐私保存计算。然而,随着我们使用高精度加密数据,限制可能的操作数量,噪音会累积起来。全面HE(FHE)通过引入靴式操作,取消这一限制,从而更新数据;然而,FHE(HHE)方案具有高度的内存性。特别是,启动需要从离芯存储器中装入评价键和平文本的GB,这使得FHE加速从根本上受到离芯存储带宽的瓶颈。我们提议,ARK(FHE)是具有运行时间数据生成和操作间键再利用功能自动加密数据的加速器,我们用新的算法硬软件代码来完成实际的FHEHE工作量,我们首先通过运行时间数据生成和操作间键再利用来消除离芯存储带带带带宽的带宽。这一方法使ARK能够通过大幅降低工作设定的尺寸,包括运行时空内存储机的机存储机存储机存储机存储机存储机的机。在这种系统上,在这种操作上的移动上,在这种精度上,在这种精度上可以有效地转换结构结构上,在结构上进行数据转换上,在结构上,在结构结构结构上,在结构上,在结构上,在结构上,包括不断变换机尾部内部数据流数据流数据流数据流数据流中进行数据流中进行数据流中进行数据流中,在数据流流数据流中,在数据流中进行数据流中进行数据流中进行数据流中进行数据流中进行数据流。