1. A computer-executable method, comprising: receiving, at a computing system, multiple encrypted datasets from multiple clients, wherein an encrypted dataset associated with a client is encrypted from a corresponding plaintext dataset using a unique, client-specific encryption key, wherein the client-specific encryption key is a public key selected from a public/private key pair; re-encrypting the multiple encrypted datasets to a target format, comprising, receiving a set of re-encryption keys, wherein a particular re-encryption key corresponding to the client is used to re-encrypt the encrypted dataset associated with the client, wherein the re-encryption key corresponding to the client is generated using a private key selected from the public/private key pair and a target public key published by a trusted third party, wherein the target public key corresponds to a target private key and each client receives a share of the target private key; evaluating a function based on the re-encrypted multiple datasets to produce an evaluation result; and sending the evaluation result to the multiple clients, which are configured to cooperatively decrypt the evaluation result to obtain a plaintext evaluation result using shares of the target private key.