Abstract: In some embodiments, an apparatus includes a memory and a processor. The processor is configured to receive an index file that associates a characteristic in a set of documents with a set of information associated with the characteristic in the set of documents. The processor is further configured to generate an index identifier associated with the index file and calculate a set of pseudorandom logical block identifiers associated with a set of storage locations of a database based on the index identifier. The processor is then configured to parse the index file into a set of index data portions and send a signal to the database to write each index data portion from the set of index data portions at a different storage location within the database as indicated by a different identifier from the set of pseudorandom logical block identifiers.
Abstract: In some embodiments, an apparatus includes a processor configured to receive an instruction to read a data file within a database and an identifier associated with the data file. The processor is also configured to identify, based on the identifier, a set of logical block identifiers associated with a set of storage locations of the database, and retrieve data stored at each storage location from the set of storage locations using the set of logical block identifiers. The processor is then configured to identify, based on the data stored at each storage location from the set of storage locations, a subset of storage locations from the set of storage locations. The data stored at each storage location from the subset of storage locations pertain to the data file. The processor is configured to compile the data file based on the data within the subset of storage locations.
Abstract: In some embodiments, a method includes receiving, at an encrypted sharing server and from a source compute device, a share request to share first encrypted index data with a destination compute device. The method includes defining a data record including (1) information identifying the destination compute device and (2) a first set of logical block identifiers. The first set of logical block identifiers is generated based on unencrypted index data associated with the first encrypted index data and associated with a first set of storage locations. Each storage location from the first set of storage locations stores at least one index entry from a first set of index entries of the first encrypted index data. The method further includes receiving a search request associated with a search string and sending a signal to cause a subset of index entries to be sent to a destination compute device.
Abstract: In some embodiments, an apparatus includes a memory and a processor. The processor is configured to receive an index file that associates a characteristic in a set of documents with a set of information associated with the characteristic in the set of documents. The processor is further configured to generate an index identifier associated with the index file and calculate a set of pseudorandom logical block identifiers associated with a set of storage locations of a database based on the index identifier. The processor is then configured to parse the index file into a set of index data portions and send a signal to the database to write each index data portion from the set of index data portions at a different storage location within the database as indicated by a different identifier from the set of pseudorandom logical block identifiers.
Abstract: In some embodiments, an apparatus includes a processor configured to receive an instruction to read a data file within a database and an identifier associated with the data file. The processor is also configured to identify, based on the identifier, a set of logical block identifiers associated with a set of storage locations of the database, and retrieve data stored at each storage location from the set of storage locations using the set of logical block identifiers. The processor is then configured to identify, based on the data stored at each storage location from the set of storage locations, a subset of storage locations from the set of storage locations. The data stored at each storage location from the subset of storage locations pertain to the data file. The processor is configured to compile the data file based on the data within the subset of storage locations.