WO2021149518A1 - 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム - Google Patents
秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム Download PDFInfo
- Publication number
- WO2021149518A1 WO2021149518A1 PCT/JP2021/000494 JP2021000494W WO2021149518A1 WO 2021149518 A1 WO2021149518 A1 WO 2021149518A1 JP 2021000494 W JP2021000494 W JP 2021000494W WO 2021149518 A1 WO2021149518 A1 WO 2021149518A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- secret calculation
- conversion
- unit
- encryption
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
Definitions
- This disclosure relates to a secret calculation conversion device, a secret calculation system, a secret calculation conversion method, and a secret calculation conversion program.
- machine learning is being used for the purpose of analyzing sensitive data such as personal information.
- an engineer called by a name such as a data scientist applies a machine learning library (also referred to as an "AI library") according to a purpose or application, and performs data analysis using machine learning.
- AI library also referred to as an "AI library”
- Patent Document 1 uses a cryptographic function that has quasi-identical properties for addition and subtraction, and is based on public key cryptography that can perform addition, subtraction, multiplication, and division operations in the encrypted state. The technology related to secret calculation is disclosed.
- the present disclosure has been made to solve the above problems, and an object of the present disclosure is to provide a conversion device for secret calculation that converts input data into an input format compatible with secret calculation.
- the secret calculation conversion device includes an acquisition unit that acquires the target data of the secret calculation, a storage unit that stores a corresponding table that defines an input format for performing the secret calculation, and a storage unit. It includes a conversion processing unit that converts the acquired target data into secret calculation data according to a correspondence table, and an output unit that outputs secret calculation data.
- the secret calculation system is a system including a processing request unit for sending a processing request for the target data of the secret calculation, a conversion unit for secret calculation, and a secret calculation execution unit.
- the conversion unit for secret calculation has an acquisition unit that acquires target data via a processing request unit, a storage unit that stores a correspondence table that defines an input format for performing secret calculation, and a target acquired according to the correspondence table. It includes a conversion processing unit that converts data into secret calculation data, and an output unit that outputs secret calculation data to a secret calculation execution unit.
- the secret calculation conversion method is a method of converting the target data of the secret calculation into the secret calculation data
- the conversion method is a computer including a control unit and a storage unit.
- the control unit corresponds to the step of acquiring the target data of the secret calculation by the control unit and the step of storing the corresponding table in the storage unit in which the control unit defines the input format for performing the secret calculation.
- a step of converting the acquired target data into secret calculation data and a step of the control unit outputting the secret calculation data are provided.
- the secret calculation conversion program causes the computer to execute the secret calculation conversion method.
- the input data can be converted into an input format compatible with secret calculation.
- the secret calculation system is a system for executing a secret calculation that can be calculated while being encrypted, and automatically converts the target data of the secret calculation into the secret calculation data for performing the secret calculation. , Perform secret calculations.
- the secret calculation system automatically converts the learning model generated by applying to the AI library into an input format applicable to the secret calculation library, and applies it to the secret calculation library. This makes it possible to perform arithmetic processing such as data analysis based on a learning model while ensuring security by using an existing library even if the user does not have advanced expertise in secret calculation and AI.
- FIG. 1 is a conceptual diagram of the secret calculation system 10 according to the present embodiment. The configuration of the secret calculation system 10 according to the first embodiment will be described with reference to FIG.
- the secret calculation system 10 is a computer system including a storage unit 14 that is functionally connected to the processing unit 12.
- the processing unit 12 is one or more devices configured to execute instructions for software and / or firmware.
- the processing unit 12 may include one or more computer processors, or may include a distributed group of computer processors.
- the storage unit 14 is one or more devices configured to store computer-readable information.
- the storage unit 14 includes a memory 16 and a storage 18.
- the storage 18 is a non-temporary, computer-readable storage device that is not merely a temporary electronic or electromagnetic signal.
- the storage 18 may include one or more (non-temporary) storage media and / or a distributed group of (non-temporary) storage media.
- the secret calculation system 10 may include one or more computers, servers, workstations, and the like. They are independently interconnected, either directly or indirectly (including network connections). Thus, the secret computing system 10 may include processors, memory 16, and / or storage 18 that are located apart from each other.
- the secret calculation system 10 may be programmed to perform the method described herein, or may store instructions for performing the method.
- the storage unit 14 of the secret calculation system 10 stores an instruction, and when the instruction is executed by the processing unit 12, one or a plurality of methods described herein are performed on the secret calculation system 10. Let me.
- each block in a block diagram or flowchart may represent a module, segment, or part of code, which is one for performing one or more specific logical functions. Or multiple executable instructions.
- the functions described in the blocks may be performed in an order different from that shown. For example, the functions of two blocks shown in succession may be performed substantially simultaneously or in reverse order, depending on the function.
- FIG. 2 is a configuration diagram showing a module in the secret calculation system 10 according to the present embodiment.
- the functional configuration of the secret calculation system 10 will be described with reference to FIG.
- the module generally refers to parts such as software (computer program, hereinafter may be simply referred to as "program") and hardware that can be logically separated. Therefore, the module in this embodiment refers not only to the module in the program but also to the module in the hardware configuration. Therefore, in the present embodiment, a computer program for functioning as those modules (a program for causing the computer to execute each procedure, a program for causing the computer to function as each means, and each function for the computer). It also serves as an explanation of the program), system and method for realizing the above.
- the modules may have a one-to-one correspondence with the functions, but in the implementation, one module may be configured by one program, a plurality of modules may be configured by one program, and conversely, one module may be configured. May be composed of a plurality of programs. Further, the plurality of modules may be executed by one computer, or one module may be executed by a plurality of computers by computers in a distributed or parallel environment. In addition, one module may include another module.
- connection is used not only for physical connection but also for logical connection (data transfer, instruction, reference relationship between data, etc.).
- Predetermined means that it is determined before the target process, not only before the process according to the present embodiment starts, but also after the process according to the present embodiment starts. However, if it is before the target process, it is used with the intention that it is determined according to the situation / state at that time or according to the situation / state up to that point.
- a system or device is configured by connecting a plurality of computers, hardware, devices, etc. by communication means such as a network (including a one-to-one correspondence communication connection), and one computer, hardware, device, etc. It also includes cases where it is realized by such means.
- communication means such as a network (including a one-to-one correspondence communication connection), and one computer, hardware, device, etc. It also includes cases where it is realized by such means.
- “Device” and "system” are used as synonymous terms.
- the storage device here may include a hard disk, a RAM (Random Access Memory), an external storage medium, a storage device via a communication line, a register in a CPU (Central Processing Unit), and the like.
- the secret calculation system 10 includes a data input module 22, a machine learning module 24, a conversion module 26, and a secret calculation module 28.
- These modules also referred to as agents, programs, processes, procedures, may contain, for example, instructions and / or data stored in storage unit 14 and executed by processing unit 12.
- the secret calculation system 10 is configured to convert the learning model generated based on the AI library into an input format applicable to the secret calculation library, and perform the processing requested by the user based on the secret calculation library. ..
- the data input module 22 functions as a "processing request unit” and is configured to receive the data set 31 from the user (not shown) of the secret calculation system 10.
- the data set 31 includes sensitive data 33 (corresponding to “first data”) to be machine-learned and information 34 of the AI library applied in the machine learning module 24.
- the sensitive data 33 is a set of input data and output data for the input data, and includes a sufficient number of sets for so-called supervised learning. In this embodiment, the case where there is teacher data will be described, but this system can be applied even without teacher data.
- the AI library information 34 may be, for example, a source code created in advance using the AI library, or specifies an AI library (algorithm) to be applied among the AI libraries 25 stored in the machine learning module 24.
- Information to be input and parameter information to be input to the algorithm information to specify a machine learning method (decision tree, neural network, etc.), information on parameters required to execute the method, and them. It may be any combination of.
- the data set 31 includes a processing request 32 from a user who requests processing such as data analysis for the learning model 36 (described later), and requirement condition data 35 (described later) indicating conditions related to secret calculation specified by the user.
- processing such as data analysis for the learning model 36 (described later)
- requirement condition data 35 (described later) indicating conditions related to secret calculation specified by the user.
- this does not prevent the timing at which the processing request 32 and the requirement condition data 35 are input to the data input module 22 from the timing different from that of the sensitive data 33 and the information 34 of the AI library.
- the machine learning module 24 is configured to generate a learning model 36 based on the sensitive data 33 and the information 34 of the AI library. Further, the machine learning module 24 stores the AI library 25.
- AI library 25 includes algorithms for a plurality of machine learning. For example, Keras, TensorFlow, MXNet, Deeplearning4j, CNTK, Theano, ScikitLearn, NumPy, Scipy, Pandas, etc.
- Each machine learning algorithm is preferably configured to fit into a common interface so that the input data can be easily applied to the machine learning algorithm.
- the common interface defines a common format for data input / output, a common procedure call for each machine learning algorithm, and so on.
- machine learning algorithms have a common format dataset (eg, a particular file format configuration, a particular row or column specification, to output parameter values in the same manner or perform similar functions. It is configured to function against (configuration).
- each machine learning algorithm of the AI library 25 can be used in a similar manner without distinction. That is, the input data is applied to the algorithm as well, and the function is called as well.
- the AI library 25 is extensible and new algorithms can be added to make it available.
- the machine learning module 24 uses the sensitive data 33 as AI. Perform machine learning by preprocessing to a format applicable to the library.
- the learning model 36 is a learning model (corresponding to "second data related to machine learning for the first data") generated by machine learning executed on the sensitive data 33 in the machine learning module 24.
- the combination of the machine learning algorithm specification data 41 and the parameter information 43 is included.
- the specification data 41 is information on a machine learning algorithm, such as information on the type of algorithm to be applied and layer information. For example, when the algorithm is CNN (Convolutional Neural Network), the number of nodes.
- the layer information is such that the first layer is a convolutional layer, the second layer is an activation layer, the third layer is a pooling layer, the fourth layer is a fully connected layer, and the fifth layer is an activation layer.
- the parameter information 43 is a parameter (weight) learned by a machine learning algorithm, and in the case of CNN, for example, indicates a weight coefficient (coupling coefficient) of each layer.
- weight a parameter learned by a machine learning algorithm
- the above-mentioned specification data 41 and parameter information 43 are examples, and are not limited thereto.
- the conversion module 26 functions as a "conversion unit for secret calculation", is configured to acquire target data for secret calculation and convert it into data for secret calculation.
- the conversion module 26 converts the learning model 36 generated in the machine learning module 24 into an input format applicable to each algorithm of the secret calculation library 29 in the secret calculation module 28, and outputs it as secret calculation data 37.
- the secret calculation data 37 includes the regulation information 42 indicating the input format of the optimum encryption method based on the specification data 41 and the requirement condition data 35, and the regulation information 42 includes, for example, an algorithm used in machine learning or an algorithm. Parameters (layer information and architecture (layer structure and processing contents in each layer)), options (described later), encryption parameters, encryption type, format, granularity, encryption key, etc. are specified, but the source for executing secret calculation It may be code. Further, the secret calculation data 37 includes the encryption parameter information 44 in which the parameter information 43 is encrypted by the optimum encryption method.
- the conversion module 26 will be described in detail in FIG.
- the secret calculation module 28 functions as a "secret calculation execution unit” and is configured to execute predetermined arithmetic processing (four rules arithmetic, logical operation, etc.) while encrypting the input data.
- predetermined arithmetic processing four rules arithmetic, logical operation, etc.
- homomorphic encryption for example, lattice-based cryptography, Paillier cryptosystem, etc.
- multi-party calculation for example, Garbread) Circuit, etc.
- the secret calculation library 29 includes algorithms for a plurality of secret calculations.
- HElib which is a typical homomorphic encryption library
- SEAL SEAL
- FV-NFlib FHEW
- ObliVM ObliVM
- ABY libraries for multi-party calculation.
- each algorithm for secret calculation is configured to fit into a common interface so that the input data can be easily applied to the algorithm for the secret calculation, similar to the machine learning algorithm described above. It is preferable to be done.
- the secret calculation library 29 is extensible and new algorithms can be added to make it available.
- the secret calculation module 28 selects an algorithm based on the secret calculation data 37 output by the conversion module 26 from the secret calculation library 29, and executes an operation based on the processing request 32.
- FIG. 3 is a block diagram showing a functional configuration of the conversion module 26. The functional configuration of the conversion module 26 will be described with reference to FIG.
- the conversion module 26 corresponds to a "conversion device for secret calculation” and includes an acquisition unit 100, a storage unit 110, a conversion processing unit 120, and an output unit 130.
- the acquisition unit 100 is configured to acquire the target data of the secret calculation, and in the present embodiment, it is the learning model 36 described above.
- the learning model 36 includes specification data 41 and parameter information 43. Further, the acquisition unit 100 acquires the requirement condition data 35 indicating the conditions required for the secret calculation by the user of the secret calculation system 10.
- Requirement condition data 35 includes selective conditions for secret calculation and / or a plurality of scored evaluation conditions.
- the selective condition regarding the secret calculation is, for example, a condition regarding the number of servers or the like (architecture) that performs the secret calculation, and is one or a plurality of conditions.
- the evaluation condition includes at least one of the conditions relating to the processing speed, the security level, and the cost of the secret calculation
- the requirement condition data 35 includes a combination of at least two or more evaluation conditions.
- the user may enter the evaluation conditions via, for example, a graphical user interface (GUI) or by numerical values on a 10-point scale.
- GUI graphical user interface
- the storage unit 110 stores a corresponding table 112 that defines an input format indicating a cryptographic method for performing secret calculation.
- Correspondence table 112 includes algorithm correspondence table 113 and score correspondence table 114.
- the algorithm-corresponding table 113 is a table in which information on a machine learning algorithm is associated with one or more cryptographic methods that can be combined with the algorithm.
- the score correspondence table 114 is a table in which the conditions required for the user and the scores are given with respect to the type and format of the cipher among the cipher methods.
- the conversion processing unit 120 is configured to convert the learning model 36 into the secret calculation data 37 according to the correspondence table 112, and includes the conversion unit 121 and the encryption unit 122.
- the secret calculation data 37 includes the regulation information 42 and the encryption parameter information 44.
- the conversion unit 121 converts the specification data 41 into the specified information 42 of the input format for secret calculation based on the correspondence table 112 and the requirement condition data 35. Further, the encryption unit 122 encrypts the parameter information 43 by the encryption method specified by the input format to obtain the encryption parameter information 44.
- the encryption unit 122 acquires a key (public key) used for encryption from a key management server (not shown), and includes information indicating the key used for encryption in the specified information 42.
- the output unit 130 outputs the secret calculation data 37 converted by the conversion processing unit 120 to the secret calculation module 28 (see FIG. 2).
- FIG. 4 is a diagram showing an example of a learning model.
- 4 (a) and 4 (b) show examples of different learning models.
- the learning model is composed of specification data and parameter information.
- the specification data 401 includes the item “algorithm” and the item “layer information”, “CNN (convolutional neural network)” as the “algorithm”, and “first layer” as the “layer information”.
- Convolutional layer “ 2nd layer: activating layer ”,“ 3rd layer: pooling layer ”,“ 4th layer: fully connected layer ”,“ 5th layer: activating layer ”is described.
- the layer information is not limited to these, and includes information related to operations such as information on the activation function.
- the parameter information 403 includes the item "data file”, and the file name, path, etc. in which the parameters (weighting coefficient, etc.) in the network obtained by machine learning are described are described.
- the file name "weight03.param” is described.
- the specification data 411 includes the item “algorithm” and the item “tree depth”, with “decision tree” as the “algorithm” and “3” as the “tree depth”.
- the parameter information 413 describes a file name, a path, or the like in which the parameters (branch event, branch condition, etc.) of the decision tree obtained by machine learning are described.
- the file name "weight23.param” is described.
- FIG. 5 is a diagram showing an example of requirement condition data 35.
- the requirement condition data 35 is composed of a selective condition for secret calculation and a plurality of scored evaluation conditions.
- the item “number of servers” is described as “2" as the selective condition
- the item "speed” is described as "8”
- the “confidentiality” is described as "4"
- the "cost” is described as "3” as the evaluation condition.
- the selective condition is one of the "number of servers", but a plurality of items may be set as conditions.
- the evaluation conditions are not limited to "speed”, “confidentiality”, and “cost”, and various judgment criteria may be set. Further, each evaluation condition is input by the user, for example, by setting a larger numerical value as the priority is higher in the 10-step evaluation.
- the scoring is not limited to the 10-point evaluation, and may be in any format as long as the priorities can be distinguished. For example, the cost may be indicated by a specific amount of money, calculation resources, communication volume, etc., and the confidentiality may be indicated by a specific security level (P mark level, national confidentiality level, etc.).
- FIG. 6 is a diagram showing an example of an input screen of the requirement condition data 35.
- the input screen 500 shows an example of a graphical user interface (GUI) for inputting evaluation conditions of “speed”, “confidentiality”, and “cost” related to secret calculation.
- Condition weighting can be performed by the slide bars 502, 504, 506.
- the buttons 503, 505, and 507 are slid to the left and right, respectively. For example, the closer to the left end, the smaller the weight (lower priority), and the closer to the right end, the larger the weight (priority). Can be set high).
- “speed: 8", "confidentiality: 4", and "cost: 3" are shown.
- the input screen 510 shows an example of a GUI for inputting the number of servers.
- the input pull-down 512 is a pull-down for selecting the number of servers. For example, when inputting that the number of servers is 2, "2" is selected by the input pull-down 512.
- the interface for inputting selective conditions is not limited to the pull-down menu, and may be a radio button or text input.
- the input method of the requirement condition data 35 is not limited to the GUI as described above, and other methods such as a command line interface (CLI) may be used.
- CLI command line interface
- FIG. 7 is a diagram showing an example of the algorithm correspondence table 113.
- the algorithm-corresponding table 113 includes a cryptographic table 602 showing a plurality of cryptographic methods and a combination table 604 showing a combination of the above cryptographic methods applicable to the specification data of the machine learning algorithm.
- the encryption table 602 includes items “number”, “encryption type”, “encryption format”, “encryption particle size”, “architecture (number of servers)”, “option (bootstrap)”, “option (garbread circuit)”, Includes “option (lost communication)” etc. It should be noted that each item is an example and does not prevent the inclusion of items other than the above.
- the item “number” is described later as “encryption type”, “encryption format”, “encryption particle size”, “architecture (number of servers)”, “option (bootstrap)”, “option (garbread circuit)”, “option”. (Lost communication) ”is an identifier that identifies the encryption method.
- encryption type indicates the type of encryption, such as lattice-based cryptography, Perrier cryptography, and TFHE cryptography.
- the item "encryption format” indicates the format in each of the above-mentioned encryption types, and is classified according to the number of multiplications that can be handled, the problem that is the basis of the encryption, the expression format of the ciphertext, and the like.
- Encryption format indicates the format in each of the above-mentioned encryption types, and is classified according to the number of multiplications that can be handled, the problem that is the basis of the encryption, the expression format of the ciphertext, and the like.
- lattice-based cryptography there are formats such as BGV format, HEAAN format, and GSW format.
- the item "encryption particle size” is a unit of data to be encrypted, for example, for each bit, for each number, for each vector, and so on.
- the item "architecture (number of servers)” indicates the number of servers that perform secret calculations, and is indicated by a number greater than 1 or 1.
- bootstrap indicates whether or not bootstrap, which is a method for eliminating noise added to the ciphertext for each operation in lattice-based cryptography, is applied.
- Option indicates whether or not the Garbled circuit (GarbledCircuit), which divides the operation into bit operation circuits, encrypts them, and calculates them on multiple servers, is applied.
- the item "Option (lost communication)” indicates whether or not lost communication is applied, in which each server exchanges data while keeping information secret.
- the cryptographic methods combined in the above items have advantages and disadvantages, such as an increase in the amount of time calculation but a decrease in the amount of spatial calculation, a slow calculation speed, but the upper limit of the number of multiplications is not small, and the specification data of the machine learning algorithm.
- the optimum encryption method is determined based on the requirements entered by the user. The determination method will be described later.
- the number “1" of the encryption table 602 is "encryption type: lattice-based cryptography”, “encryption format: BGV”, “encryption granularity: vector”, “architecture (number of servers): 2", “option (boot). Strap): None ”,“ Option (Gerbread circuit): Yes ”,“ Option (lost communication): Yes ”, and the combination is a hybrid encryption method of homomorphic encryption and secret sharing.
- the number “2" of the encryption table 602 is "encryption type: lattice encryption", “encryption format: HEAAN”, “encryption granularity: matrix”, “architecture (number of servers): 3”, “option (bootstrap)”. : Yes ”,“ Option (Garbread circuit): No ”,“ Option (lost communication): Yes ”is indicated, and the combination is a homomorphic encryption method.
- the number “3" of the encryption table 602 is "encryption type", “encryption format”, “encryption granularity”, “option (bootstrap)” is “-(NULL)", “architecture (number of servers): 3".
- “Option (Lost communication): No” and the combination is a secret-sharing encryption method.
- the number "4" of the encryption table 602 is "encryption type: Perrier”, “encryption format:-(NULL)”, “encryption particle size: element”, "architecture (number of servers): 1", “option (boot). Strap): None ”,“ Option (Garbread circuit):-(NULL) ”,“ Option (lost communication): Yes ”.
- the combination table 604 includes items “algorithm”, “layer (number of multiplications)”, “activation layer”, and “combinationable cryptographic method number”. It should be noted that each item is an example and does not prevent the inclusion of items other than the above.
- the item “algorithm” indicates the algorithm name used in machine learning.
- the item “Layer (number of multiplications)” indicates the total number of multiplications performed in the linear transformation layer.
- the item “activation layer” indicates an activation function.
- the item “Cryptographic method number that can be combined” can be combined among the cryptographic methods shown in the cryptographic table 602 for the machine learning algorithms of the above-mentioned “algorithm”, “layer (multiplication count)", and “activation layer”. The number of the method is shown.
- the machine learning algorithm shown by "algorithm: NN (neural network)", “layer (multiplication count): 10 or more”, and “activation layer: ReLU” in the combination table 604 is the number of the encryption table 602. It shows that the encryption methods of "1", “2", “3", and "4" can be combined.
- FIG. 8 is a diagram showing an example of the score correspondence table 114.
- Each item of the above-mentioned encryption table 602 is associated with the processing speed, confidentiality, and cost of calculation.
- the system developer has previously scored “speed”, "confidentiality”, and “cost” respectively.
- the combination 801 of "encryption type: lattice” and “encryption format: BGV” is scored as “speed: 4", "confidentiality: 8", and “cost: 5". It has been shown that it is a cryptographic method with excellent confidentiality, although the calculation speed is inferior.
- the combination 804 of "encryption type: Perrier” and “encryption format:-(Null)” is scored as “speed: 9", “confidentiality: 4", and “cost: 5". It has been shown that it is a cryptographic method with excellent calculation speed.
- FIG. 9 is a diagram showing an example of the secret calculation data 37.
- the secret calculation data 900 is, for example, secret calculation data obtained by converting the learning model shown in FIG. 4A.
- the secret calculation data 900 is composed of the regulation information 902 and the encryption parameter information 904.
- the regulation information 902 is for executing the combination (encryption method) extracted from the encryption table 602 based on the requirement condition data 35, the specification data 41, and the like, and the option associated with the combination. Although it shows optional information, it shows layer information, architecture (layer structure and processing contents in each layer), parameters used in encryption (not shown), and information indicating the key used for encryption (not shown). Also includes. That is, the regulation information 902 indicates the data according to the input format for performing the secret calculation.
- the extracted combinations are "encryption type: lattice-based cryptography", “encryption format: BGV”, “encryption granularity: line”, "architecture (number of servers): 2", and “option (bootstrap)”. : None ”and“ Option (Gerbread circuit): Yes ”are shown, and it is a hybrid secret calculation configuration that combines lattice-based cryptography and Garbread circuit. Further, in the example of FIG. 9, it is shown that the option (garbread circuit) is executed in the second layer of the calculation procedure shown as the option information. Conditions are set in advance so that the "option” is applied to a layer in which the amount of calculation becomes large when homomorphic encryption is used or the calculation cannot be performed fundamentally.
- the amount of calculation increases depending on the type of activation layer (for example, sigmoid). Therefore, in the case of a calculation amount of a predetermined amount or more, a Garbread circuit is applied as an “option”.
- activation functions such as ReLu and layers such as max pooling, which require comparison operations, cannot be executed by homomorphic encryption, so "options" are applied.
- “options” may be applied or conditions may be set based on the amount of calculation. In principle, the "option” does not apply to linear layers such as fully connected layers.
- the application of the "option” may be configured so that the user can determine it as needed.
- the parameter information (weight) included in the learning model is encrypted by the encryption unit 122 according to the specified information 902 and converted into the encryption parameter information 904.
- FIG. 10 is a diagram showing another example of the secret calculation data 37.
- the secret calculation data 910 is, for example, secret calculation data obtained by converting the learning model shown in FIG. 4B.
- the secret calculation data 910 is composed of the regulation information 912 and the encryption parameter information 914.
- the regulation information 912 is for executing the combination (encryption method) extracted from the encryption table 602 based on the requirement condition data 35, the specification data 41, and the like, and the option associated with the combination. Although it shows optional information, it shows layer information, architecture (layer structure and processing contents in each layer), parameters used in encryption (not shown), and information indicating the key used for encryption (not shown). Also includes. That is, the regulation information 912 indicates the data according to the input format for performing the secret calculation.
- the extracted combinations are "encryption type: Perrier", “encryption granularity: element”, “architecture (number of servers): 3", “option (secret sharing): yes", “option (option). Lost communication): Yes ”, which is a hybrid secret calculation configuration that combines Perrier encryption and lost communication.
- "secret sharing” is executed between the servers 1, 2, and 3, and in step 3 of the calculation procedure, between servers 1 and 2.
- "Lost communication” is executed. Since "secret sharing” of "option” is executed on multiple servers, once the architecture (number of servers) is decided, how and on which server the information is divided is set in advance. Applies according to the conditions. Further, the number of servers required to execute the "option” may be specified as a selective condition by the user, or may be set in advance based on the "option”.
- the parameter information included in the learning model is encrypted by the encryption unit 122 according to the specified information 912 and converted into the encryption parameter information 914.
- FIG. 11 is a flowchart showing an example of processing of the conversion module 26. The processing in the conversion module 26 will be described with reference to FIGS. 11 and 3.
- step S102 the acquisition unit 100 acquires the requirement condition data 35 and the learning model 36.
- the learning model 36 is the target data of the secret calculation executed by the secret calculation module 28.
- the acquisition unit 100 sends the acquired requirement condition data 35 and the learning model 36 to the conversion processing unit 120.
- step S104 the conversion unit 121 of the conversion processing unit 120 refers to the algorithm-corresponding table 113 (encryption table 602 and combination table 604) of the storage unit 110 for the specification data 41 included in the learning model 36, and can apply the encryption. Extract the combination of methods.
- step S106 the conversion unit 121 refers to the requirement condition data 35 and the score correspondence table 114, and selects a combination of encryption methods suitable for the requirement condition data 35 from the combinations extracted in step S104.
- the method of selecting the combination of the encryption methods suitable for the requirement data 35 will be described later with reference to FIGS. 12 and 13.
- step S108 the conversion unit 121 converts the learning model 36 into the secret calculation data 37 based on the combination of the encryption methods selected in step S106. That is, the specification data 41 is converted into the specified information 42. Further, the encryption unit 122 encrypts the parameter information 43 according to the selected encryption method to obtain the encryption parameter information 44.
- step S110 the output unit 130 outputs the secret calculation data 37 including the regulation information 42 and the encryption parameter information 44.
- FIG. 12 is a diagram for explaining a method of selecting a combination that meets the selective conditions of the requirement condition data 35.
- lists 1002 and 1004, requirement data 1003 are shown.
- List 1002 shows, for example, a combination of encryption methods extracted by referring to the algorithm correspondence table 113 (encryption table 602 and combination table 604) in step S104 of FIG. That is, based on the specification data, the applicable encryption method is extracted from the encryption table 602 with reference to the combination table 604, and the encryption is identified by the numbers "# 01", "# 02", and "# 03". It is a method.
- the requirement condition data 1003 is scored as "number of servers: 1" as a selective condition from the user, "speed: 8", “confidentiality: 4", and "cost: 3" as evaluation conditions.
- List 1004 is an extraction of the encryption method that meets the selective conditions from the requirement condition data 1003 from the encryption methods in Listing 1002. That is, first, of the requirement condition data 1003, attention is paid to the “number of servers” which is a selective condition. Of the encryption methods in Listing 1002, the number “# 01” has a number of servers of "2" and does not match the number of servers "1" requested by the user, so the encryption method of the number "# 01" is excluded. Therefore, the combinations of the numbers "# 02" and "# 03" that meet the selective conditions are extracted from the list 1004. It should be noted that the combinations may be extracted so that the number (of the server) that meets the selective conditions has a range. For example, in FIG.
- FIG. 13 is a diagram for explaining a method of selecting a combination that matches the evaluation conditions of the requirement condition data 35.
- the score correspondence table 114 for each of the cipher types and formats, cipher particles and formats, options, etc., the speed, confidentiality, and cost are determined in advance (for example, the developer or the like) based on each feature. It is scored on a 10-point scale (by machine learning, etc.). Therefore, for each combination of encryption methods in Listing 1004, a score is calculated according to the evaluation conditions of the request condition data 1003 from the user based on the score correspondence table 114, and the encryption method having the highest score is set as the optimum encryption method. select.
- FIG. 13 for example, a method for calculating the score of the number “# 02” will be specifically described. As shown, the combinations of "encryption type”, “encryption format”, and “encryption grain size” are scored as “speed”, “confidentiality”, and “cost” for options 821 and 822. The weight average obtained by weighting each of these scores according to the evaluation conditions of the user is defined as the "score" of the cryptographic method. It goes without saying that the scoring method described with reference to FIG. 13 is an example and is not limited to this method.
- the encryption method of the combination of the number "# 03" is selected as the encryption method that satisfies the requirement data 35.
- the secret calculation system automatically converts the learning model generated by applying to the AI library into an input format applicable to the secret calculation library, and applies it to the secret calculation library. This makes it possible to perform arithmetic processing such as data analysis based on a learning model while ensuring security by using an existing library even if the user does not have advanced expertise in secret calculation and AI.
- the conversion module of the secret calculation system according to the first embodiment converts the machine-learned learning model into an input format applicable to the secret calculation library.
- the conversion module of the secret calculation system according to the present embodiment has an input format in which sensitive data (raw data) and machine learning information (specification data) executed in the secret calculation module can be applied to the secret calculation library. Convert. As a result, even if you do not have a high degree of expertise, you can use the existing secret calculation library to perform machine learning of sensitive data while ensuring security, and the machine learning can be used. Arithmetic processing such as data analysis based on the generated learning model can also be performed. Since the learning model can be generated with the sensitive data encrypted, the data can be handled in a more confidential environment.
- FIG. 14 is a configuration diagram showing a module in the secret calculation system 1410 according to the second embodiment.
- the secret calculation system 1410 includes a data input module 1422, a conversion module 26, and a secret calculation module 1428.
- the same reference numerals are given to the configurations common to those in FIG. 2, and the description thereof will be omitted.
- the secret calculation system 1410 converts the sensitive data to be machine-learned and the machine learning information into an input format applicable to the secret calculation library. Then, based on the secret calculation library, machine learning is executed to generate a learning model, and processing such as data analysis requested by the user is performed.
- the data input module 1422 functions as a "processing request unit” and is configured to receive the data set 1431 from a user (not shown) of the secret calculation system 1410.
- the data set 1431 includes the subtlety data 33 that is the target of machine learning and the specification data 1434 of the machine learning.
- the data set 1431 also includes a processing request 32 from the user for the secret calculation module 1428 and requirement condition data 35 for the secret calculation.
- the specification data 1434 is source code (binary file) generated by using the machine learning library, or information on algorithms and parameters used for machine learning. Further, the specification data 1434 includes an optimization algorithm (SGD, Adam, etc.) and a learning rate (a number from 0 to 1) used at the time of learning.
- the conversion module 26 converts the specification data 1434 into the specified information 1442 based on the corresponding table 112 (the combination table 604 (see FIG. 7) also includes, for example, an item indicating an optimization algorithm used at the time of learning). ..
- the default information 1442 includes, for example, an algorithm used in machine learning, parameters in the algorithm (layer information and architecture (layer structure and processing contents in each layer)), options, cipher parameters, cipher type, format, granularity, and cipher. The key, the optimization algorithm used during learning, the learning rate, etc. are specified.
- the encryption unit 122 encrypts the sensitive data 33 to obtain the encrypted sensitive data 1444. That is, the conversion module 26 converts the sensitive data 33 and the specification data 1434 into the secret calculation data 1437 including the specified information 1442 and the encrypted fine data 1444.
- the sensitive data 33 may not be encrypted in the conversion module 26, but may be encrypted in the secret calculation module 1428 according to the encryption method specified in the specified information 1442.
- the secret calculation module 1428 includes a learning unit 1425, a calculation unit 1427, and a secret calculation library 1429.
- the learning unit 1425 applies the secret calculation library 1429 based on the specified information 1442, and performs machine learning on the encrypted fine data 1444.
- the calculation unit 1427 performs calculations such as data analysis based on the learning model generated by the machine learning in response to the processing request 32.
- the sensitive data (raw data) and the machine learning information (specification data) executed in the secret calculation module are converted into an input format applicable to the secret calculation library. Even if you do not have a high degree of expertise, you can use the existing secret calculation library to perform machine learning of sensitive data, and you can generate a learning model with the sensitive data encrypted. Data can be handled in a highly confidential environment.
- the conversion module of the secret calculation system according to the first and second embodiments is based on a score calculated based on the requirement data and the score correspondence table from the combination of the cryptographic methods extracted by referring to the algorithm correspondence table. We have selected the best combination of cryptographic methods.
- the conversion module of the secret calculation system according to the present embodiment stores the requirement condition data and the combination of the above-selected encryption methods as learning data, and stores the correlation between the requirement condition data and the combination of the encryption methods. Generate a learned learning model. Then, by using this generated learning model instead of the score correspondence table, the optimum cipher method combination is selected from the cipher method combinations extracted by referring to the algorithm correspondence table without calculating the score. do.
- FIG. 15 is a functional block diagram of the conversion module 1526 according to the third embodiment.
- the conversion module 1526 shown in FIG. 15 includes a conversion processing unit 1520 and a learning unit 1500, and the storage unit 1510 stores the learning data 1515 and the learning model 1516. That is, the configuration related to the selection of the combination of the conversion module 26 of the secret calculation system 10 and the encryption method is different.
- the same reference numerals are given to the configurations common to those in FIG. 3, and the description thereof will be omitted.
- the conversion processing unit 1520 includes an encryption unit 1522 and a conversion unit 1521.
- the requirement condition data 35 and the combination of the optimum encryption method selected based on the requirement condition data 35 are stored as a pair.
- the learning unit 1500 learns the correlation between the requirement condition data (particularly the evaluation condition) and the combination of the cryptographic methods selected by the conversion unit 1521 (detailed in FIG. 16), and learns.
- the result is stored in the learning model 1516.
- the correlation is learned based on the combination selected by the user (a person having specialized knowledge such as secret calculation) or the like according to the requirement data. May be good.
- the learning model 1516 is data showing the correlation between the requirement condition data 35 and the combination of the encryption method.
- the conversion unit 1521 selects the optimum combination of cryptographic methods based on the learning model 1516 instead of the score correspondence table 114 for the combination of cryptographic methods extracted based on the algorithm correspondence table 113.
- FIG. 16 is a flowchart showing an example of processing of the conversion module 1526.
- the processing in the conversion module 1526 will be described with reference to FIG.
- the order of processing is an example, and the order is not limited.
- the learning model 1516 is generated (updated) after the learning data 1515 is stored in step S214, but is generated (updated) before using the learning model 1516 in step S210. It may be configured as.
- step S202 the acquisition unit 100 acquires the requirement condition data 35 and the learning model 36.
- the learning model 36 is the target data of the secret calculation executed by the secret calculation module 28.
- the acquisition unit 100 sends the acquired requirement condition data 35 and the learning model 36 to the conversion processing unit 1520.
- step S204 the conversion unit 1521 of the conversion processing unit 1520 sets the corresponding table 112 (that is, the algorithm correspondence table 113 (encryption table 602 and the combination table 604)) of the storage unit 1510 for the specification data 41 included in the learning model 36. Refer to it to extract a combination of applicable cryptographic methods.
- step S206 the conversion unit 1521 determines whether the amount of data to be paired with the combination of the requirement data and the encryption method stored in the learning data 1515 is a predetermined amount or more.
- the conversion unit 1521 is extracted in step S204 with reference to the requirement condition data 35 and the score correspondence table 114. From the combinations, a combination of encryption methods suitable for the requirement data 35 is selected. That is, when the learning data is extremely small, the learning accuracy is poor, so the combination of the encryption methods is selected by referring to the score correspondence table 114 as described in FIG. 11 instead of the learning model 1516.
- step S212 which will be described later, in order to receive the designation of the combination of encryption methods from the user, a plurality of combinations of encryption methods may be selected in descending order of goodness of fit of the conditions.
- step S210 the conversion unit 1521 selects a combination suitable for the requirement data 35 based on the learning model 1516. ..
- the combination selected by the conversion unit 1521 is presented to the user in step S212 described later, and a plurality of combinations are selected so that the user can select which one to apply for the conversion of the secret calculation data.
- step S212 the conversion unit 1521 presents the combination of encryption methods selected based on the learning model 1516 to the user via a display unit (not shown) or the like.
- the user determines whether the presented encryption method conforms to the requirement data 35, if necessary. This is because if the learning model 1516 is generated accurately, it is highly likely that it meets the user's requirements, but if it is not accurate, it may not meet the user's requirements. ..
- the cost, speed, confidentiality, etc. of each combination may also be displayed. Further, the combination of the unselected encryption methods may be shown to the user together with the cost, speed, confidentiality, and the like. As a result, the user can refer to the cost of each combination and the like, and can easily specify the combination of the encryption methods (described later).
- the conversion unit 1521 accepts from the user the designation of the combination of encryption methods to be applied for the conversion of the secret calculation data. Note that the process of step S212 may not be performed depending on the presence or absence of specialized knowledge and the degree of understanding in the user's cryptographic field and AI field. Since it is difficult for a user without specialized knowledge to determine which combination of cryptographic methods is appropriate, for such a user, the conversion unit 1521 selects one combination to convert the data for secret calculation. Determined as a combination of cryptographic methods to be applied to. For example, in step S210, the conversion unit 1521 does not select a plurality of combinations of encryption methods, but selects the combination having the highest correlation.
- the user may specify a combination of encryption methods other than the combination of the presented encryption methods. For example, if the user places the highest priority on cost as a requirement, but the displayed cost is within the budget (as described above) among the combinations of cryptographic methods that were not selected, other evaluation conditions. This is because it may be desirable to give priority to the combination of encryption methods.
- step S214 the conversion unit 1521 stores the requirement condition data 35 and the pair of combinations received in step S212 as learning data 1515 in the storage unit 1510. That is, since the learning data 1515 of the storage unit 1510 stores the data each time the combination of the encryption methods is selected, the amount of the learning data is increased and the accuracy of the generated learning model is improved.
- the combination of encryption methods specified by the user in step S212 may be scored so that the correlation becomes stronger by weighting or the like. This makes it possible to generate a learning model for a combination of cryptographic methods with higher accuracy.
- step S216 the learning unit 1500 generates a learning model 1516 from the learning data 1515.
- the order in which the learning model 1516 is generated is not limited to that after step S214.
- step S218 the conversion unit 1521 converts the learning model 36 into the secret calculation data 37 based on the combination of the selected encryption methods. That is, the specification data 41 is converted into the specified information 42. Further, the encryption unit 1522 encrypts the parameter information 43 according to the selected encryption method to obtain the encryption parameter information 44.
- step S220 the output unit 130 outputs the specified information 42 and the encryption parameter information 44 as the secret calculation data 37, and the process ends.
- Information such as performance (execution speed / time, space calculation amount, communication amount cost, number of instances, specifications, etc.) when the output secret calculation data 37 is executed in the secret calculation module 28 (see FIG. 2). ) May be fed back by the learning unit 1500 to generate the learning model 1516. That is, a learning model is generated based on the correlation between the combination of the requirement condition data 35 and the encryption method and the above performance. This makes it possible to accurately select the most suitable combination of encryption methods.
- the conversion unit 1521 uses the learning model 1516 as a substitute for the score correspondence table 114 for the combination of the encryption methods extracted based on the algorithm correspondence table 113, and obtains the optimum encryption method. Select a combination. This eliminates the need to calculate the score for each extracted combination, so that the amount of calculation can be reduced.
- 10 secret calculation system 12 processing unit, 14 storage unit, 16 memory, 18 storage, 22 data input module, 24 machine learning module, 25 AI library, 26, 1526 conversion module, 28, 1428 secret calculation module, 29 secret calculation library , 100 Acquisition unit, 110 Storage unit, 120, 1520 Conversion processing unit, 121, 1521 Conversion unit, 122, 1522 Encryption unit, 130 Output unit, 1425, 1500 Learning unit, 1427 Calculation unit, 1515 Learning data, 1516 Learning model
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
秘密計算の対象となる入力データを、秘密計算ライブラリに対応可能な入力フォーマットに変換する秘密計算用変換装置を提供する。 本発明に係る秘密計算用変換装置は、秘密計算の対象データを取得する取得部と、秘密計算を行うための入力フォーマットを規定した対応テーブルを記憶する記憶部と、対応テーブルに従って、取得した対象データを、秘密計算用データに変換する変換処理部と、秘密計算用データを出力する出力部と、を備える。
Description
本開示は、秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラムに関する。
人工知能技術の普及に伴い、個人情報などの機微データを分析する目的で機械学習が活用されるようになっている。例えばデータサイエンティスト等の名称で呼ばれる技術者は、目的や用途に応じた機械学習ライブラリ(「AIライブラリ」とも呼ぶ。)を適用し、機械学習を用いてデータ分析を行っている。
一方、情報漏洩防止のため、データを暗号化状態のまま演算することができる暗号技術が知られている。例えば、特許文献1には、加法・減法に対して準同型の性質を持つ暗号関数を利用し、暗号化状態のまま加法、減法、乗法、除法の演算をすることができる公開鍵暗号ベースの秘密計算に関する技術が開示されている。
機微データなど機密性の保持が求められるデータの分析は、上述のような暗号化状態のまま行われることが望ましい。従来は、秘密計算およびAIに関する専門知識を有する技術者が、事案に応じて、AIライブラリ等によって生成された学習モデルを最適な秘密計算用フォーマットに変換するなどして秘密計算ライブラリに適用できるよう対応していたため、時間と手間がかかり作業効率が悪かった。そこで、専門的な知識がなくとも、AIに関する入力データを秘密計算ライブラリに適用することができる技術(例えば、AIに関するソースコードを秘密計算可能なソースコードに変換することができる、もしくはAIに関する入力データを秘密計算ライブラリが受付可能なフォーマット(データ暗号化、その暗号方式、最適化された入力構造など)に変換することができる等)の開発が期待されている。
本開示は、上記課題を解決すべくなされたものであって、その目的は、入力データを秘密計算に対応可能な入力フォーマットに変換する秘密計算用変換装置を提供することである。
上記目的を達成するため、本開示に係る秘密計算用変換装置は、秘密計算の対象データを取得する取得部と、秘密計算を行うための入力フォーマットを規定した対応テーブルを記憶する記憶部と、対応テーブルに従って、取得した対象データを秘密計算用データに変換する変換処理部と、秘密計算用データを出力する出力部と、を備える。
上記目的を達成するため、本開示に係る秘密計算システムは、秘密計算の対象データに対する処理要求を送る処理要求部と、秘密計算用変換部と、秘密計算実行部と、を備えるシステムであって、秘密計算用変換部は、処理要求部を介して対象データを取得する取得部と、秘密計算を行うための入力フォーマットを規定した対応テーブルを記憶する記憶部と、対応テーブルに従って、取得した対象データを秘密計算用データに変換する変換処理部と、秘密計算用データを秘密計算実行部に出力する出力部と、を含む。
また、上記目的を達成するため、本開示に係る秘密計算用変換方法は、秘密計算の対象データを秘密計算用データに変換する方法であって、変換方法は、制御部および記憶部を備えるコンピュータにおいて実行され、制御部が、秘密計算の対象データを取得するステップと、制御部が、秘密計算を行うための入力フォーマットを規定した対応テーブルを記憶部に記憶するステップと、制御部が、対応テーブルに従って、取得した対象データを秘密計算用データに変換するステップと、制御部が、秘密計算用データを出力するステップと、を備える。
また、上記目的を達成するため、本開示に係る秘密計算用変換プログラムは、上記秘密計算用変換方法をコンピュータに実行させる。
本開示によれば、入力データを秘密計算に対応可能な入力フォーマットに変換することができる。
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。
(実施形態1の概要)
本実施形態に係る秘密計算システムは、暗号化したまま計算できる秘密計算を実行するためのシステムであり、秘密計算の対象データを、秘密計算を行うための秘密計算用データに自動的に変換し、秘密計算を行う。
本実施形態に係る秘密計算システムは、暗号化したまま計算できる秘密計算を実行するためのシステムであり、秘密計算の対象データを、秘密計算を行うための秘密計算用データに自動的に変換し、秘密計算を行う。
近年、個人情報などの機微データを機械学習させ、生成された学習モデルに基づいたデータ分析が行われている。一方、機微データなど機密性の保持が求められるデータ分析は、暗号化したまま行われることが望ましい。従来、機械学習や秘密計算では、ソフトウェア・ライブラリが利用されるが、AIライブラリによって生成された学習モデルを秘密計算ライブラリに適用するには、秘密計算およびAIに関する専門知識が必要であり、また、相応の変換コストがかかるため既存のライブラリを利用するのは容易ではなかった。
そこで、本実施形態に係る秘密計算システムは、AIライブラリに適用して生成された学習モデルを、秘密計算ライブラリに適用できる入力フォーマットに自動的に変換し、秘密計算ライブラリに適用させる。これにより、秘密計算およびAIに関する高度な専門知識を有していなくても、既存のライブラリを利用してセキュリティを担保しつつ学習モデルに基づくデータ分析等の演算処理を行うことができる。
(秘密計算システム10の構成)
図1は、本実施形態に係る秘密計算システム10の概念図である。図1を参照して、実施形態1に係る秘密計算システム10の構成について説明する。
図1は、本実施形態に係る秘密計算システム10の概念図である。図1を参照して、実施形態1に係る秘密計算システム10の構成について説明する。
秘密計算システム10は、処理ユニット12と機能的に接続する記憶ユニット14を含むコンピュータシステムである。
処理ユニット12は、ソフトウェアおよび/またはファームウェアのための命令を実行するように構成された1つ、または複数の装置である。処理ユニット12は、1つ、または複数のコンピュータプロセッサを含んでもよいし、コンピュータプロセッサの分散グループを含んでもよい。
記憶ユニット14は、コンピュータ可読情報を記憶するように構成された1つ、または複数の装置である。記憶ユニット14は、メモリ16と、ストレージ18を含む。ストレージ18は、非一時的であって、単なる一時的な電子信号や電磁信号ではない1つ又は複数のコンピュータ可読の記憶装置である。ストレージ18は、1つ、または複数の(非一時的な)ストレージ媒体、および/または、(非一時的な)ストレージ媒体の分散グループを含みうる。
秘密計算システム10は、1つ、または複数のコンピュータ、サーバ、ワークステーション等を含んでもよい。これらは、それぞれ独立して、直接又は(ネットワーク接続を含み)間接的に相互接続されている。したがって、秘密計算システム10は、互いに離れて設けられたプロセッサ、メモリ16、および/または、ストレージ18を含みうる。
秘密計算システム10は、本明細書で説明する方法を行うようにプログラムされてもよいし、当該方法を行うための命令を記憶していてもよい。秘密計算システム10の記憶ユニット14は、命令を記憶しており、当該命令は、処理ユニット12により実行されると、本明細書で説明する1つ、または複数の方法を秘密計算システム10に行わせる。
本明細書で説明するブロック図およびフローチャート等は、種々の例示的な実施形態による、システム、方法、及びプログラムの実現可能な実施態様を示す。この点において、ブロック図またはフローチャートにおける各ブロックは、モジュール、セグメント、または、コードの一部を表すこともあり、これらは、特定の1つ、または複数の論理機能を実行するための1つ、または複数の実行可能な命令である。なお、いくつかの代替の実施態様において、ブロックに記載した機能は、図示した順序とは異なる順序で実行してもよい。例えば、連続して示されている2つのブロックの機能は、その機能によっては、実質的に同時に行われてもよいし、逆の順序で行われてもよい。
(秘密計算システム10の機能構成)
図2は、本実施形態に係る秘密計算システム10内のモジュールを示す構成図である。図2を参照して、秘密計算システム10の機能構成について説明する。なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム、以下、単に「プログラム」と記載する場合もある。)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはプログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(計算機にそれぞれの手順を実行させるためのプログラム、計算機をそれぞれの手段として機能させるためのプログラム、計算機にそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、「保存する」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1つの計算機によって実行されてもよいし、分散又は並列環境における計算機によって1モジュールが複数の計算機で実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
図2は、本実施形態に係る秘密計算システム10内のモジュールを示す構成図である。図2を参照して、秘密計算システム10の機能構成について説明する。なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム、以下、単に「プログラム」と記載する場合もある。)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはプログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(計算機にそれぞれの手順を実行させるためのプログラム、計算機をそれぞれの手段として機能させるためのプログラム、計算機にそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、「保存する」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1つの計算機によって実行されてもよいし、分散又は並列環境における計算機によって1モジュールが複数の計算機で実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じて定まることの意を含めて用いる。
また、システム又は装置とは、複数の計算機、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つの計算機、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものであってもよい。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスク、RAM(Random Access Memory)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unit)内のレジスタ等を含んでいてもよい。
図2において、秘密計算システム10は、データ入力モジュール22と、機械学習モジュール24と、変換モジュール26と、秘密計算モジュール28とを備える。これらのモジュールは、エージェント、プログラム、プロセス、手順とも呼ばれ、例えば、記憶ユニット14に保存されており、処理ユニット12によって実行される命令、および/またはデータを含んでもよい。
秘密計算システム10は、AIライブラリに基づいて生成された学習モデルを、秘密計算ライブラリに適用できる入力フォーマットに変換し、秘密計算ライブラリに基づいてユーザから要求される処理を行うように構成されている。
データ入力モジュール22は、「処理要求部」として機能し、秘密計算システム10のユーザ(不図示)からデータセット31を受信するように構成されている。データセット31は、機械学習の対象となる機微データ33(「第1のデータ」に相当。)および、機械学習モジュール24において適用するAIライブラリの情報34を含む。
機微データ33は、入力データと、当該入力データに対する出力データのセットであり、いわゆる教師あり学習のために十分な数のセットが含まれている。なお、本実施形態では、教師データありの場合について説明するが、教師データなしであっても本システムは適用できる。
AIライブラリの情報34は、例えば、あらかじめAIライブラリを使って作成されたソースコードであってもよいし、機械学習モジュール24において記憶されているAIライブラリ25のうち適用するAIライブラリ(アルゴリズム)を指定する情報および当該アルゴリズムに入力するパラメータの情報であってもよいし、機械学習の手法(決定木や、ニューラルネットワークなど)を指定する情報や、当該手法の実行に必要なパラメータの情報、およびそれらのいかなる組合わせであってもよい。
また、データセット31は、学習モデル36(後述)に対するデータ分析などの処理を要求するユーザからの処理要求32や、ユーザから指定された秘密計算に関する条件を示す要求条件データ35(後述)を含むが、処理要求32および要求条件データ35がデータ入力モジュール22に入力されるタイミングを、機微データ33やAIライブラリの情報34と異なるタイミングとすることを妨げるものではない。
機械学習モジュール24は、機微データ33およびAIライブラリの情報34に基づいて学習モデル36を生成するよう構成されている。また、機械学習モジュール24は、AIライブラリ25を記憶している。
AIライブラリ25は、複数の機械学習のためのアルゴリズムを含む。例えば、Keras,Tensor Flow,MXNet,Deeplearning4j,CNTK,Theano,ScikitLearn,NumPy,Scipy,Pandasなどである。各機械学習アルゴリズムは、入力されたデータを、当該機械学習アルゴリズムに容易に適用できるようにするため、共通インターフェイスに適合するように構成されることが好ましい。共通インターフェイスは、データの入出力のための共通のフォーマット、各機械学習アルゴリズムのための共通手続呼出等を規定する。例えば、機械学習アルゴリズムは、同じ態様でパラメータ値を出力したり、同様の機能を実行するために、共通形式のデータセット(例えば、特定のファイル形式の構成、特定の行や列の指定を有する構成)に対して機能したりするように構成される。
したがって、AIライブラリ25の各機械学習アルゴリズムは、似た態様で区別なく用いることができる。すなわち、入力データはアルゴリズムに同様に適用され、関数も同様に呼び出される。さらに、AIライブラリ25は、拡張可能であり、新たなアルゴリズムを追加して、利用可能とすることができる。
機械学習モジュール24は、AIライブラリの情報34が、AIライブラリ25のうち適用するAIライブラリを指定する情報であったり、機械学習の手法を指定する情報であったりする場合は、機微データ33をAIライブラリに適用できる形式に前処理して、機械学習を行う。
学習モデル36は、機械学習モジュール24において機微データ33に対して実行された機械学習により生成された学習モデル(「第1のデータに対する機械学習に関連する第2のデータ」に相当。)であって、機械学習アルゴリズムの仕様データ41と、パラメータ情報43との組み合わせを含む。仕様データ41は、機械学習アルゴリズムの情報であって、適用するアルゴリズムの種類の情報や、層情報などであり、例えば、アルゴリズムが、CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)の場合は、ノード数や、第1層:畳み込み層、第2層:活性化層、第3層:プーリング層、第4層:全結合層、第5層:活性化層というような層情報である。また、例えば、アルゴリズムが決定木(ランダムフォレスト)の場合は、木の深さ(木の本数やグラディエントブーストなど、アンサンブル学習に必要な情報)であって、例えば、木の深さ:3という情報である。パラメータ情報43は、機械学習アルゴリズムにより学習されたパラメータ(重み)であって、例えば、CNNの場合は、各層の重み係数(結合係数)等を示す。また、例えば、決定木の場合は、木の数、木の深さ、各ノードの分岐事象、分岐条件やノードの構成情報等を示す。なお、上述した仕様データ41やパラメータ情報43は、一例であって、これらに限られないことは言うまでもない。
変換モジュール26は、「秘密計算用変換部」として機能し、秘密計算の対象データを取得し、秘密計算用データに変換するよう構成されている。変換モジュール26は、例えば、機械学習モジュール24において生成された学習モデル36を、秘密計算モジュール28において秘密計算ライブラリ29の各アルゴリズムに適用できる入力フォーマットに変換し、秘密計算用データ37として出力する。
秘密計算用データ37は、仕様データ41および要求条件データ35に基づいて最適な暗号手法の入力フォーマットを示した規定情報42を含み、規定情報42は、例えば、機械学習で用いたアルゴリズムや、アルゴリズムにおけるパラメータ(層情報やアーキテクチャ(層構造や各層での処理内容))、オプション(後述)、暗号のパラメータ、暗号の種類、形式、粒度、暗号鍵等を規定するが、秘密計算を実行するソースコードであってもよい。また、秘密計算用データ37は、当該最適な暗号手法によって、パラメータ情報43が暗号化された暗号化パラメータ情報44を含む。変換モジュール26については図3において詳述する。
秘密計算モジュール28は、「秘密計算実行部」として機能し、入力データを暗号化したまま、所定の演算処理(四則演算や論理演算等)を実行するよう構成されている。例えば、本実施形態では、データを暗号化したまま演算処理を行うことができる暗号技術である準同型暗号(例えば、格子暗号、ペリエ(Paillier)暗号など)や、マルチパーティ計算(例えば、ガーブレッド回路等)のアルゴリズムを用いる。秘密計算モジュール28は、秘密計算ライブラリ29を記憶している。
秘密計算ライブラリ29は、複数の秘密計算のためのアルゴリズムを含む。例えば、代表的な準同型暗号のライブラリであるHElibの他、SEAL,FV-NFlib,FHEWなどである。また、例えば、マルチパーティ計算のライブラリであるObliVMやABYなどである。なお、秘密計算のための各アルゴリズムは、上述の機械学習アルゴリズムと同様、入力されたデータを、当該秘密計算のためのアルゴリズムに容易に適用できるようにするため、共通インターフェイスに適合するように構成されることが好ましい。さらに、秘密計算ライブラリ29は、拡張可能であり、新たなアルゴリズムを追加して、利用可能とすることができる。
秘密計算モジュール28は、変換モジュール26で出力された秘密計算用データ37に基づいたアルゴリズムを秘密計算ライブラリ29から選択し、処理要求32に基づいた演算を実行する。
(変換モジュール26の機能構成)
図3は、変換モジュール26の機能構成を示すブロック図である。図3を参照して、変換モジュール26の機能構成について説明する。
図3は、変換モジュール26の機能構成を示すブロック図である。図3を参照して、変換モジュール26の機能構成について説明する。
変換モジュール26は、「秘密計算用変換装置」に相当し、取得部100と、記憶部110と、変換処理部120と、出力部130と、を備える。
取得部100は、秘密計算の対象データを取得するよう構成され、本実施形態では、上述の学習モデル36である。学習モデル36は、仕様データ41と、パラメータ情報43とを含む。また、取得部100は、秘密計算システム10のユーザが秘密計算に対して要求する条件を示す要求条件データ35を取得する。
要求条件データ35は、秘密計算に関する選択的条件および/またはスコア付けされた複数の評価条件を含む。秘密計算に関する選択的条件は、例えば、秘密計算を行うサーバ等(アーキテクチャ)の数に関する条件であり、1または複数の条件である。また、評価条件は、秘密計算の処理速度、セキュリティレベル、コストに関する条件のうちの少なくとも一つを含み、要求条件データ35は、少なくとも2つ以上の評価条件の組み合わせを含む。ユーザは、評価条件を、例えば、グラフィカル・ユーザ・インタフェース(GUI)を介して入力したり、10段階評価の数値によって入力したりしてもよい。
記憶部110は、秘密計算を行うための暗号手法を示す入力フォーマットを規定した対応テーブル112を記憶している。対応テーブル112は、アルゴリズム対応テーブル113と、スコア対応テーブル114とを含む。アルゴリズム対応テーブル113は、機械学習アルゴリズムの情報と、当該アルゴリズムと組み合わせ可能な1つ、または複数の暗号手法とが対応付けられたテーブルである。また、スコア対応テーブル114は、暗号手法のうちの暗号の種類や形式等について、ユーザに要求される条件とスコア付けされたテーブルである。
変換処理部120は、学習モデル36を、対応テーブル112に従って、秘密計算用データ37に変換するように構成され、変換部121と、暗号化部122とを含む。秘密計算用データ37は、規定情報42と暗号化パラメータ情報44とを含む。
より具体的には、変換部121は、対応テーブル112と、要求条件データ35とに基づいて、仕様データ41を、秘密計算用の入力フォーマットの規定情報42に変換する。また、暗号化部122は、当該入力フォーマットで規定される暗号手法でパラメータ情報43を暗号化し、暗号化パラメータ情報44とする。なお、暗号化部122は、鍵管理サーバ(不図示)から暗号化で用いる鍵(公開鍵)を取得し、暗号化で用いた鍵を示す情報を規定情報42に含ませる。
出力部130は、変換処理部120において変換された秘密計算用データ37を秘密計算モジュール28(図2参照)に出力する。
(データ構造)
以下、図4~図10を参照して、上述した各データのデータ構造について説明する。
図4は、学習モデルの一例を示す図である。図4(a)および図4(b)は、それぞれ異なる学習モデルの例を示している。上述したように、学習モデルは、仕様データおよびパラメータ情報から構成される。
以下、図4~図10を参照して、上述した各データのデータ構造について説明する。
図4は、学習モデルの一例を示す図である。図4(a)および図4(b)は、それぞれ異なる学習モデルの例を示している。上述したように、学習モデルは、仕様データおよびパラメータ情報から構成される。
図4(a)の例では、仕様データ401は、項目「アルゴリズム」と項目「層情報」とを含み、「アルゴリズム」として「CNN(畳み込みニューラルネットワーク)」、「層情報」として「第1層:畳み込み層」、「第2層:活性化層」、「第3層:プーリング層」、「第4層:全結合層」、「第5層:活性化層」が記載されている。なお、層情報は、これらに限られず、活性化関数の情報など演算に関する情報を含む。
また、パラメータ情報403は、項目「データファイル」を含み、機械学習によって求められたネットワーク内のパラメータ(重み係数など)が記載されたファイル名やパス等が記載される。図4(a)の例では、ファイル名「weight03.param」が記載されている。
図4(b)の例では、仕様データ411は、項目「アルゴリズム」と項目「木の深さ」とを含み、「アルゴリズム」として「決定木」、「木の深さ」として「3」が記載されている。また、パラメータ情報413は、上述したように、機械学習によって求められた決定木のパラメータ(分岐事象、分岐条件など)が記載されたファイル名やパス等が記載される。図4(b)の例では、ファイル名「weight23.param」が記載されている。
図5は、要求条件データ35の一例を示す図である。要求条件データ35は、秘密計算に関する選択的条件およびスコア付けされた複数の評価条件から構成される。図5の例では、選択的条件として項目「サーバ数」が「2」、評価条件として項目「速度」が「8」、「機密性」が「4」、「コスト」が「3」と記載されている。なお、図5の例では、選択的条件は、「サーバ数」の1つであるが、複数の項目を条件として設定してもよい。
評価条件は、「速度」、「機密性」、「コスト」に限られず、様々な判断基準を設定してもよい。また、各評価条件は、例えば、10段階評価で優先度が高いほど大きな数値を設定するなどしてユーザが入力する。なお、スコア付けは、10段階評価に限られず、優先度が区別できるものであれば、任意の形式であってよい。例えば、コストについて、具体的な金額や計算リソース、通信量等によって示したり、機密性について、セキュリティレベル(Pマークレベル、国家機密レベル等)を具体的に示したりしてもよい。
図6は、要求条件データ35の入力画面の一例を示す図である。図6において、入力画面500は、秘密計算に関する「速度」、「機密性」、「コスト」の評価条件を入力するための、グラフィカル・ユーザ・インタフェース(GUI)の一例を示している。スライドバー502,504,506によって、条件の重み付けを行うことができる。スライドバー502,504,506では、それぞれボタン503,505,507を左右にスライドさせて動かし、例えば、左端に近いほど重みを小さく(優先度を低く)、右端に近いほど重みを大きく(優先度を高く)設定することができる。図6の例では、「速度:8」、「機密性:4」、「コスト:3」を示している。スライドバーで重み付けを行うことによりユーザは柔軟な条件設定を行うことができ、条件を入力する際に有用である。
図6において、入力画面510は、サーバ数を入力するためのGUIの一例を示している。入力プルダウン512は、サーバ数を選択するためのプルダウンであり、例えば、サーバ数が2であることを入力する場合は、入力プルダウン512により「2」を選択する。なお、選択的条件を入力するためのインターフェイスはプルダウンに限られず、ラジオボタンや、テキスト入力であったりしてもよい。
なお、要求条件データ35の入力方法は、上述のようなGUIに限定されず、コマンドライン・インターフェース(CLI)等の他の方法を用いてもよいことは言うまでもない。
図7は、アルゴリズム対応テーブル113の一例を示す図である。アルゴリズム対応テーブル113は、複数の暗号手法を示す暗号テーブル602と、機械学習アルゴリズムの仕様データに適用可能な上記暗号手法の組み合わせを示す組み合わせテーブル604とを含む。
暗号テーブル602は、項目「番号」、「暗号種類」、「暗号形式」、「暗号粒度」、「アーキテクチャ(サーバ数)」、「オプション(ブートストラップ)」、「オプション(ガーブレッド回路)」、「オプション(紛失通信)」等を含む。なお、各項目は一例であって、上記以外の項目を含むことを妨げない。
項目「番号」は、後述する「暗号種類」、「暗号形式」、「暗号粒度」、「アーキテクチャ(サーバ数)」、「オプション(ブートストラップ)」、「オプション(ガーブレッド回路)」、「オプション(紛失通信)」の組み合わせで示される暗号手法を識別する識別子である。
項目「暗号種類」は、暗号の種類を示しており、例えば、格子暗号やペリエ暗号、TFHE暗号などである。
項目「暗号形式」は、上述の各暗号種類における形式を示しており、扱うことができる乗算の回数や、暗号のベースとなる問題、暗号文の表現形式などによって分類される。例えば、格子暗号の場合は、BGV形式、HEAAN形式、GSW形式等の形式がある。
項目「暗号粒度」は、暗号化を行うデータの単位であり、例えば、ビットごと、数字ごと、ベクトルごと、などである。
項目「アーキテクチャ(サーバ数)」は、秘密計算を行うサーバ数を示し、1または1より大きい数で示される。
項目「オプション(ブートストラップ)」は、格子暗号で演算ごとに暗号文に付加されるノイズを解消するための手法であるブートストラップ(bootstrapping)の適用の有無を示す。
項目「オプション(ガーブレッド回路)」は、演算をビット演算回路に分割し、それらを暗号化して複数サーバで計算するガーブレッド回路(Garbled Circuit))の適用の有無を示す。
項目「オプション(紛失通信)」は、各サーバが情報を秘匿しながらデータをやり取りする紛失通信の適用の有無を示す。
上記項目で組み合わされた暗号手法は、時間計算量が増えるものの空間計算量が減る、計算速度は遅くなるが、乗算回数の上限が小さくない、など一長一短の特徴があり、機械学習アルゴリズムの仕様データとユーザが入力する要求条件とに基づいて最適な暗号手法が決定される。決定方法については後述する。
図7において、暗号テーブル602の番号「1」は、「暗号種類:格子暗号」、「暗号形式:BGV」、「暗号粒度:ベクトル」、「アーキテクチャ(サーバ数):2」、「オプション(ブートストラップ):無」、「オプション(ガーブレッド回路):有」、「オプション(紛失通信):有」を示しており、当該組み合わせは、準同型暗号と秘密分散のハイブリッド型の暗号手法である。
また、暗号テーブル602の番号「2」は、「暗号種類:格子暗号」、「暗号形式:HEAAN」、「暗号粒度:行列」、「アーキテクチャ(サーバ数):3」、「オプション(ブートストラップ):有」、「オプション(ガーブレッド回路):無」、「オプション(紛失通信):有」を示しており、当該組み合わせは、準同型暗号型の暗号手法である。
また、暗号テーブル602の番号「3」は、「暗号種類」、「暗号形式」、「暗号粒度」、「オプション(ブートストラップ)」が「-(NULL)」、「アーキテクチャ(サーバ数):3」、「オプション(ガーブレッド回路):有」、「オプション(紛失通信):無」を示しており、当該組み合わせは、秘密分散型の暗号手法である。
また、暗号テーブル602の番号「4」は、「暗号種類:ペリエ」、「暗号形式:-(NULL)」、「暗号粒度:要素」、「アーキテクチャ(サーバ数):1」、「オプション(ブートストラップ):無」、「オプション(ガーブレッド回路):-(NULL)」、「オプション(紛失通信):有」を示している。
組み合わせテーブル604は、項目「アルゴリズム」、「層(乗算回数)」、「活性化層」、「組み合わせ可能な暗号手法番号」を含む。なお、各項目は一例であって、上記以外の項目を含むことを妨げない。
項目「アルゴリズム」は、機械学習で用いられたアルゴリズム名を示す。項目「層(乗算回数)」は、線形変換層で行われる乗算の総数を示す。項目「活性化層」は、活性化関数を示す。項目「組み合わせ可能な暗号手法番号」は、上述した「アルゴリズム」、「層(乗算回数)」、「活性化層」の機械学習アルゴリズムについて、暗号テーブル602で示される各暗号手法のうち、組み合わせ可能な手法の番号を示す。
図7において、組み合わせテーブル604の「アルゴリズム:NN(ニューラルネットワーク)」、「層(乗算回数):10以上」、「活性化層:ReLU」で示される機械学習アルゴリズムについては、暗号テーブル602の番号「1」,「2」,「3」,「4」の暗号手法が組み合わせ可能であることを示している。
また、組み合わせテーブル604の「アルゴリズム:NN(ニューラルネットワーク)」、「層(乗算回数):10未満」、「活性化層:ReLU」で示される機械学習アルゴリズムについては、暗号テーブル602の番号「1」,「2」の暗号手法が組み合わせ可能であることを示している。
また、組み合わせテーブル604の「アルゴリズム:NN(ニューラルネットワーク)」、「層(乗算回数):10以上」、「活性化層:Tanh」で示される機械学習アルゴリズムについては、暗号テーブル602の番号「3」,「4」,「5」,「6」(番号「5」、「6」は暗号テーブル602において不図示)の暗号手法が組み合わせ可能であることを示している。
また、組み合わせテーブル604の「アルゴリズム:決定木」、「層(乗算回数):10未満」、「活性化層:-(NULL)」で示される機械学習アルゴリズムについては、暗号テーブル602の番号「11」,「12」,「13」(番号「11」~「13」は暗号テーブル602において不図示)の暗号手法が組み合わせ可能であることを示している。
図8は、スコア対応テーブル114の一例を示す図である。上述の暗号テーブル602の各項目と、計算の処理速度、機密性、コストとが対応付けられている。
例えば、項目「暗号種類」および「形式」の組み合わせの暗号の特徴に基づいて、システムの開発者側で予め「速度」、「機密性」、「コスト」についてそれぞれスコア付けされている。図8の例では、「暗号種類:格子」と「暗号形式:BGV」との組み合わせ801については、「速度:4」、「機密性:8」、「コスト:5」のようにスコア付けされており、計算速度は劣るが、機密性は優れた暗号手法であることが示されている。また、「暗号種類:ペリエ」と、「暗号形式:-(NULL)」の組み合わせ804については、「速度:9」、「機密性:4」、「コスト:5」のようにスコア付けされており、計算速度が優れた暗号手法であることが示されている。
同様に、項目「暗号粒度」と「形式」の組み合わせ811~815や、オプション821~824のそれぞれについて、「速度」、「機密性」、「コスト」がそれぞれスコア付けされている。なお、図8には示されていないが、秘密分散についてもスコア付けされていてもよい。
図9は、秘密計算用データ37の一例を示す図である。図9において、秘密計算用データ900は、例えば、図4(a)で示した学習モデルを変換した秘密計算用データである。
秘密計算用データ900は、規定情報902と暗号化パラメータ情報904とから構成される。図9の例では、規定情報902は、暗号テーブル602から、要求条件データ35や仕様データ41等に基づいて抽出された組み合わせ(暗号手法)と、当該組み合わせに関連付けられたオプションを実行するためのオプション情報とを示しているが、層情報や、アーキテクチャ(層構造や、各層での処理内容)、暗号化において用いられるパラメータ(不図示)や暗号化に用いた鍵を示す情報(不図示)も含む。すなわち、規定情報902は、秘密計算を行うための入力フォーマットに従ったデータを示している。
図9の例では、抽出された組み合わせは、「暗号種類:格子暗号」、「暗号形式:BGV」、「暗号粒度:行」、「アーキテクチャ(サーバ数):2」、「オプション(ブートストラップ):無」、「オプション(ガーブレッド回路):有」を示しており、格子暗号とガーブレッド回路を組み合わせたハイブリッド型秘密計算の構成である。また、図9の例では、オプション情報として示される計算手順の第2層でオプション(ガーブレッド回路)を実行することが示されている。「オプション」は、準同型暗号を用いると計算量が大きくなる、もしくは、根本的に演算が実行できない層において適用されるようあらかじめ条件が設定されている。例えば、活性化層の種類(例えば、シグモイドなど)によっては計算量(乗算数)が大きくなるため、所定量以上の計算量の場合は、「オプション」としてガーブレッド回路が適用される。また、比較演算が必要な、ReLuなどの活性化関数やマックスプーリングなどの層は、根本的に準同型暗号では実行できないため、「オプション」が適用される。比較演算を含まないような活性化層やプーリング層に関しては、計算量に基づいて、「オプション」を適用するか条件設定されていてもよい。また、全結合層などの線形層に関しては、原則として「オプション」は適用されない。なお、「オプション」の適用は、必要に応じてユーザが決定できるよう構成しておいてもよい。
学習モデルに含まれるパラメータ情報(重み)は、規定情報902に従って暗号化部122において暗号化され、暗号化パラメータ情報904に変換される。
図10は、秘密計算用データ37の別の一例を示す図である。図10において、秘密計算用データ910は、例えば、図4(b)で示した学習モデルを変換した秘密計算用データである。
秘密計算用データ910は、規定情報912と暗号化パラメータ情報914とから構成される。図10の例において、規定情報912は、暗号テーブル602から、要求条件データ35や仕様データ41等に基づいて抽出された組み合わせ(暗号手法)と、当該組み合わせに関連付けられたオプションを実行するためのオプション情報とを示しているが、層情報や、アーキテクチャ(層構造や、各層での処理内容)、暗号化において用いられるパラメータ(不図示)や暗号化に用いた鍵を示す情報(不図示)も含む。すなわち、規定情報912は、秘密計算を行うための入力フォーマットに従ったデータを示している。
図10の例では、抽出された組み合わせは、「暗号種類:ペリエ」、「暗号粒度:要素」、「アーキテクチャ(サーバ数):3」、「オプション(シークレットシェアリング):有」、「オプション(紛失通信):有」を示しており、ペリエ暗号と紛失通信を組み合わせたハイブリッド型秘密計算の構成である。また、図10の例では、オプション情報として示される計算手順のステップ2において、サーバ1,2,3間で「シークレットシェアリング」が実行され、計算手順のステップ3において、サーバ1および2間で「紛失通信」が実行される。なお、「オプション」の「シークレットシェアリング」は、複数サーバにおいて実行されるため、アーキテクチャ(サーバ数)が決定されると、どのサーバでどのように情報を分割するかをあらかじめ設定しておいた条件に従って適用される。また、「オプション」を実行するのに必要なサーバ数は、ユーザによって選択的条件として指定、もしくは、「オプション」に基づいてあらかじめ設定しておいてもよい。
学習モデルに含まれるパラメータ情報は、規定情報912に従って暗号化部122において暗号化され、暗号化パラメータ情報914に変換される。
以上、秘密計算システム10において扱うデータ構造について説明した。
図11は、変換モジュール26の処理の一例を示すフローチャートである。図11及び図3を参照して、変換モジュール26における処理について説明する。
ステップS102において、取得部100は、要求条件データ35および学習モデル36を取得する。学習モデル36は、秘密計算モジュール28で実行される秘密計算の対象データである。取得部100は、取得した要求条件データ35および学習モデル36を変換処理部120へ送る。
ステップS104において、変換処理部120の変換部121は、学習モデル36に含まれる仕様データ41について、記憶部110のアルゴリズム対応テーブル113(暗号テーブル602および組み合わせテーブル604)を参照して、適用できる暗号手法の組み合わせを抽出する。
ステップS106において、変換部121は、要求条件データ35とスコア対応テーブル114を参照して、ステップS104において抽出された組み合わせの中から要求条件データ35に適合する暗号手法の組み合わせを選択する。要求条件データ35に適合する暗号手法の組み合わせの選択方法については、図12及び図13を用いて後述する。
ステップS108において、変換部121は、ステップS106において選択された暗号手法の組み合わせに基づいて、学習モデル36を秘密計算用データ37に変換する。すなわち、仕様データ41を規定情報42に変換する。また、暗号化部122は、パラメータ情報43を、選択された暗号手法に従って暗号化し、暗号化パラメータ情報44とする。
ステップS110において、出力部130は、規定情報42および暗号化パラメータ情報44を含む秘密計算用データ37を出力する。
図12は、要求条件データ35の選択的条件に適合する組み合わせの選択方法を説明するための図である。図12において、リスト1002および1004、要求条件データ1003が示されている。
リスト1002は、例えば、図11のステップS104において、アルゴリズム対応テーブル113(暗号テーブル602および組み合わせテーブル604)を参照して抽出された暗号手法の組み合わせを示す。すなわち、仕様データに基づき、組み合わせテーブル604を参照して、適用可能な暗号手法を暗号テーブル602から抽出したもので、番号「#01」、「#02」、「#03」で識別される暗号手法である。
要求条件データ1003は、ユーザからの選択的条件として「サーバ数:1」、評価条件として「速度:8」、「機密性:4」、「コスト:3」のようにスコア付けされている。
リスト1004は、リスト1002の暗号手法の中から要求条件データ1003のうち選択的条件に適合する暗号手法を抽出したものである。すなわち、まず、要求条件データ1003のうち、選択的条件である「サーバ数」に着目する。リスト1002の暗号手法のうち、番号「#01」はサーバ数が「2」であり、ユーザの要求するサーバ数「1」と適合しないので、番号「#01」の暗号手法は除外する。したがって、リスト1004には、選択的条件に適合する番号「#02」、「#03」の組み合わせが抽出される。なお、選択的条件に適合する(サーバの)数に幅を持たせるようにして組み合わせを抽出するようにしてもよい。例えば、図12において、選択的条件としてユーザの要求するサーバ数「1」の「±1」の範囲で適合する番号「#01」、「#02」、「#03」の組み合わせを抽出してもよい。これにより、組み合わせの選択方法に柔軟性を持たせることができる。
次いで、図12で抽出された暗号手法の組み合わせから、要求条件データ1003の評価条件に基づいて、暗号手法の組み合わせを選択する方法について説明する。
図13は、要求条件データ35の評価条件に適合する組み合わせの選択方法を説明するための図である。図8において述べたように、スコア対応テーブル114において、暗号種類および形式、暗号粒度および形式、オプション等のそれぞれにつき、各特徴に基づいて速度、機密性、コストには予め(例えば、開発者や機械学習などによって)10段階評価によるスコア付けがされている。そこで、リスト1004の各組み合わせの暗号手法について、スコア対応テーブル114に基づき、ユーザからの要求条件データ1003の評価条件に従ったスコアを算出し、スコアの最も高い暗号手法を、最適な暗号手法として選択する。
図13において例えば、番号「#02」のスコア算出方法について具体的に説明する。図示するように、「暗号種類」、「暗号形式」、「暗号粒度」の組み合わせ801,811、オプション821,822について「速度」、「機密性」、「コスト」のスコア付けがされている。この各スコアをユーザの評価条件で重み付けした重み平均を、暗号手法の「スコア」とする。なお、図13で説明するスコアリングの方法は一例であって、この方法に限定されないのは言うまでもない。
例えば、「速度」については、ユーザの評価条件は、「8」である。また、「暗号種類:格子」、「暗号形式:BGV」については「4」、「暗号粒度:要素」については「4」、「オプション:ブートストラップ」については「2」、「オプション:紛失通信」については「5」である。したがって、「速度」に関する重み平均は、図示するように、「8/10×(4+4+2+5)/4=3」である。同様に、「機密性」および「コスト」についても計算し、「速度」、「機密性」「コスト」の算出結果の和「7.3」が「#02」のスコアとなる。
同様に、番号「#03」の暗号手法について重み平均を算出すると、スコアが「8.0」となる。番号「#02」と「#03」のスコアを比較すると、番号「#03」のスコアの方が大きい。したがって、図13の例では、番号「#03」の組み合わせの暗号手法が、要求条件データ35を満たす暗号手法として選択される。
(効果の説明)
上述したように、本実施形態に係る秘密計算システムは、AIライブラリに適用して生成された学習モデルを、秘密計算ライブラリに適用できる入力フォーマットに自動的に変換し、秘密計算ライブラリに適用させる。これにより、秘密計算およびAIに関する高度な専門知識を有していなくても、既存のライブラリを利用してセキュリティを担保しつつ学習モデルに基づくデータ分析等の演算処理を行うことができる。
上述したように、本実施形態に係る秘密計算システムは、AIライブラリに適用して生成された学習モデルを、秘密計算ライブラリに適用できる入力フォーマットに自動的に変換し、秘密計算ライブラリに適用させる。これにより、秘密計算およびAIに関する高度な専門知識を有していなくても、既存のライブラリを利用してセキュリティを担保しつつ学習モデルに基づくデータ分析等の演算処理を行うことができる。
(実施形態2の概要)
実施形態1に係る秘密計算システムの変換モジュールは、機械学習された学習モデルを秘密計算ライブラリに適用できる入力フォーマットに変換した。これに対し、本実施形態に係る秘密計算システムの変換モジュールは、機微データ(生データ)および秘密計算モジュールにおいて実行される機械学習の情報(仕様データ)を、秘密計算ライブラリに適用できる入力フォーマットに変換する。これにより、高度な専門知識を有していなくても、既存の秘密計算ライブラリを利用して、セキュリティが担保された状態で、機微データの機械学習を行うことができ、また、当該機械学習により生成された学習モデルに基づくデータ分析等の演算処理も行うことができる。機微データが暗号化された状態で学習モデルを生成できるので、より機密性が高い環境でデータを扱うことができる。
実施形態1に係る秘密計算システムの変換モジュールは、機械学習された学習モデルを秘密計算ライブラリに適用できる入力フォーマットに変換した。これに対し、本実施形態に係る秘密計算システムの変換モジュールは、機微データ(生データ)および秘密計算モジュールにおいて実行される機械学習の情報(仕様データ)を、秘密計算ライブラリに適用できる入力フォーマットに変換する。これにより、高度な専門知識を有していなくても、既存の秘密計算ライブラリを利用して、セキュリティが担保された状態で、機微データの機械学習を行うことができ、また、当該機械学習により生成された学習モデルに基づくデータ分析等の演算処理も行うことができる。機微データが暗号化された状態で学習モデルを生成できるので、より機密性が高い環境でデータを扱うことができる。
図14は、実施形態2に係る秘密計算システム1410内のモジュールを示す構成図である。図14において、秘密計算システム1410は、データ入力モジュール1422と、変換モジュール26と、秘密計算モジュール1428とを備える。なお、図2と共通する構成については同じ符号を付し、説明を省略する。
秘密計算システム1410は、機械学習させる機微データおよび当該機械学習の情報を、秘密計算ライブラリに適用できる入力フォーマットに変換する。そして、秘密計算ライブラリに基づいて、機械学習を実行して学習モデルを生成し、ユーザから要求されるデータ分析等の処理を行うように構成されている。
データ入力モジュール1422は、「処理要求部」として機能し、秘密計算システム1410のユーザ(不図示)からデータセット1431を受信するように構成されている。データセット1431は、機械学習の対象となる機微データ33および、当該機械学習の仕様データ1434を含む。また、データセット1431は、秘密計算モジュール1428に対するユーザからの処理要求32および秘密計算に対する要求条件データ35を含む。
仕様データ1434は、機械学習ライブラリを使って生成されたソースコード(バイナリファイル)、または、機械学習に用いるアルゴリズムやパラメータの情報である。また、仕様データ1434は、学習時に使用する最適化アルゴリズム(SGD、Adam、など)や学習率(0~1までの数)を含む。
変換モジュール26は、対応テーブル112(組み合わせテーブル604(図7参照)には、例えば、学習時に使用する最適化アルゴリズム等を示す項目も含む)に基づいて、仕様データ1434を規定情報1442に変換する。規定情報1442は、例えば、機械学習で用いたアルゴリズムや、アルゴリズムにおけるパラメータ(層情報やアーキテクチャ(層構造や各層での処理内容))、オプション、暗号のパラメータ、暗号の種類、形式、粒度、暗号鍵、学習時に使用する最適化アルゴリズムや学習率等を規定する。
また、規定情報1442で規定される暗号手法に従って、暗号化部122は機微データ33を暗号化して、暗号化機微データ1444とする。すなわち、変換モジュール26は、機微データ33および仕様データ1434を、規定情報1442および暗号化機微データ1444を含む秘密計算用データ1437に変換する。なお、機微データ33は、変換モジュール26において暗号化されるのではなく、秘密計算モジュール1428において、規定情報1442で規定される暗号手法に従って暗号化される構成にしてもよい。
秘密計算モジュール1428は、学習部1425と、演算部1427と、秘密計算ライブラリ1429とを含む。学習部1425は、規定情報1442に基づいて、秘密計算ライブラリ1429を適用し、暗号化機微データ1444について機械学習を行う。また、演算部1427は、処理要求32に応じて、当該機械学習により生成された学習モデルに基づいたデータ分析等の演算を行う。
(効果の説明)
上述したように、本実施形態では、機微データ(生データ)及び秘密計算モジュールにおいて実行される機械学習の情報(仕様データ)を、秘密計算ライブラリに適用できる入力フォーマットに変換する。高度な専門知識を有していなくても、既存の秘密計算ライブラリを利用して、機微データの機械学習を行うことができ、機微データが暗号化された状態で学習モデルを生成できるので、より機密性が高い環境でデータを扱うことができる。
上述したように、本実施形態では、機微データ(生データ)及び秘密計算モジュールにおいて実行される機械学習の情報(仕様データ)を、秘密計算ライブラリに適用できる入力フォーマットに変換する。高度な専門知識を有していなくても、既存の秘密計算ライブラリを利用して、機微データの機械学習を行うことができ、機微データが暗号化された状態で学習モデルを生成できるので、より機密性が高い環境でデータを扱うことができる。
(実施形態3の概要)
実施形態1および2に係る秘密計算システムの変換モジュールは、アルゴリズム対応テーブルを参照して抽出された暗号手法の組み合わせの中から、要求条件データとスコア対応テーブルとに基づいて算出されたスコアに従って、最適な暗号手法の組み合わせを選択した。これに対し、本実施形態に係る秘密計算システムの変換モジュールは、要求条件データと上記選択された暗号手法の組み合わせとを学習データとして記憶し、要求条件データと暗号手法の組み合わせとの相関関係を学習した学習モデルを生成する。そして、この生成した学習モデルをスコア対応テーブルの代わりに用いることにより、スコアを算出することなく、アルゴリズム対応テーブルを参照して抽出された暗号手法の組み合わせの中から最適な暗号手法の組み合わせを選択する。スコアを算出することなく最適な暗号手法の組み合わせを選択することが出来るので、計算量を削減することができる。また、スコアに従った決定的な選択よりも、より柔軟な確率的な選択が可能になり、よりアルゴリズムやデータおよびユーザの要求等に適した手法を選択することができる。
実施形態1および2に係る秘密計算システムの変換モジュールは、アルゴリズム対応テーブルを参照して抽出された暗号手法の組み合わせの中から、要求条件データとスコア対応テーブルとに基づいて算出されたスコアに従って、最適な暗号手法の組み合わせを選択した。これに対し、本実施形態に係る秘密計算システムの変換モジュールは、要求条件データと上記選択された暗号手法の組み合わせとを学習データとして記憶し、要求条件データと暗号手法の組み合わせとの相関関係を学習した学習モデルを生成する。そして、この生成した学習モデルをスコア対応テーブルの代わりに用いることにより、スコアを算出することなく、アルゴリズム対応テーブルを参照して抽出された暗号手法の組み合わせの中から最適な暗号手法の組み合わせを選択する。スコアを算出することなく最適な暗号手法の組み合わせを選択することが出来るので、計算量を削減することができる。また、スコアに従った決定的な選択よりも、より柔軟な確率的な選択が可能になり、よりアルゴリズムやデータおよびユーザの要求等に適した手法を選択することができる。
図15は、実施形態3に係る変換モジュール1526の機能ブロック図である。図15に示す変換モジュール1526は、変換処理部1520と、学習部1500とを含み、記憶部1510が学習データ1515および学習モデル1516を記憶する。すなわち、秘密計算システム10の変換モジュール26と、暗号手法の組み合わせの選択に係る構成が相違する。なお、図3と共通する構成については同じ符号を付し、説明を省略する。
変換処理部1520は、暗号化部1522と、変換部1521とを含む。
学習データ1515は、要求条件データ35と、当該要求条件データ35に基づいて、選択された最適な暗号手法の組み合わせとが対となって格納されている。
学習部1500は、学習データ1515に基づいて、要求条件データ(特に、評価条件)と、変換部1521に選択された暗号手法の組み合わせとの相関関係を学習し(図16において詳述)、学習結果を学習モデル1516に格納する。なお、変換部1521に選択された暗号手法の組み合わせの代わりに、要求条件データに応じて、ユーザ(秘密計算等の専門知識を有する者)等が選択した組み合わせに基づいて相関関係を学習してもよい。
学習モデル1516は、上述のように、要求条件データ35と暗号手法の組み合わせとの相関関係が示されるデータである。変換部1521は、アルゴリズム対応テーブル113に基づいて抽出した暗号手法の組み合わせについて、スコア対応テーブル114に代わって、学習モデル1516に基づいて、最適な暗号手法の組み合わせを選択する。
図16は、変換モジュール1526の処理の一例を示すフローチャートである。図16を参照して、変換モジュール1526における処理について説明する。なお、処理の順序は一例であって、順序を限定するものではない。例えば、以下の説明では、学習モデル1516は、ステップS214において学習データ1515が記憶された後で生成(更新)されているが、ステップS210において学習モデル1516を用いる前に生成(更新)されるように構成してもよい。
ステップS202において、取得部100は、要求条件データ35および学習モデル36を取得する。学習モデル36は、秘密計算モジュール28で実行される秘密計算の対象データである。取得部100は、取得した要求条件データ35および学習モデル36を変換処理部1520へ送る。なお、ユーザから暗号手法の項目として必須条件を受け付け、要求条件データ35に含ませるようにしてもよい。
ステップS204において、変換処理部1520の変換部1521は、学習モデル36に含まれる仕様データ41について、記憶部1510の対応テーブル112(すなわち、アルゴリズム対応テーブル113(暗号テーブル602および組み合わせテーブル604))を参照して、適用できる暗号手法の組み合わせを抽出する。
ステップS206において、変換部1521は、学習データ1515に格納された要求条件データと暗号手法の組み合わせとの対となるデータが所定量以上であるか判断する。学習データ1515が所定量以上ではないと判断した場合(ステップS206において、NO)、ステップS208において、変換部1521は、要求条件データ35とスコア対応テーブル114を参照して、ステップS204において抽出された組み合わせの中から要求条件データ35に適合する暗号手法の組み合わせを選択する。すなわち、学習データが極端に少ない場合は、学習の精度が悪いため、学習モデル1516ではなく、図11において説明したように、スコア対応テーブル114を参照して暗号手法の組み合わせを選択する。なお、後述するステップS212において、ユーザから暗号手法の組み合わせの指定を受け付けるために、暗号手法の組み合わせを条件の適合度の高い順などで複数選択するようにしてもよい。
一方、学習データ1515が所定量以上であると判断した場合(ステップS206において、YES)、ステップS210において、変換部1521は、学習モデル1516に基づいて、要求条件データ35に適合する組み合わせを選択する。なお、変換部1521が選択する組み合わせは、後述するステップS212においてユーザに提示し、どれを秘密計算用データの変換のために適用するかユーザに選択させるため、複数選択するように構成する。
ステップS212において、変換部1521は、学習モデル1516に基づいて選択した暗号手法の組み合わせをユーザに表示部(不図示)等を介して提示する。ユーザは提示された暗号手法について、必要に応じて、要求条件データ35に適合しているか判断する。学習モデル1516が精度よく生成されている場合は、ユーザの要求条件に適合している可能性が高いが、精度が悪い場合は、ユーザの要求条件に適合していない可能性があるからである。なお、暗号手法の組み合わせを提示する際、各組み合わせのコストや速度、機密性等も併せて表示するようにしてもよい。また、選択されなかった暗号手法の組み合わせについてもコストや速度、機密性等とともにユーザに示すようにしてもよい。これにより、ユーザは各組み合わせのコスト等について参照することができ、暗号手法の組み合わせの指定(後述)を容易にすることができる。
変換部1521は、ユーザから秘密計算用データの変換のために適用する暗号手法の組み合わせの指定を受け付ける。なお、ユーザの暗号分野やAI分野における専門知識の有無、理解の程度に応じて、ステップS212の処理を行わないようにしてもよい。専門知識がないユーザには、どの暗号手法の組み合わせが適切なのか判断が困難であるため、そのようなユーザについては、変換部1521が一つの組み合わせを選択し、秘密計算用データの変換のために適用する暗号手法の組み合わせとして決定する。例えば、ステップS210において、変換部1521は、暗号手法の組み合わせを複数選択するのではなく、相関関係が最も高い組み合わせを選択する。
また、ステップS212において、ユーザから、提示された暗号手法の組み合わせ以外の暗号手法の組み合わせの指定を受け付けるようにしてもよい。例えば、ユーザが要求条件としてコストを最重視していたが、選択されなかった暗号手法の組み合わせのうち(上述のように)表示されたコストが予算以内のものがあった場合、他の評価条件を優先して暗号手法の組み合わせを指定したいこともあり得るからである。
ステップS214において、変換部1521は、要求条件データ35およびステップS212において受け付けた組み合わせの対を学習データ1515として記憶部1510に記憶させる。すなわち、記憶部1510の学習データ1515は、暗号手法の組み合わせが選択される都度、データが格納されていくので、学習データの量が増加し、生成される学習モデルの精度が向上する。なお、ステップS212においてユーザが指定した暗号手法の組み合わせについては、重み付け等により、相関関係が強くなるようにスコアリングを行ってもよい。これにより、より精度よく、暗号手法の組み合わせについての学習モデルを生成することができる。
ステップS216において、学習部1500は、学習データ1515から学習モデル1516を生成する。なお、上述したように、変換モジュール1526の処理において、学習モデル1516を生成する順序は、ステップS214後とは限られない。
ステップS218において、変換部1521は、選択された暗号手法の組み合わせに基づいて、学習モデル36を秘密計算用データ37に変換する。すなわち、仕様データ41を規定情報42に変換する。また、暗号化部1522は、パラメータ情報43を、選択された暗号手法に従って暗号化し、暗号化パラメータ情報44とする。
ステップS220において、出力部130は、規定情報42および暗号化パラメータ情報44を秘密計算用データ37として出力し、処理は終了する。
なお、出力された秘密計算用データ37を秘密計算モジュール28(図2参照)において実行させた際のパフォーマンス(実行速度・時間、空間計算量、通信量コスト、インスタンス台数、そのスペック等の情報など)を、学習部1500が学習モデル1516を生成するためにフィードバックさせるようにしてもよい。すなわち、要求条件データ35および暗号手法の組み合わせと、上記パフォーマンスとの相関関係に基づいて学習モデルを生成する。これにより、より最適な暗号手法の組み合わせを確度よく選択することができる。
(効果の説明)
上述したように、本実施形態では、変換部1521は、アルゴリズム対応テーブル113に基づいて抽出した暗号手法の組み合わせについて、スコア対応テーブル114に代わって、学習モデル1516に基づいて、最適な暗号手法の組み合わせを選択する。これにより、抽出された各組み合わせについてのスコアを算出する必要がなくなるため、計算量を削減することができる。
上述したように、本実施形態では、変換部1521は、アルゴリズム対応テーブル113に基づいて抽出した暗号手法の組み合わせについて、スコア対応テーブル114に代わって、学習モデル1516に基づいて、最適な暗号手法の組み合わせを選択する。これにより、抽出された各組み合わせについてのスコアを算出する必要がなくなるため、計算量を削減することができる。
上記実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
10 秘密計算システム、12 処理ユニット、14 記憶ユニット、16 メモリ、18 ストレージ、22 データ入力モジュール、24 機械学習モジュール、25 AIライブラリ、26、1526 変換モジュール、28、1428 秘密計算モジュール、29 秘密計算ライブラリ、100 取得部、110 記憶部、120、1520 変換処理部、121、1521 変換部、122、1522 暗号化部、130 出力部、1425、1500 学習部、1427 演算部、1515 学習データ、1516 学習モデル
Claims (14)
- 秘密計算の対象データを取得する取得部と、
秘密計算を行うための入力フォーマットを規定した対応テーブルを記憶する記憶部と、
前記対応テーブルに従って、前記取得した対象データを秘密計算用データに変換する変換処理部と、
前記秘密計算用データを出力する出力部と、を備える秘密計算用変換装置。 - 前記対象データは、第1のデータに対する機械学習に関連する第2のデータを少なくとも含み、前記変換処理部は、前記第2のデータに基づいて、前記変換を行う、請求項1に記載の秘密計算用変換装置。
- 前記第2のデータは、前記第1のデータに対する機械学習の仕様データを有し、
前記対応テーブルは、前記機械学習の仕様と前記入力フォーマットとが対応付けられており、
前記変換処理部は、前記記憶された対応テーブルの中から、前記機械学習の仕様データに対応する入力フォーマットを抽出し、抽出した入力フォーマットに従って、前記変換を行う、請求項2に記載の秘密計算用変換装置。 - 前記取得部は、前記秘密計算に対する要求条件データを取得し、
前記変換処理部は、前記抽出した入力フォーマットのうち、前記要求条件データに基づいて選択した入力フォーマットに従って、前記変換を行う、請求項3に記載の秘密計算用変換装置。 - 前記機械学習の仕様データは、前記機械学習で用いるアルゴリズムに関する情報またはソースコードを含む、請求項4に記載の秘密計算用変換装置。
- 前記対象データは、前記第1のデータを前記機械学習したデータを含み、
前記変換処理部は、前記変換として、前記機械学習したデータを、前記選択した入力フォーマットで規定する暗号手法に従って暗号化する暗号化部を含む、請求項5に記載の秘密計算用変換装置。 - 前記対象データは、前記第1のデータを含み、
前記変換処理部は、前記変換として、前記第1のデータを、前記選択した入力フォーマットで規定する暗号手法に従って暗号化する暗号化部を含む、請求項5に記載の秘密計算用変換装置。 - 前記要求条件データは、秘密計算に関する選択的条件および/またはスコア付けされた複数の評価条件を含み、
前記変換処理部は、前記選択的条件および/または前記スコアに基づいて前記選択される入力フォーマットに従って、前記変換を行う、請求項7に記載の秘密計算用変換装置。 - 前記評価条件は、処理速度、セキュリティレベル、コストに関する条件を少なくとも一つ含み、
前記評価条件は、グラフィカル・ユーザ・インタフェース(GUI)を介して入力される、請求項8に記載の秘密計算用変換装置。 - 前記記憶部は、前記要求条件データおよび当該要求条件データに応じて実行された変換の入力フォーマットを記憶し、
前記記憶された要求条件データと、要求条件データに応じて実行された変換の入力フォーマットとの関係を学習する学習部をさらに備え、
前記変換処理部は、前記学習された関係に従って、前記変換を行う、請求項8または請求項9に記載の秘密計算用変換装置。 - 前記入力フォーマットは、秘密計算のための、暗号の種類、暗号の形式、暗号化するデータの単位、データ構造、処理プロトコル、アーキテクチャのいずれか、またはその組み合わせによって規定されるデータである、請求項1から請求項10のいずれか一項に記載の秘密計算用変換装置。
- 秘密計算の対象データに対する処理要求を送る処理要求部と、秘密計算用変換部と、秘密計算実行部と、を備える秘密計算システムであって、
前記秘密計算用変換部は、
前記処理要求部を介して前記対象データを取得する取得部と、
秘密計算を行うための入力フォーマットを規定した対応テーブルを記憶する記憶部と、
前記対応テーブルに従って、前記取得した対象データを秘密計算用データに変換する変換処理部と、
前記秘密計算用データを前記秘密計算実行部に出力する出力部と、を含む秘密計算システム。 - 秘密計算の対象データを秘密計算用データに変換する変換方法であって、前記変換方法は、制御部および記憶部を備えるコンピュータにおいて実行され、
前記制御部が、秘密計算の対象データを取得するステップと、
前記制御部が、秘密計算を行うための入力フォーマットを規定した対応テーブルを前記記憶部に記憶するステップと、
前記制御部が、前記対応テーブルに従って、前記取得した対象データを秘密計算用データに変換するステップと、
前記制御部が、前記秘密計算用データを出力するステップと、を備える秘密計算用変換方法。 - 請求項13に記載の秘密計算用変換方法をコンピュータに実行させるための秘密計算用変換プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21744698.8A EP4083973A4 (en) | 2020-01-24 | 2021-01-08 | Conversion device for secure computation, secure computation system, conversion method for secure computation, and conversion program for secure computation |
US17/788,739 US20230041118A1 (en) | 2020-01-24 | 2021-01-08 | Conversion device for secure computation, secure computation system, conversion method for secure computation and conversion program for secure computation |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020-010145 | 2020-01-24 | ||
JP2020010145A JP6795863B1 (ja) | 2020-01-24 | 2020-01-24 | 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021149518A1 true WO2021149518A1 (ja) | 2021-07-29 |
Family
ID=73544753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2021/000494 WO2021149518A1 (ja) | 2020-01-24 | 2021-01-08 | 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230041118A1 (ja) |
EP (1) | EP4083973A4 (ja) |
JP (2) | JP6795863B1 (ja) |
WO (1) | WO2021149518A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7487748B2 (ja) | 2022-01-21 | 2024-05-21 | 横河電機株式会社 | 装置、方法およびプログラム |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3565218B1 (en) | 2018-04-30 | 2023-09-27 | Hewlett Packard Enterprise Development LP | System and method of decentralized management of multi-owner nodes using blockchain |
US11966818B2 (en) | 2019-02-21 | 2024-04-23 | Hewlett Packard Enterprise Development Lp | System and method for self-healing in decentralized model building for machine learning using blockchain |
US11748835B2 (en) | 2020-01-27 | 2023-09-05 | Hewlett Packard Enterprise Development Lp | Systems and methods for monetizing data in decentralized model building for machine learning using a blockchain |
US11218293B2 (en) | 2020-01-27 | 2022-01-04 | Hewlett Packard Enterprise Development Lp | Secure parameter merging using homomorphic encryption for swarm learning |
WO2022181763A1 (ja) | 2021-02-26 | 2022-09-01 | 学校法人東京理科大学 | ストレス関連障害の治療又は予防用医薬組成物 |
WO2022259516A1 (ja) * | 2021-06-11 | 2022-12-15 | 日本電信電話株式会社 | 禁止操作防止システム、禁止操作防止装置、禁止操作防止方法、およびプログラム |
WO2023145240A1 (ja) * | 2022-01-27 | 2023-08-03 | 株式会社Nttドコモ | 情報処理装置および情報処理システム |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146677A (ja) * | 2004-11-22 | 2006-06-08 | Hitachi Ltd | アプリケーションの開発支援システム及びこの開発支援システムを用いたデータフォーマット生成方法並びにデータ処理システム |
JP2011227193A (ja) | 2010-04-16 | 2011-11-10 | Nippon Telegr & Teleph Corp <Ntt> | 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096727B (zh) * | 2016-06-02 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种基于机器学习的网络模型构造方法及装置 |
US11087223B2 (en) * | 2018-07-11 | 2021-08-10 | International Business Machines Corporation | Learning and inferring insights from encrypted data |
WO2020071441A1 (ja) * | 2018-10-04 | 2020-04-09 | 日本電信電話株式会社 | 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム |
-
2020
- 2020-01-24 JP JP2020010145A patent/JP6795863B1/ja active Active
- 2020-11-06 JP JP2020185537A patent/JP2021117487A/ja active Pending
-
2021
- 2021-01-08 US US17/788,739 patent/US20230041118A1/en active Pending
- 2021-01-08 WO PCT/JP2021/000494 patent/WO2021149518A1/ja unknown
- 2021-01-08 EP EP21744698.8A patent/EP4083973A4/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006146677A (ja) * | 2004-11-22 | 2006-06-08 | Hitachi Ltd | アプリケーションの開発支援システム及びこの開発支援システムを用いたデータフォーマット生成方法並びにデータ処理システム |
JP2011227193A (ja) | 2010-04-16 | 2011-11-10 | Nippon Telegr & Teleph Corp <Ntt> | 環準同型を計算可能な公開鍵暗号方法、環準同型を計算可能な公開鍵暗号システム、送信装置、処理装置、受信装置、それらのプログラム及び記録媒体 |
Non-Patent Citations (3)
Title |
---|
JUVEKAR CHIRAAG, VAIKUNTANATHAN VINOD, CHANDRAKASAN ANANTHA: "A Low Latency Framework for Secure Neural Network Inference", CRYPTOLOGY EPRINT ARCHIVE, 2018, pages 1 - 17, XP061024160 * |
KOLESNIKOV VLADIMIR, SADEGHI AHMAD-REZA, SCHNEIDER THOMAS: "From Dust to Dawn: Practically Effcient Two-Party Secure Function Evaluation Protocols and their Mod", CRYPTOLOGY EPRINT ARCHIVE, 2013, pages 1 - 26, XP061004331 * |
See also references of EP4083973A4 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7487748B2 (ja) | 2022-01-21 | 2024-05-21 | 横河電機株式会社 | 装置、方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2021117487A (ja) | 2021-08-10 |
EP4083973A4 (en) | 2023-06-28 |
JP2021117338A (ja) | 2021-08-10 |
JP6795863B1 (ja) | 2020-12-02 |
US20230041118A1 (en) | 2023-02-09 |
EP4083973A1 (en) | 2022-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021149518A1 (ja) | 秘密計算用変換装置、秘密計算システム、秘密計算用変換方法、および秘密計算用変換プログラム | |
US12019704B2 (en) | Systems and methods for encrypting data and algorithms | |
Liu et al. | Oblivious neural network predictions via minionn transformations | |
WO2021179720A1 (zh) | 基于联邦学习的用户数据分类方法、装置、设备及介质 | |
Farah et al. | A novel method for designing S-box based on chaotic map and teaching–learning-based optimization | |
EP3627759B1 (en) | Method and apparatus for encrypting data, method and apparatus for training machine learning model, and electronic device | |
US20190073608A1 (en) | Multi-party computation system for learning a classifier | |
CN111784001B (zh) | 一种模型训练方法、设备及计算机可读存储介质 | |
CN111125727B (zh) | 混淆电路生成方法、预测结果确定方法、装置和电子设备 | |
CN111081337B (zh) | 一种协同任务预测方法及计算机可读存储介质 | |
US12106227B2 (en) | Non-interactive private decision tree evaluation | |
CN113505882A (zh) | 基于联邦神经网络模型的数据处理方法、相关设备及介质 | |
Baryalai et al. | Towards privacy-preserving classification in neural networks | |
Dai et al. | Privacy preserving federated big data analysis | |
CN107430557B (zh) | 多方加密立方体处理设备、方法和系统 | |
Hu et al. | Securing fast learning! ridge regression over encrypted big data | |
Zheng et al. | SecSkyline: Fast privacy-preserving skyline queries over encrypted cloud databases | |
US20230006819A1 (en) | Systems and methods for homomorphic encryption-based triggering | |
US20210266383A1 (en) | Conversion system, method and program | |
Sudo et al. | An efficient private evaluation of a decision graph | |
CN114358323A (zh) | 联邦学习环境中基于第三方高效皮尔森系数计算方法 | |
Zhao et al. | PPCNN: An efficient privacy‐preserving CNN training and inference framework | |
Reddy et al. | Encrypted Classification Using Secure K-Nearest Neighbour Computation | |
Gururaj et al. | Secure Image Classification Using Deep Learning | |
Li et al. | A Privacy Protection Method for Learning Artificial Neural Network on Vertically Distributed Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21744698 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2021744698 Country of ref document: EP Effective date: 20220728 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |