WO2012132622A1 - データ処理装置、およびデータ処理方法、並びにプログラム - Google Patents
データ処理装置、およびデータ処理方法、並びにプログラム Download PDFInfo
- Publication number
- WO2012132622A1 WO2012132622A1 PCT/JP2012/053932 JP2012053932W WO2012132622A1 WO 2012132622 A1 WO2012132622 A1 WO 2012132622A1 JP 2012053932 W JP2012053932 W JP 2012053932W WO 2012132622 A1 WO2012132622 A1 WO 2012132622A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- bit
- linear
- unit
- input
- Prior art date
Links
Images
Classifications
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
Definitions
- the present disclosure relates to a data processing device, a data processing method, and a program. More specifically, the present invention relates to, for example, a data processing apparatus that executes common key encryption, a data processing method, and a program.
- Cryptography is one of the components of information security technology, and at present, cryptography is used in various products and systems.
- common key block cipher There are various cryptographic processing algorithms, but one of the basic techniques is called common key block cipher.
- common key block encryption a key for encryption and a key for decryption are common.
- encryption processing and the decryption processing a plurality of keys are generated from the common key, and data conversion processing is repeatedly executed in a block unit, for example, block data units such as 64 bits, 128 bits and 256 bits.
- DES Data Encryption Standard
- AES Advanced Encryption Standard
- CLEFIA proposed by Sony Corporation in 2007 is one of the common key block ciphers.
- Such an algorithm of the common key block encryption mainly includes an encryption processing unit having a round function execution unit that repeatedly executes conversion of input data, and a key scheduling unit that generates a round key to be applied in each round of the round function unit. And composed of The key schedule unit first generates an expanded key with an increased number of bits based on the master key (primary key) which is a secret key, and applies it in each round function unit of the encryption processing unit based on the generated expanded key Generate a round key (secondary key).
- a structure in which a round function having a linear conversion unit and a non-linear conversion unit is repeatedly performed is known.
- a Feistel structure or a generalized Feistel structure is a typical structure.
- the Feistel structure and the generalized Feistel structure have a structure that converts plaintext into ciphertext by simple repetition of a round function including an F function as a data conversion function. In the F function, linear conversion processing and non-linear conversion processing are performed. Examples of documents that describe cryptographic processing to which the Feistel structure is applied include Non-Patent Document 1 and Non-Patent Document 2.
- the non-linear conversion process performed in the F function is performed by applying a non-linear conversion function called, for example, an S-box.
- This S-box is a component of block ciphers and hash functions, and is a very important function that determines its security and implementation performance.
- This S-box requires high security.
- the circuit scale becomes large in order to maintain high safety.
- the present disclosure has been made, for example, in view of the above-described situation, and it is an object of the present disclosure to provide a data processing apparatus, a data processing method, and a program including an S-box having security that can be miniaturized. .
- the first aspect of the present disclosure is It has a data conversion processing unit that divides and inputs configuration bits of data to be data processed into a plurality of lines, and repeatedly executes data conversion processing on data of each line,
- the data conversion processing unit It has an F function executor which receives data of one line constituting the plurality of lines and generates conversion data,
- the F function execution unit Having a non-linear conversion processing unit that executes non-linear conversion processing;
- the non-linear conversion processing unit A non-linear operation unit comprising one NAND or NOR operation unit and one XOR or XNOR operation unit; A bit permutation unit,
- the data processing apparatus has a repeating structure of
- the bit replacement unit has a wiring configuration that switches input / output bits to the non-linear operation unit.
- the non-linear conversion processing unit outputs one bit as a calculation result in a NAND or NOR operation unit with 2-bit input and 1-bit output to the XOR or XNOR operation unit. Then, XOR or XNOR operation with other input 1-bit data is executed, and 1-bit data generated as the XOR or XNOR operation result is output as a configuration bit of the non-linear conversion processing result.
- the non-linear conversion processing unit has a repetitive structure that repeats the non-linear operation unit n times or more in a configuration in which the non-linear conversion result of n-bit data is output.
- the non-linear operation unit in the configuration in which the non-linear conversion processing unit outputs non-linear conversion result of n-bit data, the non-linear operation unit is n times and the bit replacement unit is n times.
- the above-mentioned non-linear operation unit is set n-1 times.
- the non-linear conversion processing unit performs XOR with all the configuration bits of data to be non-linear conversion with the operation result of one NAND or NOR operation unit.
- the XNOR operation result is generated, and the XOR or XNOR operation result is output as a configuration bit of the non-linear conversion result.
- the non-linear conversion processing unit is configured to include both an XOR operation unit and an XNOR operation unit in the repetitive structure.
- the data processing device performs encryption processing that converts plaintext as input data into ciphertext, or decryption processing that converts ciphertext as input data into plaintext. Run.
- a second aspect of the present disclosure is: One NAND or NOR operation unit, A non-linear operation unit comprising one XOR or XNOR operation unit, A bit permutation unit,
- the data processing apparatus has a non-linear transformation processing unit having a repeating structure of
- the non-linear conversion processing unit performs XOR with all the configuration bits of data to be non-linear conversion with the operation result of one NAND or NOR operation unit.
- the XNOR operation result is generated, and the XOR or XNOR operation result is output as a configuration bit of the non-linear conversion result.
- the third aspect of the present disclosure is: Divide the configuration bits of data to be processed into multiple lines and input
- the data processing apparatus has a round function repeating structure having a non-linear function executor that inputs data of one line constituting a plurality of lines and generates conversion data.
- the non-linear function execution unit performs XOR with all the configuration bits of data to be non-linear conversion with the operation result of one NAND or NOR operation unit.
- the XNOR operation result is generated, and the XOR or XNOR operation result is output as a configuration bit of the non-linear conversion result.
- a fifth aspect of the present disclosure is: A program that causes a data processing apparatus to execute data conversion processing, The configuration bits of data to be processed are divided into a plurality of lines and input to the data processing unit, and data conversion processing for data of each line is repeatedly executed.
- the data conversion process The data of one line constituting the plurality of lines is input, and an F function for generating conversion data is executed.
- non-linear transformation processing is executed,
- a non-linear operation unit comprising one NAND or NOR operation unit and one XOR or XNOR operation unit; A bit permutation unit, It is in the program to execute the repetition operation which applied.
- the program of the present disclosure is, for example, a program provided by, for example, a storage medium to an information processing apparatus or computer system capable of executing various program codes. By executing such a program on a program execution unit on an information processing apparatus or computer system, processing according to the program is realized.
- a system is a logical set composition of a plurality of devices, and the device of each composition is not limited to what exists in the same case.
- a miniaturized nonlinear conversion unit has an encryption processing unit that divides the configuration bits of data to be processed into data into multiple lines and inputs them, and repeatedly executes data conversion processing that applies a round function to data of each line.
- the cryptographic processing unit has an F-function execution unit that inputs conversion data by inputting one line of data that configures a plurality of lines, and the F-function execution unit has a non-linear conversion processing unit that executes non-linear conversion processing.
- the non-linear conversion processing unit has a repetitive structure of one NAND or NOR operation unit, a non-linear operation unit including one XOR or XNOR operation unit, and a bit replacement unit. This repeated configuration realizes a miniaturized nonlinear conversion unit.
- composition which generates a large S-box combining two or more S-box which has input and output of small size. It is a figure explaining the example of composition which generates a large S-box combining two or more S-box which has input and output of small size. It is a figure explaining the example of composition which generates a large S-box combining two or more S-box which has input and output of small size. It is a figure explaining the example of composition which generates a large S-box combining two or more S-box which has input and output of small size. It is a figure explaining the example of composition which generates a large S-box combining two or more S-box which has input and output of small size.
- composition of 4-bit S-box by the repetition structure of logical operation and bit substitution. It is a figure explaining the example of composition of 4-bit S-box by the repetition structure of logical operation and bit substitution. It is a figure explaining the example of composition of 4-bit S-box by the repetition structure of logical operation and bit substitution. It is a figure explaining the example of composition of 4-bit S-box by the repetition structure of logical operation and bit substitution. It is a figure explaining the example of composition of 4-bit S-box by the repetition structure of logical operation and bit substitution. It is a figure explaining the example of composition of 4-bit S-box by the repetition structure of logical operation and bit substitution. It is a figure explaining the example of composition of 4-bit S-box by the repetition structure of logical operation and bit substitution.
- Common key block cipher As a common key block cipher (hereinafter, block cipher), it refers to the one defined below.
- the block cipher takes plaintext P and key K as input and outputs ciphertext C.
- the bit length of plaintext and ciphertext is called block size and written here by n.
- n can take any integer value, it is usually a value determined in advance for each block encryption algorithm.
- a block cipher having a block length of n may be called an n-bit block cipher.
- the bit length of the key is represented by k.
- the key can have any integer value.
- the common key block encryption algorithm will correspond to one or more key sizes.
- Plaintext P n bits
- Ciphertext C n bits
- Key K k bits
- FIG. 1 shows a diagram of an n-bit common key block encryption algorithm E corresponding to a key length of k bits.
- the decryption algorithm D corresponding to the encryption algorithm E can be defined as the inverse function E -1 of the encryption algorithm E, receives the ciphertext C and the key K as input, and outputs the plaintext P.
- FIG. 2 shows a diagram of a decryption algorithm D corresponding to the encryption algorithm E shown in FIG.
- Block ciphers can be considered in two parts.
- Key schedule section which outputs an expanded key K '(bit length k') obtained by expanding a bit length by a predetermined step
- P plaintext
- K 'expanded a key K 'expanded from the key schedule section
- a “data encryption unit” that converts data and outputs a ciphertext C.
- the data encryption unit used in the following embodiments can be divided into processing units called round functions.
- the round function receives two pieces of data as input, performs internal processing, and outputs one piece of data.
- One of the input data is n-bit data in the middle of encryption, and the output of the round function in one round is supplied as the input of the next round.
- Another input data uses a part of data of the expanded key output from the key schedule, and this key data is called a round key.
- the total number of round functions is called the total number of rounds, which is a value predetermined for each encryption algorithm.
- R represents the total number of rounds.
- the input data of the first round is X 1 viewed from the input side of the data encryption unit
- the data to be input to the i-th round function is X i
- the round key is RK i It is indicated as 4.
- the round function may take various forms depending on the block encryption algorithm. Round functions can be classified according to the structure adopted by the cryptographic algorithm. As typical structures, SPN structure, Feistel structure, and extended Feistel structure are exemplified here.
- (A) Feistel structure The n-bit input data is divided into two n / 2-bit data.
- a function (F function) having one of the data and the round key as input is applied, and the output is exclusively ORed to the other data. After that, the left and right sides of the data are used as output data.
- F function function having one of the data and the round key as input
- the output is exclusively ORed to the other data.
- the left and right sides of the data are used as output data.
- There are various types of internal configurations of the F function but basically, it is realized by a combination of exclusive OR operation with round key data, non-linear operation, and linear transformation as in the SPN structure.
- FIG. 6 shows an example of the round function of the Feistel structure.
- the non-linear transformation processing unit tends to have a high implementation cost as the size of the input data increases.
- the target data is often divided into a plurality of units, and a configuration in which non-linear transformation is performed on each of the units is often employed. For example, assuming that the input size is ms bits, they are divided into m pieces of s-bit data, and non-linear conversion with s-bit input / output is performed on each of them.
- the non-linear transformation of those s-bit units is called S-box. An example is shown in FIG.
- the linear transformation processing unit can be defined as a matrix by its nature.
- the elements of a matrix can generally be expressed in various ways, such as elements of fields of GF (2 8 ) and elements of GF (2).
- FIG. 10 shows an example of a linear transformation processing unit which has ms bit input / output and is defined by an m ⁇ m matrix defined on GF (2 s ).
- the non-linear conversion process performed in the F function is performed by applying a non-linear conversion function called, for example, an S-box.
- This S-box is a component of block ciphers and hash functions, and is a very important function that determines its security and implementation performance.
- bijective means that every value of the output is a mapping from the value of only one input.
- S-box (Safety aspect) The nature of the S-box has a major impact on the security of the overall cipher. Strict security evaluation of the whole encryption and round function itself is generally difficult due to the large input / output size, but the input / output size of S-box is generally small (about 8-bit input / output) So strict evaluation is possible. At least the following characteristics (1) to (4) are required for the S-box in order to increase the security of the entire encryption.
- the maximum difference probability is defined as the highest probability among all the input / output difference combinations. Each is defined by a formula below. If the differential probability of the function S given the input difference ⁇ x and the output difference ⁇ y is defined as DPs ( ⁇ x, ⁇ y), DPs ( ⁇ x, ⁇ y) is defined as follows.
- the maximum difference probability MDPs of the function is defined as follows.
- the maximum difference probability MLPs of the function S is defined as follows.
- the Boolean algebra degree when the Boolean algebra degree is sufficiently large when performing the Boolean polynomial representation means the degree when the bit of the output of the S-box is represented by the Boolean expression of the input bit.
- S-box is also required to have high implementation performance aside from safety requirements. Since software implementation is usually implemented by a method called table lookup (table implementation), the implementation performance does not depend much on the internal structure of S-box. However, in hardware implementation, the internal structure of the S-box greatly affects the implementation performance. Therefore, it can be said that the internal structure of S-box is particularly important in hardware implementation performance.
- an optimal S-box can be configured in terms of maximum differential probability and maximum linear probability (however, this method reduces the number of terms in polynomial expression of input and output, so it is appropriate Need to add affine conversion).
- AES Non-Patent Document 3: US National Institute of Standards and Technology, Advanced Encryption Standard, Federal Information Processing Standards Publications No. 197, 2001.
- Camellia Non-Patent Document 4: Aoki, Ichikawa, Kanda, Matsui, Sori, Nakao, Tokita, S-box of "128-bit block cipher Camellia algorithm specification", version 2.0, 2001.
- AES and Camellia's S-box can also construct an S-box as an inverse function on GF ((2 4 ) 2 ), so it has very good characteristics from the viewpoint of safety as well as very high hardware. It also has wear performance.
- FIGS. The respective structures are shown in FIGS. In these structures, the table size is smaller and the hardware implementation cost is smaller than when random large S-boxes are generated as described above.
- FIG. 11 is a configuration for executing non-linear conversion processing of 8-bit input data.
- Three S-boxes that execute non-linear conversion processing of 4-bit data S4 0 , S4 1 , S4 2 , There are three placemental logic units that perform an exclusive OR operation on the output 4 bits of each S-box and the other 4 bits.
- 8-bit input data is input to the left line input and the right line input by 4 bits each.
- 8-bit data as a non-linear conversion result using the three S-boxes S4 0 , S4 1 and S4 2 are output 4 bits each from the left line output and the right line output.
- Processing is performed according to the following processing sequence.
- FIG. 11 is a configuration for executing non-linear conversion processing of 8-bit input data by the above processing.
- S-box performing non-linear conversion of 4-bit data: S4 0 , S4 2 , S-box: S4 non-linear transformation unit performs the inverse operation of the 1: S4 1 -1, Multiple exclusive OR operation units, It is a non-linear conversion processing configuration configured by a combination of these.
- Figure 14 S-box performing non-linear conversion of 4-bit data: S4 0 , S4 1 , S4 2 , Multiple exclusive OR operation units, Multiple OR operation units, It is a non-linear conversion processing configuration configured by a combination of these.
- Figure 15 shows S-box performing non-linear conversion of 4-bit data: SS 0 , SS 1 , SS 2 , SS 3 , Matrix transformation execution unit that executes data transformation applying a 2 ⁇ 2 matrix (MDS matrix), It is a non-linear conversion processing configuration configured by a combination of these.
- MDS matrix 2 ⁇ 2 matrix
- said (1) is a structure which solves above-mentioned (Problem 1), and (2) can solve (Problem 2).
- a configuration in which (1) and (2) are combined is also possible, and it is possible to solve both (Problems 1 and 2) by this combined configuration.
- the S-box can be realized by a combination of various logic circuits.
- the proposed S-box exchanges the bit position with the "nonlinear operation unit" based on basic logical operations such as AND (logical product), OR (logical sum), NOT (logical negation), etc.
- the S-box is configured by repeating these two parts of the bit substitution section as basic elements.
- the bit permutation unit simply transposes bit positions.
- the S-box is generated by repeating the non-linear operation unit and the bit replacement unit a plurality of times.
- the non-linear operation unit and the bit replacement unit may be changed each time it is repeated or the same one may be used.
- n-bit S-box In general, to construct a safe n-bit S-box, it is necessary to repeat n or more non-linear operation parts, so the n repetition structure does not greatly impair the safety in this construction method It is considered to be the smallest configuration in. In addition, since the bit replacement unit in the final round does not affect the safety and the circuit size, it can be omitted without execution.
- the non-linear operation unit includes the NAND or NOR operation unit and the XOR or XNOR operation unit, mixing the XOR operation unit and the XNOR operation unit in the n repetition structure It is possible to eliminate fixed points in the non-linear transformation process. Therefore, in order to realize non-linear conversion processing that does not generate a fixed point, it is preferable to have a configuration in which the XOR operation unit and the XNOR operation unit are mixed in the n-time repetitive structure of the non-linear operation unit.
- Non-linear operation unit is configured of only one NAND or NOR operation and one XOR or XNOR operation. It is known that NAND / NOR operations can be implemented with small circuits among non-linear basic logic operations that perform non-linear processing on inputs. Other than this NAND / NOR operation, only XOR / XNOR operation is used to secure bijectivity. Therefore, in this non-linear operation part, it can be said that hardware implementation cost (necessary circuit scale) is the smallest class among bijective non-linear functions. Furthermore, in the hardware implementation, the bit replacement unit can be implemented only by changing the wiring, and does not affect the necessary circuit size. That is, it can be said that the hardware implementation cost (the required circuit size) is zero.
- the hardware implementation cost (required circuit size) can be easily estimated without using a logic synthesis tool or the like by evaluating the number of logical operators, that is, the number of repetitions.
- the circuit scale can easily be estimated, so it is easy to select the optimal S-box It will be possible.
- a plurality of S-boxes having the same hardware implementation cost can be configured.
- the logic operator used in the non-linear operation unit and the type of bit substitution used in the bit substitution unit have a freedom of choice, and the types may be different for each repetition.
- S-box can be configured. This contributes to the ability to select the optimum one from the S-box with the same hardware implementation cost (necessary circuit size) in combination with the high-order function and other functions.
- the first stage non-linear operation unit is configured by NAND and XNOR. Two bits of the input 4 bits are input to the first stage NAND, and an output bit thereof is input to the first stage XNOR to perform an XNOR operation with one bit of the input 4 bits. The execution result of the first stage XNOR operation is set as an output bit, and is further input to the NAND of the third to fourth stage non-linear portions.
- the second non-linear operation unit is configured by NAND and XOR. Two bits of the input 4 bits are input to the second stage NAND, and an output bit thereof is input to the second stage XOR to perform an XOR operation with one bit of the input 4 bits. The execution result of the second stage XOR operation is set as an output bit, and is further input to the NAND of the fourth stage non-linear portion.
- the third non-linear operation unit is configured by NAND and XOR. Input 1 bit out of the 4 input bits and the execution result of the 1st stage XNOR operation to the 3rd NAND, input its output bit to the 3rd stage XOR, and input 1 bit in the 4 input bits Perform an XOR operation. The execution result of the third stage XOR operation is set to the output bit.
- the fourth non-linear operation unit is configured by NAND and XOR.
- the execution result of the first stage XNOR operation and the execution result of the second stage XOR operation are input to the fourth stage NAND, the output bit thereof is input to the fourth stage XOR, and one of the input 4 bits Perform an XOR operation with a bit.
- the execution result of the fourth stage XOR operation is set to the output bit.
- This 4-bit S-box is the item [2. Both the maximum differential probability and the maximum linear probability, which are the conditions of the highly secure S-box described in the section “S-box”, are 2 ⁇ 2 . This is an optimal value in the 4-bit S-box, and the hardware implementation cost is smaller than that of the randomly generated 4-bit S-box.
- this 4-bit S-box is safe and excellent in hardware implementation performance.
- Specific examples of other S-boxes having the same optimal differential probability, linear probability, and the same circuit scale (the same number of repetitions) are shown in FIGS.
- the bit substitution of the final stage is omitted in the example shown in FIGS. 16 to 20, any configuration can be made regardless of whether the bit substitution of the final stage is set or not.
- the 4-bit S-box shown in FIG. 17 is composed of four NORs, three XNORs, and one XOR.
- the 4-bit S-box shown in FIG. 18 is composed of three NANDs, one NOR, three XNORs, and one XOR.
- the 4-bit S-box shown in FIG. 19 is composed of three NANDs, one NOR, three XNORs, and one XOR.
- the 4-bit S-box shown in FIG. 20 is composed of four NORs, one XNOR, and three XORs.
- the configuration and processing of the 4-bit S-box shown in each drawing will be described.
- the 4-bit S-box shown in FIG. 17 has a 4-stage repeat structure of a combination of a non-linear operation unit and a bit replacement unit, and the non-linear processing portion includes 4 NORs, 3 XNORs, and 1 XOR. It is configured. Although the bit substitution of the final stage is omitted in the drawing, any configuration can be made regardless of whether the bit substitution of the final stage is set or not.
- the first stage non-linear operation unit is configured by NOR and XNOR. Two bits of the input 4 bits are input to the first stage NOR, and an output bit thereof is input to the first stage XNOR to perform an XNOR operation with one bit of the input 4 bits. The execution result of the first stage XNOR operation is set as an output bit, and is further input to the NOR of the non-linear portion of the third to fourth stages.
- the second non-linear operation unit is composed of NOR and XNOR. Two bits of the input 4 bits are input to the second stage NOR, an output bit thereof is input to the second stage XNOR, and an XNOR operation is performed with one bit of the input 4 bits. The execution result of the second stage XNOR operation is set as an output bit, and is further input to the NOR of the non-linear portion of the fourth stage.
- the third stage of the non-linear operation unit is composed of NOR and XNOR. Input 1 bit out of 4 input bits and the execution result of 1st stage XNOR operation to NOR of 3rd stage, input its output bit to 3rd stage XNOR, 1 bit out of 4 input bits and Perform XNOR operation. The execution result of the third stage XNOR operation is set to the output bit.
- the fourth non-linear operation unit is configured by NOR and XOR.
- the execution result of the first stage XNOR operation and the execution result of the second stage XNOR operation are input to the fourth stage NOR, the output bit thereof is input to the fourth stage XOR, and 1 of the input 4 bits Perform an XOR operation with a bit.
- the execution result of the fourth stage XOR operation is set to the output bit.
- the 4-bit S-box shown in FIG. 18 has a 4-stage repeat structure of a combination configuration of a non-linear operation unit and a bit replacement unit, and the non-linear processing portion includes three NANDs, one NOR, and three XNORs. , Consists of one XOR. Although the bit substitution of the final stage is omitted in the drawing, any configuration can be made regardless of whether the bit substitution of the final stage is set or not.
- the first stage non-linear operation unit is configured by NAND and XNOR. Two bits of the input 4 bits are input to the first stage NAND, and an output bit thereof is input to the first stage XNOR to perform an XNOR operation with one bit of the input 4 bits.
- the execution result of the first stage XNOR operation is set as an output bit, and is further input to the NOR and NAND of the non-linear portion of the third to fourth stages.
- the second non-linear operation unit is configured by NAND and XOR. Two bits of the input 4 bits are input to the second stage NAND, and an output bit thereof is input to the second stage XOR to perform an XOR operation with one bit of the input 4 bits. The execution result of the second stage XOR operation is set as an output bit, and is further input to the NAND of the fourth stage non-linear portion.
- the fourth non-linear operation unit is configured by NAND and XNOR.
- the execution result of the first stage XNOR operation and the execution result of the second stage XOR operation are input to the fourth stage NAND, the output bit thereof is input to the fourth stage XNOR, and 1 of the input 4 bits Perform bit and XNOR operations.
- the execution result of the fourth stage XNOR operation is set to the output bit.
- the 4-bit S-box shown in FIG. 19 has a 4-stage repeat structure of a combination configuration of a non-linear operation unit and a bit replacement unit, and the non-linear processing portion includes three NANDs, one NOR, and three XNORs. , Consists of one XOR. Although the bit substitution of the final stage is omitted in the drawing, any configuration can be made regardless of whether the bit substitution of the final stage is set or not.
- the first non-linear operation unit is configured by NAND and XOR. Two bits of the input 4 bits are input to the first stage NAND, and an output bit thereof is input to the first stage XOR to perform an XOR operation with one bit of the input 4 bits.
- the execution result of the first-stage XOR operation is set as an output bit, and is further input to the NOR and NAND of the second to third non-linear portions.
- the second non-linear operation unit is composed of NOR and XNOR. 1 bit out of 4 input bits and the execution result of the first stage XOR operation are input to NOR of the second stage, the output bit is input to XNOR in the second stage, 1 bit out of 4 input bits and Perform XNOR operation.
- the execution result of the second stage XNOR operation is set as an output bit, and is further input to the NAND of the fourth stage non-linear portion.
- the third stage non-linear operation unit is configured of NAND and XNOR. Input 1 bit out of the 4 input bits and the execution result of the 1st stage XNOR operation to the 3rd stage NAND, input its output bit to the 3rd stage XNOR, 1 bit out of the 4 input bits and Perform XNOR operation. The execution result of the third stage XNOR operation is set to the output bit.
- the fourth non-linear operation unit is configured by NAND and XNOR.
- the execution result of the second stage XNOR operation and the execution result of the third stage XNOR operation are input to the fourth stage NAND, the output bit thereof is input to the fourth stage XNOR, and 1 of the input 4 bits Perform bit and XNOR operations.
- the execution result of the fourth stage XNOR operation is set to the output bit.
- the 4-bit S-box shown in FIG. 20 has a 4-stage repeat structure of a combination configuration of a non-linear operation unit and a bit replacement unit, and the non-linear processing portion comprises four NORs, one XNOR, and three XORs. It is configured. Although the bit substitution of the final stage is omitted in the drawing, any configuration can be made regardless of whether the bit substitution of the final stage is set or not.
- the first non-linear operation unit is configured by NOR and XOR. Two bits in the input 4 bits are input to the first stage NOR, and an output bit thereof is input to the first stage XOR to perform an XOR operation with one bit in the input 4 bits. The execution result of the first stage XOR operation is set as an output bit, and is further input to the NOR of the non-linear portion of the third to fourth stages.
- the second non-linear operation unit is configured by NOR and XOR. Two bits of the input 4 bits are input to the second stage NOR, and an output bit thereof is input to the second stage XOR to perform an XOR operation with one bit of the input 4 bits. The execution result of the second stage XOR operation is set as an output bit, and is further input to the NOR of the fourth stage non-linear portion.
- the third stage of the non-linear operation unit is composed of NOR and XNOR. 1 bit out of 4 input bits and the execution result of the first stage XOR operation are input to the 3rd NOR, the output bit is input to the 3rd stage XNOR, 1 bit out of 4 input bits Perform XNOR operation. The execution result of the third stage XNOR operation is set to the output bit.
- the fourth non-linear operation unit is configured by NOR and XOR.
- the execution result of the first stage XOR operation and the execution result of the second stage XOR operation are input to the fourth stage NOR, the output bit thereof is input to the fourth stage XOR, and 1 of the input 4 bits Perform an XOR operation with a bit.
- the execution result of the fourth stage XOR operation is set to the output bit.
- FIG. 21 a configuration example of 5-bit S-box is shown in FIG.
- the 5-bit S-box shown in FIG. 21 has a 5-stage repeat structure of a combination configuration of a non-linear operation unit and a bit replacement unit, and the non-linear operation unit comprises 5 NANDs, 4 XORs, and 1 XNOR. It is done.
- the bit substitution of the final stage is omitted in the drawing, any configuration can be made regardless of whether the bit substitution of the final stage is set or not.
- the third non-linear operation unit is configured by NAND and XOR. Two bits of the input 5 bits are input to the third stage NAND, and an output bit thereof is input to the third stage XOR to perform an XOR operation with one bit of the input 5 bits. The execution result of the third stage XOR operation is set to the output bit.
- the fourth non-linear operation unit is configured by NAND and XOR. Input 1 bit out of the 5 bits of the input and the execution result of the first stage XOR operation to the 4th stage NAND, input its output bit to the 4th stage XOR, 1 bit out of the 5 input bits and Perform an XOR operation. The execution result of the fourth stage XOR operation is set to the output bit.
- the fifth non-linear operation unit is configured by NAND and XOR. Input the execution result of the XOR operation of the first stage and the execution result of the XNOR operation of the second stage to the NAND of the fifth stage, input its output bit to the XOR of the fifth stage, and select 1 in 5 bits of the input Perform an XOR operation with a bit. The execution result of the fifth stage XOR operation is set to the output bit.
- a large sized S-box When constructing a large sized S-box from small sized S-boxes, it is configured to have a repeating structure of a specific function. Specifically, a large S-box having a relatively small hardware implementation cost (necessary circuit scale) is first generated from a small-sized S-box, and the large S-box is repeated. This makes it possible to construct a large S-box having a repetitive structure from small S-boxes.
- the n bits are divided into four n / 4 bits and input to four lines, and each line data is divided by a small S-box and an XOR circuit. It has a configuration in which calculation processing and rotation by a rotation (Rotation) execution unit of each line data unit are repeatedly performed in a plurality of stages.
- the configuration shown in FIG. 22 has an application configuration of one S-box and one XOR circuit in each stage, and generates an application result of an n / 4-bit S-box and an XOR circuit in the preceding processing stage, The n / 4 bit line unit data is rotated with respect to the n / 4 bit operation result and other unprocessed data, and the rotation result is output to the next processing stage.
- the configuration shown in FIG. 23 has an application configuration of two S-boxes and two XOR circuits in each stage, and results of application of the n / 4-bit S-box and XOR circuits in two lines in the preceding processing stage (2 ⁇ (n / 4) bits) are generated, n / 4-bit line unit data rotation is performed on the 2-line operation result and other 2 lines of unprocessed data, and the rotation result is next Output to the processing stage of
- the configuration shown in FIG. 24 has an application configuration of one S-box and two XOR circuits in each stage, and in the preceding processing stage, Application result of n / 4 bit S-box, Application result of n / 4 bit S-box and XOR circuit, Application result of n / 4 bit XOR circuit, To rotate the n / 4-bit line unit data of these three n / 4-bit operation results and other unprocessed data, and output the rotation result to the next processing stage. have.
- the configuration shown in FIG. 25 has an application configuration of two S-boxes and two XOR circuits in each stage, and in the preceding processing stage, Application result of two n / 4 bits S-box, Application results of two n / 4-bit S-boxes and an XOR circuit, , And rotates the n / 4-bit line unit data with respect to these four n / 4-bit operation results, and outputs the rotation result to the next processing stage.
- the configuration shown in FIG. 26 has an application configuration of one S-box and two XOR circuits in each stage, and in the preceding processing stage, Application result of n / 4 bit S-box and XOR circuit, Application result of n / 4 bit XOR circuit, To rotate the n / 4-bit line unit data with respect to these two n / 4-bit operation results and other unprocessed data, and output the rotation result to the next processing stage. have.
- the configuration shown in FIG. 27 has an application configuration of two S-boxes and two XOR circuits in each stage, and in the preceding processing stage, Application result of 2 n / 4 bit S-box and XOR circuit, To rotate the n / 4-bit line unit data with respect to these two n / 4-bit operation results and other unprocessed data, and output the rotation result to the next processing stage. have.
- the configuration shown in FIG. 28 has an application configuration of two S-boxes and two XOR circuits in each stage, and in the preceding processing stage, Application result of n / 4 bit S-box, Application result of n / 4 bit S-box and XOR circuit, Application result of n / 4 bit XOR circuit, To rotate the n / 4-bit line unit data of these three n / 4-bit operation results and other unprocessed data, and output the rotation result to the next processing stage. have.
- type-IGFN Generalized Feistel Network
- type-II IGFN It is a repeating structure called.
- each stage is composed of an n-bit S-box and an n-bit XOR, and an n-bit rotation.
- the input data is n bits, divided into four and input to each line in n / 4 bit units.
- the number of divisions of input data is arbitrary. That is, expansion to arbitrary r division (r> 2) is possible, and can be determined appropriately according to the required large S-box input / output size.
- the type-II IGFN shown in FIG. 23 is composed of two small n-bit S-boxes and n-bit XORs and rotations in n-bit units in each stage.
- the features of these two construction methods are that the operation from the forward direction and the operation from the reverse direction are almost the same, and the difference is only in the Rotation part.
- FIGS. 24 to 28 show a structure in which small S-boxes are arranged at portions different from the structures of FIGS. The only difference is in the location and the number of S-boxes in the repeat unit.
- An encryption processing apparatus that executes encryption processing according to the above-described embodiment can be mounted on various information processing apparatuses that execute encryption processing. Specifically, PC, TV, recorder, player, communication device, RFID, smart card, sensor network device, dent / battery authentication module, health, medical device, self-supporting network device etc., for example, data processing and communication processing Can be used in various crises to perform cryptographic processing associated with
- FIG. 29 An exemplary configuration of an IC module 700 as an example of an apparatus that executes the cryptographic processing of the present disclosure is illustrated in FIG.
- the above-described processing can be executed in, for example, a PC, an IC card, a reader / writer, and various other information processing apparatuses, and the IC module 700 shown in FIG. 29 can be configured in these various devices.
- a central processing unit (CPU) 701 illustrated in FIG. 29 is a processor that executes start and end of encryption processing, control of data transmission and reception, control of data transfer between respective components, and various other programs.
- a memory 702 is a ROM (Read-Only-Memory) for storing fixed data such as a program executed by the CPU 701 or operation parameters, a program executed in processing of the CPU 701, and a storage area for parameters appropriately changed in program processing, It consists of RAM (Random Access Memory) etc. which are used as a work area. Further, the memory 702 can be used as a storage area for key data necessary for encryption processing, data to be applied to a conversion table (permutation table) applied to encryption processing, a conversion matrix, and the like.
- the data storage area is preferably configured as a memory having a tamper resistant structure.
- the cryptographic processing unit 703 executes cryptographic processing and decryption processing according to the cryptographic processing configuration described above, that is, the common key block cryptographic processing algorithm to which, for example, the generalized Feistel structure or Feistel structure is applied.
- the encryption processing means is an individual module
- such an encryption processing module is not provided, for example, an encryption processing program is stored in the ROM, and the CPU 701 reads and executes the ROM storage program. It may be configured to
- the random number generator 704 executes random number generation processing required for generation of a key required for cryptographic processing and the like.
- the data processing apparatus described in the above-described embodiment is applicable not only to encryption processing for encrypting plaintext as input data, but also for decryption processing for recovering ciphertext as input data into plaintext. It is applicable.
- the configuration of the non-linear conversion unit having the configuration described in the above-described embodiment can be applied to the encryption processing and the decryption processing.
- a data conversion processing unit that divides the configuration bits of data to be processed into data into a plurality of lines and inputs the divided data, and repeatedly executes data conversion processing on data of each line,
- the data conversion processing unit It has an F function executor which receives data of one line constituting the plurality of lines and generates conversion data,
- the F function execution unit Having a non-linear conversion processing unit that executes non-linear conversion processing;
- the non-linear conversion processing unit A non-linear operation unit comprising one NAND or NOR operation unit and one XOR or XNOR operation unit;
- a bit permutation unit A data processing apparatus having a repeating structure of
- the data processing device wherein the bit replacement unit has a wiring configuration that switches input / output bits to the non-linear operation unit.
- the non-linear conversion processing unit outputs one bit as the operation result in the NAND or NOR operation unit with 2-bit input and 1-bit output to the XOR or XNOR operation unit, and outputs the other bit with 1-bit data
- the data processing apparatus which executes an XOR or XNOR operation and outputs 1-bit data generated as an XOR or XNOR operation result as a configuration bit of a non-linear conversion processing result.
- the non-linear conversion processing unit generates an XOR or XNOR operation result with the operation result of one NAND or NOR operation unit for all the configuration bits of data to be non-linear conversion target;
- the data processing apparatus according to any one of (1) to (5), which outputs the calculation result as a configuration bit of the non-linear conversion result.
- the data processing device according to any one of (1) to (6), wherein the non-linear conversion processing unit includes both an XOR operation unit and an XNOR operation unit in the repetitive structure.
- the data processing apparatus executes encryption processing for converting plaintext as input data into ciphertext, or decryption processing for converting ciphertext as input data into plaintext.
- the data processing apparatus according to any one of the above.
- One NAND or NOR operation unit A non-linear operation unit comprising one XOR or XNOR operation unit, A bit permutation unit, A data processing apparatus having a non-linear conversion processing unit having a repeating structure of
- the non-linear conversion processing unit generates an XOR or XNOR operation result with the operation result of one NAND or NOR operation unit for all the configuration bits of data to be non-linear conversion target, the XOR or XNOR
- the series of processes described in the specification can be performed by hardware, software, or a combined configuration of both.
- the program recording the processing sequence is installed in memory in a computer built into dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It is possible to install and run.
- the program can be recorded in advance on a recording medium.
- the program can be installed from a recording medium to a computer, or can be installed in a recording medium such as a built-in hard disk by receiving a program via a network such as a LAN (Local Area Network) or the Internet.
- LAN Local Area Network
- a system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to those in the same housing.
- a miniaturized nonlinear conversion unit has an encryption processing unit that divides the configuration bits of data to be processed into data into multiple lines and inputs them, and repeatedly executes data conversion processing that applies a round function to data of each line.
- the cryptographic processing unit has an F-function execution unit that inputs conversion data by inputting one line of data that configures a plurality of lines, and the F-function execution unit has a non-linear conversion processing unit that executes non-linear conversion processing.
- the non-linear conversion processing unit has a repetitive structure of one NAND or NOR operation unit, a non-linear operation unit including one XOR or XNOR operation unit, and a bit replacement unit. This repeated configuration realizes a miniaturized nonlinear conversion unit.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Logic Circuits (AREA)
Abstract
Description
このS-boxは、高い安全性が要求される。しかし、高い安全性を保持するために回路規模が大きくなってしまうという問題がある。
データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有するデータ処理装置にある。
1つのNANDまたはNOR演算部と、
1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有する非線形変換処理部を有するデータ処理装置にある。
データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、
複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置にある。
データ処理装置において実行するデータ処理方法であり、
データ処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行し、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行し、
前記F関数の実行処理において、非線形変換処理を実行し、
前記非線形変換処理において、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
を適用した繰り返し演算を実行するデータ処理方法にある。
データ処理装置においてデータ変換処理を実行させるプログラムであり、
データ処理部に、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行させ、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行させ、
前記F関数の実行処理において、非線形変換処理を実行させ、
前記非線形変換処理において、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
を適用した繰り返し演算を実行させるプログラムにある。
具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部が実現される。
1.共通鍵ブロック暗号の概要
2.S-boxについて
3.本開示に係るS-boxの概要について
4.暗号処理装置の構成例について
5.本開示の構成のまとめ
まず、共通鍵ブロック暗号の概要について説明する。
(1-1.共通鍵ブロック暗号)
ここでは共通鍵ブロック暗号(以下ではブロック暗号)としては以下に定義するものを指すものとする。
ブロック暗号は入力として平文Pと鍵Kを取り、暗号文Cを出力する。平文と暗号文のビット長をブロックサイズと呼びここではnで著す。nは任意の整数値を取りうるが、通常、ブロック暗号アルゴリズムごとに、あらかじめひとつに決められている値である。ブロック長がnのブロック暗号のことをnビットブロック暗号と呼ぶこともある。
平文P:nビット
暗号文C:nビット
鍵K:kビット
暗号化アルゴリズムEに対応する復号アルゴリズムDは暗号化アルゴリズムEの逆関数E-1と定義でき、入力として暗号文Cと鍵Kを受け取り,平文Pを出力する。図2に図1に示した暗号アルゴリズムEに対応する復号アルゴリズムDの図を示す。
ブロック暗号は2つの部分に分けて考えることができる。ひとつは鍵Kを入力とし、
ある定められたステップによりビット長を拡大してできた拡大鍵K'(ビット長k')を出力する「鍵スケジュール部」と、もうひとつは平文Pと鍵スケジュール部から拡大された鍵K'を受け取ってデータの変換を行い暗号文Cを出力する「データ暗号化部」である。
2つの部分の関係は図3に示される。
以下の実施例において用いるデータ暗号化部はラウンド関数という処理単位に分割できるものとする。ラウンド関数は入力としての2つのデータを受け取り、内部で処理を施したのち、1つのデータを出力する。入力データの一方は暗号化途中のnビットデータであり、あるラウンドにおけるラウンド関数の出力が次のラウンドの入力として供給される構成となる。もう1つの入力データは鍵スケジュールから出力された拡大鍵の一部のデータが用いられ、この鍵データのことをラウンド鍵と呼ぶものとする。またラウンド関数の総数は総ラウンド数と呼ばれ、暗号アルゴリズムごとにあらかじめ定められている値である。ここでは総ラウンド数をRで表す。
ブロック暗号アルゴリズムによってラウンド関数はさまざまな形態をとりうる。ラウンド関数はその暗号アルゴリズムが採用する構造(structure)によって分類できる。代表的な構造としてここではSPN構造、Feistel構造、拡張Feistel構造を例示する。
nビットの入力データすべてに対して、ラウンド鍵との排他的論理和演算、非線形変換、線形変換処理などが適用される構成。各演算の順番は特に決まっていない。図5にSPN構造のラウンド関数の例を示す。
nビットの入力データはn/2ビットの2つのデータに分割される。うち片方のデータとラウンド鍵を入力として持つ関数(F関数)が適用され、出力がもう片方のデータに排他的論理和される。そののちデータの左右を入れ替えたものを出力データとする。F関数の内部構成にもさまざまなタイプのものがあるが、基本的にはSPN構造同様にラウンド鍵データとの排他的論理和演算、非線形演算、線形変換の組み合わせで実現される。図6にFeistel構造のラウンド関数の一例を示す。
拡張Feistel構造はFeistel構造ではデータ分割数が2であったものを,3以上に分割する形に拡張したものである。分割数をdとすると、dによってさまざまな拡張Feistel構造を定義することができる。F関数の入出力のサイズが相対的に小さくなるため、小型実装に向いているとされる。図7にd=4でかつ、ひとつのラウンド内に2つのF関数が並列に適用される場合の拡張Feistel構造の一例を示す。また,図8にd=8でかつ,ひとつのラウンド内に1つのF関数が適用される場合の拡張Feistel構造の一例を示す。
非線形変換処理部は、入力されるデータのサイズが大きくなると実装上のコストが高くなる傾向がある。それを回避するために対象データを複数の単位に分割し、それぞれに対して非線形変換を施す構成がとられることが多い。例えば入力サイズをmsビットとして、それらをsビットずつのm個のデータに分割して、それぞれに対してsビット入出力を持つ非線形変換を行う構成である。それらのsビット単位の非線形変換をS-boxと呼ぶものとする。図9に例を示す。
線形変換処理部はその性質上、行列として定義することが可能である。行列の要素はGF(28)の体の要素やGF(2)の要素など、一般的にはさまざまな表現ができる。図10にmsビット入出力をもち、GF(2s)の上で定義されるm×mの行列により定義される線形変換処理部の例を示す。
まず、本発明の構成についての説明の前に、非線形変換部としてのS-boxの概要について説明する。
S-boxの性質は、暗号全体の安全性に大きな影響を与える。暗号全体やラウンド関数自体の厳密な安全性評価はその入出力サイズが大きいことから一般的に困難であるが、S-boxの入出力サイズは一般的には小さい(8-bit入出力程度)ので厳密な評価が可能である。暗号全体の安全性を高くするために、S-boxには、少なくとも以下のような特性(1)~(4)が求められる。
S-boxの差分確率は、任意の入力差分Δxと出力差分Δyに対し、入力変数xが一様に選ばれたとき、
S(x)+S(x+Δx)=Δyを満たす確率である。
ただし、S(x)はあるS-box Sの入力xに対する出力を表す。
入力差分Δx,および出力差分Δyが与えられたときの関数Sの差分確率をDPs(Δx, Δy)と定義すると、DPs(Δx, Δy)は以下のように定義される。
S-boxの線形確率は、任意の入力マスクΓxと出力マスクΓyに対し、入力変数xが一様に選ばれたとき、
Γx・x=Γy・S(x)
を満たす確率から求められる値である。
ここで,・はnビットベクトル同士の内積演算を意味する。
以下にそれぞれを式で定義する。
入力マスクΓx,および、
出力マスクΓy、
が与えられたときの関数Sの線形確率を、
LPs(Γx, Γy)と定義すると,
LPs(Γx, Γy)は以下のように表現できる.
ブール代数次数は、S-boxの出力のビットを入力ビットのブール式で表現した場合の次数を意味する。すべてのビットに対して十分ブール代数次数の高いS-boxを設計することで、高階差分攻撃等の代数的性質を利用した攻撃に耐性を持たせることができる。
S-boxの出力ビットを入力ビットで多項式表現した場合の項数を十分多くすることで、補間攻撃に耐性を持たせることができる。
S-boxは安全性の要求とは別に高い実装性能も要求される。ソフトウェア実装においては通常、表引き(テーブル実装)と呼ばれる手法により実装されるため、その実装性能はS-boxの内部構造にはあまり依存しない。しかしながら、ハードウェア実装においては、S-boxの内部構造により、実装性能が大きく左右される。よってS-boxの内部構造は特にハードウェアの実装性能において重要だということができる。
このような要求を満たすS-boxを効率よく生成する手法として、拡大体上のべき乗関数を用いる方法がよく知られている。この手法で拡大体の次数とべき乗の乗数を適切に選べば、非常に特性の良いS-boxが生成できる。
最大差分確率,最大線形確率の点で最適なS-boxが構成できることがよく知られている(しかしながら、この手法を用いると入出力を多項式表現した際の項数が少なくなってしまうため、適当なaffine変換を加える必要がある)。
このような手法で構成されたS-boxの例としては、AES(非特許文献3:US National Institute of Standards and Technology, Advanced Encryption Standard, Federal Information Processing Standards Publications No. 197, 2001.),Camellia(非特許文献4:青木,市川,神田,松井,盛合,中嶋,時田,"128ビットブロック暗号 Camellia アルゴリズム仕様書",第 2.0版, 2001.)のS-boxなどが挙げられる。
例えば、CRYPTONver.0.5(非特許文献5:Chae Hoon Lim, "CRYPTON:A New 128-bit Block Cipher -Specification and Analysis (Version 0.5)"),CRYPTON ver.1.0(非特許文献6:Chae Hoon Lim, "CRYPTON:A New 128-bit Block Cipher -Specification and Analysis (Version 1.0)"),Whirlpool(非特許文献7:Paulo S. L. M Barreto, Vincent Rijmen "The WHIRLPOOL Hashing Function", 2003.),FOX(非特許文献8:Pascal Junod and Serge Vaudenay, "FOX : a New Family of Block Ciphers" ,2004),CLEFIA(非特許文献9:Sony Corporation, "The 128-bit Blockcipher CLEFIA Algorithm Specification", Revision 1.0, 2007.)に示されたS-boxなどがこのような手法に基づいて生成されたS-boxだと考えることができる。
4ビットデータの非線形変換処理を実行する3つのS-box:S40,S41,S42、
各S-boxの出力4ビットと他の4ビットとの排他的論理和演算を実行する3つの配置的論理演算部を有する。
8ビットの入力データは、左ライン入力と、右ライン入力にそれぞれ4ビットずつ入力される。
3つのS-box:S40,S41,S42を利用した非線形変換結果としての8ビットデータは、左ライン出力と右ライン出力からそれぞれ4ビットずつ出力される。
(1)入力8ビット中の4ビット(右ライン入力)を、第1段のS-box:S40に入力し、非線形変換を実行する。
この非線形変換結果と、入力8ビット中の他の4ビット(左ライン入力)とを排他的論理和演算する。
この非線形変換結果と、入力8ビット中の4ビット(右ライン入力)とを排他的論理和演算する。
排他的論理和演算結果を、出力8ビットの4ビット(右ライン出力)として出力する。
この非線形変換結果と、上記処理(1)における排他的論理和演算結果とを排他的論理和演算し、この結果を出力8ビットの4ビット(Out-a)として出力する。
図11は、上記の処理によって、8ビットの入力データの非線形変換処理を実行する構成である。
4ビットデータの非線型変換を実行するS-box:S40,S41、
各S-boxの出力4ビットに対して、2~3ビット単位の排他的論理和演算を実行する演算実行部、
演算実行部の出力に対して、先のS-box:S40,S41の逆演算を実行する非線形変換部:S41 -1,S40 -1、
これらによって構成される。
4ビットデータの非線型変換を実行するS-box:S40,S42、
S-box:S41の逆演算を実行する非線形変換部:S41 -1、
複数の排他的論理和演算部、
これらの組み合わせによって構成された非線形変換処理構成である。
4ビットデータの非線型変換を実行するS-box:S40,S41,S42、
複数の排他的論理和演算部、
複数のOR演算部、
これらの組み合わせによって構成された非線形変換処理構成である。
4ビットデータの非線型変換を実行するS-box:SS0,SS1,SS2,SS3、
2×2の行列(MDS行列)を適用したデータ変換を実行する行列変換実行部、
これらの組み合わせによって構成された非線形変換処理構成である。
しかし、このように従来の小さなS-boxをベースにした構成法では、小さなS-boxの設計法、および小さなS-boxの組み合わせ法、それぞれについて以下のような問題がある。
従来法では,それぞれの小さなS-boxはランダムに作成している。よって、それら小さなS-boxはテーブル実装する必要があり、ハードウェア実装に必要な回路規模は依然大きくなってしまう。
従来法は単純な繰り返し構造を持っていないため、複数サイクルをかけてS-boxを実行する場合でも、回路の共有化が難しい。単純な繰り返し構造を持つ場合は、回路の共有化が可能であり、実行に複数サイクルが必要になるものの必要な回路規模を小さくできる可能性がある。しかしながら、従来法ではこのような実装手法を行うメリットは少なく、複数サイクルを使えたとしても回路規模を削減することが難しい。
以上のような問題点を鑑み、以下では、高い安全性を持ち、かつハードウェア実装を行う際に回路規模を従来法と比較して小さくできるS-boxの構成法を提案する。
以下において説明する構成は、ハードウェア実装において、実行スループットよりも実装に必要な回路規模を小さくすることが求められるような場合に特に高い効果を発揮する。なお、以降の説明では簡単のためにn-bit入出力の全単射S-boxのみについて説明する。
(1)論理演算とビット置換の繰り返し構造による安全でかつ少ない回路で実装することが可能なS-boxの構成法
(2)小さいサイズのS-boxをベースとした,安全で,かつ少ない回路で実装することが可能な繰り返し構造を持つより大きなサイズのS-boxの構成法
(1)と、(2)を組み合わせた構成も可能であり、この組み合わせ構成によって、(問題点1,2)の両方を解決することが可能である。
まず、
(1)論理演算とビット置換の繰り返し構造による安全でかつ少ない回路で実装することが可能なS-boxの構成法
について説明する。
S-boxは、様々な論理回路の組み合わせによって実現できる。
ここで、提案するS-boxは、AND(論理積)、OR(論理和)、NOT(論理否定)等の基本論理演算を基にした"非線形演算部"と、ビット位置の入れ替えを行う"ビット置換部"の2つの部分を基本的な要素として、これらの繰り返しによりS-boxを構成するものである。
これら非線形演算部、ビット置換部を複数回繰り返すことにより、S-boxを生成する。
非線形演算部、ビット置換部は繰り返すごとに変更しても同じものを使用しても構わない。
本手法の効果には以下の3つ効果(効果1~3)がある。1つめは既存の技術の(問題点1)を解決し、残りの2つは更なる本発明のアドバンテージである。
非線形演算部1つは、1つのNAND、もしくはNOR演算、および1つのXOR、もしくはXNOR演算のみで構成されている。
NAND/NOR演算は入力に対して非線形な処理を行う非線形な基本論理演算のなかでも小さな回路で実装できることが知られている。
このNAND/NOR演算以外は全単射性を担保するためのXOR/XNOR演算しか用いていない.よって,この非線形演算部分は全単射な非線形関数の中で,ハードウェアの実装コスト(必要回路規模)が最小クラスであると言える。
さらに、ビット置換部はハードウェア実装では配線の変更のみで実装可能であり、必要回路規模に影響を与えない。つまり、ハードウェア実装コスト(必要回路規模)はゼロであると言える。
従来法では、ランダムにS-boxを生成していたため、必要回路規模を見積もる際は,論理合成ツールなどを用いて毎回評価を行う必要があった。
非線形演算部で用いる論理演算子と、ビット置換部で使用するビット置換の種類は選択の自由度があり、かつ繰り返し毎に種類が異なってもよいため、必要な回路規模が同じとなる複数個のS-boxを構成することができる。
これは、上位関数やほかの関数との組み合わせで最適なものを、同じハードウェア実装コスト(必要回路規模)のS-boxから選択できることに寄与する。
次に、論理演算とビット置換の繰り返し構造によるS-boxの具体的な構成例について説明する。
4ビットの場合のS-boxの具体的な構成例を図16に示す。
入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNANDに入力される。
入力4ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNANDに入力し、その出力ビットを3段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
3段目のXOR演算の実行結果は、出力ビットに設定される。
1段目のXNOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
同じ最適な差分確率、線形確率をもち、かつ同じ回路規模(同じ繰り返し回数)で構成される他のS-boxの具体例を図17~図20に示す。図16~図20に示す例では最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
図18に示す4ビットS-boxは、3つのNANDと、1つのNORと、3つのXNOR、1つのXORから構成されている。
図19に示す4ビットS-boxは、3つのNANDと、1つのNORと、3つのXNOR、1つのXORから構成されている。
図20に示す4ビットS-boxは、4つのNORと、1つのXNOR、3つのXORから構成されている。
図17に示す4ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形処理部分は、4つのNORと、3つのXNOR、1つのXORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
入力4ビット中の2ビットを1段目のNORに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNORに入力される。
入力4ビット中の2ビットを2段目のNORに入力し、その出力ビットを2段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNORに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
1段目のXNOR演算の実行結果と、2段目のXNOR演算の実行結果を4段目のNORに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNORとNANDに入力される。
入力4ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
1段目のXNOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
4段目のXNOR演算の実行結果は、出力ビットに設定される。
入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
1段目のXOR演算の実行結果は、出力ビットに設定され、さらに2~3段目の非線型部分のNORとNANDに入力される。
入力4ビット中の1ビットと、1段目のXOR演算の実行結果を2段目のNORに入力し、その出力ビットを2段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNANDに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
2段目のXNOR演算の実行結果と、3段目のXNOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
4段目のXNOR演算の実行結果は、出力ビットに設定される。
入力4ビット中の2ビットを1段目のNORに入力し、その出力ビットを1段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
1段目のXOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNORに入力される。
入力4ビット中の2ビットを2段目のNORに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNORに入力される。
入力4ビット中の1ビットと、1段目のXOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
3段目のXNOR演算の実行結果は、出力ビットに設定される。
1段目のXOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNORに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
図21に示す5ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の5段繰り返し構造を有しており、非線形演算部は、5つのNANDと4つのXOR、1つのXNORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
入力5ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
1段目のXOR演算の実行結果は、出力ビットに設定され、さらに4~5段目の非線型部分のNANDに入力される。
入力5ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXNORに入力して、入力5ビット中の1ビットとXNOR演算を実行する。
2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに5段目の非線型部分のNANDに入力される。
入力5ビット中の2ビットを3段目のNANDに入力し、その出力ビットを3段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
3段目のXOR演算の実行結果は、出力ビットに設定される。
入力5ビット中の1ビットと、1段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
4段目のXOR演算の実行結果は、出力ビットに設定される。
1段目のXOR演算の実行結果と、2段目のXNOR演算の実行結果を5段目のNANDに入力し、その出力ビットを5段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
5段目のXOR演算の実行結果は、出力ビットに設定される。
次に、小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法について説明する。
本手法は,H/W実装,特に必要回路規模を削減することを目的とした実装、例えばシリアル実装をした際に利点が大きい。
繰り返し構造を持っている演算に関しては、シリアル実装でS-boxを実装する際にすべての要素を実装する必要がなく、繰り返し単位を実装し、それを任意回反復実行すればよい。
よって、この構造は、繰り返し構造を持たない従来のS-boxに対して、より少ない回路規模で実装できると言える。
次に、小さいS-boxを用いた繰り返し処理による大きなS-boxの具体的な構成例について、説明する。
以下、具体的な構成法について詳細に述べる。
なお、以下に説明する図22~図28において、各図にSとして示す矩形領域が、例えば図16~図21を参照して説明した小さなS-box、すなわち例えば4ビット単位の非線形変換処理を実行するS-boxである。
n/4ビットのS-boxの適用結果と、
n/4ビットのS-boxとXOR回路の適用結果と、
n/4ビットのXOR回路の適用結果、
を生成し、これらの3つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
2つのn/4ビットのS-boxの適用結果と、
2つのn/4ビットのS-boxとXOR回路の適用結果と、
を生成し、これらの4つのn/4ビットの演算結果に対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
n/4ビットのS-boxとXOR回路の適用結果と、
n/4ビットのXOR回路の適用結果、
を生成し、これらの2つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
2つのn/4ビットのS-boxとXOR回路の適用結果、
を生成し、これらの2つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
n/4ビットのS-boxの適用結果と、
n/4ビットのS-boxとXOR回路の適用結果と、
n/4ビットのXOR回路の適用結果、
を生成し、これらの3つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
type-IGFN(Generalized Feistel Network)、
type-IIGFN、
と呼ばれる繰り返し構造である。
このように秘密鍵を用いずに構成することで全体をひとつの固定テーブルとして実装することも可能になる。
図22のtype-IGFNは、各段が1つのnビットS-boxとnビットのXOR、nビット単位のRotationから構成される。
なお、入力データの分割数は任意である。すなわち、任意のr分割(r>2)への拡張が可能であり、必要な大きなS-boxの入出力サイズに応じて適時決定することができる。
これらの2つの構成方法の特徴は、順方向からの演算と逆方向からの演算がほとんど同じであり、違いはRotation部分のみとなっている。
6回繰り返しで最大差分確率は2-8.3,
最大線形確率は2-7.83であり,
7回繰り返しで最大差分確率は2-9.1,
最大線形確率は2-8になる。
これらの値は16-bitで最適な値ではないが、十分低い確率であり、回路規模はランダムに作成したものと比べて非常に小さくなる。
6回繰り返しで最大差分確率は2-8.3,
最大線形確率は2-8であり、
7回繰り返しで、最大差分確率は2-9.1,
最大線形確率は2-8.5であり、
16-bitで最適な値ではないが、十分低い確率であり、回路規模はランダムに作成したものと比べて非常に小さくなる。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の実相例について説明する。
上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な危機において利用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を持つ非線形変換部の構成を適用することが可能である。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
(1) データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有するデータ処理装置。
(3)前記非線形変換処理部は、2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する前記(1)または(2)に記載のデータ処理装置。
(5)前記非線形変換処理部は、nビットデータの非線型変換結果を出力する構成において、前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn-1回設定した構成である前記(1)~(4)いずれかに記載のデータ処理装置。
(7)前記非線形変換処理部は、前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である前記(1)~(6)いずれかに記載のデータ処理装置。
(8)前記データ処理装置は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する前記(1)~(7)いずれかに記載のデータ処理装置。
1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有する非線形変換処理部を有するデータ処理装置。
複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置。
(12)前記非線形関数実行部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する前記(11)に記載のデータ処理装置。
具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部が実現される。
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
Claims (14)
- データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
前記データ変換処理部は、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
前記F関数実行部は、
非線形変換処理を実行する非線形変換処理部を有し、
前記非線形変換処理部は、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有するデータ処理装置。 - 前記ビット置換部は、前記非線形演算部に対する入出力ビットを入れ替える配線構成を有する請求項1に記載のデータ処理装置。
- 前記非線形変換処理部は、
2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
nビットデータの非線型変換結果を出力する構成において、
前記非線形演算部を、n回以上繰り返す繰り返し構造を有する請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
nビットデータの非線型変換結果を出力する構成において、
前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn-1回設定した構成である請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項1に記載のデータ処理装置。 - 前記非線形変換処理部は、
前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である請求項1に記載のデータ処理装置。 - 前記データ処理装置は、
入力データとしての平文を暗号文に変換する暗号化処理、または、
入力データとしての暗号文を平文に変換する復号処理を実行する請求項1に記載のデータ処理装置。 - 1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
の繰り返し構造を有する非線形変換処理部を有するデータ処理装置。 - 前記非線形変換処理部は、
非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項9に記載のデータ処理装置。 - データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、
複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置。 - 前記非線形関数実行部は、
非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項11に記載のデータ処理装置。 - データ処理装置において実行するデータ処理方法であり、
データ処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行し、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行し、
前記F関数の実行処理において、非線形変換処理を実行し、
前記非線形変換処理において、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
を適用した繰り返し演算を実行するデータ処理方法。 - データ処理装置においてデータ変換処理を実行させるプログラムであり、
データ処理部に、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行させ、
前記データ変換処理において、
前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行させ、
前記F関数の実行処理において、非線形変換処理を実行させ、
前記非線形変換処理において、
1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
ビット置換部と、
を適用した繰り返し演算を実行させるプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/006,392 US9083507B2 (en) | 2011-03-28 | 2012-02-20 | Data processing device, data processing method, and program |
CN201280014201.6A CN103503362B (zh) | 2011-03-28 | 2012-02-20 | 数据处理装置、数据处理方法以及程序 |
BR112013024249A BR112013024249A2 (pt) | 2011-03-28 | 2012-02-20 | dispositivo e método de processamento de dados, programa, e, dispositivo de processamento de informação. |
RU2013142995/08A RU2603550C2 (ru) | 2011-03-28 | 2012-02-20 | Устройство обработки данных, способ обработки данных и программа |
EP12764563.8A EP2693682B1 (en) | 2011-03-28 | 2012-02-20 | Data processing device, data processing method, and programme |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011069184 | 2011-03-28 | ||
JP2011-069184 | 2011-03-28 | ||
JP2011-207704 | 2011-09-22 | ||
JP2011207704A JP5682526B2 (ja) | 2011-03-28 | 2011-09-22 | データ処理装置、およびデータ処理方法、並びにプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012132622A1 true WO2012132622A1 (ja) | 2012-10-04 |
Family
ID=46930383
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/053932 WO2012132622A1 (ja) | 2011-03-28 | 2012-02-20 | データ処理装置、およびデータ処理方法、並びにプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US9083507B2 (ja) |
EP (1) | EP2693682B1 (ja) |
JP (1) | JP5682526B2 (ja) |
CN (1) | CN103503362B (ja) |
BR (1) | BR112013024249A2 (ja) |
RU (1) | RU2603550C2 (ja) |
TW (1) | TWI595460B (ja) |
WO (1) | WO2012132622A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140198913A1 (en) * | 2013-01-11 | 2014-07-17 | Qualcomm Incorporated | Method and Apparatus for a Computable, Large, Variable and Secure Substitution Box |
WO2015146432A1 (ja) * | 2014-03-28 | 2015-10-01 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
WO2022049655A1 (ja) * | 2020-09-02 | 2022-03-10 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4561252B2 (ja) | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2014240921A (ja) * | 2013-06-12 | 2014-12-25 | 株式会社東芝 | 暗号装置、暗号処理方法及び暗号処理プログラム |
CN103873229B (zh) * | 2014-03-13 | 2017-01-11 | 华南师范大学 | KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法 |
JP6669444B2 (ja) * | 2015-06-29 | 2020-03-18 | 株式会社ミツトヨ | 造形装置、及び造形方法 |
RU2591015C1 (ru) * | 2015-12-28 | 2016-07-10 | федеральное государственное автономное образовательное учреждение высшего профессионального образования "Национальный исследовательский ядерный университет МИФИ" (НИЯУ МИФИ) | Способ нелинейного трехмерного многораундового преобразования данных rdozen |
RU199358U1 (ru) * | 2020-03-04 | 2020-08-28 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Ульяновский государственный аграрный университет имени П.А. Столыпина" | Устройство для сушки свекловичного жома |
DE102020129058B3 (de) * | 2020-11-04 | 2021-07-01 | Infineon Technologies Ag | Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1124558A (ja) * | 1997-06-30 | 1999-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 暗号装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1136692C (zh) | 1995-09-05 | 2004-01-28 | 三菱电机株式会社 | 数据变换装置及数据变换方法 |
CA2302784A1 (en) * | 1997-09-17 | 1999-03-25 | Frank C. Luyster | Improved block cipher method |
US6289455B1 (en) * | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
EP1351430B1 (en) * | 2002-04-03 | 2005-10-05 | Matsushita Electric Industrial Co., Ltd. | Expansion key generating device, encryption device and encryption system |
JP2007192893A (ja) | 2006-01-17 | 2007-08-02 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2007199156A (ja) | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
FR2920617A1 (fr) * | 2007-09-05 | 2009-03-06 | France Telecom | Generateur et procede de generation de fonction pseudo- aleatoire a cle secrete. |
JP5532560B2 (ja) * | 2008-08-25 | 2014-06-25 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにプログラム |
-
2011
- 2011-09-22 JP JP2011207704A patent/JP5682526B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-20 RU RU2013142995/08A patent/RU2603550C2/ru active
- 2012-02-20 BR BR112013024249A patent/BR112013024249A2/pt not_active Application Discontinuation
- 2012-02-20 EP EP12764563.8A patent/EP2693682B1/en not_active Not-in-force
- 2012-02-20 CN CN201280014201.6A patent/CN103503362B/zh not_active Expired - Fee Related
- 2012-02-20 US US14/006,392 patent/US9083507B2/en not_active Expired - Fee Related
- 2012-02-20 WO PCT/JP2012/053932 patent/WO2012132622A1/ja active Application Filing
- 2012-02-22 TW TW101105913A patent/TWI595460B/zh not_active IP Right Cessation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1124558A (ja) * | 1997-06-30 | 1999-01-29 | Nippon Telegr & Teleph Corp <Ntt> | 暗号装置 |
Non-Patent Citations (14)
Title |
---|
"The 128-bit Blockcipher CLEFIA Algorithm Specification", 2007, SONY CORPORATION |
"US National Institute of Standards and Technology Advanced Encryption Standard", 2001, FEDERAL INFORMATION PROCESSING STANDARDS PUBLICATIONS NO. 197 |
AOKI, ICHIKAWA; KANDA, MATSUI; MORIAI, NAKAJIMA; TOKITA, 128-BIT BLOCK ENCRYPTION CAMELLIA ALGORITHM SPECIFICATION, 2001 |
AOKI; ICHIKAWA; KANDA; MATSUI; MORIAI; NAKAJIMA; TOKITA, 128-BIT BLOCK ENCRYPTION CAMELLIA ALGORITHM SPECIFICATION, 2001 |
CHAE HOON LIM, CRYPTON: A NEW 128-BIT BLOCK CIPHER- SPECIFICATION AND ANALYSIS (VERSION 0.5 |
CHAE HOON LIM, CRYPTON: A NEW 128-BIT BLOCK CIPHER- SPECIFICATION AND ANALYSIS (VERSION 1.0 |
DAEMEN, J. ET AL.: "The NOEKEON Block Cipher", NESSIE PROPOSAL, 13 November 2000 (2000-11-13), XP055128814 * |
K. NYBERG: "ASIACRYPT' 96", 1996, SPRINGERVERLAG, article "Generalized Feistel Networks", pages: 91 - 104 |
PASCAL JUNOD; SERGE VAUDENAY, FOX: A NEW FAMILY OF BLOCK CIPHERS, 2004 |
PAULO S. L.; M BARRETO; VINCENT RIJMEN, THE WHIRLPOOL HASHING FUNCTION, 2003 |
See also references of EP2693682A4 * |
SHIBUTANI, K. ET AL.: "Piccolo: An Ultra- Lightweight Blockcipher", LECTURE NOTES IN COMPUTER SCIENCE, vol. 6917, 27 September 2011 (2011-09-27), pages 342 - 357, XP019166866 * |
STANDAERT F.-X. ET AL.: "SEA:A Scalable Encryption Algorithm for Small Embedded Applications", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3928, 28 March 2006 (2006-03-28), pages 222 - 236, XP019029958 * |
YULIANG ZHENG; TSUTOMU MATSUMOTO; HIDEKI IMAI: "On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses", CRYPTO, 1989, pages 461 - 480 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140198913A1 (en) * | 2013-01-11 | 2014-07-17 | Qualcomm Incorporated | Method and Apparatus for a Computable, Large, Variable and Secure Substitution Box |
CN104871476A (zh) * | 2013-01-11 | 2015-08-26 | 高通股份有限公司 | 用于可计算、大型、可变及安全的替换盒的方法及设备 |
CN104871476B (zh) * | 2013-01-11 | 2018-05-25 | 高通股份有限公司 | 用于可计算、大型、可变及安全的替换盒的方法及设备 |
US10142099B2 (en) * | 2013-01-11 | 2018-11-27 | Qualcomm Incorporated | Method and apparatus for a computable, large, variable and secure substitution box |
WO2015146432A1 (ja) * | 2014-03-28 | 2015-10-01 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
WO2022049655A1 (ja) * | 2020-09-02 | 2022-03-10 | 日本電気株式会社 | 情報処理装置、情報処理方法、及びプログラムが格納された非一時的なコンピュータ可読媒体 |
Also Published As
Publication number | Publication date |
---|---|
EP2693682A4 (en) | 2014-12-24 |
CN103503362A (zh) | 2014-01-08 |
TWI595460B (zh) | 2017-08-11 |
EP2693682B1 (en) | 2017-05-31 |
BR112013024249A2 (pt) | 2018-06-19 |
JP5682526B2 (ja) | 2015-03-11 |
TW201241800A (en) | 2012-10-16 |
EP2693682A1 (en) | 2014-02-05 |
RU2603550C2 (ru) | 2016-11-27 |
RU2013142995A (ru) | 2015-03-27 |
JP2012215815A (ja) | 2012-11-08 |
CN103503362B (zh) | 2016-08-24 |
US9083507B2 (en) | 2015-07-14 |
US20140003603A1 (en) | 2014-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012132622A1 (ja) | データ処理装置、およびデータ処理方法、並びにプログラム | |
US9363074B2 (en) | Encryption processing apparatus, encryption processing method, and computer program | |
US8787568B2 (en) | Data transformation apparatus, data transformation method, and computer program | |
JP4882598B2 (ja) | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム | |
JP6406350B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5682527B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5682525B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
WO2009122464A1 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
WO2009087972A1 (ja) | データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム | |
WO2008026625A1 (fr) | Dispositif de codage, procédé de codage et programme informatique | |
JP2015191106A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5652363B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
WO2015146430A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
WO2015146432A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
Lanjewar et al. | Implementation of AES-256 Bit: A Review | |
JP6292107B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム |
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: 12764563 Country of ref document: EP Kind code of ref document: A1 |
|
REEP | Request for entry into the european phase |
Ref document number: 2012764563 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012764563 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2013142995 Country of ref document: RU Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14006392 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112013024249 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 112013024249 Country of ref document: BR Kind code of ref document: A2 Effective date: 20130920 |