A data access control method and attribute authority server

By using hash mapping and blind processing methods in a multi-attribute authoritative system, the problem of low efficiency and insufficient security in data access control in the prior art is solved, and efficient and secure data access is achieved control.

CN115906106BActive Publication Date: 2024-12-24DOUYIN VISION CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202110990867.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-08-26
Publication Date
2024-12-24
Estimated Expiration
2041-08-26

AI Technical Summary

Technical Problem

The existing multi-attribute authoritative solutions are inefficient when pursuing data security, or ignore data security when pursuing efficiency, and cannot meet business security needs.

Method used

In the multi-attribute authoritative system, the first attribute authoritative server receives the client's secret key issuance request, determines the first and second elements that have been hashed mapping and blinding, and sends the other attribute authoritative servers carrying these elements Message, receives signature data, generates the target user's private key, and finally sends the private key to the client to realize the decryption of the encrypted data.

Benefits of technology

It realizes efficient and secure data access control in a multi-attribute authoritative system, avoids the risk of private key leakage between multi-attribute authoritative servers and the risk of trusted third parties obtaining user private keys, and meets efficient and secure business needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115906106B_ABST
    Figure CN115906106B_ABST
Patent Text Reader

Abstract

The embodiment of the present invention provides a data access control method and an attribute authority server, which relate to the field of encryption technology. The method includes: receiving a key issuance request sent by a client, the key issuance request includes a unified identifier of a target user; determining a first element and a second element according to the unified identifier, and sending a first parameter message carrying the first element and the second element to other attribute authority servers in a multi-attribute authority system; receiving second parameter messages carrying a third element respectively sent by other attribute authority servers in the multi-attribute authority system, generating a first private key issued to the target user according to the third element carried in each second parameter message; and sending the first private key to the client. The embodiment of the present invention provides a method for providing an efficient and secure multi-attribute authority solution.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of encryption technology, and in particular to a data access control method and an attribute authority server. Background Art

[0002] A more common multi-attribute authority solution now is that in the encrypted access policy, the attributes managed by each attribute authority (AA) can be combined at will, which is more scalable and can adapt to more scenarios. The most important link in the actual implementation of this solution is the data encryption and decryption link. However, some of the existing encryption and decryption solutions often bring additional overhead when focusing on data security, resulting in very poor efficiency of the solution implementation. Another solution ignores data security while focusing on efficiency, and cannot meet business security requirements.

[0003] Therefore, there is an urgent need to provide an efficient and secure solution for the implementation of multi-attribute authority solutions. Summary of the invention

[0004] In view of this, an embodiment of the present invention provides a data access control method and an attribute authority server, which are used to provide an efficient and secure multi-attribute authority solution.

[0005] In order to achieve the above purpose, the embodiment of the present invention provides the following technical solutions:

[0006] In a first aspect, an embodiment of the present invention provides a data access control method, which is applied to a first attribute authoritative server in a multi-attribute authoritative system, and the method includes:

[0007] Receiving a key issuance request sent by a client, wherein the key issuance request includes a unified identifier of a target user in the multi-attribute authoritative system;

[0008] Determine a first element and a second element according to the unified identifier, and send a first parameter message carrying the first element and the second element to other attribute authority servers in the multi-attribute authority system; wherein the first element and the second element are determined through hash mapping processing and blinding processing;

[0009] receiving second parameter messages carrying a third element respectively sent by other attribute authoritative servers in the multi-attribute authoritative system, where the third element is signature data obtained by signing the other attribute authoritative servers based on the first element and the second element;

[0010] generating a first private key issued to the target user according to the third element carried in each of the second parameter messages;

[0011] The first private key is sent to the client; the first private key is used to decrypt encrypted data related to the attributes of the target user, and the encrypted data is generated based on the public key corresponding to the first private key.

[0012] In a second aspect, an embodiment of the present invention provides an attribute authority server, including:

[0013] A receiving unit, configured to receive a key issuance request sent by a client, wherein the key issuance request includes a unified identifier of a target user in the multi-attribute authoritative system;

[0014] A processing unit, configured to determine a first element and a second element according to the unified identifier; wherein the first element and the second element are determined through hash mapping processing and blinding processing;

[0015] A sending unit, configured to send a first parameter message carrying the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system;

[0016] The receiving unit is further configured to receive second parameter messages carrying a third element respectively sent by other attribute authoritative servers in the multi-attribute authoritative system, where the third element is signature data obtained by signing the other attribute authoritative servers based on the first element and the second element;

[0017] A generating unit, generating a first private key issued to the target user according to the third element carried in each of the second parameter messages;

[0018] The sending unit is further used to send the first private key to the client; the first private key is used to decrypt encrypted data related to the attributes of the target user, and the encrypted data is generated based on the public key corresponding to the first private key.

[0019] In a third aspect, an embodiment of the present invention provides an electronic device, comprising: a memory and a processor, wherein the memory is used to store a computer program; and the processor is used to enable the electronic device to implement the data access control method described in any of the above embodiments when calling the computer program.

[0020] In a fourth aspect, an embodiment of the present invention provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a computing device, the computing device implements the data access control method described in any of the above embodiments.

[0021] In a fifth aspect, an embodiment of the present invention provides a computer program product. When the computer program product is run on a computer, the computer implements the data access control method described in any of the above embodiments.

[0022] In the data access control method provided by an embodiment of the present invention, when the first attribute authoritative server receives a key issuance request sent by a client, it first determines the first element and the second element based on the unified identifier of the target user in the multi-attribute authoritative system carried in the key issuance request, and sends a first parameter message carrying the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system, then receives second parameter messages carrying the third element sent by other attribute authoritative servers in the multi-attribute authoritative system respectively, and then generates a first private key issued to the target user based on the third element carried in each of the second parameter messages, and finally sends the first private key to the client. Because in the process of generating the private key sent to the user, the first attribute authority server only needs to send the first element and the second element determined by hash mapping processing and blinding processing to other attribute authority servers in the multi-attribute authority system, and other attribute authority servers in the multi-attribute authority system only need to send the signature data obtained by signing based on the first element and the second element to the first attribute authority server, without the need to negotiate parameters through one attribute authority server in the multi-attribute authority server or a trusted third party, it is possible to achieve the user attributes managed by different attribute authority servers in the encryption strategy combination, avoiding one attribute authority server in the multi-attribute authority server obtaining the user private keys of other attribute authority servers or a trusted third party obtaining the user private keys of all attribute authority servers. Therefore, the embodiment of the present invention provides an efficient and secure multi-attribute authority solution. BRIEF DESCRIPTION OF THE DRAWINGS

[0023] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.

[0024] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.

[0025] Figure 1 A scenario architecture diagram of a data access control method provided by an embodiment of the present invention;

[0026] Figure 2 One of the step flow charts of the data access control method provided by an embodiment of the present invention;

[0027] Figure 3 The second step flow chart of the data access control method provided by the embodiment of the present invention;

[0028] Figure 4 A flowchart of the key generation method provided by an embodiment of the present invention;

[0029] Figure 5 One of the structural diagrams of the attribute authority server provided in the embodiment of the present invention;

[0030] Figure 6 The second structural diagram of the attribute authority server provided in the embodiment of the present invention;

[0031] Figure 7 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of the present invention. DETAILED DESCRIPTION

[0032] In order to more clearly understand the above-mentioned objectives, features and advantages of the present invention, the scheme of the present invention will be further described below. It should be noted that the embodiments of the present invention and the features in the embodiments can be combined with each other without conflict.

[0033] In the following description, many specific details are set forth to facilitate a full understanding of the present invention, but the present invention may also be implemented in other ways different from those described herein; it is obvious that the embodiments in the specification are only part of the embodiments of the present invention, rather than all of the embodiments.

[0034] In the embodiments of the present invention, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of the present invention should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a concrete way. In addition, in the description of the embodiments of the present invention, unless otherwise specified, the meaning of "multiple" refers to two or more.

[0035] The following first describes the terms involved in the embodiments of the present invention:

[0036] Group: Let G be a non-empty set, * be a binary operation on G, if G satisfies:

[0037] 1. Closure b∈G, all satisfy a*b∈G);

[0038] 2. Associative Law ( b, c∈G, both satisfy ((a*b)*c=a*(b*c));

[0039] 3. Unit element ( Satisfy a*e=e*a=a);

[0040] 4. Inverse element ( Satisfy a*a -1 =a -1 *a=e) holds true;

[0041] Then G is a group; among them, Indicates any Indicates existence.

[0042] Multiplicative cyclic group: (Cyclic Group): If there are elements g and integers t in the group G such that Satisfying a=g t , then G is a multiplicative cyclic group.

[0043] The multiplicative group of integers modulo n: also known as the reduced remainder class modulo n, means: in congruence theory, the coprime congruence classes modulo n form a multiplicative group. For example: the multiplicative group of integers modulo 6 is: {1, 2, 3, 4, 5}.

[0044] Generator: If there is an element g in the group such that We can find an integer t that satisfies a=g t , then g is a generator of the multiplicative cyclic group.

[0045] The order of a group: The number of elements in a group is the order of the group.

[0046] First group: a multiplicative cyclic group of prime order q; denoted G1 in the following.

[0047] Second group: the multiplicative group of integers modulo q; in the following we will refer to Z q express.

[0048] Group 3: Another multiplicative cyclic group of prime order q; denoted G2 in the following.

[0049] Fourth group: another multiplicative cyclic group of prime order q, and satisfying that any element in the first group and any element in the third group can be mapped to an element in the fourth group through a bilinear function; hereinafter referred to as G T express.

[0050] First generator: The generator of the first group; it will be denoted by g1 in the following text.

[0051] Second generator: The generator of the third group; it will be denoted by g2 below.

[0052] Bilinear function: a function used to map any element in the first group and any element in the third group to an element in the fourth group, which will be denoted by e(…) hereinafter.

[0053] Bilinear functions satisfy the following properties:

[0054] 1. Bilinear: e(v a ,u b )=e(v,u) ab

[0055] 2. Non-degenerate: e(v,u)≠1

[0056] 3. Computability: There exists a polynomial algorithm to compute e(v,u).

[0057] Hash mapping function: a function used to map any value to an element in the first group, hereinafter represented by H(…).

[0058] First random number: An element randomly selected by the first attribute authoritative server from the second group, which will be referred to as a in the following text. k express.

[0059] Second random number: Another element randomly selected by the first attribute authoritative server from the second group, which will be referred to as b in the following text. k express.

[0060] Third random number: Another element randomly selected by the first attribute authoritative server from the second group, which will be referred to as c in the following text. k express.

[0061] Fourth random number: another element randomly selected by the first attribute authoritative server from the second group, which will be referred to as d in the following text. k express.

[0062] Fifth random number: a random number selected for the target attribute when the target attribute of the target user is revoked.

[0063] First attribute set: a set of all attributes managed by the first attribute authority server; k express.

[0064] Second attribute set: the attributes of the target user that are managed by the first attribute authority server; ku express.

[0065] The random number corresponding to each attribute in the first attribute set: an element selected from the second group for each attribute in the first attribute set; v x express.

[0066] The random number corresponding to each attribute in the second attribute set: an element selected from the second group for each attribute in the second attribute set; v x express.

[0067] The elements corresponding to each attribute in the first attribute set: the values ​​in the second group are the elements with the second generator as the base and the random numbers corresponding to each attribute as the exponent; pk x express,

[0068] The elements corresponding to each attribute in the second attribute set: the elements whose median value in the first group is the fourth element as the base and the product of the fourth random number and the random number corresponding to each attribute as the exponent, which will be K x express,

[0069] Fourth element: an element determined from the first group using the target user's unified identifier in the multi-attribute authoritative system as the input of the hash mapping function. Assume that the fourth element is E4 and the unified identifier is uid, then E4=H(uid).

[0070] First element: The value in the first group is the element with the fourth generator as the base and the first random number as the exponent. Let: the first element is E1, then

[0071] The 23rd element: The median value of the first group is the element with the first element as the base and the third random number as the exponent. Let: The 23rd element is E 23 ,but

[0072] Second element: The value in the first group is the element with the first generator as the base and the first random number as the exponent. Let: the second element is E2, then

[0073] The 24th element: The median value of the first group is the element with the second element as the base and the second random number as the exponent. Let: The 24th element is E 24 ,but

[0074] The 25th element: The element in the first group whose value is the product of the 23rd element and the 24th element. Let: The 25th element is E 25 ,but

[0075] The eighth element: The value of the first group is the element with the twenty-fifth element as the base and the reciprocal of the first random number as the exponent. Let: the eighth element is E8, then

[0076] The third element is an element determined by other attribute authorities in the multi-attribute authority system based on the first element, the second element, and the second random number and the third random number randomly selected by other attribute authorities in the multi-attribute authority system in the second group. Assume that the second random number randomly selected by the second attribute authority in the multi-attribute authority system in the second group is b j , the third random number randomly selected by the second attribute authority from the second group is c j , the third element sent by the second attribute authority is E3, then

[0077] Ninth element: The value in the first group is the element with the third element carried in the second parameter message sent by the attribute authority server as the base and the reciprocal of the first random number as the exponent. Assume: The third element carried in the second parameter message sent by the attribute authority server is The ninth element corresponding to the attribute authoritative server is E 9,j ,but:

[0078] The tenth element: the element whose value in the first group is the product of the eighth element and the ninth element corresponding to each of the other attribute authoritative servers. Let: the tenth element be E 10 ,but

[0079] Eleventh element: an element determined from the fourth group using the first generator and the second generator as inputs to the bilinear function. Let: the eleventh element be E 11 , then E 11 =e(g1,g2).

[0080] The twelfth element: The value in the fourth group is the element with the eleventh element as the base and the second random number as the exponent. Let: The twelfth element is E 12 ,but

[0081] Thirteenth element: The value in the third group is the element with the second generator as the base and the third random number as the exponent. Let: The thirteenth element is E 13 ,but

[0082] The fourteenth element: The value in the third group is the element with the second generator as the base and the reciprocal of the fourth random number as the exponent. Let: The fourteenth element is E 14 ,but

[0083] Fifth element: The value in the first group is the element with the fourth element as the base and the first random number randomly selected by other attribute authorities in the multi-attribute authority system in the second group as the exponent. Let: the first random number selected by the second attribute authority in the multi-attribute authority system is a j , the fifth element is E5, then

[0084] The fifteenth element: The value in the first group is the element with the fifth element as the base and the third random number as the exponent. Let: The fifteenth element is

[0085] The sixth element: The value in the first group is the element with the first generator as the base and the first random number randomly selected by other attribute authorities in the multi-attribute authority system in the second group as the exponent. Let: Let: The first random number selected by the second attribute authority in the multi-attribute authority system is a j , the sixth element is E6, then

[0086] The sixteenth element: The value in the first group is the element with the sixth element as the base and the second random number as the exponent. Let: The sixteenth element is E 16 ,but

[0087] The seventh element: the element in the first group whose value is the product of the fifteenth element and the sixteenth element. Let the seventh element be E7, then

[0088] Seventeenth element: The element determined from the fourth group by using the second generator and the third element carried in the second parameter message sent by the second attribute authoritative server as inputs to the bilinear function. Assume: The third element carried in the second parameter message sent by the second attribute authoritative server is The seventeenth element is E 17 ,but

[0089] Eighteenth element: The value in the third group is the element with the second generator as the base and the third random number selected by the second attribute authoritative server as the exponent. Let: the third random number selected by the second attribute authoritative server is c j , the eighteenth element is E 18 ,but

[0090] Nineteenth element: Take the eighteenth element and the first element as inputs of the bilinear function and determine the nineteenth element from the fourth group. Let: the eighteenth element be E 19 ,but

[0091] The 22nd element: The value in the fourth group is the element with the 11th element as the base and the second random number selected by the second attribute authoritative server from the second group as the exponent. Let: The 22nd element is E 22 ,but

[0092] The 20th element: The median of the fourth group is the element with the 22nd element as the base and the first random number as the exponent. Let: The 20th element is E 20 ,but

[0093] The 21st element: the element whose value in the fourth group is the product of the 19th element and the 20th element. Let: the 20th element be E 21 ,but

[0094] Public key of the first attribute authoritative server: the twelfth element, the thirteenth element, the fourteenth element, and elements corresponding to each attribute in the first attribute set;

[0095] First private key: the tenth element, the fourth element, and the elements corresponding to each attribute in the second attribute set;

[0096] The following describes the scenario architecture of the multi-attribute authority system provided by the embodiment of the present invention. Figure 1 As shown, the scenario architecture of the multi-attribute authoritative system provided by the embodiment of the present invention includes: a data storage server 11, a plurality of attribute authoritative servers 12 ( Figure 1 2 attribute authoritative servers are shown as an example) and at least one client 13 ( Figure 1 ) is shown as an example in which only one client is included.

[0097] Among them, a network link is established between the client 13 and the data storage server 11 and multiple attribute authoritative servers 12, and a key issuance request can be sent to the attribute authoritative server 12 and a data request can be sent to the data storage server 11 through the network connection. Each of the multiple attribute authoritative servers 12 can independently generate and publish a public key through the data access control method provided by the embodiment of the present invention, and generate and send a private key to the client 13. The data storage server 11 can encrypt the plain text according to the public keys and encryption policies published by the multiple attribute authoritative servers 12 to generate a ciphertext, and send the corresponding ciphertext to the client 13 in response to the request information of the client 13. The client 13 can obtain the user key according to the private keys sent by the multiple attribute authoritative servers 12, and after obtaining the ciphertext from the data storage server 11, decrypt the ciphertext by the user key to obtain the plaintext.

[0098] Based on the above content, the embodiment of the present invention provides a data access control method for a first attribute authoritative server in a multi-attribute authoritative system. Figure 2 As shown, the data access control method provided by the embodiment of the present invention includes the following steps:

[0099] S21. Receive a key issuance request sent by the client.

[0100] The key issuance request includes a unified identifier of the target user in the multi-attribute authoritative system.

[0101] In the embodiment of the present invention, the type of the target user's unified identifier in the multi-attribute authoritative system is not limited, and the target user's unified identifier in the multi-attribute authoritative system is subject to being able to uniquely identify the target user. Exemplarily, the target user's unified identifier in the multi-attribute authoritative system can be a mobile phone number submitted by the user when registering the multi-attribute authoritative system, a unique identity document (ID) assigned to the target user by the multi-attribute authoritative system, etc.

[0102] S22. Determine a first element and a second element according to the unified identifier.

[0103] The first element and the second element are determined through hash mapping and blinding processing.

[0104] As an optional implementation of the embodiment of the present invention, the implementation method of determining the first element and the second element according to the unified identifier may include the following steps a to c:

[0105] Step a: Perform hash mapping on the unified identifier to determine the fourth element from the first group.

[0106] The first group is a multiplication cyclic group.

[0107] Optionally, an implementation of performing hash mapping on the unified identifier to determine the fourth element from the first group includes:

[0108] The unified identifier is used as an input to a hash mapping function to determine a fourth element from the first group.

[0109] The hash mapping function is a function for hashing an arbitrary value into an element in a first group, and the first group is a preconfigured multiplication cyclic group whose order is a prime number q.

[0110] Assume that the hash mapping function is H(…), the unified identifier is uid, and the fourth element is E4, then:

[0111] E4=H(uid)

[0112] Step b: blinding the fourth element to obtain the first element.

[0113] Optionally, one implementation of blinding the fourth element to obtain the first element includes:

[0114] Selecting a first random number from the second population;

[0115] The element in the first group whose value is the power of the fourth element with the first random number as the exponent is taken as the first element.

[0116] Here, the second group is the multiplicative group of integers modulo q.

[0117] Assume: the first random number is a k , the first element is E1, then:

[0118]

[0119] Step c: blinding the generator of the multiplication cyclic group to obtain the second element.

[0120] Optionally, blinding the generator of the multiplication cyclic group to obtain the second element includes:

[0121] An element in the first group whose value is the first generator as a power raised to the first random number as an exponent is determined as the second element.

[0122] The first generator is a generator of the first group.

[0123] Assume: the second element is E2, the first generator is g1, then:

[0124]

[0125] S23: Send a first parameter message carrying the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system.

[0126] Based on the above, step S13 includes and The first parameter message is sent to other attribute authoritative servers in the multi-attribute authoritative system.

[0127] S24: Receive second parameter messages carrying the third element respectively sent by other attribute authoritative servers in the multi-attribute authoritative system.

[0128] The third element is signature data obtained by the other attribute authoritative server signing based on the first element and the second element.

[0129] It should be noted that the number of second parameter messages received by the first attribute authoritative server is determined by the number of attribute authoritative servers in the multi-attribute authoritative system. Specifically, the number of second parameter messages received by the first attribute authoritative server is the number of attribute authoritative servers in the multi-attribute authoritative system minus one; and the signature parameters used when signing by the attribute authoritative server are different, so the third element carried in the second parameter messages sent by different attribute authoritative servers is also different.

[0130] S25. Generate a first private key issued to the target user according to the third element carried in each of the second parameter messages.

[0131] As an optional implementation manner of the embodiment of the present invention, the above step S15 (generating a first private key issued to the target user according to the third element carried in each of the second parameter messages) includes:

[0132] Obtaining the product of the third element carried in each of the second parameter messages;

[0133] A first private key issued to the target user is generated according to the product of the third element carried in each of the second parameter messages.

[0134] Further optionally, the implementation method of generating the first private key issued to the target user according to the product of the third element carried in each of the second parameter messages includes the following steps I to IX:

[0135] Step Ⅰ: Determine the 23rd element.

[0136] The twenty-third element is an element in the first group whose value is the first element as the base and the third random number as the exponent, and the third random number is a random number selected from the second group.

[0137] Let: the twenty-third element be E 23 , the third random number is c k , since the first element So we have:

[0138]

[0139] Step II: Determine the twenty-fourth element.

[0140] The twenty-fourth element is the element in the first group whose value is the second element as the base and the second random number as the exponent.

[0141] Let: the twenty-fourth element be E 24 , since the second element So we have:

[0142]

[0143] Step III: Determine the twenty-fifth element based on the twenty-third element and the twenty-fourth element.

[0144] The twenty-fifth element is the element in the first group whose value is the product of the twenty-third element and the twenty-fourth element.

[0145] Let: the twenty-fifth element be E 25 ,because So we have:

[0146]

[0147] Step IV: Determine the eighth element based on the twenty-fifth element and the first random number.

[0148] Among them, the eighth element is the element in the first group whose value is the curtain with the twenty-fifth element as the base and the reciprocal of the first random number as the exponent.

[0149] Assume: The eighth element is E8. Since the twenty-fifth element is The first random number is a k , so we have:

[0150]

[0151] Step V: Determine the ninth element corresponding to each of the other attribute authoritative servers according to the third element carried in the second parameter message sent by each of the other attribute authoritative servers.

[0152] Among them, the ninth element corresponding to any other attribute authoritative server is the element in the first group whose value is the third element carried in the second parameter message sent by the attribute authoritative server as the base and the reciprocal of the first random number as the exponent.

[0153] Assume that the ninth element corresponding to some other attribute authoritative server is E 9,j The third element of the second parameter message sent by the attribute authority server is Since the first random number is a k , so we have:

[0154]

[0155] Step VI: Determine the tenth element based on the eighth element and the ninth elements corresponding to the other attribute authoritative servers.

[0156] The tenth element is an element in the first group whose value is the product of the eighth element and the ninth element corresponding to each of the other attribute authoritative servers.

[0157] Let: the tenth element be E 10 , since the eighth element is The ninth element corresponding to the other attribute authoritative server is So we have:

[0158]

[0159] in, represents the product of i=1 to i=n, ​​and n represents the total number of attribute authoritative servers in the multi-attribute authoritative system.

[0160] Furthermore, E 10 The expression is simplified as follows:

[0161]

[0162] set up:

[0163] Then we have:

[0164] E 10 =H(uid) c *g1 b

[0165] Step VII: Determine the element corresponding to each attribute in the second attribute set according to the fourth element, the fourth random number and the random number corresponding to each attribute in the second attribute set.

[0166] Among them, the fourth random number and the random numbers corresponding to each attribute in the second attribute set are all random numbers selected from the second group, the second attribute set is a set of attributes among the attributes of the target user that are authoritatively managed by the first attribute, and the elements corresponding to each attribute in the second attribute set are elements in the first group whose values ​​are based on the fourth element and the product of the fourth random number and the random numbers corresponding to each attribute as the exponent.

[0167] Assume: The random number corresponding to the attribute x in the second attribute set is v x , then:

[0168]

[0169] in, represents any element in the second attribute set, S ku is the second attribute set, E4 is the fourth element, d k For the first attribute authority from the first group Z q The fourth random number selected from x For the first attribute authority from the first group Z q The random number corresponding to the attribute x selected in .

[0170] Step VIII: Use the tenth element, the fourth element, and the elements corresponding to each attribute in the second attribute set as the private key of the target user.

[0171] As mentioned above, the tenth element E 10 =H(uid) c *g1 b , the fourth element E4 = H (uid), the elements corresponding to each attribute in the second attribute set are Therefore, the target user's private key includes:

[0172]

[0173] Order: E 10 =K, E4=L, then the target user's private key includes:

[0174] K=H(uid) c *g1 b ;

[0175] L = H(uid);

[0176]

[0177] S26. Send the first private key to the client.

[0178] The first private key is used to decrypt encrypted data related to the attributes of the target user, and the encrypted data is generated based on the public key corresponding to the first private key.

[0179] In the data access control method provided by an embodiment of the present invention, when the first attribute authoritative server receives a key issuance request sent by a client, it first determines the first element and the second element based on the unified identifier of the target user in the multi-attribute authoritative system carried in the key issuance request, and sends a first parameter message carrying the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system, then receives second parameter messages carrying the third element sent by other attribute authoritative servers in the multi-attribute authoritative system respectively, and then generates a first private key issued to the target user based on the third element carried in each of the second parameter messages, and finally sends the first private key to the client. Because in the process of generating the private key sent to the user, the first attribute authority server only needs to send the first element and the second element determined by hash mapping processing and blinding processing to other attribute authority servers in the multi-attribute authority system, and other attribute authority servers in the multi-attribute authority system only need to send the signature data obtained by signing based on the first element and the second element to the first attribute authority server, without the need to negotiate parameters through one attribute authority server in the multi-attribute authority server or a trusted third party, it is possible to achieve the user attributes managed by different attribute authority servers in the encryption strategy combination, avoiding one attribute authority server in the multi-attribute authority server obtaining the user private keys of other attribute authority servers or a trusted third party obtaining the user private keys of all attribute authority servers. Therefore, the embodiment of the present invention provides an efficient and secure multi-attribute authority solution.

[0180] As an optional implementation of the embodiment of the present invention, based on the above embodiment, the data access control method provided by the embodiment of the present invention further includes:

[0181] Generate and publish the public key of the first attribute authoritative server so that other attribute authoritative servers in the multi-attribute authoritative system generate private keys issued to users based on the public key of the first attribute authoritative server, and the file storage server in the multi-attribute authoritative system encrypts plain text based on the public key of the first attribute authoritative server.

[0182] Optionally, the implementation of generating the public key of the first attribute authoritative server includes:

[0183] Generate a public key of the first attribute authoritative server according to the first generator, the second generator, the bilinear function, the second random number, the third random number, the fourth random number, and the random numbers corresponding to each attribute in the first attribute set.

[0184] Among them, the first generator is a generator of a first group, the second generator is a generator of a third group, the bilinear function is a function used to map any element in the first group and any element in the third group to an element in a fourth group, the third group and the fourth group are both preconfigured multiplication cycle groups, and the second random number, the third random number, and the fourth random number are all random numbers selected from the second group.

[0185] Further, according to the first generator, the second generator, the bilinear function, the second random number, the third random number, the fourth random number, and the random number corresponding to each attribute in the first attribute set, the implementation method of generating the public key of the first attribute authoritative server may include the following steps a to f:

[0186] Step a: Use the first generator and the second generator as inputs of the bilinear function to determine an eleventh element from the fourth group.

[0187] Assume: the first generator is g1, the second generator is g2, e(…) is the bilinear function, and the eleventh element is E 11 , then:

[0188] E 11 =e(g1,g2)

[0189] Step b: Determine the twelfth element according to the eleventh element and the second random number.

[0190] The twelfth element is an element in the fourth group whose value is the power of the eleventh element as the base and the second random number as the exponent.

[0191] Assume: The second random number is b k , the twelfth element is E 12 , by the eleventh element E 11 =e(g1,g2), so:

[0192]

[0193] Step c: determine the thirteenth element according to the second generator and the third random number.

[0194] The thirteenth element is an element in the third group whose value is a power with the second generator as the base and the third random number as the exponent.

[0195] Assume: The third random number is c k , the thirteenth element is E 13 , the second generator is g2, then:

[0196]

[0197] Step d: Determine the fourteenth element based on the second generator and the fourth random number.

[0198] Among them, the fourteenth element is the element in the third group whose value is the power of the reciprocal of the fourth random number with the second generator as the base and the exponent as the exponent.

[0199] Assume: The fourth random number is d k , the fourteenth element is E 14 , the second generator is g2, then:

[0200]

[0201] Step e: Determine an element corresponding to each attribute in the first attribute set according to the second generator and the random number corresponding to each attribute in the first attribute set.

[0202] The first attribute set includes all attributes managed by the first attribute authority, and the element corresponding to each attribute in the first attribute set is an element in the third group whose value is a power with the second generator as the base and the random number corresponding to each attribute as the exponent.

[0203] Right now, in, is any attribute in the first attribute set, S k is the first attribute set, pk x is the element corresponding to attribute x in the first attribute set, g2 is the second generator, and v x is the random number corresponding to the attribute x in the first attribute set.

[0204] Step f: Determine the twelfth element, the thirteenth element, the fourteenth element, and the elements corresponding to each attribute in the first attribute set as the public key of the first attribute authoritative server.

[0205] As mentioned above, the twelfth element is The thirteenth element is The fourteenth element is The elements corresponding to each attribute in the first attribute set are Therefore, the public key determined and published by the first attribute authoritative server is:

[0206] In the above embodiment, the first attribute authoritative server needs to send the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system, and receive the third element sent by other attribute authoritative servers in the multi-attribute authoritative system, and the steps performed by each attribute authoritative server in the embodiment are the same, so the data access control method provided in the embodiment of the present invention also includes:

[0207] receiving a third parameter message carrying a fifth element and a sixth element sent by a second attribute authoritative server in the multi-attribute authoritative system;

[0208] Sign the fifth element and the sixth element to obtain the seventh element;

[0209] The seventh element is sent to the second attribute authoritative server.

[0210] The implementation method in which the second attribute authoritative server generates the fifth element is similar to the implementation method in which the first attribute authoritative server generates the fifth element in the above embodiment. The implementation method in which the second attribute authoritative server generates the sixth element is similar to the implementation method in which the first attribute authoritative server generates the second element in the above embodiment, and will not be repeated again.

[0211] Optionally, the first attribute authoritative server signs the fifth element and the sixth element to obtain the seventh element, which includes the following steps ① to ⑤:

[0212] Step ①, determine the fifteenth element according to the fifth element and the third random number.

[0213] The fifteenth element is an element in the first group whose value is a power with the fifth element as the base and the third random number as the exponent.

[0214] Let: The fifth element The third random number is c k , the fifteenth element is E 15 , then:

[0215]

[0216] Step ②, determine the sixteenth element according to the sixth element and the second random number.

[0217] The sixteenth element is an element in the first group whose value is the sixth element as a power with the second random number as an exponent.

[0218] Let: The fifth element The second random number is b k , the sixteenth element is E 16 , then:

[0219]

[0220] Step ③, determine the seventh element according to the fifteenth element and the sixteenth element.

[0221] The seventh element is the element in the first group whose value is the product of the fifteenth element and the sixteenth element.

[0222] Assume that the seventh element is E7, since So we have:

[0223]

[0224] At this point, the attribute authoritative servers other than the first attribute authoritative server in the multi-attribute authoritative system can also generate corresponding public keys and private keys through the data access control method provided by the implementation of the present invention.

[0225] In addition, because the file storage server can obtain the public keys published by each attribute authoritative server, the file storage server can encrypt the files that need to be encrypted according to the public keys published by each attribute authoritative server.

[0226] Exemplarily, the file storage server encrypts the file to obtain the ciphertext CT as follows:

[0227]

[0228] Among them, CT is the ciphertext obtained after encrypting the plaintext. τ is the set access policy. For example, if you want women over 18 years old to be able to decrypt the ciphertext to obtain the plaintext, you can make the access policy τ include two attributes, one attribute is age: over 18 years old, and the other attribute is gender: female. M is the element in the fourth group corresponding to the plaintext to be encrypted. Y i The twelfth element generated for attribute authority server i, s is the random number selected by the file storage server from the second group. c is the sum of the third random numbers selected by each attribute authority server in the multi-attribute authority system, r x A random number selected by the file storage server from the second group for attribute x. i The attribute authority server for managing attribute x selects a fourth random number from the second group. x (0) is the secret shared value of attribute x.

[0229] Because the client can obtain the private key sent by each attribute authority server, when the attributes of the user corresponding to the client match the attributes in the access policy, the client can decrypt the file that needs to be decrypted according to the private key sent by each attribute authority server to obtain the plain text.

[0230] For example, the plain text obtained by the client after decrypting the ciphertext may be as follows:

[0231]

[0232] Among them, C′, C x , D x is the value in the ciphertext, M is the plaintext obtained by decrypting the ciphertext, S cu is the attribute included in the access policy, L = H(uid), K = H(uid) c *g2 b , ω i is the Lagrange coefficient.

[0233] As an optional implementation manner of the embodiment of the present invention, before the above step S15 (before generating the first private key issued to the target user according to the third element carried in each of the second parameter messages), the method provided by the embodiment of the present invention further includes:

[0234] Verifying the correctness of the second parameter messages respectively sent by the other attribute authoritative servers;

[0235] If the second parameter messages respectively sent by the other attribute authoritative servers are all correct, generating a first private key issued to the target user according to the third element carried in each of the second parameter messages;

[0236] If the second parameter message sent by at least one of the other attribute authoritative servers is wrong, a prompt message for prompting that the second parameter message is wrong is output.

[0237] That is, after receiving the second parameter message sent by the other attribute authoritative servers, first verify the correctness of the second parameter messages sent by the other attribute authoritative servers respectively. Only when the second parameter messages sent by the other attribute authoritative servers respectively are correct, execute the above step S15, otherwise output a prompt message for indicating that the second parameter message is wrong.

[0238] Optionally, the implementation of verifying the correctness of the second parameter messages respectively sent by other attribute authoritative servers includes:

[0239] Determine whether the third element carried in the second parameter messages respectively sent by the other attribute authoritative servers satisfies the bilinearity of the bilinear function;

[0240] If yes, it is determined that the second parameter message is correct;

[0241] If not, it is determined that the second parameter message is wrong.

[0242] Specifically, bilinear functions have the following properties:

[0243] 1. Bilinear: e(v a ,u b )=e(v,u) ab

[0244] 2. Non-degenerate: e(v,u)≠1

[0245] 3. Computability: There exists a polynomial algorithm to compute e(v,u).

[0246] Determine whether the third element carried in the second parameter message respectively sent by the other attribute authoritative servers satisfies the bilinearity of the bilinear function, that is, substitute the third element carried in the second parameter message respectively sent by the other attribute authoritative servers into the bilinear function: e(v a ,u b )=e(v,u) ab , determine whether the equation holds.

[0247] Further optionally, determining whether the third element carried in the second parameter message sent by the second attribute authoritative server satisfies the bilinearity of the bilinear function includes:

[0248] Optional, see Figure 3 As shown, in Figure 2 Based on the illustrated embodiment, judging whether the third element carried in the second parameter message sent by the second attribute authoritative server satisfies the bilinearity of the bilinear function includes:

[0249] S301. Use the second generator and the third element carried in the second parameter message sent by the second attribute authoritative server as inputs of the bilinear function, and determine the seventeenth element from the fourth group.

[0250] Assume that the second generator is g2, and the third element carried in the second parameter message sent by the second attribute authority server is The seventeenth element is E 17 , then:

[0251]

[0252] S302: Use the eighteenth element and the first element as inputs of the bilinear function, and determine the nineteenth element from the fourth group.

[0253] The eighteenth element is an element determined in the third group according to the second generator and the third random number selected by the second attribute authoritative server.

[0254] Specifically, the eighteenth element is an element in the third group whose value is the second generator as the base and the third random number selected by the second attribute authoritative server as the exponent. The first attribute authoritative server can obtain the eighteenth element through the public key published by the second attribute authoritative server.

[0255] Let: The eighteenth element be Element 19: E 19 , since the first element is So we have:

[0256]

[0257] S303. Determine a twenty-first element according to the nineteenth element and the twentieth element.

[0258] Among them, the 20th element is the element in the fourth group whose value is the 22nd element as the base and the first random number as the exponent; the 22nd element is the element in the fourth group whose value is the 11th element as the base and the second random number selected by the second attribute authoritative server from the second group as the exponent; the 21st element is the element in the fourth group whose value is the product of the 19th element and the 20th element.

[0259] Assume that the second random number selected by the second attribute authoritative server from the second group is b j , the 22nd element is E 22 、The twentieth element is E 20 、The nineteenth element is E 19 、The 21st element is E 21 , then:

[0260]

[0261]

[0262]

[0263] S304: Determine whether the seventeenth element and the twenty-first element are the same.

[0264] That is, determine the seventeenth element With the twenty-first element Are they the same element?

[0265] In the above step S304, if the seventeenth element and the twenty-first element are the same, the following step S305 is executed; if the seventeenth element and the twenty-first element are different, the following step S306 is executed.

[0266] S305: Determine whether the second parameter message is correct.

[0267] S306: Determine that the second parameter message is incorrect.

[0268] After the above embodiment receives the second parameter message sent by the second attribute authoritative server, the correctness of the second parameter message is first verified, and only when the second parameter message is correct, the subsequent steps of generating the user private key are executed. Therefore, the above embodiment can avoid user key errors caused by second parameter message errors.

[0269] As an optional implementation of the embodiment of the present invention, the data access control method provided by the embodiment of the present invention also includes:

[0270] When the target attribute of the target user is revoked, selecting a fifth random number from the second group;

[0271] Updating the public key of the first attribute authoritative server according to the fifth random number;

[0272] The private keys of users in a user set are updated according to the fifth random number, and the user set includes all users having the target attribute.

[0273] That is, when the target attribute x of the target user is revoked, the first attribute authority server will reselect the corresponding random number v for the target attribute x. x ′, replace the original public key Updated to Send attribute update key The users in the user set will Updated to

[0274] It should be noted that when the public key of the first attribute authority server is updated, the access policy including the ciphertext of the target attribute needs to be updated as well. That is, the first attribute authority server sends the ciphertext update key CUK=c k (v x ′-v x ), update the ciphertext of the access policy including the target attribute to obtain the new ciphertext C x ′=C x ·D x -CUKThe specific encryption method is similar to the encryption method based on the public key of the first attribute authoritative server before the update in the above text, and will not be repeated here.

[0275] Based on the above content, the embodiment of the present invention also provides a method for generating a secret key for a first attribute authoritative server in a multi-attribute authoritative system. Figure 4 As shown, the key generation method provided by the embodiment of the present invention includes the following steps:

[0276] S41. Receive configuration information.

[0277] The configuration information includes: a first group, a second group, a third group and a fourth group, wherein the first group, the third group and the fourth group are all multiplication cyclic groups with an order of a prime number q, and any element in the first group and any element in the third group can be mapped to an element in the fourth group through a bilinear function, and the second group is a multiplication group of integers modulo q.

[0278] Specifically, the configuration information can be sent by any device in the multi-attribute authoritative system to all attribute authoritative servers in the multi-attribute authoritative system. Exemplarily, the configuration information can be sent by a data storage device to an attribute authoritative server in the multi-attribute authoritative system, or one of the attribute authoritative servers can send the configuration information to other attribute authoritative servers. The embodiment of the present invention does not limit this, and each attribute authoritative server in the multi-attribute authoritative system can receive the same configuration information.

[0279] S42: Select a first random number, a second random number, a third random number, a fourth random number, and a random number corresponding to each attribute in the first attribute set from the second group.

[0280] The first attribute set includes all attributes managed by the first attribute authoritative server.

[0281] Since each attribute authority server in the multi-attribute authority system performs exactly the same actions, the above step S42 is: each attribute authority server in the multi-attribute authority system selects the first random number, the second random number, the third random number, the fourth random number and the random numbers corresponding to each attribute in the first attribute set from the second group.

[0282] For example: Multi-attribute authority systems include AA k and AA j If there are two attribute authoritative servers, then AA k The selected random numbers include: the first random number a k , the second random number b k 、The third random number c k , the fourth random number d k, and AA k The random number corresponding to each attribute in the managed attributes: v x AA j The selected random numbers include: the first random number a j , the second random number b j 、The third random number c j , the fourth random number d j , and AA j The random number corresponding to each attribute in the managed attributes: v x .

[0283] S43. Generate and publish the public key of the first attribute authoritative server according to the second generator, the first generator, the bilinear function, the second random number, the third random number, the fourth random number, and the random numbers corresponding to the attributes in the first attribute set.

[0284] The second generator is a generator of the second group, and the first generator is a generator of the first group.

[0285] In the embodiment of the present invention, disclosing the public key of the first attribute authoritative server means that other devices in the multi-attribute authoritative system (data storage devices, other attribute authoritative servers except the first attribute authoritative server, etc.) can obtain the public key of the first attribute authoritative server.

[0286] Similarly, since each attribute authoritative server in the multi-attribute authoritative system performs exactly the same actions, the first attribute authoritative server can also obtain the public keys of other attribute authoritative servers in the multi-attribute authoritative system based on the above step S23.

[0287] S44: Determine a first element and a second element, and send the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system.

[0288] Among them, the first element is an element in the first group determined according to a hash mapping function, a unified identifier of the target user in the multi-attribute authoritative system, and the first random number, and the second element is an element in the first group determined according to the first generator and the first random number; the hash mapping function is a function used to map an arbitrary value to an element in the first group.

[0289] It should be noted that the multi-attribute authoritative system in the embodiment of the present invention may include any number of attribute authoritative servers. When the multi-attribute authoritative system includes only two attribute authoritative servers, the first attribute authoritative server only needs to send the first element and the second element to another attribute authoritative server in the multi-attribute authoritative system. When the multi-attribute authoritative system includes more than two attribute authoritative servers, the first attribute authoritative server needs to send the first element and the second element to each attribute authoritative server in the multi-attribute authoritative system except the first attribute authoritative server.

[0290] As an optional implementation of the embodiment of the present invention, the implementation method of determining the first element in the above step S24 may include the following steps 1 and 2:

[0291] Step 1: Use the unified identifier as input of the hash mapping function to determine the fourth element from the first group.

[0292] That is, the fourth element E4=H(uid); wherein H(...) is a hash mapping function for mapping any value to an element in the first group, and uid is a unified identifier.

[0293] Step 2: Determine the first element according to the fourth element and the first random number.

[0294] The first element is an element in the first group whose value is the power of the fourth element as the base and the first random number as the exponent.

[0295] That is, the first element Among them, E4 is the fourth element, a k For the first attribute authoritative server from the second group Z q The first random number selected from .

[0296] As an optional implementation of the embodiment of the present invention, the implementation of determining the second element in the above step S24 may include:

[0297] The second element is determined based on the first generator and the first random number.

[0298] The second element is an element in the first group whose value is the first generator as the power of the first random number as the exponent.

[0299] That is, the second element

[0300] In summary, since the first element Second Element So the first attribute authoritative server will be and Sent to all attribute authoritative servers in the multi-attribute authoritative system except itself.

[0301] S45. Receive the third elements respectively sent by the other attribute authoritative servers.

[0302] The third element is an element in the first group determined by the second attribute authoritative server based on the first element, the second element, and a second random number and a third random number randomly selected by the second attribute authoritative server in the second group.

[0303] Optionally, the third element may be an element in the first group whose value is the product of the first power and the second power; the base of the first power is the first element, the exponent of the first power is a third random number randomly selected by the second attribute authoritative server in the second group, the base of the second power is the second element, and the exponent of the second power is a second random number randomly selected by the second attribute authoritative server in the second group.

[0304] Assume that the second random number randomly selected by the second attribute authoritative server in the multi-attribute authoritative system from the second group is a j The third random number randomly selected by the second attribute authoritative server in the second group is b j , then the third element

[0305] S46. Generate a first private key according to the third element sent by the other attribute authoritative servers, the fourth random number, the first random number, the hash mapping function, the unified identifier, and the random numbers corresponding to the attributes in the second attribute set.

[0306] The second attribute set includes the attributes of the target user that are managed by the first attribute authoritative server.

[0307] For example, the first attribute set and the second attribute set in the embodiment of the present invention are described below by taking the first attribute authority server as a school management system as an example. The attributes managed by the school management system include: student number: 001, student number: 002, ..., student number: 850, grade: first grade, grade: second grade, grade: third grade, grade: fourth grade, grade: fifth grade, grade: sixth grade, class: first class, class: second class, class: third class; then the first attribute set S kThe target user's attributes include: student number: 001, student number: 002, ..., student number: 850, grade: first grade, grade: second grade, grade: third grade, grade: fourth grade, grade: fifth grade, grade: sixth grade, class: first class, class: second class, class: third class}. The target user's attributes include: student number: 065, grade: third grade, class: second class, gender: male, name: Zhang San; since the target user's attributes belong to the first attribute set S k The attributes include: student number: 065, grade: third grade, class: second class, so the first attribute set S ku It is {student number: 065, grade: Grade 3, class: Class 2}.

[0308] As an optional implementation of the embodiment of the present invention, the implementation method of the above step S26 (generating a first private key according to the third element carried in each of the second parameter messages, the fourth random number, the first random number, the hash mapping function, the unified identifier, and the random number corresponding to each attribute in the second attribute set) may include the following steps I to IX:

[0309] Step I: Determine the twenty-third element based on the first element and the third random number.

[0310] The twenty-third element is the element in the first group whose value is the first element as the base and the third random number as the exponent.

[0311] Right now,

[0312] Step II: Determine the twenty-fourth element according to the second element and the second random number.

[0313] The twenty-fourth element is the element in the first group whose value is the second element as the base and the second random number as the exponent.

[0314] That is, the twenty-fourth element

[0315] Step III: Determine the twenty-fifth element based on the twenty-third element and the twenty-fourth element.

[0316] The twenty-fifth element is the element in the first group whose value is the product of the twenty-third element and the twenty-fourth element.

[0317] Right now,

[0318] Step IV: Determine the eighth element based on the twenty-fifth element and the first random number.

[0319] Among them, the eighth element is the element in the first group whose value is the twentieth element as the base and the reciprocal of the first random number as the exponent.

[0320] That is, the eighth element

[0321] Step V: Determine the ninth element corresponding to each of the other attribute authoritative servers according to the third element carried in the second parameter message sent by each of the other attribute authoritative servers.

[0322] Among them, the ninth element corresponding to any other attribute authoritative server is the element in the first group with a value of the third element carried in the second parameter message sent by the attribute authoritative server as the base and the reciprocal of the first random number as the exponent.

[0323] Step VI: Determine the tenth element based on the eighth element and the ninth element.

[0324] The tenth element is an element in the first group whose value is the product of the eighth element and the ninth element corresponding to each of the other attribute authoritative servers.

[0325] Step VII: Determine the element corresponding to each attribute in the second attribute set according to the fourth element, the fourth random number and the random number corresponding to each attribute in the second attribute set.

[0326] The elements corresponding to the attributes in the second attribute set are the elements in the first group whose values ​​are the fourth element as the base and the product of the fourth random number and the random numbers corresponding to the attributes as the exponent.

[0327] Right now, in, represents any element in the second attribute set, S ku is the second attribute set, E4 is the fourth element, d k For the first attribute authoritative server from the second group Z q The fourth random number selected from x For the first attribute authoritative server from the second group Z q The random number corresponding to the attribute x selected in .

[0328] Step VIII: Use the tenth element, the fourth element, and the elements corresponding to each attribute in the second attribute set as the first private key.

[0329] In the data access control method provided by the embodiment of the present invention, the first attribute authoritative server first receives configuration information and selects the second random number, the third random number, the fourth random number, the first random number and the random number corresponding to each attribute in all the attributes managed by itself from the second group in the configuration information, and then generates and publishes the public key of the first attribute authoritative server according to the second generator, the first generator, the bilinear function, the second random number, the third random number, the fourth random number and the random number corresponding to each attribute in the first attribute set, and then determines the first element and the second element, and sends the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system, receives the third element sent by other attribute authoritative servers and generates the first private key according to the third element, the fourth random number, the first random number, the hash mapping function, the unified identifier of the target user, and the random number corresponding to each attribute in the second attribute set, so that the first attribute authoritative server can first generate a secret key including a public key and a private key. Furthermore, because the first attribute authority server only needs to send the first element and the second element blinded by random numbers to other attribute authority servers in the multi-attribute authority system in the process of generating public keys and private keys, and does not need to send key information (random numbers, user attributes, etc.) for generating user secret keys to other attribute authority servers in the multi-attribute authority system, the embodiment of the present invention can avoid parameter negotiation through one of the multiple attribute authority servers or a trusted third party. That is, when the attributes managed by different attribute authority servers in the access policy can be arbitrarily combined in the attribute-based encryption algorithm of the multi-attribute authority server, the embodiment of the present invention can avoid parameter negotiation through one of the multiple attribute authority servers or a trusted third party, thereby solving the problem of difficulty in finding an attribute authority server or a trusted third party recognized by each attribute authority server.

[0330] Based on the same inventive concept, as an implementation of the above method, an embodiment of the present invention further provides an attribute authoritative server. The attribute authoritative server embodiment corresponds to the above method embodiment. For ease of reading, this attribute authoritative server embodiment will no longer repeat the details of the above method embodiment one by one, but it should be clear that the attribute authoritative server in this embodiment can correspond to all the contents of the above method embodiment.

[0331] An embodiment of the present invention provides an attribute authoritative server. Figure 5 This is a schematic diagram of the structure of the attribute authority server, such as Figure 5 As shown, the attribute authority server 500 includes:

[0332] A receiving unit 51 is configured to receive a key issuance request sent by a client, wherein the key issuance request includes a unified identifier of a target user in the multi-attribute authoritative system;

[0333] A processing unit 52, configured to determine a first element and a second element according to the unified identifier; wherein the first element and the second element are determined through hash mapping processing and blinding processing;

[0334] A sending unit 53, configured to send a first parameter message carrying the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system;

[0335] The receiving unit 51 is further configured to receive second parameter messages carrying a third element respectively sent by other attribute authoritative servers in the multi-attribute authoritative system, where the third element is signature data obtained by signing the other attribute authoritative servers based on the first element and the second element;

[0336] A generating unit 54 generates a first private key issued to the target user according to the third element carried in each of the second parameter messages;

[0337] The sending unit 53 is further used to send the first private key to the client; the first private key is used to decrypt encrypted data related to the attributes of the target user, and the encrypted data is generated based on the public key corresponding to the first private key.

[0338] As an optional implementation of an embodiment of the present invention, the processing unit 52 is specifically used to perform hash mapping on the unified identifier to determine the fourth element from the first group, where the first group is a multiplication cyclic group; blind the fourth element to obtain the first element; and blind the generator of the multiplication cyclic group to obtain the second element.

[0339] As an optional implementation of the embodiment of the present invention,

[0340] The receiving unit 51 is further configured to receive a third parameter message carrying a fifth element and a sixth element sent by a second attribute authoritative server in the multi-attribute authoritative system;

[0341] The processing unit 52 is further configured to sign the fifth element and the sixth element to obtain a seventh element;

[0342] The sending unit 53 is further configured to send the seventh element to the second attribute authoritative server.

[0343] As an optional implementation of the embodiment of the present invention,

[0344] The processing unit 52 is further configured to generate a public key of the attribute authority server;

[0345] The sending unit 53 is also used to publish the public key of the attribute authority server so that other attribute authority servers in the multi-attribute authority system can generate private keys issued to users based on the public key of the first attribute authority server, and the file storage server in the multi-attribute authority system can encrypt plain text based on the public key of the first attribute authority server.

[0346] As an optional implementation of the embodiment of the present invention,

[0347] The processing unit 52 is specifically configured to obtain the product of the third element carried in each of the second parameter messages; and generate a first private key issued to the target user according to the product of the third element carried in each of the second parameter messages.

[0348] As an optional implementation of the embodiment of the present invention, refer to Figure 6 As shown, the attribute authority server 500 further includes: a verification unit 55;

[0349] The verification unit 55 is used to verify the correctness of the second parameter messages respectively sent by the other attribute authoritative servers before generating the first private key issued to the target user according to the third element carried in each of the second parameter messages; if the second parameter messages respectively sent by the other attribute authoritative servers are all correct, then generate the first private key issued to the target user according to the third element carried in each of the second parameter messages; if the second parameter message sent by at least one of the other attribute authoritative servers is wrong, then output a prompt message for indicating that the second parameter message is wrong.

[0350] As an optional implementation of an embodiment of the present invention, the verification unit 55 is specifically used to determine whether the third element carried in the second parameter message sent by the other attribute authoritative servers respectively satisfies the bilinearity of the bilinear function; if so, it is determined that the second parameter message is correct; if not, it is determined that the second parameter message is wrong.

[0351] Based on the same inventive concept, an embodiment of the present invention further provides an electronic device. Figure 7 A schematic diagram of the structure of an electronic device provided by an embodiment of the present invention, such as Figure 7 As shown, the electronic device provided in this embodiment includes: a memory 71 and a processor 72, wherein the memory 71 is used to store computer programs; the processor 72 is used to enable the electronic device to implement the data access control method provided in the above embodiment when calling the computer program.

[0352] An embodiment of the present invention further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a computing device, the computing device implements the data access control method provided in the above embodiment.

[0353] An embodiment of the present invention further provides a computer program product. When the computer program product is run on a computer, the computer is enabled to implement the data access control method provided in the above embodiment.

[0354] It will be appreciated by those skilled in the art that embodiments of the present invention may be provided as methods, systems, or computer program products. Therefore, the present invention may take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware. Moreover, the present invention may take the form of a computer program product implemented on one or more computer-usable storage media containing computer-usable program code.

[0355] The processor may be a central processing unit (CPU), other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc.

[0356] The memory may include non-permanent memory in a computer-readable medium, random access memory (RAM) and / or non-volatile memory in the form of read-only memory (ROM) or flash RAM. The memory is an example of a computer-readable medium.

[0357] Computer readable media include permanent and non-permanent, removable and non-removable storage media. Storage media can be implemented by any method or technology to store information, and the information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, magnetic disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.

[0358] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or replace some or all of the technical features therein with equivalents. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A data access control method, characterized in that: The method is applied to a first attribute authoritative server in a multi-attribute authoritative system, and comprises: Receiving a key issuance request sent by a client, wherein the key issuance request includes a unified identifier of a target user in the multi-attribute authoritative system; Determine a first element and a second element according to the unified identifier, and send a first parameter message carrying the first element and the second element to other attribute authority servers in the multi-attribute authority system; wherein the first element and the second element are determined through hash mapping processing and blinding processing; receiving second parameter messages carrying a third element respectively sent by other attribute authoritative servers in the multi-attribute authoritative system, where the third element is signature data obtained by signing the other attribute authoritative servers based on the first element and the second element; generating a first private key issued to the target user according to the third element carried in each of the second parameter messages; The first private key is sent to the client; the first private key is used to decrypt encrypted data related to the attributes of the target user, and the encrypted data is generated based on the public key corresponding to the first private key.

2. The method according to claim 1, characterized in that The determining the first element and the second element according to the unified identifier comprises: Performing hash mapping on the uniform identifier to determine a fourth element from a first group, wherein the first group is a multiplication cyclic group; Blinding the fourth element to obtain the first element; Blind the generator of the multiplication cyclic group to obtain the second element.

3. The method according to claim 1, characterized in that The method further comprises: receiving a third parameter message carrying a fifth element and a sixth element sent by a second attribute authoritative server in the multi-attribute authoritative system; Sign the fifth element and the sixth element to obtain the seventh element; The seventh element is sent to the second attribute authoritative server.

4. The method according to claim 1, characterized in that The method also includes: generating and publishing the public key of the first attribute authoritative server so that other attribute authoritative servers in the multi-attribute authoritative system generate private keys issued to users based on the public key of the first attribute authoritative server, and the file storage server in the multi-attribute authoritative system encrypts plain text based on the public key of the first attribute authoritative server.

5. The method according to claim 1, characterized in that The generating, according to the third element carried in each of the second parameter messages, a first private key issued to the target user includes: Obtaining the product of the third element carried in each of the second parameter messages; A first private key issued to the target user is generated according to the product of the third element carried in each of the second parameter messages.

6. The method according to claim 1, characterized in that Before generating a first private key issued to the target user according to the third element carried in each of the second parameter messages, the method further includes: Verifying the correctness of the second parameter messages respectively sent by the other attribute authoritative servers; If the second parameter messages respectively sent by the other attribute authoritative servers are all correct, generating a first private key issued to the target user according to the third element carried in each of the second parameter messages; If the second parameter message sent by at least one of the other attribute authoritative servers is wrong, a prompt message for prompting that the second parameter message is wrong is output.

7. The method according to claim 6, characterized in that The verifying the correctness of the second parameter messages respectively sent by the other attribute authoritative servers includes: Determine whether the third element carried in the second parameter messages respectively sent by the other attribute authoritative servers satisfies the bilinearity of the bilinear function; If yes, it is determined that the second parameter message is correct; If not, it is determined that the second parameter message is wrong.

8. An attribute authority server, characterized in that: include: A receiving unit, configured to receive a key issuance request sent by a client, wherein the key issuance request includes a unified identifier of a target user in a multi-attribute authority system; A processing unit, configured to determine a first element and a second element according to the unified identifier; wherein the first element and the second element are determined through hash mapping processing and blinding processing; A sending unit, configured to send a first parameter message carrying the first element and the second element to other attribute authoritative servers in the multi-attribute authoritative system; The receiving unit is further configured to receive second parameter messages carrying a third element respectively sent by other attribute authoritative servers in the multi-attribute authoritative system, where the third element is signature data obtained by signing the other attribute authoritative servers based on the first element and the second element; A generating unit, generating a first private key issued to the target user according to the third element carried in each of the second parameter messages; The sending unit is further used to send the first private key to the client; the first private key is used to decrypt encrypted data related to the attributes of the target user, and the encrypted data is generated based on the public key corresponding to the first private key.

9. An electronic device, characterized in that: include: A memory and a processor, wherein the memory is used to store a computer program; and the processor is used to enable the electronic device to implement the data access control method according to any one of claims 1 to 7 when calling the computer program.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, and when the computer program is executed by a computing device, the computing device implements the data access control method according to any one of claims 1 to 7.