Data security sharing method in multi-edge node collaboration mode under industrial cloud environment
11640158 · 2023-05-02
Assignee
Inventors
Cpc classification
H04L9/083
ELECTRICITY
H04L9/085
ELECTRICITY
H04L9/0819
ELECTRICITY
H04L9/0816
ELECTRICITY
G05B19/4183
PHYSICS
International classification
G05B19/418
PHYSICS
H04L9/00
ELECTRICITY
H04L9/06
ELECTRICITY
H04L9/08
ELECTRICITY
Abstract
Provided is a data security sharing method for multiple edge nodes to operate in a collaboration mode under an industrial cloud environment. The method includes: firstly, edge nodes that need collaborative computing separately applying for a shared key to an authority center; secondly, the authority center generating a shared key and issuing the key to each of the edge nodes applying for participation in the collaborative computing; again, the edge nodes combining industrial characteristics to generate an interference factor set, and adding different interference factors for different types of data; then, the data of the edge nodes is implemented with improved homomorphic encryption and is uploaded to an industrial cloud platform; and finally, the industrial cloud platform performing homomorphic analysis and computing on the data uploaded by each of the edge nodes, and issuing the data back to each of the edge nodes.
Claims
1. A data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment, where objects involved in the method comprises: edge nodes, an industrial cloud platform, and an authority center, and the method comprises the following steps: in S1, applying to the authority center for a shared key by each of the edge nodes to participate in collaborative calculation; in S2, allocating, by the authority center, a different ID number to each of the edge nodes applying for the shared key, wherein the ID number is recorded as ID.sup.m.sub.edge, m={i, . . . , j}, m represents a node number set, and i and j each represents a node number; in S3, exchanging ID numbers between edge nodes in a same collaborative calculation group, so that each of the edge nodes in the same collaborative calculation group stores ID numbers of all the edge nodes in the same collaborative calculation group; sorting, by the authority center, all edge nodes in each of the collaborative calculation groups based on an order of the ID numbers of the edge nodes from small to large, to form a different set, wherein the set is recorded as M.sup.s; assuming that S collaborative calculation groups are under control of the authority center, then s={1, . . . , S}, M.sup.s={ID.sup.i.sub.edge, . . . , ID.sup.j.sub.edge}, wherein a different set M.sup.s corresponds to a different node number set; performing a same function operation F(M.sup.s) on the set M.sup.s corresponding to each of the collaborative calculation groups to obtain a different result, which is recorded as R.sup.s; the set M.sup.s having a one-to-one correspondence with the result R.sup.s; and identifying, by the authority center, different collaborative calculation groups based on R.sup.s, to distribute different keys for the different collaborative calculation groups; in S4, performing, by each of the edge nodes ID.sup.m.sub.edge, encryption operation E(ID.sup.m.sub.edge∥R.sup.s) on data ID.sup.m.sub.edge∥R.sup.s, and uploading, by each of the edge nodes ID.sup.m.sub.edge, a result of the encryption operation E(ID.sup.m.sub.edge∥R.sup.s) to the authority center, wherein “∥” represents a connector for string, and E(x) represents an encryption function; in S5, performing decryption operation D(ID.sup.m.sub.edge∥R.sup.s) by the authority center, with a pre-configured key; extracting, by the authority center, different collaborative calculation groups based on different results R.sup.s; sorting edge nodes in each of the extracted collaborative calculation groups based on the order described in step S3, to form a different set M.sup.s*={ID.sup.i.sub.edge*, . . . ID.sup.j.sub.edge*}; performing a same function operation F(M.sup.s*) to obtain a different result R.sup.s′; wherein D(x) is a decryption function for decrypting data encrypted by E(x); in S6, randomly constructing, by the authority center, a different μ*n matrix G for each of the collaborative calculation groups satisfying R.sup.s=R.sup.s′, wherein elements in the matrix G belong to a finite field GF(q), q is a large prime number, μ represents the number of rows of the matrix G, that is, a length of each column matrix of the matrix G, and n represents the number of edge nodes in each of the collaborative calculation groups; in S7, randomly generating, by each of the edge nodes ID.sup.m.sub.edge, a column matrix A.sub.(m) having μ elements, performing an encryption operation E(A.sub.(m)∥R), by each of the edge nodes ID.sup.m.sub.edge, on the column matrix A.sub.(m), where R is a specific value of calculation result of each of the collaborative calculation groups, and uploading, by each of the edge nodes ID.sup.m.sub.edge, a result of the encryption operation E(A.sub.(m)∥R) to the authority center, wherein all elements of the column matrix belong to the finite field GF(q), and each of the edge nodes ID.sup.m.sub.edge has a one-to-one correspondence with a column matrix A.sub.(m); in S8, performing decryption operation D(A.sub.(m)∥R.sup.s), by the authority center, with the pre-configured key; extracting, by the authority center, a column matrix corresponding to each of the edge nodes in each of the collaborative calculation groups based on R.sup.s; randomly recombining, by the authority center, all column matrixes corresponding to each of the collaborative calculation groups into a different n*μ matrix D; then performing, by the authority center, matrix operation T.sub.μ*μ=G*D, wherein T.sub.μ*μ is a newly generated matrix for generating the shared key; finally, performing, by the authority center, hash operation by introducing R and the matrix T.sub.μ*μ to generate the shared key, and distributing, by the authority center, the generated different shared key to a corresponding collaborative calculation group; in S9, generating, by each of the edge nodes in each of the collaborative calculation groups, a different interference factor set X based on industrial characteristics, wherein the interference factor set X comprises different interference factors δ, and the different interference factors δ are added for different types of data; in S10, performing, by each of the edge nodes in each of the collaborative calculation groups, fully homomorphic encryption on data by introducing the shared key and the interference factor, and uploading, by each of the edge nodes in each of the collaborative calculation groups, a ciphertext to the industrial cloud platform; and in S11, making, by the industrial cloud platform, homomorphic analysis and calculation on the fully homomorphic encrypted ciphertext, and distributing, by the industrial cloud platform, a processing result to the corresponding collaborative calculation group.
2. The data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment according to claim 1, wherein in the step S3, the authority center performs the same function operation F(M.sup.s) for each collaborative relationship to obtain the different result R.sup.s:
R.sup.s=F(M.sup.s), wherein, the function F is any mathematical function to perform mathematical calculations once or more on the set M.sup.s of edge nodes.
3. The data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment according to claim 1, wherein in the step S5, the authority center determines whether R.sup.s is equal to R.sup.s′, to prevent a forged attack from an illegal node.
4. The data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment according to claim 1, wherein in the step S8, the authority center performs hash operation Key.sub.share=Hash(T.sub.μ*μ∥R) by introducing R.sup.s and the matrix T.sub.μ*μ to generate the shared key, and distributes the generated shared key to the corresponding collaborative calculation group.
5. The data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment according to claim 1, wherein in the step S9, the interference factor comprises one or more of industrial protocol, network ID, data source address, data attribute, sensor type, and processing priority.
6. The data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment according to claim 1, wherein in the step S10, on a basis of an existing integer-based fully homomorphic encryption algorithm, an encryption function c=m′+2r+Σ.sub.i∈Sx.sub.i with x.sub.i=p.sub.skq+2r.sub.i is improved to c=m′+δ+2r+Σ.sub.i∈Sx.sub.i with x.sub.i=p.sub.skqp.sub.share+2r.sub.i, and a decryption function m′=(c mod p.sub.sk)mod 2 is improved to m′=((c−δ)mod p.sub.share)mod 2, wherein p.sub.share represents a shared key, δ represents an interference factor, c represents an encrypted ciphertext, m′ represents a plaintext, q, r and r.sub.i each represents a random large prime number, x.sub.i represents an i-th public key sample in a public key sample set L, and p.sub.sk represents a private key.
7. The data security sharing method for a plurality of edge nodes to operate in a collaboration mode under an industrial cloud environment according to claim 1, further comprising: during collaborative calculation between multiple edge nodes, when the authority center detects that an edge node is an illegal edge node, updating, by the authority center, a shared key of a collaborative calculation group where the illegal edge node is located and distributing, by the authority center, the updated shared key to other edge nodes except the illegal edge node in the collaborative calculation group; and updating a key when a new edge node joins a collaborative calculation group during the collaborative calculation group performs a collaborative calculation.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) In order to more clearly illustrate the purpose, technical solutions and beneficial effects of the present disclosure, following drawings for illustration are provided in the present disclosure.
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7) The embodiments of the present disclosure are described in detail below with reference to the accompanying drawings.
(8) A data security sharing method for multiple edge nodes to operate in a collaboration mode under an industrial cloud environment is provided in the present disclosure. Objects involved in the method includes: edge nodes, an industrial cloud platform, and an authority center. Firstly, each of edge nodes requiring for participating in collaborative calculation applies to the authority center for a shared key for collaborative calculation. Secondly, the authority center generates a shared key with a key generation mechanism and distributes the shared key to each of the edge nodes applying for participating in the collaborative calculation. With the key generation mechanism, a forged attack from an illegal edge node can be prevented. Then, each of the edge nodes generates an interference factor set X based on industrial characteristics, and adds different interference factors δ for different types of data, realizing fine-grained sharing of data in collaborative calculation between multiple edge nodes. Then, as shown in
(9) 1. A Shared Key Management Mechanism
(10) The shared key management mechanism includes generation of a shared key and update of a shared key.
(11) (1) Generation of a Shared Key
(12) In step 1, each of edge nodes wanting to participate in collaborative calculation applies to the authority center for a shared key. For ease of description, collaborative calculation between two edge nodes is taken as an example for specific description of the method according to the present disclosure, as shown in
(13) In step 2, the authority center allocates a different ID number to each of the edge nodes which applies for the shared key. In this example, the ID numbers selected by the authority center for the edge nodes are ID.sup.i.sub.edge and ID.sup.j.sub.edge.
(14) In step 3, the edge nodes exchange ID numbers, so that each of the edge nodes in a same collaborative calculation group stores ID numbers of all the edge nodes in the same collaborative calculation group. The authority center sorts all the edge nodes in the same collaborative calculation group based on an order of the ID numbers of the edge nodes from small to large, to form a set M.sup.s. In this example, the set M.sup.s is taken as M, and M={ID.sup.i.sub.edge, ID.sup.j.sub.edge}. Multiple collaborative calculation groups are under control of the authority center. A same function operation F(M.sup.s) is performed on each of the collaborative calculation groups to obtain a different result R.sup.s. The authority center can identify different collaborative calculation groups based on R.sup.s, so as to distribute different keys for the different collaborative calculation groups. The reason for introducing the result R.sup.s here is that, in a control region of the authority center, multiple collaborative relationships may be formed between multiple edge nodes. For example, a collaborative relationship is formed between an edge node ID.sup.i.sub.edge and an edge node ID.sup.j.sub.edge, and the two nodes may perform a collaborative calculation, while another collaborative relationship is formed between an edge node ID.sup.i.sub.edge and an edge node ID.sup.k.sub.edge, and the two nodes may perform another collaborative calculation. Thus the authority center can identify different collaborative calculation groups based on R.sup.s, to distribute different keys for the different collaborative calculation groups.
(15) The authority center performs a function operation F(M.sup.s) for each collaborative relationship to obtain a different result R.sup.s:
R.sup.s=F(M.sup.s)
(16) where, the function F is any mathematical function to perform mathematical calculations once or more on the edge node set M.sup.s, and the specific mathematical function is not limited in the present disclosure.
(17) Since an ID number of each of the edge nodes is unique, and the set M.sup.s formed by all the edge nodes in each of the collaborative calculation groups is unique, the result R.sup.s obtained by performing the function operation F(M.sup.s) is unique.
(18) Therefore, the authority center can identify keys corresponding to different collaborative calculation groups, based on the unique result R.sup.s.
(19) In step 4, in this example, the calculation result R.sup.s of the collaborative calculation group formed by the edge node ID.sup.i.sub.edge and the edge node ID.sup.j.sub.edge is taken as R. The edge nodes ID.sup.i.sub.edge performs an encryption operation E(ID.sup.i.sub.edge∥R) on data ID.sup.i.sub.edge∥R and uploads a result of the encryption operation E(ID.sup.i.sub.edge∥R) to the authority center, and the edge nodes ID.sup.j.sub.edge performs an encryption operation E(ID.sup.j.sub.edge∥R) on data ID.sup.j.sub.edge∥R and uploads a result of the encryption operation E(ID.sup.j.sub.edge∥R) to the authority center. Where represents a connector for string.
(20) In step 5, the authority center performs decryption operations D(ID.sup.i.sub.edge∥R) and D(ID.sup.j.sub.edge∥R) with a pre-configured key, extracts all the edge nodes requiring for participate in the same collaborative calculation based on R, sorts the edge nodes based on the order described in step 3 to form a set M*, then performs a same function operation F(M*) to obtain a result R′ finally. In this example, the set obtained by the authority center is M*={ID.sup.i.sub.edge, ID.sup.j.sub.edge}. If the edge nodes ID.sup.i.sub.edge and ID.sup.j.sub.edge participating in collaborative calculation both upload their ID numbers to the authority center, the set M* obtained by the authority center is the same as the set M of the edge nodes in step S3. The same function operation F(x) is performed on the two same sets, to obtain same calculated results, that is, R=R′.
(21) The authority center determines whether R is equal to R′ to prevent a forged attack from an illegal node. For example, an illegal edge node ID.sup.i.sub.edge has not reached a collaborative relationship with an edge node ID.sup.j.sub.edge, but lies to the authority center that it had reached the collaborative relationship with the edge node ID.sup.j.sub.edge, and the illegal edge node ID.sup.i.sub.edge uploads a set M consisting of the ID numbers of the edge node ID.sup.i.sub.edge and the edge node ID.sup.j.sub.edge to the authority center. Then the authority center will send a same shared key simultaneously to the illegal edge node ID.sup.i.sub.edge and the legal edge node ID.sup.j.sub.edge, thus the illegal edge node ID.sup.i.sub.edge can access data of the edge node ID.sup.j.sub.edge with the shared key. In the forged attack from the illegal edge node above, only the illegal edge node ID.sup.i.sub.edge uploads ID.sup.i.sub.edge∥R to the authority center, while the edge node ID.sup.j.sub.edge does not upload ID.sup.j.sub.edge∥R to the authority center. Therefore, the edge node set M* obtained by the authority center is inconsistent with the set M sent by the illegal node, then different results are obtained by performing the same function operation F(x) on the two different sets, that is, R≠R′.
(22) In step 6, after determining that the calculated results are the same, that is, R=R′, the authority center randomly constructs a μ*n matrix G. Elements in the matrix G belong to a finite field GF (q), μ represents the number of rows of the matrix G and also represents a length of each column matrix of the matrix G, and n represents the number of edge nodes in each of the collaborative calculation groups. In this example, n=2, and a value of μ may be determined based on safety intensity as needed.
(23) In step 7, the edge nodes ID.sup.i.sub.edge randomly generates a column matrix A.sub.(i) in which the number of elements is equal to μ, performs an encryption operation E(A.sub.(i)∥R) on the column matrix A.sub.(i), and uploads a result of the encryption operation E(A.sub.(i)∥R) to the authority center; and the edge nodes ID.sup.j.sub.edge randomly generates a column matrix A.sub.(j) in which the number of elements is equal to μ, performs an encryption operation E(A.sub.(j)∥R) on the column matrix A.sub.(j), and uploads a result of the encryption operation E(A.sub.(j)∥R) to the authority center. All elements of the column matrix belong to the finite field GF(q).
(24) In step 8, the authority center performs decryption operations D(A.sub.(i)∥R) and D(A.sub.(j)∥R) with a pre-configured key, extracts the column matrixes of the edge nodes ID.sup.i.sub.edge and ID.sup.j.sub.edge participating in the same collaborative calculation group, randomly recombines the column matrixes A.sub.(i) and A.sub.(j) into a n*μ matrix D, then performs matrix operation T.sub.μ*μ=G*D (where T.sub.μ*μ is a newly generated matrix for generating the shared key), and finally performs hash operation Key.sub.share=Hash(T.sub.μ*μ∥R) by introducing R and the matrix T.sub.μ*μ, to generate the shared key and distribute the generated shared key to the corresponding edge node. In this example, n=2. The reason for the authority center to perform hash operation by introducing R and the matrix T.sub.μ*μ is to avoid generating a same key for different collaborative calculation groups.
(25) (2) Update of a Shared Key
(26) In two cases, the authority center will update the shared key. One case is that the authority center detects an illegal edge node. The other case is that a new edge node joins to the edge nodes which have established a cooperative calculation, to perform a new collaborative calculation.
(27) 1) Update of a Shared Key Due to the Detection of an Illegal Edge Node by the Authority Center
(28) The edge node ID.sup.i.sub.edge or ID.sup.j.sub.edge is captured to be an illegal edge node. The illegal edge node is represented by ID.sup.fake.sub.edge.
(29) In step 1, after obtaining information about the illegal edge node ID.sup.fake.sub.edge, the authority center deletes the illegal edge node ID.sup.fake.sub.edge from the edge node set M*. The edge node set after the deletion is M**.
(30) In step 2, the authority center randomly constructs a new μ*(n−1) matrix G′. Since the illegal edge node ID.sup.fake.sub.edge is deleted, the number of edge nodes participating in a new collaborative calculation is reduced from n to n−1.
(31) In step 3, the authority center generates a new (n−1)×μ matrix D′ by randomly recombining column matrixes corresponding to edge nodes in the new edge node set, then performs a matrix operation T.sub.μ*μ′×D′, and finally performs hash operation by introducing R′ and the matrix T.sub.μ*μ′.
(32) 2) Update of a Shared Key Due to the Addition of a New Edge Node into a Collaborative Calculation Group
(33) If a new edge node is added into a collaborative calculation group, it is required for the authority center to update the shared key to prevent the new edge node from obtaining, with the non-updated key, the collaborative calculation data between other edge nodes which is generated before the new edge node participates in a collaborative calculation, thereby ensuring the forward security of the collaborative calculation data.
(34) In this example, the shared key is updated due to the addition of a new edge node k into a collaborative calculation group consisting of an edge node ID.sup.i.sub.edge and an edge node ID.sup.k.sub.edge, as shown in
(35) In step 1, the new edge node k randomly constructs a column matrix A.sub.(k), where A.sub.(k) is a column matrix corresponding to the new edge node k and has a length of μ; then the new edge node k performs an encryption operation E(ID.sup.k.sub.edge∥R∥A.sub.(k)∥ε) on a result R corresponding to the collaborative calculation group consisting of the edge node ID.sup.k.sub.edge and the edge node ID.sup.j.sub.edge, an ID number ID.sup.k.sub.edge of the new edge node, the column matrix A.sub.(k), and a symbol ε indicating that the new edge node requests to participate in a collaborative calculation, and then the new edge node k uploads a result of the encryption operation E(ID.sup.k.sub.edge∥R∥A.sub.(k)∥ε) to the authority center.
(36) In step 2, the authority center performs decryption operations D(ID.sup.k.sub.edge∥R∥A.sub.(k)∥ε) with a pre-configured key, then knows the request that the new edge node ID.sup.k.sub.edge wants to participate in a cooperative calculation from ε, and then determines that the new edge node wants to participate in the collaborative calculation group consisting of the edge node ID.sup.i.sub.edge and the edge node ID.sup.k.sub.edge based on the result R. After determining the collaborative calculation group in which the new edge node wants to participate, the authority center simultaneously verifies with the edge nodes ID.sup.i.sub.edge and ID.sup.j.sub.edge, and verification information is sent in a format of E(ID.sup.k.sub.edge∥R∥ε).
(37) In step 3, the edge nodes ID.sup.k.sub.edge and ID.sup.j.sub.edge receive the verification information and perform decryption operation D(ID.sup.k.sub.edge∥R∥ε) respectively, and know the request that the new edge node ID.sup.k.sub.edge wants to participate in the collaborative calculation group consisting of the edge node ID.sup.k.sub.edge and the edge node ID.sup.k.sub.edge based on ε and R. If ID.sup.i.sub.edge agrees with ID.sup.k.sub.edge to participate in the collaborative calculation group, ID.sup.i.sub.edge sends E(ID.sup.i.sub.edge∥ID.sup.k.sub.edge∥R) to the authority center; and similarly if ID.sup.j.sub.edge agrees with ID.sup.k.sub.edge to participate in the collaborative calculation group, ID.sup.j.sub.edge sends E (ID.sup.j.sub.edge∥ID.sup.k.sub.edge∥R) to the authority center.
(38) In step 4, the authority center collects other edge nodes which agree with the edge node ID.sup.k.sub.edge to participate in the collaborative calculation based on R, to form an edge node set M***. If the edge nodes ID.sup.i.sub.edge and ID.sup.j.sub.edge both agree with the edge node ID.sup.k.sub.edge to participate in the collaborative calculation and send verification messages to the authority center, then the edge node set M*** is the same as the edge node set M corresponding to the collaborative calculation group consisting of the edge node ID.sup.i.sub.edge and the edge node ID.sup.j.sub.edge. After respectively performing the same function operation F(x) on M*** and M, the authority center obtains same results R″ and R, that is, R″=R.
(39) In step 5, if the authority center obtains the same results R″ and R, the authority center randomly recombines the matrixes corresponding to a new set to generate a new μ*(n+1) matrix G″, then randomly recombines the column matrixes of all the edge nodes in the same collaborative calculation group to form a (n+1)*μ matrix D″, and then performs a matrix operation T.sub.μ*μ″=G″×D″, and finally performs hash operation Key″.sub.share=Hash(T.sub.μ*μ″∥R″) by introducing R″ and the matrix T.sub.μ*μ″.
(40) 2. Generation Mechanism of Interference Factors for Different Types of Data
(41) An enterprise user may choose one or more of industrial protocol, network ID, data source address, data attribute, sensor type, and processing priority as interference factors, to achieve more fine-grained sharing of industrial data. For different industrial scenarios, the enterprise user may choose different industrial attributes as interference factors according to their own situation and determine a byte length of an industrial attribute.
(42) As shown in
(43) industrial protocol occupies 1 byte, ranging from 0X00 to 0XFF;
(44) network ID occupies 2 bytes, ranging from 0X0000 to 0XFFFF;
(45) data source address occupies 4 bytes, ranging from 0X00000000 to 0XFFFFFFFF;
(46) data attribute occupies 1 byte, ranging from 0X00 to 0XFF;
(47) sensor type occupies 1 byte, ranging from 0X00 to 0XFF;
(48) processing priority occupies 1 byte, ranging from 0X00 to 0XFF; and
(49) the interference factor is added at an end of plaintext data of different types of data.
(50) 3. An Improved Fully Homomorphic Encryption Algorithm by Introducing a Shared Key and an Interference Factor
(51) (1) Parameter Selection
(52) Multiple parameters are involved in the algorithm, and all the parameters below are determined based on a safety parameter X:
(53) γ represents a bit length of a public key;
(54) η represents a bit length of a private key;
(55) ρ represents a bit length of noise;
(56) τ represents the number of public key samples,
(57) x represents a public key sample, and a public key sample set L is {x.sub.0, x.sub.1, . . . , x.sub.τ}, and pk=Σ.sub.0.sup.τx.sub.i.
(58) The parameters are determined as: ρ=λ, η=O(λ.sup.2), γ=O(λ.sup.5), τ=γ+λ, ρ′=2λ, where ρ′ represents a secondary noise parameter, and O(x) represents a time complexity function.
(59) To ensure the security of the integer-based fully homomorphic encryption algorithm, parameters in the public key in an existing algorithm may be selected as follows.
(60)
p.sub.sk∈((2Z+1)∩(2.sup.η-1,2.sup.η)), p.sub.share∈((2Z+1)∩(2.sup.η-1,2.sup.η)), output: x.sub.i=p.sub.skqp.sub.share+2r.sub.i), where p.sub.sk represents a private key of an edge node, p.sub.share represents a shared key of the edge node, Z represents an integer symbol in mathematics, q and r.sub.i each represents a random large prime number, D.sub.γ,ρ(p) represents a distribution function, x.sub.i represents an i-th public key sample in the public key sample set L.
(61) (2) Construction of the Scheme
(62) 1) KeyGen(λ): for a public key sample x.sub.i∈D.sub.γ,ρ(p), i=0 . . . , τ. Where x.sub.0 is the largest and an odd number, r.sub.p(x.sub.0) is an even number, and r.sub.p(x.sub.0) represents a remainder of x.sub.0 divided by r.
(63) 2) E(p.sub.sk, m′E{0,1}): selecting a random subset S″.Math.{1, 2, . . . τ} and a random integer r.Math.(−2.sup.p′,2.sup.p′), outputting c←[m′+δ+2r+Σ.sub.i∈Sx.sub.i].sub.x.sub.
(64) Evaluate(p.sub.sk, C, c): assuming that a bootstrap circuit having a bootstrap circuit function is a circuit C having t inputs, the inputs of the function includes a public key p.sub.sk, the (binary) circuit C having t inputs, and t corresponding ciphertexts c=c.sub.1, c.sub.2, . . . , c.sub.t. The (integer) addition gates and multiplication gates of the circuit C are applied to the ciphertexts, and all operations are performed on integers, to return an integer result.
(65) 4) Decrypt.sub.share(p.sub.share, c, δ) is a decryption algorithm for shared data, and outputs m′←((c−δ)mod p.sub.share)mod 2.
(66) Finally, it should be noted that the embodiments are only used to illustrate rather than limit the technical solutions of the present disclosure. Although the present disclosure has been described in detail through the above embodiments, those skilled in the art should understand that various modifications can be made to the present disclosure in form and details without departing from the scope of the claims of the present disclosure.