Proxy-Proof Public Key Authentication Searchable Encryption Method and Device
Patent Information
- Application Number
- CN202311707929.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-12
- Publication Date
- 2026-09-22
- Estimated Expiration
- 2043-12-12
AI Technical Summary
然而,公钥认证可搜索加密一大弊端显著牺牲了检索效率,在公钥认证可搜索加密中,一个接收方若要检索多位发送方加密的密文,则需要使用自己的私钥和每个发送方的公钥生成若干个陷门,以供远程服务器代为检索匹配的密文
[0066]其一,本发明提供了一种免除对代理服务器依赖且支持关键搜索功能和密文更新功能的公钥认证可搜索加密方法,其使用发送方、接收方以及远程服务器独立地进行互不相交的通信,本申请无需额外的代理服务器,大大降低了检索开销,避免了为抵抗关键词猜测攻击和降低检索开销而使用额外的代理服务器带来的花销问题,既提高了安全性,又显著提升了检索效率;
Smart Images

Figure CN117792623B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of data encryption, and in particular to a proxy-free public key authentication searchable encryption method and a corresponding apparatus. Background Technology
[0002] With the increasing popularity of cloud storage, outsourcing data to remote servers has become a common data storage method, but privacy issues have also arisen. One way to address privacy is to encrypt the data before outsourcing, but this method may limit user access to the data. Public Key Searchable Encryption (PEKS) technology has solved this problem to some extent, supporting searches for encrypted keywords without decryption, thus enabling retrieval of ciphertext data bound to keywords. However, in practical applications, the keyword space is relatively small, users typically use keywords frequently, and the total number of keywords is insufficient. Furthermore, any user (including adversaries) can use a user's public key to encrypt keywords, leading to a brute-force attack called Keyword Guessing Attack (KGA). KGA attacks, especially those launched by adversaries within the remote server provider, are particularly difficult to detect and prevent.
[0003] Later, Public Key Authentication Searchable Encryption (PAEKS) technology was proposed. PAEKS adds authentication to the encryptor, requiring the encryptor (sender) to input their private key when encrypting keywords. Simultaneously, the retrieval party (receiver) verifies the validity of the ciphertext by inputting the sender's public key. This makes it difficult for any adversary to generate ciphertext that can be verified by the recipient without possessing the private key of any legitimate sender, thus resisting KGA attacks. However, a major drawback of PAEKS is the significant sacrifice in retrieval efficiency. In PAEKS, if a recipient wants to retrieve ciphertext encrypted by multiple senders, they need to generate several trapdoors using their own private key and each sender's public key, allowing a remote server to retrieve matching ciphertext.
[0004] In view of the fact that existing public-key searchable encryption technology has low security and is susceptible to brute-force attacks, and that public-key authentication searchable encryption requires additional proxy servers, which significantly sacrifices retrieval efficiency, the applicant has made corresponding explorations to solve these problems. Summary of the Invention
[0005] The purpose of this application is to solve the above-mentioned problems by providing a proxy-free public key authentication searchable encryption method and corresponding apparatus.
[0006] To achieve the various objectives of this application, the following technical solution is adopted:
[0007] A proxyless public-key authenticated searchable encryption method proposed for one of the purposes of this application includes:
[0008] The receiver initiates a keyword search request to generate system global parameters, and generates a public-private key pair for the sender and receiver based on the system global parameters;
[0009] In response to the keyword encryption command, the system global parameters and the recipient's public key are sent to the sender. The sender determines the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender.
[0010] In response to the first trapdoor generation command, the system global parameters and the sender's public key are sent to the receiver. The receiver determines the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be searched, and the system global parameters.
[0011] In response to the first search matching command, the system global parameters, the first encrypted keyword, and the first trapdoor keyword are sent to the server. The server performs matching based on the first encrypted keyword and the first trapdoor keyword. If the matching is successful, the first encrypted keyword corresponding to the plaintext keyword to be retrieved is sent to the receiver.
[0012] In response to the update token generation instruction, the system global parameters and the sender's public key are sent to the receiver. The receiver determines the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters.
[0013] In response to the ciphertext update command, the system global parameters, the sender's public key, and the update token associated with the sender are sent to the server. The server updates the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determines the second ciphertext keyword that is de-associated with the sender.
[0014] In response to the second trapdoor generation instruction, the receiver determines the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be searched, and the system global parameters;
[0015] In response to the second search matching command, the system global parameters and the second trapdoor keyword are sent to the server. The server performs matching based on the second trapdoor keyword and the second ciphertext keyword. If the match is successful, the second ciphertext keyword corresponding to the plaintext keyword to be retrieved is sent to the recipient to complete the proxyless public key authentication searchable encryption that supports ciphertext updates.
[0016] Optionally, the step of generating a public-private key pair for the sender and receiver based on the system global parameters includes:
[0017] Select The element x in the group, according to the description An element x in the group generates the sender's private key x;
[0018] The sender's public key X is generated based on the generator g on group G, and the sender's public-private key pair is generated based on the system's global parameters, wherein the sender's public key is X = g. x The public-private key pair of the sender is (pk S ,sk S );
[0019] Select The elements y1, y2, y3, u, v on the group, according to the above... The elements y1, y2, y3, u, v in the group generate the receiver's private key (y1, y2, y3, u, v);
[0020] The receiver's public key is generated based on the generator g on group G, and a public-private key pair for the receiver is generated based on the system's global parameters, wherein the receiver's public key is... The public-private key pair of the receiver is (pk R ,sk R ), where g is a generator of G.
[0021] Optionally, the step of sending the system global parameters and the recipient's public key to the sender, and the sender determining the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender, includes:
[0022] Generate two random numbers r1 and r2, and obtain the public key of the receiver;
[0023] The first part C1, the second part C2, the third part C3, and the fourth part C4 of the first ciphertext keyword are calculated and determined.
[0024] The encrypted first ciphertext keyword C is determined based on the first part C1, the second part C2, the third part C3, and the fourth part C4 of the first ciphertext keyword. w and the first ciphertext keyword C w Uploaded to the server;
[0025] The first part C1 of the first ciphertext keyword is: The second part of the first encrypted keyword The third part C3 of the first ciphertext keyword is The fourth part C4 of the first ciphertext keyword is First ciphertext keyword C w C w = (C1, C2, C3, C4).
[0026] Optionally, the step of sending the system global parameters and the sender's public key to the receiver, and the receiver determining the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be searched, and the system global parameters, includes:
[0027] Generate a random number r3 and obtain the sender's public key;
[0028] Calculate and determine the first part T1 of the first trapdoor keyword and the second part T2 of the first trapdoor keyword;
[0029] The encrypted first trapdoor keyword T is obtained based on the first part T1 and the second part T2 of the first trapdoor keyword. w And the first trap key T w Uploaded to the server;
[0030] Wherein, the sender's public key X is X = g x The first part T1 of the first trapdoor keyword is The second part T2 of the first trapdoor keyword is The first trapdoor keyword T w For T w = (T1, T2).
[0031] Optionally, the step of sending the system global parameters, the first ciphertext keyword, and the first trapdoor keyword to the server, and the server matching based on the first ciphertext keyword and the first trapdoor keyword, and if the match is successful, sending the first ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver, includes:
[0032] Based on the first encrypted keyword C uploaded by the sender W and the first trapdoor keyword T generated by the receiver W Perform the first search match;
[0033] A matching search is performed based on the system's global parameters, and the following formula is calculated:
[0034]
[0035] If the match is successful, then the first ciphertext keyword C will be... W Return it to the recipient.
[0036] Optionally, the step of sending the system global parameters and the sender's public key to the receiver, and the receiver determining the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters, includes:
[0037] The receiver calculates and determines the update token based on the sender's public key, the system global parameters, and the receiver's private key, and uploads the sender's public key and the update token to the server.
[0038] The update token is:
[0039]
[0040] in,
[0041] Optionally, the step of sending the system global parameters, the sender's public key, and the update token associated with the sender to the server, and the server updating the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determining the second ciphertext keyword to be unassociated with the sender, includes:
[0042] In response to the ciphertext update command, the server receives the sender's public key X and the first ciphertext keyword C uploaded by the sender. w The second ciphertext keyword for disconnecting from the sender is calculated and determined based on the system's global parameters.
[0043] The first encrypted keyword C w Updated to second encrypted keyword And store the second ciphertext keyword The C5 is:
[0044]
[0045] Optionally, the step of the receiver determining the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be searched, and system global parameters includes:
[0046] Generate a random number r4, and calculate and determine the second trapdoor keyword based on the plaintext keyword w′ that the receiver wants to search for, the system global parameters, and the receiver's private key;
[0047] Calculate and determine the first part of the second trapdoor keyword The second part of the second trapdoor keyword And the third part of the second trapdoor keyword
[0048] According to the first part of the second trapdoor keyword The second part of the second trapdoor keyword And the third part of the second trapdoor keyword Determine the encrypted second trapdoor keyword And upload it to the server;
[0049] Among them, the first part of the second trapdoor keyword for The second part of the second trapdoor keyword for The third part of the second trapdoor keyword for Second Trap Keyword for
[0050] Optionally, the step of sending the system global parameters and the second trapdoor keyword to the server, and the server matching the second trapdoor keyword and the second ciphertext keyword, and if the match is successful, sending the second ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver, includes:
[0051] According to the second ciphertext key Second Trapdoor Keywords Perform a second search and match, based on the system's global parameters, and calculate the following formula:
[0052]
[0053] If a match is found, return the second encrypted keyword. Give it to the recipient.
[0054] A proxyless public-key authenticated searchable encryption device, provided for another purpose of this application, comprises:
[0055] The public-private key pair generation module is configured to generate system-wide parameters when the receiver initiates a keyword search request, and generate public-private key pairs for the sender and receiver based on the system-wide parameters.
[0056] The first ciphertext generation module is configured to respond to a keyword encryption command by sending the system global parameters and the receiver's public key to the sender. The sender determines the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender.
[0057] The first trapdoor generation module is configured to respond to the first trapdoor generation instruction by sending the system global parameters and the sender's public key to the receiver. The receiver determines the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be searched, and the system global parameters.
[0058] The first search matching module is configured to respond to a first search matching command by sending the system global parameters, the first encrypted keyword, and the first trapdoor keyword to the server. The server performs matching based on the first encrypted keyword and the first trapdoor keyword. If the matching is successful, the first encrypted keyword corresponding to the plaintext keyword to be retrieved is sent to the receiver.
[0059] The update token generation module is configured to respond to an update token generation command by sending the system global parameters and the sender's public key to the receiver. The receiver determines the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters.
[0060] The ciphertext update module is configured to respond to a ciphertext update command by sending the system global parameters, the sender's public key, and the update token associated with the sender to the server. The server updates the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determines the second ciphertext keyword that is de-associated with the sender.
[0061] The second trapdoor generation module is configured to respond to a second trapdoor generation instruction, wherein the receiver determines the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be searched, and system global parameters.
[0062] The second search matching module is configured to respond to a second search matching command by sending the system global parameters and the second trapdoor keyword to the server. The server performs matching based on the second trapdoor keyword and the second ciphertext keyword. If the match is successful, the server sends the second ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver to complete the proxyless public key authentication searchable encryption that supports ciphertext updates.
[0063] An electronic device provided for another purpose of this application includes a central processing unit and a memory, the central processing unit being configured to invoke and run a computer program stored in the memory to perform the steps of the agentless public key authentication searchable encryption method described in this application.
[0064] A computer-readable storage medium is provided for another purpose of this application, which stores, in the form of computer-readable instructions, a computer program implemented according to the agentless public key authentication searchable encryption method, which, when invoked by a computer, executes the steps included in the corresponding method.
[0065] Compared to existing technologies, this application addresses the problems of low security and susceptibility to brute-force attacks in existing public-key searchable encryption technologies, as well as the need for additional proxy servers that significantly sacrifice retrieval efficiency. This application offers the following advantages, including but not limited to:
[0066] Firstly, this invention provides a public key authentication searchable encryption method that eliminates the need for a proxy server and supports key search and ciphertext update functions. It uses independent and non-overlapping communication between the sender, receiver, and remote server. This application does not require an additional proxy server, which greatly reduces the search overhead and avoids the cost problem caused by using an additional proxy server to resist keyword guessing attacks and reduce search overhead. This improves both security and significantly enhances search efficiency.
[0067] Secondly, this application implements a new public key authentication searchable encryption scheme that eliminates the dependence on proxy servers and supports key search and ciphertext update functions. When the receiver generates trapdoors, it does not need to generate several trapdoors that are linearly related to the number of senders, but only a constant number of trapdoors, thereby reducing computational and communication overhead.
[0068] Third, this application does not rely on a proxy server. No proxy server is needed to update the ciphertext stored in the server organization for the recipient; the server organization can complete the ciphertext update task itself, thereby eliminating the economic overhead of renting a proxy server.
[0069] Fourth, this application satisfies the indistinguishability of keyword ciphertext under adaptive selective keyword attack and the indistinguishability of trapdoor under selective keyword attack, thereby enabling the invention to achieve security against keyword guessing attacks executed by adversaries (internal personnel of the server) and keyword guessing attacks by online external attackers.
[0070] Fifth, this application has an authentication function, which is constructed based on the key negotiation between the two users, thus having an access control function, that is, it has a certain authentication function. Moreover, the sender and the receiver have their own public and private keys, which can be classified to a certain extent, reducing the server's search work. Attached Figure Description
[0071] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the following description of the embodiments taken in conjunction with the accompanying drawings, wherein:
[0072] Figure 1 This is an exemplary network architecture used for the agentless public key authentication searchable encryption method in this application;
[0073] Figure 2 This is a schematic diagram illustrating the process of generating public and private key pairs for the sender and receiver based on system global parameters in an embodiment of this application.
[0074] Figure 3 This is a flowchart illustrating the process of determining the first ciphertext keyword in an embodiment of this application;
[0075] Figure 4 This is a flowchart illustrating the process of determining the first trapdoor keyword in an embodiment of this application;
[0076] Figure 5 This is a schematic diagram illustrating the process of the server matching based on the first ciphertext keyword and the first trapdoor keyword in an embodiment of this application;
[0077] Figure 6 This is a flowchart illustrating the process of determining the second ciphertext keyword to be disconnected from the sender in an embodiment of this application.
[0078] Figure 7 This is a flowchart illustrating the process of determining the second trapdoor keyword in an embodiment of this application;
[0079] Figure 8 This is a schematic diagram of the structure of the computer device in the embodiments of this application. Detailed Implementation
[0080] The embodiments of this application are described in detail below. Examples of these embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain this application, and should not be construed as limiting this application.
[0081] Those skilled in the art will understand that, unless specifically stated otherwise, the singular forms “a,” “an,” “the,” and “the” used herein may also include the plural forms. It should be further understood that the term “comprising” as used in this application means the presence of the stated features, integers, steps, operations, elements, and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof. It should be understood that when we say an element is “connected” or “coupled” to another element, it can be directly connected or coupled to the other element, or there may be intermediate elements. Furthermore, “connected” or “coupled” as used herein can include wireless connections or wireless coupling. The term “and / or” as used herein includes all or any units and all combinations of one or more associated listed items.
[0082] It will be understood by those skilled in the art that, unless otherwise defined, all terms used herein (including technical and scientific terms) have the same meaning as commonly understood by one of ordinary skill in the art to which this application pertains. It should also be understood that terms such as those defined in general dictionaries should be understood to have the same meaning as in the context of the prior art, and should not be interpreted in an idealized or overly formal sense unless specifically defined as herein.
[0083] Those skilled in the art will understand that the terms "client," "terminal," and "terminal device" as used herein include both devices that receive wireless signals, devices that only possess wireless signal receiver capabilities without transmission capabilities, and devices with receiving and transmitting hardware, devices that have receiving and transmitting hardware capable of bidirectional communication over a bidirectional communication link. Such devices may include: cellular or other communication devices such as personal computers or tablets, having single-line displays, multi-line displays, or cellular or other communication devices without multi-line displays; PCS (Personal Communications Service) that can combine voice, data processing, fax, and / or data communication capabilities; PDA (Personal Digital Assistant) that may include a radio frequency receiver, pager, internet / intranet access, web browser, notepad, calendar, and / or GPS (Global Positioning System) receiver; and conventional laptops and / or handheld computers or other devices that have and / or include radio frequency receivers. As used herein, "client," "terminal," and "terminal device" can be portable, transportable, installed in a means of transportation (air, sea, and / or land), or suitable and / or configured to operate locally and / or in a distributed manner, operating in any other location on Earth and / or in space. "Client," "terminal," and "terminal device" as used herein can also be a communication terminal, an internet access terminal, or a music / video playback terminal, such as a PDA, a MID (Mobile Internet Device), and / or a mobile phone with music / video playback capabilities, or a smart TV, set-top box, etc.
[0084] The hardware referred to by the names "server," "client," and "service node" in this application is essentially an electronic device with the equivalent capabilities of a personal computer. It is a hardware device with the necessary components revealed by the von Neumann architecture, such as a central processing unit (including an arithmetic logic unit and a control unit), memory, input devices, and output devices. The computer program is stored in its memory, and the central processing unit loads the program stored in the secondary storage into the main memory to run it, execute the instructions in the program, and interact with the input and output devices to complete specific functions.
[0085] It should be noted that the concept of "server" used in this application can also be extended to the case of server clusters. Based on the network deployment principles understood by those skilled in the art, the servers should be logically divided. Physically, these servers can be independent of each other but accessible through interfaces, or they can be integrated into a single physical computer or a computer cluster. Those skilled in the art should understand this flexibility and should not use it to constrain the implementation of the network deployment method in this application.
[0086] One or more of the technical features of this application, unless explicitly specified herein, can be deployed on a server and accessed by a client remotely calling the online service interface provided by the server, or can be directly deployed and run on a client for access.
[0087] Unless otherwise specified, the neural network models referenced or potentially referenced in this application may be deployed on a remote server and invoked remotely on the client, or deployed on a client with the capability to invoke directly. In some embodiments, when running on the client, the corresponding intelligence may be acquired through transfer learning in order to reduce the requirements on the client's hardware resources and avoid excessive consumption of the client's hardware resources.
[0088] Unless otherwise specified, all data involved in this application may be stored remotely on a server or on a local terminal device, as long as it is suitable for use by the technical solution of this application.
[0089] Those skilled in the art will understand that although the various methods in this application are described based on the same concept and thus present commonality among them, they can be performed independently unless otherwise specified. Similarly, the various embodiments disclosed in this application are all based on the same inventive concept; therefore, concepts expressed in the same way, as well as concepts that are appropriately changed for convenience but are expressed differently, should be understood equivalently.
[0090] Unless otherwise expressly stated, the various embodiments disclosed in this application can be combined in a cross-cutting manner to flexibly construct new embodiments, as long as such combination does not depart from the inventive spirit of this application and can meet the needs of the prior art or solve a certain deficiency in the prior art. Those skilled in the art should be aware of such modifications.
[0091] Please see Figure 1 This embodiment provides a public key authentication searchable encryption system that eliminates the need for a proxy server and supports key search and ciphertext update functions. The system includes n senders and n receivers, i.e., a total of n users, each connected to and communicating with the server.
[0092] The server is used to execute a first search and matching phase, a second search and matching phase, and a ciphertext update phase. The first search and matching phase performs a first search and matching between the ciphertext keywords generated by the sender and the first trapdoor keywords generated by the receiver. The second search and matching phase performs a second search and matching between the ciphertext keywords in the second ciphertext database and the second trapdoor keywords generated by the receiver. The ciphertext update phase updates the first ciphertext keyword information using the first ciphertext keyword information sent by the sender and the update token associated with the sender, generating second ciphertext keyword information that is unbound from the sender.
[0093] The sender (sender organization) performs the encryption key stage by inputting the system's global parameters, the receiver's public key, and its own private key into a set of multiple plaintext keywords to obtain the first ciphertext keyword information.
[0094] The receiving party (receiving institution) executes the first trapdoor generation phase, the second trapdoor generation phase, and the update token generation phase. In the first trapdoor generation phase, the system global parameters and the sender's public key are sent to the receiving party. The receiving party uses its private key, inputs the plaintext keywords to be searched, and then uses the sender's public key and the system global parameters to obtain the first trapdoor keyword information. In the second trapdoor generation phase, the system global parameters are sent to the receiving party. The receiving party uses its private key, inputs the plaintext keywords to be searched, and then uses the system global parameters to obtain the second trapdoor keyword information. In the update token generation phase, the system global parameters and the sender's public key are sent to the receiving party. The receiving party uses its private key, the sender's public key, and the system global parameters to generate an update token associated with the sender.
[0095] Based on the above exemplary scenarios, the agentless public key authentication searchable encryption method of this application, in one embodiment, includes:
[0096] Step S10: The receiver initiates a keyword search request to generate system global parameters, and generates a public-private key pair for the sender and the receiver based on the system global parameters;
[0097] Generate the sender's public-private key pair (pk) based on the system's global parameter PP. S ,sk S The sender's private key x and public key X = g x ; Generate the receiver's public-private key pair (pk) based on the system's global parameters PP. R ,sk R The recipient's private key (y1, y2, y3, u, v) and the recipient's public key.
[0098] Specifically, please refer to Figure 2 The steps for generating public-private key pairs for the sender and receiver based on the system's global parameters specifically include:
[0099] Step S101, Select The element x in the group, according to the description An element x in the group generates the sender's private key x;
[0100] Step S103: Generate the sender's public key X based on the generator g on group G, and generate the sender's public-private key pair based on the system global parameters, wherein the sender's public key is X = g. x The public-private key pair of the sender is (pk S ,sk S );
[0101] Step S105, Select The elements y1, y2, y3, u, v on the group, according to the above... The elements y1, y2, y3, u, v in the group generate the receiver's private key (y1, y2, y3, u, v);
[0102] Step S107: Generate the receiver's public key based on the generator g on group G, and generate the receiver's public-private key pair based on the system global parameters, wherein the receiver's public key is... The public-private key pair of the receiver is (pk R ,sk R ), where g is a generator of G.
[0103] Step S20: Respond to the keyword encryption instruction and send the system global parameters and the receiver's public key to the sender. The sender determines the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender.
[0104] Based on the plaintext keyword w submitted by the sender and the public key pk of the receiver. R and the sender's private key sk S Calculation determines the first ciphertext keyword C w = (C1, C2, C3, C4), and upload to the server;
[0105] First ciphertext keyword C w =(C1,C2,C3,C4) is:
[0106]
[0107] Where r1 and r2 are randomly selected elements, and H1, H2, and H are hash functions.
[0108] Based on the above calculation results, the first ciphertext keyword C is obtained. w = (C1, C2, C3, C4), and set the first ciphertext keyword C w Uploaded to the server.
[0109] Please see Figure 3 The process of sending the system global parameters and the recipient's public key to the sender, and the sender determining the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender, specifically includes:
[0110] Step S201: Generate two random numbers r1 and r2, and obtain the public key of the receiver;
[0111] Step S203: Calculate and determine the first part C1, the second part C2, the third part C3, and the fourth part C4 of the first ciphertext keyword;
[0112] Step S205: Determine the encrypted first ciphertext keyword C based on the first part C1, the second part C2, the third part C3, and the fourth part C4 of the first ciphertext keyword. w and the first ciphertext keyword C w Uploaded to the server;
[0113] The first part C1 of the first ciphertext keyword is: The second part C2 of the first ciphertext keyword is The third part C3 of the first ciphertext keyword is The fourth part C4 of the first ciphertext keyword is First ciphertext keyword C w C w= (C1, C2, C3, C4).
[0114] Step S30: In response to the first trapdoor generation instruction, the system global parameters and the sender's public key are sent to the receiver. The receiver determines the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be searched, and the system global parameters.
[0115] The receiver inputs the plaintext keyword w′ to search for, and based on the system's global parameters, the encryptor's public key X = g. x The first trapdoor keyword T is determined by calculating the private key (y1, y2, y3) of the receiver. w = (T1, T2), and upload to the server;
[0116] The first trapdoor keyword T w =(T1,T2) is:
[0117]
[0118] Here, r3 is a randomly selected element.
[0119] Based on the above calculation results, the first trapdoor keyword T is obtained. w = (T1, T2), and set the first trapdoor keyword T w Uploaded to the server.
[0120] Please see Figure 4 The process of sending the system global parameters and the sender's public key to the receiver, and the receiver determining the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be searched, and the system global parameters, specifically includes:
[0121] Step S301: Generate a random number r3 and obtain the sender's public key;
[0122] Step S303: Calculate and determine the first part T1 of the first trapdoor keyword and the second part T2 of the first trapdoor keyword;
[0123] Step S305: Obtain the encrypted first trapdoor keyword T based on the first part T1 and the second part T2 of the first trapdoor keyword. w And the first trap key T w Uploaded to the server;
[0124] Wherein, the sender's public key X is X = g x The first part T1 of the first trapdoor keyword is The second part T2 of the first trapdoor keyword is The first trapdoor keyword T w For T w = (T1, T2).
[0125] Step S40: In response to the first search matching instruction, the system global parameters, the first encrypted keyword, and the first trapdoor keyword are sent to the server. The server performs matching based on the first encrypted keyword and the first trapdoor keyword. If the matching is successful, the first encrypted keyword corresponding to the plaintext keyword to be retrieved is sent to the receiver.
[0126] Please see Figure 5 The process of sending the system global parameters, the first ciphertext keyword, and the first trapdoor keyword to the server, and the server matching the first ciphertext keyword and the first trapdoor keyword, and if the match is successful, sending the first ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver, specifically includes:
[0127] Step S401: Based on the first encrypted keyword C uploaded by the sender W and the first trapdoor keyword T generated by the receiver W Perform the first search match;
[0128] Step S403: Perform a matching search based on the system global parameters and calculate the following formula:
[0129]
[0130] Step S405: If the match is successful, then the first ciphertext keyword C... W Return it to the recipient.
[0131] Specifically, the server receives the first encrypted keyword uploaded by the sender and the first trapdoor keyword T generated by the receiver. w′ The matching search is performed based on the system's global parameters;
[0132] like If the match is successful, the first encrypted keyword corresponding to the plaintext keyword to be retrieved will be sent to the recipient.
[0133] The correctness is as follows:
[0134]
[0135] The above equation holds if and only if w = w′.
[0136] Step S50: In response to the update token generation instruction, the system global parameters and the sender's public key are sent to the receiver. The receiver determines the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters.
[0137] The process of sending the system global parameters and the sender's public key to the receiver, and the receiver determining the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters, specifically includes:
[0138] The receiver calculates and determines the update token based on the sender's public key, the system global parameters, and the receiver's private key, and uploads the sender's public key and the update token to the server.
[0139] The update token is:
[0140]
[0141] in,
[0142] Specifically, the receiver uses the sender's public key X = g x The system global parameters and the recipient's private key (y1, y2, y3, u, v) are used to calculate and determine the update token Δ, and the sender's public key X and Δ are uploaded to the server.
[0143] The update token Δ is:
[0144]
[0145] Based on the above calculation results, the update token Δ is obtained, and the public key X and the update token Δ on the encryptor's side are uploaded to the server.
[0146] Step S60: In response to the ciphertext update instruction, the system global parameters, the sender's public key, and the update token associated with the sender are sent to the server. The server updates the first ciphertext keyword according to the sender's public key and the update token associated with the sender, and determines the second ciphertext keyword that is de-associated with the sender.
[0147] Please see Figure 6 The steps of sending the system global parameters, the sender's public key, and the update token associated with the sender to the server, and the server updating the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determining the second ciphertext keyword to be unassociated with the sender, specifically include:
[0148] Step S601: Responding to the ciphertext update command, the server receives the sender's public key X and the first ciphertext keyword C uploaded by the sender. w The second ciphertext keyword for disconnecting from the sender is calculated and determined based on the system's global parameters.
[0149] Step S603: The first encrypted keyword C w Updated to second encrypted keyword And store the second ciphertext keyword The C5 is:
[0150]
[0151] Step S70: In response to the second trapdoor generation instruction, the receiver determines the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be searched, and the system global parameters;
[0152] In response to the second trapdoor generation command, the receiver inputs the plaintext keyword w′ to be searched, and calculates and determines the second trapdoor keyword based on the system global parameters and the receiver's private key (y1, y2, y3, u, v). and the second trapdoor keyword Uploaded to the server;
[0153] Second trapdoor keyword for:
[0154]
[0155] Where r4 is a randomly selected element;
[0156] Based on the above calculation results, the second trapdoor keyword is obtained. And Uploaded to the server.
[0157] Please see Figure 7 The step of the receiver determining the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be searched, and system global parameters specifically includes:
[0158] Step S701: Generate a random number r4, and calculate and determine the second trapdoor keyword based on the plaintext keyword w′ that the receiver wants to search for, the system global parameters, and the receiver's private key;
[0159] Step S703: Calculate and determine the first part of the second trapdoor keyword. The second part of the second trapdoor keyword And the third part of the second trapdoor keyword
[0160] Step S705: Based on the first part of the second trapdoor keyword The second part of the second trapdoor keyword And the third part of the second trapdoor keyword Determine the encrypted second trapdoor keyword And upload it to the server;
[0161] Among them, the first part of the second trapdoor keyword for The second part of the second trapdoor keyword for The third part of the second trapdoor keyword for Second Trap Keyword for
[0162] Step S80: In response to the second search matching instruction, the system global parameters and the second trapdoor keyword are sent to the server. The server performs matching based on the second trapdoor keyword and the second ciphertext keyword. If the match is successful, the second ciphertext keyword corresponding to the plaintext keyword to be retrieved is sent to the receiver to complete the proxyless public key authentication searchable encryption that supports ciphertext updates.
[0163] The steps of sending the system global parameters and the second trapdoor keyword to the server, the server matching the second trapdoor keyword and the second ciphertext keyword, and if a match is successful, sending the second ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver include:
[0164] According to the second ciphertext key Second Trapdoor Keywords Perform a second search and match, based on the system's global parameters, and calculate the following formula:
[0165]
[0166] If a match is found, return the second encrypted keyword. Give it to the recipient.
[0167] Specifically, in response to the second search matching command, the server updates the first encrypted keyword to obtain the second encrypted keyword. And received the second trapdoor keyword The search is performed based on global system parameters.
[0168] like If the match is successful, the second ciphertext keyword corresponding to the plaintext keyword to be retrieved will be sent to the recipient to complete the agentless public key authentication searchable encryption that supports ciphertext updates.
[0169] The server updates the first encrypted keyword to obtain the second encrypted keyword. And received the second trapdoor keyword The following formula is calculated using the system's global parameter PP for matching search. If the following formula is true, the match is successful, as shown below:
[0170]
[0171] The correctness is as follows:
[0172]
[0173] The above equation holds if and only if w = w′.
[0174] Compared to existing technologies, this application addresses the problems of low security and susceptibility to brute-force attacks in existing public-key searchable encryption technologies, as well as the need for additional proxy servers that significantly sacrifice retrieval efficiency. This application offers the following advantages, including but not limited to:
[0175] Firstly, this invention provides a public key authentication searchable encryption method that eliminates the need for a proxy server and supports key search and ciphertext update functions. It uses independent and non-overlapping communication between the sender, receiver, and remote server. This application does not require an additional proxy server, which greatly reduces the search overhead and avoids the cost problem caused by using an additional proxy server to resist keyword guessing attacks and reduce search overhead. This improves both security and significantly enhances search efficiency.
[0176] Secondly, this application implements a new public key authentication searchable encryption scheme that eliminates the dependence on proxy servers and supports key search and ciphertext update functions. When the receiver generates trapdoors, it does not need to generate several trapdoors that are linearly related to the number of senders, but only a constant number of trapdoors, thereby reducing computational and communication overhead.
[0177] Third, this application does not rely on a proxy server. No proxy server is needed to update the ciphertext stored in the server organization for the recipient; the server organization can complete the ciphertext update task itself, thereby eliminating the economic overhead of renting a proxy server.
[0178] Fourth, this application satisfies the indistinguishability of keyword ciphertext under adaptive selective keyword attack and the indistinguishability of trapdoor under selective keyword attack, thereby enabling the invention to achieve security against keyword guessing attacks executed by adversaries (internal personnel of the server) and keyword guessing attacks by online external attackers.
[0179] Fifth, this application has an authentication function, which is constructed based on the key negotiation between the two users, thus having an access control function, that is, it has a certain authentication function. Moreover, the sender and the receiver have their own public and private keys, which can be classified to a certain extent, reducing the server's search work.
[0180] A proxyless public-key authentication searchable encryption device provided for one of the purposes of this application includes a public-private key pair generation module 1100, a first ciphertext generation module 1200, a first trapdoor generation module 1300, a first search and matching module 1400, an update token generation module 1500, a ciphertext update module 1600, a second trapdoor generation module 1700, and a second search and matching module 1800. The public-private key pair generation module 1100 is configured to generate system global parameters when the receiver initiates a keyword search request, and generate a public-private key pair for the sender and receiver based on the system global parameters. The first ciphertext generation module 1200 is configured to send the system global parameters and the receiver's public key to the sender in response to a keyword encryption command. The sender determines the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender. The first trapdoor generation module 1300 is configured to generate the system global parameters and the sender's public key in response to a first trapdoor generation command. The key is sent to the receiver, who determines the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be searched, and system global parameters. The first search matching module 1400 is configured to respond to a first search matching command by sending the system global parameters, the first encrypted keyword, and the first trapdoor keyword to the server. The server performs matching based on the first encrypted keyword and the first trapdoor keyword. If a match is successful, the server sends the first encrypted keyword corresponding to the plaintext keyword to be searched to the receiver. The update token generation module 1500 is configured to respond to an update... A new token generation instruction sends the system global parameters and the sender's public key to the receiver. The receiver determines an update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters. A ciphertext update module 1600 is configured to respond to a ciphertext update instruction by sending the system global parameters, the sender's public key, and the update token associated with the sender to a server. The server updates the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determines a second ciphertext keyword to be de-associated with the sender. A second trapdoor generation module... 1700 is configured to respond to a second trapdoor generation command, wherein the receiver determines a second trapdoor keyword based on its private key, the plaintext keyword to be searched, and system global parameters; 1800 is configured to respond to a second search matching command, sending the system global parameters and the second trapdoor keyword to the server, wherein the server performs matching based on the second trapdoor keyword and the second ciphertext keyword, and if the matching is successful, sends the second ciphertext keyword corresponding to the plaintext keyword to be searched to the receiver, thereby completing a proxyless public key authentication searchable encryption that supports ciphertext updates.
[0181] Based on any embodiment of this application, please refer to Figure 8 Another embodiment of this application also provides an electronic device, which can be implemented by a computer device, such as... Figure 8 The diagram shows the internal structure of a computer device. The computer device includes a processor, a computer-readable storage medium, a memory, and a network interface connected via a system bus. The computer-readable storage medium stores an operating system, a database, and computer-readable instructions. The database may store a sequence of control information. When executed by the processor, the computer-readable instructions enable the processor to implement a proxyless public-key authentication searchable encryption method. The processor provides computing and control capabilities, supporting the operation of the entire computer device. The memory stores computer-readable instructions, which, when executed by the processor, enable the processor to execute the proxyless public-key authentication searchable encryption method of this application. The network interface of the computer device is used for communication with a terminal. Those skilled in the art will understand that… Figure 8 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0182] In this embodiment, the processor executes the specific functions of each module and its sub-modules in the agentless public key authentication searchable encryption device. The memory stores the program code and various types of data required to execute the aforementioned modules or sub-modules. The network interface is used for data transmission between the user terminal and the server. In this embodiment, the memory stores the program code and data required to execute all modules / sub-modules in the agentless public key authentication searchable encryption device of this application. The server can call the server's program code and data to execute the functions of all sub-modules.
[0183] This application also provides a storage medium storing computer-readable instructions, which, when executed by one or more processors, cause the one or more processors to perform the steps of the agentless public key authentication searchable encryption method described in any embodiment of this application.
[0184] This application also provides a computer program product, including a computer program / instructions that, when executed by one or more processors, implement the steps of the agentless public key authentication searchable encryption method described in any embodiment of this application.
[0185] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments of this application can be implemented by a computer program instructing related hardware. This computer program can be stored in a computer-readable storage medium, and when executed, it can include the processes of the embodiments of the methods described above. The aforementioned storage medium can be a magnetic disk, optical disk, read-only memory (ROM), or random access memory (RAM), etc.
[0186] The above description is only a partial embodiment of this application. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the principle of this application, and these improvements and modifications should also be considered within the scope of protection of this application.
[0187] In summary, this invention provides a novel public-key authenticated searchable encryption scheme that eliminates reliance on proxy servers and supports key search and ciphertext update functions. When the receiver sends a trapdoor, it can generate several trapdoors based on the number of senders, or merge several senders to generate a single trapdoor, reducing the computational and communication overhead of trapdoor communication. Furthermore, this application enables ciphertext update functionality in a single-server scenario without relying on a proxy server, and satisfies the indistinguishability of keyword ciphertext under adaptive chosen-keyword attacks and the indistinguishability of trapdoors under chosen-keyword attacks. This ensures the invention's security against keyword guessing attacks executed internally by adversaries and keyword guessing attacks by online external attackers. It also features authentication functionality, constructed based on key negotiation between the two users, thus providing access control capabilities.
Claims
1. A proxy-free public key authentication searchable encryption method, characterized in that, include: The receiver initiates a keyword search request to generate system global parameters, and generates a public-private key pair for the sender and receiver based on the system global parameters; In response to the keyword encryption command, the system global parameters and the recipient's public key are sent to the sender. The sender determines the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender. In response to the first trapdoor generation command, the system global parameters and the sender's public key are sent to the receiver. The receiver determines the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be retrieved, and the system global parameters. In response to the first search matching command, the system global parameters, the first encrypted keyword, and the first trapdoor keyword are sent to the server. The server performs matching based on the first encrypted keyword and the first trapdoor keyword. If the matching is successful, the first encrypted keyword corresponding to the plaintext keyword to be retrieved is sent to the receiver. In response to the update token generation instruction, the system global parameters and the sender's public key are sent to the receiver. The receiver determines the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters. In response to the ciphertext update command, the system global parameters, the sender's public key, and the update token associated with the sender are sent to the server. The server updates the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determines the second ciphertext keyword that is de-associated with the sender. In response to the second trapdoor generation command, the receiver determines the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be retrieved, and the system global parameters; In response to the second search matching command, the system global parameters and the second trapdoor keyword are sent to the server. The server performs matching based on the second trapdoor keyword and the second ciphertext keyword. If the match is successful, the second ciphertext keyword corresponding to the plaintext keyword to be retrieved is sent to the recipient to complete the proxyless public key authentication searchable encryption that supports ciphertext updates.
2. The proxyless public key authentication searchable encryption method according to claim 1, characterized in that, The steps for generating public-private key pairs for the sender and receiver based on the system's global parameters include: Select Elements in the group According to the above Elements in the group Generate the sender's private key ; According to the group Generators on Generate the sender's public key The sender's public-private key pair is generated based on the system's global parameters, wherein the sender's public key is... The public-private key pair of the sender is ; Select Elements in the group According to the above Elements in the group Generate the recipient's private key ; According to the group Generators on Generate the receiver's public key, and generate a public-private key pair for the receiver based on the system's global parameters, wherein the receiver's public key is... The public-private key pair of the recipient is , yes The generator.
3. The agentless public key authentication searchable encryption method according to claim 2, characterized in that, The step of sending the system global parameters and the recipient's public key to the sender, and the sender determining the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender, includes: Generate two random numbers Obtain the public key of the recipient; The first part of the first ciphertext key is determined by calculation. The second part of the first encrypted keyword The third part of the first encrypted keyword and the fourth part of the first encrypted keyword ; According to the first part of the first ciphertext keyword Part Two Part Three and Part Four Determine the first ciphertext keyword after encryption. and the first encrypted keyword Uploaded to the server; The first part of the first encrypted keyword for: The second part of the first encrypted keyword for The third part of the first encrypted keyword for The fourth part of the first encrypted keyword for The first encrypted keyword for , These are randomly selected elements. It is a hash function.
4. The proxy-free public key authentication searchable encryption method according to claim 3, characterized in that, The process of sending the system global parameters and the sender's public key to the receiver, and the receiver determining the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be retrieved, and the system global parameters, includes: Generate random numbers Obtain the sender's public key; Calculate and determine the first part of the first trapdoor keyword and the second part of the first trapdoor keyword ; According to the first part of the first trapdoor keyword and the second part of the first trapdoor keyword Obtain the encrypted first trapdoor keyword and the first trap keyword Uploaded to the server; Among them, the sender's public key for The first part of the first trapdoor keyword for The second part of the first trapdoor keyword for The first trapdoor keyword for .
5. The agentless public key authentication searchable encryption method according to claim 4, characterized in that, The steps of sending the system global parameters, the first ciphertext keyword, and the first trapdoor keyword to the server, the server matching the first ciphertext keyword and the first trapdoor keyword, and if a match is successful, sending the first ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver include: Based on the first encrypted keyword uploaded by the sender and the first trapdoor keyword generated by the receiver Perform the first search match; A matching search is performed based on the system's global parameters, and the following formula is calculated: ; If the match is successful, then the first encrypted keyword will be... Return it to the recipient.
6. The agentless public key authentication searchable encryption method according to claim 3, characterized in that, The steps of sending the system global parameters and the sender's public key to the receiver, and the receiver determining the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters, include: The receiver calculates and determines the update token based on the sender's public key, the system global parameters, and the receiver's private key, and uploads the sender's public key and the update token to the server. The update token is: in, .
7. The proxyless public key authentication searchable encryption method according to claim 3, characterized in that, The steps of sending the system global parameters, the sender's public key, and the update token associated with the sender to the server, and the server updating the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determining the second ciphertext keyword to be unassociated with the sender, include: In response to the ciphertext update command, the server receives the sender's public key. and the first encrypted keyword uploaded by the sender. The second ciphertext keyword for disconnecting from the sender is calculated and determined based on the system's global parameters. First ciphertext keyword Updated to second encrypted keyword =( , ), and store the second ciphertext keyword. The for: 。 8. The agentless public key authentication searchable encryption method according to claim 7, characterized in that, The step of the receiver determining the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be retrieved, and system global parameters includes: Generate random numbers Based on the plaintext keywords that the recipient wants to retrieve The system's global parameters and the receiver's private key are used to calculate and determine the second trapdoor keyword; Calculate and determine the first part of the second trapdoor keyword The second part of the second trapdoor keyword And the third part of the second trapdoor keyword ; According to the first part of the second trapdoor keyword The second part of the second trapdoor keyword And the third part of the second trapdoor keyword Determine the encrypted second trapdoor keyword And upload it to the server; Among them, the first part of the second trapdoor keyword for The second part of the second trapdoor keyword for The third part of the second trapdoor keyword for The second trap key for .
9. The agentless public key authentication searchable encryption method according to claim 7, characterized in that, The steps of sending the system global parameters and the second trapdoor keyword to the server, the server matching the second trapdoor keyword and the second ciphertext keyword, and if a match is successful, sending the second ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver include: According to the second ciphertext key Second Trapdoor Keywords Perform a second search and match, based on the system's global parameters, and calculate the following formula: ; If a match is found, return the second encrypted keyword. Give it to the recipient.
10. A proxy-free public key authentication searchable encryption device, characterized in that, include: The public-private key pair generation module is configured to generate system-wide parameters when the receiver initiates a keyword search request, and generate public-private key pairs for the sender and receiver based on the system-wide parameters. The first ciphertext generation module is configured to respond to a keyword encryption command by sending the system global parameters and the receiver's public key to the sender. The sender determines the first ciphertext keyword based on the sender's public-private key pair, the system global parameters, and the plaintext keyword submitted by the sender. The first trapdoor generation module is configured to respond to the first trapdoor generation instruction by sending the system global parameters and the sender's public key to the receiver. The receiver determines the first trapdoor keyword based on the receiver's private key, the sender's public key, the plaintext keyword to be retrieved, and the system global parameters. The first search matching module is configured to respond to a first search matching command by sending the system global parameters, the first encrypted keyword, and the first trapdoor keyword to the server. The server performs matching based on the first encrypted keyword and the first trapdoor keyword. If the matching is successful, the first encrypted keyword corresponding to the plaintext keyword to be retrieved is sent to the receiver. The update token generation module is configured to respond to an update token generation command by sending the system global parameters and the sender's public key to the receiver. The receiver determines the update token associated with the sender based on the receiver's private key, the sender's public key, and the system global parameters. The ciphertext update module is configured to respond to a ciphertext update command by sending the system global parameters, the sender's public key, and the update token associated with the sender to the server. The server updates the first ciphertext keyword based on the sender's public key and the update token associated with the sender, and determines the second ciphertext keyword that is de-associated with the sender. The second trapdoor generation module is configured to respond to a second trapdoor generation instruction. The receiver determines the second trapdoor keyword based on the receiver's private key, the plaintext keyword to be retrieved, and the system's global parameters. The second search matching module is configured to respond to a second search matching command by sending the system global parameters and the second trapdoor keyword to the server. The server performs matching based on the second trapdoor keyword and the second ciphertext keyword. If the match is successful, the server sends the second ciphertext keyword corresponding to the plaintext keyword to be retrieved to the receiver to complete the proxyless public key authentication searchable encryption that supports ciphertext updates.
Citation Information
Patent Citations
Condition hiding searchable proxy re-encryption method based on block chain and storage medium
CN114598472A
Method of time-delay encryption with keyword search and system using the same
US20220255744A1