The present invention relates to a cypher system, a cypher apparatus, a cypher method, and a program.
In recent years, research and development for realizing an all-photonics network have been conducted. The all-photonics network aims at transmission with low power consumption, a high quality, a large capacity, and low latency, by applying optical technologies to all parts such as a network and a terminal. As for applying the technologies, on the assumption that the optical technology applies to the inside of the terminal, photoelectric fusion processors are also researched and developed. In such research and development, ψ gates and optical pass gate logic circuits, which are optical operation gates capable of performing logical operations in the form of optical signals, have been proposed. For example, Non-Patent Literature 1 proposes a ψ gate that allows for an optional logical operation, in which when a logical operation between optical signals of two input lights corresponding to two bits is performed, three input lights are obtained based on a concept of bias light, thereby changing intensity of the bias light or a phase difference between the bias light and the two input lights.
It is known that, in a case where a single-wavelength multiplexing scheme using two wavelengths is used, the ψ gate allows for multistage connection of 128 (=27) bit input and 1 bit output (1 bit output representing a result of a logical operation for 128 bits) by a logic gate having up to seven stages for four types of linearly separable logical operations: AND, NAND, OR, and NOR. In principle, a wavelength multiplexing scheme allows for doubling the number of input bits in accordance with the number of wavelength channels. On the other hand, for two types of linearly inseparable operations associated with an exclusive OR operation (XOR operation) and an XNOR operation, it is difficult to achieve the multistage connection only with the state of an optical signal as long as only optical interference is used, and only an operation for one bit (2-bit input and 1-bit output) can be performed. In addition, it is also difficult to perform a multistage operation including different logical operations such as an AND operation and an XOR operation.
Meanwhile, in a case where the optical technology is implemented in a device such as a terminal, in order to secure operations by the terminal and optical communication, there is need for an encryption technology (encryption method and authentication method) for performing an encryption operation using optical bit information, performing authentication of a device, detecting falsification of data, and the like. In addition, an encryption operation in an existing encryption technology is performed by using a multistage operation of XORs or a multistage operation including different logical operations such as an AND operation and an XOR operation.
On the other hand, as described above, in optical operation processing, it is difficult to implement the multistage operation including XOR operations, and it is also difficult to implement the multistage operation including the different logical operations such as an XOR operation and an AND operation. It is therefore difficult to implement an encryption operation by the optical operation processing.
An embodiment of the present invention has been made in view of the above points, and an object of the embodiment is to implement an encryption operation by optical operation processing.
In order to achieve the above object, in an encryption system according to an embodiment, a photoelectric fusion processor includes at least one of a Y gate circuit that superimposes optical signals on each other, an optical switching circuit that controls a path of an optical signal by an electrical signal, or a phase modulator that modulates a phase of an optical signal, and the photoelectric fusion processor executes, by using optical operation processing, an encryption operation including an exclusive OR operation of two or more bit values and a nonlinear operation of two or more bit values.
The encryption operation can be implemented by the optical operation processing.
An embodiment of the present invention will be described below. The present embodiment describes an encryption device 10 that uses optical operation processing to implement an encryption operation of an existing encryption technology (encryption method and authentication method). The authentication method can be considered as a kind of application of the encryption method, and the encryption operation is thus assumed to include not only calculation for encryption and decryption in the encryption method but also calculation for authentication/falsification detection and the like in the authentication method.
A configuration example of the encryption device 10 according to the present embodiment is illustrated in
The optical operation circuit 101 is a circuit (photoelectric fusion processor) that implements optical operation processing. The optical operation circuit 101 functions as an optical encryption operation unit 111 and an optical operation control unit 112 by one or more programs installed on the encryption device 10.
The optical encryption operation unit 111 implements an encryption operation by optical operation processing. In particular, the optical encryption operation unit 111 uses optical operation processing to implement an encryption operation using a multistage operation including XOR operations, a multistage operation including different logical operations such as an XOR operation and an AND operation, or the like. Furthermore, the optical encryption operation unit 111 performs not only optical operation processing but also photoelectric conversion (light-to-electricity conversion) for converting an intermediary value (intermediate value) into an electrical value, for example. In the optical operation processing, an optical signal is input, calculation is conducted in the form of an optical signal, and the calculation result is output in the form of an optical signal.
In a case where electrical signals are used to control a circuit (e.g., an optical switching circuit) that performs optical operation processing, the optical operation control unit 112 performs the control. For example, in a case where a Mach-Zehnder interferometer switch circuit, which is one of optical switching circuits, is used as described later, the optical operation control unit 112 uses an electronic signal to control a path of an optical signal input to the Mach-Zehnder interferometer switch circuit.
The optical transmitter 102 is a device (peripheral device of the optical operation circuit 101) that outputs an optical signal to the optical operation circuit 101. The optical transmitter 102 functions as a laser transmission unit 121 and a light source control unit 122 by one or more programs installed on the encryption device 10.
The laser transmission unit 121 functions as a light source for the optical operation circuit 101, and outputs an optical signal by laser light to the optical operation circuit 101 under the control of the light source control unit 122. Hereinafter, the laser transmission unit 121 is also referred to as the “light source 121”. The light source control unit 122 uses electrical signals to control the laser transmission unit 121 (e.g., performs control such that the laser transmission unit 121 outputs an optical signal).
The photodetector 103 is a device (peripheral device of the optical operation circuit 101) that detects an optical signal output from the optical operation circuit 101 and stores a calculation result represented by the optical signal in the memory 104. The photodetector 103 functions as a photodetection unit 131 and a photoelectric conversion unit 132 by one or more programs installed on the encryption device 10.
The photodetection unit 131 detects an optical signal output from the optical operation circuit 101. The photoelectric conversion unit 132 converts the optical signal detected by the photodetection unit 131 into an electrical signal, and stores, in the memory 104, information represented by the electronic signal (that is, information representing a result of calculation by the optical encryption operation unit 111).
The memory 104 is a storage device that stores information representing a result of calculation by the optical operation circuit 101 (e.g., an encryption result and a decryption result).
The configuration of the encryption device 10 illustrated in
While the encryption device 10 according to the present embodiment can use optical operation processing to implement an encryption operation for an optional encryption method or authentication method, the following description shows an example of an encryption operation in encryption processing of the AES (Reference Literature 1), which is a de facto standard for common key encryption methods. However, it is needless to say that an encryption operation in AES decryption processing can be implemented in a similar manner. It is needless to say that encryption operations in optional encryption methods and authentication methods such as one-time pad encryption, besides the AES, can be implemented in a similar manner.
The AES is constituted by a data operation unit and a key schedule unit. The data operation unit performs operation processing on data (this operation processing is also called “round processing”) to encrypt (or decrypt) the data, and the key schedule unit generates a round key to be used in the round processing from a secret key. A method of using optical operation processing to implement calculation in the data operation unit and the key schedule unit will be described below.
Round processing by the data operation unit includes four processes of SubBytes, ShiftRows, MixColumns, and AddRoundKey. In general, encryption/decryption processing includes a nonlinear operation unit, and the nonlinear operation unit is implemented by a combination of different logical operations such as an XOR operation and an AND operation. In the AES, SubBytes corresponds to the nonlinear operation unit.
Here, the number of times round processing is executed varies depending on a key length. The length (block length) of plaintext data is 128 bits, and the key length can be 128 bits, 192 bits, or 256 bits. While the present embodiment shows an example in which the key length is 128 bits, equivalent processing can be used for calculation for other key lengths.
An implementation example of the optical operation circuit 101 for realizing each component of the data operation unit of the AES by optical operation processing will be described below.
<<AddRoundKey with Initial Key>>
In the first operation processing of the AES, an XOR operation between 128 bits of an initial key (secret key) generated by the key schedule unit and 128 bits of a plaintext is performed. A 1-bit XOR operation (XOR operation of 128 bits in total) is available in the following three implementation examples (I), (II)-1, and (II)-2.
As illustrated in
The optical signal c after the optical signals a and b have passed through the Y gate circuit 201 is input to the photodetector 103. Then, the photodetection unit 131 of the photodetector 103 detects the optical signal c by direct detection for detecting the intensity of the optical signal, and the photoelectric conversion unit 132 outputs a voltage V or 0 in accordance with the intensity of the optical signal c. That is, the photoelectric conversion unit 132 outputs the voltage V if the intensity of the optical signal c is equal to or greater than a certain threshold, and outputs the voltage 0 if the intensity of the optical signal c is less than the threshold. At this time, the voltage V is set to bit 1, and the voltage 0 is set to bit 0. Thus, the result of the XOR operation of a and b is obtained as an output of the photodetector 103, and is stored in the memory 104.
Here, in order to perform the XOR operation for 128 bits, one Y gate circuit may be used 128 times, or 128 Y gate circuits may be used. It is also possible to perform the XOR operation for 128 bits with less than 128 Y gate circuits by using a plurality of the light sources 121 and using a plurality of optical signals having different frequencies as inputs.
In the present implementation example, the information of the secret key is optical signals, and it is therefore unnecessary to maintain the light state in a method of generating a secret key, and it is preferable to adopt an implementation method in which a key schedule is performed in parallel with encryption (on-the-fly key scheduling).
As illustrated in
When information representing the secret key is electrically retained, an electrical signal b corresponding to one bit of the secret key is allocated to an input of the MZI circuit 202, and an optical signal a corresponding to one bit of the plaintext and an optical signal a′ obtained by inverting a bit value of the optical signal a are allocated to an upper optical signal port and a lower optical signal port, respectively, as inputs to a path of the MZI circuit 202. In a case where a is an optical signal representing bit 1, a′ is an optical signal representing bit 0, and in a case where a is an optical signal representing bit 0, a′ is an optical signal representing bit 1. The optical signals a and a′ are output from the light source 121.
Here, as illustrated in
The paths of the optical signals a and a′ are controlled by the value of the electrical signal b corresponding to one bit of the secret key, and the value represented by an optical signal output from the lower optical signal port of the MZI circuit 202 is equivalent to the result of the XOR operation of a and b. That is, when the optical signal output from the lower optical signal port of the MZI circuit 202 is denoted by c, if the photodetection unit 131 of the photodetector 103 has detected an optical signal c (that is, if an optical signal c having a certain intensity or higher has reached the photodetector 103), the photoelectric conversion unit 132 outputs the voltage V, and if not, the photoelectric conversion unit 132 outputs the voltage 0. At this time, the voltage V is set to bit 1, and the voltage 0 is set to bit 0. Thus, the result of the XOR operation of a and b is obtained as an output of the photodetector 103, and is stored in the memory 104.
Here, in order to perform the XOR operation for 128 bits, one MZI circuit may be used 128 times, or 128 MZI circuits may be used. It is also possible to perform the XOR operation for 128 bits with less than 128 MZI circuits by using a plurality of the light sources 121 and using a plurality of optical signals having different frequencies as inputs.
As illustrated in
At this time, as fixed optical signals, an optical signal representing bit 0 and an optical signal representing bit 1 are input to the upper optical signal port and the lower optical signal port, respectively, of the 2-input port MZI circuit 203, and two electrical signals (an electrical signal a corresponding to one bit of the plaintext and an electrical signal b corresponding to one bit of the secret key) are individually input to two path control ports. The fixed optical signals are output from the light source 121.
Here, as illustrated in
Therefore, the paths of the optical signals are controlled by the value of the electrical signal a corresponding to one bit of the plaintext and the value of the electrical signal b corresponding to one bit of the secret key, and a value represented by an optical signal output from the lower optical signal port of the 2-input port MZI circuit 203 is equivalent to the result of the XOR operation of a and b. That is, when the optical signal output from the lower optical signal port of the 2-input port MZI circuit 203 is denoted by c, if the photodetection unit 131 of the photodetector 103 has detected an optical signal c (that is, if an optical signal c having a certain intensity or higher has reached the photodetector 103), the photoelectric conversion unit 132 outputs the voltage V, and if not, the photoelectric conversion unit 132 outputs the voltage 0. At this time, the voltage V is set to bit 1, and the voltage 0 is set to bit 0. Thus, the result of the XOR operation of a and b is obtained as an output of the photodetector 103, and is stored in the memory 104. In the present implementation example, it is necessary to electrically retain both the plaintext as a target of the XOR operation and the secret key in advance (or convert the optical signals into electrical signals).
Here, as in the implementation example (II)-1, in order to perform the XOR operation for 128 bits, one 2-input port MZI circuit may be used 128 times, or 128 2-input port MZI circuits may be used. It is also possible to perform the XOR operation for 128 bits with less than 128 2-input port MZI circuits by using a plurality of the light sources 121 and inputting a plurality of optical signals having different frequencies as fixed optical signals.
SubBytes processing of the AES includes a case where a table conversion table called S-Box is used and a case where affine transformation constituted by an inverse operation over an extension field (GF(28)) and an XOR operation is used. Hereinafter, a case where a table conversion table is used will be described.
As an example, SubBytes (8-bit input, 8-bit output) used for encryption in the AES will be described (Reference Literature 1). SubBytes used for decryption can be configured in a similar manner.
In the present embodiment, an implementation example will be described in which an electrical signal representing an 8-bit input of SubBytes is input and an optical signal representing one bit of an 8-bit output of SubBytes is output by using an optical pass gate logic circuit (Reference Literature 3).
At this time, the MZI circuits are connected with each other such that optical signals output from the upper optical signal ports of two MZI circuits in the previous stage are input to the optical signal ports of an MZI circuit in the next stage. Specifically, as illustrated in
Furthermore, in the memory 104, the least significant bit of an output result obtained by inputting each byte (0x00 to 0xFF in hexadecimal notation) to SubBytes is allocated as a memory value. For example, the output of SubBytes for 0x00 is 0x63, and thus, 1, which is the least significant bit of 0x63, is allocated to the top (most significant bit) of the memory value. Similarly, the output of SubBytes for 4x01 is 0x7c, and thus, 0, which is the least significant bit of 0x7c, is allocated to the second value (next to the top) in the memory value. Similarly thereafter, the least significant bit of the output of SubBytes for each of 0x02 to 0xFF is sequentially allocated to the memory value.
Then, for i=0, . . . , 127, an optical signal representing the 2i-th value from the top in the memory value and an optical signal representing the (2i+1)-th value are respectively input to the upper optical signal port and the lower optical signal port of the i-th MZI circuit in the first stage. These optical signals are output from the light source 121.
Thus, one bit represented by an optical signal output from the upper optical signal port of the MZI circuit 8001 in the eighth stage is the least significant one bit of the output of SubBytes for (x7x6x5x4x3x2x1x0)2. Note that the optical signal output from the upper optical signal port of the MZI circuit 8001 is detected by the photodetector 103, and a 1-bit value represented by the optical signal is stored in the memory 104. Specifically, when the photodetection unit 131 of the photodetector 103 has detected an optical signal having an intensity equal to or greater than a certain threshold, the photoelectric conversion unit 132 outputs the voltage V corresponding to bit 1, and the photoelectric conversion unit 132 outputs the voltage 0 corresponding to bit 0 at other times.
By implementing the optical operation circuit 101 as described above and controlling the path of each MZI circuit in accordance with a combination of (x7x6x5x4x3x2x1x0)0 input to SubBytes, any value (0 or 1) in 256 (=28) memory values can be output as the least significant bit of the 8-bit output of SubBytes.
Similarly, for the other bits of the 8-bit output of SubBytes, a value of the corresponding bit of an output result obtained by inputting each byte to SubBytes is allocated as a memory value, and thus, implementation is available. That is, in a case of outputting a value of the n-th bit (n=0, 1, . . . , 7) of the 8-bit output of SubBytes, the value of the n-th bit of an output result obtained by inputting each byte to SubBytes can be allocated as a memory value. Note that the bit of n=0 corresponds to the least significant bit.
The relationship between the input/output and the memory value in a case of implementing SubBytes by using an optical pass gate logic circuit is summarized below.
Operation processing of ShiftRows is performed by changing the connection of optical wiring. In the AES, a 0, 8, 16, or 24-bit cyclic shift is performed depending on the position of the intermediate value, and the optical operation circuit 101 is implemented such that the optical wiring of each bit is physically connected in accordance with the arrangement after the cyclic shift.
MixColumns and AddRoundKey in the AES are different types of operation processing (Reference Literature 1), and the present embodiment is based on the assumption that these two types of operation processing are simultaneously implemented.
MixColumns is operation processing corresponding to transposition in the AES, and is implemented by multiplication of a 32-bit matrix as illustrated in
Here, x1 to x4, which are 8-bit values, are expressed in binary numbers, and are expressed as follows. Note that ai, bi, ci, and di are 1-bit values, i=0, . . . , 7 holds, and i=0 is the least significant bit.
At this time, each bit of the binary representation (y17y16y15y14y13y12y11y10)2 of y1 can be expressed as follows.
Note that y10 is the least significant bit.
Here, consideration is given to executing AddRoundKey, which is processing to be performed subsequent to MixColumns, simultaneously with the above XOR operation. That is, consideration is given to performing an XOR operation with a round key simultaneously with calculation of y1.
When the number of rounds is denoted by i and the number of bytes is denoted by j, the round key (8 bits) is expressed by RKji(i=1, . . . , 9, j=0, . . . , 15). The binary notation of the round key for an XOR operation with y1 is expressed as follows.
At this time, when an XOR operation (that is, the operation of MixColumns) for obtaining y1 and an XOR operation of y1 and the round key are simultaneously performed, the following expression can be obtained.
From the above, it can be seen that it is necessary to perform a 6-bit XOR operation and an 8-bit XOR operation in order to simultaneously perform calculation of MixColumns and AddRoundKey.
Now, three types of implementation examples of a case where a 6-bit XOR operation and an 8-bit XOR operation are implemented by optical operation processing will be described below. While the description below shows, as an example, a case where an XOR operation of y10 and rk0 is performed in the 6-bit XOR operation and an XOR operation of y11 and rk1 is performed in the 8-bit XOR operation, another 6-bit XOR operation (XOR operation of y12 and rk2, XOR operation of y15 and rk5, XOR operation of y16 and rk6, or XOR operation of y17 and rk7) or another 8-bit XOR operation (XOR operation of y13 and rk3, or XOR operation of y14 and rk4) can be implemented with one circuit by using a multi-wavelength light source.
An implementation example of encoding into bit 1 or bit 0 in accordance with the amplitude (or intensity) of an optical signal will be described. In this implementation example, the amplitudes of light beams are superimposed on each other by using a Y gate circuit, and thus a 6-bit XOR operation or an 8-bit XOR operation is implemented.
In a case of performing a 6-bit XOR operation, as illustrated in
At this time, the amplitude (or intensity) of an optical signal output from the Y gate circuit 204 increases in accordance with the number of superimposed optical signals corresponding to bit 1. For the purpose of superimposing two optical signals in the same phase, a phase shifter for adjustment may be used in one of the paths of the Y gate circuit.
Therefore, the amplitude (or intensity) of the optical signal output from the Y gate circuit 204 may be detected by the photodetection unit 131 of the photodetector 103, and the photoelectric conversion unit 132 may perform threshold processing on the basis of the detection result and output an electrical signal corresponding to bit 0 or 1. Homodyne detection may be used to detect the amplitude of the optical signal, and direct detection may be used to detect the intensity.
In the threshold processing by the photoelectric conversion unit 132, an electrical signal corresponding to bit 0 or 1 is output depending on how many times of the amplitude (or intensity) of a single optical signal corresponding to bit 1 at the time of detection by the photodetection unit 131 is equivalent to the amplitude (or intensity) of the optical signal detected by the photodetection unit 131. That is, for example, the photoelectric conversion unit 132 stores in advance, in the memory 104, information in which a multiple and a bit value are associated with each other as follows (that is, information in which an even multiple (including 0 times) is associated with 0, and an odd multiple is associated with 1).
Then, the photoelectric conversion unit 132 may determine how many times of the amplitude (or intensity) of a single optical signal corresponding to bit 1 is equivalent to the amplitude (or intensity) of the optical signal detected by the photodetection unit 131, and output the bit value corresponding to the multiple. This bit value is the result of the XOR operation of y10 and rk0 (the result of the 6-bit XOR operation), and is stored in the memory 104. Unlike the implementation examples (B) and (C) to be described later, it is not necessary to perform photoelectric conversion when calculating the bit value represented by the optical signal output from the Y gate circuit 204 in the present implementation example.
In a case of performing an 8-bit XOR operation, as illustrated in
At this time, similarly to the 6-bit XOR operation, the amplitude (or intensity) of an optical signal output from the Y gate circuit 205 increases in accordance with the number of superimposed optical signals corresponding to bit 1. Thus, similarly to the 6-bit XOR operation, the amplitude (or intensity) of the optical signal output from the Y gate circuit 205 may be detected by the photodetection unit 131 of the photodetector 103, and the photoelectric conversion unit 132 may perform threshold processing on the basis of the detection result and output an electrical signal corresponding to bit 0 or 1. Note that, in the threshold processing, similarly to the 6-bit XOR operation, the determination result may be 0 in a case of an even multiple (including 0 times), and 1 in a case of an odd multiple. This bit value is the result of the XOR operation of y11 and rk1 (the result of the 8-bit XOR operation), and is stored in the memory 104.
An implementation example will be described in which bit 1 or bit 0 is encoded depending on a phase difference between two light beams by using a phase modulator (PM).
At this time, each of the PMs 206-1 to 206-6 shifts the phase of the input light by π if the value of the electrical signal input to the PM is 1, and outputs the input light as it is if the value of the electrical signal input to the PM is 0. Accordingly, in a case where an even number (including 0 number) of a7, b0, b7, c0, d0, and rk0 is 1, the phase difference between the input light and the reference light is 0, and in a case where an odd number of them is 1, the phase difference between the input light and the reference light is π. For example, in a case where the number of bits 1 among a7, b0, b7, c0, d0, and rk0 is two, the phase of the input light is 2π, and thus the phase difference from the reference light is 0. On the other hand, for example, in a case where the number of bits 1 is three, the phase of the input light is 3π, and thus the phase difference from the reference light is n.
Thus, the phase difference between the input light and the reference light is detected by the photodetection unit 131 of the photodetector 103 by homodyne detection (or heterodyne detection), and the photoelectric conversion unit 132 outputs a voltage −V if the detected phase difference is 0, and outputs a voltage V if the detected phase difference is π. Then, the electronic circuit 105 determines that the bit is 0 if the voltage −V has been input, and determines that the bit is 1 if the voltage V has been input, and then outputs an electrical signal representing the determination result. The value represented by this electrical signal is the result of the XOR operation of y10, and rk0 (the result of the 6-bit XOR operation), and is stored in the memory 104. Note that the photodetection unit 131 can detect an optical signal by heterodyne detection, but in that case, it is necessary to use reference light slightly shifted from the phase of the input light.
As illustrated in
As illustrated in
As a modification of the implementation example illustrated in
In this implementation example, input light passing through the lower path is always shifted by a phase π at the PM 208-7. Thus, the intensity of input light obtained by superimposing input light A and input light B on each other at the Y gate circuit 214 corresponds to a result of a 6-bit XOR operation of a7, b0, b7, c0, d0, and rk0.
For example, in a case where (a7, b0, b7, c0, d0, rk0)=(1, 1, 1, 1, 1, 1) holds, the phase difference between the input light A and the input light B is π. Therefore, in a case where the input light A and the input light B have been superimposed on each other at the Y gate circuit 214, the intensity of the optical signal output from the Y gate circuit 214 becomes 0. Thus, the voltage 0 is output from the photodetector 103, and an electrical signal representing bit 0 is finally output from the electronic circuit 105.
As another example, for example, in a case where (a7, b0, b7, c0, d0, rk0)=(1, 0, 0, 1, 1, 0) holds, the phase difference between the input light A and the input light B becomes 0. Therefore, in a case where the input light A and the input light B have been superimposed on each other at the Y gate circuit 214, the intensity of the optical signal output from the Y gate circuit 214 is twice the intensity of the original input light. Thus, the voltage V is output from the photodetector 103, and an electrical signal representing bit 1 is finally output from the electronic circuit 105.
As a modification of the implementation example illustrated in
As described above, it is possible to implement a 6-bit XOR operation and an 8-bit XOR operation also by the method using direct detection by the photodetector 103.
A method of expressing bit 1 or bit 0 by using an MZI circuit will be described.
At this time, in a case where an even number (including 0) of a7, b0, b7, c0, d0, and rk0 is bit 1, an optical signal from the light source 121 is output from the upper optical signal port of the MZI circuit 216-6. On the other hand, in a case where an odd number of them is bit 1, an optical signal from the light source 121 is output from the lower optical signal port of the MZI circuit 216-6. Therefore, the photodetector 103 may output an electrical signal representing bit 1 from the photoelectric conversion unit 132 if the photodetection unit 131 has detected an optical signal, and may output an electrical signal representing bit 0 from the photoelectric conversion unit 132 if the photodetection unit 131 has not detected an optical signal. The value represented by this electrical signal is the result of the XOR operation of y10, and rk0 (the result of the 6-bit XOR operation), and is stored in the memory 104.
At this time, as in the implementation example illustrated in
Furthermore, as an implementation example of the optical operation circuit 101 in a case where a 6-bit XOR operation is performed, an implementation example illustrated in
As illustrated in
At this time, in a case where an even number (including 0) of a7, b0, b7, c0, d0, and rk0 is bit 1, an optical signal from the light source 121 is output from the upper optical signal port of the 2-input port MZI circuit 220-3. On the other hand, in a case where an odd number of them is bit 1, an optical signal from the light source 121 is output from the lower optical signal port of the 2-input port MZI circuit 220-3. Therefore, as in the implementation example illustrated in
Similarly, as an implementation example of the optical operation circuit 101 in a case where an 8-bit XOR operation is performed, an implementation example illustrated in
As illustrated in
Furthermore, implementation is performed such that an optical signal output from the lower optical signal port of the 2-input port MZI circuit 222-4 is input to the photodetector 103.
At this time, as in the implementation example illustrated in
In the implementation examples described above, optical operation processing is used to implement one round of the data operation unit of the AES.
As illustrated in
SubBytes and ShiftRows are repeated 10 times for R=1 to 10. On the other hand, MixColumns and AddRoundKey with a round key are repeated nine times for R=1 to 9. MixColumns is not calculated at the time of R=10 (final round), and thus AddRoundKey at the time of R=10 is implemented in either of the implementation examples (I) and (II)-1. As a result, an XOR operation of the round key and intermediate data for the final round is conducted. Implementation in either of the implementation examples (I) and (II)-1 may depend on whether the round key is retained in the light state or retained electrically. Then, a result of calculation by AddRoundKey at the time of R=10 is used as an encryption result (electrical signal).
Hereinafter, a method of implementing calculation by the key schedule unit using optical operation processing in a case where the secret key is 128-bits long will be described. Also in a case where the secret key is 192-bits long or 256-bits long, implementation is possible by a similar method.
The key schedule unit divides the secret key (128 bits) into four blocks, 32 bits each, and conducts calculation. This operation processing includes an XOR operation between RotWord, SubWord, and Rcon, and an intermediate value (Reference Literature 1). At this time, it does not matter whether the secret key (initial key) is electrically retained or retained in the light state.
A method for determining a bit value depending on the amplitude of light will be described below.
In this processing, four blocks of 32 bits are divided into 8 bits, and 8-bit left rotation is performed. Thus, as in ShiftRows, in a case where the secret key or the round key of the previous stage is retained in the light state, this processing is implemented by changing the connection of the wiring (optical signal line). In a case where the secret key or the round key of the previous stage is electrically retained, implementation is achieved by changing the connection of the electric wiring.
In this processing, SubBytes used when each block is encrypted every 8 bits is applied. Thus, it is possible to use a SubBytes optical pass gate logic circuit using an MZI circuit. In a case where the initial key is electrically retained and RotWord outputs an electrical signal, the electrical signal is input to SubBytes as it is. On the other hand, in a case where the initial key is retained in the light state and RotWord outputs an optical signal, the optical signal needs to be converted into an electrical signal by photoelectric conversion and then input to SubBytes.
The j-th (0<j<12) Rcon is denoted by Rconj. Each Rconj is a 32-bit fixed value having 4 blocks of 8 bits each. Here, in the initial round of the key schedule, SubWord outputs w3′. Note that w3′ is 32 bits.
As illustrated in
The path control ports of the MZI circuits 224-1 to 224-5 receive Rcon1,i, w0,1, w1,i, w2,i, and w3,i, respectively.
The directional coupler 225-1 divides an optical signal output from the lower optical signal port of the MZI circuit 224-2, and outputs one of the divided optical signals to the photoelectric conversion 226. Similarly, the directional coupler 225-2 divides an optical signal output from the upper optical signal port of the MZI circuit 224-3, the directional coupler 225-3 divides an optical signal output from the lower optical signal port of the MZI circuit 224-4, and the directional coupler 225-4 divides an optical signal output from the upper optical signal port of the MZI circuit 224-5, and then each directional coupler outputs one of the divided optical signals to the photoelectric conversion 226. That is, the directional couplers are arranged alternately, such as the lower optical signal port, the upper optical signal port, and the lower optical signal port. A division ratio at which an optical signal is divided may be arbitrarily set.
The amplifiers 227-1 to 227-4 amplify the amplitude to obtain an electrical signal capable of controlling the path of an MZI circuit in the next round. Furthermore, since the amplitude is attenuated by the division of the optical signal, the amplitude is amplified by the amplifier 227-5. However, the amplifiers 227-1 to 227-5 are not essential, and all or some of the amplifiers 227-1 to 227-5 may be omitted in a case where the decrease in amplitude is negligible.
At this time, an output from the upper optical signal port of the MZI circuit 224-1 corresponds to an XOR operation of w3,i′ and Rcon1,i. Electrical signals w4,i, w5,i, w6,i, and w7,i that have been output from the photoelectric conversion 226 and have passed through the amplifiers 227-1 to 227-4 are input to the path control port of an MZI circuit in the next round. On the other hand, the optical signal w7,i that has passed through the amplifier 227-5 is used as an input in the next round, and whether an optical signal from the light source 121 in the next round is to be input to the upper optical signal port or the lower optical signal port of the first of the MZI circuits connected in series is controlled depending on whether the value of the optical signal w7,i is 0 or 1.
It is also possible to adopt an implementation in which input light having five wavelengths (λ1, λ2, λ3, λ4, and λ5) is used as an optical signal output from the light source 121.
The path control ports of the MZI circuits 228-1 to 228-5 receive Rcon1,i, w0,i, w1,i, w2,i, and w3,i, respectively.
The filter 229-1 is a filter using a ring resonator having the wavelength λ1 or the like, and extracts only optical signals having the wavelength λ1 from optical signals output from the lower optical signal port of the MZI circuit 228-2 and outputs the extracted optical signals to the photoelectric conversion 230. Similarly, the filter 229-2 is a filter using a ring resonator having the wavelength λ2 or the like, and extracts only optical signals having the wavelength λ2 from optical signals output from the upper optical signal port of the MZI circuit 228-3 and outputs the extracted optical signals to the photoelectric conversion 230. The same applies to the filters 229-3 and 229-4, in which the filter 229-3 extracts only optical signals having the wavelength λ3 from optical signals output from the lower optical signal port of the MZI circuit 228-4, and the filter 229-4 extracts only optical signals having the wavelength λ4 from optical signals output from the upper optical signal port of the MZI circuit 228-5, and then each filter outputs the extracted optical signals to the photoelectric conversion 230. The filters are arranged alternately, such as the lower optical signal port, the upper optical signal port, and the lower optical signal port.
The amplifiers 231-1 to 231-4 amplify the amplitude to obtain an electrical signal capable of controlling the path of an MZI circuit in the next round. However, the amplifiers 231-1 to 231-5 are not essential, and all or some of the amplifiers 231-1 to 231-5 may be omitted in a case where the decrease in amplitude is negligible. Optical signals are not divided in the implementation example illustrated in
At this time, an output from the upper optical signal port of the MZI circuit 228-1 corresponds to an XOR operation of w3,i′ and Rcon1,i. The electrical signals w4,i, w5,i, w6,i, and w7,i that have been output from the photoelectric conversion 230 and have passed through the amplifiers 231-1 to 231-4 are input to the path control port of an MZI circuit in the next round. On the other hand, the finally output optical signal w7,i is used as an input in the next round, and whether an optical signal from the light source 121 in the next round is to be input to the upper optical signal port or the lower optical signal port of the first of the MZI circuits connected in series is controlled depending on whether the value of the optical signal w7,i is 0 or 1.
By repeatedly executing the calculation by the implementation example illustrated in
Calculation in the key schedule unit can be performed by repeating an XOR operation between RotWord, SubWord, and Rcon, and an intermediate value for 10 rounds.
In the implementation examples described above, optical operation processing is used to implement one round of the key schedule unit of the AES.
As described above, the optical operation circuit 101 of the encryption device 10 according to the present embodiment is implemented by a Y gate circuit, an optical switching circuit, or the like, and can use optical operation processing to implement an XOR operation, a multistage XOR operation, and a nonlinear operation (implement, in particular, a multistage XOR operation and a nonlinear operation that have been conventionally difficult to perform). Therefore, the optical encryption operation unit 111 and the optical operation control unit 112 of the encryption device 10 according to the present embodiment can use optical operation processing to implement an encryption operation (e.g., encryption/decryption processing or authentication/verification processing) used in various encryption methods and authentication methods. While the above embodiment describes a case of using optical operation processing to implement an AES encryption operation by using optical operation processing to implement an XOR operation, a multistage XOR operation, and a nonlinear operation, it is needless to say that the encryption device 10 according to the present embodiment can use optical operation processing to implement an XOR operation, a multistage XOR operation, and a nonlinear operation of encryption operations in other encryption methods and authentication methods.
The present invention is not limited to the embodiment specifically disclosed above, and various modifications or changes, combinations with known technologies, and the like can be made without departing from the scope of the claims.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2021/032193 | 9/1/2021 | WO |