Research Article

Privacy-Preserving Restricted Boltzmann Machine

Algorithm 1

Securely computing the sigmoid function [12].
Initialize
Step 1.
 Party first generates a random number and computes for each , is the possible inputs of Party .
 We define , is the plain text. Party encrypts each using the ElGamal scheme and gets ,
 where each is a new random number. Party sends each in the increasing order of .
Step 2.
 Party picks , rerandomizes it and sends back to Party ,
 where , and is only known to Party .
Step 3.
 Party partially decrypts and sends the partially decrypted message to Party .
Step 4.
 Party finally decrypts the message (by doing partial decryption on the already partially decrypted message)
 to get . Note that is only known to Party and is only known to Party .
 Furthermore, .