End-to-end encrypted cloud storage method with security key management

By generating and managing keys on user portable devices and negotiating session keys with cloud servers to establish verifiable encrypted indexes, the key management and search efficiency issues in end-to-end encrypted cloud storage systems are solved, achieving secure key management and fast search.

CN121508801APending Publication Date: 2026-02-10UNIV OF ELECTRONICS SCI & TECH OF CHINA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511826339.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-05
Publication Date
2026-02-10

AI Technical Summary

Technical Problem

Existing end-to-end encrypted cloud storage systems face difficulties in key management, especially in resisting offline dictionary guessing attacks launched by compromised cloud servers. At the same time, they suffer from low search efficiency and the inability to verify the correctness of search results.

Method used

By employing cryptographic components such as hash functions, pseudo-random functions, message authentication codes, and symmetric encryption algorithms, users can generate and manage keys on portable devices, negotiate session keys with cloud servers through mutual authentication protocols, and establish verifiable encrypted indexes to achieve fast ciphertext search.

Benefits of technology

It implements secure key management, resists attacks from compromised cloud servers, and supports verifiable, fast, keyword-based ciphertext search.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121508801A_ABST
    Figure CN121508801A_ABST
Patent Text Reader

Abstract

The invention belongs to a communication technology in a cloud storage system, and provides an end-to-end encryption cloud storage method with a security key management function, which is characterized in that a user can securely reinforce a password by using a portable personal device through combining short authentication string message authentication and an unexpected pseudo-random function. The reinforced password may be used to derive cryptographic keys such as an encryption key and a message authentication code key. An external enemy and a compromised cloud server cannot interact with the equipment to obtain the reinforced password, so that an offline dictionary guessing attack cannot be initiated. In order to meet the requirement that a user retrieves outsourced data from ciphertext data, the user uses a message authentication code to establish an authentication label and uses a dictionary to establish an encrypted index, and verifiable keyword-based rapid ciphertext search is realized by reducing the access times of the dictionary.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention pertains to communication technologies in cloud storage systems, specifically relating to an end-to-end encrypted cloud storage technology with secure key management. Background Technology

[0002] Cloud storage services allow users to outsource large amounts of locally stored data to cloud servers and flexibly maintain and access this outsourced data, reducing the burden of local data management. While cloud storage offers numerous conveniences, users cannot physically manage their outsourced data, making the confidentiality of this data a primary concern. Existing cloud service providers typically encrypt outsourced data to protect it from external attacks. However, since the cloud server possesses the encryption key, its confidentiality cannot be guaranteed should the server be compromised. End-to-end encrypted cloud storage enables users to encrypt data locally using their own managed keys before outsourcing it to the cloud server, preventing external attackers and compromised cloud servers from accessing or tampering with the outsourced data.

[0003] End-to-end encrypted cloud storage presents users with the challenging problem of key management, including key generation and storage. Human users are typically not adept at generating and storing cryptographic keys used to access outsourced data, and inappropriate key management strategies can lead to key exposure or loss. One viable solution is to derive the cryptographic key from the user's password. Password-based key derivation makes end-to-end encrypted cloud storage well-suited for ordinary user applications, eliminating the need for complex key management. Most existing end-to-end encrypted cloud storage solutions use hash functions as password-based key derivation functions. However, passwords typically have low entropy and are vulnerable to offline dictionary guessing attacks, such as rainbow table attacks launched by external adversaries or compromised cloud servers. Salt, a long random bit string, is typically used in the key generation process to increase the entropy of the generated key. Salt is usually stored by the cloud server. Therefore, such solutions only resist offline dictionary guessing attacks launched by external adversaries. Compromised cloud servers can still launch offline dictionary guessing attacks to obtain the user's password and subsequently the user's encryption key, thus compromising data confidentiality. In addition to adding salt, password hardening is another alternative method to increase password entropy. However, in existing end-to-end encrypted cloud storage solutions, the key material used to harden passwords is still stored by the cloud server. This allows compromised cloud servers to still launch offline dictionary guessing attacks.

[0004] Some password-based encryption schemes employ distributed or threshold-based key management across multiple servers, imposing significant computational overhead on service providers. In end-to-end encrypted cloud storage systems, no server should be involved in the encryption or key management process. Using multiple servers to manage keys deviates from the requirements of end-to-end encryption, allowing compromised servers to still launch offline dictionary guessing attacks.

[0005] Furthermore, to meet users' needs for searching data within encrypted data, existing end-to-end encrypted cloud storage systems support keyword-based encrypted search functionality. However, after receiving the keyword search symbol, the cloud server needs to perform tests and calculations on all indexes of each file one by one, resulting in very low search efficiency. Moreover, this system does not support verifiable searches, meaning users cannot be certain whether the search results returned by the cloud server are correct. Summary of the Invention

[0006] The problem this invention aims to solve is to provide a solution in an end-to-end encrypted cloud storage system that can resist offline dictionary guessing attacks launched by compromised servers, achieve secure key management, and simultaneously enable verifiable, keyword-based fast encrypted search.

[0007] The technical solution implemented by this invention is an end-to-end encrypted cloud storage method with secure key management, comprising the following steps:

[0008] System initialization steps: Determine the system common parameters based on security parameters, and select the cryptographic components required to implement this method. The cryptographic components include: a hash function for generating commitments and key derivation, a pseudo-random function for deriving keys and generating pseudo-random tags, a message authentication code for identity authentication and generating data authentication tags, an authentication encryption algorithm based on one-time random numbers for protecting the confidentiality and integrity of keys and files, and a symmetric encryption algorithm for constructing encryption indexes.

[0009] User registration steps: The user uses the hash function, combined with their account identity, password, and a random key, to generate a reinforced password, and uses the pseudo-random function to derive a key encryption key for encrypting the master key based on the reinforced password; the user uses the authentication encryption algorithm based on one-time random numbers and the key encryption key to encrypt a randomly generated master key, and sends the account registration information containing the master key ciphertext to the cloud server, while secretly storing the random key in a personal portable device;

[0010] Key generation steps: The user securely regenerates the hardened password by interacting with the portable device and verifying with a short authentication string. Using the pseudo-random function, the user simultaneously derives a message authentication code key for mutual authentication with the server, a verification key for subsequent verification of search results, and a key encryption key for decrypting the master key based on the hardened password.

[0011] Subsequently, the user uses the message authentication code and the message authentication code key to execute a mutual authentication protocol with the cloud server to negotiate a session key, and securely obtains and decrypts the master key from the server using the session key;

[0012] Data encryption steps: The user encrypts the file using the master key and the authentication encryption algorithm based on one-time random numbers, and derives the keyword key from the master key using the pseudo-random function based on the dictionary and array structure, encrypts the file identifier or pointer block using the symmetric encryption algorithm, and generates an authentication tag using the message authentication code to establish an encryption index;

[0013] Data retrieval steps: The user generates a keyword search token based on the master key and sends it to the server; the server searches according to the encrypted index and returns the result file identifier set and the corresponding authentication tag; the user uses the verification key exported in the key generation step to verify the correctness of the authentication tag, and after successful verification, uses the master key to decrypt and obtain the original file.

[0014] Specifically, the process of generating a hardened password in the key generation step includes:

[0015] The user uses the hash function to calculate the blinded password hash value and the corresponding commitment, and sends it to the device.

[0016] The device returns a short, random string;

[0017] The user sends the random number and a self-selected short string required to open the commitment to the device, and calculates the checksum sent by the device and the self-selected short string, and sends it to the device through the short authentication string channel;

[0018] The device verifies the commitment and checksum. After successful verification, the reinforced blind password value is calculated and sent back to the user.

[0019] The user deblinds the value and ultimately obtains the hardened password.

[0020] Specifically, the key generation step, which involves executing a mutual authentication protocol with the cloud server to negotiate the session key, includes:

[0021] Users exchange their respective temporary public keys with the server;

[0022] Both parties use the aforementioned message authentication code key to generate authentication tags for messages containing their respective identities and the temporary public keys they have exchanged, and then send these tags to each other.

[0023] Both parties verify the authentication tag sent by the other party. After successful verification, each party calculates the same session key based on its own temporary private key and the other party's temporary public key.

[0024] Specifically, the data encryption process of establishing an encryption index includes:

[0025] The default block size for dictionaries is b, and the block size for arrays is B.

[0026] For a set of file identifiers containing keywords, pseudo-random search tags are generated using the pseudo-random function.

[0027] If the number of file identifiers in the file identifier set does not exceed b, it is determined to be a small set. After being encrypted using the symmetric encryption algorithm, it is stored in the dictionary as a record along with the pseudo-random tag and the authentication tag generated using the message authentication code.

[0028] If the number of file identifiers in the file identifier set is greater than b, it is determined to be a large set. The symmetric encryption algorithm is used to encrypt the file identifiers in blocks and store them in empty index positions of the array, thereby obtaining a set of pointers to these encrypted blocks.

[0029] The beneficial effects of this invention are:

[0030] 1. Users can store key materials on a portable personal device. Only the device owner can access the device and collaborate with it to generate hardened passwords, resisting offline dictionary guessing attacks launched by compromised cloud servers. The hardened password can be used to derive encryption keys, Message Authentication Code (MAC) keys, and verification keys, achieving secure key management.

[0031] 2. A verifiable and searchable encryption mechanism based on message authentication codes and dictionaries is provided. When applied to an end-to-end encrypted cloud storage system, it enables fast encrypted search based on keywords, and users can verify whether the search results returned by the cloud server are correct. Attached Figure Description

[0032] Figure 1 This is a schematic diagram of the key relationship in an embodiment;

[0033] Figure 2 This is a schematic diagram illustrating how users create encrypted indexes for an example. Detailed Implementation

[0034] The implementation steps of this invention are as follows:

[0035] 1. System Initialization

[0036] Based on security parameters, determine system common parameters, and select a hash function, a pseudo-random function, a message authentication code, an authentication encryption algorithm based on one-time random numbers, and a symmetric encryption algorithm.

[0037] 2. Registration Phase

[0038] 1) The user selects an account identity, password, and random key, calculates a reinforced password, and uses the reinforced password to calculate a key encryption key and a MAC key; the user selects a random master key and uses the key encryption key to encrypt the master key;

[0039] 2) The user secretly stores the random key in a portable device, generates account registration information, and sends the registration information to the cloud server. The cloud server then generates an account registry for the user.

[0040] 3. Key Generation Phase

[0041] (1) User generates a password for security.

[0042] 1) The user calculates the blind password and corresponding promise, and sends them to the device, which randomly selects a short string to send to the user;

[0043] 2) The user sends a random number and a short string to the device to open the commitment. Then, the user calculates the checksum of their chosen short string and the short string sent by the device, and sends it to the device via the Short Authentication String (SAS) channel;

[0044] 3) The device generates and verifies the commitment and checksum. If the verification fails, the device abandons the process; otherwise, the device calculates a hardened, blinded password and sends it to the user. The user decrypts the hardened, blinded password to obtain the hardened password.

[0045] (2) User generates master key and verification key

[0046] 1) The user calculates the encryption key, MAC key, and verification key using the hardened password; then, the user and the server execute a mutual authentication protocol, using message authentication codes to authenticate each other's identities and negotiate a session key;

[0047] Specifically, the user and the server exchange their respective temporary public keys; both parties use the MAC key to generate authentication tags for messages containing their identities and temporary public keys and send them to each other for verification; after successful verification, both parties use the temporary public key and their respective private keys to calculate the same session key;

[0048] 2) The server finds the ciphertext of the master key based on the user's account registration information, encrypts the master key ciphertext and related data using the session key, and sends the result to the user;

[0049] 3) The user decrypts the ciphertext to obtain the master key ciphertext and related data. Then, the user uses the key to encrypt the key and related data to decrypt the master key ciphertext to obtain the master key. The user saves the master key, verification key, and session key.

[0050] 4. Data Encryption Stage

[0051] (1) File encryption

[0052] 1) The user randomly selects a file key and a random number, encrypts the file key and the file using an authenticated encryption algorithm, and sends the file identifier, the random number used, and the generated ciphertext to the server;

[0053] 2) The server stores the random number and the encrypted file key in the file key registry, and stores the random number and the encrypted file key in the file registry.

[0054] (2) Create an encrypted index

[0055] The default dictionary block (record) size is The block size of the array is Users based on and Divide the set of identifiers corresponding to all files containing a keyword into a large set and a small set: if the number of file identifiers in the set does not exceed a certain limit... If it is greater than 1, then it is a small set; if it is greater than 1, then it is a small set. Then it is a large set.

[0056] 1) The user uses the master key to derive the key for each keyword and calculates the authentication tag for that keyword;

[0057] 2) For small sets, the user fills them with... Each element is used to calculate a pseudo-random tag using a key associated with each keyword, and then encrypts the identifier. The user adds the pseudo-random tag, authentication tag, and encrypted identifier to a list. middle;

[0058] 3) For large collections, each user processes... Each identifier. The user divides the set into blocks of fixed size, encrypts these blocks, and selects empty index positions in array A (these index positions form pointers to the encrypted blocks), and stores the encrypted blocks in them; that is, selects empty indices in the array and stores the encrypted blocks at the empty index positions.

[0059] 3-1) Case 1: If the number of empty indices is less than or equal to the size of the blocks in the dictionary. The user fills the empty index with Each element calculates a pseudo-random tag and a separate encrypted pointer block. The user adds the tag and ciphertext to the list. middle;

[0060] 3-2) Case 2: If the number of empty indexes is greater than The user divides the empty index into sections of size 1. The user then encrypts these blocks and selects a new empty index from the array, storing the encrypted block at the new empty index. If the number of new empty indices is less than or equal to... If the user repeats the operation in case 1, then the user repeats the operation in case 2 until the number of pointers is less than or equal to the given number. The user performs the operation in case 1;

[0061] 4) After performing the above operations on the identifier set of all keywords, the user can then use the list... Create a dictionary and set the encrypted index as a dictionary and array.

[0062] 5. Data Retrieval Phase

[0063] (1) Keyword search

[0064] 1) To retrieve a file containing a specific keyword, the user calculates a key for that keyword and then encrypts the key using their session key. The user then sends the resulting ciphertext along with their account information to the server.

[0065] 2) The server decrypts the ciphertext to obtain the key for the keyword, generates a pseudo-random tag, and uses the tag to look up the dictionary to obtain the authentication tag and ciphertext (identifier ciphertext or pointer block ciphertext).

[0066] 3) The server decrypts the ciphertext. If the decryption result is a file identifier, the server outputs these file identifiers; otherwise, the server uses the pointer obtained from the decryption to retrieve the corresponding block from the array until the file identifier is found;

[0067] 4) The server returns the set of file identifiers, authentication tags, file registry, and file key registry found during the keyword search process to the user.

[0068] (2) File decryption

[0069] 1) The user uses the locally stored verification key to recalculate the authentication tag based on the received set of file identifiers, and compares it with the authentication tag returned by the server to verify the correctness of the search results. If correct, the user retrieves a random number and the encrypted file key from the file key registry, and retrieves a random number and the encrypted file from the file registry.

[0070] 2) The user uses the master key to decrypt the encrypted file key to obtain the file key, and then uses the file key to decrypt the encrypted file to obtain the file.

[0071] This embodiment provides an end-to-end encrypted cloud storage method with secure key management, including the following steps:

[0072] The specific steps for system initialization are as follows:

[0073] According to safety parameters Trustworthy and authoritative determination of system public parameters ,in Denotes a multiplicative cyclic group of order p. and It is a collision-resistant hash function. It is a pseudo-random function. It is the key length. It is the length of a one-time random number. It is the Short Authentication String (SAS) channel capacity. It is a message authentication code. and These are the message authentication code label generation and verification algorithms. It is an authentication and encryption algorithm based on one-time random numbers. It is the corresponding decryption algorithm. It is a symmetric encryption algorithm. It is the corresponding decryption algorithm. and The key space is .

[0074] The specific steps during the registration phase are as follows:

[0075] 1) User selects account identity User password and random key Calculate the reinforcement password ;

[0076] 2) User calculates encryption key and Message Authentication Code (MAC) key ;

[0077] 3) The user selects a random master key. Using authentication encryption algorithms to Encrypt the key ,Right now ;

[0078] 4) The user gives the key Secretly stored in a portable device (such as a mobile phone), the account registration information is set to... and put Send to the cloud server;

[0079] 5) The cloud server generates an account registry for the user. .

[0080] The specific steps in the key generation phase are as follows:

[0081] (1) User generates a password for security.

[0082] 1) User randomly selects Calculate the blinded hash value and corresponding commitments and put Send to the device;

[0083] 2) Received Then, the equipment randomly selects and put Send to the user;

[0084] 3) The user put Send to device to open commitment Then, the user calculates the checksum. And send it to the device via the SAS channel;

[0085] 4) Order This represents the message received by the device from the public channel. The device calculates... and checksum Then, the equipment inspection equation. and Does it hold true? If any equation does not hold true, the equipment abandons the calculation; otherwise, the equipment continues the calculation. and put Send to the user;

[0086] 5) User deblinding get And generate a reinforced password. .

[0087] (2) User generates master key and verification key

[0088] 1) Users calculate the encryption key separately. MAC key and verification key ;

[0089] 2) The user and server execute a mutual authentication protocol to authenticate each other's identities and negotiate a session key. ;

[0090] 2-1) Record the server's identity identifier The user and the server each put their identity on display. and Send to the recipient;

[0091] 2-2) Server queries account registry get ,save ;

[0092] 2-3) User randomly selects ,calculate The server selects randomly. ,calculate The user and the server respectively put and Send to the recipient;

[0093] 2-4) The user and server calculate the MAC tag respectively. and and put and Send them to the recipients separately;

[0094] 2-5) The user and the server respectively execute the MAC tag verification algorithm. and .if and If both are verified to be valid, then the user and the server will each set the session key to... and ;

[0095] 3) The server will Add to session registry In, and using the key Calculate ciphertext ,Bundle Send to the user;

[0096] 4) User decrypts ciphertext get Then, the user decrypts. Obtain the master key Users save session state. .

[0097] The specific steps in the data encryption phase are as follows:

[0098] (1) File encryption

[0099] 1) Record the document The identifier is The user randomly selects the file key. and random numbers Then, as Figure 1 As shown, the user encrypts the file key and the file separately, i.e. and The user put Send to the server;

[0100] 2) The server received Then, the server first checks Ensure file identifier It has not been used. Then, the server... Stored in table In the middle, search the session registry get .if The server will give up. Otherwise, the server will... Stored in the file key registry In the middle, put Stored in the file registry middle.

[0101] (2) Create an encrypted index

[0102] make Indicates the presence of keywords The set of all file identifiers, where , This represents the set of keywords in all files. This indicates that the identifier size is dependent. The parameters, and Representing arrays respectively and dictionary The size of the medium block. That is, For dictionary The maximum number of elements that each record can hold. For arrays The maximum number of elements that each storage block can hold. If , It is considered a small set; if , Considered a large set, in which ;

[0103] 1) The user uses the master key Export the key for each keyword and And calculate ;

[0104] 2) For small sets Users Fill as Each element. Then, the user calculates the pseudo-random label. The encrypted identifier is obtained The user pairs the tag with the encrypted text. Add to list middle;

[0105] 3) For large sets User calculation Each processing An identifier. Specifically, such as Figure 2 As shown, when At that time, the user put Divided into sizes block ,Bundle Fill as Each element. Then, in the array Select an empty index ,for ,calculate and put exist middle;

[0106] 3-1) Case 1: If Users Fill as For each element, calculate the pseudo-random label. and a separate encrypted pointer block The user pairs the tag with the encrypted text. Add to list In the middle. At this time. ,Right now Figure 2 duped The situation at that time;

[0107] 3-2) Case 2: If User calculation .like Figure 2 As shown, when At that time, the user put Divided into sizes block ,Bundle Fill as Each element. Then, in the array Select empty index ,for ,calculate and put Stored in middle;

[0108] if Users Fill as The user then repeats the operation in case 1, and at this time... ;

[0109] if The user repeats the operation in case 2 until the number of pointers is less than or equal to... The user sets these pointers to In this case, similar to scenario 1, the user encrypts and stores these pointers;

[0110] 4) For all identifier sets After performing the above calculations, the user selects the appropriate option from the list. Create a dictionary Set the encrypted index to .

[0111] The specific steps in the data retrieval phase are as follows:

[0112] (1) Keyword search

[0113] 1) In order to retrieve the keywords The file, user calculation and Then, the user uses the session key. encryption ,Right now The user put and their own user account identity identifier Send to the server;

[0114] 2) Server computing and Look up words in the dictionary get This process is represented as ,in ;

[0115] 3) The server uses a key. Decryption If the decryption result is a file identifier, the server outputs that file identifier; otherwise, the server uses the pointer obtained from the decryption to retrieve the file identifier from the array. The server retrieves blocks from the database. If these blocks contain file identifiers, the server outputs these file identifiers; otherwise, the server continues searching based on pointers to the next level until a file identifier is found.

[0116] 4) Order This indicates that the server found information about the keywords during the keyword search process described above. File identifier set For each file identifier The server searches the session registry. Obtain user account identity identifier .if The server will give up; otherwise, the server will... , File registry and file key registry Return it to the user.

[0117] (2) File decryption

[0118] 1) User verification equation The system checks if the condition is met to determine if the server returned the correct search results. If not, the user abandons the process; otherwise, proceed to the following steps.

[0119] 2) The user retrieves the file key from the registry. retrieve From the file registry retrieve .like Figure 1 As shown, the user uses the master key. Decrypting the encrypted file key yields the file key. That is, user computing ;

[0120] 3) The user uses the file key Decrypting encrypted files Get the file That is, user computing .

Claims

1. An end-to-end encrypted cloud storage method with secure key management, characterized in that, Includes the following steps: System initialization steps: Determine the system common parameters based on security parameters, and select the cryptographic components required to implement this method. The cryptographic components include: a hash function for generating commitments and key derivation, a pseudo-random function for deriving keys and generating pseudo-random tags, a message authentication code for identity authentication and generating data authentication tags, an authentication encryption algorithm based on one-time random numbers for protecting the confidentiality and integrity of keys and files, and a symmetric encryption algorithm for constructing encryption indexes. User registration steps: The user uses the hash function, combined with their account identity, password, and a random key, to generate a reinforced password, and uses the pseudo-random function to derive a key encryption key for encrypting the master key based on the reinforced password; the user uses the authentication encryption algorithm based on one-time random numbers and the key encryption key to encrypt a randomly generated master key, and sends the account registration information containing the master key ciphertext to the cloud server, while secretly storing the random key in a personal portable device; Key generation steps: The user securely regenerates the hardened password by interacting with the portable device and verifying with a short authentication string. Using the pseudo-random function, the user simultaneously derives a message authentication code key for mutual authentication with the server, a verification key for subsequent verification of search results, and a key encryption key for decrypting the master key based on the hardened password. Subsequently, the user uses the message authentication code and the message authentication code key to execute a mutual authentication protocol with the cloud server to negotiate a session key, and securely obtains and decrypts the master key from the server using the session key; Data encryption steps: The user encrypts the file using the master key and the authentication encryption algorithm based on one-time random numbers, and derives the keyword key from the master key using the pseudo-random function based on the dictionary and array structure, encrypts the file identifier or pointer block using the symmetric encryption algorithm, and generates an authentication tag using the message authentication code to establish an encryption index; Data retrieval steps: The user generates a keyword search token based on the master key and sends it to the server; the server searches according to the encrypted index and returns the result file identifier set and the corresponding authentication tag; the user uses the verification key exported in the key generation step to verify the correctness of the authentication tag, and after successful verification, uses the master key to decrypt and obtain the original file.

2. The method as described in claim 1, characterized in that, The specific process of generating a hardened password in the key generation step includes: The user uses the hash function to calculate the blinded password hash value and the corresponding commitment, and sends it to the device. The device returns a short, random string; The user sends the random number and a self-selected short string required to open the commitment to the device, and calculates the checksum sent by the device and the self-selected short string, and sends it to the device through the short authentication string channel; The device verifies the commitment and checksum. After successful verification, the reinforced blind password value is calculated and sent back to the user. The user deblinds the value and ultimately obtains the reinforced password.

3. The method as described in claim 1, characterized in that, The key generation step, which involves executing a mutual authentication protocol with the cloud server to negotiate the session key, specifically includes: Users exchange their respective temporary public keys with the server; Both parties use the aforementioned message authentication code key to generate authentication tags for messages containing their respective identities and the temporary public keys they have exchanged, and then send these tags to each other. Both parties verify the authentication tag sent by the other party. After successful verification, each party calculates the same session key based on its own temporary private key and the other party's temporary public key.

4. The method as described in claim 1, characterized in that, The data encryption step of establishing an encryption index specifically includes: The default dictionary block size is b The block size of the array is B ; For a set of file identifiers containing keywords, pseudo-random search tags are generated using the pseudo-random function. If the number of file identifiers in the file identifier set does not exceed b If it is determined to be a small set, it is encrypted using the symmetric encryption algorithm and then stored in the dictionary as a record along with the pseudo-random tag and the authentication tag generated using the message authentication code. If the number of file identifiers in the file identifier set is greater than b If the result is large, it is determined to be a large set. The symmetric encryption algorithm is used to encrypt the blocks and store them in empty index positions of the array, thereby obtaining a set of pointers to these encrypted blocks.

5. The method as described in claim 4, characterized in that, In the step of storing pointer blocks that point to these array blocks in the dictionary and encrypt them using the symmetric encryption algorithm, the process is handled recursively according to the number of pointer blocks as follows: Case 1: If the number of pointer blocks is less than or equal to the block size of the dictionary. b Then fill the set of pointers to b Each element is used to calculate a pseudo-random label using the pseudo-random function, and the padded pointer block is encrypted using the symmetric encryption algorithm. Then, the pseudo-random label, the corresponding authentication label, and the encrypted pointer block are added as a record to an intermediate list used to finally construct the dictionary. Case 2: If the number of pointer blocks is greater than b Then divide the group of pointers into groups of size . B The blocks are encrypted using the symmetric encryption algorithm, and the encrypted blocks are stored in new empty index positions of the array, thus obtaining a new set of pointers; Then, determine the number of pointers in the new pointer group: If it is less than or equal to b If so, then proceed as in case 1; If it is still greater than b Then repeat the process in case 2 until a set of quantities less than or equal to is obtained. b The pointer is then handled according to case 1.