# One-Time Programs made Practical

**Authors:** Lianying Zhao, Joseph I. Choi, Didem Demirag, Kevin R. B. Butler,, Mohammad Mannan, Erman Ayday, Jeremy Clark

arXiv: 1907.00935 · 2019-07-02

## TL;DR

This paper demonstrates practical implementations of one-time programs using modern CPU Trusted Execution Environments, bridging the gap between theoretical constructs and real-world applications.

## Contribution

It introduces two TEE-based systems for OTPs, one enforcing single execution directly and the other via garbled circuits, making OTPs feasible without custom hardware.

## Key findings

- First system enforces one-timeness directly within TEE.
- Second system uses garbled circuits to restrict input usage.
- Performance varies based on input sizes for each approach.

## Abstract

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.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1907.00935/full.md

## Figures

6 figures with captions in the complete paper: https://tomesphere.com/paper/1907.00935/full.md

## References

72 references — full list in the complete paper: https://tomesphere.com/paper/1907.00935/full.md

---
Source: https://tomesphere.com/paper/1907.00935