  Privacy-preserving solutions enable companies to offload confidential data to
third-party services while fulfilling their government regulations. To
accomplish this, they leverage various cryptographic techniques such as
Homomorphic Encryption (HE), which allows performing computation on encrypted
data. Most HE schemes work in a SIMD fashion, and the data packing method can
dramatically affect the running time and memory costs. Finding a packing method
that leads to an optimal performant implementation is a hard task.
  We present a simple and intuitive framework that abstracts the packing
decision for the user. We explain its underlying data structures and optimizer,
and propose a novel algorithm for performing 2D convolution operations. We used
this framework to implement an HE-friendly version of AlexNet, which runs in
three minutes, several orders of magnitude faster than other state-of-the-art
solutions that only use HE.
