Title
Porcupine: a synthesizing compiler for vectorized homomorphic encryption
Abstract
ABSTRACTHomomorphic encryption (HE) is a privacy-preserving technique that enables computation directly on encrypted data. Despite its promise, HE has seen limited use due to performance overheads and compilation challenges. Recent work has made significant advances to address the performance overheads but automatic compilation of efficient HE kernels remains relatively unexplored. This paper presents Porcupine, an optimizing compiler that generates vectorized HE code using program synthesis. HE poses three major compilation challenges: it only supports a limited set of SIMD-like operators, it uses long-vector operands, and decryption can fail if ciphertext noise growth is not managed properly. Porcupine captures the underlying HE operator behavior so that it can automatically reason about the complex trade-offs imposed by these challenges to generate optimized, verified HE kernels. To improve synthesis time, we propose a series of optimizations including a sketch design tailored to HE to narrow the program search space. We evaluate Porcupine using a set of kernels and show speedups of up to 52% (25% geometric mean) compared to heuristic-driven hand-optimized kernels. Analysis of Porcupine’s synthesized code reveals that optimal solutions are not always intuitive, underscoring the utility of automated reasoning in this domain.
Year
DOI
Venue
2021
10.1145/3453483.3454050
PLDI
Keywords
DocType
Citations 
homomorphic encryption, vectorization, program synthesis
Conference
0
PageRank 
References 
Authors
0.34
0
6
Name
Order
Citations
PageRank
Meghan Cowan100.34
Deeksha Dangwal200.34
Armin Alaghi338129.52
Caroline Trippel4365.69
Vincent T. Lee500.34
Brandon Reagen621013.90