Abstract: The present disclosure is directed towards a system, method, and computer readable storage medium for searchable encryption. A plurality of search terms are extracted from at least a part of a data structure. A keyed-hash value for each search term is calculated and stored in a list. The value of a bit in a predetermined position within each keyed-hash value is examined. If the value of the bit is a first value for ? of the keyed-hash values and a second value for ? of the keyed-hash values, wherein ? is a number greater or equal to two and the first value is different to the second value, then the set of keyed-hash values is split into two lists. Each list is assigned a search token value.