# Secure Remote Storage of Logs with Search Capabilities
## 3 Related Work
The symmetric key scheme, inspired by Reference [14, 15], indexes each log entry with the generation of a random symmetric key, that shall be used only for the encryption of each entry. Then, the set of keywords is extracted from the log record. For each keyword \(k_{i}\), a pseudorandom function is applied having as input \(k_{i}\) and a secret \(S\). The result is then used as input for another pseudorandom function, together with \(r\). The output of this second function is XORed with the key \(K\) and a flag, a constant bit string of length \(l\), which yields the final keyword value \(c_{i}\). The asymmetric scheme is based on Identity-Based Encryption (IBE) [80]. [PERSON] et al. [81] proposed the use of a partial disclosure scheme. Two key pairs \((P_{0},S_{0}),(P_{1},S_{1})\) are generated and used to compute a log record for both searching and disclosure. The scheme signs each keyword with key \(S_{0}\). Then, concatenate the signature with the log record unique identifier \(I_{i}\), encrypting those values together with the public key \(P_{1}\). The log record is also encrypted with a symmetric key algorithm. After some experiments, [PERSON] noticed that this scheme is inefficient. The use of an encrypted inverted index was then considered to reduce search time. [PERSON]'s inverted index consists of a linear list, on which each list item is composed by the log record identifier and a pointer to the next list item. To assure privacy, these list items are encrypted. In following work, they proposed an extended solution [82] that supports Boolean queries based on BF. It starts with the generation of all the possible combinations of all keywords that exist in each log entry. For instance, for the keywords \"A\", \"B\", and \"C\", the possible combinations are \"A\", \"B\", \"C\", \"A and B\", \"A and C\", \"B and C\", and \"A and B\". Next, a normalization is applied to the patterns, making the order of the keywords on the query not important (e.g., \"A and B\" is the same as \"B and A\"). The normalized patterns, treated as individual keywords, are encrypted with \(S_{0}\) and concatenated with \(I_{i}\). The final value is added to the BF. [PERSON] et al. [83] proposed a scheme to build an audit log that should guarantee tamper resistance, verification capability, logging speed, search speed and correctness of the search results. They propose the use of a record authenticator generated with hash functions. The schema is focused on SQL commands and starts with the generation of an asymmetric key pair \((P_{0},S_{0})\) and the sequential publication of the public key \(P_{0}\). Then, the extraction of keywords from SQL queries is performed. Five groups \(G_{i}\) of distinct types of keywords are created. The first group is reserved for keywords of the \"SELECT\" part, the second for keywords of the \"FROM\" clause, the third for keywords of the \"WHERE\" condition, the fourth group is dedicated to the values of that condition and the fifth, and last group, is used for metadata, such as the time when the query was executed or by whom. Following the creation of such groups, the record authenticator is generated with the use of three hash functions and a dedicated hash space \(H\), which consists on a string of bits, set initially to zero. In order to enhance the security of the scheme, each keyword, prior to its hash calculation, is concatenated with key \(K\). This assures that the same keyword, even on the same group, for two different log records hashes to different places of \(H\). [PERSON] addresses log privacy [84, 85] with focus on devices with low resources. His solution, inspired by Reference [62], starts on the device, which is expected to apply the necessary cryptographic techniques to safeguard the privacy, integrity and uniqueness of its log file. Privacy is achieved by encrypting each log entry with a symmetric encryption algorithm.