Patent ID: 6886098

Claim:
A method for providing a single database to multiple users so that each user can only access a data subset of the database that is unique to the user, the method comprising: logically dividing the database into segments; encrypting each segment of the database; distributing the encrypted database to multiple users; formulating a single key for each user, wherein each user can extract a set of data keys from the single key; and wherein each user can utilize the extracted set of data keys to access unique data subset of the database to which the user has permission to access; wherein the encrypting each segment of the database further comprises: deriving a prime subset that includes the prime numbers associated with the data segments of the data subset; deriving a complement prime subset that includes the prime numbers associated with the data segments that are not included in the data subset; deriving an interior modules as a product of two prime numbers; choosing a random value; for each segment, deriving a preliminary key by raising the random value to a power, modulo the modulus of the product of all primes in the prime set except for the prime associated with a segment for which a segment key is being calculated; for each segment, deriving a final key by applying a fixed deterministic function to the preliminary key associated with the segment; and for each segment, encrypting the segment with the final key associated with the segment.