Paper 2017/396

SecureML: A System for Scalable Privacy-Preserving Machine Learning

Payman Mohassel and Yupeng Zhang


Machine learning is widely used in practice to produce predictive models for applications such as image processing, speech and text recognition. These models are more accurate when trained on large amount of data collected from different sources. However, the massive data collection raises privacy concerns. In this paper, we present new and efficient protocols for privacy preserving machine learning for linear regression, logistic regression and neural network training using the stochastic gradient descent method. Our protocols fall in the two-server model where data owners distribute their private data among two non-colluding servers who train various models on the joint data using secure two-party computation (2PC). We develop new techniques to support secure arithmetic operations on shared decimal numbers, and propose MPC-friendly alternatives to nonlinear functions such as sigmoid and softmax that are superior to prior work. We implement our system in C++. Our experiments validate that our protocols are several orders of magnitude faster than the state of the art implementations for privacy preserving linear and logistic regressions, and scale to millions of data samples with thousands of features. We also implement the first privacy preserving system for training neural networks.

Note: Fix a typo for equations in Section 3 and 4.

Available format(s)
Cryptographic protocols
Publication info
Published elsewhere. Minor revision. IEEE Symposium on Security and Privacy 2017
Privacy-preserving machine learningsecure computation.
Contact author(s)
zhangyp @ umd edu
2017-06-07: revised
2017-05-09: received
See all versions
Short URL
Creative Commons Attribution


      author = {Payman Mohassel and Yupeng Zhang},
      title = {SecureML: A System for Scalable Privacy-Preserving Machine Learning},
      howpublished = {Cryptology ePrint Archive, Paper 2017/396},
      year = {2017},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.