WO2012132622A1 - データ処理装置、およびデータ処理方法、並びにプログラム - Google Patents

データ処理装置、およびデータ処理方法、並びにプログラム Download PDF

Info

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
Application number
PCT/JP2012/053932
Other languages
English (en)
French (fr)
Inventor
香士 渋谷
徹 秋下
孝典 五十部
白井 太三
玄良 樋渡
敦司 三津田
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to US14/006,392 priority Critical patent/US9083507B2/en
Priority to CN201280014201.6A priority patent/CN103503362B/zh
Priority to BR112013024249A priority patent/BR112013024249A2/pt
Priority to RU2013142995/08A priority patent/RU2603550C2/ru
Priority to EP12764563.8A priority patent/EP2693682B1/en
Publication of WO2012132622A1 publication Critical patent/WO2012132622A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block 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
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution 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

小型化した非線形変換部を実現する。データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部を実現する。

Description

データ処理装置、およびデータ処理方法、並びにプログラム
 本開示は、データ処理装置、およびデータ処理方法、並びにプログラムに関する。さらに詳細には、例えば共通鍵系暗号を実行するデータ処理装置、およびデータ処理方法、並びにプログラムに関する。
 情報化社会が発展すると共に、扱う情報を安全に守るための情報セキュリティ技術の重要性が増してきている。情報セキュリティ技術の構成要素の一つとして暗号技術があり、現在では様々な製品やシステムで暗号技術が利用されている。
 暗号処理アルゴリズムには様々なものがあるが、基本的な技術の一つとして、共通鍵ブロック暗号と呼ばれるものがある。共通鍵ブロック暗号では、暗号化用の鍵と復号用の鍵が共通のものとなっている。暗号化処理、復号処理共に、その共通鍵から複数の鍵を生成し、あるブロック単位、例えば64ビット、128ビット、256ビット等のブロックデータ単位でデータ変換処理を繰り返し実行する。
 代表的な共通鍵ブロック暗号のアルゴリズムとしては、過去の米国標準であるDES(Data Encryption Standard)や現在の米国標準であるAES(Advanced Encryption Standard)が知られている。他にも様々な共通鍵ブロック暗号が現在も提案され続けており、2007年にソニー株式会社が提案したCLEFIAも共通鍵ブロック暗号の一つである。
 このような、共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を繰り返し実行するラウンド関数実行部を有する暗号処理部と、ラウンド関数部の各ラウンドで適用するラウンド鍵を生成する鍵スケジュール部とによって構成される。鍵スケジュール部は、秘密鍵であるマスター鍵(主鍵)に基づいて、まずビット数を増加させた拡大鍵を生成し、生成した拡大鍵に基づいて、暗号処理部の各ラウンド関数部で適用するラウンド鍵(副鍵)を生成する。
 このようなアルゴリズムを実行する具体的な構造として、線形変換部および非線形変換部を有するラウンド関数を繰り返し実行する構造が知られている。例えば代表的な構造にFeistel構造や一般化Feistel構造がある。Feistel構造や一般化Feistel構造は、データ変換関数としてのF関数を含むラウンド関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。F関数においては、線形変換処理および非線形変換処理が実行される。なお、Feistel構造を適用した暗号処理について記載した文献としては、例えば非特許文献1、非特許文献2がある。
 F関数において実行される非線形変換処理は、例えばS-boxと呼ばれる非線形変換関数を適用して行われる。このS-boxは、ブロック暗号やハッシュ関数の構成要素であり、その安全性や実装性能を決定付ける非常に重要な関数である。
 このS-boxは、高い安全性が要求される。しかし、高い安全性を保持するために回路規模が大きくなってしまうという問題がある。
K. Nyberg, "Generalized Feistel networks", ASIACRYPT'96, SpringerVerlag, 1996, pp.91--104. Yuliang Zheng, Tsutomu Matsumoto, Hideki Imai: On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses. CRYPTO 1989: 461-480 US National Institute of Standards and Technology, Advanced Encryption Standard, Federal Information Processing Standards Publications No. 197, 2001. 青木,市川,神田,松井,盛合,中嶋,時田,"128ビットブロック暗号 Camellia アルゴリズム仕様書",第 2.0版, 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)" Paulo S. L. M Barreto, Vincent Rijmen "The WHIRLPOOL Hashing Function", 2003. Pascal Junod and Serge Vaudenay,  "FOX : a New Family of Block Ciphers" ,2004 Sony Corporation, "The 128-bit Blockcipher CLEFIA  Algorithm Specification", Revision 1.0, 2007.
 本開示は、例えば上述の状況に鑑みてなされたものであり、小型化可能な安全性を持つS-boxを備えたデータ処理装置、およびデータ処理方法、並びにプログラムを提供することを目的とする。
 本開示の第1の側面は、
 データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
 前記データ変換処理部は、
 前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
 前記F関数実行部は、
 非線形変換処理を実行する非線形変換処理部を有し、
 前記非線形変換処理部は、
 1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
 ビット置換部と、
 の繰り返し構造を有するデータ処理装置にある。
 さらに、本開示のデータ処理装置の一実施態様において、前記ビット置換部は、前記非線形演算部に対する入出力ビットを入れ替える配線構成を有する。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形変換処理部は、2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形変換処理部は、nビットデータの非線型変換結果を出力する構成において、前記非線形演算部を、n回以上繰り返す繰り返し構造を有する。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形変換処理部は、nビットデータの非線型変換結果を出力する構成において、前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn-1回設定した構成である。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形変換処理部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形変換処理部は、前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である。
 さらに、本開示のデータ処理装置の一実施態様において、前記データ処理装置は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する。
 さらに、本開示の第2の側面は、
 1つのNANDまたはNOR演算部と、
 1つのXORまたはXNOR演算部からなる非線形演算部と、
 ビット置換部と、
 の繰り返し構造を有する非線形変換処理部を有するデータ処理装置にある。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形変換処理部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する。
 さらに、本開示の第3の側面は、
 データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、
 複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置にある。
 さらに、本開示のデータ処理装置の一実施態様において、前記非線形関数実行部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する。
 さらに、本開示の第4の側面は、
 データ処理装置において実行するデータ処理方法であり、
 データ処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行し、
 前記データ変換処理において、
 前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行し、
 前記F関数の実行処理において、非線形変換処理を実行し、
 前記非線形変換処理において、
 1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
 ビット置換部と、
 を適用した繰り返し演算を実行するデータ処理方法にある。
 さらに、本開示の第5の側面は、
 データ処理装置においてデータ変換処理を実行させるプログラムであり、
 データ処理部に、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行させ、
 前記データ変換処理において、
 前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行させ、
 前記F関数の実行処理において、非線形変換処理を実行させ、
 前記非線形変換処理において、
 1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
 ビット置換部と、
 を適用した繰り返し演算を実行させるプログラムにある。
 なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して例えば記憶媒体によって提供されるプログラムである。このようなプログラムを情報処理装置やコンピュータ・システム上のプログラム実行部で実行することでプログラムに応じた処理が実現される。
 本開示のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 本開示の一実施例によれば、小型化した非線形変換部が実現される。
 具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部が実現される。
kビットの鍵長に対応したnビット共通鍵ブロック暗号アルゴリズムを説明する図である。 図1に示すkビットの鍵長に対応したnビット共通鍵ブロック暗号アルゴリズムに対応する復号アルゴリズムを説明する図である。 鍵スケジュール部とデータ暗号化部の関係について説明する図である。 データ暗号化部の構成例について説明する図である。 SPN構造のラウンド関数の例について説明する図である。 Feistel構造のラウンド関数の一例について説明する図である。 拡張Feistel構造の一例について説明する図である。 拡張Feistel構造の一例について説明する図である。 非線形変換部の構成例について説明する図である。 線形変換処理部の構成例について説明する図である。 小さなサイズの入出力を持つS-boxを複数個組み合わせて大きなS-boxを生成する構成例について説明する図である。 小さなサイズの入出力を持つS-boxを複数個組み合わせて大きなS-boxを生成する構成例について説明する図である。 小さなサイズの入出力を持つS-boxを複数個組み合わせて大きなS-boxを生成する構成例について説明する図である。 小さなサイズの入出力を持つS-boxを複数個組み合わせて大きなS-boxを生成する構成例について説明する図である。 小さなサイズの入出力を持つS-boxを複数個組み合わせて大きなS-boxを生成する構成例について説明する図である。 論理演算とビット置換の繰り返し構造による4ビットS-boxの構成例について説明する図である。 論理演算とビット置換の繰り返し構造による4ビットS-boxの構成例について説明する図である。 論理演算とビット置換の繰り返し構造による4ビットS-boxの構成例について説明する図である。 論理演算とビット置換の繰り返し構造による4ビットS-boxの構成例について説明する図である。 論理演算とビット置換の繰り返し構造による4ビットS-boxの構成例について説明する図である。 論理演算とビット置換の繰り返し構造による5ビットS-boxの構成例について説明する図である。 type-IGFN(Generalized Feistel Network)を基にした小さいS-boxを用いた繰り返し処理による大きなS-boxの構成例について説明する図である。 type-IIGFNを基にした,小さいS-boxを用いた繰り返し処理による大きなS-boxの構成例について説明する図である。 小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法の適用例について説明する図である。 小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法の適用例について説明する図である。 小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法の適用例について説明する図である。 小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法の適用例について説明する図である。 小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法の適用例について説明する図である。 暗号処理装置としてのICモジュール700の構成例を示す図である。
 以下、図面を参照しながら本開示に係るデータ処理装置、およびデータ処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
 1.共通鍵ブロック暗号の概要
 2.S-boxについて
 3.本開示に係るS-boxの概要について
 4.暗号処理装置の構成例について
 5.本開示の構成のまとめ
  [1.共通鍵ブロック暗号の概要]
 まず、共通鍵ブロック暗号の概要について説明する。
  (1-1.共通鍵ブロック暗号)
 ここでは共通鍵ブロック暗号(以下ではブロック暗号)としては以下に定義するものを指すものとする。
 ブロック暗号は入力として平文Pと鍵Kを取り、暗号文Cを出力する。平文と暗号文のビット長をブロックサイズと呼びここではnで著す。nは任意の整数値を取りうるが、通常、ブロック暗号アルゴリズムごとに、あらかじめひとつに決められている値である。ブロック長がnのブロック暗号のことをnビットブロック暗号と呼ぶこともある。
 鍵のビット長をkで表す。鍵は任意の整数値を取りうる。共通鍵ブロック暗号アルゴリズムは1つまたは複数の鍵サイズに対応することになる。例えば、あるブロック暗号アルゴリズムAはブロックサイズn=128であり、k=128またはk=192またはk=256の鍵サイズに対応するという構成もありうるものとする。
 平文P:nビット
 暗号文C:nビット
 鍵K:kビット
 図1にkビットの鍵長に対応したnビット共通鍵ブロック暗号アルゴリズムEの図を示す。
 暗号化アルゴリズムEに対応する復号アルゴリズムDは暗号化アルゴリズムEの逆関数E-1と定義でき、入力として暗号文Cと鍵Kを受け取り,平文Pを出力する。図2に図1に示した暗号アルゴリズムEに対応する復号アルゴリズムDの図を示す。
  (1-2.内部構成)
 ブロック暗号は2つの部分に分けて考えることができる。ひとつは鍵Kを入力とし、
ある定められたステップによりビット長を拡大してできた拡大鍵K'(ビット長k')を出力する「鍵スケジュール部」と、もうひとつは平文Pと鍵スケジュール部から拡大された鍵K'を受け取ってデータの変換を行い暗号文Cを出力する「データ暗号化部」である。
 2つの部分の関係は図3に示される。
  (1-3.データ暗号化部)
 以下の実施例において用いるデータ暗号化部はラウンド関数という処理単位に分割できるものとする。ラウンド関数は入力としての2つのデータを受け取り、内部で処理を施したのち、1つのデータを出力する。入力データの一方は暗号化途中のnビットデータであり、あるラウンドにおけるラウンド関数の出力が次のラウンドの入力として供給される構成となる。もう1つの入力データは鍵スケジュールから出力された拡大鍵の一部のデータが用いられ、この鍵データのことをラウンド鍵と呼ぶものとする。またラウンド関数の総数は総ラウンド数と呼ばれ、暗号アルゴリズムごとにあらかじめ定められている値である。ここでは総ラウンド数をRで表す。
 データ暗号化部の入力側から見て1ラウンド目の入力データをXとし、i番目のラウンド関数に入力されるデータをX、ラウンド鍵をRKとすると、データ暗号化部全体は図4のように示される。
  (1-4.ラウンド関数)
 ブロック暗号アルゴリズムによってラウンド関数はさまざまな形態をとりうる。ラウンド関数はその暗号アルゴリズムが採用する構造(structure)によって分類できる。代表的な構造としてここではSPN構造、Feistel構造、拡張Feistel構造を例示する。
  (ア)SPN構造ラウンド関数
 nビットの入力データすべてに対して、ラウンド鍵との排他的論理和演算、非線形変換、線形変換処理などが適用される構成。各演算の順番は特に決まっていない。図5にSPN構造のラウンド関数の例を示す。
  (イ)Feistel構造
 nビットの入力データはn/2ビットの2つのデータに分割される。うち片方のデータとラウンド鍵を入力として持つ関数(F関数)が適用され、出力がもう片方のデータに排他的論理和される。そののちデータの左右を入れ替えたものを出力データとする。F関数の内部構成にもさまざまなタイプのものがあるが、基本的にはSPN構造同様にラウンド鍵データとの排他的論理和演算、非線形演算、線形変換の組み合わせで実現される。図6にFeistel構造のラウンド関数の一例を示す。
  (ウ)拡張Feistel構造
 拡張Feistel構造はFeistel構造ではデータ分割数が2であったものを,3以上に分割する形に拡張したものである。分割数をdとすると、dによってさまざまな拡張Feistel構造を定義することができる。F関数の入出力のサイズが相対的に小さくなるため、小型実装に向いているとされる。図7にd=4でかつ、ひとつのラウンド内に2つのF関数が並列に適用される場合の拡張Feistel構造の一例を示す。また,図8にd=8でかつ,ひとつのラウンド内に1つのF関数が適用される場合の拡張Feistel構造の一例を示す。
  (1-5.非線形変換処理部)
 非線形変換処理部は、入力されるデータのサイズが大きくなると実装上のコストが高くなる傾向がある。それを回避するために対象データを複数の単位に分割し、それぞれに対して非線形変換を施す構成がとられることが多い。例えば入力サイズをmsビットとして、それらをsビットずつのm個のデータに分割して、それぞれに対してsビット入出力を持つ非線形変換を行う構成である。それらのsビット単位の非線形変換をS-boxと呼ぶものとする。図9に例を示す。
  (1-6.線形変換処理部)
 線形変換処理部はその性質上、行列として定義することが可能である。行列の要素はGF(2)の体の要素やGF(2)の要素など、一般的にはさまざまな表現ができる。図10にmsビット入出力をもち、GF(2)の上で定義されるm×mの行列により定義される線形変換処理部の例を示す。
  [2.S-boxについて]
 まず、本発明の構成についての説明の前に、非線形変換部としてのS-boxの概要について説明する。
 F関数において実行される非線形変換処理は、例えばS-boxと呼ばれる非線形変換関数を適用して行われる。このS-boxは、ブロック暗号やハッシュ関数の構成要素であり、その安全性や実装性能を決定付ける非常に重要な関数である。
 このS-boxは一般的にはn-bit入力、m-bit出力の非線形変換関数であるが、以降ではn-bit入出力の全単射なS-boxについて話を進める。ここで全単射とは出力の全ての値がただ一つの入力の値からの写像であることを意味する。
  (安全面)
 S-boxの性質は、暗号全体の安全性に大きな影響を与える。暗号全体やラウンド関数自体の厳密な安全性評価はその入出力サイズが大きいことから一般的に困難であるが、S-boxの入出力サイズは一般的には小さい(8-bit入出力程度)ので厳密な評価が可能である。暗号全体の安全性を高くするために、S-boxには、少なくとも以下のような特性(1)~(4)が求められる。
 (特性1)最大差分確率が十分小さい
 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)は以下のように定義される。
Figure JPOXMLDOC01-appb-M000001
 このとき、関数の最大差分確率MDPsは以下のように定義される。
Figure JPOXMLDOC01-appb-M000002
 この差分確率が十分小さいS-boxを設計することで,差分攻撃に耐性を持たせることができる。
  (特性2)最大線形確率が十分小さい
 S-boxの線形確率は、任意の入力マスクΓxと出力マスクΓyに対し、入力変数xが一様に選ばれたとき、
 Γx・x=Γy・S(x)
 を満たす確率から求められる値である。
 ここで,・はnビットベクトル同士の内積演算を意味する。
 最大線形確率は、すべての入出力マスクの組み合わせのうちで最も高い確率で定義される。
 以下にそれぞれを式で定義する。
 入力マスクΓx,および、
 出力マスクΓy、
 が与えられたときの関数Sの線形確率を、
 LPs(Γx, Γy)と定義すると,
 LPs(Γx, Γy)は以下のように表現できる.
Figure JPOXMLDOC01-appb-M000003
 このとき、関数Sの最大差分確率MLPsは以下のように定義される。
Figure JPOXMLDOC01-appb-M000004
 この最大線形確率が十分小さいS-boxを設計することで線形攻撃に耐性を持たせることができる.
  (特性3)ブール多項式表現を行った際のブール代数次数が十分大きい
 ブール代数次数は、S-boxの出力のビットを入力ビットのブール式で表現した場合の次数を意味する。すべてのビットに対して十分ブール代数次数の高いS-boxを設計することで、高階差分攻撃等の代数的性質を利用した攻撃に耐性を持たせることができる。
  (特性4)入出力を多項式表現した際の項数が十分多い
 S-boxの出力ビットを入力ビットで多項式表現した場合の項数を十分多くすることで、補間攻撃に耐性を持たせることができる。
  (実装面について)
 S-boxは安全性の要求とは別に高い実装性能も要求される。ソフトウェア実装においては通常、表引き(テーブル実装)と呼ばれる手法により実装されるため、その実装性能はS-boxの内部構造にはあまり依存しない。しかしながら、ハードウェア実装においては、S-boxの内部構造により、実装性能が大きく左右される。よってS-boxの内部構造は特にハードウェアの実装性能において重要だということができる。
  (従来技術の問題点)
 このような要求を満たすS-boxを効率よく生成する手法として、拡大体上のべき乗関数を用いる方法がよく知られている。この手法で拡大体の次数とべき乗の乗数を適切に選べば、非常に特性の良いS-boxが生成できる。
 実際にn-bit入出力S-boxの入力をx,出力をyとして,それぞれがGF(2)の元だとした場合、
Figure JPOXMLDOC01-appb-M000005
 で与えられる場合、
 最大差分確率,最大線形確率の点で最適な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などが挙げられる。
 AESやCamelliaのS-boxはGF((2)上の逆元関数としてS-boxを構成することもできるため、安全性の観点からも特性が非常に良く、さらに非常に高いハードウェア実装性能も持つ。
 しかしながら、近年このようなS-boxに関して、その特徴的な代数的性質を利用した攻撃法や、そのあまりに均一的な拡散性に関する問題点などが指摘されるようになった。
 このような点から、特徴的な代数的性質を持たないS-boxの構成法が考えられ、強い代数的構造を持たないように、ランダム、もしくはそれに準ずるような手法で要素を選択するような手法によりS-boxを生成する方法が考えられた。このような手法でS-boxを生成すると、多くの場合、特徴的な代数的構造は持たず、さらに拡大体上のべき乗関数のような均一的な拡散はしないため、上記のような問題に関しては対策がされていると言うことができる。
 しかしながら、n-bit入出力のS-boxの数は,2の階乗個存在するため、実際にn-bit入出力のS-boxをランダムに生成し、その特性をひとつひとつチェックするような手法ではnがある程度大きくなると効率的に特性の良いS-boxを生成することは難しくなる。
 また、要素が完全にランダムである場合、ハードウェアで実装する際も主にテーブル実装と呼ばれる手法しか用いることができなくなってしまうため、実装効率が大きく低下する。
 このような問題から、小さなサイズの入出力を持つS-boxをランダムに生成、それらを複数個組み合わせて、より大きな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だと考えることができる。
 それぞれの構造を図11~図15に示す。これらの構造は、前述のようにランダムに大きなS-boxを生成した場合と比較して、テーブルサイズが小さくなり、ハードウェアの実装コストは小さくなる。
 図11は、8ビットの入力データの非線形変換処理を実行する構成である。
 4ビットデータの非線形変換処理を実行する3つのS-box:S4,S4,S4
 各S-boxの出力4ビットと他の4ビットとの排他的論理和演算を実行する3つの配置的論理演算部を有する。
 8ビットの入力データは、左ライン入力と、右ライン入力にそれぞれ4ビットずつ入力される。
 3つのS-box:S4,S4,S4を利用した非線形変換結果としての8ビットデータは、左ライン出力と右ライン出力からそれぞれ4ビットずつ出力される。
 処理は以下の処理シーケンスに従って実行される。
 (1)入力8ビット中の4ビット(右ライン入力)を、第1段のS-box:S4に入力し、非線形変換を実行する。
 この非線形変換結果と、入力8ビット中の他の4ビット(左ライン入力)とを排他的論理和演算する。
 (2)この排他的論理和演算結果を、第2段のS-box:S4に入力し、非線形変換を実行する。
 この非線形変換結果と、入力8ビット中の4ビット(右ライン入力)とを排他的論理和演算する。
 排他的論理和演算結果を、出力8ビットの4ビット(右ライン出力)として出力する。
 (3)さらに、この排他的論理和演算結果を、第3段のS-box:S4に入力し、非線形変換を実行する。
 この非線形変換結果と、上記処理(1)における排他的論理和演算結果とを排他的論理和演算し、この結果を出力8ビットの4ビット(Out-a)として出力する。
 図11は、上記の処理によって、8ビットの入力データの非線形変換処理を実行する構成である。
 図12に示す構成は、
 4ビットデータの非線型変換を実行するS-box:S4,S4
 各S-boxの出力4ビットに対して、2~3ビット単位の排他的論理和演算を実行する演算実行部、
 演算実行部の出力に対して、先のS-box:S4,S4の逆演算を実行する非線形変換部:S4 -1,S4 -1
 これらによって構成される。
 図13に示す構成は、
 4ビットデータの非線型変換を実行するS-box:S4,S4
 S-box:S4の逆演算を実行する非線形変換部:S4 -1
 複数の排他的論理和演算部、
 これらの組み合わせによって構成された非線形変換処理構成である。
 図14は、
 4ビットデータの非線型変換を実行するS-box:S4,S4,S4
 複数の排他的論理和演算部、
 複数のOR演算部、
 これらの組み合わせによって構成された非線形変換処理構成である。
 図15は、
 4ビットデータの非線型変換を実行するS-box:SS,SS,SS,SS
 2×2の行列(MDS行列)を適用したデータ変換を実行する行列変換実行部、
 これらの組み合わせによって構成された非線形変換処理構成である。
 このように、図11~図15に示す小さなS-boxをベースにした大きなS-boxの構成法は従来からいくつか提案されている。このような構成は、ランダムに大きなS-boxを生成した場合と比較して、テーブルサイズが小さくなり、ハードウェアの実装コストは小さくなる。
 しかし、このように従来の小さなS-boxをベースにした構成法では、小さなS-boxの設計法、および小さなS-boxの組み合わせ法、それぞれについて以下のような問題がある。
  (問題点1) それぞれの小さなS-boxの設計に関して
 従来法では,それぞれの小さなS-boxはランダムに作成している。よって、それら小さなS-boxはテーブル実装する必要があり、ハードウェア実装に必要な回路規模は依然大きくなってしまう。
  (問題点2) 小さなS-boxの組み合わせ方法に関して
 従来法は単純な繰り返し構造を持っていないため、複数サイクルをかけてS-boxを実行する場合でも、回路の共有化が難しい。単純な繰り返し構造を持つ場合は、回路の共有化が可能であり、実行に複数サイクルが必要になるものの必要な回路規模を小さくできる可能性がある。しかしながら、従来法ではこのような実装手法を行うメリットは少なく、複数サイクルを使えたとしても回路規模を削減することが難しい。
  [3.本開示に係るS-boxについて]
 以上のような問題点を鑑み、以下では、高い安全性を持ち、かつハードウェア実装を行う際に回路規模を従来法と比較して小さくできるS-boxの構成法を提案する。
 以下において説明する構成は、ハードウェア実装において、実行スループットよりも実装に必要な回路規模を小さくすることが求められるような場合に特に高い効果を発揮する。なお、以降の説明では簡単のためにn-bit入出力の全単射S-boxのみについて説明する。
 以下の2つのS-box構成例について、順次説明する。
 (1)論理演算とビット置換の繰り返し構造による安全でかつ少ない回路で実装することが可能なS-boxの構成法
 (2)小さいサイズのS-boxをベースとした,安全で,かつ少ない回路で実装することが可能な繰り返し構造を持つより大きなサイズのS-boxの構成法
 なお、上記の(1)は、前述の(問題点1)を解決し、(2)は(問題点2)を解決することが可能な構成である。
 (1)と、(2)を組み合わせた構成も可能であり、この組み合わせ構成によって、(問題点1,2)の両方を解決することが可能である。
  (3-1.論理演算とビット置換の繰り返し構造によるS-boxの構成法)
 まず、
 (1)論理演算とビット置換の繰り返し構造による安全でかつ少ない回路で実装することが可能なS-boxの構成法
 について説明する。
  (3-1-1.S-boxの構成の概要)
 S-boxは、様々な論理回路の組み合わせによって実現できる。
 ここで、提案するS-boxは、AND(論理積)、OR(論理和)、NOT(論理否定)等の基本論理演算を基にした"非線形演算部"と、ビット位置の入れ替えを行う"ビット置換部"の2つの部分を基本的な要素として、これらの繰り返しによりS-boxを構成するものである。
 非線形演算部は、全単射かつ非線形変換になるように、1つの2ビット入力1ビット出力のNAND(否定論理積)、もしくはNOR(否定論理和)演算と、1つの2ビット入力1ビット出力のXOR(排他的論理和)、もしくはXNOR(否定排他的論理和)演算をそれぞれ用い、任意の2ビットに対しNAND、もしくはNOR演算を行った結果を、その2ビット以外の1ビットとXOR、もしくはXNOR演算する構造を有する。
 ビット置換部は単純にビット位置の入れ変えを行う。
 これら非線形演算部、ビット置換部を複数回繰り返すことにより、S-boxを生成する。
 非線形演算部、ビット置換部は繰り返すごとに変更しても同じものを使用しても構わない。
 一般的に、安全なn-bit S-boxを構成するためには,n回以上の非線形演算部分の繰り返しが必要なため,n回の繰り返し構造がこの構成法において安全性を大きく損なわない範囲での最小の構成だと考えられる.また,最終回のビット置換部は安全性,回路規模ともに影響を与えないため,実行せずに省略することも可能である。
 なお、非線形演算部は、前述したように、NANDまたはNOR演算部と、XORまたはXNOR演算部から構成されるが、n回繰り返し構造中において、XOR演算部と、XNOR演算部とを混在させることで、非線形変換処理における不動点をなくすことが可能となる。従って、不動点を発生させない非線形変換処理を実現するためには、非線形演算部のn回繰り返し構造中において、XOR演算部と、XNOR演算部とを混在させる構成とすることが好ましい。
  (3-1-2.本手法の効果について)
 本手法の効果には以下の3つ効果(効果1~3)がある。1つめは既存の技術の(問題点1)を解決し、残りの2つは更なる本発明のアドバンテージである。
 (効果1)従来法より小さな回路で実装することができる。
 非線形演算部1つは、1つのNAND、もしくはNOR演算、および1つのXOR、もしくはXNOR演算のみで構成されている。
 NAND/NOR演算は入力に対して非線形な処理を行う非線形な基本論理演算のなかでも小さな回路で実装できることが知られている。
 このNAND/NOR演算以外は全単射性を担保するためのXOR/XNOR演算しか用いていない.よって,この非線形演算部分は全単射な非線形関数の中で,ハードウェアの実装コスト(必要回路規模)が最小クラスであると言える。
 さらに、ビット置換部はハードウェア実装では配線の変更のみで実装可能であり、必要回路規模に影響を与えない。つまり、ハードウェア実装コスト(必要回路規模)はゼロであると言える。
 本構成は、これら非線形演算部、ビット置換部の繰り返しで構成されているため、実装に必要な回路は従来法に比べて大きく削減できる。
 (効果2)ハードウェア実装コストを正確に見積もることができる。
 従来法では、ランダムにS-boxを生成していたため、必要回路規模を見積もる際は,論理合成ツールなどを用いて毎回評価を行う必要があった。
 本構成法の場合、論理演算子の数、つまり繰り返し回数を評価することにより、ハードウェア実装コスト(必要回路規模)を論理合成ツールなどを用いることなく容易に見積もることができる。従来では必要回路規模見積もりに時間がかかるため多くのS-boxの中から最適なものを見つけ出すことは難しかったが、本構成では容易に回路規模を見積もれるため最適なS-boxを容易に選択できることになる。
 (効果3)同じハードウェア実装コスト(必要回路規模)のS-boxを複数種類構成可能である。
 非線形演算部で用いる論理演算子と、ビット置換部で使用するビット置換の種類は選択の自由度があり、かつ繰り返し毎に種類が異なってもよいため、必要な回路規模が同じとなる複数個のS-boxを構成することができる。
 これは、上位関数やほかの関数との組み合わせで最適なものを、同じハードウェア実装コスト(必要回路規模)のS-boxから選択できることに寄与する。
 (3-1-3.具体的な構成例について)
 次に、論理演算とビット置換の繰り返し構造によるS-boxの具体的な構成例について説明する。
 4ビットの場合のS-boxの具体的な構成例を図16に示す。
 この図16に示す4ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形演算部は、4つのNANDと3つのXOR、1つのXNORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 1段目の非線形演算部は、NANDとXNORによって構成されている。
 入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNANDに入力される。
 2段目の非線形演算部は、NANDとXORによって構成されている。
 入力4ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
 3段目の非線形演算部は、NANDとXORによって構成されている。
 入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNANDに入力し、その出力ビットを3段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 3段目のXOR演算の実行結果は、出力ビットに設定される。
 4段目の非線形演算部は、NANDとXORによって構成されている。
 1段目のXNOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 4段目のXOR演算の実行結果は、出力ビットに設定される。
 この4ビットS-boxは、前述の項目[2.S-boxについて]において説明した安全性の高いS-boxの条件である最大差分確率,最大線形確率がともに2-2である。これは4ビットS-boxにおいて最適な値であり、ランダムに生成した4ビットS-boxと比較してハードウェア実装コストは小さくなる。
 よって、この4ビットS-boxは、安全でかつハードウェア実装性能にも優れていると言える。
 同じ最適な差分確率、線形確率をもち、かつ同じ回路規模(同じ繰り返し回数)で構成される他のS-boxの具体例を図17~図20に示す。図16~図20に示す例では最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 図17に示す4ビットS-boxは、4つのNORと、3つのXNOR、1つのXORから構成されている。
 図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から構成されている。
 各図に示す4ビットS-boxの構成と処理について説明する。
 図17に示す4ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形処理部分は、4つのNORと、3つのXNOR、1つのXORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 1段目の非線形演算部は、NORとXNORによって構成されている。
 入力4ビット中の2ビットを1段目のNORに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNORに入力される。
 2段目の非線形演算部は、NORとXNORによって構成されている。
 入力4ビット中の2ビットを2段目のNORに入力し、その出力ビットを2段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNORに入力される。
 3段目の非線形演算部は、NORとXNORによって構成されている。
 入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 3段目のXNOR演算の実行結果は、出力ビットに設定される。
 4段目の非線形演算部は、NORとXORによって構成されている。
 1段目のXNOR演算の実行結果と、2段目のXNOR演算の実行結果を4段目のNORに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 4段目のXOR演算の実行結果は、出力ビットに設定される。
 図18に示す4ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形処理部分は、3つのNANDと、1つのNORと、3つのXNOR、1つのXORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 1段目の非線形演算部は、NANDとXNORによって構成されている。
 入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 1段目のXNOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNORとNANDに入力される。
 2段目の非線形演算部は、NANDとXORによって構成されている。
 入力4ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
 3段目の非線形演算部は、NORとXNORによって構成されている。
 入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 3段目のXNOR演算の実行結果は、出力ビットに設定される。
 4段目の非線形演算部は、NANDとXNORによって構成されている。
 1段目のXNOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 4段目のXNOR演算の実行結果は、出力ビットに設定される。
 図19に示す4ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形処理部分は、3つのNANDと、1つのNORと、3つのXNOR、1つのXORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 1段目の非線形演算部は、NANDとXORによって構成されている。
 入力4ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 1段目のXOR演算の実行結果は、出力ビットに設定され、さらに2~3段目の非線型部分のNORとNANDに入力される。
 2段目の非線形演算部は、NORとXNORによって構成されている。
 入力4ビット中の1ビットと、1段目のXOR演算の実行結果を2段目のNORに入力し、その出力ビットを2段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNANDに入力される。
 3段目の非線形演算部は、NANDとXNORによって構成されている。
 入力4ビット中の1ビットと、1段目のXNOR演算の実行結果を3段目のNANDに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 3段目のXNOR演算の実行結果は、出力ビットに設定される。
 4段目の非線形演算部は、NANDとXNORによって構成されている。
 2段目のXNOR演算の実行結果と、3段目のXNOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 4段目のXNOR演算の実行結果は、出力ビットに設定される。
 図20に示す4ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の4段繰り返し構造を有しており、非線形処理部分は、4つのNORと、1つのXNOR、3つのXORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 1段目の非線形演算部は、NORとXORによって構成されている。
 入力4ビット中の2ビットを1段目のNORに入力し、その出力ビットを1段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 1段目のXOR演算の実行結果は、出力ビットに設定され、さらに3~4段目の非線型部分のNORに入力される。
 2段目の非線形演算部は、NORとXORによって構成されている。
 入力4ビット中の2ビットを2段目のNORに入力し、その出力ビットを2段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 2段目のXOR演算の実行結果は、出力ビットに設定され、さらに4段目の非線型部分のNORに入力される。
 3段目の非線形演算部は、NORとXNORによって構成されている。
 入力4ビット中の1ビットと、1段目のXOR演算の実行結果を3段目のNORに入力し、その出力ビットを3段目のXNORに入力して、入力4ビット中の1ビットとXNOR演算を実行する。
 3段目のXNOR演算の実行結果は、出力ビットに設定される。
 4段目の非線形演算部は、NORとXORによって構成されている。
 1段目のXOR演算の実行結果と、2段目のXOR演算の実行結果を4段目のNORに入力し、その出力ビットを4段目のXORに入力して、入力4ビット中の1ビットとXOR演算を実行する。
 4段目のXOR演算の実行結果は、出力ビットに設定される。
 また、上記の例で示した4ビットS-boxと同じ回路規模で実装することができる4ビットS-boxは、非線形演算部の演算が4(=2x2)種類,ビット置換部のビット置換が24(=4!)種類あり、さらに繰り返し毎に種類が異なってもよいため、96の4乗通り存在することが分かる。
 つまり、同じ回路規模の4ビットS-boxを数多く構成できるため、設計の際に目的に応じた最適なS-boxを選択することができる。
 もう一つのS-boxの構成例として、5ビットS-boxの構成例を図21に示す。
 図21に示す5ビットS-boxは、非線形演算部とビット置換部の組み合わせ構成の5段繰り返し構造を有しており、非線形演算部は、5つのNANDと4つのXOR、1つのXNORから構成されている。なお、図においては最終段のビット置換は省略しているが、最終段のビット置換については設定する構成としても、省略した構成としても、いずれの構成も可能である。
 1段目の非線形演算部は、NANDとXORによって構成されている。
 入力5ビット中の2ビットを1段目のNANDに入力し、その出力ビットを1段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
 1段目のXOR演算の実行結果は、出力ビットに設定され、さらに4~5段目の非線型部分のNANDに入力される。
 2段目の非線形演算部は、NANDとXNORによって構成されている。
 入力5ビット中の2ビットを2段目のNANDに入力し、その出力ビットを2段目のXNORに入力して、入力5ビット中の1ビットとXNOR演算を実行する。
 2段目のXNOR演算の実行結果は、出力ビットに設定され、さらに5段目の非線型部分のNANDに入力される。
 3段目の非線形演算部は、NANDとXORによって構成されている。
 入力5ビット中の2ビットを3段目のNANDに入力し、その出力ビットを3段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
 3段目のXOR演算の実行結果は、出力ビットに設定される。
 4段目の非線形演算部は、NANDとXORによって構成されている。
 入力5ビット中の1ビットと、1段目のXOR演算の実行結果を4段目のNANDに入力し、その出力ビットを4段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
 4段目のXOR演算の実行結果は、出力ビットに設定される。
 5段目の非線形演算部は、NANDとXORによって構成されている。
 1段目のXOR演算の実行結果と、2段目のXNOR演算の実行結果を5段目のNANDに入力し、その出力ビットを5段目のXORに入力して、入力5ビット中の1ビットとXOR演算を実行する。
 5段目のXOR演算の実行結果は、出力ビットに設定される。
 この5ビットS-boxの差分確率と線形確率は共に2-2である。5ビットS-boxの各々の最適な値は2-4であるため、最も安全性の高いものではないが、回路規模はランダムに作成したものと比較して非常に小さくなる。そのため、実装性能を優先したい場合には、適している。
  (3-2.小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法)
 次に、小さいS-boxを用いた繰り返し処理による大きなS-boxの構成法について説明する。
 小さいサイズのS-boxから大きなサイズのS-boxを構成する際に,特定の関数の繰り返し構造になるように構成する。具体的には、まず小さいサイズのS-boxからハードウェア実装コスト(必要回路規模)の比較的小さい、大きなS-boxを生成し、その大きなS-boxを繰り返す構造を有する。これにより、小さいS-boxから、繰り返し構造を持った大きなS-boxを構成することができる。
  (3-2-2.本手法の効果について)
 本手法は,H/W実装,特に必要回路規模を削減することを目的とした実装、例えばシリアル実装をした際に利点が大きい。
 繰り返し構造を持っている演算に関しては、シリアル実装でS-boxを実装する際にすべての要素を実装する必要がなく、繰り返し単位を実装し、それを任意回反復実行すればよい。
 よって、この構造は、繰り返し構造を持たない従来のS-boxに対して、より少ない回路規模で実装できると言える。
 (3-2-3.具体的な構成例について)
 次に、小さいS-boxを用いた繰り返し処理による大きなS-boxの具体的な構成例について、説明する。
 以下、具体的な構成法について詳細に述べる。
 なお、以下に説明する図22~図28において、各図にSとして示す矩形領域が、例えば図16~図21を参照して説明した小さなS-box、すなわち例えば4ビット単位の非線形変換処理を実行するS-boxである。
 図22~図28は、いずれも、入力nビットを4つのn/4ビットに分割して4つのラインに入力し、各ラインデータに対して小さなS-boxとXOR回路からなる演算実行部による演算処理と、各ラインデータ単位のローテーション(Rotation)実行部によるローテーションを複数段、繰り返し実行する構成を持つ。
 図22に示す構成は、各段において1つのS-boxと1つのXOR回路の適用構成を持ち、先行する処理段において、n/4ビットのS-boxとXOR回路の適用結果を生成し、このn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図23に示す構成は、各段において2つのS-boxと2つのXOR回路の適用構成を持ち、先行する処理段において、n/4ビットのS-boxとXOR回路の適用結果を2ライン分(2×(n/4)ビット)生成し、この2ラインの演算結果と、その他の2ラインの未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図24に示す構成は、各段において1つのS-boxと2つのXOR回路の適用構成を持ち、先行する処理段において、
 n/4ビットのS-boxの適用結果と、
 n/4ビットのS-boxとXOR回路の適用結果と、
 n/4ビットのXOR回路の適用結果、
 を生成し、これらの3つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図25に示す構成は、各段において2つのS-boxと2つのXOR回路の適用構成を持ち、先行する処理段において、
 2つのn/4ビットのS-boxの適用結果と、
 2つのn/4ビットのS-boxとXOR回路の適用結果と、
 を生成し、これらの4つのn/4ビットの演算結果に対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図26に示す構成は、各段において1つのS-boxと2つのXOR回路の適用構成を持ち、先行する処理段において、
 n/4ビットのS-boxとXOR回路の適用結果と、
 n/4ビットのXOR回路の適用結果、
 を生成し、これらの2つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図27に示す構成は、各段において2つのS-boxと2つのXOR回路の適用構成を持ち、先行する処理段において、
 2つのn/4ビットのS-boxとXOR回路の適用結果、
 を生成し、これらの2つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図28に示す構成は、各段において2つのS-boxと2つのXOR回路の適用構成を持ち、先行する処理段において、
 n/4ビットのS-boxの適用結果と、
 n/4ビットのS-boxとXOR回路の適用結果と、
 n/4ビットのXOR回路の適用結果、
 を生成し、これらの3つのn/4ビットの演算結果と、その他の未処理データに対して、n/4ビットのライン単位データのローテーションを行い、ローテーション結果を次の処理段に出力する構成を持つ。
 図22、図23はそれぞれ、
 type-IGFN(Generalized Feistel Network)、
 type-IIGFN、
 と呼ばれる繰り返し構造である。
 これらは通常小さな非線形部分に作用する秘密鍵とともに用いられるが、本実施例においては実装効率を考慮して秘密鍵を挿入しない。
 このように秘密鍵を用いずに構成することで全体をひとつの固定テーブルとして実装することも可能になる。
 図22、図23の構成の違いは各段の小さなS-boxの数である。
 図22のtype-IGFNは、各段が1つのnビットS-boxとnビットのXOR、nビット単位のRotationから構成される。
 図22に示す例では入力データはnビットであり4分割されn/4ビット単位で各ラインに入力されている。
 なお、入力データの分割数は任意である。すなわち、任意のr分割(r>2)への拡張が可能であり、必要な大きなS-boxの入出力サイズに応じて適時決定することができる。
 図23に示すtype-IIGFNは、各段単位で、2つの小さなnビットS-boxとnビットのXOR、nビット単位のRotationで構成される。
 これらの2つの構成方法の特徴は、順方向からの演算と逆方向からの演算がほとんど同じであり、違いはRotation部分のみとなっている。
 これにより、順関数と逆関数を両方実装する必要がある場合、回路の共有化が行える。図23の構成法において、図16の4ビットS-boxを用い、16ビットS-boxを生成した場合は、
 6回繰り返しで最大差分確率は2-8.3
 最大線形確率は2-7.83であり,
 7回繰り返しで最大差分確率は2-9.1
 最大線形確率は2-8になる。
 これらの値は16-bitで最適な値ではないが、十分低い確率であり、回路規模はランダムに作成したものと比べて非常に小さくなる。
 図24~図28は、図22,図23の構造とは異なる部分に小さなS-boxを配置した構造である。各々の違いはその配置場所と繰り返し単位でのS-boxの数のみである。
 これらの構造では、小さなS-boxに入力されるデータが、その後の演算では不要となるため、余計な記憶領域は不要であり、繰り返し関数をさらに細かく分割して実装した場合にハードウェアで必要な回路規模をさらに小さくすることが可能である。
 図25の構成法で、図17を参照して説明した4ビットS-boxを用い、16ビットS-boxを構成した場合は、
 6回繰り返しで最大差分確率は2-8.3
 最大線形確率は2-8であり、
 7回繰り返しで、最大差分確率は2-9.1
 最大線形確率は2-8.5であり、
 16-bitで最適な値ではないが、十分低い確率であり、回路規模はランダムに作成したものと比べて非常に小さくなる。
  [4.暗号処理装置の構成例について]
 最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の実相例について説明する。
 上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な危機において利用可能である。
 本開示の暗号処理を実行する装置の一例としてのICモジュール700の構成例を図29に示す。上述の処理は、例えばPC、ICカード、リーダライタ、その他、様々な情報処理装置において実行可能であり、図29に示すICモジュール700は、これら様々な機器に構成することが可能である。
 図29に示すCPU(Central processing Unit)701は、暗号処理の開始や、終了、データの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行するプロセッサである。メモリ702は、CPU701が実行するプログラム、あるいは演算パラメータなどの固定データを格納するROM(Read-Only-Memory)、CPU701の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用されるRAM(Random Access Memory)等からなる。また、メモリ702は暗号処理に必要な鍵データや、暗号処理において適用する変換テーブル(置換表)や変換行列に適用するデータ等の格納領域として使用可能である。なおデータ格納領域は、耐タンパ構造を持つメモリとして構成されることが好ましい。
 暗号処理部703は、上記において説明した暗号処理構成、すなわち、例えば一般化Feistel構造や、Feistel構造を適用した共通鍵ブロック暗号処理アルゴリズムに従った暗号処理、復号処理を実行する。
 なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROMに格納し、CPU701がROM格納プログラムを読み出して実行するように構成してもよい。
 乱数発生器704は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数の発生処理を実行する。
 送受信部705は、外部とのデータ通信を実行するデータ通信処理部であり、例えばリーダライタ等、ICモジュールとのデータ通信を実行し、ICモジュール内で生成した暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行する。
 なお、上述した実施例において説明したデータ処理装置は、入力データとしての平文を暗号化する暗号化処理に適用可能であるのみならず、入力データとしての暗号文を平文に復元する復号処理にも適用可能である。
 暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を持つ非線形変換部の構成を適用することが可能である。
  [5.本開示の構成のまとめ]
 以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
 なお、本明細書において開示した技術は、以下のような構成をとることができる。
 (1) データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
 前記データ変換処理部は、
 前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
 前記F関数実行部は、
 非線形変換処理を実行する非線形変換処理部を有し、
 前記非線形変換処理部は、
 1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
 ビット置換部と、
 の繰り返し構造を有するデータ処理装置。
 (2)前記ビット置換部は、前記非線形演算部に対する入出力ビットを入れ替える配線構成を有する前記(1)に記載のデータ処理装置。
 (3)前記非線形変換処理部は、2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する前記(1)または(2)に記載のデータ処理装置。
 (4)前記非線形変換処理部は、nビットデータの非線型変換結果を出力する構成において、前記非線形演算部を、n回以上繰り返す繰り返し構造を有する前記(1)~(3)いずれかに記載のデータ処理装置。
 (5)前記非線形変換処理部は、nビットデータの非線型変換結果を出力する構成において、前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn-1回設定した構成である前記(1)~(4)いずれかに記載のデータ処理装置。
 (6)前記非線形変換処理部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する前記(1)~(5)いずれかに記載のデータ処理装置。
 (7)前記非線形変換処理部は、前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である前記(1)~(6)いずれかに記載のデータ処理装置。
 (8)前記データ処理装置は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する前記(1)~(7)いずれかに記載のデータ処理装置。
 (9)1つのNANDまたはNOR演算部と、
 1つのXORまたはXNOR演算部からなる非線形演算部と、
 ビット置換部と、
 の繰り返し構造を有する非線形変換処理部を有するデータ処理装置。
 (10)前記非線形変換処理部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する前記(9)に記載のデータ処理装置。
 (11)データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、
 複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置。
 (12)前記非線形関数実行部は、非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する前記(11)に記載のデータ処理装置。
 さらに、上記した装置およびシステムにおいて実行する処理の方法や、処理を実行させるプログラムも本開示の構成に含まれる。
 また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
 なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
 上述したように、本開示の一実施例の構成によれば、小型化した非線形変換部が実現される。
 具体的には、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理を繰り返して実行する暗号処理部を有し、暗号処理部は、複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、F関数実行部は非線形変換処理を実行する非線形変換処理部を有し、非線形変換処理部は1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、ビット置換部との繰り返し構造を有する。この繰り返し構成により小型化された非線形変換部が実現される。
 700 ICモジュール
 701 CPU(Central processing Unit)
 702 メモリ
 703 暗号処理部
 704 乱数生成部
 705 送受信部

Claims (14)

  1.  データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行するデータ変換処理部を有し、
     前記データ変換処理部は、
     前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数実行部を有し、
     前記F関数実行部は、
     非線形変換処理を実行する非線形変換処理部を有し、
     前記非線形変換処理部は、
     1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
     ビット置換部と、
     の繰り返し構造を有するデータ処理装置。
  2.  前記ビット置換部は、前記非線形演算部に対する入出力ビットを入れ替える配線構成を有する請求項1に記載のデータ処理装置。
  3.  前記非線形変換処理部は、
     2ビット入力1ビット出力のNANDまたはNOR演算部における演算結果としての1ビットを、前記XORまたはXNOR演算部に出力して、他の入力1ビットデータとのXORまたはXNOR演算を実行し、XORまたはXNOR演算結果として生成した1ビットデータを非線形変換処理結果の構成ビットとして出力する請求項1に記載のデータ処理装置。
  4.  前記非線形変換処理部は、
     nビットデータの非線型変換結果を出力する構成において、
     前記非線形演算部を、n回以上繰り返す繰り返し構造を有する請求項1に記載のデータ処理装置。
  5.  前記非線形変換処理部は、
     nビットデータの非線型変換結果を出力する構成において、
     前記非線形演算部をn回、前記ビット置換部をn回の前記非線形演算部の間にn-1回設定した構成である請求項1に記載のデータ処理装置。
  6.  前記非線形変換処理部は、
     非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項1に記載のデータ処理装置。
  7.  前記非線形変換処理部は、
     前記繰り返し構造中に、XOR演算部とXNOR演算部の双方を有する構成である請求項1に記載のデータ処理装置。
  8.  前記データ処理装置は、
     入力データとしての平文を暗号文に変換する暗号化処理、または、
     入力データとしての暗号文を平文に変換する復号処理を実行する請求項1に記載のデータ処理装置。
  9.  1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
     ビット置換部と、
     の繰り返し構造を有する非線形変換処理部を有するデータ処理装置。
  10.  前記非線形変換処理部は、
     非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項9に記載のデータ処理装置。
  11.  データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、
     複数ラインを構成する1ラインのデータを入力して変換データを生成する非線形関数実行部を有するラウンド関数の繰り返し構造を有するデータ処理装置。
  12.  前記非線形関数実行部は、
     非線形変換対象となるデータの構成ビットの全てに対して、1つのNANDまたはNOR演算部の演算結果とのXORまたはXNOR演算結果を生成し、該XORまたはXNOR演算結果を非線型変換結果の構成ビットとして出力する請求項11に記載のデータ処理装置。
  13.  データ処理装置において実行するデータ処理方法であり、
     データ処理部が、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行し、
     前記データ変換処理において、
     前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行し、
     前記F関数の実行処理において、非線形変換処理を実行し、
     前記非線形変換処理において、
     1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
     ビット置換部と、
     を適用した繰り返し演算を実行するデータ処理方法。
  14.  データ処理装置においてデータ変換処理を実行させるプログラムであり、
     データ処理部に、データ処理対象となるデータの構成ビットを複数ラインに分割して入力し、各ラインのデータに対するデータ変換処理を繰り返し実行させ、
     前記データ変換処理において、
     前記複数ラインを構成する1ラインのデータを入力して、変換データを生成するF関数を実行させ、
     前記F関数の実行処理において、非線形変換処理を実行させ、
     前記非線形変換処理において、
     1つのNANDまたはNOR演算部と、1つのXORまたはXNOR演算部からなる非線形演算部と、
     ビット置換部と、
     を適用した繰り返し演算を実行させるプログラム。
PCT/JP2012/053932 2011-03-28 2012-02-20 データ処理装置、およびデータ処理方法、並びにプログラム WO2012132622A1 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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