A data security sharing method and device supporting multi-user cross-domain collaboration

By creating a collaborative channel through smart contracts on the blockchain, data users can join the channel when the collaboration strategy is met, and decrypt the data using attribute private keys and collaboration private keys. This solves the problems of insufficient security and high communication overhead in existing technologies, and realizes secure and controllable multi-user cross-domain collaborative data sharing.

CN120281577BActive Publication Date: 2025-10-17THREE GORGES GROUP IND DEVELOPMENT (BEIJING) CO LTD +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202510753307.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2025-06-06
Publication Date
2025-10-17
Estimated Expiration
2045-06-06

AI Technical Summary

Technical Problem

Existing multi-user cross-domain collaborative data security sharing solutions have security flaws. Users within the group who do not meet the policy requirements can still decrypt the data, and interactive decryption requires a large amount of communication.

Method used

The collaborative channel formed by blockchain and smart contracts allows data users to join the channel when their attribute set satisfies at least one sub-policy of the collaborative strategy. Data is decrypted using attribute private keys and collaborative private keys, ensuring that only users who meet the policy requirements can decrypt the data, thus avoiding communication between users.

Benefits of technology

It improves data security and enables secure and controllable multi-person collaboration. Participants can decrypt data themselves without communicating with each other, reducing the communication overhead of the decryption process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120281577B_ABST
    Figure CN120281577B_ABST
Patent Text Reader

Abstract

The embodiment of the present application provides a kind of data security sharing method and device supporting multi-user cross-domain cooperation, in the case where the attribute set of data user satisfies at least one sub-policy of cooperation strategy, can join the way of cooperation channel, so that only the user who enters channel and satisfies certain sub-policy of cooperation strategy can carry out decryption, improve the security of data, attribute authorization agency determines that cooperation channel is in completion state, and data user is in the case where in the user list of cooperation channel, sends cooperation private key to data user, that is, cooperation strategy is all satisfied, sends cooperation private key to the data user participating in cooperation, realizes safe controllable multi-user cooperation, and the user participating in cooperation does not need to communicate with each other and can decrypt by oneself, avoid a large amount of communication overhead in decryption process.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the technical field of data encryption, in particular to a data security sharing method and device supporting multi-user cross-domain collaboration. BACKGROUND

[0002] Industrial Internet generally involves multiple security domains, which have their own security boundaries and security mechanisms, and some data often needs to be accessed by users from different security domains in a collaborative manner. For example, in the power industrial Internet, the dispatching center sends the collected power generation conditions of each power station to other interested departments such as power selling companies and subordinate dispatching centers to support business. In order to ensure the confidentiality of the message and limit the scope of message dissemination, the dispatching center uses "power station AND power selling company" as an access policy to encrypt the data. However, one department cannot have both attributes in the policy, so the three departments need to collaborate to decrypt the data.

[0003] There are two types of solutions to achieve collaborative decryption to obtain data. The first type of solution uses "groups" to share data. If the combined attribute set of all users in the group meets the policy, all users in the group are allowed to decrypt. This type of solution expands the control over data, but users in the group who do not meet the policy for a certain attribute can still decrypt, which has a serious security flaw.

[0004] Another type of solution allows users to achieve collaborative decryption through interaction. The encryption party needs to set one or more attributes as "conversion attributes" when encrypting the data. Users who have the attribute can convert the decryption intermediate result of the attribute into a decryption intermediate result that can be used by other users. For example, "power station" is set as a "conversion attribute", so power station A can convert the decryption intermediate result of "power station" and send it to power selling company B. At this time, B has both the decryption intermediate result of "power station" and the decryption intermediate result of "power selling company", and can decrypt the data. However, this method can only allow one party to have the final decryption capability, unless "power selling company" is also set as a "conversion attribute" or B sends the decryption result to A, otherwise A cannot decrypt alone, and this type of solution requires a lot of communication. SUMMARY

[0005] In view of the above problems, the present application embodiments are proposed to provide a data security sharing method and device supporting multi-user cross-domain collaboration to overcome the above problems or at least partially solve the above problems.

[0006] In order to solve the above problems, the present application embodiments disclose a data security sharing system supporting multi-user cross-domain collaboration, which comprises a data owner, a data user, an attribute authorization agency and a blockchain.

[0007] The data owner is configured to obtain a collaboration policy and a collaboration attribute, encrypt data according to the collaboration policy to obtain collaboration ciphertext, and upload the collaboration ciphertext to a cloud server; and generate a collaboration public key corresponding to the collaboration attribute and upload the collaboration public key to the blockchain.

[0008] The data user is configured to download the collaboration ciphertext from the cloud server, join a collaboration channel if an attribute set of the data user satisfies at least one sub-policy of the collaboration policy, receive an attribute private key and a collaboration private key sent by the attribute authority, and decrypt the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain the data; the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaboration ciphertext.

[0009] The attribute authority is configured to obtain an attribute set of the data user, generate an attribute private key corresponding to the data owner according to the attribute set, and send the attribute private key to the data owner; obtain the collaboration public key from the blockchain, generate a collaboration private key corresponding to the collaboration public key if the collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel, and send the collaboration private key to the data user; the collaboration channel is in the completed state if the attribute set of the data user in the user list of the collaboration channel satisfies each sub-policy of the collaboration policy.

[0010] Optionally, the data user is configured to call the smart contract to join the collaboration channel according to the attribute private key and the collaboration ciphertext.

[0011] The attribute authority is configured to obtain an output parameter of the smart contract, determine whether the collaboration channel is in a completed state and whether the data user is in a user list of the collaboration channel according to the output parameter.

[0012] Optionally, the data owner is further configured to obtain a system public key from the blockchain, and encrypt data according to the collaboration policy and the system public key to obtain collaboration ciphertext.

[0013] Optionally, the attribute authority is further configured to generate a system public key and send the system public key to the blockchain.

[0014] Optionally, the attribute authority is further configured to generate a master key, and generate an attribute private key corresponding to the data owner according to the attribute set of the data user and the master key.

[0015] Optionally, the attribute authority is configured to determine a generator of a cyclic group G with an order of ​ ; randomly select for each attribute ; randomly select for each group ; randomly select ; generate a system public key according to the following formula:

[0016] .

[0017] Optionally, the attribute authority is configured to generate a master key according to the following formula:

[0018] .

[0019] Optionally, the attribute authority is configured to randomly select, for each data user in a group , an attribute private key according to the following formula:

[0020] .

[0021] Optionally, a collaboration policy includes sub-policies;

[0022] The data owner is configured to determine a random vector, the random vector including a secret;

[0023] Obtain a collaboration matrix corresponding to the collaboration policy;

[0024] Determine a column vector for distributing secret shares according to the collaboration matrix and the random vector, the column vector including a share corresponding to a collaboration attribute and shares respectively corresponding to each sub-policy;

[0025] Encrypt data according to the column vector and the system public key to obtain collaboration ciphertext.

[0026] Optionally, the data owner is configured to calculate the column vector for distributing secret shares according to the following formula:

[0027]

[0028] wherein λ is the column vector for distributing secret shares, ca is a collaboration attribute, is the number of sub-policies in the collaboration policy, M is a collaboration matrix, and v is a random vector,

[0029]

[0030] wherein s is the secret;

[0031] is calculated according to the following sub-matrix: ​

[0032]

[0033] wherein the matrix is obtained by taking out a group of row vectors corresponding to the sub-policy from the cooperation matrix, and removing the column vectors all of which are 0.

[0034] Optionally, the data owner is configured to encrypt the data according to the following formula to obtain the cooperation ciphertext:

[0035]

[0036] wherein the random number , the random number , the random number and the random number are for the cooperation attribute, and is constructed according to .

[0037] Optionally, the data owner is configured to calculate the cooperation public key according to the following formula:

[0038]

[0039] wherein cpk is the cooperation public key.

[0040] The attribute authority is configured to calculate the cooperation private key according to the following formula:

[0041]

[0042] wherein csk is the cooperation private key.

[0043] Optionally, the attribute set S of the data user satisfies one of the sub-policies in the cooperation policy, and the access structure of the sub-policy is wherein is a matrix.

[0044] The data user is configured to calculate the plaintext message according to the following formula:

[0045]

[0046] wherein M is the plaintext message, , two constants and , is , the sub-matrix is extracted from and has a size of ,​ , a set of constants and satisfies an authorized set is .

[0047] Optionally, the data owner is configured to determine a random number , input parameters to the smart contract , so that the smart contract updates a first output parameter and a second output parameter, the first output parameter representing whether each of the sub-strategies of the collaboration strategy is satisfied, and the second output parameter representing a user list including user identities;

[0048] The attribute authority is configured to determine whether the collaboration channel is in a completed state according to the first output parameter, and determine whether the data user is in the user list of the collaboration channel according to the second output parameter.

[0049] Correspondingly, the embodiment of the application discloses a data security sharing method supporting multi-user cross-domain collaboration, applied to a data user, and the method comprises the following steps:

[0050] Downloading a collaboration ciphertext from a cloud server;

[0051] In a case where an attribute set of the data user satisfies at least one sub-strategy of a collaboration strategy, joining a collaboration channel; the collaboration channel is formed by creating a smart contract in a blockchain, and the smart contract is bound to the collaboration ciphertext;

[0052] Receiving an attribute private key and a collaboration private key sent by an attribute authority, and decrypting the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain data; the collaboration private key is sent to the data user in a case where the collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel; the collaboration channel is in the completed state, and the attribute set of the data user in the user list of the collaboration channel makes each sub-strategy of the collaboration strategy be satisfied.

[0053] Optionally, the joining of the collaboration channel comprises the following steps:

[0054] According to the attribute private key and the collaboration ciphertext, the smart contract is called to join the collaboration channel.

[0055] Optionally, the attribute private key is generated by the attribute authority according to an attribute set of the data user and a master key.

[0056] Optionally, the master key is generated by the attribute authority according to the following formula:

[0057]

[0058] wherein, is a generator of a cyclic group G of order , random number , random number .

[0059] Optionally, the attribute private key is wherein, random number and each data user in the corresponding group .

[0060] Optionally, the collaboration private key is calculated by the attribute authority according to the following formula:

[0061] wherein, csk is the collaboration private key, and cpk is the collaboration public key.

[0062] Optionally, the data is obtained by decrypting the collaboration ciphertext according to the attribute private key and the collaboration private key, comprising:

[0063] The plaintext message is calculated by the following formula:

[0064]

[0065] wherein, M is the plaintext message, , two constants and satisfy , is , the sub-matrix is extracted from and has a size of , , a set of constants and satisfy , the authorized set is .

[0066] Correspondingly, the embodiment of the application discloses a data security sharing method supporting multi-user cross-domain collaboration, applied to an attribute authority, and the method comprises the following steps:

[0067] An attribute set of the data user is obtained, an attribute private key corresponding to the data owner is generated according to the attribute set, and the attribute private key is sent to the data owner;

[0068] Obtain the collaboration public key from the blockchain, and when the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel, generate a collaboration private key corresponding to the collaboration public key and send the collaboration private key to the data user; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel satisfies all sub-strategies of the collaboration strategy.

[0069] Optionally, when the collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel, generating a collaboration private key corresponding to the collaboration public key and sending the collaboration private key to the data user includes:

[0070] Obtain output parameters of the smart contract, and determine whether the collaboration channel is in a completed state and whether the data user is in a user list of the collaboration channel based on the output parameters.

[0071] Optionally, the method further includes:

[0072] Generate a system public key and send it to the blockchain.

[0073] Optionally, generating a system public key includes:

[0074] Determine the order Generators of the cyclic group G ; For each attribute, randomly select ; For each group, randomly select ; Random selection ;

[0075] Generate the system public key according to the following formula:

[0076] .

[0077] Optionally, the method further includes:

[0078] Generate a master key;

[0079] Generating the attribute private key corresponding to the data owner according to the attribute set includes:

[0080] Generate an attribute private key corresponding to the data owner based on the attribute set of the data user and the master key.

[0081] Optionally, generating a master key includes:

[0082] Generate the master key according to the following formula:

[0083]

[0084] The generating of the attribute private key corresponding to the data owner according to the attribute set of the data user and the master key comprises:

[0085] For each data user in a group , a random number is selected;

[0086] The attribute private key is calculated according to the following formula:

[0087] .

[0088] Correspondingly, the embodiment of the application discloses a data security sharing device supporting multi-user cross-domain cooperation, applied to a data user, the device comprises:

[0089] A collaboration ciphertext downloading module is configured to download collaboration ciphertext from a cloud server;

[0090] A joining collaboration channel module is configured to join a collaboration channel when the attribute set of the data user meets at least one sub-policy of a collaboration policy; the collaboration channel is formed by creating a smart contract in a block chain, and the smart contract is bound to the collaboration ciphertext;

[0091] A decryption module is configured to receive an attribute private key and a collaboration private key sent by an attribute authority, and decrypt the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain data; the collaboration private key is sent to the data user when the collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel meets each sub-policy of the collaboration policy.

[0092] Optionally, the joining collaboration channel module comprises:

[0093] A joining collaboration channel submodule is configured to call the smart contract to join the collaboration channel according to the attribute private key and the collaboration ciphertext.

[0094] Optionally, the attribute private key is generated by the attribute authority according to the attribute set of the data user and a master key.

[0095] Optionally, the master key is generated by the attribute authority according to the following formula:

[0096]

[0097] wherein, is a generator of a cyclic group G of order , a random number , and a random number .

[0098] Optionally, the attribute private key is , wherein the random number and the corresponding group of each data user.

[0099] Optionally, the collaboration private key is calculated by the attribute authority according to the following formula:

[0100] , wherein csk is the collaboration private key, and cpk is the collaboration public key.

[0101] Optionally, the decryption module comprises:

[0102] A decryption submodule is configured to calculate the plaintext message by the following formula:

[0103]

[0104] , wherein M is the plaintext message, , two constants and satisfy , is , the submatrix is extracted from and has a size of , , , a set of constants and satisfy , the authorized set is .

[0105] Correspondingly, the embodiment of the application discloses a data security sharing device supporting multi-user cross-domain collaboration, applied to an attribute authority, and the device comprises:

[0106] An attribute private key sending module is configured to acquire an attribute set of the data user, generate an attribute private key corresponding to the data owner according to the attribute set, and send the attribute private key to the data owner.

[0107] A collaboration private key sending module is configured to acquire a collaboration public key from a block chain, generate a collaboration private key corresponding to the collaboration public key under the condition that the collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel, and send the collaboration private key to the data user; the collaboration channel is in the completed state, and the attribute set of the data user in the user list of the collaboration channel makes each sub-strategy of the collaboration strategy be satisfied.

[0108] Optionally, the collaboration private key sending module comprises:

[0109] An output parameter obtaining submodule is configured to obtain an output parameter of the smart contract, determine whether the collaboration channel is in a completed state according to the output parameter, and determine whether the data user is in a user list of the collaboration channel.

[0110] Optionally, the apparatus further comprises:

[0111] A system public key generating module is configured to generate a system public key and send the system public key to the blockchain.

[0112] Optionally, the system public key generating module comprises:

[0113] A parameter determining submodule is configured to determine a generator of a cyclic group G with an order of ; randomly select for each attribute; randomly select for each group; and randomly select . ;

[0114] A system public key generating submodule is configured to generate a system public key according to the following formula:

[0115] .

[0116] Optionally, the apparatus further comprises:

[0117] A master key generating module is configured to generate a master key.

[0118] The attribute private key sending module comprises:

[0119] An attribute private key generating submodule is configured to generate an attribute private key corresponding to the data owner according to an attribute set of the data user and the master key.

[0120] Optionally, the master key generating module comprises:

[0121] A master key generating submodule is configured to generate a master key according to the following formula:

[0122] ;

[0123] The attribute private key generating submodule comprises:

[0124] A random number selecting unit is configured to randomly select a random number for each data user in a group .

[0125] An attribute private key generating unit is configured to calculate an attribute private key according to the following formula:

[0126] .

[0127] Embodiments of the present application include the following advantages:

[0128] The data security sharing system supporting multi-user cross-domain collaboration of the embodiment of the present application comprises a data owner, a data user, an attribute authorization agency and a block chain, wherein the data owner is configured to acquire a collaboration strategy and collaboration attributes, encrypt data according to the collaboration strategy, obtain collaboration ciphertext, upload the collaboration ciphertext to a cloud server, generate a collaboration public key corresponding to the collaboration attributes, and upload the collaboration public key to the block chain; the data user is configured to download the collaboration ciphertext from the cloud server, join a collaboration channel in the case that an attribute set of the data user satisfies at least one sub-strategy of the collaboration strategy, receive an attribute private key and a collaboration private key sent by the attribute authorization agency, decrypt the collaboration ciphertext according to the attribute private key and the collaboration private key, and obtain data; the collaboration channel is formed by creating a smart contract in the block chain, and the smart contract is bound to the collaboration ciphertext; in the case that the attribute set of the data user satisfies at least one sub-strategy of the collaboration strategy, the data user can only join the collaboration channel, so that only the user who satisfies a certain sub-strategy of the collaboration strategy and enters the collaboration channel can decrypt, thereby improving the security of the data.

[0129] The attribute authorization agency is configured to acquire an attribute set of the data user, generate an attribute private key corresponding to the data owner according to the attribute set, and send the attribute private key to the data owner; acquire the collaboration public key from the block chain, generate a collaboration private key corresponding to the collaboration public key in the case that the collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel, and send the collaboration private key to the data user; the collaboration channel is in the completed state, and the attribute set of the data user in the user list of the collaboration channel makes each sub-strategy of the collaboration strategy be satisfied. The attribute authorization agency sends the collaboration private key to the data user in the case that the collaboration channel is determined to be in the completed state and the data user is in the user list of the collaboration channel, that is, the collaboration strategy is completely satisfied, sends the collaboration private key to the data user participating in the collaboration, realizes safe and controllable multi-user collaboration, and the user participating in the collaboration can decrypt by himself without communicating with each other, thereby avoiding a large communication overhead in the decryption process. BRIEF DESCRIPTION OF DRAWINGS

[0130] Figure 1 is a structural schematic diagram of the data security sharing system supporting multi-user cross-domain collaboration of the embodiment of the present application;

[0131] Figure 2 is a schematic diagram of strategy conversion of the embodiment of the present application;

[0132] Figure 3 is a step flowchart of the data security sharing method supporting multi-user cross-domain collaboration of the embodiment of the present application;

[0133] Figure 4 is another step flow chart of a data security sharing method supporting multi-user cross-domain collaboration according to an embodiment of the present application;

[0134] Figure 5 is a structural block diagram of a data security sharing device supporting multi-user cross-domain collaboration according to an embodiment of the present application;

[0135] Figure 6 is another structural block diagram of a data security sharing device supporting multi-user cross-domain collaboration according to an embodiment of the present application. DETAILED DESCRIPTION

[0136] In order to make the above objectives, characteristics and advantages of the present application more apparent, comprehensible and easily understood, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0137] Industrial Internet generally involves multiple security domains, which have their own security boundaries and security mechanisms, and some data often needs to be accessed by users from different security domains in a collaborative manner. For example, in the power industrial Internet, the dispatching center sends the collected power generation conditions of each power station to other interested departments such as power selling companies and subordinate dispatching centers to support business. In order to ensure the confidentiality of the message and limit the range of message dissemination, the dispatching center uses "power station AND power selling company" as an access policy to encrypt the data. However, one department cannot have both attributes in the policy at the same time, so the three departments need to collaborate to decrypt to obtain the data.

[0138] There are two types of solutions to achieve collaborative decryption to obtain data. The first type of solution uses "group" to share data. If the combined attribute set of all users in the group meets the policy, all users in the group are allowed to decrypt. This type of solution expands the control over data, however, users in the group who do not meet a certain attribute of the policy can still decrypt, and there is a serious security flaw.

[0139] Another type of solution allows users to achieve collaborative decryption through interaction. The encryption party needs to set one or more attributes as "conversion attributes" when encrypting the data. Users who have the attribute can convert the decryption intermediate result of the attribute into a decryption intermediate result that can be used by other users. For example, "power station" is set as a "conversion attribute", so power station A can convert the decryption intermediate result of "power station" and send it to power selling company B. At this time, B has both the decryption intermediate result of "power station" and the decryption intermediate result of "power selling company", and can decrypt the data. However, this method can only allow one party to have the final decryption capability, unless "power selling company" is also set as a "conversion attribute" or B sends the decryption result to A, otherwise A cannot decrypt alone, and this type of solution requires a large amount of communication.

[0140] One of the core ideas of the embodiments of the present application is that in the case that the attribute set of the data user satisfies at least one sub-policy of the collaboration policy, the user who satisfies the certain sub-policy of the collaboration policy can join the collaboration channel in a manner, so that only the user who satisfies the certain sub-policy of the collaboration policy can perform decryption, thereby improving the security of the data; the attribute authority sends the collaboration private key to the data user when determining that the collaboration channel is in a completed state and the data user is in the user list of the collaboration channel, that is, the collaboration private key is sent to the data user participating in the collaboration when the collaboration policy is completely satisfied, thereby realizing safe and controllable multi-user collaboration, and the user participating in the collaboration can perform decryption by himself without communicating with each other, thereby avoiding a large amount of communication overhead in the decryption process.

[0141] Reference Figure 1 , a structure schematic diagram of a data security sharing system supporting multi-user cross-domain collaboration is shown, which comprises a data owner, a data user, an attribute authority, a cloud server and a block chain.

[0142] The cloud server (CS) is a data storage and sharing platform that allows registered users to freely upload, download and share data through an encryption mechanism, while ensuring the confidentiality and integrity of the data. Assuming that the cloud server is semi-trusted, the cloud server will strictly follow the protocol specifications (such as data storage, retrieval and access control), faithfully execute user requests, but may attempt to analyze metadata (such as access patterns, file sizes or user relationships) to infer sensitive information.

[0143] The data owner is used to obtain a collaboration policy and collaboration attributes; encrypts data according to the collaboration policy to obtain collaboration ciphertext, and uploads the collaboration ciphertext to a cloud server; generates a collaboration public key corresponding to the collaboration attributes, and uploads the collaboration public key to a block chain.

[0144] The data owner (DO) is a user or entity that legally generates, controls and manages data, and is responsible for data uploading, encryption, access authorization and lifecycle management (such as updating, revoking or deleting). In a cloud storage environment, the data owner encrypts data according to an access policy, and then uploads the encrypted data to a cloud server. The encrypted data is divided into two types: ordinary ciphertext and collaboration ciphertext. The encryption method of the ordinary ciphertext is similar to the traditional Ciphertext-Policy Attribute-Based Encryption (CP-ABE) scheme, while the collaboration ciphertext needs to be encrypted according to the collaboration policy. Figure 2 , a schematic diagram of policy conversion is shown, Figure 2The left graph in FIG. 1 represents a regular strategy, including sub-strategies p1 and p2, and the right graph represents a collaborative strategy, which introduces a collaborative attribute ca for conversion, that is, conversion from the regular strategy in the left graph to the collaborative strategy in the right graph, and the collaborative strategy obtained by conversion includes sub-strategies p1 and p2.

[0145] The data owner converts the regular strategy into the collaborative strategy, and then encrypts the data according to the collaborative strategy to obtain collaborative ciphertext, and uploads the collaborative ciphertext to the cloud server, each collaborative ciphertext has a collaborative attribute ca, and the public key of the collaborative attribute ca is called a collaborative public key (Collaborative PK). The data owner generates a collaborative public key corresponding to the collaborative attribute locally, and records the collaborative public key in a blockchain ledger.

[0146] The data user is configured to download the collaborative ciphertext from the cloud server, join a collaborative channel in a case where an attribute set of the data user satisfies at least one sub-strategy of the collaborative strategy, receive an attribute private key and a collaborative private key sent by an attribute authority, and decrypt the collaborative ciphertext according to the attribute private key and the collaborative private key to obtain data. The collaborative channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaborative ciphertext.

[0147] A data user (DU) belongs to a group, and the group can have multiple data users. In a cloud storage system, a group is a logical user set, and is used to simplify permission management. A data owner can define a group (such as a “finance department” or a “project A group”) based on an organizational structure, a role, or a business requirement, and assign access permissions to the entire group rather than to an individual data owner.

[0148] The data user can download and decrypt ciphertext from the cloud server. After the data user downloads the collaborative ciphertext, the data user joins a collaborative channel in a case where an attribute set of the data user satisfies at least one sub-strategy of the collaborative strategy. The collaborative channel is formed by creating a smart contract in the blockchain by a collaborator in the same group as the data user, and the smart contract is bound to the collaborative ciphertext. After joining the collaborative channel, the data user can successfully decrypt the collaborative ciphertext by using two private keys: an attribute private key (Attribute SK) corresponding to the attribute set of the data user, and a collaborative private key (Collaborative SK) corresponding to the collaborative attribute ca in the ciphertext. Only when the data user joins a channel created by a collaborator in the same group and the status of the channel is “completed”, can the data user obtain the collaborative private key from an attribute authority.

[0149] An attribute authority is configured to obtain an attribute set of a data user, generate an attribute private key corresponding to a data owner according to the attribute set, and send the attribute private key to the data owner; obtain a collaboration public key from a blockchain, and in a case where a collaboration channel is in a completed state and the data user is in a user list of the collaboration channel, generate a collaboration private key corresponding to the collaboration public key, and send the collaboration private key to the data user; the collaboration channel being in the completed state is that the attribute set of the data user in the user list of the collaboration channel makes each sub-policy of the collaboration policy be satisfied.

[0150] An attribute authority (AA) is configured to receive an attribute set sent by a data user, generate an attribute private key corresponding to a data owner according to the attribute set, and send the attribute private key to the data owner. For a collaboration private key, the attribute authority needs to obtain a collaboration public key from a blockchain ledger and verify whether the following two conditions are met: one is whether the collaboration channel is in a completed state, and the other is whether the data user is in a user list of the collaboration channel. Only when both conditions are met, the attribute authority will distribute the collaboration private key generated by the collaboration public key. Here, the attribute authority is assumed to be fully trusted, because the attribute authority needs to generate the attribute private key and the collaboration private key, and must be fully trusted, otherwise it will cause private key leakage.

[0151] The blockchain records a collaboration public key in operation, and executes a collaboration channel smart contract. The collaboration channel smart contract is created by a collaboration initiator and bound with collaboration ciphertext. If an attribute set of a data user in the same group as the collaboration initiator satisfies a certain sub-policy in the collaboration policy, the data user can join the channel. If all sub-policies in the collaboration policy are satisfied, the collaboration channel is considered to be “completed”. The data user in the collaboration channel in the “completed” state can obtain a collaboration private key from the attribute authority, and decrypt the collaboration ciphertext corresponding to the collaboration channel according to the attribute private key and the collaboration private key. Due to randomization processing, the collaboration private key of each data user is different, and the blockchain can be a permissioned chain or an un-permissioned chain supporting a smart contract.

[0152] The embodiment of the application enables a data user to join a collaboration channel only when the attribute set of the data user satisfies at least one sub-policy of a collaboration policy, so that only a user satisfying a certain attribute of the collaboration policy can perform decryption, thereby improving the security of data. The attribute authority sends a collaboration private key to a data user in a case where the collaboration channel is in a completed state and the data user is in a user list of the collaboration channel, that is, in a case where the collaboration policy is fully satisfied, and sends the collaboration private key to a data user participating in collaboration, thereby realizing secure and controllable multi-person collaboration. The user participating in collaboration can perform decryption by himself without communicating with each other, thereby avoiding a large communication overhead in the decryption process.

[0153] In the embodiment of the present application, the data user is configured to call the smart contract to join the collaboration channel according to the attribute private key and the collaboration ciphertext.

[0154] The attribute authority is configured to obtain the output parameter of the smart contract, determine whether the collaboration channel is in a completed state and whether the data user is in the user list of the collaboration channel according to the output parameter.

[0155] Specifically, the data user is configured to call the smart contract to join the collaboration channel according to the attribute private key and the collaboration ciphertext. After the data user inputs the parameters to join the collaboration channel, the output parameter of the smart contract is updated accordingly. The attribute authority is configured to obtain the output parameter of the smart contract, determine whether the collaboration channel is in a completed state and whether the data user is in the user list of the collaboration channel according to the output parameter.

[0156] In the embodiment of the present application, the data owner is further configured to obtain the system public key from the blockchain, and encrypt the data according to the collaboration strategy and the system public key to obtain the collaboration ciphertext.

[0157] Specifically, the data owner is further configured to obtain the system public key from the blockchain, and encrypt the data according to the collaboration strategy and the system public key to obtain the collaboration ciphertext.

[0158] In the embodiment of the present application, the attribute authority is further configured to generate the system public key and send it to the blockchain.

[0159] Specifically, the attribute authority is further configured to generate the system public key and record the system public key in the blockchain ledger. The system public key is a public key used for encryption and acts on the system globally. It is also used by the data owner to generate a collaboration public key. The collaboration public key is a public key generated by the user and bound to the collaboration ciphertext, and only acts on the collaboration ciphertext.

[0160] In the embodiment of the present application, the attribute authority is further configured to generate a master key, and generate the attribute private key corresponding to the data owner according to the attribute set of the data user and the master key.

[0161] Specifically, the attribute authority is further configured to generate a master key, and generate the attribute private key corresponding to the data owner according to the attribute set of the data user and the master key. The master key is used to generate the attribute private key.

[0162] In the embodiment of the present application, the attribute authority first selects a cyclic group , for it to generate an element. For each attribute, the attribute authority randomly selects For each group, the attribute authority randomly selects In addition, the attribute authority randomly selects​ Finally, the system public key is:

[0163] .

[0164] In the embodiment of the present application, the attribute authority is configured to generate the master key according to the following formula:

[0165] .

[0166] In the embodiment of the present application, the attribute authority is configured to randomly select, for each data user in a group , an attribute private key according to the following formula:

[0167] .

[0168] In the embodiment of the present application, a cooperation strategy includes sub-strategies; the data owner is configured to determine a random vector, the random vector including a secret; obtain a cooperation matrix corresponding to the cooperation strategy; determine a column vector for distributing secret shares according to the cooperation matrix and the random vector, the column vector including a share corresponding to the cooperation attribute and shares respectively corresponding to each sub-strategy; and encrypt the data according to the column vector and the system public key to obtain cooperation ciphertext.

[0169] Specifically, the data owner needs to randomly select a random vector, the first random number of the random vector being the secret, obtain a cooperation matrix corresponding to the cooperation strategy, determine a column vector for distributing secret shares according to the cooperation matrix and the random vector, the column vector including a share corresponding to the cooperation attribute and shares respectively corresponding to each sub-strategy, and encrypt the data according to the column vector and the system public key to obtain cooperation ciphertext.

[0170] In the embodiment of the present application, the data owner first randomly selects a random vector v, the random vector v being as follows:

[0171] ,

[0172] Then, the following is calculated: wherein the column vector is calculated by the following sub-matrix:

[0173] ,

[0174] wherein is extracted from the cooperation matrix, and the extraction method is as follows: a group of row vectors corresponding to the sub-strategy k is taken out from the cooperation matrix respectively, and after removing the column vectors all of which are 0, the is formed, and the cooperation matrix is as follows:

[0175] ​ ,in, is a row vector representing the collaborative attribute ca, is a mapping The construction of the submatrix follows the general construction method of the LSSS matrix. It is a structure The repeated row vectors generated in the process.

[0176] In the embodiment of the present invention, the data owner is used to structure , in order to , the data owner is set as follows:

[0177] , for the collaborative attribute ca, the data owner selects a random number , and calculate , That is the collaborative public key. In addition, the data owner randomly selects ,as well as .

[0178] The final ciphertext is:

[0179] .

[0180] In this embodiment of the present invention, the data owner calculates the collaborative public key according to the following formula:

[0181] , where cpk is the collaborative public key;

[0182] The attribute authority is used to calculate the collaborative private key according to the following formula:

[0183] , where csk is the collaborative private key.

[0184] In the embodiment of the present invention, the attribute set S of the data user satisfies one of the sub-strategies in the collaboration strategy, and its access structure is ,in, yes Matrix, defining the authorization set for , data users can find a set of constants satisfy , then, data users can get and calculate .

[0185] Next, the data user obtains the collaborative attribute ca and extracts Submatrix of , the extraction method is to take out a group of row vectors corresponding to the sub-strategy k from the cooperation matrix respectively, and remove the column vectors all of which are 0. The sub-strategy is regarded as a single attribute, and , then the data user can calculate two constants satisfying .

[0186] Then, the data user calculates

[0187]

[0188] Finally, the data user obtains the plaintext message by calculating

[0189]

[0190] In the embodiment of the application, the data user can calculate when a certain sub-strategy is satisfied , randomly select two random numbers , and call the cooperation channel smart contract CSC, that is, input the parameters to the smart contract, so that the smart contract updates the first output parameter and the second output parameter, the first parameter AC is an array, the index of which represents the sub-strategy, and if the value of each element in the array AC is 1, it means that all the sub-strategies have been satisfied. At this time, the channel is regarded as a completed state, and the data user in the user list UL can obtain the cooperation attribute, and the second parameter UL is a user list containing the user identity, the attribute authority, which is used to determine whether the cooperation channel is in the completed state according to the first output parameter, and whether the data user is in the user list of the cooperation channel according to the second output parameter.

[0191] Exemplarily, the cooperation channel smart contract is as follows:

[0192]

[0193] The consensus node will collect the blockchain transaction and create the CSC for the cooperation initiator. Before instantiating the CSC, the consensus node will check whether the group ID and the group public key in the CSC are correct. If correct, the consensus node will continue to instantiate the CSC and package it into the next new block. If not correct, the creation of the CSC will fail.

[0194] Referring to Figure 3 , a step flow chart of a data security sharing method supporting multi-user cross-domain cooperation is shown, which is applied to a data user and can specifically include the following steps:

[0195] ​Step 101, downloading the collaboration ciphertext from the cloud server.

[0196] Step 102, joining the collaboration channel in the case that the attribute set of the data user satisfies at least one sub-policy of the collaboration policy; the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound with the collaboration ciphertext.

[0197] Step 103, receiving the attribute private key and the collaboration private key sent by the attribute authority, and decrypting the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain the data; the collaboration private key is sent to the data user in the case that the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel; the collaboration channel is in the completed state in the case that the attribute set of the data user in the user list of the collaboration channel satisfies each sub-policy of the collaboration policy.

[0198] The way of joining the collaboration channel only in the case that the attribute set of the data user satisfies at least one sub-policy of the collaboration policy makes only the user satisfying a certain attribute of the collaboration policy to be able to decrypt, thereby improving the security of the data.

[0199] In the embodiment of the application, step 102 can specifically include the following sub-steps:

[0200] Sub-step S11, calling the smart contract to join the collaboration channel according to the attribute private key and the collaboration ciphertext.

[0201] In the embodiment of the application, the attribute private key is generated by the attribute authority according to the attribute set of the data user and the master key.

[0202] In the embodiment of the application, the master key is generated by the attribute authority according to the following formula:

[0203]

[0204] wherein, is a generator of a cyclic group G of order , the random number , and the random number .

[0205] In the embodiment of the application, the attribute private key is , wherein the random number and each data user in the corresponding group .

[0206] Optionally, the collaboration private key is calculated by the attribute authority according to the following formula:

[0207] wherein, csk is the collaboration private key, and cpk is the collaboration public key.

[0208] In the embodiment of the present application, step 103 can specifically include the following sub-steps:

[0209] Sub-step S21, the plaintext message is calculated by the following formula:

[0210]

[0211] wherein M is the plaintext message, two constants and satisfy , is , the sub-matrix is extracted from and has a size of , , a set of constants and satisfy , the authorized set is .

[0212] Referring to Figure 4 , another step flow chart of a data security sharing method supporting multi-user cross-domain collaboration in the embodiment of the present application is shown, which is applied to an attribute authorization agency and can specifically include the following steps:

[0213] Step 201, obtaining an attribute set of a data user, generating an attribute private key corresponding to a data owner according to the attribute set, and sending the attribute private key to the data owner.

[0214] Step 202, obtaining a collaboration public key from a block chain, generating a collaboration private key corresponding to the collaboration public key in the case that a collaboration channel is in a completed state and the data owner is in a user list of the collaboration channel, and sending the collaboration private key to the data user; the collaboration channel being in the completed state is that the attribute set of the data user in the user list of the collaboration channel makes each sub-policy of the collaboration policy be satisfied.

[0215] The attribute authorization agency sends the collaboration private key to the data user in the case that the collaboration channel is in the completed state and the data user is in the user list of the collaboration channel, that is, in the case that the collaboration policy is all satisfied, and sends the collaboration private key to the data user participating in the collaboration, thereby realizing safe and controllable multi-user collaboration, and the user participating in the collaboration can decrypt by himself without communicating with each other, thereby avoiding a large communication overhead in the decryption process.

[0216] In the embodiment of the present application, step 202 can specifically include the following sub-steps:

[0217] Obtaining an output parameter of the smart contract, determining whether the collaboration channel is in a completed state and whether the data user is in a user list of the collaboration channel according to the output parameter.

[0218] In the embodiments of the present application, the method further comprises:

[0219] Generating a system public key and sending the system public key to the blockchain.

[0220] In the embodiments of the present application, the system public key is generated by:

[0221] Determining a generator of a cyclic group G of order ; randomly selecting for each attribute; randomly selecting for each group; and randomly selecting . ;

[0222] The system public key is generated according to the following formula:

[0223] .

[0224] In the embodiments of the present application, the method further comprises:

[0225] Generating a master key;

[0226] Generating an attribute private key corresponding to the data owner according to an attribute set, comprising:

[0227] Generating the attribute private key corresponding to the data owner according to the attribute set of the data user and the master key.

[0228] In the embodiments of the present application, the master key is generated by:

[0229] The master key is generated according to the following formula:

[0230]

[0231] Generating the attribute private key corresponding to the data owner according to the attribute set of the data user and the master key, comprising:

[0232] For each data user in the group , randomly selecting .

[0233] The attribute private key is calculated according to the following formula:

[0234] .

[0235] It should be noted that for the method embodiments, the series of acts combined are described for simplicity, but those skilled in the art should know that the embodiments of the present application are not limited to the order of the acts described, because according to the embodiments of the present application, certain steps can be performed in other orders or at the same time. Secondly, those skilled in the art should know that the embodiments described in the specification are all preferred embodiments, and the acts involved are not necessarily essential to the embodiments of the present application.

[0236] Referring to Figure 5 , a structural block diagram of a data security sharing device supporting multi-user cross-domain collaboration is shown, which is applied to a data user and can specifically include the following modules:

[0237] The collaboration ciphertext downloading module 301 is configured to download collaboration ciphertext from a cloud server.

[0238] The join collaboration channel module 302 is configured to join a collaboration channel when the attribute set of the data user satisfies at least one sub-policy of a collaboration policy.

[0239] The decryption module 303 is configured to receive an attribute private key and a collaboration private key sent by an attribute authority, and decrypt the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain data.

[0240] The way that the data user can join the collaboration channel only when the attribute set of the data user satisfies at least one sub-policy of the collaboration policy makes only the user who satisfies a certain attribute of the collaboration policy be able to decrypt, thereby improving the security of the data.

[0241] In the embodiments of the present application, the join collaboration channel module includes:

[0242] The join collaboration channel submodule is configured to call the smart contract to join the collaboration channel according to the attribute private key and the collaboration ciphertext.

[0243] In the embodiments of the present application, the attribute private key is generated by the attribute authority according to the attribute set of the data user and a master key.

[0244] In the embodiments of the present application, the master key is generated by the attribute authority according to the following formula:

[0245]

[0246] wherein, For the stage Generator of the cyclic group G, random number , random number .

[0247] In the embodiment of the present invention, the attribute private key is , where the random number And the corresponding group Each data user in the

[0248] In the embodiment of the present invention, the collaborative private key is calculated by the attribute authority according to the following formula:

[0249] Among them, csk is the collaborative private key and cpk is the collaborative public key.

[0250] In an embodiment of the present invention, the decryption module includes:

[0251] The decryption submodule is used to calculate the plaintext message using the following formula:

[0252]

[0253] Among them, M is the plaintext message, , two constants and satisfy , for , submatrix For Extracted from and sized , , , a set of constants and satisfy , authorization set for .

[0254] Reference Figure 6 , shows a structural block diagram of another data security sharing device supporting multi-user cross-domain collaboration according to an embodiment of the present invention, which is applied to an attribute authorization agency and may specifically include the following modules:

[0255] The attribute private key sending module 401 is used to obtain the attribute set of the data user, generate the attribute private key corresponding to the data owner based on the attribute set, and send the attribute private key to the data owner;

[0256] The collaboration private key sending module 402 is configured to acquire the collaboration public key from the block chain, generate a collaboration private key corresponding to the collaboration public key when the collaboration channel is in a completed state and the data user is in the user list of the collaboration channel, and send the collaboration private key to the data user; the collaboration channel being in the completed state means that the attribute set of the data user in the user list of the collaboration channel satisfies each sub-policy of the collaboration policy.

[0257] The attribute authority sends the collaboration private key to the data user when determining that the collaboration channel is in the completed state and the data user is in the user list of the collaboration channel, that is, when the collaboration policy is completely satisfied, and sends the collaboration private key to the data user participating in the collaboration, thereby realizing safe and controllable multi-user collaboration, and the data users participating in the collaboration can decrypt by themselves without communicating with each other, thereby avoiding a large amount of communication overhead in the decryption process.

[0258] In the embodiment of the application, the collaboration private key sending module comprises:

[0259] The output parameter acquisition sub-module is configured to acquire the output parameter of the smart contract, and determine whether the collaboration channel is in the completed state and whether the data user is in the user list of the collaboration channel according to the output parameter.

[0260] In the embodiment of the application, the device further comprises:

[0261] The system public key generation module is configured to generate a system public key and send the system public key to the block chain.

[0262] In the embodiment of the application, the system public key generation module comprises:

[0263] The parameter determination sub-module is configured to determine a generator of a cyclic group G with an order of , randomly select for each attribute, randomly select for each group, and randomly select . ;

[0264] The system public key generation sub-module is configured to generate a system public key according to the following formula:

[0265] .

[0266] In the embodiment of the application, the device further comprises:

[0267] The master key generation module is configured to generate a master key.

[0268] The attribute private key sending module comprises:

[0269] The attribute private key generation submodule is configured to generate an attribute private key corresponding to the data owner according to an attribute set of the data user and a master key.

[0270] In the embodiment of the present application, the master key generation module comprises:

[0271] The master key generation submodule is configured to generate the master key according to the following formula:

[0272] ;

[0273] The attribute private key generation submodule comprises:

[0274] The random number selection unit is configured to randomly select a random number for each data user in the group ; ;

[0275] The attribute private key generation unit is configured to calculate the attribute private key according to the following formula:

[0276] .

[0277] For the device embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the related parts are referred to the part of the method embodiment.

[0278] Each embodiment in the specification is described in a progressive manner, and each embodiment focuses on the difference from other embodiments. The same and similar parts of each embodiment are referred to each other.

[0279] Those skilled in the art should understand that the embodiments of the embodiments of the present application can be provided as a method, device, or computer program product. Therefore, the embodiments of the present application can be in the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the embodiments of the present application can be in the form of a computer program product implemented on one or more computer usable storage media (including but not limited to magnetic disk storage, CD-ROM, optical storage, etc.) containing computer usable program code.

[0280] The embodiments of the present application are described with reference to the flowcharts and / or block diagrams according to the method, terminal device (system), and computer program product of the embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram, and the combination of the flows and / or blocks in the flowchart and / or block diagram can be realized by computer program instructions. These computer program instructions can be provided to a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing terminal device to produce a machine, so that the instructions executed by the computer or other programmable data processing terminal device produce a machine that implements the functions described in the flowchart and / or block diagram.Figure 1 one or more processes and / or blocks Figure 1 an apparatus for performing the functions specified in the flowchart

[0281] These computer program instructions can also be stored in a computer- readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instructions which implement the flowchart Figure 1 one or more processes and / or blocks Figure 1 an apparatus for performing the functions specified in the flowchart

[0282] These computer program instructions can also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the flowchart Figure 1 one or more processes and / or blocks Figure 1 an apparatus for performing the functions specified in the flowchart

[0283] While preferred embodiments of the application have been described, those skilled in the art will recognize that additional modifications and changes can be made thereto without departing from the scope of the present application. Accordingly, the appended claims are intended to cover all such modifications and changes as fall within the scope of the present application.

[0284] Finally, it should be noted that the terms "comprises", "comprising", or other variations thereof are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but can also include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by "comprises... a" does not, without more constraints, exclude the presence of additional identical elements in the process, method, article, or apparatus that comprises the element. The terms "an" and "one" are defined as including one or more than one.

[0285] The above describes the data security sharing method and device for supporting multi-user cross-domain collaboration provided by the application in detail, and the principles and implementation manners of the application are described by using specific examples in this paper; the above example description is only used to help understand the method of the application and its core idea; meanwhile, for those skilled in the art, the specific implementation manners and application ranges will be changed according to the idea of the application; and in summary, the content of the specification should not be understood as a limitation of the application.

Claims

1. A data security sharing system supporting multi-user cross-domain collaboration, characterized in that: The system includes data owners, data users, attribute authorization agencies and blockchain; The data owner is used to obtain the collaboration strategy and collaboration attributes; encrypt the data according to the collaboration strategy to obtain the collaboration ciphertext, and upload the collaboration ciphertext to the cloud server; Generate a collaboration public key corresponding to the collaboration attribute, and upload the collaboration public key to the blockchain; The data user is configured to download the collaboration ciphertext from the cloud server; join the collaboration channel if the data user's attribute set satisfies at least one sub-strategy of the collaboration strategy; receive the attribute private key and collaboration private key sent by the attribute authority, and decrypt the collaboration ciphertext using the attribute private key and collaboration private key to obtain the data; the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaboration ciphertext; The attribute authorization agency is used to obtain the attribute set of the data user, generate the attribute private key corresponding to the data owner based on the attribute set, and send the attribute private key to the data owner; Obtain the collaboration public key from the blockchain, generate a collaboration private key corresponding to the collaboration public key when the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel, and send the collaboration private key to the data user; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel satisfies all sub-strategies of the collaboration strategy.

2. The data security sharing system according to claim 1, characterized in that: The data user is configured to call the smart contract to join the collaborative channel according to the attribute private key and the collaborative ciphertext; The attribute authorization agency is used to obtain the output parameters of the smart contract, and determine whether the collaboration channel is in a completed state and whether the data user is in the user list of the collaboration channel based on the output parameters.

3. The data security sharing system according to claim 2, characterized in that: The data owner is also used to obtain the system public key from the blockchain; encrypt the data according to the collaboration strategy and the system public key to obtain the collaboration ciphertext.

4. The data security sharing system according to claim 3, characterized in that: The attribute authorization agency is also used to generate a system public key and send it to the blockchain.

5. The data security sharing system according to claim 4, characterized in that: The attribute authorization agency is further used to generate a master key, and generate an attribute private key corresponding to the data owner based on the attribute set of the data user and the master key.

6. The data security sharing system according to claim 5, characterized in that: A collaborative strategy includes Individual strategies; The data owner is used to determine a random vector, where the random vector includes a secret; Obtaining a collaboration matrix corresponding to the collaboration strategy; Determining, according to the collaboration matrix and the random vector, a column vector for distributing secret shares, wherein the column vector includes shares corresponding to collaboration attributes and shares corresponding to respective sub-strategies; The data is encrypted according to the column vector and the system public key to obtain a collaborative ciphertext.

7. A data security sharing method supporting multi-user cross-domain collaboration, applied to data users, characterized in that: The method comprises: Downloading the collaborative ciphertext from the cloud server, wherein the collaborative ciphertext is obtained by encrypting the data according to the acquired collaborative strategy and uploading it to the cloud server; If the attribute set of the data user satisfies at least one sub-strategy of the collaboration strategy, joining the collaboration channel; the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaboration ciphertext; Receive the attribute private key and collaboration private key sent by the attribute authorization agency, decrypt the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain the data; the attribute private key is the attribute private key corresponding to the data owner generated by the attribute authorization agency based on the acquired attribute set of the data user; the collaboration private key is the collaboration private key corresponding to the collaboration public key generated by the attribute authorization agency by obtaining the collaboration public key from the blockchain when the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel; the collaboration public key is the collaboration public key corresponding to the collaboration attribute generated by the data owner and uploaded to the blockchain; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel satisfies all sub-strategies of the collaboration strategy.

8. The data security sharing method according to claim 7, characterized in that: Joining the collaborative channel includes: According to the attribute private key and the collaboration ciphertext, the smart contract is called to join the collaboration channel.

9. The data security sharing method according to claim 8, characterized in that: The attribute private key is generated by the attribute authorization agency according to the attribute set and the master key of the data user.

10. A data security sharing method supporting multi-user cross-domain collaboration, applied to attribute authorization agencies, characterized in that: The method comprises: Obtaining the attribute set of the data user, generating an attribute private key corresponding to the data owner based on the attribute set, and sending the attribute private key to the data owner and the data user; Obtaining a collaboration public key from the blockchain, where the collaboration public key corresponds to the collaboration attribute generated by the data owner and uploaded to the blockchain; When the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel, a collaboration private key corresponding to the collaboration public key is generated, and the collaboration private key is sent to the data user, so that after the data user downloads the collaboration ciphertext from the cloud server, the collaboration ciphertext is decrypted according to the received attribute private key and the collaboration private key to obtain the data; the collaboration ciphertext is obtained by the data owner by encrypting the data according to the acquired collaboration strategy and uploading it to the cloud server; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel satisfies all sub-strategies of the collaboration strategy, wherein, when the attribute set of the data user satisfies at least one sub-strategy of the collaboration strategy, the data user joins the collaboration channel, and the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaboration ciphertext.

11. The data security sharing method according to claim 10, characterized in that: The step of generating a collaborative private key corresponding to the collaborative public key and sending the collaborative private key to the data user when the collaborative channel is in a completed state and the data owner is in a user list of the collaborative channel includes: Obtain output parameters of the smart contract, and determine whether the collaboration channel is in a completed state and whether the data user is in a user list of the collaboration channel based on the output parameters.

12. The data security sharing method according to claim 11, characterized in that: The method further comprises: Generate a system public key and send it to the blockchain.

13. A data security sharing device supporting multi-user cross-domain collaboration, characterized in that: Applied to a data user, the device includes: A collaborative ciphertext download module is used to download collaborative ciphertext from the cloud server. The collaborative ciphertext is obtained by encrypting the data according to the acquired collaborative strategy and then uploaded to the cloud server; a collaboration channel joining module, configured to join the collaboration channel if the attribute set of the data user satisfies at least one sub-strategy of the collaboration strategy; the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaboration ciphertext; A decryption module is used to receive the attribute private key and collaboration private key sent by the attribute authorization agency, and decrypt the collaboration ciphertext according to the attribute private key and the collaboration private key to obtain data; the attribute private key is the attribute private key corresponding to the data owner generated by the attribute authorization agency based on the acquired attribute set of the data user; the collaboration private key is the collaboration private key corresponding to the collaboration public key generated by the attribute authorization agency when the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel, by obtaining the collaboration public key from the blockchain; the collaboration public key is the collaboration public key corresponding to the collaboration attribute generated by the data owner and uploaded to the blockchain; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel satisfies all sub-strategies of the collaboration strategy.

14. A data security sharing device supporting multi-user cross-domain collaboration, characterized in that: Applied to an attribute authorization agency, the device includes: An attribute private key sending module is used to obtain the attribute set of the data user, generate the attribute private key corresponding to the data owner based on the attribute set, and send the attribute private key to the data owner; A collaboration private key sending module is used to obtain a collaboration public key from the blockchain, where the collaboration public key corresponds to the collaboration attribute generated by the data owner and uploaded to the blockchain; when the collaboration channel is in a completed state and the data owner is in the user list of the collaboration channel, a collaboration private key corresponding to the collaboration public key is generated and the collaboration private key is sent to the data user, so that after the data user downloads the collaboration ciphertext from the cloud server, the data user decrypts the collaboration ciphertext according to the received attribute private key and the collaboration private key to obtain the data; the collaboration ciphertext is obtained by the data owner by encrypting the data according to the acquired collaboration strategy and uploading it to the cloud server; the collaboration channel is in a completed state when the attribute set of the data user in the user list of the collaboration channel satisfies all sub-strategies of the collaboration strategy, wherein the data user joins the collaboration channel when the attribute set of the data user satisfies at least one sub-strategy of the collaboration strategy, and the collaboration channel is formed by creating a smart contract in the blockchain, and the smart contract is bound to the collaboration ciphertext.

Citation Information

Patent Citations

  • Multi-party cooperation data sharing method supporting access strategy updating

    CN114979149A

  • Ciphertext data sharing method and system based on collaborative searchable

    CN115694974A