# Technique for Searching Data in a Cryptographically Protected SQL Database
The problem of searching data In encrypted databases has aroused great interest both in the scientific community and in industry [9]. To solve the problem of providing a search in cryptographically protected databases, relevant studies were carried out related to the development of new cryptographic primitives, new data structures for searchable encryption, and the development of views on security [6; 10]. The solutions available today for searching encrypted data combine non-trivial ideas from cryptography, from the main provisions of the theory of algorithms and data structures, information search, and databases [2; 6; 11]. However, despite the wide variety of options offered, there is no dominant solution for all use cases. The goal of a security plan, according to [PERSON] [12], is to find the balance between protection, usability, and cost. Similar views are held by [PERSON] et al. [2], who believe that designing a protected search system is a balance between security, functionality, performance, and usability. Therefore, it is important for data owners and users to understand how a fairly wide range of secure database systems are offered for their various applications and what compromises are acceptable for their respective use case. All this has stimulated research in the field of secure data management and increased its relevance. The objective of our paper is to present a solution that allows the user and the server to use the standard structured query language (SQL) for secure data search in a remote database (DB) encrypted using a reliable and efficient cryptosystem, as well as to perform a secure insert, modify, and delete the required sensitive data at a reasonable overhead. Security in this case is associated with information that, during the operation of the searchable encryption (SE) scheme, must be protected and cannot be disclosed by an attacker with access to the database server. The proposed solution provides a practical and reliable level of confidentiality (the solution allows only access pattern leakage) without significant system complexity, increasing the amount of memory required, with an acceptable query execution time. In general, the security of our solution is based on the strength of the underlying cryptographic primitives, namely symmetric-key encryption. At the same time, our solution does not hide the database schema, the general structure (schema) of tables, or the number of their rows. Each database table can be fully encrypted (every column), partially encrypted (some columns are encrypted, some not), or fully unencrypted. The main contribution of the authors is the creation of a SQL query processing technique that allows the DBMS (database management system) server to perform search functions in encrypted data (using basic data manipulation language operators) the same way as in an unencrypted database. This is achieved through the organization of prompt automatic decryption by specially developed secure software of the relevant data required for search, without the possibility of viewing this open data. The latter also applies to privileged users (insiders), primarily those who use the documentation tools of the DBMS server. Our technique involves separate processing of the SQL query on the side of the DBMS server and the application server (database proxy). On the application server, the initial request is first converted to the required form, and then transferred to the database server for execution. After the request is executed on the DBMS server, the requested encrypted data are transferred to the database proxy server for decryption and transfer to the user (client). The DBMS server cannot decrypt stored data (encrypted with a strong algorithm) that is not requested by the application. We offer a basis for implementing our solution on the server side of the Oracle DBMS (versions 12c and later) using unmodified DBMS software using our own developed persistent stored modules (PSM).