Secure Computation (SC) is a family of cryptographic primitives for computing on encrypted data in single-party and multi-party settings. SC is being increasingly adopted by industry for a variety of applications. A significant obstacle to using SC for practical applications is the memory overhead of the underlying cryptography. We develop MAGE, an execution engine for SC that efficiently runs SC computations that do not fit in memory. We observe that, due to their intended security guarantees, SC schemes are inherently oblivious -- their memory access patterns are independent of the input data. Using this property, MAGE calculates the memory access pattern ahead of time and uses it to produce a memory management plan. This formulation of memory management, which we call memory programming, is a generalization of paging that allows MAGE to provide a highly efficient virtual memory abstraction for SC. MAGE outperforms the OS virtual memory system by up to an order of magnitude, and in many cases, runs SC computations that do not fit in memory at nearly the same speed as if the underlying machines had unbounded physical memory to fit the entire computation.
翻译:安全计算(SC)是一组用于计算单方和多方环境下加密数据的加密原始密码(CSC),正越来越多地被行业采用,用于各种应用。在实际应用中,使用SC的一个重大障碍是基础加密的内存管理。我们开发了MAGE,这是SC的一个执行引擎,高效运行与记忆不相容的SC计算。我们注意到,由于其预期的安全保障,SC计划本质上是隐蔽的 -- 它们的内存存存访问模式与输入数据是独立的。使用这个属性,MAGE计算了时间之前的内存访问模式,并使用它来生成一个记忆管理计划。我们称之为内存程序,这种内存管理模式是使MAGE能够为SC提供高效的虚拟记忆抽象化。MAGE将OS虚拟内存系统比成一个数量级的系统,在许多情况下,在记忆中不匹配的SC计算速度几乎与基础机器的内存与整个计算时的相同。