Secret grouping device, secret grouping system, secret grouping method, and program product

By using the input section, vector computation section, and stable sorting section of the secret grouping device, the boundary of elements within the group is detected and sorted, thus solving the problem of long secret computation grouping time and reducing the computational complexity of Θ(nlogn).

CN116324711BActive Publication Date: 2026-05-01NIPPON TELEGRAPH & TELEPHONE CORP
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
NIPPON TELEGRAPH & TELEPHONE CORP
Filing Date
2020-10-16
Publication Date
2026-05-01

AI Technical Summary

Technical Problem

Grouping via secret computation takes a long time, especially when classifying the elements of a vector consisting of n elements into finer groups. This requires creating a vector of size Θ(n) n times, resulting in an overall computation time of Θ(n²).

Method used

By using a secret grouping device, utilizing the input unit, vector computation unit, and stable sorting unit, the element boundaries within the group are detected and stable sorted, reducing computation time and achieving a computational complexity of Θ(nlogn).

Benefits of technology

It effectively reduces the computation time in the secret computation grouping process and lowers the overall computational complexity to Θ(nlogn).

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116324711B_ABST
    Figure CN116324711B_ABST
Patent Text Reader

Abstract

A secret grouping device according to one embodiment is a secret grouping device that classifies a plurality of elements into one or more groups by secret computation, including: an input section that inputs a target vector in which the plurality of elements are arranged in such a manner that elements belonging to the same group are consecutive, a group information vector that indicates a last element within the group, and a classification destination vector that indicates a classification destination of each element within the group; a detection vector calculation section that calculates a detection vector that indicates a last element among elements classified to the same classification destination within the group, using the target vector, the group information vector, and the classification destination vector; and a classification section that creates a target vector after classification of each element to the classification destination within the group, and a group information vector that indicates a last element within the group after the classification, by stably ordering the target vector and the detection vector with respect to the classification destination vector.
Need to check novelty before this filing date? Find Prior Art

Description

Secret grouping device, secret grouping system, secret grouping method, and program product Technical field

[0001] The present invention relates to a secret grouping device, a secret grouping system, a secret grouping method, and a program. Background art

[0002] As a method for obtaining a specific calculation result in a manner that does not restore an encrypted value, a method called secret calculation is known (for example, Non-Patent Document 1). In the method described in Non-Patent Document 1, by performing encryption such that fragments of a value are dispersed in three secret calculation devices and performing collaborative calculation by the three secret calculation devices, results such as addition and subtraction, constant addition, multiplication, constant multiplication, logical operations (negation, logical product, logical sum, exclusive or), and data format conversion (integer and binary number) are obtained in a state dispersed in the three secret calculation devices without restoring the value.

[0003] On the other hand, in various technologies, there are cases where it is desired to classify multiple elements into multiple groups (i.e., grouping). In addition, there are cases where it is desired to classify multiple grouped elements into finer groups. For example, when learning a decision tree, grouping of a set of certain attribute values is recursively performed at each node.

[0004] <Prior art documents>

[0005] <Non-Patent Documents>

[0006] Non-Patent Document 1: Koji Chida, Hiroki Hamada, Dai Igarashi, Katsumi Takahashi, "Rethinking lightweight verifiable three-party private function calculation", In CSS, 2010. Summary of the invention

[0007] <Problems to be solved by the present invention>

[0008] However, in the case of grouping by secret calculation, the calculation time sometimes becomes large. For example, in the case of classifying each element of a vector composed of n grouped elements into finer groups, in order to hide the size of each group, it is necessary to create a vector of size n containing the elements belonging to that group in each group. Therefore, it is necessary to create a vector of size Θ(n) Θ(n) times, and overall, Θ(n 2 ) of calculation time is required.

[0009] In view of the above problems, an object of one embodiment of the present invention is to reduce the calculation time in the case of grouping by secret calculation.

[0010] <Means for solving the problems>

[0011] To achieve the above objective, a secret grouping device according to one embodiment classifies multiple elements into one or more groups through secret computation. The secret grouping device includes: an input unit that inputs a target vector in which elements belonging to the same group are arranged consecutively, a group information vector representing the last element within the group, and a classification destination vector representing the classification destination of each element within the group; a detection vector calculation unit that uses the target vector, the group information vector, and the classification destination vector to calculate a detection vector representing the last element among the elements classified to the same classification destination within the group; and a classification unit that stably sorts the target vector and the detection vector with respect to the classification destination vector, thereby creating a target vector after classifying each element to the classification destination within the group, and a group information vector representing the last element within the classified group.

[0012] <The Effects of the Invention>

[0013] It can reduce computation time in cases where grouping is performed through secret computation. Attached Figure Description

[0014] Figure 1 is a diagram illustrating an example of the functional configuration of the secret grouping device according to this embodiment.

[0015] Figure 2 is a diagram illustrating an example of the hardware configuration of the secret packet device according to this embodiment.

[0016] Figure 3 is a flowchart illustrating an example of the secret grouping process according to this embodiment. Detailed Implementation

[0017] The following describes one embodiment of the present invention. In this embodiment, a secret grouping device 10 is described, which can effectively perform grouping when further grouping data grouped by secret computation (i.e., data grouped by hiding inputs or outputs) by secret computation. It should be noted that in this embodiment, grouping where inputs or outputs are hidden using secret computation is also referred to as secret grouping. In secret grouping, the size of each group (i.e., the number of data belonging to each group) is also hidden.

[0018] <Marking Method>

[0019] First, the various marking methods will be explained. It should be noted that the following also describes marking methods that may not be used in this embodiment.

[0020] The value that is hidden by encryption or secret distribution is called the hidden value of a, and is denoted as [a]. In the case where a is hidden by secret distribution, it is assumed that [a] refers to the set of secret distribution fragments possessed by each secret computing device.

[0021] ·recovery

[0022] The process of taking the hidden value [a] of a as input and calculating the value c = a is described as follows:

[0023] c←Open([a]).

[0024] Arithmetic operations

[0025] In addition, subtraction, and multiplication, the hidden values ​​[a] and [b] of two values ​​a and b are used as input to calculate the hidden values ​​[c1], [c2], and [c3] of the results c1, c2, and c3 of a+b, ab, and ab, respectively. The execution of each addition, subtraction, and multiplication operation is described as follows:

[0026] [c1]←Add([a],[b])

[0027] [c2]←Sub([a],[b])

[0028] [c3]←Mul([a],[b]).

[0029] Without causing misunderstanding, Add([a],[b]), Sub([a],[b]), and Mul([a],[b]) will be abbreviated as [a]+[b], [a]-[b], and [a]×[b], respectively.

[0030] ·Compare

[0031] In the comparison operation, the hidden values ​​[a] and [b] of two values ​​a and b are used as input, and the hidden values ​​[c1], [c2], and [c3] of the truth values ​​c∈{0,1} for a=b, a≤b, and a<b are calculated. The truth value is 1 when it is true and 0 when it is false. The execution of the comparison operation for a=b, a≤b, and a<b is described as follows:

[0032] [c1]←EQ([a],[b])

[0033] [c2]←LE([a],[b])

[0034] [c3]←LT([a],[b]).

[0035] ·choose

[0036] In the selected operation, the hidden value [c] of the truth value c∈{0,1} and the hidden values ​​[a] and [b] of two values ​​a and b are used as input to calculate the operation that satisfies the following condition.

[0037] [Number 1]

[0038]

[0039] The hidden value of d[d]. The execution of this operation is described as...

[0040] [d]←IfElse([c],[a],[b]).

[0041] This operation can be performed by...

[0042] [d]←[c]×([a]-[b])+[b]

[0043] To achieve this.

[0044] <Functional Composition>

[0045] Next, the functional configuration of the secret packet device 10 according to this embodiment will be described with reference to FIG1. ​​FIG1 is a diagram showing an example of the functional configuration of the secret packet device 10 according to this embodiment.

[0046] As shown in FIG1, the secret grouping device 10 according to this embodiment includes an input unit 101, a vector calculation unit 102, a stable sorting unit 103, an output unit 104, and a storage unit 105.

[0047] Storage unit 105 stores various types of data used for secret grouping (i.e., hidden data). Here, it is assumed that this various data includes data consisting of multiple elements that are objects of grouping, a group information vector indicating which group each element in the data is classified into, and a classification destination vector indicating the classification destination when each element in the data is classified into a more refined group within the group. Hereinafter, it is assumed that the data consisting of multiple elements that are objects of grouping is called a data vector, in which elements belonging to the same group are arranged in consecutive positions. Furthermore, it is assumed that the group information vector contains information indicating whether each element of the data vector is an endpoint (boundary) of a group; if an element of the data vector located at the same position is an endpoint of a group, it is set to 1; otherwise, it is set to 0.

[0048] For example, suppose the data vector and the group information vector are represented as [v] and [g], respectively, and [v] and [g] are represented as follows.

[0049] [v]=(3,2,4,5,1,6,3,2) T

[0050] [g]=(0,1,1,0,0,1,0,1) T

[0051] It should be noted that T is the symbol for transpose.

[0052] In this case, it means that the first and second elements of the data vector [v] belong to group 1, the third element belongs to group 2, the fourth to sixth elements belong to group 3, and the seventh to eighth elements belong to group 4. Additionally, it means that the second element of the data vector [v] is an endpoint (boundary) of group 1, similarly the third element is an endpoint of group 2, the sixth element is an endpoint of group 3, and the eighth element is an endpoint of group 4.

[0053] Additionally, for example, suppose the classification destination vector is [f], which is represented by the following.

[0054] [f]=(1,2,1,2,2,1,2,2) T

[0055] In this case, the classification destination vector [f] represents: when classifying to a more refined group within the current group, the classification destination of the first element of the data vector [v] is 1, and the classification destination of the second element is 2. Similarly, it represents: the classification destination of the third element is 1, the classification destination of the fourth element is 2, the classification destination of the fifth element is 2, the classification destination of the sixth element is 1, the classification destination of the seventh element is 2, and the classification destination of the eighth element is 2.

[0056] The input unit 101 inputs a data vector consisting of multiple elements that are objects of secret grouping, and a group information vector representing the current grouping of these multiple elements. In addition, the input unit 101 inputs a classification destination vector representing the classification destination when classifying the multiple elements into more refined groups within the group.

[0057] The vector calculation unit 102 uses the data vector, group information vector, and classification target vector to calculate the detection vector of the last element (i.e., the element that becomes the endpoint (boundary) of each classification target) detected in each group.

[0058] The stable sorting unit 103 performs a stable sorting of the data vector and the detection vector using the classification objective vector. As a result, it obtains the classified data vector after classifying each element of the data vector into a more refined group within the group, and the classified group information vector representing that group (i.e., grouping according to the more refined group).

[0059] The output unit 104 outputs the classified data vector and the classified group information vector. It should be noted that the output unit 104 can output the classified data vector and the classified group information vector to any predetermined output destination (e.g., storage unit 105, etc.).

[0060] <Hardware Components>

[0061] Next, the hardware configuration of the secret packet device 10 according to this embodiment will be described with reference to FIG2. FIG2 is a diagram showing an example of the hardware configuration of the secret packet device 10 according to this embodiment.

[0062] As shown in Figure 2, the secret packet device 10 according to this embodiment is implemented using the hardware configuration of a general computer or computer system, and includes an input device 201, a display device 202, an external I / F 203, a communication I / F 204, a processor 205, and a memory device 206. These hardware components are connected in a communicative manner via a bus 207.

[0063] Input device 201 is, for example, a keyboard, mouse, or touch panel. Display device 202 is, for example, a monitor. It should be noted that the secret packet device 10 may not have at least one of the input device 201 and display device 202.

[0064] The external I / F 203 is an interface between the recording medium 203a and other external devices. The secret packet device 10 can read or write to the recording medium 203a via the external I / F 203. The recording medium 203a may store, for example, one or more programs for implementing the various functional units (input unit 101, vector calculation unit 102, stable sorting unit 103, and output unit 104) of the secret packet device 10.

[0065] It should be noted that the recording medium 203a includes, for example, CD (Compact Disc), DVD (Digital Versatile Disk), SD memory card (Secure Digital memory card), USB (Universal Serial Bus) memory card, etc.

[0066] Communication I / F204 is an interface used to connect the secret packet device 10 to a communication network. It should be noted that one or more programs for implementing the various functional units of the secret packet device 10 can be obtained (downloaded) from a predetermined server device or the like via Communication I / F204.

[0067] The processor 205 is, for example, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). The various functional units of the secret packet device 10 are implemented, for example, by having the processor 205 execute one or more programs stored in the memory device 206, etc.

[0068] The memory device 206 can be, for example, various storage devices such as HDD (Hard Disk Drive), SSD (Solid State Drive), RAM (Random Access Memory), ROM (Read Only Memory), or flash memory. The storage unit 105 of the secret packet device 10 can be implemented using the memory device 206, for example. It should be noted that the storage unit 105 can be implemented using, for example, a storage device connected to the secret packet device 10 via a communication network.

[0069] The secret packet device 10 according to this embodiment, having the hardware configuration shown in FIG2, is capable of performing various processes. It should be noted that the hardware configuration shown in FIG2 is an example, and the secret packet device 10 may also have other hardware configurations. For example, the secret packet device 10 may have multiple processors 205 or multiple memory devices 206.

[0070] <Secret Group Processing>

[0071] Next, referring to FIG3, the secret grouping process will be described in the case where the elements of the data vector are secretly grouped, and these elements are secretly grouped into more refined groups. FIG3 is a flowchart showing an example of the secret grouping process according to this embodiment. It should be noted that when the elements of the data vector have not yet been grouped (i.e., when secret grouping is performed for the first time), it can be regarded as the elements being grouped into one group and the following secret grouping process being performed. In this case, the group information vector is a vector in which only the last element is 1 and the other elements are 0.

[0072] First, the input unit 101 inputs a data vector and a group information vector (step S101). In the following text, as an example, it is assumed that the data vector is...

[0073] [v]=(3,2,4,5,1,6,3,2) T .

[0074] Furthermore, assuming the group information vector is

[0075] [g]=(0,1,1,0,0,1,0,1) T .

[0076] Next, the input unit 101 inputs the classification destination vector (step S102). In the following text, as an example, assume the classification destination vector is...

[0077] [f]=(1,2,1,2,2,1,2,2) T .

[0078] Next, the vector calculation unit 102 calculates the detection vector of the element that becomes the endpoint of each classification destination in each group among the elements of the detected data vector (step S103). This detection vector is calculated through the following steps 1 to 2.

[0079] Step 1: For each possible value that can be considered a classification destination, calculate the classification destination unit detection vector, which identifies the element that becomes the endpoint of the classification destination within the same group. The classification destination unit detection vector is a vector in which the element in the data vector that is at the same position as the element that becomes the endpoint of the classification destination within the same group is set to 1, and all other elements are set to 0.

[0080] For example, if the possible value that can be taken as the classification destination is "2", firstly, the vector calculation unit 102 calculates [e2]←EQ([f],2) to obtain the following [e2].

[0081] [e2]=(0,1,0,1,1,0,1,1) T

[0082] Next, the vector calculation unit 102 calculates the cumulative sum from bottom to top within the group represented by the group information vector [g], and obtains the following [x2].

[0083] [x2]=(1,1,0,2,1,0,2,1) T

[0084] It should be noted that calculating the cumulative sum from the bottom up within a group means calculating the cumulative sum sequentially upwards (forwards) from the elements below (the elements following the group).

[0085] Next, the vector calculation unit 102 obtains the following [k2] by [e2]×[x2].

[0086] [k2]=(0,1,0,2,1,0,2,1) T

[0087] Then, the vector calculation unit 102 calculates [t2]←EQ([k2],1) to obtain the following [t2].

[0088] [t2]=(0,1,0,0,1,0,0,1) T

[0089] [t2] is the classification destination unit detection vector corresponding to classification destination "2". This classification destination unit detection vector [t2] is the vector that detects the endpoints (i.e., the last elements) of the elements in the data vector that are classified to classification destination "2" within each group. That is, the aforementioned classification destination unit detection vector [t2] indicates that the second element of the data vector [v] is the last element (i.e., the endpoint) of the elements classified to classification destination "2" in the first group. Similarly, it indicates that the fifth element of the data vector [v] is the last element of the elements classified to classification destination "2" in the third group. Likewise, it indicates that the eighth element of the data vector [v] is the last element of the elements classified to classification destination "2" in the fourth group.

[0090] Similarly, for example, if the possible value that can be taken as the classification destination is "1", firstly, the vector calculation unit 102 calculates [e1]←EQ([f],1) to obtain the following [e1].

[0091] [e1]=(1,0,1,0,0,1,0,0) T

[0092] Next, the vector calculation unit 102 calculates the cumulative sum from bottom to top within the group represented by the group information vector [g], and obtains the following [x1].

[0093] [x1]=(1,0,1,1,1,1,0,0) T

[0094] Next, the vector calculation unit 102 obtains the following [k1] by [e1]×[x1].

[0095] [k1]=(1,0,1,0,0,1,0,0) T

[0096] Then, the vector calculation unit 102 calculates [t1]←EQ([k1],1), and obtains the following [t1].

[0097] [t1]=(1,0,1,0,0,1,0,0) T

[0098] [t1] is the classification destination unit detection vector corresponding to classification destination "1". This classification destination unit detection vector [t1] is the vector that detects the endpoints (i.e., the last elements) of the elements in the data vector that are classified to classification destination "1" within each group. That is, the aforementioned classification destination unit detection vector [t1] indicates that the first element of the data vector [v] is the last element (i.e., the endpoint) of the elements classified to classification destination "1" in the first group. Similarly, it indicates that the third element of the data vector [v] is the last element classified to "1" in the second group. Likewise, it indicates that the sixth element of the data vector [v] is the last element classified to "1" in the third group.

[0099] Step 2: Calculate the sum of all classification destination unit detection vectors as the detection vector.

[0100] That is, for example, when the above-mentioned classification destination unit detection vectors [t1] and [t2] are obtained, the vector calculation unit 102 obtains the following detection vector [t] by [t]=[t1]+[t2].

[0101] [t]=(1,1,1,0,1,1,0,1) T

[0102] The detection vector [t] is a vector that detects the elements in the data vector that are the endpoints of the respective classification destinations "1" and "2" within each group.

[0103] Next, the stable sorting unit 103 performs stable sorting on the data vector and detection vector respectively using the classification target vector to obtain the classified data vector and group information vector (step S104).

[0104] That is, for example, the stable sorting unit 103 performs a stable sorting of the data vector [v] according to the ascending order of the elements of the classification destination vector [f] to obtain the following [v'].

[0105] [v']=(3,4,6,2,5,1,3,2) T

[0106] [v'] is the classified data vector.

[0107] Similarly, for example, the stable sorting unit 103 performs a stable sorting of the detection vector [t] according to the ascending order of the elements of the classification destination vector [f] to obtain the following [g'].

[0108] [g']=(1,1,1,1,0,1,0,1) T

[0109] [g'] is the group information vector after classification.

[0110] Then, the output unit 104 outputs the classified data vector and the classified group information vector (step S105).

[0111] Summary

[0112] As described above, the secret grouping apparatus 10 according to this embodiment, when grouping multiple elements by secret computation, maintains the grouped elements in a continuous position and also retains information representing the boundaries of each group. Then, when classifying to a more refined group, after detecting the endpoints of each classification destination within each group, the detection results are stably sorted according to the classification destination, thereby obtaining information representing the boundaries of the new, more refined group. Thus, the secret grouping apparatus 10 according to this embodiment can reduce the computation time when grouping multiple elements by secret computation. Specifically, when grouping the elements of a vector consisting of n elements by secret computation, in the prior art, the overall computation time required is Θ(n... 2 The computation time of Θ(nlogn) can be reduced to Θ(nlogn) in the secret grouping device 10 according to this embodiment. It should be noted that the secret grouping device 10 according to this embodiment can be applied, for example, to grouping the data sets at each node when learning a decision tree through secret computation.

[0113] This invention is not limited to the specific embodiments disclosed above, and various modifications, alterations, or combinations with known technologies can be made without departing from the description in the claims.

[0114] Symbol Explanation

[0115] 10 Secret Grouping Devices

[0116] 101 Input Section

[0117] 102 Vector Computation Department

[0118] 103 Stable sorting section

[0119] 104 Output Section

[0120] 105 Storage Department

[0121] 201 Input Device

[0122] 202 Display device

[0123] 203 External I / F

[0124] 203a Recording Media

[0125] 204 Communication I / F

[0126] 205 processor

[0127] 206 Memory devices

[0128] 207 bus.

Claims

1. A secret grouping device for classifying multiple elements into one or more groups through secret computation, the secret grouping device comprising: The input unit inputs a target vector in which the multiple elements belonging to the same group are arranged in a continuous manner, a group information vector representing the last element in the group, and a classification destination vector representing the classification destination of each element in the group; the detection vector calculation unit uses the target vector, the group information vector, and the classification destination vector to calculate the detection vector representing the last element among the elements classified to the same classification destination in the group. The classification department stably sorts the target vector and the detection vector with respect to the classification destination vector, thereby creating a target vector that classifies each element to the classification destination within the group, and a group information vector representing the last element within the classified group.

2. The secret grouping device according to claim 1, wherein, The group information vector is a vector in which the element in each element constituting the target vector that is in the same position as the last element of the same group is set to 1, and the elements that are in the same position as the last element are set to 0.

3. The secret grouping device according to claim 1 or 2, wherein, The detection vector calculation unit calculates, for each possible value that can be regarded as the classification destination, the classification destination unit detection vector representing the last element in the group classified into the classification destination corresponding to the possible value; and calculates the sum of the classification destination unit detection vectors with respect to all the possible values, thereby calculating the detection vector.

4. The secret grouping device according to claim 3, wherein, The detection vector calculation unit calculates a first vector representing the result of the comparison operation by performing a comparison operation between each element constituting the classification destination vector and the possible values; calculates a second vector by calculating a cumulative sum for each element constituting the first vector in the order from the last element to the first element in the group; calculates a third vector by calculating the product of the first vector and the second vector; and calculates the classification destination unit detection vector by performing a comparison operation between each element constituting the third vector and 1.

5. A secret grouping system for classifying multiple elements into one or more groups through secret computation, the secret grouping system comprising: The input unit inputs a target vector in which the multiple elements belonging to the same group are arranged in a continuous manner, a group information vector representing the last element in the group, and a classification destination vector representing the classification destination of each element in the group; the detection vector calculation unit uses the target vector, the group information vector, and the classification destination vector to calculate the detection vector representing the last element among the elements classified to the same classification destination in the group. The classification department stably sorts the target vector and the detection vector with respect to the classification destination vector, thereby creating a target vector that classifies each element to the classification destination within the group, and a group information vector representing the last element within the classified group.

6. A secret grouping method for classifying multiple elements into one or more groups by secret computation, wherein a computer performs the following steps: an input step, inputting a target vector in which elements belonging to the same group are arranged in a continuous manner, a group information vector representing the last element in the group, and a classification destination vector representing the classification destination of each element in the group; a detection vector calculation step, using the target vector, the group information vector, and the classification destination vector, calculating a detection vector representing the last element among the elements classified to the same classification destination in the group; and a classification step, creating a target vector after classifying each element to the classification destination in the group, and a group information vector representing the last element in the classified group, by stably sorting the target vector and the detection vector with respect to the classification destination vector.

7. A program product comprising a program for enabling a computer to function as a secret packet device according to any one of claims 1 to 4.

Citation Information

Patent Citations

  • Secure aggregate maximum value system, secure aggregate minimum value system, secure computation device, secure aggregate maximum value method, secure aggregate minimum value method, and program

    WO2019208485A1