An Obfuscating C Compiler for Encrypted Computing
Abstract
This paper describes an `obfuscating' C compiler for encrypted computing. The context consists of (i) a processor that `works encrypted', taking in encrypted inputs and producing encrypted outputs while the data remains in encrypted form throughout processing, and (ii) machine codes that support arbitrary interpretations of the encrypted input and outputs from each instruction, as far as an adversary who does not know the encryption can tell. The compiler on each recompilation of the same source generates object code of the same form for which the runtime traces have the same form, but the data beneath the encryption may arbitrarily differ from nominal at each point in the trace, independently so far as the laws of computation allow.
Keywords
Cite
@article{arxiv.2112.13672,
title = {An Obfuscating C Compiler for Encrypted Computing},
author = {Peter Breuer},
journal= {arXiv preprint arXiv:2112.13672},
year = {2021}
}
Comments
Begun Mar 16 2018, submitted May 28 2018, SECRYPT 2018, accepted, final copy Jun 19 2018, withdrawn for conflict of dates. The paper extends to arrays of arrays one at SECRYPT 2017 that compiled arrays (difficulty is pointers). Rewritten for DSN 2018 (1902.06146) and rejected! (it added ideal criteria for security that a source language translator cannot satisfy). Here for historical reference. arXiv admin note: text overlap with arXiv:1902.06146