Public key authenticated encryption method and system for searchable similar data

By introducing a public-key authentication encryption method using bilinear mapping and locality-sensitive hashing, the problems of existing technologies being unable to resist internal keyword guessing attacks and unable to search for similar data are solved, enabling the search for similar data and protection against attacks, thus protecting user privacy.

CN116545618BActive Publication Date: 2025-11-21HUAIYIN INSTITUTE OF TECHNOLOGY
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202310510922.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-05-08
Publication Date
2025-11-21
Estimated Expiration
2043-05-08

AI Technical Summary

Technical Problem

Existing public-key authentication encryption methods cannot effectively resist internal keyword guessing attacks and cannot achieve the function of searching similar data.

Method used

By employing bilinear mapping, locality-sensitive hashing, and the decision bilinear Diffie-Hellman assumption, a public-key authentication encryption method for searching similar data is designed. This method encrypts and decrypts data by generating public and private keys and introduces a similarity matching mechanism to achieve the search for similar data, while resisting internal and external keyword guessing attacks.

Benefits of technology

It enables the search function for similar data and can effectively resist internal and external keyword guessing attacks, protect the privacy of data senders and users, and prevent cloud servers and users from colluding to steal information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116545618B_ABST
    Figure CN116545618B_ABST
Patent Text Reader

Abstract

The application discloses a public key authentication encryption method and system capable of searching similar data. The public key authentication encryption method comprises the following steps: a key generation center generates public and private keys for a data sender and a data user; the data sender encrypts a file and an abstract of the file by using the public and private keys and a public key of the data user, and sends the ciphertext to a cloud server; the data user encrypts the abstract received from the data sender previously by using a private key and a public key of the data sender, and sends the trapdoor to the cloud server; the cloud server performs similar matching on the ciphertext and the trapdoor, and if the matching is less than or equal to n times and a threshold value is reached, the matching is successful, and the cloud server sends the parsed ciphertext to the data sender; the data sender returns updated ciphertext to the data user after processing, and updates a user query frequency list; and the data user decrypts to obtain the file. The application can realize the similar data search function under the premise of guaranteeing resistance to internal and external keyword guessing attacks.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The application belongs to the technical field of information security, and relates to a public key authentication encryption scheme with keyword search, in particular to a public key authentication encryption method and system capable of searching similar data and resisting internal keyword guessing attacks. BACKGROUND

[0002] Cloud storage brings flexibility and convenience to data access, but also causes data privacy leakage due to data outsourcing to cloud servers. In order to protect user data privacy, the plaintext is usually encrypted before being outsourced to the cloud server. However, the encryption process will destroy the natural structure of the data, and the query operation cannot be performed on the encrypted data.

[0003] Boneh et al. first introduced the concept of searchable encryption in the public key model, and proposed the first public key encryption (PEKS) scheme with keyword search, called BDOP-PEKS. Baek et al. improved the BDOP-PEKS scheme and proposed a PEKS scheme without a secure channel, which can resist offline keyword guessing attacks (KGA) initiated by external adversaries. Xu et al. proposed a fuzzy keyword search scheme that can resist KGA. However, the above schemes are not secure against KGA initiated by internal adversaries.

[0004] In order to solve the problem of internal keyword guessing attack in PEKS, Huang and Li proposed a public key authentication encryption (PAEKS) scheme supporting keyword search. In this scheme, the data sender not only encrypts the keyword, but also verifies its identity to ensure that the encrypted keyword is generated by the sender. Under the random oracle model, the scheme of Huang and Li is proved to have the semantic security of internal keyword guessing attack. However, the scheme proposed by Huang and Li does not have the function of searching similar data. SUMMARY

[0005] The purpose of the present application is to solve the problem of the public key authentication encryption method capable of resisting internal keyword guessing attack pointed out in the background technology, and to propose a public key authentication encryption method and system capable of searching similar data, which can realize the function of searching similar data while ensuring resistance to internal and external keyword guessing attacks.

[0006] Technical scheme: The first aspect of the present application provides a public key authentication encryption method capable of searching similar data, comprising:

[0007] (1) setting system public parameters GSP, threshold th and list

[0008] The system public parameters GSP are wherein p is a large prime number, and are two groups, g is a generator of G1, e: G1 x G1 -> G2 is a bilinear mapping, and H is a hash function. is a bilinear mapping, and H is a hash function.

[0009] list wherein is the public key of the lth data user, qt l is the query number of the data user, and list is kept secret by the data sender.

[0010] (2) generating the public key PK s and the private key SK s of the data sender;

[0011] (3) generating the public key PK u and the private key SK u of the data user;

[0012] (4) generating the ciphertext C according to the file F and the digest d of the data sender, the public key PK s and the private key SK s of the data sender, and the public key PK u of the data user;

[0013] (5) generating the trapdoor T according to the digest d' previously received by the data user from the data sender, the private key SK u of the data user, and the public key PK s of the data sender;

[0014] (6) matching the digests d and d' according to the ciphertext C, the trapdoor T, the public key PK s of the data sender, the public key PK u of the data user, and the threshold th; if the number of matching between the digests d and d' is greater than or equal to the threshold th, the two digests are similar data, and the result returns 1, and jumping to step (7); otherwise, the result returns 0, and the execution is terminated;

[0015] (7) generating the updated ciphertext C' and the updated list according to the ciphertext C, the private key SK s of the data sender, and the list

[0016] (8) decrypting to obtain the file F according to the updated ciphertext C' and the private key SK u of the data user.

[0017] Further, the hash function H is selected from the hash functions MD-5, SHA-1, SHA-2, and SHA-3.

[0018] Further, step (2) comprises:​​

[0019] Randomly select α←Z p Generate public key PK s =g α and private key SK s =α;Z p Let Z / pZ be the ring of residues modulo p, where Z represents the set of all integers.

[0020] Furthermore, step (3) includes:

[0021] Randomly select β←Z p Generate public key PK u =g β and private key SK u =β.

[0022] Further, step (4) includes:

[0023] Using the LSH function, extract n subsets {f1,...,f} of the summary d. n};

[0024] Randomly select r←Z p ;

[0025] Calculate ciphertext C2 = PK u r and C3 = F·PK s ·PK u ;

[0026] Generate ciphertext C = ({C 1,i} 1≤i≤n (C2,C3).

[0027] Further, step (5) includes:

[0028] Using the LSH function, extract n subsets of features {f′1,...,f′} from the summary d′. n};

[0029] calculate

[0030] Generate a trapdoor T = {T i} 1≤i≤n .

[0031] Further, step (6) includes:

[0032] Initialize a temporary counter count = 0;

[0033] If T i ·e(C2,g)=e(C 1,i PK ucount+1;

[0034] If count is greater than or equal to th after the loop is executed n times, return 1 and jump to step (7); otherwise, return 0 and terminate the execution.

[0035] Further, step (7) comprises:

[0036] Parse the ciphertext C into {C 1,i} 1≤i≤n , C2 and C3, and return C3 to the data sender.

[0037] Calculate the updated ciphertext C for the data user.

[0038] According to the public key PK u of the data user, record the number of queries of the data user, and return the updated list

[0039] Further, step (8) comprises:

[0040] Decrypt to obtain the file

[0041] The second aspect of the application provides a public key authentication encryption system capable of searching similar data, comprising:

[0042] A setting module is configured to set a system public parameter GSP, a threshold th and a list

[0043] A key generation module is configured to generate a public key PK s and a private key SK s of the data sender, and generate a public key PK u and a private key SK u of the data user.

[0044] An encryption module is configured to generate a ciphertext C according to a file F and its digest d, a public key PK s and a private key SK s of the data sender, and a public key PK u of the data user.

[0045] A trapdoor generation module is configured to generate a trapdoor T according to a digest d', a private key SK u and a public key PK s of the data sender.

[0046] A matching module is configured to match a ciphertext C, a trapdoor T, a public key PK s of the data sender, and a public key PK uand a threshold value th, the digest d and d' are matched; if the number of times of matching the digest d and d' is greater than or equal to the threshold value th, the result is matched, 1 is returned, and the ciphertext is updated and decrypted; otherwise, 0 is returned, and the execution is terminated;

[0047] a ciphertext updating module, configured to update the ciphertext C according to the ciphertext C, the private key SK of the data sender s and a list generate an updated ciphertext C' and an updated list and,

[0048] a decryption module, configured to decrypt the file F according to the updated ciphertext C' and the private key SK of the data user. u

[0049] Advantages: compared with the prior art, the present application has the following obvious advantages:

[0050] Compared with the common public key authentication encryption method, the present application can realize the similar data search function by adding the similar matching mechanism; in addition, the public key authentication encryption method of the present application can resist internal and external keyword guessing attacks, that is, the cloud server cannot steal information from the ciphertext sent by the data sender and the trapdoor submitted by the data user, and the data sender cannot steal information from the ciphertext sent by other data senders and the trapdoor submitted by the data user; the data user invites malicious users to query, unless he discloses the private key to the malicious users. BRIEF DESCRIPTION OF DRAWINGS

[0051] In order to more clearly illustrate the technical solutions of the embodiments of the present application, the following briefly introduces the drawings needed to be used in the embodiments of the present application. Obviously, the drawings described below are only the embodiments of the present application, and other drawings can also be obtained by those skilled in the art without creative labor on the basis of these drawings.

[0052] Figure 1 is a structure diagram of the public key authentication encryption system capable of searching similar data;

[0053] Figure 2 is a user use state diagram of the public key authentication encryption system capable of searching similar data. DETAILED DESCRIPTION

[0054] The technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are not all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative labor are within the protection scope of the present application.

[0055] ​The embodiment of the application provides a public key authentication encryption method capable of searching similar data, and the method specifically comprises the following steps.

[0056] (1) setting system public parameters GSP, threshold th and list of recording user query times

[0057] Specifically, the method comprises the following steps.

[0058] The system public parameters GSP are set as wherein p is a large prime number, and are two order groups, g is a generator of , e: is a bilinear mapping, and the hash function H is selected from hash functions MD-5, SHA-1, SHA-2 or SHA-3.

[0059] A threshold th is predefined.

[0060] A list for recording user query times is initialized, wherein PK ul is the public key of the lth data user, and qt l is the query times of the data user; the list is kept secret by a data sender.

[0061] (2) generating the public key PK s and the private key SK s of the data sender according to the system public parameters GSP.

[0062] Specifically, the method comprises the following steps.

[0063] The key generation center randomly selects p ; Z p represents a residue class ring Z / pZ with p as a modulus, and Z represents a set of all integers.

[0064] The public key PK s = g α and the private key SK s = α are generated.

[0065] (3) generating the public key PK u and the private key SK u of the data user according to the system public parameters GSP.

[0066] Specifically, the method comprises the following steps.

[0067] The key generation center randomly selects p .

[0068] The public key PK u = gβ and a private key SK u = β.

[0069] (4) According to the file F and its digest d of the data sender, the public key PK s and the private key SK s , and the public key PK u of the data user, generate the ciphertext C;

[0070] Specifically, it includes:

[0071] The data sender extracts n sets of sub-features {f1,..., fn} of the digest d by using the LSH function; n ;

[0072] Randomly select r←Z p ;

[0073] Calculate the ciphertext C2=PK u r and C3=F·PK s ·PK u ;

[0074] Generate the ciphertext C=((C 1,i} 1≤i≤n , C2, C3)

[0075] (5) According to the digest d' previously received by the data user from the data sender, the private key SK u and the public key PK s of the data sender, generate the trapdoor T;

[0076] Specifically, it includes:

[0077] The data user extracts n sets of sub-features {f'1,..., f'n} of the digest d' by using the LSH function; n ;

[0078] Calculate

[0079] Generate the trapdoor T={T i} 1≤i≤n .

[0080] The LSH (Locality Sensitive Hash) function described above is an approximate algorithm for extracting identifiable features from data to measure the similarity between different items. The basic idea of ​​LSH is to use a set of hash functions to reduce the dimensionality of high-dimensional data, where these hash functions map similar data items to the same value with a high probability. Given a data item, the LSH function extracts its subset of features, and then performs an equality test to measure the similarity between the feature sets of two data items. This process determines the accuracy of LSH-based similarity searches.

[0081] (6) Based on the ciphertext C, the trapdoor T, and the public key PK of the data sender s Public key PK of data users u And the threshold th, to match the summaries d and d′; if the number of matches between the summaries d and d′ is greater than or equal to the threshold th, it means that the two summaries are similar data, the result returns 1, and jumps to step (7); otherwise the result returns 0, and the execution is terminated;

[0082] Specifically, it includes:

[0083] The cloud server initializes a temporary counter, count = 0;

[0084] If T i ·e(C2,g)=e(C 1,i PK u If ), then count + 1;

[0085] After looping less than or equal to n times, if count ≥ th, return 1 and jump to step (7); otherwise return 0 and terminate execution.

[0086] (7) Based on the ciphertext C and the private key SK of the data sender s and list Generate updated ciphertext C′ and updated list

[0087] Specifically, it includes:

[0088] The cloud server parses the ciphertext C as {C 1,i} 1≤i≤n C2 and C3, C3 will be returned to the data sender;

[0089] The data sender calculates and updates the ciphertext. For data users;

[0090] The data sender uses the data user's public key PK. u Record the number of queries for this user and return the updated list.

[0091] (8) According to the updated ciphertext C' and the private key SK of the data user u , the file F is decrypted.

[0092] Specifically, the public key authentication encryption system comprises:

[0093] The data user decrypts to obtain the file

[0094] The application further provides a public key authentication encryption system capable of searching similar data, which has multiple function modules and can realize the public key authentication encryption method provided by the application.

[0095] Specifically, as shown in the figure, Figure 1 the public key authentication encryption system comprises:

[0096] A setting module is configured to set system public parameters GSP, a threshold th and a list When the security parameter λ is input, the system public parameters GSP, the threshold th and the list

[0097] A key generation module is configured to generate a public key PK s and a private key SK s of a data sender, and a public key PK u and a private key SK u of a data user;

[0098] An encryption module is configured to generate a ciphertext C according to a file F and an abstract d, a public key PK s and a private key SK s of the data sender, and a public key PK u of the data user;

[0099] A trapdoor generation module is configured to generate a trapdoor T according to the abstract d', a private key SK u and a public key PK s of the data sender;

[0100] A matching module is configured to match the abstract d and d' according to the ciphertext C, the trapdoor T, a public key PK s of the data sender, a public key PK u of the data user and the threshold th; if the number of matching between the abstract d and d' is greater than or equal to the threshold th, the result is matched, 1 is returned, the ciphertext is updated and decrypted; otherwise, 0 is returned, and the execution is terminated;

[0101] A ciphertext update module is configured to generate an updated ciphertext C' and an updated list according to the ciphertext C, a private key SK s of the data sender and the list and,

[0102] A decryption module is configured to decrypt the ciphertext C' and the private key SK of the data user to obtain the file F. u , and decrypt to obtain the file F.

[0103] The public key authentication encryption system described above is a modular virtual system, and the following describes a public key authentication encryption entity system.

[0104] In combination Figure 2 The public key authentication encryption entity system includes a key generation center and a cloud server, wherein the key generation center is responsible for setting system public parameters and a threshold value, and generating public and private keys for data senders and data users; the data senders are responsible for uploading ciphertexts, obtaining matching results, and returning updated ciphertexts to the data users; the data users use traps to query required information; and the cloud server is responsible for performing similar matching queries.

[0105] The following describes an example scenario of application of the public key authentication encryption method and system for searchable similar data in cloud computing.

[0106] First, the key generation center generates public and private keys for the data senders and the data users; then, the data senders encrypt files and their digests using the public and private keys and the public key of the data users, and send the ciphertexts to the cloud server; the data users encrypt the digests previously received from the data senders using the private keys and the public key of the data senders, and send the traps to the cloud server; finally, the cloud server performs similar matching on the ciphertexts and the traps, and if the number of matching is less than or equal to n, and the threshold value is reached, the matching is successful; otherwise, the matching fails; if the matching is successful, the cloud server sends the parsed ciphertexts to the data senders; the data senders process the ciphertexts, return updated ciphertexts to the data users, and update the user query frequency list; and the data users decrypt to obtain the files.

[0107] The present application uses bilinear mapping, decision bilinear Diffie-Hellman assumption, decision linear assumption and local sensitive hash, protects the privacy of the ciphertext and the trap in the process of searching similar data, and can protect the privacy of the users. The present application can resist internal keyword guessing attacks, and solves the problem of collusion between the cloud server and the data users to harm the interests of the data senders.

[0108] The above merely describes specific embodiments of the present application, but the protection scope of the present application is not limited thereto, and any person skilled in the art can easily think of changes or replacement solutions within the technical range disclosed by the present application, which should be covered by the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims.

Claims

1. A public-key authenticated encryption method for searchable similar data, characterized by, Comprising: (1) Set System Public Parameters GSP, threshold th and list The system discloses a parameter GSP where p is a large prime number, and are two groups, g is a generator of the group, is a bilinear mapping, and H is a hash function; list wherein is the public key of the lth data user, qt l is the number of queries of the data user, list is kept secret by the data sender; (2) generating a public key PK of the data sender s and a private key SK s ; (3) generating a public key PK of the data user u and a private key SK u ; (4) generating a cipher-text C from the file F and its digest d of the data sender, the public key PK s and the private key SK s , and the public key PK u of the data user, (5) generating a trapdoor T from the digest d' previously received by the data user from the data sender, the private key SK u and the public key PK of the data sender s ; (6) According to the ciphertext C, the trapdoor T, the public key PK of the data sender s , the public key PK of the data user u and the threshold th, match the digest d and d'; if the number of matching the digest d and d' is greater than or equal to the threshold th, the two digests are similar data, the result returns 1, and jump to step (7); otherwise, the result returns 0, and the execution is terminated; (7) from the ciphertext C, the private key SK of the data sender s and the list generating the updated ciphertext C' and the updated list (8) According to the update ciphertext C' and the private key SK of the data user u , the file F is decrypted.

2. The public-key authenticated encryption method according to claim 1, characterized in that, The hash function H is selected from the hash functions MD-5, SHA-1, SHA-2 or SHA-3.

3. The public-key authenticated encryption method according to claim 1 or 2, characterized in that, Step (2) comprises: Randomly select α ← Z p , generate a public key PK s = g α and a private key SK s = α; Z p denotes the residue class ring Z / pZ modulo p, and Z denotes the set of all integers.

4. The public-key authenticated encryption method according to claim 3, characterized in that, Step (3) comprises: Select a random β ← Z p , generate a public key PK u = g β and a private key SK u = β.

5. The public-key authenticated encryption method according to claim 4, characterized in that, Step (4) comprises: Using the LSH function, extract n sets of sub-features {f1,..., fn} of the summary d. n} Randomly select r←Z p ; Computing the ciphertext C2 = PK u r and C3 = F - PK s · PK u ; C = ({C 1,i} 1≤i≤n , C2, C3).

6. The public-key authenticated encryption method according to claim 5, wherein, Step (5) comprises: Using the LSH function, extract n sets of sub-features {f1',...,f'n'} of the summary d'. n} ; Computing Generate trap T = {T i} 1≤i≤n .

7. The public-key authenticated encryption method according to claim 6, characterized in that, Step (6) comprises: Initialize a temporary counter count = 0; If T i · e(C2, g) = e(C 1,i , PK u ), then count + 1; After the loop is executed less than or equal to n times, if count ≥ th, return 1, and jump to step (7); otherwise, return 0, and terminate the execution.

8. The public-key authenticated encryption method according to claim 7, wherein, Step (7) comprises: The ciphertext C is parsed as {C 1,i} 1≤i≤n C2 and C3, and C3 is returned to the data sender; Computing an update ciphertext To a data user; According to the public key PK of the data user u Record the query times of the data user, return the updated list 9. The public-key authenticated encryption method according to claim 8, characterized in that, Step (8) comprises: decrypting the file 10. A public-key authenticated encryption system for searchable similar data, characterized by, Comprising: a setting module for setting a system publication parameter GSP, a threshold value th and a list a key generation module configured to generate a public key PK of a data sender s and a private key SK s , generate a public key PK of a data user u and a private key SK u ; an encryption module for generating a cipher C from the file F and its digest d, the public key PK s and the private key SK s of the data user, and the public key PK u of the data user; The trapdoor generation module is configured to generate a trapdoor T according to the digest d', the private key SK u and the public key PK of the data sender s . The matching module is used to match the ciphertext C, the trapdoor T, and the sender's public key PK. s Public key PK of data users u And a threshold th, to match digests d and d′; if the number of matches between digests d and d′ is greater than or equal to the threshold th, the result is a match, 1 is returned, and the ciphertext is updated and decrypted; otherwise, 0 is returned and execution is terminated. The ciphertext updating module is configured to generate updated ciphertext C' and an updated list according to the ciphertext C, the private key SK of the data sender, the public key PK of the data receiver, and the list L. s and the list generate updated ciphertext C' and an updated list and, The decryption module is used to update the ciphertext C′ and the data user's private key SK. u The file F is obtained by decryption.