Encryption device and method, decryption device and method, system, neural network learning method, program and storage medium
A pre-trained neural network with input and encryption key layers enhances data anonymization by varying encryption methods, addressing the inefficiency of multiple model requirements in existing technologies.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- CANON KK
- Filing Date
- 2022-03-03
- Publication Date
- 2026-06-26
AI Technical Summary
Existing neural network-based data anonymization methods require maintaining multiple models, increasing data volume and potentially compromising efficiency.
A pre-trained neural network with an input layer for multidimensional data and encryption key data, a coupling layer for combining data and keys, and an encryption process to generate encrypted data, allowing for varied encryption methods without increasing model data volume.
Improves data anonymization quality without expanding the neural network's data footprint, enabling secure and efficient encryption processing.
Smart Images

Figure 0007880708000001 
Figure 0007880708000002 
Figure 0007880708000003
Abstract
Description
Technical Field
[0001] The present invention relates to an encryption apparatus and method, a decryption apparatus and method, a system, a neural network learning method, a program, and a storage medium, and particularly relates to a technology for encryption processing and decryption processing using a neural network.
Background Art
[0002] Deep learning technology using a neural network has been applied in a wide range of technical fields. In particular, class classification for recognizing and classifying images is said to exceed human recognition ability. Among them, the convolutional neural network (CNN), which is particularly widely used, can realize high-precision deep learning processing by recursively applying a convolutional operation to an image.
[0003] On the other hand, in recent years, with the background of SNS (Social networking service), there has been an increasing interest in the security of data including images. For example, in services that share data such as SNS, data communication from an edge terminal to a cloud server is essential, so from the perspective of privacy protection, it is common to encrypt and communicate data.
[0004] Neural networks have also come to be used for such security measures. For example, there is a method of performing image conversion of data to anonymize an image. However, a simple anonymization method using a neural network that performs the same processing on any input image does not necessarily meet the requirements of users who desire to anonymize an image.
[0005] Therefore, Patent Document 1 discloses a technique for selecting a concealment model from multiple concealment processing patterns according to the type of image to be concealed. According to this technique, the degree of concealment can be increased by changing the image concealment pattern according to the user's selection. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] Japanese Patent Publication No. 2021-131725 [Overview of the project] [Problems that the invention aims to solve]
[0007] However, using the technology described in Patent Document 1 requires maintaining multiple neural network models, which increases the amount of data in the neural network models used for anonymization.
[0008] This invention was made in view of the above-mentioned problems, and aims to improve the degree of confidentiality of the data to be confidentialed without increasing the amount of data in the neural network model when using a neural network for data confidentiality. [Means for solving the problem]
[0009] To achieve the above objective, the encryption device of the present invention uses a pre-trained neural network The neural network comprises an input layer that receives multidimensional data to be encrypted and one of a plurality of encryption key data, each associated with a different encryption method; a coupling layer that combines the data to be encrypted and the encryption key data in the dimensional direction to generate coupled data; and an encryption process that performs encryption on the coupled data using the encryption method corresponding to the encryption key data, wherein the coupled data is encrypted data. Encryption that generates encrypted data layers and It has. [Effects of the Invention]
[0010] According to the present invention, in data anonymization using a neural network, the degree of anonymization of the data to be anonymized can be improved without increasing the amount of data in the neural network model. [Brief explanation of the drawing]
[0011] [Figure 1] A block diagram showing an example configuration of an encryption device according to the first embodiment of the present invention. [Figure 2] A block diagram showing an example configuration of the neural network section according to the first embodiment. [Figure 3] A diagram showing an example of a learning method for the neural network section according to the first embodiment. [Figure 4] A flowchart illustrating the learning method of the neural network unit according to the first embodiment. [Figure 5] A diagram showing an example of the target of encryption processing when performing encryption by image processing according to the first embodiment. [Figure 6] A block diagram showing an example configuration of the neural network section according to the second embodiment. [Figure 7] A block diagram showing an example configuration of the neural network section according to the third embodiment. [Figure 8] A diagram showing an example of the learning method for the neural network section according to the fourth embodiment. [Figure 9] A block diagram showing the configuration of the encryption / decryption system according to the fifth embodiment. [Figure 10] A diagram showing an example of a learning method for the decoding unit according to the fifth embodiment. [Figure 11] A flowchart of the encryption key determination method of the encryption key determination unit according to the sixth embodiment. [Figure 12] A flowchart of the encryption key determination method of the encryption key determination unit according to the seventh embodiment. [Modes for carrying out the invention]
[0012] Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims. Although a plurality of features are described in the embodiments, not all of these plurality of features are essential for the invention, and the plurality of features may be arbitrarily combined. Further, in the accompanying drawings, the same or similar configurations are given the same reference numerals, and duplicate explanations are omitted.
[0013] <First Embodiment> [Configuration] FIG. 1 is a block diagram showing a configuration example of an encryption device 100 according to a first embodiment of the present invention. The encryption device 100 can encrypt privacy information in an image by performing an encryption process on, for example, an image captured by a camera and outputting encrypted data. Since the purpose of this embodiment is data anonymization, hereinafter, a method capable of anonymizing data will be generically referred to as encryption.
[0014] The input unit 101 receives the data to be encrypted, which is the data to be encrypted by the encryption device 100, and transmits the data to be encrypted to the neural network unit 102. The encryption key determination unit 104 determines the encryption key data to be used for the data to be encrypted and transmits the encryption key data to the neural network unit 102.
[0015] The neural network unit 102 generates encrypted data by performing processing by a neural network based on the data to be encrypted and the encryption key data, and transmits it to the output unit 103. In the present embodiment, the neural network unit 102 is assumed to be a processing unit capable of performing multiplication and addition operations and non-linear processing, which is adopted in a general neural network model.
[0016] The output unit 103 outputs the encrypted data from the encryption device 100. Regarding the output destination, it may be output to a storage via a bus in the device, or may be output to an external device via a communication network such as the Internet.
[0017] Memory 105 is a memory capable of storing information related to each process of the encryption device 100, such as the calculation results of the neural network and the model parameters used in the neural network. In this embodiment, each processing unit is described as directly exchanging data with each other, but the present invention is not limited to this, and for example, the input unit 101 can temporarily store the input data in memory 105, and the neural network unit 102 can process the data stored in memory 105 as input data using the neural network. The same applies to the other processing units.
[0018] In the following explanation, the data to be encrypted by the encryption device will be described as a two-dimensional image, but it may also be data other than an image.
[0019] [Neural Network Department] Figure 2 is a block diagram showing an example configuration of the neural network unit 102 in this embodiment. In this embodiment, the neural network unit 102 is assumed to be composed of a convolutional neural network (CNN). Generally, CNN processing includes bias addition and nonlinear processing, but details are omitted in this embodiment. However, the configuration of the neural network of the present invention is not limited to CNN, and may include operations such as fully connected processing. The neural network operation method itself is a known technology, so its explanation is omitted here.
[0020] In Figure 2, CNN <x>The `` represents a CNN layer, and `X` represents the layer number. `I` and `O` represent the input and output data for the layer, respectively; for example, `O2` indicates the output data for the second layer of the CNN. Input `I0_a` corresponds to the image to be encrypted, and input `I0_b` corresponds to the encryption key data. `dim` represents the number of data points in each dimension of the data before and after CNN processing.
[0021] In this embodiment, as shown in Figure 2, the data to be encrypted is three-dimensional and the encryption key data is one-dimensional. However, the present invention is not limited to these, and for example, the input I0_b may be multi-dimensional data.
[0022] Furthermore, in this embodiment, the data to be encrypted is a single image, and the number of data points in each dimension of the input I0_a is WxHx1, but multiple images may be input. For example, if five images are input, the number of data points in each dimension will be WxHx5.
[0023] The `concat` operation represents a dimensional concatenation process for two or more data sets. If two or more data sets have N-1 or more dimensions, the concat process allows them to be concatenated dimensionally, thus unifying subsequent CNN processing.
[0024] As shown in Figure 2, the neural network unit 102 has input layers that can accept data to be encrypted and encryption key data, respectively, and ultimately outputs a single encrypted data using a concat layer or the like.
[0025] [How to train a neural network] Next, the method for learning the parameters used in the neural network unit 102 in this embodiment will be described.
[0026] Figure 3 illustrates the learning method for the neural network unit 102. In this embodiment, the parameters used in the neural network unit 102 are acquired in advance by learning on a separate device such as a PC.
[0027] The neural network in Figure 3 is equivalent to the neural network configuration used in the neural network unit 102 in Figure 1, and the parameters used by the encryption device 100 are learned using this learning method. For learning, multiple sets of data to be encrypted and multiple sets of encryption key data are prepared. The encryption device 100 can perform different encryptions for each set of encryption key data prepared.
[0028] Furthermore, the encryption method, which indicates what type of encryption should be applied to the encryption key data, is predetermined, and training data corresponding to the predetermined encryption method is prepared as a combination of training images and encryption method. One encryption key data is associated with one encryption method.
[0029] The learning process involves taking the data to be encrypted and the encryption key data as inputs, comparing the training data (the desired encrypted data corresponding to the input combination) with the output data of the neural network, and optimizing the parameters.
[0030] In this learning method, updated parameters are generated through a parameter optimization process. Once the updated parameters are determined, they are provided to the neural network, and learning is performed using the next combination of data to be encrypted and encryption key data.
[0031] The above is an overview of the learning process. Note that the learning algorithms for neural networks, including backpropagation, are publicly known technologies and therefore will not be explained in this embodiment.
[0032] Figure 4 is a flowchart of the learning method in the neural network unit 102 according to this embodiment. In S401, the batch processing loop is started. A batch is a unit of learning in which all training images (multiple training data) are divided into units of a certain number of images. By repeating batch learning, the accuracy of the output data, that is, in this embodiment, the output result of the neural network approaches the desired encrypted data.
[0033] In S402, the processing loop for the data to be encrypted is started. In S403, the processing loop for the encryption method is started. In S404, processing is performed by a neural network using the target batch, target data to be encrypted, and target encryption method. In S405, parameter optimization processing is performed based on the output data and training data when using the target batch, target data to be encrypted, and target encryption method.
[0034] In S406, once processing of all encryption methods is complete, the encryption method processing loop is terminated. In S407, once processing of all data to be encrypted is complete, the data to be encrypted processing loop is terminated. In S408, once processing of all batches is complete, the batch processing loop is terminated.
[0035] In this way, it is possible to learn the parameters of a neural network that performs encryption processing according to predetermined encryption key data.
[0036] The parameters of the neural network generated in this embodiment set There doesn't have to be just one parameter. For example, one parameter could be a unit of encryption key data with a similar encryption method. set The system is trained to generate the necessary parameters for encryption key data with significantly different encryption methods. set You can separate them.
[0037] Specifically, the encryption methods to be included in the encryption method loop (S403 loop) in Figure 4 can be grouped, and parameters can be generated for each group. In this way, one parameter set This reduces the number of objects to be learned, making it easier to generate highly accurate parameters.
[0038] There are no restrictions on grouping; one parameter per encryption key data. set From the method of preparing all encryption key data, one parameter set The method of preparing the parameters is also within the scope of this embodiment. set The number increases and, There is a trade-off in that the amount of data required for the neural network's parameters increases.
[0039] [Encryption key data] In this embodiment, the encryption device 100 performs encryption processing according to the encryption key data determined by the encryption key determination unit 104. An example of encryption processing is the process of blurring an image, for example, the process of outputting a subjectively mosaic-like image, which is one type of encryption processing. By preparing a data sequence to be used as encryption key data for mosaicization in advance, and training the neural network using images that have been previously mosaicked as training data, it is possible to construct a neural network that outputs mosaic-encrypted data when the encryption key data for mosaicization is input.
[0040] Therefore, by preparing a data sequence to be used as encryption key data in advance for each of the multiple mosaic processing steps, and similarly associating the mosaic processed data with the encryption key data and training the model, it is possible to construct a neural network that performs one of the multiple mosaic processing steps by changing the encryption key data. Alternatively, encryption key data corresponding to the encoding algorithm used for image compression encoding may also be prepared.
[0041] Furthermore, the objective of this embodiment is privacy protection. The CNN used in the neural network in this embodiment is excellent at extracting image features, and is therefore adept at encryption that performs image processing and concealment according to the image features. In relation to image processing, it is possible to increase the number of variations in the encryption key data.
[0042] Figure 5 shows an example of the target of encryption when performing encryption by image processing according to this embodiment. Figure 5(a) shows the input image, Figure 5(b) shows the target of encryption processing when the entire human body is concealed, and Figure 5(c) shows the target of encryption processing when only the face is concealed. In this embodiment, the neural network may be trained to have encryption key data that abstracts the entire human body as shown in Figure 5(b), and encryption key data that partially abstracts only the face as shown in Figure 5(c). In this way, even with the same neural network, the concealment method can be changed simply by changing the encryption key data.
[0043] Note that Figure 5 merely shows the area to be processed; in actual encryption processing, image processing is performed only after certain information has been secured for decryption, such as through the mosaic effect described above.
[0044] As described above, according to the first embodiment, a neural network is constructed that takes encryption key data as input in addition to the data to be encrypted. This makes it possible to support multiple encryption methods simply by changing the encryption key data, and reduces the amount of data used in the neural network model for concealment.
[0045] <Second Embodiment> Next, a second embodiment of the present invention will be described. The encryption device 100 according to the second embodiment is the same as that shown in Figure 1, so its description will be omitted here. The difference from the first embodiment is the configuration of the input layer of the neural network.
[0046] Figure 6 shows an example configuration of the neural network unit 102 according to the second embodiment. As explained with reference to Figure 2, in the first embodiment, the number of dimensions of the data to be encrypted and the encryption key data were different. In contrast, in this embodiment, the encryption key data is prepared so that the dimensions of the input I0_a, which is the data to be encrypted, and the input I0_b, which is the encryption key data, are the same. By doing so, as shown in Figure 6, the data can be aggregated into one before CNN processing.
[0047] In the first embodiment, having two input layers necessitated CNN processing to adjust the dimensions so that data aggregation occurs during the neural network's processing. However, this dimensionality adjustment made it difficult to improve the accuracy of the neural network. The accuracy of the neural network as shown here refers to the agreement rate between the output data of the encryption device 100 and the training data generated using the target encryption method. A higher accuracy means that the output data generated is closer to the desired encryption during training.
[0048] As in this embodiment, by pre-aligning the number of dimensions and using only one input layer, dimensionality adjustment becomes unnecessary, allowing for the training of a highly accurate neural network and the construction of a highly secure encryption device 100.
[0049] The concat process shown in Figure 6 may be performed within the neural network unit 102, or the data to be encrypted and the encryption key data may be arranged sequentially in the memory 105 beforehand and input to the neural network unit 102 as a single data.
[0050] As described above, according to the second embodiment, more accurate encryption processing can be performed.
[0051] <Third Embodiment> Next, a third embodiment of the present invention will be described. The encryption device 100 according to the third embodiment is the same as that shown in Figure 1, so its description will be omitted here. The difference from the first embodiment is that the neural network unit 102 performs calculations that also handle processing other than encryption using the neural network.
[0052] Figure 7 shows an example of the configuration of the neural network unit 102 according to the third embodiment. Figure 7 shows an example in which super-resolution processing is performed in the first half of the neural network processing and encryption processing is performed in the latter half. Since the neural network unit 102 can perform various CNN processing according to pre-trained parameters, it is easy to add processing other than encryption during the encryption processing by the encryption device 100, regardless of super-resolution processing.
[0053] As described above, it becomes possible to perform neural network processing different from that of the encryption device without using a different processing unit, thus enabling the simultaneous execution of encryption processing and other processing without unnecessary processing overhead.
[0054] Although super-resolution processing was used as an example of processing different from encryption processing, the present invention is not limited to this, and other processing such as person detection may also be used. Furthermore, the entire super-resolution processing does not have to be performed by the encryption device 100, and a neural network configuration in which only a part of the super-resolution processing by a neural network (for example, the first half of the layer) is performed by the encryption device 100 is also acceptable.
[0055] In Figure 7, the super-resolution processing layer and the encryption processing layer are described as a neural network divided into a first and second half layer. However, this is not the only way to do it; it is sufficient to obtain output data that has undergone both super-resolution and encryption processing as a single neural network model. For example, during training, super-resolution processing is performed on the input data of the encryption device 100, and the resulting super-resolution processed data is then encrypted and used as training data to train the neural network. In this way, a neural network model can be generated that does not have the concept of being divided into a first and second half layer as described above.
[0056] <Fourth Embodiment> Next, a fourth embodiment of the present invention will be described. The encryption device 100 according to the fourth embodiment is the same as that shown in Figure 1, so its description will be omitted here. The difference from the first embodiment lies in the neural network training method.
[0057] Figure 8 shows an example of the learning method for the neural network unit 102 in this embodiment, and the table shows the encryption key data, training data, and error evaluation used in the learning of the neural network used in the encryption device 100.
[0058] In this embodiment, error evaluation refers to how the difference between the neural network's output data and the training data is reflected in parameter changes during the parameter optimization process. In this embodiment, the data before encryption is used as the training data. Furthermore, in the diagram showing an example of the learning method in this embodiment, an encryption device 100 that performs super-resolution processing as a different process from the encryption process shown in Figure 7 of the third embodiment is used. Therefore, the training data in learning is image data that has undergone super-resolution processing.
[0059] Generally, when the difference between the output data of a neural network and the training data is small, it means that the neural network's parameters are appropriate, so the amount of parameter change should be small. In this embodiment as well, when learning with the encryption key data in Figure 8 as the correct key, general parameter changes are made. Therefore, when the correct key is input, a neural network can be trained to output the super-resolution processing result.
[0060] On the other hand, in this embodiment, learning is also performed using a false key that represents a key other than the correct key as the encryption key data. In this case, the same data as the correct key is used as the training data, but the error evaluation method is changed. In the case of a false key, learning is performed so that the image does not approach the correct answer, that is, the image is significantly different from the super-resolution processing result which is the training data. In other words, the closer the difference between the training data and the output data, the larger the parameter change rate is set. Through this learning of false keys, when a false key is used, an image that is significantly different from the training data is generated, and the effect of concealing the image data is obtained.
[0061] As described above, according to the fourth embodiment, a neural network can be trained to conceal data to be encrypted by inputting key data other than one correct key.
[0062] Furthermore, as in the first embodiment, the training data for false keys may be changed according to the key.
[0063] <Fifth Embodiment> Next, a fifth embodiment of the present invention will be described. In the fifth embodiment, an encryption / decryption system including an encryption device 100 according to any of the first to fourth embodiments described above will be described.
[0064] Figure 9 shows an encryption / decryption system according to the fifth embodiment. The encryption / decryption system 300 represents a system including an encryption device 100 and a decryption device 200. Note that the encryption device 100 and the decryption device 200 do not need to be contained in a single device; for example, the encryption device 100 may be located in an edge device such as a camera, and the decryption device 200 may be located in a server device such as a cloud server.
[0065] The encryption device 100 has a configuration similar to that shown in Figure 1. However, the output unit 103 is capable of outputting not only encrypted data, but also encryption key data and decryption key information that forms a pair with the encryption key data and allows the decryption device 200 to infer the decryption key data. The decryption key information is stored in the memory 105. Alternatively, the decryption key information may be the encryption key data itself.
[0066] The decryption device 200 decrypts the encrypted data encrypted by the encryption device 100. The input unit 201 receives the encrypted data transmitted from the encryption device 100 and transmits it to the decryption unit 202. In the decryption device 200, the encrypted data is referred to as the data to be decrypted. The decryption key determination unit 203 determines the decryption key data to be used for the data to be decrypted and notifies the decryption unit 202. The decryption unit 202 generates decrypted data using the data to be decrypted and the decryption key data as input. In this embodiment, the decryption unit 202 is assumed to be composed of a neural network.
[0067] Memory 204 is a memory capable of storing information related to each process, similar to the memory 105 of the encryption device 100. In this embodiment, it is described that each processing unit directly exchanges data with each other, but the present invention is not limited to this, and the processing results of each processing unit may be stored in memory 204 once, and each processing unit may retrieve the necessary data from memory 204.
[0068] [Determining the decryption key] In this embodiment, the decryption key determination unit 203 generates decryption key data using the decryption key information received from the encryption device 100. Since the theft of the decryption key data poses a risk of a third party decrypting the data to be decrypted, the decryption key determination unit 203 converts the decryption key information into decryption key data according to a predetermined table and notifies the decryption unit 202. Note that the decryption key information may be the decryption key data itself.
[0069] [Training method for the neural network in decoding unit 202] Figure 10 illustrates a method for learning the parameters used in the neural network of the decoding unit 202. In this embodiment, the parameters used in the neural network are acquired in advance by learning them on a separate device such as a PC.
[0070] The neural network in Figure 10 is equivalent to the neural network configuration used in the decoding unit 202 in Figure 9, and the parameters used in the decoding device 200 are learned using this learning method. The learning method shown in Figure 10 is the same as the learning method shown in Figure 3 described in the first embodiment, and the neural network processing parameters of the decoding unit 202 are learned by using the data to be decrypted and the decryption key data as input data for the processing of the neural network of the decoding unit 202, and the data to be encrypted as training data. The parameter optimization process optimizes the parameters by comparing the training data, which is the desired data to be encrypted, with the output data of the neural network.
[0071] As described above, according to the fifth embodiment, it is possible to construct a system that can decrypt encrypted data and exchange confidential data.
[0072] In this embodiment, the decryption unit 202 is configured as a neural network using pre-trained parameters, but the present invention is not limited to this, and rule-based decryption may also be performed. In this case, a rule-based algorithm can be derived by repeatedly working backward from the calculations of the neural network unit 102 of the encryption device 100.
[0073] For example, suppose the neural network generated by the learning method of the fourth embodiment is used in the neural network unit 102, and the encrypted data y and false key α are sent to the decryption device 200, with x being the data to be encrypted. Let γ be the correct key. In this case, if the processing of the neural network unit 102 can be linearly separated as y = f(x) + α, then the data to be encrypted is x = f(x) + γ, and can be derived as x = y - α + γ.
[0074] It should be noted that the processing function of the neural network section 102 described above is merely an example; there are no restrictions on the processing function of the neural network as long as the data to be encrypted can be derived from the encrypted data y, the false key α, and the correct key γ.
[0075] <Sixth Embodiment> Next, a sixth embodiment of the present invention will be described. The encryption / decryption system 300 according to the sixth embodiment is the same as that shown in Figure 9, so its description will be omitted here. The difference from the fifth embodiment is that the decryption key data is synchronized with the encryption key data.
[0076] In the fifth embodiment, the encryption device 100 output decryption key information and transmitted it to the decryption device 200. However, considering the processing load of outputting the decryption key information and the risk of eavesdropping, it is desirable to avoid the communication of decryption key information from the encryption device 100 to the decryption device 200. Therefore, the encryption / decryption system 300 establishes an agreement regarding the timing of changes to the encryption key data (under predetermined conditions).
[0077] Figure 11 shows a flowchart of the encryption key determination method in the encryption key determination unit 104 according to this embodiment. First, in S1101, the encryption key determination unit 104 sets key table idx to 0. In this embodiment, multiple encryption key data are stored in a key table array, with each array element having one encryption key data.
[0078] In S1102, the encryption key determination unit 104 determines the encryption key data as the 0th element of the encryption key table. In other words, it determines the initial state of the encryption key data. Note that it is not limited to starting with element 0; it may start with a different element number.
[0079] In S1103, the encryption key determination unit 104 sets the timer's initial value to 0. In S1104, if the timer value is equal to or greater than a preset time, the encryption key determination unit 104 proceeds to S1105; otherwise, it repeats the process in S1104.
[0080] In S1105, the encryption key determination unit 104 increments the key table idx by 1. In S1106, the encryption key determination unit 104 determines the encryption key data to be the encryption key data stored at the idx element number of the encryption key table.
[0081] In S1107, the encryption key determination unit 104 terminates processing if it receives a processing termination command; otherwise, it returns to S1103 and repeats the above process.
[0082] By doing so, for example, if you set the time interval to 1 second, you can switch the encryption key data every second.
[0083] If the above mechanism is also applied to the decryption key determination unit 203 of the decryption device 200, the decryption key data can be determined at a similar timing, and the decryption key data corresponding to the encryption key data can be determined without receiving the decryption key information.
[0084] However, since this process cannot be completed unless the processing start time of the encryption key determination unit 104 and the processing start time of the decryption key determination unit 203 are synchronized, the processing start timing of the encryption key determination unit 104 is transmitted from the encryption device 100 to the decryption device 200 using the output unit 103 of the encryption device 100.
[0085] As described above, according to the sixth embodiment, a system can be constructed that can transfer confidential data without communicating decryption key information.
[0086] Note that instead of switching encryption key data, parameters may be used. For example, one encryption key could be used, and parameters could be switched every unit of time to perform different encryption at different times, thereby ensuring confidentiality. Similarly, multiple encryption key data and multiple parameters could be used. set You may switch between them in units of time.
[0087] <Seventh Embodiment> Next, a seventh embodiment of the present invention will be described. The encryption / decryption system 300 according to the seventh embodiment is the same as that shown in Figure 9, so its description will be omitted here. The difference from the sixth embodiment lies in how the decryption key data and the encryption key data are synchronized. In the sixth embodiment, the encryption key used was changed after a predetermined amount of time had elapsed, but in the seventh embodiment, the encryption key is changed according to the number of encryption processes (a predetermined condition).
[0088] Figure 12 shows a flowchart of the encryption key determination method of the encryption key determination unit 104 according to this embodiment. Note that the same steps as those shown in Figure 11 are given the same step numbers and their explanations are omitted.
[0089] In S1201, the encryption key determination unit 104 resets the processing count counter to 0. Then, in S1202, it determines whether or not encryption processing has been performed. If it has been performed, it proceeds to S1203 to increment the processing count counter by 1; otherwise, it returns to S1202. In S1204, the encryption key determination unit 104 determines whether the number of encryption processing steps, which is the number of times encryption has been performed by the encryption device 100, is the number set in advance. If this number is the number set in advance, it proceeds to S1105; otherwise, it returns to S1202 and repeats the above process.
[0090] By doing so, for example, if the number of settings is set to 1, the encryption key data can be switched for each encryption process.
[0091] If the above mechanism is also applied to the decryption key determination unit 203 of the decryption device 200, the decryption key data can be determined at a similar timing, and the decryption key data corresponding to the encryption key data can be determined without receiving the decryption key information.
[0092] However, this process will not work unless the initialization timing of the processing count counter of the encryption key determination unit 104 is synchronized with the initialization timing of the processing count counter of the decryption key determination unit 203. Therefore, the initialization timing of the processing count counter of the encryption key determination unit 104 is transmitted from the encryption device 100 to the decryption device 200 using the output unit 103 of the encryption device 100.
[0093] As described above, according to the seventh embodiment, a system can be constructed that can transfer confidential data without communicating decryption key information.
[0094] Note that parameters can be switched instead of encryption key data. For example, one encryption key data can be used, and parameters can be switched at predetermined processing intervals to perform different encryption for each predetermined processing interval, thereby ensuring confidentiality. Similarly, multiple encryption key data and multiple parameters can be used. set These may be switched at predetermined intervals.
[0095] <Other Embodiments> Furthermore, the present invention can also be realized by supplying a program that implements one or more of the functions of the above-described embodiments to a system or device via a network or storage medium, and by having one or more processors in the computer of that system or device read and execute the program. It can also be realized by a circuit (e.g., an ASIC) that implements one or more functions.
[0096] The invention is not limited to the embodiments described above, and various modifications and variations are possible without departing from the spirit and scope of the invention. Accordingly, claims are attached to disclose the scope of the invention. [Explanation of symbols]
[0097] 100: Encryption device, 101: Input unit, 102: Neural network unit, 103: Output unit, 104: Encryption key determination unit, 105: Memory, 200: Decryption device, 201: Input unit, 202: Decryption unit, 203: Decryption key determination unit, 204: Memory, 300: Encryption / decryption system< / x>
Claims
1. It has a pre-trained neural network, and the neural network is An input layer that takes multidimensional data to be encrypted and one of several encryption key data, each associated with a different encryption method, as input. A coupling layer that combines the data to be encrypted and the encryption key data in the dimensional direction to generate combined data, An encryption layer that performs encryption processing on the combined data using an encryption method corresponding to the encryption key data, and generates encrypted data in which the combined data has been encrypted. An encryption device characterized by having [a certain feature].
2. The encryption device according to claim 1, further comprising output means for outputting the encrypted data, or the encrypted data and the encryption key data, or information for inferring the encrypted data and the encryption key data.
3. The invention further comprises a determination means for determining the encryption key data to be input to the input layer, The encryption device according to claim 1 or 2, characterized in that the determination means determines the encryption key data to be input to the input layer by switching between the plurality of pre-set encryption key data according to predetermined conditions.
4. The encryption device according to claim 1 or 2, characterized in that, in the encryption layer, a plurality of parameters of the neural network used in the encryption method corresponding to the encryption key data are switched according to predetermined conditions.
5. The encryption device according to claim 3 or 4, characterized in that the predetermined condition is the elapsed time since the switching was performed.
6. The encryption device according to claim 3 or 4, characterized in that the predetermined condition is that the number of times encryption is performed in the encryption layer after the switching is performed is a predetermined number.
7. The encryption device according to any one of claims 1 to 6, characterized in that the neural network further performs at least a part of a first process different from encryption on the data to be encrypted prior to the coupling in the coupling layer, and in the coupling layer, the data to be encrypted after the first processing is performed is coupled with the encryption key data.
8. The encryption device according to any one of claims 1 to 7, characterized in that the number of dimensions of the data to be encrypted and the number of dimensions of the encryption key data are the same.
9. A method for learning a neural network used in an encryption device, characterized in that, for each of a plurality of training data corresponding to data to be encrypted, encryption is performed for each of a plurality of encryption key data, each of which is associated with a different encryption method, by combining a plurality of parameters used in the encryption method corresponding to each encryption key data, training data is prepared for each combination, and the neural network is trained so that the encrypted data from each combination approaches the corresponding training data.
10. A method for learning a neural network used in an encryption device, wherein for each of a plurality of training data corresponding to data to be encrypted, encryption is performed using a first key data and a second key data different from the first key data, from a plurality of encryption key data each associated with a different encryption scheme, and for each of the training data, training data corresponding to the data obtained by decrypting encrypted data encrypted using the first key data is prepared in the encryption layer. When the first key data is used, the encrypted data of each training data is trained to approach the corresponding training data. When the second key data is used, the encrypted data of each training data is learned to be different from the corresponding training data. A neural network learning method characterized by the following.
11. A decryption device for decrypting encrypted data encrypted by an encryption device, An input means for inputting the encrypted data and either the encryption key data used in the encryption or information for inferring the encryption key data from a plurality of encryption key data, each associated with a different encryption method. Decryption means for decrypting the encrypted data using the encrypted data and decryption key data associated with the encryption method corresponding to the encryption key data, A decoding device characterized by having the following features.
12. The decryption device according to claim 11, characterized in that the decryption means decrypts using a neural network that has been pre-trained based on the encrypted data, the decryption key data, and the data to be encrypted, which is the data before encryption.
13. The decoding device according to claim 12, characterized in that the neural network performs at least a part of a second process different from decoding.
14. An encryption device according to any one of claims 1 to 8, The decoding device according to any one of claims 11 to 13 and A system consisting of these elements.
15. The encryption device according to claim 3, The decoding device is as described in any one of claims 11 to 13, A system characterized in that the decryption key data in the decryption device is switched in synchronization with the switching of the encryption key data in the encryption device.
16. The encryption device according to claim 4, The decoding device according to claim 12 or 13 comprises, A system characterized by synchronizing the timing of switching parameters of the neural network in the encryption device and the timing of switching parameters used in the neural network in the decryption device.
17. An encryption device according to any one of claims 1 to 8, The decoding device is as described in any one of claims 11 to 13, In the encryption layer, the neural network is trained using the learning method described in claim 10, and encryption is performed using the second key data. The decryption means is characterized by decrypting the encrypted data using the encrypted data and decryption key data corresponding to the second key data.
18. An input step of inputting multidimensional data to be encrypted and encryption key data, each associated with a different encryption method, to a pre-trained neural network, The neural network performs a concatenation step of combining the input data to be encrypted and the encryption key data in the dimensional direction to generate concatenated data, An encryption step is performed on the combined data using an encryption method corresponding to the encryption key data to generate encrypted data, which is the combined data that has been encrypted. An encryption method characterized by having [a certain characteristic].
19. A decryption method for decrypting encrypted data encrypted by an encryption device using a decryption device, An input step in which the encrypted data and, from among a plurality of encryption key data each associated with a different encryption method, either the encryption key data used in the encryption or information for inferring the encryption key data are input; A decryption step in which the encrypted data is decrypted using the encrypted data and the decryption key data associated with the encryption method corresponding to the encryption key data, and A decoding method characterized by having the following features.
20. A program for causing a computer to function as one of the means of an encryption device according to any one of claims 1 to 8.
21. A program for causing a computer to function as one of the means of a decoding device according to any one of claims 11 to 13.
22. A computer-readable storage medium storing the program described in claim 20 or 21.