Layered blockchain data outsourcing sharing method and system for internet of things devices
Through the layered blockchain data outsourcing sharing method, the privacy protection and single point failure risks in the outsourcing sharing of IoT device data are solved, and safe and efficient data storage and transmission are achieved.
Patent Information
- Application Number
- CN202510545494.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-28
- Publication Date
- 2025-10-10
- Estimated Expiration
- 2045-04-28
AI Technical Summary
Existing technologies have problems with insufficient privacy protection and single point failure risks when outsourcing and sharing data in IoT devices, as well as the high cost of storing large files on blockchain.
A layered blockchain data outsourcing sharing method is adopted. The system master key and master public key are generated by the key generation center. After verification by the user end, encrypted data is generated and the label is calculated. The proxy node verifies the challenge set and generates the converted ciphertext. The data request end finally generates the plaintext to ensure the privacy and integrity of the data during the sharing process.
It enables data outsourcing and sharing while ensuring privacy, improves the security of data storage and transmission, and implements data integrity verification through computational tags.
Smart Images

Figure CN120415708B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of information security technology, and in particular to a layered blockchain data outsourcing sharing method and system for Internet of Things devices. Background Art
[0002] With the rapid development of the Internet of Things (IoT), IoT technology has been widely applied in industries such as industry, agriculture, smart cities, and healthcare. Enterprises leverage the massive amounts of data generated by IoT devices to reduce costs, optimize production, and facilitate accurate business decision-making. However, this massive amount of data often contains sensitive information about the data owner, and IoT devices have limited storage capabilities, necessitating outsourcing the storage of this data for use by relevant organizations.
[0003] Existing systems typically rely on large, centralized companies with extensive storage capabilities as third parties to store and transmit data. This creates a single point of failure risk, preventing users from accessing their data in the event of force majeure. Blockchain technology, with its inherent decentralization, immutability, and traceability, is well-suited for distributed storage, privacy, and security management in the IoT. However, due to the limited block size and high costs associated with blockchains, most blockchain technologies are unsuitable for storing large files.
[0004] Therefore, how to outsource and share data while ensuring privacy is an urgent problem that those skilled in the art need to solve. Summary of the Invention
[0005] In view of this, the embodiments of the present invention provide a layered blockchain data outsourcing sharing method and system for IoT devices to solve the problem in the existing technology of how to outsource and share data while ensuring privacy; that is, the embodiments of the present invention can improve the security of data storage and transmission.
[0006] According to one aspect of the present invention, a hierarchical blockchain data outsourcing sharing method for IoT devices is provided, the hierarchical blockchain data outsourcing sharing method for IoT devices comprising: a key generation center obtains public parameters, and generates a system master key and a master public key based on the public parameters; the key generation center generates a user private key and a user public key based on a user ID, and a user terminal performs verification based on the user private key to obtain a first verification result, wherein the user terminal includes a data request terminal and a data holding terminal; the data holding terminal obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates encrypted data based on the encrypted data. The proxy node generates a challenge set based on a fourth random number and transmits the challenge set to the cloud server, the cloud server performs calculations based on the challenge set, the calculation tag and the encrypted data, generates a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result; the proxy node determines whether the data request end belongs to a shareable authorization list, and when the data request end belongs to the shareable authorization list, the proxy node generates a converted ciphertext based on the encryption key and the public key of the data request end, and the data request end generates a plaintext based on the converted ciphertext and the public key of the shared parameter.
[0007] In one embodiment, the key generation center generates a user private key and a user public key based on a user ID, and the user terminal performs verification based on the user private key to obtain a first verification result, including: the key generation center generates verification information based on the public parameters, and generates the user private key and the user public key based on the user ID and the verification information; the user terminal performs verification based on the user private key to obtain the first verification result.
[0008] In one embodiment, the data holding end obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates a calculation tag based on the encrypted data, including: the data holding end obtains the shared parameters and the held data, generates an encryption key and a public key of the shared parameters based on the shared parameters, and generates encrypted data based on the held data and the encryption key; the proxy node generates a second challenge set based on the encrypted data and the BFV homomorphic encryption algorithm; the data holding end performs homomorphic evaluation based on the second challenge set to generate a homomorphic ciphertext; the proxy node decrypts based on the homomorphic ciphertext to obtain decrypted data, and compares the decrypted data with the structural description of the held data to obtain a comparison result; when the decrypted data conforms to the structure of the held data, the proxy node obtains random parameters and at least one third random number, calculates based on the random parameters to obtain a first verification parameter, calculates based on the third random number to obtain a second verification parameter set, and generates the calculation tag based on the random parameters, the third random number and the encrypted data.
[0009] In one embodiment, the proxy node generates a challenge set based on a fourth random number and transmits the challenge set to a cloud server, the cloud server performs calculations based on the challenge set, the calculation tag and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result, including: the proxy node obtains at least one of the fourth random numbers and generates the challenge set based on the fourth random number; the cloud server performs calculations based on the challenge set and the calculation tag to obtain a first proof parameter set, and performs calculations based on the challenge set and the encrypted data to obtain a second proof parameter set; the cloud server performs verification based on the first proof parameter set and the second proof parameter set to obtain the second verification result.
[0010] In one embodiment, the proxy node determines whether the data requesting end belongs to the sharable authorization list. When the data requesting end belongs to the sharable authorization list, the proxy node generates a conversion ciphertext based on the encryption key and the public key of the data requesting end, and the data requesting end generates a plaintext based on the conversion ciphertext and the public key of the shared parameter, including: the data holding end adds the data requesting end to the sharable authorization list, obtains the encryption key and the public key of the data requesting end, and generates a conversion key based on the encryption key and the public key of the data requesting end; the proxy node determines whether the data requesting end belongs to the sharable authorization list, and when the data requesting end belongs to the sharable authorization list, generates the conversion ciphertext based on the conversion key; the data requesting end obtains the public key of the shared parameter, and generates a plaintext based on the conversion ciphertext and the public key of the shared parameter.
[0011] In one embodiment, the calculation tag is generated based on the random parameter, the third random number and the encrypted data, and the calculation tag is:
[0012] tag i =H4(i||meta)*a+C i *t i (1≤i≤n))
[0013] Among them, H4 is the fourth secure hash function, meta is the data describing the data held by the data holder, a is a random parameter, t i is the third random number, C i is the encrypted data, i is an integer, and n is the number of encrypted data in the encrypted data set.
[0014] In one embodiment, the conversion key is generated based on the encryption key and the public key of the data requesting end, wherein the conversion key is:
[0015]
[0016] Among them, H3 is the third secure hash function, G is The cyclic group of the elliptic curve on , is the finite field of the blockchain system, || is the concatenation operator, g is the generator of G, sk y is the private key of the data holder, sig is the shared parameter, pk x is the public key of the data requesting end.
[0017] In one embodiment, the conversion ciphertext is generated based on the conversion key, and the conversion ciphertext is:
[0018]
[0019] Among them, C i For the encrypted data, Stands for bitwise exclusive OR.
[0020] In one embodiment, the plaintext is generated based on the converted ciphertext and the public key of the shared parameter, and the plaintext is:
[0021]
[0022] Among them, P sig is the public key of the shared parameter, sk x The private key of the data requester.
[0023] According to another aspect of the present invention, a hierarchical blockchain data outsourcing sharing system for IoT devices is provided, the hierarchical blockchain data outsourcing sharing system for IoT devices comprising: a key generation center, a user terminal, a proxy node and a cloud server, wherein the key generation center is used to obtain public parameters and generate a system master key and a master public key based on the public parameters; the key generation center is also used to generate a user private key and a user public key based on a user ID, the user terminal is used to perform verification based on the user private key to obtain a first verification result, wherein the user terminal comprises: a data request terminal and a data holding terminal; the data holding terminal is used to obtain shared parameters and held data, and generate a system master key and a master public key based on the shared parameters and the held data. into encrypted data, and generate a calculation tag based on the encrypted data; the proxy node is used to generate a challenge set based on a fourth random number, and transmit the challenge set to the cloud server, the cloud server is used to perform calculations based on the challenge set, the calculation tag and the encrypted data, generate a proof parameter set, and perform verification based on the proof parameter set to obtain a second verification result; the proxy node is used to determine whether the data request end belongs to a shareable authorization list, when the data request end belongs to the shareable authorization list, the proxy node is further used to generate a conversion ciphertext based on an encryption key and a public key of the data request end, and the data request end is used to generate a plaintext based on the conversion ciphertext and the public key of the shared parameter.
[0024] In summary, in an embodiment of the present invention, a key generation center obtains public parameters and generates a system master key and a master public key based on the public parameters. The key generation center generates a user private key and a user public key based on a user ID. The user terminal performs verification based on the user private key to obtain a first verification result. The user terminal includes a data requesting terminal and a data holding terminal. The data holding terminal obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates a calculation tag based on the encrypted data. The proxy node generates a challenge set based on a fourth random number and transmits the challenge set to a cloud server. The cloud server performs calculations based on the challenge set, the calculation tag, and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result. The proxy node determines whether the data requesting terminal belongs to a sharable authorization list. If the data requesting terminal belongs to the sharable authorization list, the proxy node generates a converted ciphertext based on the encryption key and the public key of the data requesting terminal. The data requesting terminal generates a plaintext based on the converted ciphertext and the public key of the shared parameters, thereby achieving outsourcing sharing of data while ensuring privacy, and at the same time achieving data integrity verification by generating a calculation tag. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] Further details, features and advantages of the present invention are disclosed in the following description of exemplary embodiments in conjunction with the accompanying drawings, in which:
[0026] Figure 1 A schematic diagram of the process of the hierarchical blockchain data outsourcing sharing method for IoT devices disclosed in an embodiment of the present application is shown;
[0027] Figure 2 Shown Figure 1 The schematic diagram of the step flow of step S120 is shown;
[0028] Figure 3 Shown Figure 1 The schematic diagram of the step flow of step S130 is shown;
[0029] Figure 4 Shown Figure 1 The schematic diagram of the step flow of step S140 is shown;
[0030] Figure 5 Shown Figure 1 The schematic diagram of the step flow of step S150 is shown;
[0031] Figure 6 A structural diagram of a hierarchical blockchain data outsourcing sharing system for IoT devices disclosed in an embodiment of the present application is shown. DETAILED DESCRIPTION
[0032] Embodiments of the present invention will be described in more detail below with reference to the accompanying drawings. Although certain embodiments of the present invention are shown in the accompanying drawings, it should be understood that the present invention can be implemented in various forms and should not be construed as limited to the embodiments described herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of the present invention. It should be understood that the drawings and embodiments of the present invention are for illustrative purposes only and are not intended to limit the scope of protection of the present invention.
[0033] It should be understood that the various steps described in the method embodiments of the present invention may be performed in different orders and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present invention is not limited in this respect.
[0034] The term "including" and its variations used in this document are open inclusions, that is, "including but not limited to". The term "based on" means "based at least in part on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one other embodiment"; the term "some embodiments" means "at least some embodiments". The relevant definitions of other terms will be given in the following description. It should be noted that the concepts of "first", "second", etc. mentioned in the present invention are only used to distinguish different devices, modules or units, and are not used to limit the order or interdependence of the functions performed by these devices, modules or units.
[0035] It should be noted that the modifications of "one" and "multiple" mentioned in the present invention are illustrative rather than restrictive. Those skilled in the art should understand that unless otherwise clearly indicated in the context, it should be understood as "one or more".
[0036] The names of the messages or information exchanged between multiple devices in the embodiments of the present invention are only used for illustrative purposes and are not used to limit the scope of these messages or information.
[0037] It should be noted that the execution entity of the layered blockchain data outsourcing and sharing method for IoT devices provided in the embodiments of the present invention can be one or more electronic devices, which is not limited in this invention. Specifically, an electronic device can be a terminal (i.e., a client) or a server. If the execution entity includes multiple electronic devices, and the multiple electronic devices include at least one terminal and at least one server, the layered blockchain data outsourcing and sharing method for IoT devices provided in the embodiments of the present invention can be jointly executed by the terminal and the server. Accordingly, the terminals mentioned herein may include, but are not limited to, smartphones, tablets, laptops, desktop computers, smartwatches, intelligent voice interaction devices, smart home appliances, in-vehicle terminals, aircraft, and the like. The servers mentioned herein may be standalone physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers that provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, CDNs (Content Delivery Networks), and basic cloud computing services such as big data and artificial intelligence platforms.
[0038] Based on the above description, an embodiment of the present invention proposes a layered blockchain data outsourcing sharing method for IoT devices. This layered blockchain data outsourcing sharing method for IoT devices can be executed by the electronic device (terminal or server) mentioned above; alternatively, this layered blockchain data outsourcing sharing method for IoT devices can be jointly executed by the terminal and the server. For ease of explanation, the following description will take the electronic device executing this layered blockchain data outsourcing sharing method for IoT devices as an example.
[0039] See also Figure 1It is a flowchart of the layered blockchain data outsourcing sharing method for Internet of Things devices disclosed in the embodiments of the present application. The layered blockchain data outsourcing sharing method for Internet of Things devices solves the problem of how to outsource and share data while ensuring privacy, thereby improving the security of data storage and transmission. It should be noted that the layered blockchain data outsourcing sharing method for Internet of Things devices of the embodiments of the present application is not limited to Figure 1 the steps and order in the flowchart shown. According to different needs, the steps in the flowchart shown can be added, removed, or the order changed. In the embodiments of the present application, as shown in Figure 1 the layered blockchain data outsourcing sharing method for Internet of Things devices includes at least the following steps.
[0040] S110, the key generation center obtains public parameters and generates a system master key and a master public key based on the public parameters.
[0041] In the embodiments of the present application, the key generation center (Key Generation Center, KGC) selects a large prime number p and determines the finite field GF(p) of the blockchain system KGC sets the public parameters {G, g, H1, H2, H3, H4, mpk} on the blockchain network, where G is an elliptic curve cyclic group on g is the generator of G, the first secure hash function H1={0,1} * →G, the second secure hash function H2={0,1} * →G, the third secure hash function the fourth secure hash function Select a first random number a∈G as the system master key msk, calculate the system master public key mpk based on the system master key msk, and the system master public key mpk is as follows:
[0042] mpk=g α Formula (1)
[0043] S120, the key generation center generates a user private key and a user public key based on a user ID, and a user end performs verification based on the user private key to obtain a first verification result, wherein the user end includes a data request end and a data holding end.
[0044] In the embodiments of the present application, the user end can include at least a data request end and a data holding end, and the KGC calculates a user private key according to the identity proof file (Identity Document, ID) of the user of the user end, sends the user private key to the data request end and the data holding end, and uploads the verification information to the blockchain network. The user end performs key verification according to the received private key and verification information to obtain a first verification result.
[0045] like Figure 2 As shown, in an embodiment of the present invention, Figure 2 The step S120 at least includes the following steps:
[0046] S121. The key generation center generates verification information based on the public parameters, and generates a user private key and a user public key based on the user ID and the verification information.
[0047] In the embodiment of the present invention, the key generation center generates a second random number r u ∈G, based on the second random number r u Calculate and obtain verification information R u , verification information R u As shown in the following formula:
[0048]
[0049] The key generation center uses the user ID and verification information R u Generate the user private key sk, the user private key sk is as follows:
[0050]
[0051] The key generation center generates the user public key based on the user private key sk. The user public key pk is as follows:
[0052] pk=g sk Formula (4)
[0053] The key generation center creates a shared authorization list for the data holder. The data holder can add or cancel the data requester's permission to obtain data at any time. The key generation center sends the user's private key sk to the user and verifies the information using the first secure hash function. Upload to the blockchain network.
[0054] S122. The user terminal performs verification based on the user private key to obtain a first verification result.
[0055] In the embodiment of the present invention, the user terminal receives the user private key sk and performs verification based on the user private key sk. The verification process is as follows:
[0056]
[0057] Verify the correctness of the formula as follows:
[0058]
[0059] When the first verification result shows that the user private key sk is correct, the user terminal accepts the user private key sk.
[0060] S130: The data holding end obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates a calculation tag based on the encrypted data.
[0061] In an embodiment of the present invention, the data holder encrypts the data it holds to obtain encrypted data, and transmits the encrypted data to the proxy node. The proxy node verifies the legitimacy of the encrypted data through a homomorphic encryption algorithm. After the verification is passed, the encrypted data is transmitted to the cloud server.
[0062] like Figure 3 As shown, in an embodiment of the present invention, Figure 3 The step S130 at least includes the following steps:
[0063] S131. The data holding terminal obtains shared parameters and held data, generates an encryption key and a public key of the shared parameters based on the shared parameters, and generates encrypted data based on the held data and the encryption key.
[0064] In the embodiment of the present invention, the data holding end obtains the shared parameter sig, and the shared parameter sig is expressed as follows:
[0065] sig=H2(sk||meta) Formula (7)
[0066] The meta is data describing the data held by the data holder, including a description of the content and structure of the data held by the data holder.
[0067] The data holder calculates the encryption key k based on the shared parameter sig. The encryption key k is as follows:
[0068] k=H3(meta||g sk*sig ) Formula (8)
[0069] The data holder divides the held data M into n parts and generates encrypted data C based on the held data M and encryption key k. i , encrypted data C i As shown in the following formula:
[0070]
[0071] in, Stands for bitwise exclusive OR.
[0072] The data holder sends an outsourcing request to the proxy node and sends the encrypted data set {C i} 1≤i≤n Transmit to the proxy node. Calculate based on the shared parameter sig to obtain the public key P of the shared parameter sig, and the public key P of the shared parameter sig Upload to the blockchain network and share the public key P of the parameters sig As shown in the following formula:
[0073] P sig =g sig Formula (10)
[0074] S132. The proxy node generates a second challenge set based on the encrypted data and the BFV homomorphic encryption algorithm.
[0075] In the embodiment of the present invention, the proxy node encrypts the data set {C i} 1≤i≤n Randomly select s repeatable encrypted data C i , generate the first challenge set S. Generate the homomorphic key pair k according to the BFV (Brakerski / Fan-Vercauteren) fully homomorphic encryption algorithm FHE , homomorphic key pair k FHE Can include pk FHE and sk FHE , for each selected encrypted data C i Use the BFV homomorphic encryption algorithm for secondary encryption to generate the ciphertext C′ i , the second challenge set {C′ i} i∈S Sent to the data holder, where the ciphertext C′ i As shown in the following formula:
[0076] C′ i =BFV_Enc(k FHE ,C i ) Formula (11)
[0077] The BFV homomorphic encryption algorithm used by the proxy node may include at least the KeyGen encryption function, the BFV_Enc encryption function, the BFV_Dec decryption function, and the BGV_Eval homomorphic evaluation function, where:
[0078] KeyGen(λ)→(pk FHE ,sk FHE ): KeyGen generates encryption keys and evaluation keys based on the input initialization security parameter λ;
[0079] BFV_Enc(pk FHE ,M)→C: BGV_Enc is an encryption function that inputs plaintext and outputs ciphertext;
[0080] BFV_Dec(sk FHE ,C)→M: BGV_Dec is the decryption function, which inputs ciphertext and outputs plaintext;
[0081] BFV_Eval(C,f)→C′:BGV_Eval receives the homomorphic ciphertext data C and the function f supported by homomorphic encryption, and realizes the correct operation of the inner data based on the outer layer wrapped homomorphic ciphertext, that is, C′=BFV_Enc(pk FHE ,f(M)). Set the operation of f as follows: f = a + b mod 2, and use modulo-2 addition to simulate the bitwise XOR operation to implement the XOR operation under the homomorphic ciphertext. The inner layer data is decrypted without decrypting the outer layer homomorphic encryption. BFV also supports single instruction multiple data (Single Instruction, Multiple Data) parallel XOR, which can process at least thousands of bits at a time.
[0082] S133. The data holder performs homomorphic evaluation based on the second challenge set to generate homomorphic ciphertext.
[0083] In the embodiment of the present invention, the data holder is based on the second challenge set {C′ i} i∈S The homomorphic ciphertext in is homomorphically evaluated to generate the homomorphic ciphertext C″ i , the homomorphic ciphertext set {C″ i} i∈S Send to the proxy node. Among them, the homomorphic ciphertext C″ i As shown in the following formula:
[0084] C″ i =BFV_Wval(C′ i ,f) Formula (12)
[0085] S134. The proxy node decrypts the homomorphic ciphertext to obtain decrypted data, and compares the decrypted data with the structural description of the held data to obtain a comparison result.
[0086] In the embodiment of the present invention, the proxy node performs a i Perform homomorphic decryption to obtain the decrypted data m′ i , decrypt the data m′ i Compare with the structure description of the data held in meta to verify whether the data is damaged or valid. i If the structure of the data held in the meta is consistent with the description, the data holder passes the challenge, the proxy node accepts the outsourcing request, and processes the data; when the decrypted data m′ i If the data holding structure does not conform to the description in the meta, the data holding end fails the challenge and the proxy node rejects the outsourcing request.
[0087] S135. When the decrypted data conforms to the structure of the held data, the proxy node obtains random parameters and at least one third random number, calculates based on the random parameters to obtain a first verification parameter, calculates based on the third random number to obtain a second verification parameter set, and generates a calculation tag based on the random parameters, the third random number and the encrypted data.
[0088] In the embodiment of the present invention, when the decrypted data m′ i If the data structure described in the meta is met, the data holder passes the challenge, the proxy node accepts the outsourcing request, and the proxy node obtains random parameters. and n third random numbers Based on each encrypted data C i Generate calculation tag i , calculate the tag i As shown in the following formula:
[0089] tag i =H4(i||meta)*a+C i *t i (1≤i≤n)) Formula (13)
[0090] Where i is an integer and n is the number of encrypted data in the encrypted data set.
[0091] The proxy node sets the random parameter a and the third random number set {t i} 1≤i≤n Sent to the data holder. Based on the random parameter a, the first verification parameter A is calculated, and based on the third random number t i Calculate and obtain the second verification parameter T i , immediately delete the random parameter a and the third random number set {t i} 1≤i≤n To ensure data security, the dataset will be encrypted {C i} 1≤i≤n and calculate the tag set {tagi} 1≤i≤n Send to the cloud server and the third random number t i The number n, the first verification parameter A and the second verification parameter set {T i} 1≤i≤n Upload to the blockchain network.
[0092] S140. The proxy node generates a challenge set based on the fourth random number and transmits the challenge set to the cloud server. The cloud server performs calculation based on the challenge set, the calculation tag and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result.
[0093] like Figure 4 As shown, in an embodiment of the present invention, Figure 4 The step S140 at least includes the following steps:
[0094] S141. The proxy node obtains at least one fourth random number and generates the challenge set based on the fourth random number.
[0095] In the embodiment of the present invention, the proxy node challenges the cloud server at a preset time to verify whether the outsourced data is stored correctly, and obtains l(l <n)个索引,基于每一个索引i生成第四随机数 To increase the challenge, a challenge set Chal={(i,v i )} i∈l .
[0096] S142. The cloud server performs calculation based on the challenge set and the calculation tag to obtain a first proof parameter set, and performs calculation based on the challenge set and the encrypted data to obtain a second proof parameter set.
[0097] In the embodiment of the present invention, the cloud server receives the challenge set Chal={(i,v i )} i∈l , based on the challenge set Chal={(i,v i )} i∈l Retrieve the corresponding data from the outsourced data, based on the challenge set Chal={(i,v i )} i∈l Each element (i,v i ) and the calculation tag to calculate and get the first proof parameter σ i , based on the challenge set Chal={(i,v i )} i∈l Each element (i,v i ) and the encrypted data to obtain the second proof parameter u i , first prove that the parameter σ i and the second proof parameter u i As shown in the following formula:
[0098] σ i =v i *tag i Formula (14)
[0099] u i =v i *C i Formula (15)
[0100] The first proof parameter set σ={σ i} i∈land the second proof parameter set U={u i} i∈l Sent to the proxy node. The proof parameter set may at least include: a first proof parameter set σ={σ i} i∈l and the second proof parameter set U={u i} i∈l .
[0101] S143. The cloud server performs verification based on the first proof parameter set and the second proof parameter set to obtain the second verification result.
[0102] In an embodiment of the present invention, the cloud server performs verification based on the first proof parameter set and the second proof parameter set. The verification process is as follows:
[0103]
[0104] When the verification is successful, the cloud server passes the data integrity check; when the verification is unsuccessful, the cloud server does not store the data correctly. i} 1≤i≤n Public on the blockchain network, any legitimate user can perform this data integrity verification process for data auditing.
[0105] S150. The proxy node determines whether the data requesting end belongs to the sharable authorization list. When the data requesting end belongs to the sharable authorization list, the proxy node generates a conversion ciphertext based on the encryption key and the public key of the data requesting end, and the data requesting end generates a plaintext based on the conversion ciphertext and the public key of the shared parameter.
[0106] like Figure 5 As shown, in an embodiment of the present invention, Figure 5 The step S150 at least includes the following steps:
[0107] S151. The data holding end adds the data requesting end to a sharable authorization list, obtains the encryption key and the public key of the data requesting end, and generates a conversion key based on the encryption key and the public key of the data requesting end.
[0108] In the embodiment of the present invention, when the data holding end allows the data requesting end to obtain the data held by the data holding end, the data holding end obtains the public key pk of the data requesting end. x , add the data requester to the shared authorization list, and generate the conversion key k based on the encryption key of the corresponding data y→x , conversion key k y→x As shown in the following formula:
[0109]
[0110] Among them, || is the concatenation operator, It is a finite domain of the blockchain system.
[0111] S152: The proxy node determines whether the data requesting end belongs to the sharable authorization list, and when the data requesting end belongs to the sharable authorization list, generates the conversion ciphertext based on the conversion key.
[0112] In the embodiment of the present invention, the data requesting end obtains the data held by the data holding end, and the proxy node checks whether the data requesting end belongs to the sharable authorization list. If the data requesting end belongs to the sharable authorization list, the proxy node sends a request to obtain the data to the cloud server and obtains the conversion key k y→x , based on the transformation key k y→x Generate conversion ciphertext C x , will convert the ciphertext C x Transmit to the data request end and convert the ciphertext C x As shown in the following formula:
[0113]
[0114] S153. The data requesting end obtains the public key of the shared parameter, and generates plaintext based on the converted ciphertext and the public key of the shared parameter.
[0115] In the embodiment of the present invention, the data request end receives the converted ciphertext C x , and obtain the public key P of the shared parameters from the blockchain network sig , based on the transformed ciphertext C x and the public key P of the shared parameters sig Generate plaintext M, which is as follows:
[0116]
[0117] In summary, in the hierarchical blockchain data outsourcing sharing method for IoT devices of the present application, the key generation center obtains public parameters and generates a system master key and a master public key based on the public parameters. The key generation center generates a user private key and a user public key based on the user ID. The user end performs verification based on the user private key to obtain a first verification result, wherein the user end includes a data request end and a data holding end. The data holding end obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates a calculation tag based on the encrypted data. The proxy node generates a challenge set based on the fourth random number and sends the challenge The set is transmitted to the cloud server, the cloud server performs calculations based on the challenge set, the calculation tag and the encrypted data, generates a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result. The proxy node determines whether the data request end belongs to the shareable authorization list. When the data request end belongs to the shareable authorization list, the proxy node generates a conversion ciphertext based on the encryption key and the public key of the data request end, and the data request end generates a plaintext based on the conversion ciphertext and the public key of the shared parameter, thereby realizing outsourcing sharing of data while ensuring privacy, and realizing data integrity verification by generating calculation tags.
[0118] See also Figure 6 , which is a schematic diagram of the structure of the hierarchical blockchain data outsourcing sharing system for IoT devices disclosed in the embodiment of this application. In one embodiment, Figure 6 As shown, the present application provides a layered blockchain data outsourcing sharing system 100 for IoT devices. The layered blockchain data outsourcing sharing system 100 for IoT devices may include at least: a transaction layer 110 and an execution layer 130, wherein there is information interaction between the transaction layer 110 and the execution layer 130.
[0119] The transaction layer 110 may include at least a key generation center 111 and a user terminal 113 , wherein information exchange occurs between the key generation center 111 and the user terminal 113 .
[0120] The execution layer 130 may include at least an agent node 131 and a cloud server 133 , wherein information exchange occurs between the agent node 131 and the cloud server 133 .
[0121] The key generation center 111 is used to obtain public parameters and generate the system master key and master public key based on the public parameters. Specifically, the key generation center 111 selects a large prime number p and determines the finite field of the blockchain system. The key generation center 111 sets the public parameters {G, g, H1, H2, H3, H4, mpk} on the blockchain network (not shown), where G is The elliptic curve cyclic group on G is g, the first secure hash function H1={0,1}* →G, second secure hash function H2 = {0, 1} * →G, the third secure hash function Fourth secure hash function The first random number α∈G is selected as the system master key msk, and the system master public key mpk is calculated based on the system master key msk. The system master public key mpk is as follows:
[0122] mpk=g α Formula (1)
[0123] The key generation center 111 is also used to generate a user private key and a user public key based on the user ID. The user terminal 113 performs verification based on the user private key to obtain a first verification result, wherein the user terminal 113 includes a data request terminal 1131 and a data holding terminal 1133. In an embodiment of the present invention, the key generation center 111 calculates the user private key based on the user's identity document (Identity Document, ID) of the user terminal, and sends the user private key to the data request terminal 1131 and the data holding terminal 1133. The verification information is uploaded to the blockchain network, and the user terminal 113 performs key verification based on the received private key and verification information to obtain a first verification result. Specifically, the key generation center 111 generates verification information based on the public parameters, and generates the user private key and the user public key based on the user ID and the verification information. In an embodiment of the present invention, the key generation center 111 generates a second random number r u ∈G, based on the second random number r u Calculate and obtain verification information R u , verification information R u As shown in the following formula:
[0124]
[0125] The key generation center 111 generates a key based on the user ID and the verification information R u Generate the user private key sk, the user private key sk is as follows:
[0126]
[0127] The key generation center 111 generates a user public key based on the user private key sk. The user public key pk is as follows:
[0128] pk=g sk Formula (4)
[0129] The key generation center 111 creates a shareable authorization list for the user of the data holding terminal 1133. The data holding terminal 1133 can add or cancel the data request terminal's permission to obtain data at any time. The key generation center 111 sends the user private key sk to the user terminal 113 and verifies the information using the first secure hash function. Upload to the blockchain network.
[0130] The user terminal 113 is used to perform verification based on the user private key to obtain a first verification result. Specifically, the user terminal 113 receives the user private key sk and performs verification based on the user private key sk. The verification process is as follows:
[0131]
[0132] Verify the correctness of the formula as follows:
[0133]
[0134]
[0135] When the first verification result shows that the user private key sk is correct, the user terminal 113 accepts the user private key sk.
[0136] The data holding end 1133 is used to obtain shared parameters and held data, generate encrypted data based on the shared parameters and the held data, and generate a calculation tag based on the encrypted data. In an embodiment of the present invention, the data holding end 1133 encrypts the held data to obtain encrypted data, and transmits the encrypted data to the proxy node 131. The proxy node 131 verifies the legitimacy of the encrypted data through a homomorphic encryption algorithm. After the verification is passed, the encrypted data is transmitted to the cloud server 133. Specifically, the data holding end 1133 obtains shared parameters and held data, generates an encryption key and a public key of the shared parameters based on the shared parameters, and generates encrypted data based on the held data and the encryption key. In an embodiment of the present invention, the data holding end 1133 obtains the shared parameter sig, and the shared parameter sig is as shown in the following formula:
[0137] sig=H2(sk||meta) Formula (7)
[0138] The meta is data describing the data held by the data holding terminal 1133 , including a description of the content and structure of the data held by the data holding terminal 1133 .
[0139] The data holder 1133 performs calculation based on the shared parameter sig to obtain the encryption key k. The encryption key k is as follows:
[0140] k=H3(meta||g sk*sig ) Formula (8)
[0141] The data holding terminal 1133 divides the held data M into n parts, and generates encrypted data C based on the held data M and the encryption key k. i , encrypted data C i As shown in the following formula:
[0142]
[0143] in, Stands for bitwise exclusive OR.
[0144] The data holding terminal 1133 sends an outsourcing request to the proxy node 131 and sends the encrypted data set {C i} 1≤i≤n Transmit to the proxy node 131. Calculate based on the shared parameter sig to obtain the public key P of the shared parameter sig , and the public key P of the shared parameter sig Upload to the blockchain network and share the public key P of the parameters sig As shown in the following formula:
[0145] P sig =g sig Formula (10)
[0146] The proxy node 131 generates a second challenge set based on the encrypted data and the BFV homomorphic encryption algorithm. i} 1≤i≤n Randomly select s repeatable encrypted data C i , generate the first challenge set S. Generate the homomorphic key pair k according to the BFV (Brakerski / Fan-Vercauteren) fully homomorphic encryption algorithm FHE , homomorphic key pair k FHE Can include pk FHE and sk FHE , for each selected encrypted data C i Use the BFV homomorphic encryption algorithm for secondary encryption to generate the ciphertext C′ i , the second challenge set {C′ i} i∈S Sent to the data holder, where the ciphertext C′ i As shown in the following formula:
[0147] C′ i =BFV_Enc(k FHE ,C i ) Formula (11)
[0148] The BFV homomorphic encryption algorithm used by the proxy node 131 may include at least a KeyGen encryption function, a BFV_Enc encryption function, a BFV_Dec decryption function, and a BGV_Eval homomorphic evaluation function, wherein:
[0149] KeyGen(λ)→(pk FHE ,sk FHE ): KeyGen generates encryption keys and evaluation keys based on the input initialization security parameter λ;
[0150] BFV_Enc(pk FHE ,M)→C: BGV_Enc is an encryption function that inputs plaintext and outputs ciphertext;
[0151] BFV_Dec(sk FHE ,C)→M: BGV_Dec is the decryption function, which inputs ciphertext and outputs plaintext;
[0152] BFV_Eval(C,f)→C′:BGV_Eval receives the homomorphic ciphertext data C and the function f supported by homomorphic encryption, and realizes the correct operation of the inner data based on the outer layer wrapped homomorphic ciphertext, that is, C′=BFV_Enc(pk FHE ,f(M)). Set the operation of f as follows: f = a + b mod 2, and use modulo-2 addition to simulate the bitwise XOR operation to implement the XOR operation under the homomorphic ciphertext. The inner layer data is decrypted without decrypting the outer layer homomorphic encryption. BFV also supports single instruction multiple data (Single Instruction, Multiple Data) parallel XOR, which can process at least thousands of bits at a time.
[0153] The data holding terminal 1133 performs homomorphic evaluation based on the second challenge set to generate homomorphic ciphertext. i} i∈S The homomorphic ciphertext in is homomorphically evaluated to generate the homomorphic ciphertext C″ i , the homomorphic ciphertext set {C″ i} i∈S Send to the proxy node 131. Among them, the homomorphic ciphertext C″ i As shown in the following formula:
[0154] C″ i =BFV_Eval(C′ i ,f) Formula (12)
[0155] The proxy node 131 decrypts the homomorphic ciphertext to obtain decrypted data, and compares the decrypted data with the structural description of the held data to obtain a comparison result. In the embodiment of the present invention, the proxy node 131 performs a decryption on each homomorphic ciphertext C″. i Perform homomorphic decryption to obtain the decrypted data m′ i , decrypt the data m′ i Compare with the structure description of the data held in meta to verify whether the data is damaged or valid. i If the data holding structure is consistent with the description in meta, the data holding end passes the challenge, the proxy node 131 accepts the outsourcing request and processes the data; when the decrypted data m′ i If the data holding end 1133 does not conform to the description of the structure of the data held in the meta, the data holding end 1133 fails the challenge and the proxy node 131 rejects the outsourcing request.
[0156] When the decrypted data conforms to the structure of the held data, the proxy node 131 obtains random parameters and at least one third random number, calculates based on the random parameters to obtain the first verification parameter, calculates based on the third random number to obtain the second verification parameter set, and generates a calculation tag based on the random parameters, the third random number and the encrypted data. In this embodiment of the present invention, when the decrypted data m′ i If the data structure described in the meta is met, the data holder passes the challenge, the proxy node accepts the outsourcing request, and the proxy node obtains random parameters. and n third random numbers Based on each encrypted data C i Generate calculation tag i , calculate the tag i As shown in the following formula:
[0157] tag i =H4(i||meta)*a+C i *t i (1≤i≤n)) Formula (13)
[0158] The proxy node 131 sets the random parameter a, the third random number set {t i} 1≤i≤n The first verification parameter A is calculated based on the random parameter a, and the third random number t is sent to the data holding terminal 1133. i Calculate and obtain the second verification parameter T i , immediately delete the random parameter a and the third random number set {t i} 1≤i≤n To ensure data security, the dataset will be encrypted {Ci} 1≤i≤n and calculate the tag set {tag i} 1≤i≤n Send to the cloud server and the third random number t i The number n, the first verification parameter A and the second verification parameter set {T i} 1≤i≤n Upload to the blockchain network.
[0159] The proxy node 131 generates a challenge set based on the fourth random number and transmits the challenge set to the cloud server 133. The cloud server 133 performs calculation based on the challenge set, the calculation tag and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result. Specifically, the proxy node 131 obtains at least one of the fourth random numbers and generates the challenge set based on the fourth random number. In this embodiment of the present invention, the proxy node 131 initiates a challenge to the cloud server 133 at a preset time to verify whether the outsourced data is correctly stored, and obtains l(l <n)个索引,基于每一个索引i生成第四随机数 To increase the challenge, a challenge set Chal={(i,v i )} i∈l The cloud server 133 performs calculation based on the challenge set and the calculation tag to obtain a first proof parameter set, and performs calculation based on the challenge set and the encrypted data to obtain a second proof parameter set. In this embodiment of the present invention, the cloud server 133 receives the challenge set Chal={(i,v i )} i∈l , based on the challenge set Chal={(i,v i )} i∈l Retrieve the corresponding data from the outsourced data, based on the challenge set Chal={(i,v i )} i∈l Each element (i,v i ) and the calculation tag to calculate and get the first proof parameter σ i , based on the challenge set Chal={(i,v i )} i∈l Each element (i,v i ) and the encrypted data to obtain the second proof parameter u i , first prove that the parameter σ i and the second proof parameter u i As shown in the following formula:
[0160] σ i =v i *tag i Formula (14)
[0161] u i =v i *C i Formula (15)
[0162] The first proof parameter set σ={σ i} i∈l and the second proof parameter set U={u i} i∈l Sent to the proxy node 131. The proof parameter set may at least include: a first proof parameter set σ={σ i} i∈l and the second proof parameter set U={u i} i∈l .
[0163] The cloud server 133 performs verification based on the first proof parameter set and the second proof parameter set to obtain the second verification result. In an embodiment of the present invention, the cloud server 133 performs verification based on the first proof parameter set and the second proof parameter set, and the verification process is as follows:
[0164]
[0165] When the verification is successful, the cloud server 133 passes the data integrity check; when the verification is unsuccessful, the cloud server 133 does not store the data correctly. i} 1≤i≤n Public on the blockchain network, any legitimate user can perform this data integrity verification process for data auditing.
[0166] The proxy node 131 is used to determine whether the data request end 1131 belongs to the sharable authorization list. When the data request end 1131 belongs to the sharable authorization list, the proxy node 131 generates a conversion ciphertext based on the encryption key and the public key of the data request end, and the data request end 1131 generates a plaintext based on the conversion ciphertext and the public key of the shared parameter. Specifically, the data holding end 1133 adds the data request end 1131 to the sharable authorization list, obtains the encryption key and the public key of the data request end, and generates a conversion key based on the encryption key and the public key of the data request end. In an embodiment of the present invention, when the data holding end 1133 allows the data request end 1131 to obtain the data held by the data holding end 1133, the data holding end 1133 obtains the public key pk of the data request end 1131. x , add the data requester 1131 to the shared authorization list, and generate the conversion key k based on the encryption key of the corresponding data y→x , conversion key k y→x As shown in the following formula:
[0167]
[0168] The proxy node 131 determines whether the data requesting end 1131 belongs to the sharable authorization list. If the data requesting end 1131 belongs to the sharable authorization list, the proxy node 131 generates the conversion ciphertext based on the conversion key. In an embodiment of the present invention, the data requesting end 1131 obtains the data held by the data holding end 1133, and the proxy node 131 checks whether the data requesting end 1131 belongs to the sharable authorization list. If the data requesting end 1131 belongs to the sharable authorization list, the proxy node 131 sends a request to obtain data to the cloud server 133 and obtains the conversion key k. y→x , based on the transformation key k y→x Generate conversion ciphertext C x , will convert the ciphertext C x Transmit to the data request end and convert the ciphertext C x As shown in the following formula:
[0169]
[0170] The data request end 1131 obtains the public key of the shared parameter and generates a plain text based on the converted cipher text and the public key of the shared parameter. x , and obtain the public key P of the shared parameters from the blockchain network sig , based on the transformed ciphertext C x and the public key P of the shared parameters sig Generate plaintext M, which is as follows:
[0171]
[0172] In summary, in the hierarchical blockchain data outsourcing sharing method for IoT devices of the present application, the public parameters are obtained through the key generation center 111, and the system master key and master public key are generated based on the public parameters. The key generation center 111 generates a user private key and a user public key based on the user ID. The user terminal 113 performs verification based on the user private key to obtain a first verification result, wherein the user terminal 113 includes a data request terminal 1131 and a data holding terminal 1133. The data holding terminal 1133 obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates a calculation tag based on the encrypted data. The proxy node 131 generates a challenge based on the fourth random number. The challenge set is transmitted to the cloud server 133, and the cloud server 133 performs calculation based on the challenge set, the calculation tag and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result. The proxy node 131 determines whether the data request end 1131 belongs to the sharable authorization list. When the data request end 1131 belongs to the sharable authorization list, the proxy node generates a conversion ciphertext based on the encryption key and the public key of the data request end, and the data request end generates a plaintext based on the conversion ciphertext and the public key of the shared parameter, thereby realizing outsourcing sharing of data while ensuring privacy, and realizing data integrity verification by generating calculation tags.
[0173] Throughout this specification, reference to terms such as "one embodiment," "some embodiments," "example," "specific example," "one implementation," "a preferred implementation," or "some examples" means that the specific features, structures, materials, or characteristics described in conjunction with that embodiment or example are included in at least one embodiment or example of the present invention. In this specification, schematic representations of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples.
[0174] While embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes, modifications, substitutions, and variations may be made to the embodiments without departing from the principles and spirit of the invention, and that the scope of the invention is defined by the claims and their equivalents.
Claims
1. A hierarchical blockchain data outsourcing sharing method for IoT devices, characterized in that: The hierarchical blockchain data outsourcing sharing method for IoT devices includes: The key generation center obtains the public parameters and generates a system master key and a master public key based on the public parameters; The key generation center generates a user private key and a user public key based on the user ID, and the user end performs verification based on the user private key to obtain a first verification result, wherein the user end includes a data request end and a data holding end; The data holding end obtains shared parameters and held data, generates encrypted data based on the shared parameters and the held data, and generates a calculation tag based on the encrypted data; The proxy node generates a challenge set based on the fourth random number and transmits the challenge set to the cloud server. The cloud server performs calculation based on the challenge set, the calculation tag, and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result. The proxy node determines whether the data requesting end belongs to the sharable authorization list. When the data requesting end belongs to the sharable authorization list, the proxy node generates a converted ciphertext based on the encryption key and the public key of the data requesting end, and the data requesting end generates a plaintext based on the converted ciphertext and the public key of the shared parameter.
2. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 1 is characterized in that: The key generation center generates a user private key and a user public key based on the user ID, and the user terminal performs verification based on the user private key to obtain a first verification result, including: The key generation center generates verification information based on the public parameters, and generates the user private key and the user public key based on the user ID and the verification information; The user terminal performs verification based on the user private key to obtain the first verification result.
3. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 2 is characterized in that: The data holding end obtains shared parameters and held data, generates encrypted data based on the shared parameters and held data, and generates a calculation tag based on the encrypted data, including: The data holding end obtains the shared parameters and the held data, generates an encryption key and a public key of the shared parameters based on the shared parameters, and generates the encrypted data based on the held data and the encryption key; The proxy node generates a second challenge set based on the encrypted data and the BFV homomorphic encryption algorithm; The data holding end performs homomorphic evaluation based on the second challenge set to generate homomorphic ciphertext; The proxy node decrypts the homomorphic ciphertext to obtain decrypted data, and compares the decrypted data with the structural description of the held data to obtain a comparison result; When the decrypted data conforms to the structure of the held data, the proxy node obtains random parameters and at least one third random number, calculates based on the random parameters to obtain a first verification parameter, calculates based on the third random number to obtain a second verification parameter set, and generates the calculation tag based on the random parameters, the third random number and the encrypted data.
4. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 3 is characterized in that: The proxy node generates a challenge set based on the fourth random number and transmits the challenge set to the cloud server. The cloud server performs calculation based on the challenge set, the calculation tag, and the encrypted data to generate a proof parameter set, and performs verification based on the proof parameter set to obtain a second verification result, including: The proxy node obtains at least one fourth random number and generates the challenge set based on the fourth random number; The cloud server performs calculation based on the challenge set and the calculation tag to obtain a first proof parameter set, and performs calculation based on the challenge set and the encrypted data to obtain a second proof parameter set; The cloud server performs verification based on the first proof parameter set and the second proof parameter set to obtain the second verification result.
5. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 4 is characterized in that: The proxy node determines whether the data requesting end belongs to a sharable authorization list. When the data requesting end belongs to the sharable authorization list, the proxy node generates a conversion ciphertext based on an encryption key and a public key of the data requesting end, and the data requesting end generates a plaintext based on the conversion ciphertext and a public key of a shared parameter, including: The data holding end adds the data requesting end to the sharable authorization list, obtains the encryption key and the public key of the data requesting end, and generates a conversion key based on the encryption key and the public key of the data requesting end; The proxy node determines whether the data requesting end belongs to the sharable authorization list, and generates the conversion ciphertext based on the conversion key when the data requesting end belongs to the sharable authorization list; The data requesting end obtains the public key of the shared parameter, and generates plaintext based on the converted ciphertext and the public key of the shared parameter.
6. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 5 is characterized in that: The calculation tag is generated based on the random parameter, the third random number and the encrypted data, and the calculation tag is: tag i =H4(i||meta)*a+C i *t i (1≤i≤n)) Among them, H4 is the fourth secure hash function, meta is the data describing the data held by the data holder, a is a random parameter, t i is the third random number, C i is the encrypted data, i is an integer, and n is the number of encrypted data in the encrypted data set.
7. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 6 is characterized in that: The conversion key is generated based on the encryption key and the public key of the data requesting end, wherein the conversion key is: Among them, H3 is the third secure hash function, G is The cyclic group of the elliptic curve on , is the finite field of the blockchain system, || is the concatenation operator, g is the generator of G, sk y is the private key of the data holder, sig is the shared parameter, pk x is the public key of the data requesting end.
8. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 7 is characterized in that: The conversion ciphertext is generated based on the conversion key, and the conversion ciphertext is: Among them, C i For the encrypted data, Stands for bitwise exclusive OR.
9. The hierarchical blockchain data outsourcing sharing method for IoT devices according to claim 8 is characterized in that: The plaintext is generated based on the converted ciphertext and the public key of the shared parameter, and the plaintext is: Among them, P sig is the public key of the shared parameter, sk x The private key of the data requester.
10. A hierarchical blockchain data outsourcing sharing system for IoT devices, characterized by: The hierarchical blockchain data outsourcing sharing system for IoT devices includes: a key generation center, a user terminal, an agent node and a cloud server, wherein: The key generation center is used to obtain public parameters and generate a system master key and a master public key based on the public parameters; The key generation center is further configured to generate a user private key and a user public key based on the user ID, and the user end is configured to perform verification based on the user private key to obtain a first verification result, wherein the user end includes: a data request end and a data holding end; The data holding end is used to obtain shared parameters and held data, generate encrypted data based on the shared parameters and the held data, and generate a calculation tag based on the encrypted data; The proxy node is configured to generate a challenge set based on a fourth random number, and transmit the challenge set to the cloud server; the cloud server is configured to perform calculation based on the challenge set, the calculation tag, and the encrypted data to generate a proof parameter set, and perform verification based on the proof parameter set to obtain a second verification result; The proxy node is used to determine whether the data requesting end belongs to the shareable authorization list. When the data requesting end belongs to the shareable authorization list, the proxy node is also used to generate a conversion ciphertext based on the encryption key and the public key of the data requesting end, and the data requesting end is used to generate a plaintext based on the conversion ciphertext and the public key of the shared parameter.
Citation Information
Patent Citations
Cloud data sharing system and auditing system based on certificateless encryption
CN115643098A
Credible block chain data conditional security sharing method and system for cloud side end
CN119109578A