A cloud database management architecture and accelerated query method

By introducing FPGA circuit boards and query accelerators into the cloud database management architecture, and utilizing SSE and ORE modules for parallel and pipelined processing, the problem of low computational performance in searchable encrypted DBMSs is solved, achieving efficient query acceleration.

CN116226180BActive Publication Date: 2026-01-16CHINA TELECOM DIGITAL INTELLIGENCE TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310077522.0
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-17
Publication Date
2026-01-16
Estimated Expiration
2043-01-17

AI Technical Summary

Technical Problem

Existing searchable encryption DBMSs require unique computations in terms of performance, which reduces processing speed. At the same time, the time required to access database tables during encryption increases with the amount of data.

Method used

A cloud database management architecture is adopted, including a DBMS server, an FPGA board and an application server. Parallel and pipelined processing is performed through FPGA memory and query accelerators, including BSP and FPGA. The SSE module and ORE module are used for equality and order checks to reduce redundant calculations. The query executor retrieves data directly from the encrypted cache.

Benefits of technology

It improves query processing speed, reduces data access time and number of accesses, minimizes performance degradation, and enhances query efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116226180B_ABST
    Figure CN116226180B_ABST
Patent Text Reader

Abstract

The application discloses a cloud database management architecture and an accelerated query method, and belongs to the technical field of cloud databases.The cloud database management architecture comprises a DBMS server, an FPGA circuit board and an application program server.The FPGA circuit board is in communication connection with the DBMS server through peripheral components.The FPGA circuit board comprises an FPGA memory and a query accelerator which are in communication connection with each other.The application program server comprises a query processor which is in communication connection with a query executor.The DBMS server comprises a DBMS and a service agent module, and the service agent module is provided with an encryption cache and the query executor which are in communication connection with each other, wherein the encryption cache and the query executor are in communication connection with the DBMS.The encryption cache is in communication connection with the FPGA memory, and the query accelerator is in communication connection with the query executor.The application can solve the technical problem that the existing searchable encrypted DBMS needs unique calculation in the aspect of calculation performance, reduces the processing speed, and the access time of a database table in the encryption process increases with the increase of the data amount.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application belongs to the technical field of cloud database, and particularly relates to a cloud database management architecture and a query acceleration method. BACKGROUND

[0002] With the popularity of cloud services, DBMS (Database Management System) also expands rapidly, which can bring easier management, lower cost and greater scalability, but also brings security problems, such as cloud administrators leaking sensitive information or being attacked by hackers to cause sensitive information leakage.

[0003] Currently, searchable encrypted DBMS is commonly used, which supports performing queries on encrypted data in the cloud while protecting sensitive data from attacks by an adversary. However, searchable encrypted DBMS needs unique calculation in terms of computing performance, which will reduce processing speed, and at the same time, the access time of database table in the encryption process increases with the increase of data volume. SUMMARY

[0004] The purpose of the embodiment of the present application is to provide a cloud database management architecture and a query acceleration method, which can solve the technical problem that the existing searchable encrypted DBMS needs unique calculation in terms of computing performance, which will reduce processing speed, and at the same time, the access time of database table in the encryption process increases with the increase of data volume.

[0005] In order to solve the above technical problems, the present application is implemented as follows:

[0006] First aspect

[0007] The embodiment of the present application provides a cloud database management architecture, comprising: a DBMS server, an FPGA circuit board and an application program server.

[0008] The FPGA circuit board is in communication connection with the DBMS server through a peripheral component;

[0009] The FPGA circuit board comprises an FPGA memory and a query accelerator which are in communication connection with each other;

[0010] The application program server comprises a query processor, and the query processor is in communication connection with a query executor;

[0011] The DBMS server comprises a DBMS and a service agent module, and the service agent module is provided with an encryption cache and a query executor which are in communication connection with each other, and the encryption cache and the query executor are both in communication connection with the DBMS;

[0012] The encryption cache is in communication connection with the FPGA memory;

[0013] The query accelerator is in communication connection with the query executor;

[0014] The query processor initiates a query plan to the query executor, the query executor sends a query condition to the query accelerator and notifies the encryption cache to read encrypted data from the DBMS, and transmits the read encrypted data to the FPGA memory, the query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan, and can perform parallel and pipeline processing on repeated same calculations to send the query result to the query executor, the query executor directly calls relevant data from the encryption cache according to the query result, creates a return result, and returns the return result to the query processor.

[0015] Further, the query accelerator comprises a BSP and an FPGA;

[0016] The BSP comprises a fixed resource in communication connection with an external device;

[0017] The FPGA comprises an SC reader, a Result writer, a Data reader, an SEE module and an ORE module;

[0018] One end of the SC reader, the Result writer and the Data reader is in communication connection with the FPGA memory;

[0019] The other end of the SC reader, the Result writer and the Data reader is in communication connection with the FPGA memory through a FIFO;

[0020] The Data reader is used to read encrypted data EncData in all rows from the FPGA memory in sequence;

[0021] The SC reader is used to read encrypted query condition EnsSC from the FPGA memory;

[0022] The Result writer is used to write matching and non-matching information of each row to the FPGA memory;

[0023] Wherein, in the case that EncData and EncSC exist in the FIFO, the SSE module or the ORE module is executed.

[0024] Further, the SSE module is used to execute a pipeline, and uses EncData and EncSC as inputs to perform equality checking, if plaintext data kw and search condition qr are equal, two pseudo-random values r and r0 in EncSC will offset each other.

[0025] Further, the ORE module is configured to perform sequential checking with EncData and EncSC as inputs, wherein each of ctx1_l, ctx2_l and ctx2_r is composed of four blocks, and the key of the server is stored in EncSC, and first, the blocks at the same position in ctx1_l and ctx2_l are tested for equality, and if the blocks are not equal, the size relationship between EncData and EncSC is determined by the following formula:

[0026] r=Decode(ctx1_l diff [0:15],Nonce)

[0027]

[0028] wherein diff represents the number of different blocks, Decode is a decoding function, and mpz_tstbit is a programming language underlying function used to obtain the bit value of the nth bit in a string, and the two functions essentially determine equality by XOR of bit positions.

[0029] If there is no different block between EncData and EncSC, i.e., r=v, it is determined that the two are equal.

[0030] Further, the FPGA further comprises a WordInfo reading block, and the Data reader is in communication connection with the FPGA memory through the WordInfo reading block.

[0031] Further, the encrypted cache is configured to read encrypted data from the DBMS, pre-process the encrypted data, delete unnecessary data, and then transmit the data to the FPGA memory.

[0032] Further, the application server further comprises an application module.

[0033] The application module is in communication connection with the query processor.

[0034] The application module is configured to send a SQL query request to the query processor.

[0035] The query processor is configured to convert the SQL query request into an executable query plan and send the query plan to the query executor, and the query processor is further configured to return a query result to the application module.

[0036] In a second aspect, an embodiment of the present application provides an accelerated query method applied to the cloud database management architecture of the first aspect, and the accelerated query method comprises the following steps.

[0037] S101: The query processor initiates a query plan to the query executor.

[0038] S102: The query executor sends the query condition to the query accelerator;

[0039] S103: The query executor instructs the encryption cache to read encrypted data from the DBMS;

[0040] S104: The encryption cache transmits the read encrypted data to the FPGA memory;

[0041] S105: The query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan;

[0042] S106: The query accelerator returns the query result to the query executor;

[0043] S107: The query executor directly calls relevant data from the encryption cache according to the query result, and creates a return result;

[0044] S108: The query executor returns the return result to the query processor.

[0045] Further, S105 specifically includes:

[0046] S1051: The Data reader reads encrypted data EncData in all rows from the FPGA memory in sequence;

[0047] S1052: The SC reader reads encrypted query condition EnsSC from the FPGA memory;

[0048] S1053: If EncData and EncSC exist in the FIFO, then execute the SSE module or the ORE module;

[0049] S1054: The Result writer writes matching and non-matching information of each row to the FPGA memory.

[0050] Further, when performing a word search task, S105 specifically includes:

[0051] S105A: The WordInfo reading block reads field information from the WordInfo area, the Data reader reads the first character of EncData in each row based on AoFC in the field information, the SC reader reads the first character of EncSC, and the Result writer writes field information of matching rows in the WordInfo area and the total number of matching rows in the Result area to the FPGA memory after the SSE module performs equality check using EncSC and EncData;

[0052] S105B: The field information written in step S105A is read by the WordInfo reading block, the Data reader reads the second character of the EncData based on the AoFC in the field information, the SC reader reads the second character of the EncSC, and the Result writer writes the field information of the matching line in the WordInfo area and the total number of matching lines in the Result area to the FPGA memory;

[0053] S105C: The matching of the Nth character is performed in turn, where N is the character number NoC.

[0054] The present application has at least the following beneficial technical effects:

[0055] In the embodiment of the present application, the query processor initiates a query plan to the query executor, the query executor sends the query condition to the query accelerator on one hand, and notifies the encrypted cache to read the encrypted data from the DBMS and transmit the read encrypted data to the FPGA memory on the other hand, the query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan, and can perform parallel and pipeline processing on the same repeated computation and send the query result to the query executor, the query executor directly calls the related data from the encrypted cache according to the query result, creates a return result, and returns the return result to the query processor. Through the query accelerator, the same repeated computation is performed parallel and pipeline processing, the processing speed is improved, and in the data processing process, only data interaction with the encrypted cache is needed, the query executor directly calls the related data from the encrypted cache according to the query result, without accessing the DBMS again, the data access time and access times are reduced, and the performance decline is minimized. BRIEF DESCRIPTION OF DRAWINGS

[0056] Figure 1 is a structural schematic diagram of a cloud database management architecture provided by the embodiment of the present application;

[0057] Figure 2 is a structural schematic diagram of a query accelerator provided by the embodiment of the present application;

[0058] Figure 3 is a principle schematic diagram of a SEE provided by the embodiment of the present application;

[0059] Figure 4 is a flow schematic diagram of an accelerated query method provided by the embodiment of the present application.

[0060] The implementation, functional features and advantages of the present application will be further described with reference to the embodiments and the accompanying drawings. DETAILED DESCRIPTION

[0061] In order to make the objects, technical solutions and advantages of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, but not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the protection scope of the present application.

[0062] The cloud database management architecture and the accelerated query method provided by the embodiments of the present application will be described in detail below with reference to the drawings, specific embodiments and application scenarios.

[0063] Embodiment one

[0064] Referring to Figure 1 Fig. 1 shows a structural schematic diagram of a cloud database management architecture provided by an embodiment of the present application.

[0065] The cloud database management architecture provided by the embodiment of the present application comprises a DBMS (Database Management System, cloud database processing system) server 1, an FPGA (Field Programmable Gate Array, field programmable gate array) circuit board 2 and an application program server 3. The FPGA circuit board 2 is in communication connection with the DBMS server 1 through peripheral components. The FPGA circuit board 2 comprises an FPGA memory 21 and a query accelerator 22 which are in communication connection with each other. The application program server 3 comprises a query processor 31 which is in communication connection with a query executor 14. The DBMS server 1 comprises a DBMS 11 and a service agent module 12. The service agent module 12 is provided with an encryption cache 13 and the query executor 14 which are in communication connection with each other. The encryption cache 13 and the query executor 14 are both in communication connection with the DBMS 11. The encryption cache 13 is in communication connection with the FPGA memory 21. The query accelerator 22 is in communication connection with the query executor 14.

[0066] The query processor 31 initiates a query plan to the query executor 14. The query executor 14 sends a query condition to the query accelerator 22 and notifies the encryption cache 13 to read encrypted data from the DBMS 11, and transmits the read encrypted data to the FPGA memory 21. The query accelerator 22 acquires data from the FPGA memory 21 according to the query condition, executes the query plan, and sends the query result to the query executor 14 after parallel and pipeline processing of the same calculation which is repeatedly executed. The query executor 14 directly calls relevant data from the encryption cache 13 according to the query result, creates a return result, and returns the return result to the query processor 31.

[0067] The present application has at least the following beneficial technical effects:

[0068] In the embodiment of the present application, the query processor 31 initiates the query plan to the query executor 14, the query executor 14 sends the query condition to the query accelerator 22 on one hand, and informs the encrypted cache 13 to read the encrypted data from the DBMS 11 and transmits the read encrypted data to the FPGA memory 21 on the other hand, the query accelerator 22 acquires data from the FPGA memory 21 according to the query condition and executes the query plan, and can perform parallel and pipeline processing on the same repeated calculation to send the query result to the query executor 14, the query executor 14 directly calls the related data from the encrypted cache 13 according to the query result, creates a return result, and returns the return result to the query processor 31. Through the parallel and pipeline processing of the query accelerator 22 on the same repeated calculation, the processing speed is improved, and at the same time, only data interaction with the encrypted cache is needed in the data processing process, the query executor 14 directly calls the related data from the encrypted cache according to the query result, without accessing the DBMS 11 again, so that the data access time and access times are reduced, and the performance decline is minimized.

[0069] It should be noted that the query executor 14 is mainly responsible for receiving and executing the query plan. Because the encrypted data is on the FPGA memory 21, the query executor 14 only needs to send the query condition to the FPGA memory 21. Once the encrypted data and the query condition are in the FPGA memory 21, the query executor 14 commands the calculator to execute the processing, the query executor 14 directly calls the related data from the encrypted cache 13 according to the query result, creates a return result, and returns the return result to the query processor 31.

[0070] It should be noted that the query accelerator 22 is mainly responsible for accelerating the word processing, and the query accelerator 22 can be implemented without modifying the DBMS 11, that is, the architecture of the present patent is decoupled from the implementation of the DBMS 11, and can be implemented on various DBMS 11.

[0071] Referring to Figure 2 , a structural schematic diagram of a query accelerator provided by an embodiment of the present application is shown.

[0072] In a possible implementation, the query accelerator 22 comprises a BSP 221 and an FPGA 222; the BSP 221 comprises fixed resources for establishing a communication connection with external devices; the FPGA 222 comprises an SC reader 2221, a Result writer 2222, a Data reader 2223, an SEE module 2224, and an ORE module 2225; one end of the SC reader 2221, the Result writer 2222, and the Data reader 2223 is in communication connection with the FPGA memory 21; the other end of the SC reader 2221, the Result writer 2222, and the Data reader 2223 is in communication connection with the FPGA memory 21 through a FIFO; the Data reader 2223 is configured to sequentially read encrypted data EncData in all rows from the FPGA memory 21; the SC reader 2221 is configured to read encrypted search conditions EnsSC from the FPGA memory 21; and the Result writer 2222 is configured to write matching and non-matching information of each row to the FPGA memory 21.

[0073] In the case that there are encrypted data EncData and encrypted search conditions EncSC in the FIFO, the SEE module 2224 or the ORE module 2225 is executed.

[0074] Referring to Figure 3 FIG. 1 shows a schematic diagram of the principle of SEE provided by an embodiment of the present application.

[0075] In a possible implementation, the SEE module 2224 is configured to perform a pipeline and perform equality checking using EncData and EncSC as inputs, where kw is plaintext data, qr is a search condition, r and r0 are different pseudo-random values, sk_e is a secret key, and sk_s is a secret key shared with an application server; if the plaintext data kw and the search condition qr are equal, the two pseudo-random values r and r0 in the EncSC cancel each other out, and the calculation result is equal to H(F(r)) in the EncData.

[0076] Specifically, the SEE module 2224 can implement encryption of AES as an encryption function, encryption of SHA256 as a hash function, and encryption of a mix column operation of Rijndael as a homomorphic function in a cipher block chaining mode.

[0077] In a possible implementation, the ORE module 2225 is configured to perform sequential checking with EncData and EncSC as inputs, each of which includes a plurality of blocks, ctx1_l, ctx2_l and ctx2_r each consisting of four blocks, and the key of the server is stored in EncSC, and first, the blocks at the same position in ctx1_l and ctx2_l are tested for equality, and if the blocks are not equal, the size relationship between EncData and EncSC is determined by the following formula:

[0078] r = Decode(ctx1_l diff [0:15], Nonce)

[0079]

[0080] wherein diff represents the number of different blocks, Decode is a decoding function, and mpz_tstbit is a programming language underlying function used to obtain the bit value of the nth bit in a string, and the two functions essentially determine equality by XOR of the bit.

[0081] If there is no different block between EncData and EncSC, that is, r = v, it is determined that the two are equal.

[0082] In a possible implementation, the FPGA 222 further includes a WordInfo reading block 2226, and the Data reader 2223 is connected to the FPGA memory 21 through the WordInfo reading block 2226.

[0083] In a possible implementation, the encryption cache 13 is configured to read encrypted data from the DBMS 11, pre-process the encrypted data, and transmit the pre-processed encrypted data to the FPGA memory 21 after deleting unnecessary data.

[0084] It should be understood that the encryption cache 13 has two functions. On the one hand, the encryption cache 13 reads encrypted data from the DBMS 11 and stores the encrypted data, and the query executor 14 can directly retrieve relevant data from the encryption cache 13 according to the query result, without the need to access the DBMS 11 again, thereby reducing data access time and access times and minimizing performance degradation. On the other hand, the encryption cache 13 pre-processes the encrypted data and transmits the pre-processed encrypted data to the FPGA memory 21 after deleting unnecessary data.

[0085] Further, when accepting a ddl instruction, the corresponding data in the DBMS 11 and the encryption cache 13 are updated at the same time to ensure data consistency.

[0086] In a possible implementation, the application server 3 further comprises an application module 32; the application module 32 is in communication connection with the query processor 31; the application module 32 is configured to send a SQL query request to the query processor 31; the query processor 31 is configured to convert the SQL query request into an executable query plan and send the query plan to the query executor 14, and the query processor 31 is further configured to return a query result to the application module 32.

[0087] It should be noted that the query processor 31 has two functions, one function performs encryption-related functions such as managing keys, encrypting and decrypting data, and the other function converts a normal SQL query sent by an application into a query plan that can be executed in a server agent according to the metadata of an encrypted table.

[0088] The query plan is written in JSON format, and the query plan includes search conditions, an encrypted table name, and a column name.

[0089] Embodiment Two

[0090] Referring to Figure 4 Fig. 2 shows a flowchart of an acceleration query method provided by an embodiment of the application.

[0091] The embodiment of the application provides an acceleration query method applied to the cloud database management architecture of the first aspect.

[0092] The acceleration query method comprises the following steps.

[0093] S101: The query processor initiates a query plan to the query executor.

[0094] S102: The query executor sends a query condition to the query accelerator.

[0095] S103: The query executor notifies the encryption cache to read encrypted data from the DBMS.

[0096] S104: The encryption cache transmits the read encrypted data to the FPGA memory.

[0097] S105: The query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan.

[0098] S106: The query accelerator returns a query result to the query executor.

[0099] S107: The query executor directly calls related data from the encryption cache according to the query result, and creates a return result.

[0100] S108: The query executor returns the return result to the query processor.

[0101] The functions and principles of the query processor, the query executor, the query accelerator, the encryption cache, the DBMS, the FPGA memory and the like can refer to Embodiment One, and will not be described herein.

[0102] In a possible implementation, S105 specifically includes:

[0103] S1051: reading the encrypted data EncData in all rows from the FPGA memory in sequence by the Data reader;

[0104] S1052: reading the encrypted query condition EnsSC from the FPGA memory by the SC reader;

[0105] S1053: executing the SSE module or the ORE module in the case that the EncData and the EncSC exist in the FIFO;

[0106] S1054: writing the matching and non-matching information of each row to the FPGA memory by the Result writer.

[0107] In a possible implementation, when performing a word search task, S105 specifically includes:

[0108] S105A: reading the field information from the WordInfo area by the WordInfo reading block, reading the first character of the EncData in each row based on the AoFC in the field information by the Data reader, reading the first character of the EncSC by the SC reader, and writing the field information of the matching row in the WordInfo area and the total number of the matching rows in the Result area to the FPGA memory by the Result writer after the SSE module performs the equality check using the EncSC and the EncData;

[0109] S105B: reading the field information written in step S105A by the WordInfo reading block, reading the second character of the EncData based on the AoFC in the field information by the Data reader, reading the second character of the EncSC by the SC reader, and writing the field information of the matching row in the WordInfo area and the total number of the matching rows in the Result area to the FPGA memory by the Result writer;

[0110] S105C: sequentially performing the matching of the Nth character, where N is the number of characters NoC.

[0111] It should be noted that the accelerated query method of the embodiments of the present application can also be extended to other mode searches. In suffix search, the AoFC in the field information is rewritten by calculating from the NoC and the number of search conditions. In substring search, the field information is copied after the AoFC is incremented by one character, so that the equality check is performed when moving one character.

[0112] The present application has at least the following beneficial technical effects:

[0113] In the embodiments of the present application, the query processor initiates a query plan to the query executor, the query executor sends the query condition to the query accelerator on the one hand, and informs the encrypted cache to read the encrypted data from the DBMS, and transmits the read encrypted data to the FPGA memory, the query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan, and can perform parallel and pipeline processing on the same repeated calculation, and then sends the query result to the query executor, the query executor directly calls the related data from the encrypted cache according to the query result, creates a return result, and returns the return result to the query processor. Through the parallel and pipeline processing of the query accelerator on the same repeated calculation, the processing speed is improved, and only data interaction with the encrypted cache is needed in the data processing process, the query executor directly calls the related data from the encrypted cache according to the query result, without accessing the DBMS again, so that the data access time and access times are reduced, and the performance decline is minimized.

[0114] The above is only an embodiment of the present application and is not intended to limit the present application. The present application can have various changes and variations for those skilled in the art. Any modification, equivalent replacement, improvement, etc. within the spirit and principles of the present application shall be included in the scope of claims of the present application.

Claims

1. A cloud database management architecture, comprising: The DBMS server, the FPGA circuit board, and the application program server; The FPGA circuit board is connected with the DBMS server through a peripheral component; The FPGA circuit board comprises an FPGA memory and a query accelerator which are connected with each other; The application program server comprises a query processor which is connected with the query accelerator; The DBMS server comprises a DBMS and a service agent module, the service agent module is provided with an encryption cache and a query accelerator which are connected with each other, and the encryption cache and the query accelerator are connected with the DBMS; The encryption cache is connected with the FPGA memory; The query accelerator is connected with the query accelerator; The query processor initiates a query plan to the query accelerator, the query accelerator sends a query condition to the query accelerator, and notifies the encryption cache to read encrypted data from the DBMS, and transmits the read encrypted data to the FPGA memory, the query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan, and can perform parallel and pipeline processing on repeated same calculations, and sends a query result to the query accelerator, the query accelerator directly calls related data from the encryption cache according to the query result, creates a return result, and returns the return result to the query processor.

2. The cloud database management architecture of claim 1, wherein, The query accelerator comprises a BSP and an FPGA; The BSP comprises a fixed resource which is connected with an external device; The FPGA comprises an SC reader, a Result writer, a Data reader, an SEE module, and an ORE module; One end of the SC reader, the Result writer, and the Data reader is connected with the FPGA memory; The other end of the SC reader, the Result writer, and the Data reader is connected with the FPGA memory through a FIFO; The Data reader is used for reading encrypted data EncData in all rows from the FPGA memory in sequence; The SC reader is used for reading encrypted query conditions EnsSC from the FPGA memory; The Result writer is used for writing matching and non-matching information of each row to the FPGA memory; If EncData and EncSC exist in the FIFO, the SSE module or the ORE module is executed.

3. The cloud database management architecture according to claim 2, the SSE module is used for executing a pipeline, and performs equality checking using EncData and EncSC as inputs, if plaintext data kw and search condition qr are equal, two pseudo-random values r and r0 in EncSC will offset each other.

4. The cloud database management architecture of claim 2, wherein the ORE module is configured to perform sequential checking with EncData and EncSC as inputs, wherein each of EncData and EncSC comprises a plurality of blocks, wherein ctx1_l, ctx2_l and ctx2_r each comprises four blocks, wherein a key of the server is stored in EncSC, wherein the equality test is first performed on the blocks at the same position in ctx1_l and ctx2_l, and if the blocks are not equal, then the size relationship between EncData and EncSC is determined by the following formula: if r < v, then EncData < EncSC; if r > v, then EncData > EncSC; and if r = v, then EncData = EncSC, wherein diff represents the number of different blocks, Decode is a decoding function, and mpz_tstbit is a programming language underlying function used to obtain the bit value of the nth bit in a string, and the two functions essentially determine equality by XOR of the bit positions. r = Decode(ctx1_l diff [0:15], Nonce) wherein, If there are no different blocks between EncData and EncSC, i.e., r = v, then the two are determined to be equal. The FPGA further comprises a WordInfo reading block, and the Data reader is in communication connection with the FPGA memory through the WordInfo reading block.

5. The cloud database management architecture of claim 2, wherein, The encrypted cache is configured to read encrypted data from the DBMS, pre-process the encrypted data, and transmit the encrypted data to the FPGA memory after deleting unnecessary data.

6. The cloud database management architecture of claim 1, wherein, The application server further comprises an application module.

7. The cloud database management architecture of claim 1, wherein, The application module is in communication connection with the query processor. The application module is configured to send an SQL query request to the query processor. The query processor is configured to convert the SQL query request into an executable query plan and send the query plan to the query executor, and the query processor is further configured to return a query result to the application module. The accelerated query method is applied to the cloud database management architecture of any one of claims 1 to 5, and the accelerated query method comprises:

8. An accelerated query method, characterized by, S101: The query processor initiates a query plan to the query executor. S102: The query executor sends the query condition to the query accelerator. S103: The query executor notifies the encrypted cache to read encrypted data from the DBMS. S104: The encrypted cache transmits the read encrypted data to the FPGA memory. S105: The query accelerator acquires data from the FPGA memory according to the query condition and executes the query plan. S106: The query accelerator returns a query result to the query executor. S107: The query executor directly calls relevant data from the encrypted cache according to the query result, and creates a return result. S108: The query executor returns the return result to the query processor. The S105 specifically comprises:

9. The method of claim 8, wherein, S1051: The Data reader reads encrypted data EncData in all rows from the FPGA memory in sequence. S1052: The SC reader reads encrypted query condition EnsSC from the FPGA memory. ​ S1053: If there are EncData and EncSC in the FIFO, then execute the SSE module or the ORE module; S1054: Write the matching and non-matching information of each row to the FPGA memory through the Result writer.

10. The method of claim 8, wherein, When performing the word search task, the S105 specifically includes: S105A: Read the field information from the WordInfo area through the WordInfo reading block, read the first character of the EncData in each row based on the AoFC in the field information, read the first character of the EncSC by the SC reader, and write the field information of the matching row in the WordInfo area and the total number of matching rows in the Result area to the FPGA memory by the Result writer after the SSE module performs the equality check using the EncSC and the EncData; S105B: Read the field information written in step S105A through the WordInfo reading block, read the second character of the EncData based on the AoFC in the field information by the Data reader, read the second character of the EncSC by the SC reader, and write the field information of the matching row in the WordInfo area and the total number of matching rows in the Result area to the FPGA memory by the Result writer; S105C: Perform the matching of the Nth character in turn, N being the number of characters NoC.

Citation Information

Patent Citations

  • A middleware method for realizing searchable encryption relational database caching

    CN109597829A

  • Method and device for accessing database

    CN115130118A