A survey server for managing a query for information from a requester server , the requester server holding a first share of a private key, the survey server holding a second share of the private key, the private key being associated with a public key in an asymmetric cryptosystem, the survey server comprising: a transceiver configured to: receive an encrypted query from the requester server, the query being encrypted using the public key; forward the query from the requester server to at least one data holding entity; in response to the forwarding of the query, receive a plurality of comparison responses from the at least one data holding entity, each comparison response being generated by a private comparison protocol that compares the encrypted query with encrypted data of the at least one data holding entity, the encrypted data having been encrypted using the public key; forward the plurality of comparison responses to the requester server; and receive a randomized array including the plurality of comparison responses, each comparison response having been partially decrypted with the first share of the private key and placed in the array in a randomized order; and a processor configured to: decrypt the randomized array using the second share of the private key; determine at least one result of the query based at least in part on the decrypted randomized array; and instruct the transceiver to send the at least one result of the query to the requester server. a transceiver configured to: receive an encrypted query from the requester server, the query being encrypted using the public key; forward the query from the requester server to at least one data holding entity; in response to the forwarding of the query, receive a plurality of comparison responses from the at least one data holding entity, each comparison response being generated by a private comparison protocol that compares the encrypted query with encrypted data of the at least one data holding entity, the encrypted data having been encrypted using the public key; forward the plurality of comparison responses to the requester server; and receive a randomized array including the plurality of comparison responses, each comparison response having been partially decrypted with the first share of the private key and placed in the array in a randomized order; and receive an encrypted query from the requester server, the query being encrypted using the public key; forward the query from the requester server to at least one data holding entity; in response to the forwarding of the query, receive a plurality of comparison responses from the at least one data holding entity, each comparison response being generated by a private comparison protocol that compares the encrypted query with encrypted data of the at least one data holding entity, the encrypted data having been encrypted using the public key; forward the plurality of comparison responses to the requester server; and receive a randomized array including the plurality of comparison responses, each comparison response having been partially decrypted with the first share of the private key and placed in the array in a randomized order; and a processor configured to: decrypt the randomized array using the second share of the private key; determine at least one result of the query based at least in part on the decrypted randomized array; and instruct the transceiver to send the at least one result of the query to the requester server. decrypt the randomized array using the second share of the private key; determine at least one result of the query based at least in part on the decrypted randomized array; and instruct the transceiver to send the at least one result of the query to the requester server. <EOS>