Paper 2017/1157

ARM2GC: Succinct Garbled Processor for Secure Computation

Ebrahim M Songhori, M Sadegh Riazi, Siam U Hussain, Ahmad-Reza Sadeghi, and Farinaz Koushanfar


We present ARM2GC, a novel secure computation framework based on Yao’s Garbled Circuit (GC) protocol and the ARM processor. It allows users to develop privacy-preserving applications using standard high-level programming languages (e.g., C) and compile them using off-the-shelf ARM compilers (e.g., gcc-arm). The main enabler of this framework is the introduction of Skip-Gate, an algorithm that dynamically omits the communication and encryption cost of the gates whose outputs are independent of the private data. SkipGate greatly enhances the performance of ARM2GC by omitting costs of the gates associated with the instructions of the compiled binary, which is known by both parties involved in the computation. Our evaluation on benchmark functions demonstrates that ARM2GC not only outperforms the current GC frameworks that support high-level languages, it also achieves efficiency comparable to the best prior solutions based on hardware description languages. Moreover, in contrast to previous high-level frameworks with domain-specific languages and customized compilers, ARM2GC relies on standard ARM compiler which is rigorously verified and supports programs written in the standard syntax.

Note: Update results and add comparison to newer related work

Available format(s)
Publication info
Preprint. MINOR revision.
cryptographic protocolsPrivacy-Preserving ComputationYao’s Garbled CircuitSecure ProcessorARM
Contact author(s)
siamumar @ ucsd edu
2019-02-06: last of 2 revisions
2017-11-29: received
See all versions
Short URL
Creative Commons Attribution


      author = {Ebrahim M Songhori and M Sadegh Riazi and Siam U Hussain and Ahmad-Reza Sadeghi and Farinaz Koushanfar},
      title = {ARM2GC: Succinct Garbled Processor for Secure Computation},
      howpublished = {Cryptology ePrint Archive, Paper 2017/1157},
      year = {2017},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.