1. A computer-implemented method for using searchable encryption to query a database storing encrypted data, the method being executed using one or more processors and comprising: executing, by the one or more processors, at least a portion of a searchable encryption scheme that provides an asymptotically optimal, sub-linear search time and comprises probabilistic operations to generate a set of search indices and a search token; receiving, by the one or more processors, the set of search indices; receiving, by the one or more processors, the search token, and in response: searching, by the one or more processors, at least, one search index of the set of search indices based on the search token, and determining, by the one or more processors, that the at least one search index corresponds to an initial setup protocol, wherein the at least one search index comprises an empty table that is absent an entry and is absent a search history of previously submitted search tokens corresponding to the search token, and in response, receiving one or more identifiers, each identifier being associated with a respective ciphertext comprising an access pattern that is determined to be responsive to the search token, and updating the at least one search index to comprise the entry based on the search token and the one or more identifiers and to comprise the search history of the search token by using an inverted index for the search token; and transmitting, by the one or more processors, search results, the search results comprising the one or more ciphertexts that are determined to be responsive to the search token.
6. The method of claim 1 , wherein the search token comprises an encrypted keyword.