Search service for performing search queries on ciphertext data
The method addresses inefficiencies in searching ciphertext data by temporarily transforming ciphertext to plaintext for query execution, enhancing search speed and security by minimizing plaintext exposure.
Patent Information
- Application Number
- DE102021114019
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-05-31
- Publication Date
- 2024-12-19
- Estimated Expiration
- 2041-05-31
AI Technical Summary
Existing methods for searching structured data collections that contain ciphertext values are inefficient and require high computing power due to the need to translate the entire database element by element into plaintext values for each search query, leading to slow response times.
A computer-implemented method that transforms ciphertext values into plaintext values temporarily and selectively for search queries, using a decoding process, allowing for high-performance searches on structured data collections while maintaining data security by keeping plaintext values inaccessible except for query results.
Enables fast and secure search queries on ciphertext data without converting the entire database to plaintext, reducing computing effort and ensuring data security by limiting plaintext exposure.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[0001] The present invention relates to the field of computer-implemented methods for searching structured data collections, in particular database contents.
[0002] In practice, it is common practice to create search indexes to determine matches between query parameters in a search query and stored contents of a database at increased speed. For example, POH, GS [et al.]: Searchable symmetric encryption: designs and challenges (In: ACM Computing Surveys, Vol. 50, 2017, No. 3, Art. 40, pp. 1-37. DOI: 10.1145 / 3064005), as well as HANDA, R.; KRISHNA, CR; AGGARWAL, N.: Searchable encryption: a survey on privacy-preserving search schemes on encrypted outsourced data, generally address the topic of search indexes and encryption. (In: Concurrency and Computation: Practice and Experience, Vol. 31, 2019, No. 17, Art. e5201, pp. 1-49. DOI: 10.1002 / cpe.5201) and US 2013 / 0 238 646 A1, US 2016 / 0 234 180 A1, US 2016 / 0 344 707 A1, US 2020 / 0 012 807 A1.
[0003] US 2017 / 0 053 134 A1 discloses a system and method for implementing an encrypted search index. The document discusses a technology for quickly searching unencrypted documents or web pages. The search index consists of several files, some of which may contain element-by-element encryption.
[0004] Recently, however, for data protection reasons, there has been a trend to store user data in a database not as plaintext, but as ciphertext. Unlike plaintext, ciphertext is not directly understandable. Thus, the database contents are stored in such a form—based on the distortion of individual stored user data elements—that their actual meaning is no longer recognizable. This approach is also referred to as data-centric security.
[0005] As a starting point for the present disclosure, it is assumed that the stored user data in the structured data collection is in the form of ciphertext values, on which search queries using plaintext parameters are no longer directly possible.
[0006] It has been shown that the methods known so far for providing search services cannot cope with this initial situation or can only do so at a very slow processing speed, since they have to translate the entire data set element by element from the stored ciphertext values into plaintext values for each incoming search query, which requires high computing power and accordingly leads to slow response times.
[0007] It is an object of the present invention to provide an improved computer-implemented method for providing a search service for search queries on structured data collections, which also enables a high-performance search on ciphertext payload data.
[0008] The invention solves this problem by the features of the independent claim.
[0009] The computer-implemented method according to the present disclosure is intended and configured to provide a search service for search queries on structured data collections in which payload data is stored as ciphertext values. Data records are read from the data collection, each comprising an identifier value and payload data arranged in categories. The read payload data of at least one category is present as ciphertext values. A ciphertext index is formed or read in, wherein the ciphertext index contains an assignment of ciphertext values to identifier values of the data records in the database. If a search query is acquired via the communication interface that comprises a query parameter as a plaintext value, ciphertext values contained in the ciphertext index are transformed into plaintext values by a decoding process.The search query is then executed on these transformed plain text values with the query parameter in order to determine the identifier values assigned there and output them as a response to the search query.
[0010] According to a preferred embodiment, the ciphertext values contained in the ciphertext index are transformed into plaintext values only temporarily by a decoding process.
[0011] Thus, when executing the method, preferably only ciphertext values are made available or stored for an extended period of time, but not the plaintext values. Since the ciphertext index is significantly smaller than the structured data collection itself to which its content refers, the transformation into plaintext values can be carried out much more quickly, so that an answer to the search query can be provided particularly quickly. Furthermore, the transformation of the ciphertext index takes place in a separate process and preferably remotely from the computer system from which the search query originated. It is therefore not necessary to convert the entire content of the structured data collection into plaintext in response to the search query, and especially not on the computer system from which the search query originated. This increases data security.
[0012] At the same time, security requirements can be met according to the concept of data-centric security. Only the "data in use" components relevant to answering a search query are available as plaintext information.
[0013] The computer-implemented method according to the present disclosure can be used with any form of structured data collections, in particular with databases, tables, arrays or other data structuring types.
[0014] The ciphertext index can be formed in any desired manner. Preferably, the computer-implemented method intended for providing a search service also includes processing steps for forming a ciphertext index. Alternatively or additionally, the formation of a ciphertext index can be performed by a separate computer-implemented method.
[0015] The steps for creating a ciphertext index preferably include: retrieving a plurality of data records from the data collection, in particular all data records containing ciphertext values. Transforming the ciphertext values of at least one category in the retrieved data records into corresponding plaintext values by means of a decoding process. Finding a set of plaintext index parameters, wherein the plaintext index parameters comprise one or more query parameters in plaintext form, each of which leads to one or more matches with the transformed plaintext values of the data records. (Re-)transforming the found plaintext index parameters into ciphertext index parameters by means of a coding process. Forming the ciphertext index as an ordered data structure comprising the ciphertext index parameters and the identifier values of those data records for which the plaintext index parameters match the transformed plaintext values.
[0016] According to a preferred aspect of the disclosure, one or more method steps in which plaintext values are generated or processed are performed exclusively in an area of the data processing device on which the computer-implemented method is executed that is protected from unauthorized access. Thus, unauthorized access to ciphertext values via externally accessible interfaces is only possible, while the plaintext values are inaccessible or are only provided to the extent that actual matches to a respective search query exist.
[0017] To further increase data security, the ciphertext values and ciphertext index parameters stored in the ciphertext index can be based on a different coding method or coding type than the payload ciphertext values. This ensures that even a comparison between the contents of the structured data collection and the contents of the associated ciphertext index does not allow any conclusions to be drawn about the coding method, coding type, or payload content.
[0018] Further advantageous embodiments of the invention are specified in the subclaims, the following description and the accompanying drawings.
[0019] The invention is illustrated schematically and by way of example in the drawings. These show: Fig. 1: a schematic distribution diagram to explain how the search service works; Fig. 2 and Fig. 3: structured data collections in which the payload data is present on the one hand as ciphertext values and on the other hand as plaintext values and a payload coding (12) for transforming between these representations of the payload data; Fig. 4: an explanation of the relationship between the final coding process, the decoding process, any key material present, as well as plaintext values, ciphertext values and decoded values; Fig. 5: a schematic distribution diagram to explain access restrictions to a protected area of the data processing facility; Fig. 6 and Fig. 7: two examples of a computer-implemented indexing procedure; Fig. 8: a diagram explaining an additional method for a computer-implemented search method. Fig. 1 illustrates a computer-implemented (search) method according to the present disclosure.
[0020] A data processing device (9) is shown in the center of the illustration. The computer-implemented (search) method, when executed on the data processing device (9), provides a data interface (3) and a communication interface (4). A computer-implemented (index formation) method may possibly only provide a data interface.
[0021] The (search) and / or index creation process can be or is connected to a structured data collection (1) via the data interface (3). The structured data collection (1) can be, for example, a database, a table, or an array. At least part of the payload data is stored in the structured data collection (1) as ciphertext values (X', Y').
[0022] Search requests (Q) are accepted via the communication interface (4), and corresponding responses (R) are output. The search requests can be transmitted externally via the communication interface (4), for example, from an external data processing device, which is represented here, for example, as a client (8). The responses (R) are preferably output to the same client (8) from which a previous search request (Q) was accepted.
[0023] The search queries (Q) can have any content and any structure. The search queries can, in particular, include a query parameter (P) as a plaintext value (X,Y). In response to a search query (Q), identifier values (id) and / or data records (6) from the data collection (1) are preferably output, wherein the output data records (6) can be output optionally as plaintext values (X,Y), as ciphertext values (X'Y'), or in a mixed form. Output as plaintext values (X,Y) or output of determined identifier values (id) is preferred.
[0024] The data interface (3) is preferably designed to read one or more data records (6) from the data collection (1), wherein the read data records (6) each comprise an identifier value (id) and user data arranged in categories (B, C, D), and wherein the read user data of at least one category (B, C, D) are present as ciphertext values (X', Y').
[0025] If a distributed implementation exists in which a first computer-implemented method exists exclusively as a search method and a second computer-implemented method exists exclusively as an index creation method, the aforementioned design of the data interface may be omitted for the search method. In this case, at least one data interface must be provided via which a ciphertext index generated by the index creation method can be read.
[0026] To simplify the presentation, it is assumed below that a combined search and indexing method is present. All features disclosed below can be used either solely with a computer-implemented search method, solely with a computer-implemented indexing method, or with a combined search and indexing method. Therefore, a distinction between search methods and indexing methods is omitted below.
[0027] The computer-implemented method is designed to transform ciphertext values (X',Y') into plaintext values (X,Y) by a decoding process (F2).
[0028] Fig. 2 and Fig. 3 show in two corresponding representations the possible contents of a structured data collection (1), on the one hand as user data in the form of plain text values (X,Y) ( Fig. 2) and on the other hand as payload data in the form of ciphertext values (X',Y') ( Fig. 3). A ciphertext value (X',Y') can be formed by any type of coding. The coding can, in particular, be pseudonymization or encryption (12, 13). In the drawings, it is assumed, by way of example, that an encryption (12, 13) is present that uses a key material (10, 11). Pseudonymization can possibly be performed without key material.
[0029] Fig. Figure 4 explains the possible transformations between plaintext values (X,Y) and ciphertext values (X',Y'). Each plaintext value (X,Y) can be transformed into a ciphertext value (X',Y') by an encoding operation (F1). A corresponding decoding operation (F2,F4) can be performed for a reverse transformation.
[0030] An encoding process (F1,F3) and an associated decoding process (F2,F4) preferably act as inverse functions to one another, so that by the decoding process (F2,F4) a decoded value (V) is formed from each ciphertext value (X',Y',X'',Y''), which corresponds to the plaintext value (X,Y), from which the ciphertext value (X',Y',X'',Y'') is formed according to the encoding process (F1,F3).
[0031] Within the scope of the present disclosure, multiple codings may be present, which may be identical or different from one another. In particular, a payload coding and an index coding are distinguished from one another. The payload coding may comprise an encoding process (F1) and a decoding process (F2), which form a first pair of related forward and backward transformations. The index coding may comprise a further encoding process (F3) and a further decoding process (F4), which form a corresponding second pair.
[0032] If a coding is provided as encryption (12, 13), it comprises at least one key material (10, 11) for an encoding process and the associated decoding process. If the payload data coding and the index coding are provided as encryption, they can each comprise the same or different key material.
[0033] A particularly preferred embodiment provides that at least one of the encodings (12, 13) is provided as a format-preserving encoding, in which the data format of a ciphertext value (X', Y', X'', Y'') matches the data format of the corresponding plaintext value (X, Y). For example, the plaintext value and the corresponding ciphertext value can each be present as an INTEGER, or each as a FLOAT, or each as a string, etc. Alternatively, a format-altering encoding can be present.
[0034] According to a particularly preferred embodiment, an index coding (13) is provided that uses a different coding method than that used for coding the user data in the data collection (1). This achieves a particularly high level of security.
[0035] Furthermore, an index coding (13) is preferably provided as index encryption, wherein, in particular, a key material (13) for the index encryption differs from any existing key material (10) of a payload data encryption (12). Alternatively, the same key material can be used.
[0036] The following is based on reference to Fig. 1 explains the processing of a search query (Q). It is first assumed that a ciphertext index (7) exists. Further below, a process for creating a ciphertext index (7) is explained in detail.
[0037] The ciphertext index (7) contains an assignment of ciphertext values (X',Y',X'',Y'') to identifier values (id) of the data records (6) in the database (1). The ciphertext index (7) according to a first embodiment is in the upper range of Fig. 1. It has a ciphertext index parameter (Z',Z''). The ciphertext index parameter is a generic term for a group of values. How these are formed is explained below.
[0038] To execute a search, it is initially crucial that these values are present as ciphertext values (X',Y',X'',Y''). Each of these ciphertext values is assigned a set of identifier values (id) of the data records (6) in the database (1). These identifier values (id) can be assigned to subgroups. For example, one subgroup can be provided for each category of payload data in the ordered data structure (1).
[0039] If a search query (Q) is acquired via the communication interface (4) which includes a query parameter (P) as a plaintext value (x,y), the ciphertext values contained in the ciphertext index (7) are transformed into plaintext values (X,Y) by a decoding process (F2,F4).
[0040] This transformation step is preferably carried out entirely in a protected area (14) of the
[0041] Data processing device (9). Furthermore, the transformation into plain text values (x, y) preferably takes place exclusively temporarily.
[0042] In Fig. 1 the transformed plaintext values (X,Y) are therefore shown in a dashed box.
[0043] On these transformed plaintext values (X,Y), the search query (Q) with the (plaintext) query parameter (P) is executed to determine the identifier values (id) assigned in the ciphertext index (7).
[0044] The query parameter (P) can be of any type. For example, it can be expressed in a common database query language.
[0045] An example of processing a search query is given below with additional reference to the Fig. 2 and Fig. 3 described.
[0046] The request can be, for example: Q:Daniel@A / B
[0047] The meaning of the query can be: Find all records in categories (A) or (B) that contain the plaintext value “Daniel”.
[0048] If you look at the Fig. 2, this search query would produce the following correct output when performed on plain text values: A:L02; B:L04.
[0049] This would result in a match between the search query (Q) and the records with the identifier values id=L02 and id=L04, respectively. This is because the plain text value “Daniel” is in fields A2 and B4 of the Fig. 2 shown data collection 1.
[0050] Since the data collection (1) is actually carried out in accordance with Fig. 3, it is not possible to directly find matches between the query parameter (P) in plain text and the payload of the data collection (1).
[0051] However, the ciphertext index (7) contains assignments to the identifier values (id), on the basis of which the search query (Q) can be executed directly.
[0052] In the Fig. In the section shown above, which contains the (preferably temporarily present) transformed plaintext values (X,Y), the entry "Daniel" is present in the second line. Thus, the query parameter (P) as a plaintext value can be compared with this transformed plaintext value (X,Y) to determine the associated identifier values (id).
[0053] The search query (Q) could alternatively contain the following query parameter (P) in plaintext form: "Da?" The meaning of this query parameter can be: Find payload data beginning with the character "Da." This query parameter (P) can also be compared with the (preferably temporarily) transformed plaintext values (X,Y), whereby a match is found with both the plaintext value "Daniel" and the plaintext value "David." The associated identifier values (id) would thus be determined: A:L02, L05;B:L04
[0054] The determined identifier values therefore match the data records that would be found in a hypothetical search with the plain text value “Da?” on the Fig. 2 show a match. There, in categories (A) and (B), payload data beginning with the character string "Da" appears in fields (A2) and (A5), and in category (B) in field (B4).
[0055] A corresponding search query would be based on the user data stored as ciphertext values (X',Y') in the actual data collection (1) according to Fig. 3 not directly executable.
[0056] Depending on the type of implementation, the determined identifier values (id) and / or the corresponding data records (6) from the data collection (1) can be output as a response (R) to the search query (Q).
[0057] From the above example, it can be seen that the disclosed method provides the speed advantages of an index-based search without having to completely transform all data records (6) of a specific category (A), (B), (C) in the structured data collection (1) into plaintext values (X,Y) to process the search query. Rather, it is only necessary to transform the ciphertext values (X',Y') contained in the ciphertext index (7), which means a much lower computational effort, especially when a comprehensive data collection (1) is present and / or certain user data values occur multiple times in one or more categories (A), (B), (C).
[0058] The following is based on reference to Fig. 6 and Fig. 7, a process for forming a ciphertext index (7) is explained. This process can be performed optionally by a search method and / or an index formation method according to the present disclosure.
[0059] Several data records (6) and in particular all data records (6) from the data collection (1) that contain ciphertext values (X',Y') are retrieved.
[0060] In the lower part of Fig. 6 and Fig. 7 is the one from Fig. 3 depicts a known data collection, illustrating the retrieval for categories (A) and (B). The ciphertext values (X',Y') of at least one category (A), (B), (C) in the retrieved data sets (6) are transformed into corresponding plaintext values (X,Y) by means of a decoding process (F2). This is shown in Fig. 6 and Fig. 7 is illustrated by the fact that the payload data of categories (A), (B) are already shown as transformed plaintext values (X,Y). This transformation is again preferably performed in a protected area (14) of the data processing device (9). Furthermore, the transformation into plaintext values (X,Y) is preferably performed only temporarily.
[0061] A set of plaintext index parameters (Z) is found, wherein the plaintext index parameters (Z) comprise one or more query parameters (P) in plaintext form, each of which leads to one or more matches with the transformed plaintext values (X) of the data records (6). The plaintext index parameters (Z) can be found in any desired manner. For example, a plaintext index parameter (Z) can be formed in which the first word from a payload field is taken. Alternatively or additionally, a plaintext index parameter (Z) can be formed that contains a specific search query.
[0062] In Fig. 6 and Fig. In the upper left section of Figure 7, examples of a plaintext index parameter (Z) are shown in a summarized representation. The first four entries, "Peter," "Daniel," "Harald," and "Martin," are representative of the detection of multiple mentions of payload values. The fifth entry represents a query parameter: entries beginning with the character "Da."
[0063] The present disclosure is not limited to the above examples for finding a set of plaintext index parameters (Z). Any other plaintext index parameters (Z) can be generated according to any retrieval rules. The retrieval rules can be the same or different for one or more categories (A, B).
[0064] The found plaintext index parameters (Z) are transformed into ciphertext index parameters (Z',Z'') by an encoding process (F1,F3). This process is called index encoding process, which can be carried out either according to the example of Fig. 6 can be identical to the payload encoding process (F1) on the basis of which the ciphertext values (X',') are present in the structured data collection (1). This is in Fig. 6. In particular, an index encryption process may be present which uses the same key material (10) that forms the basis for encryption of the ciphertext values (X',Y') in the structured data collection (1).
[0065] Alternatively, according to the example in Fig. 7 an index encoding process (F3) and in particular an index encryption process with a different key material (11) than the ciphertext values (X',Y') of the structured data collection (1).
[0066] The ciphertext index (7) is formed as an ordered data structure comprising the ciphertext index parameters (Z', Z'') and the identifier values (id) of those data records (6) for which the plaintext index parameters (Z) match the transformed plaintext values (X, Y). However, it is preferable not to include the plaintext parameters (Z) themselves in the ciphertext index (7). Rather, the plaintext index parameters (Z) are preferably deleted immediately or as soon as possible after being used to create the ciphertext index (7).
[0067] For the search method and / or the index formation method, it is thus preferable that ciphertext values (X',Y',X'',Y'') contained in the ciphertext index (7) are transformed exclusively temporarily into plaintext values (X,Y) by a decoding process (F2,F4). Furthermore, it is preferable that the found set of plaintext index parameters (Z), on which the formation of the ciphertext index (7) is based, is also preferably generated exclusively temporarily.
[0068] The ciphertext index stores the identifier values (id) of those data records (6) in which a match would be found in a hypothetical search in the underlying data collection (1) for plaintext values (X,Y) that correspond to the actual ciphertext values (X',Y',X'',Y'') as an assignment to a ciphertext value (X',Y',X'',Y''). Examples of this assignment are given in the Fig. 6 and Fig. 7 shown in the top right corner of the ciphertext index (7). In the example of Fig. 6, values for a ciphertext index parameter (Z') are available, which may also be used as ciphertext values (X',Y') in the structured data collection (1) according to Fig. 3. In the example according to Fig. 7, the values of the ciphertext index parameters (Z'') differ from the ciphertext values (X',Y') in the data collection according to Fig. 3. Because the ciphertext index parameters (Z'') are in the example of Fig. 7 is formed on the basis of an index coding (13) which is different from the payload coding (12) and / or possibly uses a different key material.
[0069] Fig. 5 explains preferred access rules for the computer-implemented methods according to the present disclosure.
[0070] Preferably, at least one, several or all of the following steps, which may be present in the formation of the ciphertext index (7), are carried out exclusively in an area of the data processing device (9) that is protected from unauthorized access: • A temporary storage of the transformed plain text values (X) necessary for index creation; • Finding plaintext index parameters (Z); • Determining matches between plaintext index parameters (Z) and plaintext values (X,Y) transformed on the basis of the retrieved data sets (6); • Transforming the plaintext index parameters (Z) into ciphertext index parameters (Z',Z'').
[0071] In the examples according to the attached figures, the identifier values (id) contained in the ciphertext index (7) are shown as plaintext values. This form of representation serves merely to simplify comprehensibility and does not limit the subject matter of the disclosure. One or more of the identifier values (id) can preferably also be present as ciphertext values and subject to a corresponding transformation. Alternatively, the storage as plaintext values shown in the figures is also possible.
[0072] When processing a search query (Q) using the ciphertext index (7), the one or more transformed plaintext index values (Z) are preferably also formed in an area (14) of the data processing device (9) that is protected from unauthorized access and are furthermore preferably formed exclusively temporarily.
[0073] The one or more temporarily created plaintext values (X,Y) and / or plaintext index values (Z) are preferentially deleted: • Directly after the transformation into a ciphertext index value (Z',Z'') and the processing of a search query (Q); or • If no further search request is received for a predetermined time interval after processing a first search request (Q).
[0074] A protected area (14) of the data processing device (9) can be present in any suitable form. In particular, it can comprise protected working segments of a processor (15) and / or protected working segments of a memory (16) directly addressed by the processor (15). The directly addressed memory (16) can, for example, be the cache memory of the processor (15) itself and / or an assigned main memory. In a particularly preferred embodiment, a physically separate memory can be reserved exclusively for processing according to the computer-implemented method according to this disclosure.
[0075] The one or more described encoding processes (F1, F3) and / or the one or more decoding processes (F2, F4) can be implemented as part of the computer-implemented method according to the present disclosure. In this case, these processes preferably take place exclusively in the protected area (14) of the data processing device (9).
[0076] Alternatively, the computer-implemented method can generate a coding interface (5) when executed on the data processing device (9). Via the coding interface (5), the payload data decoding process (F2) can be executed on an external process (18) and / or an external device (cf. Fig. 1). In this case, it is not necessary for the computer-implemented method itself to know the payload coding (12) and any key material (10) used.
[0077] The ciphertext index (7) has, in particular, in the execution according to Fig. 7, in which the index coding (13) differs from the payload coding (12), offers a high level of data security. Therefore, even under strict data protection requirements, it may be permissible to persistently store the ciphertext index (7) as such on a permanent data storage device (17) of the data processing device (9) or via an interface. With persistent storage, preferably only the ciphertext values (X'',Y'') are stored, but not the plaintext values (X,Y).
[0078] The plaintext values (X,Y) which are not to be stored persistently include in particular the values generated from the ciphertext values (X',Y',X'',Y'') by a decoding process (F2,F4) as well as the plaintext index parameters (Z).
[0079] According to a preferred embodiment of the present disclosure, all plaintext values (X, Y) are thus located exclusively in the protected area (14) and, furthermore, preferably exclusively temporarily. If an encoding process (F1, F3) and / or a decoding process (F2, F4) is performed as part of the disclosed computer-implemented methods, this preferably also takes place exclusively in the protected area (14). If key material (10, 11) is used, it is preferably stored exclusively in the protected area (14).
[0080] On the other hand, external access and / or access possible over a longer period of time is preferably only possible to the ciphertext values (X',Y',X'',Y'') and the defined interfaces (3,4,5).
[0081] Fig. 8 explains an additional way of processing a search query that may be suitable for certain special cases.
[0082] In the example of Fig. 8 there is a ciphertext index (7) that matches the examples described above.
[0083] If a search request (Q) is acquired via the communication interface (4) that includes a query parameter (P) as a plaintext value (X,Y), it is also possible for this query parameter (P) to be transformed into a query parameter (P') with an associated ciphertext value (X',Y',X'',Y'') by an encoding process (F1,F3). Even with this transformed query parameter (P') in ciphertext form, a direct search can be performed on the ciphertext values (X',Y',X'',Y'') in the ciphertext index (Z',Z'') to determine the identifier values (id) assigned there. In this case, it is therefore not necessary to transform the ciphertext values in the ciphertext index into plaintext values; instead, the plaintext query parameter is transformed into a ciphertext value.
[0084] This alternative form of processing a search query can be performed particularly quickly and is particularly useful when certain query parameters (P) are repeatedly contained in the plaintext (X,Y) in the same form in the search queries (Q). For such recurring query parameters, a corresponding plaintext index parameter (Z) can be specifically generated, for example, when creating the ciphertext index.
[0085] If there is no matching entry in the ciphertext index (7), a search query according to the aforementioned processing may not lead to a result, so that the execution types described above must be accessed subsequently or in parallel.
[0086] The present disclosure also encompasses a software product containing instructions configured to execute at least one computer-implemented method according to the present disclosure when executed on a data processing device (9). The software product may be directed toward a search method, an indexing method, or a combined search and indexing method, and may contain the correspondingly associated instructions for executing this method.
[0087] The software product preferably further comprises instructions for addressing or establishing a protected working segment (14) in a processor (15) and / or in a memory (16) of the data processing device (9). The content of the protected working segment (14) can further preferably be accessed exclusively by internal instructions of the computer-implemented method. The memory (16) can, in particular, be a memory directly accessible by the processor (15) and / or a volatile memory.
[0088] The present disclosure also relates to a data processing device comprising a processor (15) and at least one memory (16, 17), wherein instructions are executed in the processor (15) that carry out at least one computer-implemented method according to the present disclosure. This can be a search method, an index creation method, or a combined search and index creation method. LIST OF REFERENCE SYMBOLS 1 structured data collection / database / table / array 2 Search service 3 Data interface 4 Communication interface 5 Encryption interface 6 data set 7 Ciphertext Index 8 Client 9 Data processing facility 10 First key material for payload encryption 11 Second key material for index encryption 12 Payload encoding 13 Index coding 14 Protected area / Protected working segments of processor and / or directly processor-accessible memory 15 processor 16 First memory / data memory (volatile) / RAM 17 Second storage / data storage (permanent) / HDD, SDD 18 External process id identifier value A Category B,B' category C,C' category F1 Encoding process according to first coding / Payload encoding process / Payload encryption process / Payload pseudonymization process F2 Decoding process according to the first coding / Payload decoding process / Payload decryption process / Payload depseudonymization process F3 Encoding process according to second coding / Index encoding process / Index encryption process / Index pseudonymization process F4 Decoding process according to second coding / Index decoding process / Index decryption process / Index depseudonymization process D Category P Request parameter as plain text value P' transformed query parameter as ciphertext value Q Search query with plain text value Q' search query with ciphertext value R Response to search query V decoded value / decrypted plaintext value / depseudonymized plaintext value X Plaintext value / Payload plaintext value X' ciphertext value (according to first encoding) / payload ciphertext value X'' ciphertext value (according to second encoding) / index ciphertext value Y Plaintext value / Payload plaintext value Y' ciphertext value (according to first encoding) / payload ciphertext value Y'' ciphertext value (according to second encoding) / index ciphertext value Z Plaintext index parameter (temporary value) Z' ciphertext index parameter (persistently storable value) according to the first encoding Z'' ciphertext index parameter (persistent storable value) according to second encoding
Claims
[1] Computer-implemented (search) method for providing a search service (2) for search queries (Q) on structured data collections, in particular database contents, wherein the computer-implemented method, when executed on a data processing device (9), - provides a data interface (3) via which it can be connected or is connected to a structured data collection (1), in particular to a database, wherein user data is stored in the data collection as ciphertext values (X', Y'), and - provides a communication interface (4) via which search queries (Q) are accepted and corresponding answers (R) are output; and wherein the data interface (3) is designed in particular to read data records (6) from the data collection (1), wherein the data records (6) each comprise an identifier value (id) and user data arranged in categories (B, C, D), and wherein the read-out user data of at least one category (B, C, D) are present as ciphertext values (X', Y'), and wherein - the computer-implemented method is designed to transform ciphertext values (X', Y') into plaintext values (X, Y) by a decoding process (F2), and wherein - the computer-implemented method is designed to form or read in a ciphertext index (7), wherein the ciphertext index (7) contains an assignment of ciphertext values (X', Y', X''), Y'') to identifier values (id) of the data records (6) in the database (1); and wherein - if a search query (Q) is acquired via the communication interface (4) which comprises a query parameter (P) as a plaintext value (X, Y), ciphertext values (X', Y', X'', Y'') contained in the ciphertext index (7) are transformed into plaintext values (X, Y) by a decoding process (F2, F4), and the search query (Q) with the query parameter (P) is executed on these plaintext values (X, Y) in order to determine the identifier values (id) assigned there; AND - as a response (R) to the search query (Q), the determined identifier values (id) and / or the corresponding data records (6) from the data collection (1) are output. [2] Computer-implemented method according to one of the preceding claims, wherein the formation of a ciphertext index (7) comprises the following steps: - retrieving a plurality of data records (6) from the data collection (1), in particular all data records (6) containing ciphertext values (X', Y'); - Transforming the ciphertext values (X', Y') of at least one category (B, C, D) in the retrieved data sets (6) into corresponding plaintext values (X, Y) by means of a decoding process (F2); - finding a set of plaintext index parameters (Z), wherein plaintext index parameters (Z) comprise one or more query parameters (P) in plaintext form, each of which leads to one or more matches with the transformed plaintext values (X) of the data records (6); - Transforming the found plaintext index parameters (Z) into ciphertext index parameters (Z', Z'') by an encoding process (F1, F3); - forming the ciphertext index (7) as an ordered data structure comprising the ciphertext index parameters (Z', Z'') and the identifier values (id) of those data records (6) for which the matches of the plaintext index parameters (Z) with the transformed plaintext values (X, Y) exist. [3] Computer-implemented (index formation) method for forming a ciphertext index (7) for supporting a search service (2) according to the preceding claim 1 or 2, wherein - the computer-implemented method, when executed on a data processing device (9), provides a data interface (3) via which it can be connected or is connected to a structured data collection (1), in particular to a database; and wherein - in the data collection, payload data is stored as ciphertext values (X', Y'), and where - the data interface (3) is designed to read data records (6) from the data collection (1), wherein the data records (6) each comprise an identifier value (id) and user data arranged in categories (B, C, D), and wherein the read user data of at least one category (B, C, D) are present as ciphertext values (X', Y'), and wherein - the computer-implemented method is designed to transform ciphertext values (X', Y') into plaintext values (X, Y) by a decoding process (F2), and wherein - the formation of a ciphertext index (7) comprises the following steps: - retrieving a plurality of data records (6) from the data collection (1), in particular all data records (6) containing ciphertext values (X', Y'); - Transforming the ciphertext values (X', Y') of at least one category (B, C, D) in the retrieved data sets (6) into corresponding plaintext values (X, Y) by means of a decoding process (F2); - finding a set of plaintext index parameters (Z), wherein plaintext index parameters (Z) comprise one or more query parameters (P) in plaintext form, each of which leads to one or more matches with the transformed plaintext values (X) of the data records (6); - Transforming the found plaintext index parameters (Z) into ciphertext index parameters (Z', Z'') by a coding process (F1, F3); - forming the ciphertext index (7) as an ordered data structure comprising the ciphertext index parameters (Z', Z'') and the identifier values (id) of those data records (6) for which the matches of the plaintext index parameters (Z) with the transformed plaintext values (X, Y) exist. [4] Computer-implemented method (search method and / or index formation method) according to one of the preceding claims, wherein ciphertext values (X', Y', X'', Y'') contained in the ciphertext index (7) are transformed into plaintext values (X, Y) exclusively temporarily by a decoding process (F2, F4). [5] Computer-implemented method according to one of the preceding claims, wherein the identifier values (id) of those data records (6) are stored in the ciphertext index as an assignment to a ciphertext value (X', Y', X'', Y'') in which a match would be found in a hypothetical search in the data collection (1) on plaintext values (X, Y) that correspond to the actual ciphertext values (X', Y', X'', Y''). [6] Computer-implemented method according to one of the preceding claims, wherein a ciphertext value (X', Y', X'', Y'') is formed by a coding, wherein the coding - pseudonymization, OR - is an encryption (12, 13). [7] Computer-implemented method according to one of the preceding claims, wherein each plaintext value (X, Y) is transformable into a ciphertext value (X', Y', X'', Y'') by an encoding process (F1, F3) and wherein an associated decoding process (F2, F4) is executable for a reverse transformation. [8] Computer-implemented method according to one of the preceding claims, wherein an encoding process (F1, F3) and an associated decoding process (F2, F4) act as inverse functions to one another, so that by the decoding process (F2) a decoded value (V) is formed from each ciphertext value (X', Y', X'', Y''), which corresponds to the plaintext value (X, Y), from which the ciphertext value (X', Y', X'', Y'') is formed according to the encoding process (F1). [9] Computer-implemented method according to one of the preceding claims, wherein an encryption (12, 13) comprises at least one key material (10, 11) for an encoding process (F1, F3) and an associated decoding process (F2, F4). [10] Computer-implemented method according to one of the preceding claims, wherein a format-preserving coding (12, 13) is provided, in which the data format of a ciphertext value (X', Y', X'', Y'') matches the data format of the associated plaintext value (X, Y). [11] Computer-implemented method according to one of the preceding claims, wherein an index coding (13) is provided which uses a different coding method than that provided for the coding of the payload data in the data collection (1). [12] Computer-implemented method according to one of the preceding claims, wherein an index coding (13) is provided as index encryption, wherein in particular a key material (13) for the index encryption is compared to a key material (10) of a payload data encryption (12) - is equal, or - is different. [13] Computer-implemented method according to one of the preceding claims, wherein in the formation of the ciphertext index (7): - a temporary storage of the transformed plaintext values (X) necessary for index creation, AND / OR - finding plaintext index parameters (Z), AND / OR - determining the matches, AND / OR - transforming the plaintext index parameters (Z) into ciphertext index parameters (Z', Z'') exclusively in an area (14) of the data processing device (9) that is protected from unauthorized access. [14] Computer-implemented method according to one of the preceding claims, wherein, when processing a search query (Q) using the ciphertext index (7), the one or more transformed plaintext index values (Z) are formed exclusively temporarily in an area (14) of the data processing device (9) that is protected from unauthorized access. [15] Computer-implemented method according to one of the preceding claims, wherein the one or more temporarily formed plaintext values (X, Y) and / or plaintext index values (Z) are deleted: - directly after the transformation into a ciphertext index value (Z', Z'') and processing of a search query (Q); OR - if after processing a first search request (Q) no further search request is received for a predetermined time interval. [16] Computer-implemented method according to one of the preceding claims, wherein a protected area (14) of the data processing device (9) comprises: - protected working segments of a processor (15) AND / OR - protected working segments of a memory (16) addressed directly by the processor (15). [17] Computer-implemented method according to one of the preceding claims, wherein the computer-implemented method, when executed on the data processing device (9), generates a coding interface (5) via which the payload data decoding process (F2) can be executed on an external process (18) or device. [18] Computer-implemented method according to one of the preceding claims, wherein the computer-implemented method is designed to persistently store the ciphertext index (7) on a permanent data memory (17) of the data processing device (9) or via an interface (3, 4), wherein during the persistent storage only the ciphertext values (X'', Y'') are stored, but in particular no plaintext values (X, Y) which were generated by a decoding process (F2, F4) from the ciphertext values (X', Y', X''), Y''), or the plaintext index values (Z). [19] Computer-implemented method according to one of the preceding claims, wherein when a search request (Q) is detected via the communication interface (4), which search request comprises a search parameter (P) as a plaintext value (X, Y), the search parameter (P) is transformed by an encoding process (F1, F3) into a search parameter (P') with an associated ciphertext value (X', Y', X'', Y''), and wherein a search is carried out on the ciphertext values (X', Y', X'', Y'') in the ciphertext index (Z', Z'') with the transformed search parameter (P') in order to determine the identifier values (id) assigned there. [20] Software product containing instructions designed to execute a computer-implemented method according to at least one of the preceding claims when executed on a data processing device (9). [21] Software product according to the preceding claim, wherein the software product contains instructions for addressing or establishing a protected working segment (14) in a processor (15) and / or in a memory (16), wherein the content of the protected working segment (14) is accessible exclusively by internal instructions of the computer-implemented method, and wherein the memory (16) is in particular a memory accessible directly by the processor (15) and / or a volatile memory. [22] Data processing device comprising a processor (15) and at least one memory (16, 17), characterized by that instructions which carry out a computer-implemented method according to one of claims 1 to 19 are executed in the processor (15).
Citation Information
Patent Citations
Partial-Match Searches of Encrypted Data Sets
US20130238646A1
Methods And Apparatus For Sharing Encrypted Data
US20160234180A1
Encrypted query-based access to data
US20160344707A1
Systems and methods for implementing an encrypted search index
US20170053134A1
Encrypting data records and processing encrypted records without exposing plaintext
US20200012807A1
