CRJul 1, 2019

One-Time Programs made Practical

arXiv:1907.00935v110 citations
AI Analysis

This work addresses the challenge of implementing secure one-time programs for applications like secure computation, moving beyond theoretical or impractical methods.

The paper tackles the problem of making one-time programs practical by using Trusted Execution Environments (TEEs) in modern CPUs, achieving implementations that avoid custom hardware and unrealistic assumptions, with two system flavors optimized for different input size scenarios.

A one-time program (OTP) works as follows: Alice provides Bob with the implementation of some function. Bob can have the function evaluated exclusively on a single input of his choosing. Once executed, the program will fail to evaluate on any other input. State-of-the-art one-time programs have remained theoretical, requiring custom hardware that is cost-ineffective/unavailable, or confined to adhoc/unrealistic assumptions. To bridge this gap, we explore how the Trusted Execution Environment (TEE) of modern CPUs can realize the OTP functionality. Specifically, we build two flavours of such a system: in the first, the TEE directly enforces the one-timeness of the program; in the second, the program is represented with a garbled circuit and the TEE ensures Bob's input can only be wired into the circuit once, equivalent to a smaller cryptographic primitive called one-time memory. These have different performance profiles: the first is best when Alice's input is small and Bob's is large, and the second for the converse.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes