Claims Analysis
Total Claims: 13
Claim 1
Independent Claim
246 words
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.
Claim 2
Independent Claim
246 words
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.
Claim 3
Independent Claim
173 words
A method for a providing a single database to multiple users so that each user can only access a data subset of 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 utilise the extracted set of data keys to access a unique data subset of the database to which the user has permission to access; wherein the formulating a single key for each user further comprises: associating a prime number with each database segment; for each user, deriving a complement prime subset that includes the prime numbers associated with database segments that the user is not entitled to access; and deriving the single key by raising a random value, modulo the modulus, to the power of a product of all prime number in the complement prime subset.
Claim 4
Independent Claim
173 words
A method for a providing a single database to multiple users so that each user can only access a data subset of 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 utilise the extracted set of data keys to access a unique data subset of the database to which the user has permission to access; wherein the formulating a single key for each user further comprises: associating a prime number with each database segment; for each user, deriving a complement prime subset that includes the prime numbers associated with database segments that the user is not entitled to access; and deriving the single key by raising a random value, modulo the modulus, to the power of a product of all prime number in the complement prime subset.
Claim 5
Independent Claim
160 words
A method for decrypting a in a subset of an encrypted database that is logically divided into multiple segments, each segment being encrypted with a unique segment key, the method comprising: extracting a key set from a single key, each key in the key set being uniquely associated with one segment of the data subset of the database; and decrypting each segment of the data subset with a segment key from the key set; wherein extracting the key set further comprises: identifying a prime subset that includes one prime number for each segment of the data subset, one prime number being uniquely associated with one segment of the data subset; identifying an integer modulus; for each segment in the data subset determining a segment key for the segment by raising the single key, modulo the modulus, to a power of a product of all primes in the prime subset except the prime number that is uniquely associated with the segment.
Claim 6
Independent Claim
160 words
A method for decrypting a in a subset of an encrypted database that is logically divided into multiple segments, each segment being encrypted with a unique segment key, the method comprising: extracting a key set from a single key, each key in the key set being uniquely associated with one segment of the data subset of the database; and decrypting each segment of the data subset with a segment key from the key set; wherein extracting the key set further comprises: identifying a prime subset that includes one prime number for each segment of the data subset, one prime number being uniquely associated with one segment of the data subset; identifying an integer modulus; for each segment in the data subset determining a segment key for the segment by raising the single key, modulo the modulus, to a power of a product of all primes in the prime subset except the prime number that is uniquely associated with the segment.
Claim 7
Dependent Claim
44 words
The method as recited in claim 3 , wherein the segment key for each segment is a preliminary segment key, and wherein the method further comprises, for each segment, applying a fixed deterministic function to the preliminary segment key to derive the segment key.
Claim 8
Independent Claim
355 words
A method for distributing a first data subset of a database to a first user and a second data subset of a data to a second user, the first user being excluded from accessing the second data subset and the second user being excluded from accessing the first data subset, the method comprising: logically dividing the database into multiple segments, the first user being entitled to a plurality of segments that make up the second data subset; encrypting each segment of the database to derive an encrypted database; deriving a first key from which the first user can derive a set of segment keys, each segment key being uniquely associated with one segment in the first data subset; deriving a second key from which the second user can derive a set of segment keys, each segment key being uniquely associated with one segment in the second data subset; distributing the encrypted database and the first key to the first user; distributing the encrypted database and the second key to the second user; deriving a prime set that includes a plurality of prime numbers, each prime number being uniquely associated with one of the segments of the database; deriving an integer modulus that is a product of two or more prime numbers; deriving an integer modulus that is a product of two or more prime numbers; deriving a random value that is greater than one but less than one less than the modulus; for each segment, deriving a segment key by raising the random value, modulo the modulus, to a power of a product of all prime numbers in the prime set except the prime number associated with the segment; and for each segment, encrypting the segment using the segment key associated with the segment; and wherein the first user can gain access to the first data subset from the first key but cannot access any segment that is not included in the first data subset and the second user can gain access to the second data subset from the second key, but cannot access any segment that is not included in the second data subset.
Claim 9
Independent Claim
355 words
A method for distributing a first data subset of a database to a first user and a second data subset of a data to a second user, the first user being excluded from accessing the second data subset and the second user being excluded from accessing the first data subset, the method comprising: logically dividing the database into multiple segments, the first user being entitled to a plurality of segments that make up the second data subset; encrypting each segment of the database to derive an encrypted database; deriving a first key from which the first user can derive a set of segment keys, each segment key being uniquely associated with one segment in the first data subset; deriving a second key from which the second user can derive a set of segment keys, each segment key being uniquely associated with one segment in the second data subset; distributing the encrypted database and the first key to the first user; distributing the encrypted database and the second key to the second user; deriving a prime set that includes a plurality of prime numbers, each prime number being uniquely associated with one of the segments of the database; deriving an integer modulus that is a product of two or more prime numbers; deriving an integer modulus that is a product of two or more prime numbers; deriving a random value that is greater than one but less than one less than the modulus; for each segment, deriving a segment key by raising the random value, modulo the modulus, to a power of a product of all prime numbers in the prime set except the prime number associated with the segment; and for each segment, encrypting the segment using the segment key associated with the segment; and wherein the first user can gain access to the first data subset from the first key but cannot access any segment that is not included in the first data subset and the second user can gain access to the second data subset from the second key, but cannot access any segment that is not included in the second data subset.
Claim 10
Dependent Claim
33 words
The method as recited in claim 5 , further comprising creating an index to the database segments, the index comprising a series of ordinals, each ordinal corresponding to one segment in the database.
Claim 11
Dependent Claim
34 words
The method as recited in claim 5 , further comprising applying a fixed deterministic function to each segment key prior to using the segment key to encrypt the segment associated with the segment key.
Claim 12
Independent Claim
329 words
A method for distributing a first data subset of a database to a first user and a second data subset of a database to a second user, the first user being excluded from accessing the second data subset and the second user being excluded from accessing the first data subset, the method comprising; logically dividing the database into multiple segments, the first user being entitled to a plurality of segments that make up the second data subset; encrypting each segment of the database to derive an encrypted database; deriving a first key from which the first user can derive a set of segment keys each segment key being uniquely associated with one segment in the first data subset; deriving a second key from which the second user can derive a set of segment keys, each segment key being uniquely associated with one segment in the second data subset; distributing the encrypted database and the first key to the first user; distributing the encrypted database and the second key to the second user; deriving a first key further comprises: determining a first complement prime set that includes prime numbers that are not associated with any segment in the first data subset; and raising a random value, modulo the modulus to a power of a product of the first complement prime set; deriving the second key further comprises: determining a second complement prime set that includes prime numbers that are not associated with any segments in the second data subset; and raising a random value, modulo the modulus to a power of a product of the second complement prime set; and wherein the first user can gain access to the first data subset from the first key but cannot access any segment that is not included in the first data subset, and the second user can gain access to the second data subset from the second key but cannot access any segment that is not included in the second data subset.
Claim 13
Independent Claim
329 words
A method for distributing a first data subset of a database to a first user and a second data subset of a database to a second user, the first user being excluded from accessing the second data subset and the second user being excluded from accessing the first data subset, the method comprising; logically dividing the database into multiple segments, the first user being entitled to a plurality of segments that make up the second data subset; encrypting each segment of the database to derive an encrypted database; deriving a first key from which the first user can derive a set of segment keys each segment key being uniquely associated with one segment in the first data subset; deriving a second key from which the second user can derive a set of segment keys, each segment key being uniquely associated with one segment in the second data subset; distributing the encrypted database and the first key to the first user; distributing the encrypted database and the second key to the second user; deriving a first key further comprises: determining a first complement prime set that includes prime numbers that are not associated with any segment in the first data subset; and raising a random value, modulo the modulus to a power of a product of the first complement prime set; deriving the second key further comprises: determining a second complement prime set that includes prime numbers that are not associated with any segments in the second data subset; and raising a random value, modulo the modulus to a power of a product of the second complement prime set; and wherein the first user can gain access to the first data subset from the first key but cannot access any segment that is not included in the first data subset, and the second user can gain access to the second data subset from the second key but cannot access any segment that is not included in the second data subset.