1. A method for allowing a user access to a unique data subset of a database, the method comprising: partitioning the database into segments; associating a prime number with each segment in the database to derive a prime set; deriving an integer modulus; choosing a random value; assigning a segment key to each segment in the database, each segment key being a function of the prime subset, the random value and the integer modulus; encrypting each segment with the associated segment key to derive an encrypted database; identifying prime numbers associated with the segments in the unique data subset as a prime subset; identifying prime numbers in the prime set that are not included in the prime subset as a complement prime subset; raising the random value to the power, modulo the modulus, of the product of all primes in the complement prime subset to generate a compressed key; and wherein the user can derive each segment key associated with the data subset from the compressed key and decrypt each segment of the unique data subset to access the unique data subset.