1. A method for computing a collective noisy result, comprising: receiving a query; applying the query to a subset of data to obtain a subset result; dividing the subset result into one or more shares; participating in combining shares of subset results to obtain a collective result; generating random bits; participating in combining the random bits, wherein a combination of random bits is used to generate noise, and said noise is combined with the collective result to obtain a collective noisy result.