Paper 2022/322

SecFloat: Accurate Floating-Point meets Secure 2-Party Computation

Deevashwer Rathee, Anwesh Bhattacharya, Rahul Sharma, Divya Gupta, Nishanth Chandran, and Aseem Rastogi


We build a library SecFloat for secure 2-party computation (2PC) of 32-bit single-precision floating-point operations and math functions. The existing functionalities used in cryptographic works are imprecise and the precise functionalities used in standard libraries are not crypto-friendly, i.e., they use operations that are cheap on CPUs but have exorbitant cost in 2PC. SecFloat bridges this gap with its novel crypto-friendly precise functionalities. Compared to the prior cryptographic libraries, SecFloat is up to six orders of magnitude more precise and up to two orders of magnitude more efficient. Furthermore, against a precise 2PC baseline, SecFloat is three orders of magnitude more efficient. The high precision of SecFloat leads to the first accurate implementation of secure inference. All prior works on secure inference of deep neural networks rely on ad hoc float-to-fixed converters. We evaluate a model where the fixed-point approximations used in privacy-preserving machine learning completely fail and floating-point is necessary. Thus, emphasizing the need for libraries like SecFloat.

Available format(s)
Cryptographic protocols
Publication info
Published elsewhere. Major revision. IEEE Security and Privacy 2022
secure two-party computationfloating-pointprivacy-preserving machine learningsecure inferenceprivacy-preserving proximity testing
Contact author(s)
deevashwer @ berkeley edu
rahsha @ microsoft com
divya gupta @ microsoft com
2022-03-08: received
Short URL
Creative Commons Attribution


      author = {Deevashwer Rathee and Anwesh Bhattacharya and Rahul Sharma and Divya Gupta and Nishanth Chandran and Aseem Rastogi},
      title = {SecFloat: Accurate Floating-Point meets Secure 2-Party Computation},
      howpublished = {Cryptology ePrint Archive, Paper 2022/322},
      year = {2022},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.