Decentralized Fine-Grained Privacy-Preserving Crowdsourcing Task Matching Method and Matching System

By adopting the internal product attribute encryption and searchable encryption of ciphertext on the blockchain, combined with the idea of multiple institutions, the problems of user privacy leakage and single point of failure in decentralized task matching are solved, and fine-grained task matching and two-way privacy protection are achieved, improving the security and scalability of the system.

CN116662827BActive Publication Date: 2025-08-01EAST CHINA NORMAL UNIV
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202310666179.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-06-07
Publication Date
2025-08-01
Estimated Expiration
2043-06-07

AI Technical Summary

Technical Problem

The existing technology cannot achieve decentralized fine-grained task matching, and there are user privacy leaks and single point of failure problems, which cannot meet the preferences of both task publishers and task executors.

Method used

Using ciphertext-based internal product attribute encryption and searchable encryption, combined with multi-institutional ideas, fully decentralized task matching is achieved through blockchain and smart contracts, and using vector transformation and verifiable secret sharing technology to reduce ciphertext size and computing overhead, and enhance key management security.

Benefits of technology

It realizes fine-grained task matching for two-way privacy protection, improves the scalability and security of the system, reduces the ciphertext size and computing overhead, and enhances the security of key management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116662827B_ABST
    Figure CN116662827B_ABST
Patent Text Reader

Abstract

The present invention discloses a decentralized fine-grained privacy protection crowdsourcing task matching method and system. A key authorization agency cooperates to generate original attribute keys for each task executor and secretly distributes and shares them with the corresponding task executors; the task publisher calculates the task ciphertext and submits the ciphertext to the smart contract; the task executor performs homomorphic calculation on the secret shares and then sends them to the task executor; the task executor recovers the converted attribute key and generates a search trapdoor, and uploads the search trapdoor to the blockchain; the smart contract matches the task ciphertext submitted by the task publisher and the search trapdoor of the task executor, and stores the matching result on the blockchain; the task executor obtains the task ciphertext from the blockchain and performs two decryptions to obtain the task plaintext. The present invention provides bilateral privacy protection while considering the preferences of both parties, uses the blockchain to achieve decentralized task matching and ensures the correctness of the matching result; in addition, aiming at the problem that the task access control policy may have multiple wildcards affecting the matching overhead, the original attribute key is converted, which can effectively reduce the on-chain task matching overhead.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to privacy protection and crowdsourcing matching technologies, and particularly to a decentralized fine-grained privacy protection crowdsourcing task matching method and a matching system. Background Art

[0002] Crowdsourcing is an efficient and cost-saving task execution mode, which allows individuals or organizations to request knowledge, services or goods from the general public to complete complex task requirements, so as to achieve the purposes of collaborative innovation, sharing economy and resource conservation. Compared with traditional approaches, crowdsourcing enables task publishers to obtain a wider range of services at a faster speed and lower cost. Due to its advantages such as flexibility, efficiency and innovation, crowdsourcing has received extensive attention and applications, and has been widely used in multiple industries such as scientific research, product design, e-commerce, and travel transportation.

[0003] Task matching is an essential link in crowdsourcing services. It assigns tasks to specific task executors and establishes a connection based on the needs and preferences of both task publishers and task executors. Task matching is the first step of crowdsourcing services. The correctness of task matching and the data confidentiality during the matching process directly affect the subsequent processes of crowdsourcing services and the active participation of users. Therefore, designing a secure and reliable task matching mechanism is crucial.

[0004] The task matching stage needs to refer to the task requirements of task publishers and the interests or capabilities of task executors, such as task types, execution times, locations, etc. Most existing solutions send this data to a centralized crowdsourcing platform for matching. Assuming that the centralized crowdsourcing platform is semi-trusted, however, it is extremely difficult to achieve this assumption in real life. An incompletely trusted centralized crowdsourcing platform may further infer sensitive information such as users' home addresses, physical conditions and itinerary arrangements from users' preferences for profit; a malicious crowdsourcing platform may also collude with malicious users to return incorrect matching results to seek greater benefits. If these problems are not solved, it will greatly reduce users' enthusiasm for participating in crowdsourcing platforms. Therefore, in order to improve the security and reliability of crowdsourcing services and promote economic growth, the research on decentralized privacy protection task matching methods is of great significance.

[0005] How to protect user privacy while achieving fine-grained task matching has become a research hotspot. Existing privacy-preserving task matching schemes mainly depend on the crowdsourcing application scenario. Spatial crowdsourcing focuses on the task location and the location privacy of task executors, and mainly uses anonymization techniques, differential privacy, and cryptographic techniques to protect location privacy. In some more complex crowdsourcing application scenarios, keyword-based matching schemes are adopted. Mainly using asymmetric searchable encryption technology, the task publisher extracts keywords from the task and encrypts them. The task executor generates a search trapdoor according to the content of interest, and finally executes a search algorithm for matching, completing the task matching while protecting the keywords.

[0006] However, in practical applications, the task publisher only hopes to match task executors with specific attributes, that is, to strengthen access control over tasks. Existing schemes use attribute encryption to achieve fine-grained access control over tasks. The task publisher encrypts the task ciphertext with the task requirements as the access policy, and only task executors who meet the task requirements can perform matching and decryption operations. However, traditional attribute encryption will disclose the access policy, that is, the task requirements, and malicious platforms or users can still infer users' sensitive information through the access policy and matching results. In addition, the above research is all based on a centralized platform, there are problems of single-point failure and most require the platform to be semi-honest, which is not applicable in actual use.

[0007] In recent years, blockchain, as an emerging technology, has been applied to many industries, such as energy, finance, retail, etc. Researchers have noticed that the decentralized, immutable, and consensus features of blockchain can solve the problem of over-reliance on the platform in the traditional crowdsourcing model. Many blockchain-based crowdsourcing platforms have been proposed, and the traditional centralized platform has been replaced by smart contracts, thus achieving the reliability of matching results; in terms of privacy protection, blockchain-based crowdsourcing platforms combine cryptographic technologies such as searchable encryption, proxy re-encryption, and attribute encryption to protect user privacy, but there are still some problems.

[0008] For example, Patent CN113761555A discloses a secure and reliable vehicle networking spatial crowdsourcing task matching method based on smart contracts, which ignores the protection of the reputation value of task executors and only considers task matching based on location and reputation value, unable to meet more complex task matching requirements. For example, Patent CN114884677A discloses a multi-user crowdsourcing task matching method based on blockchain, which only considers the matching of task content and the interest keywords of task executors, does not support task publishers to specify requirements for task executors, and is unable to achieve fine-grained access control for tasks. For example, Patent CN113609502A discloses a spatial crowdsourcing system and method based on blockchain, which simultaneously considers task matching based on location and keywords, but still does not support specifying task requirements for tasks. For example, Patent CN115694787A discloses a verifiable privacy protection and personalized crowdsourcing task matching method and system assisted by blockchain, but there are still single-point failure problems with the key generation center and the crowdsourcing platform, and fine-grained matching of task requirements still cannot be satisfied.

[0009] In summary, some solutions only match based on location or keywords, unable to meet the fine-grained attribute requirements of task publishers for task executors, nor taking into account the preference requirements of task executors for task selection, and only focusing on the privacy of either task publishers or task executors. Although decentralization is achieved using blockchain technology, the key generation center is still centralized, with single-point failure problems. Therefore, there is a need to design a fine-grained task matching method that can simultaneously meet the preferences and privacy protection of both parties and achieve fully decentralized task matching.

[0010] However, even integrating existing technologies together cannot achieve the above goals. Because although traditional attribute encryption technology can achieve fine-grained task access control, due to the lack of hiding of access policies, there are still privacy leakage problems and it cannot meet the preference requirements of task executors. Summary of the Invention

[0011] Object of the Invention: The object of the present invention is to solve the deficiencies existing in the prior art, and provide a decentralized fine-grained privacy protection crowdsourcing task matching method and matching system. By using ciphertext-based inner product attribute encryption and searchable encryption, it simultaneously meets the preferences of both parties and two-way privacy protection. By adopting the multi-institution idea, it achieves full decentralization, improves the scalability and security of the system. It also reduces the ciphertext size and computational overhead through vector transformation and verifiable secret sharing technology, and enhances the security of key management. The overall technical solution of the present invention is based on the Hyperledger Fabric consortium chain, ensuring the correctness of the matching.

[0012] Technical Solution: A decentralized fine-grained privacy protection crowdsourcing task matching method of the present invention includes the following steps

[0013] Step (1), initialize relevant system parameters; the blockchain smart contract generates system public parameters, and the key authorization agency A i Execute the initialization algorithm to generate its own public key PK i and private key SK i : And initialize the complete set of attributes γ in the system. There are n attributes in γ, and each attribute has ω o attribute values, where o ∈ {1,..., n};

[0014] Step (2), the task executor W first preprocesses its own attributes, converts them into an attribute vector v, and then initiates a registration request. Each key authorization agency A i generates a corresponding Pedersen commitment according to the attributes of the task executor W; then, each key authorization agency A i verifies whether the attribute vector v submitted by the task executor is correct according to the homomorphism of the Pedersen commitment. If the verification passes, it generates an attribute key sk i,ID,v , where ID is the unique identifier of the task executor in the system; finally, the key authorization agency A i uses the secret sharing technology to distribute sk i,ID,v to the task executor W in the set where the set is the ID set of the top c task executors with the highest reputation values in the system; if the attribute vector v fails the verification, it returns a null value;

[0015] Step (3), the task publisher preprocesses the task requirements, converts the task requirements into a task vector x based on the task access policy, then extracts the task keyword w from the task content M, encrypts the task content M and the task keyword w to form a ciphertext ct, and sends the ciphertext ct to the blockchain;

[0016] Step (4), the task executor W recalculates the attribute vector v′ according to the position of the wildcard "*" in the ciphertext, sends the attribute vector difference u = v - v′ to the blockchain, and the task executors in the set calculate the converted key shares according to the vector u and send them to the task executor W;

[0017] Step (5), the task executor W recovers the converted attribute key sk i,ID,v′ , and generates a search trapdoor tk based on the task preference keyword w′ and sends it to the blockchain;

[0018] Step (6), the smart contract matches the ciphertext ct submitted by the task publisher and the search trapdoor tk submitted by the task executor W, and stores the matching result on the blockchain;

[0019] Step (7), task executor W queries the corresponding task ciphertext ct on the blockchain according to the matching result, and task executor W decrypts it to obtain the task content.

[0020] Furthermore, the system parameters in step (1) include:

[0021] Common parameters of the blockchain smart contract generation system

[0022] Key authorization agency A i 's public key PK i and private key SK i are:

[0023]

[0024] where i ∈ {1,..., N + 2}, N is the maximum number of times the wildcard "*" is allowed to appear in the system task access policy, g, g1, ξ are generators of the multiplicative cyclic group G1, g2 is a generator of the multiplicative cyclic group G2, A, U, B i are matrices and α i β i are vectors and k is the system security parameter;

[0025] The complete set of attributes is γ = {attr1,..., attr n}, n is the number of attributes in the system, and each attribute has ω o attribute values, where o ∈ {1,..., n};

[0026] Furthermore, the specific process of step (2) is as follows:

[0027] Step (2.1), task executor W preprocesses its own attributes and converts them into an attribute vector v

[0028] Assume that the attribute set corresponding to task executor W is J, and the elements in J represent that the user has the attribute values at the corresponding positions in the complete attribute set γ. The attribute vector after task executor W converts according to Vieta's formulas is v = (v0,..., v N , -1), where v rn = ∑ δ∈J δ m , m ∈ {0,..., N}, and then W applies for an attribute key from each key authorization agency A i ;

[0029] Step (2.2), the key authorization agency generates a Pedersen commitment

[0030] Key Authorization Agency A i Generate the corresponding Pedersen commitment according to the attributes of W, and let D i represent the subscript of the attributes of W managed by Key Authorization Agency A i , |D i | be the number of elements in the set D i . For all j ∈ {0,..., |D i | - 1}, m ∈ {0,..., N}, A i calculate the Pedersen commitment where d i,j represents the j-th element in the set D i . Key Authorization Agency A i respectively constructs two |D j,m , r j,m |×(N + 1)-dimensional matrices C i , R i . C i represents the commitment matrix, R i represents the random number matrix used when generating the commitment, and sends the proof pr i = {C i , R i} to the blockchain;

[0031] [[ID=,45]]Step (2.3), Key Authorization Agency verifies the vector

[0032] Key Authorization Agency A i obtains all the proofs pr i about the task executor W, merges all the matrices C i , R i by rows into matrices C, R, calculates CM = Π a′∈C(∈) a′, r = ∑ b′∈R(∈) b′, where ∈ ∈ {1,..., N + 1}, C(∈) represents the ∈-th column element of matrix C, R(∈) represents the ∈-th column element of matrix R, and then judges whether it holds. If it holds, it means that the i-th bit data in the vector v submitted by the user is correct;

[0033] Step (2.4), Key Authorization Agency generates the attribute key

[0034] Key Authorization Agency A i obtains the public key set {PK ζ |ζ ∈ {1,..., N + 2}, ζ ≠ i} of all key authorization agencies, and A i calculates according to the following formula i ​

[0035]

[0036] where H0 is a cryptographic hash function, and then A i Calculate

[0037]

[0038] where H, H1,..., H k+1 are all cryptographic hash functions, and A i generates a partial attribute key sk i,ID,v :

[0039]

[0040] Step (2.5), the key authorization agency distributes the attribute key

[0041] A i generates a polynomial p i,b (X) = s i,b + k1X + k2X 2 + … + k[[ID=�7]] c-1 X c-1 , where the coefficients {k1,..., k c-1} are randomly selected from After that, A i calculates the secret shares s i,b for the secret s i,b,1 ,..., s i,b,c :

[0042]

[0043] where b ∈ {1, 2, 3}, and s i,1 = β i + μ i - v i B i h, s i,2 = α i + μ i - v i B i h, s i,3 = B i h, η ∈ {1,..., c}, and the set is the ID set of the top c task executors with the highest reputation values in the system, and L η is the η-th element in the set , and λ i,1 ,..., λ i,c are Lagrange factors that satisfy the equation After that, A iGenerate proof information

[0044] A i Eventually {s i,1,η , s i,2,η , s i,3,η , τ i,1 , τ i,2}Sent to ID L η task executor.

[0045] Furthermore, the specific process of step (3) is as follows:

[0046] Step (3.1), task publisher Preprocess task requirements and convert them into task vectors

[0047] For task T, let the set of positions of the attribute named wildcard in the task access policy be Z, that is, for any z∈Z, task T has attr z The following attributes are not required. When setting the position set P with wildcard attribute value and the position set Q with plus attribute value, attr z It will be regarded as an attribute with only one attribute value and "*"; for any p∈P, task T does not require whether the task executor has the pth attribute value in the attribute set. For any q∈Q, task T requires that the task executor must have the qth attribute value;

[0048] Assume that there is a polynomial |P| is the number of elements in the set P, the task publisher Calculate the factor l based on the Vieta formula a :

[0049]

[0050] Finally, let the task requirement vector x = (l0, ..., l |P| , 0 |P|+1 ,...,0 N ,φ), where φ=∑ q∈Q Π p∈P (qp);

[0051] Step (3.2), task encryption

[0052] Task publisher Extract the keyword w from the task content M, and T A key sk is randomly selected, and then the task content M is encrypted using a hybrid encryption method, i.e. c m =Enc(M,sk), where Enc is a symmetric encryption algorithm, c m The ciphertext of the task content;

[0053] Task publisher Random selection Calculate the ciphertext ct containing the following components:

[0054]

[0055]

[0056]

[0057] where

[0058] C0, C1, C′, {C i} i∈{1,...,N+2} are the ciphertexts after encrypting the plaintext information to be transmitted;

[0059] Finally, the task publisher outputs the ciphertext and sets the task identifier T id , and uploads the tuple (T id , ct) to the blockchain.

[0060] Furthermore, the specific process of step (4) is as follows:

[0061] Step (4.1), the task executor calculates the attribute vector difference

[0062] The task executor W recalculates its own attribute vector according to the wildcard position set Z in the task ciphertext ct. When setting the attribute set, for all z ∈ Z, attr z will be regarded as an attribute with only one attribute value and being "*". After obtaining the new attribute set J, recalculate the attribute vector v′, and then send u = v - v′ to the blockchain;

[0063] Step (4.2), the secret holder calculates the converted secret share

[0064] Suppose the η-th task executor W in the set η holds the secret share {s i,1,η , s i,2,η , s i,3,η} of the i-th partial key of the task executor W. W η calculates the converted secret shares ts i,1,η and ts i,2,η and the proof information π i,3,η according to the following formula and sends them to the task executor:

[0065]

[0066]

[0067] π i,3,η = e(g1, s i,3,η )。

[0068] Furthermore, the specific process of step (5) is as follows:

[0069] Step (5.1), the task executor recovers the converted attribute key

[0070] When the task executor W receives the secret shares sent by the task executors in the set , W calculates the converted attribute key sk based on the secret sharing scheme i,ID,v′ = {key′ i,1 , key′ i,2}:

[0071]

[0072]

[0073] Step (5.2), the task executor W verifies the key

[0074] The task executor W verifies whether the following formula holds:

[0075]

[0076]

[0077] If the above formula holds, it indicates that the users in the set have correctly performed the conversion operation and the attribute key has been correctly recovered; if the verification fails, W requests the key shares from the task executors in the set again;

[0078] Step (5.3), the task executor generates a search trapdoor

[0079] The task executor W designates a preferred keyword w′ and randomly selects to generate a search trapdoor tk:

[0080] tk = {{K′ i} i∈{1,...,N+2}, tok1, tok2, tok3, v′, v},

[0081] where

[0082] Finally, the task executor W will generate the tuple (W id, tk) is sent to the task matching smart contract for matching, where W id is the global identifier ID of the task executor W.

[0083] Furthermore, the specific process of step (6) is as follows:

[0084] Step (6.1), Privacy-preserving task matching

[0085] The smart contract first calculates e1 based on the received search trapdoor tk and ciphertext ct:

[0086]

[0087] Then it verifies whether the following equation holds. If it holds, the matching is successful; otherwise, the matching fails:

[0088]

[0089] Step (6.2), Uploading the matching result to the blockchain

[0090] The task matching smart contract sends the matching result (T id , W id ) to be stored on the blockchain.

[0091] Furthermore, in step (7), the task executor reads the matching ciphertext ct from the blockchain and decrypts it according to the following formula to obtain the symmetric key sk:

[0092]

[0093] The task executor performs a second decryption to obtain the plaintext M of the task content = Dec(c m , sk), where Dec is the decryption algorithm of the symmetric encryption scheme.

[0094] The present invention also discloses a system for a decentralized fine-grained privacy-preserving crowdsourcing task matching method, including four types of participating entities: task publishers, task executors, key authorization agencies, and blockchains; the task publishers preprocess task requirements into task vectors and upload task ciphertexts and task keyword ciphertexts to the blockchain; the task executors convert their own attributes into attribute vectors and apply for keys, generate search trapdoors according to task preference keywords and send them to the blockchain, where the task executors with the top c reputation values hold the secret shares of the attribute keys of the remaining task executors in the system and perform homomorphic operations on the secret shares to achieve the conversion of attribute keys; the key authorization agencies generate partial keys according to the attribute vectors of the task executors and securely distribute the keys using the secret sharing scheme; the blockchain performs task matching operations to ensure the correctness of the results.

[0095] Advantages: Compared with the prior art, the present invention has the following advantages:

[0096] (1) The present invention provides privacy - protected task matching between task publishers and task executors in crowdsourcing services. Compared with existing task - matching schemes, it takes into account the matching preferences of both parties, can meet the fine - grained attribute requirements of task publishers for task executors, and gives task executors the ability to retrieve preferred tasks according to keywords.

[0097] (2) The present invention reduces task matching to whether user attributes satisfy task access policies in ciphertext - based attribute encryption and keyword matching in searchable encryption. Compared with traditional attribute - encryption - based matching schemes, the present invention uses inner - product attribute encryption to hide access policies and applies the idea of multiple institutions to achieve complete decentralization, without relying on a single centralized institution, improving the scalability of the system and achieving stronger security.

[0098] (3) The present invention uses Vieta's formulas to convert access policies and user attributes into vectors. Compared with the prior art, the vector dimension is at the constant level, and for the problem that the task access control policy may have multiple wildcards affecting the matching overhead, the original attribute keys are converted, significantly reducing the ciphertext size and reducing the on - chain storage and matching overhead.

[0099] (4) The present invention uses verifiable secret sharing technology to implement distributed key generation, splitting the key into multiple shares. Compared with the prior art, it increases the anti - attack ability of the system. Even if an attacker invades some participating parties or obtains some shares, they cannot obtain the complete key information. At the same time, it provides verifiability for the calculation of secret shares, ensuring the correctness of key conversion. BRIEF DESCRIPTION OF THE DRAWINGS

[0100] Figure 1 is the overall system structure diagram of the present invention;

[0101] Figure 2 are the original task access policies and task executor attributes in the embodiment;

[0102] Figure 3 is the schematic diagram of the converted task access policies and task executor attributes in the embodiment. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0103] The technical solutions of the present invention will be described in detail below, but the protection scope of the present invention is not limited to the described embodiments.

[0104] As Figure 1As shown in the figure, the decentralized fine-grained privacy protection crowdsourcing task matching system of the present invention involves several task publishers, several task executors, several key authorization agencies, and a consortium blockchain platform. The specific matching method of this system is as follows:

[0105] First, the blockchain smart contract generates public parameters and sends them to the key authorization agency, and the key authorization agency performs initialization operations;

[0106] Then, the task publisher and the task executor register. The key authorization agency sends the public key to the task publisher and the task executor. The task executor converts his own attributes into vector form and sends them to the key authorization agency. After the key authorization agency verifies the authority of the task executor, it generates attribute keys according to the vectors and splits the attribute keys based on the secure verifiable secret sharing technology and sends them to the top c task executors with the highest reputation values in the system;

[0107] Secondly, the task publisher sends the task ciphertext and the keyword ciphertext to the blockchain and discloses the wildcard positions in the task requirements; when the task executor learns that a new task has been submitted, it calculates a new attribute vector according to the wildcard positions in the task requirements and sends the difference between the new vector and the initial vector to the blockchain. The c users holding the secret shares perform homomorphic calculations on the secret shares according to the preset algorithm and then send the secret shares to the task executor. The task executor uses the secret shares to recover the attribute keys;

[0108] Next, the task executor generates a search trapdoor using the attribute key and the preferred keyword and sends it to the blockchain; the smart contract runs a search algorithm to match the task ciphertext and the search trapdoor submitted by the task publisher and the task executor, and stores the matching result on the task blockchain;

[0109] Finally, task executor W i According to the matching result, query the corresponding task ciphertext ct on the blockchain and decrypt it to obtain the plaintext of the task content.

[0110] Embodiment:

[0111] The specific matching implementation steps of this embodiment are as follows:

[0112] Step (1), System initialization, including the following steps:

[0113] 11). The blockchain smart contract generates system public parameters Among them, i ∈ {1,..., N + 2}, N is the maximum number of times the wildcard "*" is allowed to appear in the system task access policy. In this embodiment, it is 3. g, g1, ξ are the generators of the multiplicative cyclic group G1, g2 is the generator of the multiplicative cyclic group G2, A, U are matrices and k is the system security parameter;

[0114] 12), Key Authorization Agency A i , for i ∈ {1,..., N + 2}, generate a public-private key pair:

[0115]

[0116] Where α i , β i are vectors and

[0117] 13), Initialize the complete set of attributes in the system as γ = {University, Department, Identity}, where University has three values: {A, B, C}; Department has two values: {CS, SE}; Identity has three values: {Teacher, Student};

[0118] Step (2), Task executor registration:

[0119] 21), Assume that the set of attribute subscripts corresponding to task executor W is J = {1, 5, 6}, and calculate vector v according to Vieta's formulas:

[0120] v = (1 0 + 5 0 + 6 0 , 1 1 + 5 1 + 6 1 , 1 2 + 5 2 + 6 2 , 1 3 + 5 3 + 6 3 , -1) = (3, 12, 62, 342, -1).

[0121] 22), Key Authorization Agency A i After receiving W's registration request, assume that the set of subscripts of the attributes of W managed by A i is D i , assume that in this embodiment D i = {5}, A i generates commitments for the elements in D i . For all j ∈ {0}, m ∈ {0, 1, 2, 3}, Ai randomly selects and calculates the Pedersen commitment Finally, form the matrix C i , R i and send them to the blockchain;

[0122] Ci = (C 0,0 , C 0,1 , C 0,2 , C 0,3 ), R i = (r 0,0 , r 0,1 , r 0,2 , r 0,3 ).

[0123] 23), Key Authorization Agency A i merges all matrices C i , R i by rows into 3×4 matrices C and R. Assuming A2 needs to verify whether the second element of vector v is correct, it only needs to calculate CM = Π a′∈C(2) [[ID= thirty]]a′, r = ∑ b′∈R(2) b′, where C(2) and R(2) are the second columns of matrices C and R respectively, and then verify the following equation: In this embodiment

[0124]

[0125] The remaining authorization agencies responsible for generating user partial keys verify whether the corresponding vectors are correct according to a similar algorithm.

[0126] 24), Key Authorization Agency A i verifies v i After passing, generates the corresponding key. Given the public keys {PK ζ |ζ ∈ {1,..., N + 2}, ζ ≠ i} of all key authorization agencies in the system, Key Authorization Agency A i calculates according to the following formula

[0127]

[0128] where H0 is a cryptographic hash function, such as SHA256, and then calculates

[0129]

[0130] where H1,..., H k+1 are all cryptographic hash functions, such as SHA256, and A i generates the partial attribute key sk i,ID,v :

[0131]

[0132] 25), The key authorization agency uses the secret sharing scheme to split the key. Let c = 3 in this embodiment, A i The generating polynomial p i,b (X) = S i,b + k1X + k2X 2 where For the user-generated secret share P i,b (1), p i,b (2), p i,b (3), where b ∈ {1, 2, 3}, s i,1 = β i + μ i - v i B i h, s i,2 = α i + μ i - v i B i h, s i,3 = B i h, the Lagrange factor in this embodiment Then A i generates the secret as follows:

[0133]

[0134] A i Calculates the proof information Finally, send {S i,1,η , S i,2,η , S i,3,r , τ i,1 , τ i,2} to the η-th user in the set .

[0135] Step (3), the task publisher generates the task ciphertext and the keyword ciphertext, including the following steps:

[0136] For the task T, given the sets Z = {2}, Q = {1, 5} and P = {4}, that is Figure 2 the access policy W shown, calculate l0 = (-1)^1·4 = -4, l1 = (-1) 0 = 1, φ = (1 - 4) + (5 - 4) = -2, and finally generate the access policy vector x = (-4, 1, 0, 0, -2).

[0137] The task publisher extracts the keyword w from the task content, randomly selects a key sk in G T as the key of the symmetric encryption algorithm, and in this embodiment, selects the AES encryption algorithm to encrypt the task plaintext to obtain c m= Enc(M, sk), and then randomly select Calculate the ciphertext components:

[0138]

[0139]

[0140]

[0141] where Finally Output the ciphertext And set the task identifier T id , and upload the tuple (T id , ct) to the blockchain.

[0142] Step (4), the attribute key secret holder calculates the transformed secret share, including the following steps:

[0143] 41), The task executor W recalculates its own attribute vector according to Z in ct, regards Department as an attribute with only one attribute value, and the recalculated attribute set is J = {1, 5}. According to step 21), recalculate the attribute vector v' = (2, 6, 26, 126, -1), and then send u = v - v' = (1, 6, 36, 216, 0) to the blockchain.

[0144] 42), Assume that the η-th task executor W in the set η holds the secret share {s i,1,η , s i,2,η , s i,3,η} of the i-th partial key of the task executor W. W η calculates the transformed secret share ts i,1,η and ts i,2,η and the proof information π i,3,η according to the following formula and sends them to the task executor:

[0145]

[0146]

[0147] π i,3,η = e(g1, s i,3,η ).

[0148] Step (5), the task executor recovers the key and calculates the search trapdoor, including the following steps:

[0149] 51), When the task executor W receives After receiving the secret shares sent by the user in, W calculates the transformed attribute key sk based on the secret sharing scheme i,ID,v′ ={key′ i,1 , key′ i,2}:

[0150]

[0151]

[0152] In this embodiment, the transformed task access policy and the task executor attributes are as Figure 3 shown.

[0153] In this embodiment, when i = 1, the transformed That is, the key corresponding to the original vector v has been transformed into the key corresponding to the vector v'.

[0154] 52), The task executor verifies whether the following formula holds:

[0155]

[0156]

[0157] If all the above formulas hold, it indicates that the key is correctly restored. In this embodiment, for i ∈ {1, 2, 3, 4, 5}, the following formulas are verified:

[0158]

[0159]

[0160] 53), The task executor W specifies the preferred keyword w', and randomly selects to calculate the search trapdoor tk:

[0161] tk = {{K′ i} i∈{1,...,N+2} , tok1, tok2, tok3, v′, v},

[0162] where After that, the task executor sends (W id , tk) to the task matching smart contract for matching, where W id is the global identifier ID of the task executor W.

[0163] Step (6), The smart contract executes the task matching algorithm, including the following steps:

[0164] 61), The smart contract first calculates e1 according to the received tk and ct. In this embodiment

[0165]

[0166] In this embodiment, <v′, x> = 2 * (-4) + 6 * 1 + (-1) * (-2) = 0, so After that, verify whether the following equation holds. If it holds, the matching is successful; otherwise, the matching fails:

[0167]

[0168] 62), After the matching is successful, the smart contract sends the matching result (T id , W id ) to be stored on the blockchain. Step (7), The task executor obtains the ciphertext and decrypts it to obtain the plaintext of the task content, including the following steps:

[0169] 71), The task executor calculates the symmetric encryption key:

[0170]

[0171] 72), The task executor obtains the task plaintext M = Dec(c m , sk), where Dec is the decryption algorithm of the symmetric encryption scheme.

Claims

1. A decentralized fine-grained privacy-preserving crowdsourcing task matching method, characterized in that It includes the following steps Step (1), initialize relevant system parameters; generate the public parameters of the blockchain smart contract system, and the key authorization agency Execute the initialization algorithm to generate its own public key and private key : and initialize the complete set of attributes in the system , There are a total of attributes, and each attribute has attribute values, among which ; Step (2), the task executor First, preprocess its own attributes and convert them into an attribute vector , and then initiate a registration request. Each key authorization agency generates a corresponding commitment based on the attributes of the task executor ; then, each key authorization agency verifies whether the attribute vector submitted by the task executor is correct according to the homomorphism of the commitment . If the verification passes, an attribute key is generated, where is the unique identifier of the task executor in the system; finally, the key authorization agency uses the secret sharing technology to distribute to the task executors in the set , where the set is the set of the top task executors with the highest reputation values in the system ; if the attribute vector fails the verification, a null value is returned; Step (3), the task publisher Preprocess the task requirements, convert the task requirements into a task vector based on the task access policy , and then extract task keywords from the task content , encrypt the task content and the task keywords to form ciphertext , and send the ciphertext to the blockchain; Step (4), task executor Recalculate the attribute vector according to the position of the wildcard character " " in the ciphertext, send the attribute vector difference to the blockchain. The task executors in the set calculate the converted key share according to the vector and send it to the task executor ; Step (5), task executor Recover the converted attribute key , and generate a search trapdoor based on the task preference keywords and send it to the blockchain; Step (6), the smart contract is based on the task publisher submitted ciphertext and the task executor submitted search trapdoor for matching, and store the matching result on the blockchain; Step (7), task executor According to the matching result, query the corresponding task ciphertext on the blockchain , task executor Decrypt to obtain the task content.

2. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, wherein In step (1), the system parameters include: Common Parameters of Blockchain Smart Contract Generation System ; Key authorization agency public key and private key are as follows: ; Among them, , is the maximum number of times the wildcard "*" is allowed to appear in the system task access policy, is a multiplicative cyclic group 's generator, is a multiplicative cyclic group 's generator, is a matrix and , is a vector and , , are system security parameters; The complete set of attributes is , where n is the number of attributes in the system. For , each represents an attribute name and this attribute has attribute values.

3. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, characterized in that The specific process of step (2) is as follows: Step (2.1), the task executor Preprocesses its own attributes and converts them into an attribute vector ; Hypothetical task executor The corresponding set of attributes is , The elements in represent that the task executor has the full set of attributes The attribute values at the corresponding positions in, and the task executor The attribute vector after conversion according to Vieta's formulas is , where After that Apply for an attribute key from each key authorization agency ; Step (2.2), the key authorization agency generates commitment Key authorization agency According to Generate corresponding Commitment. Let Denote The set of subscripts of the attributes managed by the key authorization agency in the attribute set of . Is the number of elements in the set . For all , , Calculate Commitment , where Denotes the th element in the set . ; The key authorization agency Respectively based on Construct two -dimensional matrices , Represents the commitment matrix Represents the random number matrix used when generating the commitment, and send the proof To the blockchain; Step (2.3), the key authorization agency verifies the vector Key authorization agency Obtain all certifications regarding the task executor and merge all matrices by rows into matrix and calculate where represents the -th column element of matrix , represents the -th column element of matrix and then determine whether holds. If it holds, it means that the -th bit data in the vector submitted by the user is correct; Step (2.4), the key authorization agency generates the attribute key Key authorization agency Obtain the public key set of all key authorization agencies , Calculate according to the following formula :[[]]END]] ; wherein is a cryptographic hash function, and then calculate : ; wherein are all cryptographic hash functions, generate partial attribute keys : ; Step (2.5), the key authorization agency distributes the attribute key Generating polynomial , where the coefficients are randomly selected from , and then calculate the secret shares for the secret as follows : ; Among them and , , , , the set is the top-ranked task executors in the system according to their credibility values, and the set. is the th element in the set, is the Lagrange factor that satisfies the equation ; afterwards generate proof information . Finally send to for task executor 4. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, wherein The specific process of step (3) is as follows: Step (3.1), the task publisher Preprocess the task requirements and convert them into task vectors For tasks , let the set of locations where the attribute name is a wildcard in the task access policy be , that is, for any ,Task Do the task executors have The following attributes are not required, and the attribute value is set to a wildcard position set later. and a collection of locations with a plus sign as the attribute value hour, Will be treated as having only one attribute value and be " Attributes; for any , Task Whether the task executor has the first There is no requirement for the attribute value. ,Task The task executor must have attribute values; Suppose there is a polynomial , is the number of elements in the set . The task publisher calculates the factor based on Vieta's formulas: ; Finally, let the task requirement vector , where ; Step (3.2), task encryption Task publisher Extract keywords from the task content and randomly select a key from Then encrypt the task content using the hybrid encryption method where is the symmetric encryption algorithm and is the ciphertext of the task content ​​​ Task publisher Random selection , calculate the ciphertext containing the following components : ; ; ; Among them ; ; is the ciphertext obtained by encrypting the plaintext information to be transmitted; Finally, the task publisher outputs the ciphertext and sets the task identifier , and uploads the tuple to the blockchain.

5. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, wherein The specific process of step (4) is as follows: Step (4.1), the task executor calculates the attribute vector difference Task executor According to the task ciphertext in the wild card position set recalculate its own attribute vector. When setting the attribute set, for all , will be regarded as having only one attribute value and being " ", to obtain a new attribute set After that, recalculate the attribute vector , and then send it to the blockchain; Step (4.2), the secret holder calculates the converted secret share Hypothetical set The th task executor holds the secret share of the th partial secret key of the task executor , calculate the converted secret share according to the following formula and and the proof information and send it to the task executor: ; ; 。 6. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, characterized in that The specific process of step (5) is as follows: Step (5.1), the task executor restores the converted attribute key When the task executor receives the secret shares sent by the task executor in and calculates the transformed attribute key based on the secret sharing scheme : ; ; Step (5.2), task executor Verify the key Task executor Verify whether the following formula holds: ; ; If the above formula holds, it indicates that the users in the set have correctly performed the conversion operation and the attribute key has been correctly restored; if the verification fails, the task executor in the set is requested to re-request the key share; Step (5.3), the task executor generates the search trapdoor Task executor Specify preference keywords , randomly select , generate a search trapdoor :[[]]END]] ; Among them , , , , ; Finally, the task executor sends the ancestor to the task matching smart contract for matching, where is the global identifier ID of the task executor.

7. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, characterized in that The specific process of step (6) is as follows: Step (6.1), privacy-preserving task matching The smart contract first calculates based on the received search trapdoor and the ciphertext as follows : ; Then verify whether the following equation holds. If it holds, the matching is successful; otherwise, the matching fails: ; Step (6.2), the matching result is uploaded to the chain The task matching smart contract sends the matching result to be stored on the blockchain.

8. The decentralized fine-grained privacy protection crowdsourcing task matching method according to claim 1, wherein In step (7), the task executor reads the matching ciphertext from the blockchain , and decrypts it to obtain the symmetric key according to the following formula : ; The task executor performs the second decryption to obtain the plaintext of the task content , where is the decryption algorithm of the symmetric encryption scheme.

9. A system for implementing the decentralized fine-grained privacy protection crowdsourcing task matching method according to any one of claims 1 to 8, characterized in that: It includes four participating entities: the task publisher, the task executor, the key authorization agency, and the blockchain; the task publisher preprocesses the task requirements into task vectors and uploads the task ciphertext and the task keyword ciphertext to the blockchain; the task executor converts its own attributes into attribute vectors and applies for keys, generates search traps according to the task preference keywords and sends them to the blockchain, where the task executors ranked in the top hold the secret shares of the attribute keys of the remaining task executors in the system and perform homomorphic operations on the secret shares to achieve the conversion of attribute keys; The key authorization agency generates partial keys according to the attribute vector of the task executor and securely distributes the keys using the secret sharing scheme; the blockchain performs the task matching operation.

Citation Information

Patent Citations

  • Spatial crowdsourcing system and method based on block chain

    CN113609502A

  • Multi-user crowdsourcing task matching method and system based on block chain

    CN114884677A

  • Verifiable privacy protection and personalized crowdsourcing task matching method and system under assistance of block chain

    CN115694787A