WO2007086243A1 - 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム - Google Patents

暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム Download PDF

Info

Publication number
WO2007086243A1
WO2007086243A1 PCT/JP2007/050010 JP2007050010W WO2007086243A1 WO 2007086243 A1 WO2007086243 A1 WO 2007086243A1 JP 2007050010 W JP2007050010 W JP 2007050010W WO 2007086243 A1 WO2007086243 A1 WO 2007086243A1
Authority
WO
WIPO (PCT)
Prior art keywords
function
processing
cryptographic processing
round
functions
Prior art date
Application number
PCT/JP2007/050010
Other languages
English (en)
French (fr)
Inventor
Kyoji Shibutani
Taizo Shirai
Original Assignee
Sony Corporation
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 Sony Corporation filed Critical Sony Corporation
Priority to CN200780003386.XA priority Critical patent/CN101375323B/zh
Priority to EP07706357A priority patent/EP1978496A4/en
Priority to US12/161,898 priority patent/US20090010425A1/en
Publication of WO2007086243A1 publication Critical patent/WO2007086243A1/ja

Links

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
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Definitions

  • Cryptographic processing apparatus Cryptographic processing apparatus, cryptographic processing apparatus manufacturing apparatus and method, and computer program
  • the present invention relates to a cryptographic processing apparatus, a cryptographic processing apparatus manufacturing apparatus and method, and a computer program. More specifically, the present invention relates to a cryptographic processing apparatus, a cryptographic processing apparatus manufacturing apparatus and method, and a computer program that execute Feistel-type common key block cryptographic processing. Background art
  • an encryption processing module is embedded in a small device such as an IC card, and data is transmitted / received between the IC card and a reader / writer as a data reading / writing device, authentication processing, or encryption of transmitted / received data,
  • a decoding system has been put into practical use.
  • a public key cryptosystem in which an encryption key and a decryption key are set as different keys, for example, a public key and a secret key, and an encryption key and a decryption key.
  • a common key and a common key encryption method As a common key and a common key encryption method.
  • the common key cryptosystem has various algorithms. One of them is the generation of multiple keys based on the common key, and the generated multiple keys are used as a block unit (64 bits, 128 bits). Etc.) is repeatedly executed. A typical algorithm using such a key generation method and data conversion processing is the common key block encryption method.
  • Feistel structure As one design of the common key block cryptosystem, a structure called a Feistel structure that repeatedly executes a basic conversion function on plaintext data input as an encryption processing target is often used. . Feistel structure is the basis called round function Consists of repeated processing units. The number of round function iterations, that is, the number of rounds (or stages) is determined at the time of design, which is not particularly fixed.
  • the processing time becomes long, but it is possible to increase the strength against various attacks, that is, cryptographic analysis such as differential analysis, and to strengthen the security. Therefore, it is preferable to set the number of rounds according to the purpose of use, such as when processing time is prioritized or when safety is prioritized.
  • the present invention makes it possible to easily change the number of rounds in a configuration that executes Feistel type common key block cipher processing having a Feistel structure, which is one design of the common key block cipher system.
  • a cryptographic processing device, a cryptographic processing device manufacturing apparatus, a method, and a computer that enable cryptographic processing with various round number settings while maintaining a configuration that is highly resistant to attacks such as differential attacks 'The purpose is to provide a program.
  • the first aspect of the present invention is a first aspect of the present invention.
  • a cryptographic processing device A cryptographic processing device,
  • a cryptographic processor that performs Feistel-type common key block cipher processing that repeats multiple rounds of the SP-type F function that performs data transformation processing including nonlinear transformation processing and linear transformation processing, and reverses the order in which round keys are used.
  • the encryption function that makes it possible to perform the encryption function and the decryption function in the same circuit, and that has multiple different F functions that satisfy the preset F function array conditions.
  • a cryptographic processing unit having a processing basic unit;
  • a control unit that performs execution control of a cryptographic processing operation that repeatedly uses the cryptographic processing basic unit once or a plurality of times based on usage number setting information of the cryptographic processing basic unit configured in the cryptographic processing unit;
  • the F function arrangement condition is: Three types of F functions F 1, F 2, F 3, F 3 F are applied to three rounds of the F transformation function M, M, M included in the encryption processing unit that executes the Feistel type common key block cipher processing.
  • the array condition is that three types of F functions F, F, F are included in three consecutive parts.
  • the F function arrangement condition is such that the F function of each round included in the cryptographic processing unit that executes the Feistel-type common key block cryptographic processing is two different. Includes two types of F functions F and F to which linear transformation matrices M and M are applied.
  • the second aspect of the present invention provides
  • a cryptographic processing device manufacturing device A cryptographic processing device manufacturing device
  • a cryptographic processor that performs Feistel-type common key block cipher processing that repeats multiple rounds of the SP-type F function that performs data transformation processing including nonlinear transformation processing and linear transformation processing, and reverses the order in which round keys are used.
  • the encryption function that makes it possible to perform the encryption function and the decryption function in the same circuit, and that has multiple different F functions that satisfy the preset F function array conditions.
  • the F function array condition is that the F function of each round included in the cryptographic processing unit that executes the Feistel type common key block cryptographic processing is 3 Three types of F applying two different linear transformation matrices M, M, M In the case of a configuration that includes functions F, F, and F, select odd-numbered rounds in order of leading force.
  • the array condition is that three types of F functions F, F, F are included in three consecutive parts.
  • the F function arrangement condition is that the F function of each round included in the cryptographic processing unit that executes the Feistel type common key block cryptographic processing is 2 Two types of F-function F applying two different linear transformation matrices M and M
  • two consecutive functions include two types of F functions F and F, and even rounds are selected from the final round.
  • the array condition must include two types of F functions F and F in two consecutive parts.
  • the round number changing section is sequentially one by one before the first round and after the last round constituting the cryptographic processing basic unit. , And a process of selecting and adding an F function satisfying the F function arrangement condition.
  • the round number changing unit is configured to execute a F function addition process by connecting a plurality of the cryptographic processing basic units. It is characterized by.
  • the third aspect of the present invention provides:
  • a cryptographic processing step that performs Feistel-type common key block cipher processing that repeats multiple rounds of SP-type F functions that perform data transformation processing including nonlinear transformation processing and linear transformation processing, and reverses the order in which round keys are used. It is possible to perform the encryption function and the decryption function in the same circuit just by making it an involution, and a plurality of different F functions are arrays that satisfy the preset F function array conditions.
  • the cryptographic processing function Based on the usage count setting information of the cryptographic processing basic unit configured in the cryptographic processing unit, the cryptographic processing function that repeatedly uses the cryptographic processing basic unit once or a plurality of times.
  • the F function arrangement condition is such that the F function of each round included in the cryptographic processing unit that executes the Feistel type common key block cryptographic processing is three different.
  • the array condition is that three types of F functions F, F, F are included in three consecutive parts.
  • the F function arrangement condition is such that the F function of each round included in the cryptographic processing unit that executes the Feistel type common key block cryptographic processing is different from two. Includes two types of F functions F and F to which linear transformation matrices M and M are applied.
  • a cryptographic processor that performs Feistel-type common key block cipher processing that repeats multiple rounds of the SP-type F function that performs data transformation processing including nonlinear transformation processing and linear transformation processing, and reverses the order in which round keys are used.
  • the encryption function that makes it possible to perform the encryption function and the decryption function in the same circuit, and that has multiple different F functions that satisfy the preset F function array conditions.
  • the F function array condition is that the F function of each round included in the cryptographic processing unit that executes the Feistel type common key block cryptographic processing is 3 Three types of F applying two different linear transformation matrices M, M, M
  • the array condition is that three types of F functions F, F, F are included in three consecutive parts.
  • the F function arrangement condition is that the F function of each round included in the cryptographic processing unit that executes the Feistel type common key block cryptographic processing is 2 Two types of F-function F applying two different linear transformation matrices M and M
  • two consecutive functions include two types of F functions F and F, and even rounds are selected from the final round.
  • the array condition must include two types of F functions F and F in two consecutive parts.
  • the number of rounds changing step is sequentially performed one by one before the first round constituting the cryptographic processing basic unit and after the last round. And a step of selecting and adding an F function that satisfies the F function arrangement condition.
  • the round number changing step is a step of connecting a plurality of the cryptographic processing basic units and executing an F function adding process. It is characterized by.
  • the fifth aspect of the present invention provides
  • age A cryptographic processing step for executing cryptographic processing using the cryptographic processing basic unit; and the control unit, and the cryptographic processing basic unit based on the number-of-use setting information of the cryptographic processing basic unit configured in the cryptographic processing unit.
  • the computer is characterized by running a 'program.
  • the computer 'program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a computer system capable of executing various program' codes, such as a CD or FD.
  • a computer program that can be provided via a recording medium such as MO or a communication medium such as a network.
  • system is a logical group configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
  • n-round Feistel cipher configuration having a matrix array that satisfies ODM-MR or SDM-MR as the pre-set F-function array conditions is configured as a cryptographic processing basic unit.
  • FIG. 1 is a diagram showing a configuration of a typical common key block cipher having a Feistel structure.
  • FIG. 2 is a diagram for explaining a configuration of an F function set as a round function part.
  • FIG. 3 is a diagram for explaining implosion in Feistel encryption processing.
  • FIG. 4 A diagram illustrating a Feistel-type cryptographic algorithm using two different linear transformation matrices.
  • FIG. 5 A diagram explaining the Feistel-type cryptographic algorithm using three different linear transformation matrices.
  • FIG. 6 is a diagram for explaining a Feistel-type cryptographic algorithm with a 6-round configuration having three types of F function parts.
  • FIG. 7 A diagram for explaining an Feistel-type cryptographic algorithm with an 8-round configuration having three types of F-function parts.
  • FIG. 8 is a diagram for explaining round number addition processing for a Feistel-type cryptographic processing basic unit having three types of F function parts.
  • FIG. 9 is a diagram illustrating round number addition processing for a Feistel-type cryptographic processing basic unit having three types of F function parts.
  • FIG. 10 is a diagram for explaining round number addition processing using a plurality of Feistel-type cryptographic processing basic units having three types of F function parts.
  • FIG. 11 is a diagram for explaining round number addition processing using a plurality of Feistel-type cryptographic processing basic units having two types of F function parts.
  • FIG. 12 is a diagram for explaining control processing of a cryptographic processing device using a Feistel-type cryptographic processing basic unit having three types of F function parts.
  • FIG. 13 is a diagram for explaining control processing of a cryptographic processing device using a Feistel-type cryptographic processing basic unit having two types of F function parts.
  • FIG. 14 is a diagram showing a configuration example of an IC module as a cryptographic processing apparatus that executes cryptographic processing according to the present invention.
  • FIG. 15 is a diagram illustrating a configuration example of a cryptographic processing device manufacturing apparatus according to the present invention.
  • the Feistel structure with SP type F function is explained.
  • a structure called a Feistel structure is often used, in which conversion functions that are the basis for plaintext data conversion methods are arranged in a special order.
  • the Feistel structure has a structure that converts plaintext into ciphertext by simple repetition of a conversion function called a round function.
  • the Feistel structure will be described with reference to FIG.
  • the length of the plaintext input as the encryption target is 2mn bits. However, m and n are both integers.
  • the 2mn bit plaintext is divided into two mnbit input data P (Plain-Left) 101, P (Plain-Right) 102
  • the Feistel structure is expressed by repetition of a basic structure called a round function, and a data conversion function included in each round is called an F function 120.
  • a round function a basic structure
  • a data conversion function included in each round is called an F function 120.
  • FIG. 1 a configuration example in which the F function (round function) 120 is repeated r stages is shown.
  • the mn-bit input data X and the mn-bit round key K 103 to which the key generation unit (not shown) is also input are input to the F function 120, and the F function 120 After the data conversion process, mn bit data Y is output.
  • the output is the input data from the other previous stage (input data P in the first stage) and the exclusive OR part 104.
  • the Feistel structure decryption process determines the order in which the round keys are inserted. It is derived that it is not necessary to construct an inverse function just by reversing.
  • FIG. 2 (a) is a diagram showing inputs and outputs to the F function 120 in one round
  • FIG. 2 (b) is a diagram showing details of the configuration of the F function 120.
  • F function 120 has a so-called SP-type configuration in which a nonlinear transformation layer (S layer) and a linear transformation layer (P layer) are connected!
  • the F function 120 shown in FIG. 2 is a function having an input / output bit length set to mX n (m, n: integer) bits.
  • exclusive OR of key data K and data X is executed first, then nonlinear transformation layer (S layer) is applied, and then linear transformation layer (P layer) is applied. .
  • the non-linear conversion layer (S layer) consists of m non-linear input tables called n-bit input and n-bit output called S-box 121, and mn bit data. Is divided into n bits and input to the corresponding S-box 121 to convert the data. In each S box, for example, nonlinear conversion processing using a conversion table is executed.
  • the linear conversion layer (P layer) is configured by a linear conversion unit 122, and the linear conversion unit 122 inputs an output value Z of mn bits, which is output data from the S bot 121, and receives this input. Performs linear conversion and outputs the mn bit result.
  • the linear conversion unit 122 performs linear conversion processing such as input bit position replacement processing and outputs an output value Y of mn bits. This output value Y is exclusive ORed with the input data of the previous stage force, and used as the input value of the F function of the next round.
  • the linear transformation executed by the linear transformation unit 122 as the linear transformation layer (P layer) is mnX mn defined on GF (2). It is defined as a linear transformation performed by applying a matrix, and the matrix included in the i-th round is called M.
  • the linear transformation matrix applied to the linear transformation executed in the linear transformation layer of the F function does not lower the cryptographic strength.
  • optimal diffusion transformation (ODM: Optimal Diffusion Mappings) is defined as follows.
  • n X a bit data force mapping that performs linear transformation to n X b bit data
  • branches B ( ⁇ ) The number of branches B ( ⁇ ) is defined as follows.
  • min ⁇ X ⁇ represents the minimum value of all Xs satisfying ⁇ ⁇ 0.
  • Hw (Y) is a function that returns the number of ⁇ (non-zero) elements in which all n-bit data is not 0 when the bit string Y is expressed in units of n bits.
  • a mapping ⁇ in which the number of branches B (0) is b +1 is defined as Optimal Diffusion Mappings (ODM).
  • ODM Optimal Diffusion Mappings
  • a mapping ⁇ whose branch number ⁇ ( ⁇ ) is less than b + 1 is defined as sub-optimal diffusion mapping (SDM).
  • the optimum diffusion transformation i.e. a mapping ⁇ such that the number of branches B (0) is b + 1
  • SDM suboptimal diffusion transformation
  • the encryption function E that executes the Feistel type encryption with the SP type F function described above is defined as follows.
  • the decryption function D can be expressed as follows.
  • I is a concatenation, and ⁇ ,..., ⁇ and ⁇ are round keys used in each round.
  • the Feistel structure common key block cipher usually has the feature that the encryption function and the decryption function can be performed by the same circuit only by reversing the use order of the round keys to be used. In other words, both encryption processing and decryption processing can be executed simply by applying the same circuit without setting separate circuits for encryption processing and decryption processing, and setting the processing order in reverse. .
  • This property of the Feistel structure common key block cipher is defined as impulsiveness.
  • the Feistel structure shown in Fig. 1 is the Feistel structure that is applied to the encryption process.
  • the encryption function E is executed. That is,
  • L R indicates the plaintext to be entered as the target of encryption processing as shown in Figure 1.
  • ⁇ , K, ..., K indicates the round key used in each round as shown in Fig. 1.
  • the Feistel structure for this is shown in Fig. 3.
  • the Feistel structure shown in Fig. 3 has a decoding function D, that is,
  • the condition that the resistance to attacks such as differential analysis can be increased is that the same matrix does not continue even when the final stage force is applied to even-numbered stages that are not continuous.
  • Condition (a) is a condition in which (a) M and M are arranged in the order of odd-numbered stages, and as shown in FIG.
  • the matrices M and M are arranged in this order in the order of 8,.
  • each of the matrices M and M is arranged in this order in the order of 8,.
  • FIG. 4 The example shown in Fig. 4 is an example using two different linear transformation matrices, and even with this configuration, it is possible to increase resistance against differential attacks, but in addition, three different matrices M, A configuration using M and M is also possible.
  • Figure 5 shows Feistel with multiple stages (round)
  • the continuation always includes three matrices with different M, M, and M, and even stages are viewed from the last stage.
  • the difference is that the three consecutive parts always contain three matrices with different M, M, and M.
  • Condition (a) is a condition that (a) is arranged in order of M 1, M 2, and M in odd stages, as shown in FIG.
  • the matrices M 1, M 2, and M are arranged in the order of rounds 12, 10, 8,. Where the matrix M,
  • M and M are linear transformation matrices executed in the F function in each round.
  • the configuration is such that different matrices are arranged in a specific order and the F function is executed, so that higher resistance to attacks such as differential analysis is enhanced. Feistel-type encryption with high performance is realized.
  • the details of this configuration and processing are described in the previous patent application: Japanese Patent Application No. 2005-313842, which belongs to the same applicant as the present invention.
  • the linear transformation matrix to be applied to the Feistel cipher that sets a plurality of different linear transformation matrices as described with reference to FIGS. 4 and 5 is to maintain a certain cryptographic strength. It is preferable to use a matrix having a specific property. When evaluating and setting the linear transformation matrix, evaluation criteria such as optimum diffusion transformation and sub-optimal diffusion transformation can be used.
  • M, M, and M are ODM—MR (
  • T column (Optimal Diffusion Mappings across Multiple Rounds) Define T column.
  • tM is the transposed matrix of M
  • M_1 is the inverse of M.
  • M, M, and M are SDM—MR (Sub optimal Diff
  • the three consecutive parts in odd stages always include three matrices with different M, M, and M.
  • the matrix array satisfying ODM-MR or SDM-MR is a condition that can increase resistance to attacks such as differential analysis.
  • the number of processing rounds has a trade-off between speed and security.
  • round number stage number
  • stage number Increases, the safety increases but the speed decreases. If the number of steps decreases, the safety decreases but the speed increases. Therefore, it is desirable that the number of processing rounds can be changed flexibly according to the application, such as when processing speed is prioritized or when safety is prioritized.
  • the F function using the linear transformation matrix M is F, and the linear transformation row is used.
  • the F function using column M is written as F, and the F function using linear transformation matrix M is written as F.
  • the order of F 1, F 2 and F may be different. In other words, the odd number of three consecutive parts must be different.
  • ODM—MR or SDM—MR can contain three F-functions: F, F, F
  • F is required. As explained above, F, F in that order
  • 0 1 0 1 may be reversed.
  • F and F two different F functions, F and F, are included in succession so that the same matrix does not continue in odd stages.
  • the continuous inclusion of 01 is a matrix array that satisfies ODM-MR or SDM-MR, and is a condition that can increase resistance to attacks such as differential analysis.
  • the array is also a matrix array that satisfies ODM-MR or SDM-MR as described above. This condition is necessary to maintain resistance against cryptographic attacks such as differential analysis.
  • the Feistel cryptographic processing basic unit set in advance that is, the Feistel cryptographic processing basic unit having a configuration that satisfies the two conditions of the matrix arrangement that satisfies the involution property and the ODM-MR or SDM-MR.
  • a processing configuration for increasing the number of rounds by adding an F function will be described.
  • Fei stel cipher with a matrix arrangement that satisfies involution and ODM-MR or SDM-MR, and a configuration that satisfies two conditions
  • the cryptographic processing basic unit Feistel cryptographic processing basic unit, which also has different F functions F, F, F force with three different linear transformation matrices and
  • this basic cryptographic processing basic unit is arranged from the top in the arrangement of the F function.
  • ⁇ F ⁇ F are arranged above and below the six-stage cryptographic processing basic unit 201, respectively.
  • the order of F function placement is [F ⁇ F ⁇ F ⁇ F] when odd stages are selected from the top.
  • ODM—MR because it contains three different F functions, F, F, F, applying three matrices
  • F functions using three different matrices M, M, and M, which must be divided into three consecutive parts of odd stages, F,
  • the F function to be added is selected based on this selection condition, in the round number addition process from the 6th stage to the 8th stage shown in FIG. 8, the F function to be added is the F function [F].
  • the ODM—MR structure Feistel cipher can be changed to an 8-round (stage) Feistel cipher with an involution and a matrix arrangement that satisfies ODM—MR or SDM—MR.
  • the selection condition of the F function in this case is the same as the change from the 6th stage to the 8th stage, and the F function using the three matrices M, M, and M that are always different in the 3 consecutive parts of the odd stage, F, F, F included
  • the F function to be added becomes the F function [F] in the round number addition process from the 8th stage to the 10th stage shown in FIG. Configuration
  • the ODM-MR structure Feistel cipher can be changed to a 10-round Feistel cipher with a matrix arrangement that satisfies the involution and ODM-MR or SDM-MR.
  • an n-round (stage) Feistel cipher configuration having a predetermined invocation property and a matrix arrangement satisfying ODM-MR or SDM-MR is expressed as n + 2 round (
  • the three consecutive parts of odd stages always include three different F, F, F, and F functions using the matrices M, M, and M, and the even stage is the highest.
  • F-function additional processing to satisfy these conditions that is, n rounds (stages) having a preset invocation property and a matrix array that satisfies ODM-MR or SDM-MR
  • stages having a preset invocation property and a matrix array that satisfies ODM-MR or SDM-MR
  • the number of processing rounds can be efficiently increased or decreased by two stages while maintaining the involution of the ODM-MR or SDM-MR structure Feistel cipher.
  • the F function additionally set up and down has n rounds (stages) that have involution and matrix arrangement that satisfies ODM-MR or SDM-MR even if one is removed from the top and bottom.
  • Feistel cryptographic configuration unit remains, and not only can the number of rounds increase, but also the number of rounds up to the initial cryptographic processing basic unit level can be handled.
  • Feistel cipher composition including two F functions F and F with two different linear transformation matrices
  • Each of the Feistel cipher processing basic units 231, 232 shown in Fig. 10 will be described.
  • the configuration shown in FIG. 10 is obtained by setting a 12-stage Feistel encryption processing configuration using these two 6-stage Feistel encryption processing basic units 231, 232.
  • the 12-stage Feistel cipher configuration shown in Fig. 10 is
  • the order of F function placement is [F ⁇ F ⁇ F ⁇ F ⁇ F ⁇ F] when an odd number is selected from the top.
  • FIG. 10 shows an example in which two 6-stage units are connected to generate a 12-stage Feistel cipher configuration. By connecting, it is possible to configure a Feistel cipher configuration with 18 and 24 stages, that is, a Feistel cipher structure that has an ODM-MR structure and also maintains involution.
  • the configuration shown in FIG. 11 is obtained by setting a 12-stage Feistel encryption processing configuration using these three 4-stage Feistel encryption processing basic units 251, 252, and 253.
  • the Feistel cipher configuration with 12 stages shown in Fig. 11 is
  • the order of F function placement is [F ⁇ F ⁇ F ⁇ F ⁇ F ⁇ F] when an odd number is selected from the top.
  • This 12-stage Feistel cipher configuration is based on the top order of the F function of each round, Therefore, the involution property is satisfied.
  • the F function using two different matrices M and M, F and F are always included in the two consecutive parts of odd stages.
  • a matrix array that satisfies MR A matrix array that satisfies MR.
  • Figure 11 shows an example in which three four-stage units are connected to generate a 12-stage Feistel cipher configuration, but there are four more four-stage units, five, and so on.
  • a Feistel cipher configuration with 16 or 20 steps, that is, a Feistel cipher configuration with an ODM-MR structure and involution.
  • one 6-stage ODM-MR structure Feistel cryptographic processing basic unit described with reference to Fig. 10 is used.
  • a processing program that allows the number of times of use to be selected and setting the processing program to change the number of times of use depending on the application, It is possible to execute encryption processing for the number of rounds selected according to various data processing, and to realize a device that can increase or decrease the number of processing rounds at a low cost.
  • a specific example will be described with reference to FIG. In FIG. 12, cryptographic processing is executed.
  • a six-stage Feistel cryptographic processing basic unit 270 and switches 271 to 274 are shown.
  • the switches 271 to 274 may be configured as hardware or configured to perform control to execute the same processing as the switch on the software.
  • switches 271 to 274 are controlled by control of a control unit (not shown).
  • switches 271, 272 are set to the [a] side.
  • the six-stage Feistel cryptographic processing basic unit 270 executes six rounds of Feiste 1 cryptographic processing.
  • the processing result is output when switches 273 and 274 are set to the [c] side.
  • switches 273 and 274 are set to [c] and the result is output.
  • the switches 273 and 274 are set to the [d] side and the switches 271 and 272 are set to the [b] side under the control of the control unit.
  • the 6-round processing result executed in the Feistel cryptographic processing basic unit 270 having the 6-stage configuration is input again to the top stage of the Feistel cryptographic processing basic unit 270 having the 6-stage configuration, and further +6 rounds.
  • Cryptographic processing using the F function is executed.
  • switches 273 and 274 are set to the [c] side and output.
  • switches 273 and 274 are set to [d]
  • switches 2 73 and 274 are set to [c] after the scheduled processing round is completed. Will be output.
  • one basic encryption processing unit that is, an n-stage configuration with a configuration that satisfies the two conditions of involution and matrix arrangement that satisfies ODM-MR or SDM-MR.
  • the Feistel cryptographic processing basic unit in a cryptographic processing device such as an IC card, the number of repetitions of processing using this unit can be selected by a program executed by a control unit such as a CPU. Therefore, it is possible to execute encryption processing with the optimum number of rounds according to each data processing.
  • FIG. 13 shows a configuration example using two types of matrices.
  • a four-stage Feistel encryption processing basic unit 280 and switches 281 to 2874 are shown.
  • the three-stage Fe istel cryptographic processing basic unit 280 shown in FIG. 13 has the same F function as described above with reference to FIG. Arrangement from above
  • switches 281 to 284 are controlled by control of a control unit (not shown).
  • switches 281, 282 are set to the [a] side.
  • the round Feistel encryption processing is executed in the four-stage Feistel encryption processing basic unit 280.
  • the processing result is output when switches 283 and 284 are set to the [c] side.
  • switches 283 and 284 are set to the [c] side, and the result is output.
  • switches 283 and 284 are set to the [d] side and switches 281 and 282 are set to the [b] side by the control of the control unit.
  • the 4-round processing results executed in the four-stage Feistel cryptographic processing basic unit 280 are again input to the uppermost stage of the four-stage Feistel cryptographic processing basic unit 280, and + 4-round F-function cryptographic processing is executed.
  • switches 283 and 284 are set to the [c] side and output.
  • switches 283 and 284 are set to [d]
  • switches 2 83 and 284 are set to [c] after the scheduled processing round ends. Will be output.
  • one basic encryption processing unit that is, an n-stage configuration with a configuration that satisfies the two conditions of involution and matrix arrangement that satisfies ODM-MR or SDM-MR.
  • a CPU (Central processing Unit) 301 shown in FIG. 14 is a processor that executes encryption processing start and end, data transmission / reception control, data transfer control between each component, and other various programs. It is.
  • the memory 302 is a program executed by the CPU 301 or a ROM (Read-Only-Memory) that stores fixed data such as operation parameters, a program executed by the CPU 301, and a program executed by the CPU 301.
  • the parameter storage area and the RAM (Random Access Memory) used as the work area will change accordingly.
  • the memory 302 can be used as a storage area for key data necessary for encryption processing, data to be applied to conversion tables (replacement tables) and conversion matrices applied in encryption processing, and the like.
  • the data storage area is preferably configured as a memory having a tamper resistant structure.
  • the encryption processing unit 303 executes encryption processing and decryption processing according to, for example, the above-described Feistel type common key block encryption processing algorithm. Note that here, the power of an example where the cryptographic processing means is an individual module is not provided.
  • the cryptographic processing program is stored in the ROM, and the CPU 301 reads the ROM storage program. May be configured to run.
  • the random number generator 304 performs a random number generation process necessary for generating a key necessary for the cryptographic process.
  • the transmission / reception unit 305 is a data communication processing unit that performs data communication with the outside.
  • the communication unit 305 performs data communication with an IC module such as a reader / writer and outputs ciphertext generated in the IC module.
  • data input for equipment such as an external reader / writer is executed.
  • the cryptographic processing unit 303 includes, for example, a cryptographic processing basic unit shown in FIG. 12 and FIG. 13, that is, an involution and ODM-MR or a matrix array that satisfies SDM-MR. N-stage F with a configuration that satisfies two conditions The eistel encryption processing basic unit is used, and the number of processing rounds is determined according to the program executed by the CPU 3-1 as the control unit, and the Feistel encryption processing of the determined number of rounds is executed.
  • the manufacturing apparatus that manufactures the cryptographic processing apparatus includes a cryptographic processing basic unit generation unit 501 and a round number changing unit 502, as shown in FIG.
  • the cryptographic processing basic unit generation unit 501 repeats multiple rounds of the SP type F function that performs the data conversion process including the nonlinear conversion process and the linear conversion process described above with reference to FIGS. 1 and 2 Feistel type Cryptographic processing unit that executes common key block cipher processing and has involution that enables the encryption function and decryption function to be performed on the same circuit simply by reversing the order of use of the round keys to be used.
  • a cryptographic processing basic unit is generated in which a plurality of different F functions are arranged to satisfy a predetermined F function arrangement condition.
  • the cryptographic processing basic unit is, for example, the cryptographic processing basic unit described with reference to FIGS.
  • the round number changing unit 502 applies the cryptographic processing basic unit, and selects an F function that satisfies the F function arrangement condition based on the number of rounds of the cryptographic processing unit set in the cryptographic processing device.
  • the encryption processing apparatus 510 is manufactured by executing the process to be added.
  • the number-of-rounds changing unit 502 sequentially executes the above-mentioned one by one before the first round and after the last round constituting the cryptographic processing basic unit. Select and add F functions that satisfy F function array conditions.
  • a plurality of cryptographic processing basic units are connected and the F function addition processing is executed.
  • the F function arrangement condition described above means that the F function of each round included in the encryption processing unit that executes the Feistel type common key block encryption process has three different linear transformation matrices M 1, M 2, M 3
  • the F function of each round included in the cryptographic processing unit that executes the Feistel type symmetric key block cipher processing is two types of F functions F and F to which two different linear transformation matrices M and M are applied.
  • the F function arrangement condition in the case of a configuration including 0 1 0 1 is that when odd rounds are selected sequentially from the first round, two types of F functions F and F are included in two consecutive parts, and the even round is the final.
  • the program can be recorded in advance in a hard disk or ROM (Read Only Memory) as a recording medium.
  • the program can be temporarily or permanently stored on a removable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory. Can be stored (recorded).
  • a removable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory.
  • Such removable recording media can be provided as V, so-called packaged software.
  • the program can be transferred wirelessly from the download site to the computer or via a network such as a LAN (Local Area Network) or the Internet.
  • the computer receives the program transferred in this way and installs it in a wired manner. It can be installed on a recording medium such as a hard disk.
  • the Feistel-type common key block cipher processing configuration in which the SP-type F function having the nonlinear conversion unit and the linear conversion unit is repeatedly executed for a plurality of rounds, it is set in advance.
  • the processing is performed by adding the selected F function under the condition setting that satisfies the F function array condition, or by connecting multiple cryptographic processing basic units. Feistel cryptography with an increased number of rounds and an array that satisfies the voluminous nature and ODM-MR or SDM-MR can be constructed.

Abstract

インボリューション性、安全性を維持し、ラウンド数の変更を容易に行なうことができるFeistel型共通鍵ブロック暗号処理構成を実現する。非線形変換部および線形変換部を有するSP型F関数を持つFeistel型暗号処理構成において、インボリーション性および、予め設定されたF関数配列条件であるODM-MRまたはSDM-MRを満足する行列配列を持つnラウンドの基本ユニットを構成し、このユニットに対してF関数の配列条件を満足するF関数を選択して追加、あるいは基本ユニットを複数接続することでインボリーション性および、ODM-MR、またはSDM-MRを満足する配列を持つラウンド数を増加させたFeistel暗号構成を構築する。

Description

明 細 書
暗号処理装置、暗号処理装置製造装置、および方法、並びにコンビユー タ ·プログラム 技術分野
[0001] 本発明は、暗号処理装置、暗号処理装置製造装置、および方法、並びにコンビュ ータ 'プログラムに関する。さらに詳細には、 Feistel型共通鍵ブロック暗号処理を実 行する暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ- プログラムに関する。 背景技術
[0002] 昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保 が重要な問題となっている。セキュリティ確保の 1つの方法が暗号技術であり、現在、 様々な暗号ィ匕手法を用いた通信が実際に行なわれている。
[0003] 例えば ICカード等の小型の装置中に暗号処理モジュールを埋め込み、 ICカードと 、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、 認証処理、あるいは送受信データの暗号化、復号を行なうシステムが実用化されて いる。
[0004] 暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号 鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵 と復号鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
[0005] 共通鍵暗号方式にも様々なアルゴリズムがある力 その 1つに共通鍵をベースとし て複数の鍵を生成して、生成した複数の鍵を用いてブロック単位(64ビット, 128ビッ トなど)のデータ変換処理を繰り返し実行する方式がある。このような鍵生成方式とデ ータ変換処理を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式で ある。
[0006] 共通鍵ブロック暗号方式の 1つのデザインとして、暗号化処理対象として入力される 平文データに対して、基本となる変換関数を繰り返し実行させる Feistel構造と呼ば れる構造が用いられることが多 、。 Feistel構造はラウンド関数と呼ばれる基本となる 処理単位の繰り返しで構成される。ラウンド関数の繰り返し数、すなわちラウンド数 (ま たは段数)をいくつにするかは、特に固定的なものではなぐ設計時に決定される。
[0007] ラウンド数を多く設定すれば、処理時間が長くなるが、様々な攻撃、すなわち差分 解析などの暗号解析に対する強度を高め、安全性を強固にすることが可能となる。 従って、処理時間優先とする場合と、安全性優先とする場合など、利用目的に応じた ラウンド数の設定を行うことが好まし 、。
発明の開示
発明が解決しょうとする課題
[0008] 本発明は、共通鍵ブロック暗号方式の 1つのデザインである Feistel構造を持つ Fei stel型共通鍵ブロック暗号処理を実行する構成にぉ ヽて、ラウンド数の変更を容易に 行なうことを可能とし、また、差分攻撃などの攻撃に対する耐性の高い構成を維持し たまま、様々なラウンド数の設定での暗号処理を可能とする暗号処理装置、暗号処 理装置製造装置、および方法、並びにコンピュータ 'プログラムを提供することを目的 とする。
課題を解決するための手段
[0009] 本発明の第 1の側面は、
暗号処理装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 であり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を 同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関 数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ユニットを 有する暗号処理部と、
前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づ いて、前記暗号処理基本ユニットを 1回または複数回繰り返し利用する暗号処理演 算の実行制御を行う制御部と、
を有することを特徴とする暗号処理装置にある。
[0010] さらに、本発明の暗号処理装置の一実施態様において、前記 F関数配列条件は、 前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンド の F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F関数 F , F
0 1 2 0 1
, Fを含む構成である場合において、奇数ラウンドを先頭力も順次選択した場合、 3
2
連続部分に 3種類の F関数 F , F , Fを含み、偶数ラウンドを最終ラウンドから選択し
0 1 2
た場合、 3連続部分に 3種類の F関数 F , F , Fを含むという配列条件であることを特
0 1 2
徴とする。
[0011] さらに、本発明の暗号処理装置の一実施態様において、前記 F関数配列条件は、 前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンド の F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , Fを含
0 1 0 1 む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した場合、 2連 続部分に 2種類の F関数 F , Fを含み、偶数ラウンドを最終ラウンドから選択した場
0 1
合、 2連続部分に 2種類の F関数 F , Fを含むという配列条件であることを特徴とする
0 1
[0012] さらに、本発明の第 2の側面は、
暗号処理装置製造装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 であり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を 同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関 数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ユニットを 生成する暗号処理基本ユニット生成部と、
前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウ ンド数に基づ!ヽて、前記 F関数配列条件を満足する F関数を選択し追加する処理を 実行するラウンド数変更部と、
を有することを特徴とする暗号処理装置製造装置にある。
[0013] さらに、本発明の暗号処理装置製造装置の一実施態様において、前記 F関数配列 条件は、前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる 各ラウンドの F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F 関数 F , F , Fを含む構成である場合において、奇数ラウンドを先頭力も順次選択し
0 1 2
た場合、 3連続部分に 3種類の F関数 F , F , Fを含み、偶数ラウンドを最終ラウンド
0 1 2
から選択した場合、 3連続部分に 3種類の F関数 F , F , Fを含むという配列条件で
0 1 2
あることを特徴とする。
[0014] さらに、本発明の暗号処理装置製造装置の一実施態様において、前記 F関数配列 条件は、前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる 各ラウンドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F
0 1
, Fを含む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した
0 1
場合、 2連続部分に 2種類の F関数 F , Fを含み、偶数ラウンドを最終ラウンドから選
0 1
択した場合、 2連続部分に 2種類の F関数 F , Fを含むという配列条件であることを
0 1
特徴とする。
[0015] さらに、本発明の暗号処理装置製造装置の一実施態様において、前記ラウンド数 変更部は、前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウ ンドの後に、順次 1つずつ、前記 F関数配列条件を満足する F関数を選択し追加する 処理を実行する構成であることを特徴とする。
[0016] さらに、本発明の暗号処理装置製造装置の一実施態様において、前記ラウンド数 変更部は、前記暗号処理基本ユニットを複数ユニット接続して、 F関数追加処理を実 行する構成であることを特徴とする。
[0017] さらに、本発明の第 3の側面は、
暗号処理方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理ス テツプであり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関 数を同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ュニッ トを利用した暗号処理を実行する暗号処理ステップと、
前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づ いて、前記暗号処理基本ユニットを 1回または複数回繰り返し利用する暗号処理演 算の実行制御を行う制御ステップと、
を有することを特徴とする暗号処理方法にある。
[0018] さらに、本発明の暗号処理方法の一実施態様において、前記 F関数配列条件は、 前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンド の F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F関数 F , F
0 1 2 0 1
, Fを含む構成である場合において、奇数ラウンドを先頭力も順次選択した場合、 3
2
連続部分に 3種類の F関数 F , F , Fを含み、偶数ラウンドを最終ラウンドから選択し
0 1 2
た場合、 3連続部分に 3種類の F関数 F , F , Fを含むという配列条件であることを特
0 1 2
徴とする。
[0019] さらに、本発明の暗号処理方法の一実施態様において、前記 F関数配列条件は、 前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウンド の F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , Fを含
0 1 0 1 む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した場合、 2連 続部分に 2種類の F関数 F , Fを含み、偶数ラウンドを最終ラウンドから選択した場
0 1
合、 2連続部分に 2種類の F関数 F , Fを含むという配列条件であることを特徴とする
0 1
[0020] さらに、本発明の第 4の側面は、
暗号処理装置製造方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 であり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を 同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関 数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ユニットを 生成する暗号処理基本ユニット生成ステップと、
前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウ ンド数に基づ!ヽて、前記 F関数配列条件を満足する F関数を選択し追加する処理を 実行するラウンド数変更ステップと、
を有することを特徴とする暗号処理装置製造方法にある。 [0021] さらに、本発明の暗号処理装置製造方法の一実施態様において、前記 F関数配列 条件は、前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる 各ラウンドの F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F
0 1 2
関数 F , F , Fを含む構成である場合において、奇数ラウンドを先頭力も順次選択し
0 1 2
た場合、 3連続部分に 3種類の F関数 F , F , Fを含み、偶数ラウンドを最終ラウンド
0 1 2
から選択した場合、 3連続部分に 3種類の F関数 F , F , Fを含むという配列条件で
0 1 2
あることを特徴とする。
[0022] さらに、本発明の暗号処理装置製造方法の一実施態様において、前記 F関数配列 条件は、前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる 各ラウンドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F
0 1
, Fを含む構成である場合において、奇数ラウンドを先頭ラウンドから順次選択した
0 1
場合、 2連続部分に 2種類の F関数 F , Fを含み、偶数ラウンドを最終ラウンドから選
0 1
択した場合、 2連続部分に 2種類の F関数 F , Fを含むという配列条件であることを
0 1
特徴とする。
[0023] さらに、本発明の暗号処理装置製造方法の一実施態様において、前記ラウンド数 変更ステップは、前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最 終ラウンドの後に、順次 1つずつ、前記 F関数配列条件を満足する F関数を選択し追 加する処理を実行するステップであることを特徴とする。
[0024] さらに、本発明の暗号処理装置製造方法の一実施態様において、前記ラウンド数 変更ステップは、前記暗号処理基本ユニットを複数ユニット接続して、 F関数追加処 理を実行するステップであることを特徴とする。
[0025] さらに、本発明の第 5の側面は、
暗号処理装置において暗号処理を実行させるコンピュータ 'プログラムであり、 暗号処理部にお!ゝて、非線形変換処理および線形変換処理を含むデータ変換処 理を実行する SP型 F関数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理 を実行する暗号処理ステップであり、使用するラウンド鍵の使用順序を逆にするだけ で暗号ィ匕関数と復号関数を同じ回路で行うことを可能としたインポリューション性を備 え、かつ、複数の異なる F関数を予め設定された F関数配列条件を満足する配列とし た暗号処理基本ユニットを利用した暗号処理を実行する暗号処理ステップと、 制御部にぉ 、て、前記暗号処理部に構成された暗号処理基本ユニットの利用回数 設定情報に基づいて、前記暗号処理基本ユニットを 1回または複数回繰り返し利用 する暗号処理演算の実行制御を行う制御ステップと、
を実行させることを特徴とするコンピュータ 'プログラムにある。
[0026] なお、本発明のコンピュータ 'プログラムは、例えば、様々なプログラム 'コードを実 行可能なコンピュータ ·システムに対して、コンピュータ可読な形式で提供する記憶 媒体、通信媒体、例えば、 CDや FD、 MOなどの記録媒体、あるいは、ネットワークな どの通信媒体によって提供可能なコンピュータ 'プログラムである。このようなプロダラ ムをコンピュータ可読な形式で提供することにより、コンピュータ 'システム上でプログ ラムに応じた処理が実現される。
[0027] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図 面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書において システムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内に あるものには限らない。
発明の効果
[0028] 本発明の構成によれば、非線形変換部および線形変換部を有する SP型の F関数 を複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理構成において、 予め設定されたインボリーシヨン性および、予め設定された F関数の配列条件として の ODM— MR、または、 SDM— MRを満足させる行列配列を持つ nラウンド構成の Feistel暗号構成を暗号処理基本ユニットとして構成し、この暗号処理基本ユニットに 対して、 F関数の配列条件を満足するという条件設定の下に選択した F関数を追カロ する処理や、あるいは、暗号処理基本ユニットを複数接続する処理によって、インボリ ーシヨン性および、 ODM— MR、または、 SDM— MRを満足する配列を持つラウン ド数を増カロさせた Feistel暗号構成を構築することができる。
図面の簡単な説明
[0029] [図 l]Feistel構造を持つ代表的な共通鍵ブロック暗号の構成を示す図である。
[図 2]ラウンド関数部として設定される F関数の構成について説明する図である。 [図 3]Feistel型暗号処理におけるインポリューション性を説明する図である。
[図 4] 2つの異なる線形変換行列を利用した Feistel型暗号アルゴリズムについて説 明する図である。
[図 5] 3つの異なる線形変換行列を利用した Feistel型暗号アルゴリズムについて説 明する図である。
[図 6]3種類の F関数部を持つ 6ラウンド構成の Feistel型暗号アルゴリズムについて 説明する図である。
[図 7]3種類の F関数部を持つ 8ラウンド構成の Feistel型暗号アルゴリズムについて 説明する図である。
[図 8]3種類の F関数部を持つ Feistel型暗号処理基本ユニットに対するラウンド数追 加処理について説明する図である。
[図 9]3種類の F関数部を持つ Feistel型暗号処理基本ユニットに対するラウンド数追 加処理について説明する図である。
[図 10]3種類の F関数部を持つ Feistel型暗号処理基本ユニットを複数利用するラウ ンド数追加処理について説明する図である。
[図 11]2種類の F関数部を持つ Feistel型暗号処理基本ユニットを複数利用するラウ ンド数追加処理について説明する図である。
[図 12]3種類の F関数部を持つ Feistel型暗号処理基本ユニットを利用した暗号処理 装置の制御処理について説明する図である。
[図 13]2種類の F関数部を持つ Feistel型暗号処理基本ユニットを利用した暗号処理 装置の制御処理について説明する図である。
[図 14]本発明に係る暗号処理を実行する暗号処理装置としての ICモジュールの構 成例を示す図である。
圆 15]本発明に係る暗号処理装置製造装置の構成例を示す図である。
発明を実施するための最良の形態
以下、本発明の暗号処理装置、暗号処理装置製造装置、および方法、並びにコン ピュータ 'プログラムの詳細について説明する。説明は、以下の項目に従って行なう。
1. SP型 F関数を持つ Feistel構造 2.最適拡散変換および準最適拡散変換について
3.インポリューション性について
4.複数の異なる変換行列を利用する SP型 F関数を持つ Feistel型暗号構成
5.複数の異なる変換行列を利用する SP型 F関数を持つ Feistel型暗号にぉ 、て、 ラウンド数の変更を容易にした構成
6.暗号処理装置の構成例
7.暗号処理装置製造装置の構成例
[0031] [1. SP型 F関数を持つ Feistel構造]
まず、 SP型 F関数を持つ Feistel構造について説明する。共通鍵ブロック暗号のデ ザインとして、平文データの変換方法に基本となる変換関数をある特別な順序で配 置する Feistel構造と呼ばれる構造が用いられることが多 、。 Feistel構造はラウンド 関数と呼ばれる変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を 持つ。
[0032] 図 1を参照して、 Feistel構造について説明する。暗号ィ匕対象として入力される平文 の長さを 2mnビットとする。ただし、 m, nは共に整数である。初めに、 2mnビットの平 文を、 mnビットの 2つの入力データ P (Plain-Left) 101, P (Plain- Right) 102に分割
L R
し、これを入力値とする。
[0033] Feistel構造はラウンド関数とよばれる基本構造の繰り返しで表現され、各ラウンド に含まれるデータ変換関数は F関数 120と呼ばれる。図 1の構成では、 F関数 (ラウン ド関数) 120が r段繰り返された構成例を示して 、る。
[0034] 例えば第 1番目のラウンドでは、 mnビットの入力データ Xと、鍵生成部(図示せず) 力も入力される mnビットのラウンド鍵 K 103が F関数 120に入力され、 F関数 120に おけるデータ変換処理の後に mnビットのデータ Yを出力する。出力はもう片方の前 段からの入力データ (第 1段の場合は入力データ P )と排他的論理和部 104におい
て、排他的論理和演算がなされ、 mnビットの演算結果が次のラウンド関数へと出力さ れる。この処理、すなわち F関数を定められたラウンド数 (r)だけ繰り返し適用して暗 号化処理が完了し、暗号文の分割データ C (Cipher- Left)、 C (Cipher- Right)が出
L R
力される。以上の構成より、 Feistel構造の復号処理はラウンド鍵を挿入する順序を 逆にするだけでよぐ逆関数を構成する必要がないことが導かれる。
[0035] 各ラウンドの関数として設定される F関数 120の構成について、図 2を参照して説明 する。図 2 (a)は、 1つのラウンドにおける F関数 120に対する入力および出力を示す 図であり、図 2 (b)は、 F関数 120の構成の詳細を示す図である。 F関数 120は、図 2 ( b)に示すように、非線形変換層(S層)と線形変換層(P層)を接続した!/、わゆる SP型 の構成を有する。
[0036] 図 2に示す F関数 120は、入出力ビット長が mX n (m, n:整数)ビットの設定を持つ 関数である。 SP型 F関数内部では初めに鍵データ Kとデータ Xとの排他的論理和が 実行され、次に非線形変換層(S層)が適用され、続いて線形変換層(P層)が適用さ れる。
[0037] 具体的には非線形変換層(S層)は、 Sボックス (S-box) 121と呼ばれる nビット入 力 nビット出力の非線形変換テーブルが m個並んだものであり、 mnビットのデータは nビットずつ分割されてそれぞれ対応する Sボックス(S— box) 121に入力されデータ が変換される。各 Sボックスでは、例えば変換テーブルを適用した非線形変換処理が 実行される。
[0038] 線形変換層(P層)は線形変換部 122によって構成され、線形変換部 122は、 Sボッ タス 121からの出力データである mnビットの出力値 Zを入力し、この入力に対して線 形変換を施し mnビットの結果を出力する。線形変換部 122は、入力ビット位置の入 れ替え処理などの線形変換処理を実行して、 mnビットの出力値 Yを出力する。この 出力値 Yが前段力 の入力データと排他的論理和され、次のラウンドの F関数の入力 値とされる。
[0039] なお、以下に説明する本実施例の構成では、線形変換層(P層)としての線形変換 部 122にお ヽて実行する線形変換は GF (2)上で定義される mnX mnの行列を適用 して行なわれる線形変換であると定義し、また、第 iラウンド目に含まれる行列を Mと 呼ぶものとする。
[0040] [2.最適拡散変換および準最適拡散変換について]
上述の SP型 F関数を持つ Feistel型暗号にぉ 、て、 F関数の線形変換層にお 、て 実行する線形変換に適用する線形変換行列は、暗号強度を低下させることがな 、よ うに、ある条件を満足する行列を適用することが好ましい。この条件について説明す る。
[0041] 線形変換の特殊な例として最適拡散変換(ODM: Optimal Diffusion Mappin gs)を以下のように定義する。
n X aビットデータ力 n X bビットデータへの線形変換を行う写像、
Θ :{0, 1广→{0, l}nb
に対して分岐数 B ( Θ )を次のように定義する。
B(0)=min {hw (a)+hw (Θ ( ))}
α≠0 η η
ただし、 min {X }は、 α≠0を満たすすべての X のうちの最小値を表すものと
a≠0 a a
し、 hw (Y)はビット列 Yを nビットごとに区切って表したときに、 nビットのデータすベ てが 0ではな ヽ (非ゼロ)要素の数を返す関数とする。
このとき、分岐数 B( 0 )が b +1であるような写像 Θを最適拡散変換 (ODM:Optim al Diffusion Mappings)と定義する。また便宜的に行列 Mの分岐数を B(M)と表 すものとする。
さらに、分岐数 Β( Θ )が b +1未満であるような写像 Θを準最適拡散変換 (SDM:S ub Optimal Diffusion Mappings)と疋'義する。
[0042] 上述の SP型 F関数を持つ Feistel型暗号にぉ 、て、 F関数の線形変換層にお 、て 実行する線形変換に適用する線形変換行列を決定する場合、上述の最適拡散変換 (ODM)、すなわち分岐数 B( 0 )が b + 1であるような写像 Θ、および準最適拡散変 換 (SDM)、すなわち、分岐数 B( 0 )が b + 1未満であるような写像 Θを実行する設 定となって!/、る力否かを検討して行列を決定することが好ま 、。具体的な行列決定 処理については、後述する。
[0043] [3.インポリューション性について]
上述の SP型 F関数を持つ Feistel型暗号を実行する暗号ィ匕関数 Eを、以下のように 定義する。
E(P
L I I P , κ , K , ···, K)
R 1 2 r
上記暗号ィ匕関数 Eに示す P , Pは暗号処理の対象として入力する平文を示し、
L R I
Iは連結、 κ , κ , · · ·, κは、各ラウンドにおいて使用するラウンド鍵を示す。 [0044] このような関数 Eで示される暗号処理において、その復号関数 Dは、以下のように示 すことができる。
D(C | | C , κ , K , ···, K)
L R 1 2 r
= E(C , κ )
L I I c , κ, ···, κ
R r 2 1
上記復号関数 Dに示す C , Cは、復号処理対象として入力する暗号文を示し、
L R I
Iは連結、 κ , · · ·κ , κは、各ラウンドにおいて使用するラウンド鍵を示す。
r 2 1
[0045] このように Feistel構造共通鍵ブロック暗号では、通常、使用するラウンド鍵の使用 順序を逆にするだけで暗号ィ匕関数と復号関数を同じ回路で行うことができるという特 徴を有する。すなわち、暗号処理と、復号処理とに個別の回路を設定することなぐ 同じ回路を適用して、その処理順を逆に設定するのみで暗号処理と復号処理との双 方を実行することができる。 Feistel構造共通鍵ブロック暗号が持つこの性質をインポ リューシヨン性と定義する。
[0046] 図を参照して、 Feistel構造共通鍵ブロック暗号が持つインポリューション性につい て説明する。図 1に示す Feistel構造を暗号化処理に適用する Feistel構造とする。こ の場合、暗号ィ匕関数 Eを実行する。すなわち、
E(P I I P , κ , K , ···, K)
L R 1 2 r
を実行する。 P , P
L Rは図 1に示すように暗号処理の対象として入力する平文を示し
、 κ , K , · · ·, Kは、図 1に示すように、各ラウンドにおいて使用するラウンド鍵を示
1 2 r
す。
[0047] 一方、図 1に示す Feistel構造による暗号ィ匕処理結果としての暗号文 C , Cを復号
L R
するための Feistel構造は、図 3に示す構成となる。図 3に示す Feistel構造は、復号 関数 D、すなわち、
D(C I I C , K , K , ···, K)
L R 1 2 r
= E(C I I c , κ, ···, κ , κ )
L R r 2 1
を実行する。 C , Cは、図 3に示すように、復号処理対象として入力する暗号文で
L R
あり、 K , · · ·Κ , Kは、図 3に示すように、各ラウンドにおいて使用するラウンド鍵を r 2 1
示す。
[0048] このように、 Feistel構造共通鍵ブロック暗号では、暗号処理と、復号処理とに個別 の回路を設定することなぐ同じ回路を適用して、その処理順を逆に設定するのみで 暗号処理と復号処理との双方を実行することができる。これをインポリューション性と 定義する。
[0049] [4.複数の異なる変換行列を利用する SP型 F関数を持つ Feistel型暗号構成]
SP型 F関数を持つ Feistel型暗号にぉ 、て、各ラウンドにお 、て適用する線形変 換行列を異なる行列として設定すると、例えば差分解析などの攻撃に対する耐性を 高めることができる。すなわち、暗号強度を高めることが可能となる。なお、各ラウンド において適用する線形変換行列を異なる行列として設定することで SP型 F関数を持 つ Feistel型暗号の暗号強度を高めた構成の詳細については、本発明と同一の出願 人に係る先の特許出願:特願 2005— 313842に説明されて 、る。
[0050] 従来型の Feistel型暗号では、すべてのラウンド (段)の F関数に同じ線形変換層を 用いて 、るため、差分の伝播時に同時に複数の差分がキャンセルしてしまうと!、う性 質が存在した。暗号解析手法の代表的な手法として、ある差分を持つ入力データ( 平文)とその出力データ(暗号文)を多数解析することにより各ラウンド関数における 適用鍵を解析する差分解析 (あるいは差分解読法)が知られており、従来の DES暗 号アルゴリズム等の共通鍵ブロック暗号にぉ 、ては、 F関数の線形変換部にぉ 、て 適用する処理 (変換行列)を、各段のラウンドにお!/、て等 U、ものに設定して 、るため 、差分解析が行いやすぐ結果として鍵の解析の容易性を招いている。
[0051] 各ラウンドの F関数に適用する線形変換行列を特定のシーケンスに従った異なる行 列とすることで、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質 を排除することが可能となり、差分解析などの攻撃に対する耐性を高めることができる
[0052] 具体的な例について、図 4、図 5を参照して説明する。図 4の例は、複数段 (ラウンド )を持つ Feistel型共通鍵ブロック暗号処理構成における各段の F関数中の線形変 換部において適用する線形変換処理のための行列として、 2つの異なる行列 M , M
0 を利用した例である。
[0053] 具体的には、図 4に示すように、
(a)奇数段に M , Mの順に配置 (b)偶数段の最終段から M , Μの順に配置
0 1
上記 (a), (b)の条件を満足するように 2つの異なる行列 M , Mを適用する構成と
0 1
する。なお、 M , Mの順番は逆でもよい。すなわち、奇数段に連続して同一の行列
0 1
が連続することなぐ偶数段を最終段力 みたときにも連続して同一の行列が連続す ることのないことが差分解析などの攻撃に対する耐性を高めることができる条件となる
[0054] 条件 (a)は、(a)奇数段に M , Mの順に配置する条件であり、図 4に示すように、ラ
0 1
ゥンド 1, 3, 5,…の順に、行列 M , Mを順に配置する。条件 (b)は、(a)偶数段の
0 1
最終段から M , Mの順に配置する条件であり、図 4に示すように、ラウンド 12, 10,
0 1
8, · · ·の順に、行列 M , Mを順に配置する。ここで、行列 M , Mの各々は、各ラウ
0 1 0 1
ンドにおける F関数において実行される 2つの異なる線形変換行列である。
[0055] 図 4に示す例は、 2つの異なる線形変換行列を利用した例であり、この構成におい ても、差分攻撃に対する耐性を高めることが可能であるが、さらに、 3つの異なる行列 M , M , Mを利用した構成も可能である。図 5は、複数段 (ラウンド)を持つ Feistel
0 1 2
型共通鍵ブロック暗号処理構成における各段の F関数中の線形変換部において適 用する線形変換処理のための行列として、 3つの異なる行列 M , M , M
0 1 2を利用した 例である。
[0056] 図 5に示すように、
(a)奇数段に M , M , Mの順に配置
0 1 2
(b)偶数段の最終段から M , M , Mの順に配置
0 1 2
上記 (a), (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用する構
0 1 2
成とする。なお、 M , M , Mの順番は異なっていてもよい。すなわち、奇数段の 3連
0 1 2
続部分に必ず、 M , M , Mの異なる 3つの行列が含まれ、偶数段を最終段からみ
0 1 2
たときにも 3連続部分に必ず、 M , M , Mの異なる 3つの行列が含まれることが差分
0 1 2
解析などの攻撃に対する耐性を高めることができる条件となる。
[0057] 条件 (a)は、(a)奇数段に M , M , Mの順に配置する条件であり、図 5に示すよう
0 1 2
に、ラウンド 1, 3, 5, ···の順に、行列 M , M , Mを順に配置する。条件 (b)は、 (a
0 1 2
)偶数段の最終段から M , M , Mの順に配置する条件であり、図 5に示すように、ラ ゥンド 12, 10, 8, · · ·の順に、行列 M , M , Mを順に配置する。ここで、行列 M ,
0 1 2 0
M , Mの各々は、各ラウンドにおける F関数において実行される線形変換行列であ
1 2
る。
[0058] 図 4、図 5を参照して説明したように、異なる行列を特定の順に配置して F関数を実 行させる構成とすることで、差分解析などの攻撃に対する耐性を高めたより高い安全 性を有する Feistel型暗号が実現される。なお、この構成および処理の詳細について は、本発明と同一の出願人に係る先の特許出願:特願 2005— 313842に説明され ている。
[0059] さらに、図 4、図 5を参照して説明したような複数の異なる線形変換行列を設定する Feistel型暗号にぉ 、て適用する線形変換行列は、一定の暗号強度を保持するため に、特定の性質を持つ行列を利用することが好ましい。この線形変換行列の評価、 設定の際に、最適拡散変換、準最適拡散変換という評価基準を用いることができる。
[0060] 最適拡散変換、準最適拡散変換の定義について説明する。図 5を参照して説明し た 3つの異なる行列を M , M , Mとした場合に {M I I M I I M }, ΓΜ _1 I
0 1 2 0 1 2 0 に
Μ {*Μ _1 I に M {*M _1 I に M _1}という 4つの行列全てが最適拡散
1 0 2 1 2
変換(Optimal Diffusion Mappings)であるとき, M , M , Mは ODM— MR(
0 1 2
Optimal Diffusion Mappings across Multiple Rounds)構造を持つ? T列 であると定義する。ただし, I Iは連結, tMは Mの転置行列, M_1は Mの逆行列を 表す。
[0061] また、図 5を参照して説明した 3つの異なる行列を M , M , Mとした場合に {M |
0 1 2 0
I M I I M }, ΓΜ _1 I に Μ ΓΜ _1 I に M ΓΜ _1 I に Μ _1}という
1 2 0 1 0 2 1 2
4つの行列 4つの行列のうちどれかひとつでも準最適拡散変換(Sub optimal Diff usion Mappings)である場合、 M , M , Mは SDM— MR(Sub optimal Diff
0 1 2
usion Mappings across Multiple Rounds)構造を持つ行歹 ljであると定義する [0062] なお、 3つの異なる行列を M , M , Mとした場合に、 ODM— MR、または、 SDM
0 1 2
MRを満足させるためには、 3つの異なる行列を M , M , Mの配列順は、先に図
0 1 2
5を参照して説明した配列順、すなわち、 (a)奇数段に M , M , Mの順に配置
0 1 2
(b)偶数段の最終段から M , M , Mの順に配置
0 1 2
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを配列するこ
0 1 2
とが条件となる。なお、先に説明したように、 M , M , Mの順番は異なっていてもよ
0 1 2
い。すなわち、奇数段の 3連続部分に必ず、 M , M , Mの異なる 3つの行列が含ま
0 1 2
れ、偶数段を最終段力 みたときにも 3連続部分に必ず、 M , M , Mの異なる 3つ
0 1 2
の行列が含まれることが ODM— MR、または、 SDM— MRを満足させる行列配列と なり、差分解析などの攻撃に対する耐性を高めることができる条件となる。
[0063] また、 2つの異なる行列を M , Mとした場合に、 ODM— MR、または、 SDM— M
0 1
Rを満足させるためには、 2つの異なる行列を M , Mの配列順は、先に図 4を参照し
0 1
て説明した配列順、すなわち、
(a)奇数段に M , Mの順に配置
0 1
(b)偶数段の最終段から M , Mの順に配置
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを配列することが
0 1
条件となる。なお、先に説明したように、 M , Mの
0 1 順番は逆でもよい。すなわち、奇 数段に連続して同一の行列が連続することなぐ偶数段を最終段力 みたときにも連 続して同一の行列が連続することのないことが ODM— MR、または、 SDM— MRを 満足させる行列配列となり、差分解析などの攻撃に対する耐性を高めることができる 条件となる。
[0064] このように、複数の異なる行列を利用する Feistel型暗号構成にぉ 、て、各ラウンド にお 、て適用する線形変換行列の設定を ODM— MR構造、ある!/、は SDM— MR 構造とすることで、安全性の高 、暗号処理を実現することができる。
[0065] [5.複数の異なる変換行列を利用する SP型 F関数を持つ Feistel型暗号におい て、ラウンド数の変更を容易にした構成]
次に、複数の異なる変換行列を利用する SP型 F関数を持つ Feistel型暗号にぉ ヽ て、ラウンド数の変更を容易にした構成にっ 、て説明する。
[0066] 共通鍵ブロック暗号において、その処理ラウンド数 (段数)は速度、安全性との間に トレードオフがあるため、柔軟に増減できることが望ましい。一般的にラウンド数 (段数 )が増加すれば安全性は高くなるが速度は落ち、段数が減少すれば安全性は低くな るが速度が上がるという関係がある。従って、処理速度優先とする場合、あるいは安 全性優先とする場合など、その用途に応じて柔軟に処理ラウンド数を変更可能とする 構成とすることが望まれる。
[0067] また、 Feistel型暗号を適用した暗号処理に適用する秘密鍵のサイズに応じて、処 理ラウンド数を変更するという要請もある。例えば、暗号処理に適用する秘密鍵のサ ィズを変更する場合において、十分な安全性を確保するためには、秘密鍵のサイズ に合わせて処理ラウンド数を適切に変更することが好ましい。例えば、 AES暗号アル ゴリズムを実行する場合、適用する秘密鍵のサイズが 128ビットのときは 10段、 192ビ ットのときは 12段、 256ビットのときは 14段と秘密鍵のサイズと共に処理ラウンド数を 変化させ、秘密鍵のサイズ分の鍵構成ビットデータを有効に利用することのできるラ ゥンド数を設定することが要請される。
[0068] 上述した ODM— MR構造や SDM— MR構造を持つ行列を線形変換に適用した SP型 F関数を持つ Feistel構造共通鍵ブロック暗号を構築する場合にも、前述のィ ンポリューション性を維持することが望まし 、が、異なる線形変換行列を含む異なる F 関数を配置する際には、先に、図 4、図 5を参照して説明した制約の下に配置しなけ ればならない。
[0069] なお、以下の説明にお 、ては、線形変換行列 Mを用いた F関数を F、線形変換行
0 0
列 Mを用いた F関数を F、線形変換行列 Mを用いた F関数を Fと記載することにす
1 1 2 2
る。
[0070] 3つの異なる行列 M , M , Mを利用した F関数 F , F , Fを利用した場合は、先
0 1 2 0 1 2
に図 5を参照して説明したように、
(a)奇数ラウンドを上力 選択した場合、 F , F , F , F , F , · · ·の順に配置
0 1 2 0 1
(b)偶数ラウンドを下力 選択した場合、 F , F , F , F , F , · · ·の順に配置
0 1 2 0 1
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用した F
0 1 2
関数 F , F , Fを配置する構成とすることが必要となる。なお、先に説明したように、
0 1 2
F , F , Fの順番は異なっていてもよい。すなわち、奇数段の 3連続部分に必ず異な
0 1 2
る 3つの行列 M , M , Mを利用した F関数、 F , F , Fが含まれ、偶数段を最終段 力 みたときにも 3連続部分に必ず、 M , M , Mの異なる 3つの行列を適用した異
0 1 2
なる 3つの F関数、 F , F , Fが含まれることが ODM— MR、または、 SDM— MRを
0 1 2
満足させる行列配列となり、差分解析などの攻撃に対する耐性を高めることができる 条件となる。
[0071] 同様に、 2つの異なる行列 M , Mを利用した F関数 F , Fを利用した場合は、先
0 1 0 1
に図 4を参照して説明したように、
(a)奇数ラウンドを上力 選択した場合、 F , F , F , F , F , · · ·の順に配置
0 1 0 1 0
(b)偶数ラウンドを下力 選択した場合、 F , F , F , F , F , · · ·の順に配置
0 1 0 1 0
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用した F関数 F
0 1
, Fを配置する構成とすることが必要となる。なお、先に説明したように、 F , Fの順
0 1 0 1 番は逆でもよい。すなわち、奇数段に連続して同一の行列が連続することがないよう に、異なる 2つの F関数、 F , Fが連続して含まれ、偶数段を最終段からみたときにも
0 1
連続して同一の行列が連続することがないように、異なる 2つの F関数、 F , F
0 1が連 続して含まれることが ODM— MR、または、 SDM— MRを満足させる行列配列となり 、差分解析などの攻撃に対する耐性を高めることができる条件となる。
[0072] さらに、異なる複数の行列を利用した F関数を適用した Feistel型暗号において、ィ ンポリューション性、すなわち、先に説明したように、使用するラウンド鍵の使用順序 を逆にするだけで暗号ィ匕関数と復号関数を同じ回路で行うことができるというインボリ ユーシヨン性を維持するためには、 Feistel型暗号の各ラウンドの F関数の上からの配 置順と、下力 の配置順が同一であることが必要となる。
[0073] このように、 Feistel型暗号においては、
インポリューション性の維持と 、う条件と、
さらに、複数の異なる線形変換行列を利用した異なる F関数を適用する Feistel型 暗号構成とする場合には、その配列についても、上述したような ODM— MR、または 、 SDM— MRを満足させる行列配列とするという条件が、差分解析などの暗号攻撃 に対する耐性を維持するためには必要となる。
[0074] 複数の異なる線形変換行列を利用した異なる F関数を適用する Feistel型暗号構 成では、このような条件を満足させることが必要であり、暗号処理構成を設計する場 合は、予めラウンド数を決定し、決定した固定ラウンド数に応じて複数の異なる線形 変換行列を持つ異なる F関数の配置を決定すると 、うことが行なわれる。この結果、 固定したラウンド数においては、インポリューション性、および、 ODM— MR、または 、 SDM— MRを満足させる行列配列という 2つの条件を満足させる設計を行なうこと ができる力 これらのラウンド数の変更に容易に対応しにくいという問題があった。
[0075] 例えば、 6ラウンド(6段)構成として、 3つの異なる行列を使用した ODM— MR構造 Feistel暗号を想定した場合、配置する F関数の順序は、図 6に示すような設定とする ことが必要である。すなわち、図 6に示すように、
上から、
[F→F→F→F→F→F ]
0 2 1 1 2 0
の設定とすることになる。
[0076] また、 8段構成の ODM— MR構造 Feistel暗号の場合、配置する F関数の順序は、 図 7に示すような設定とすることが必要である。すなわち、図 7に示すように、上から [F→F→F→F→F→F→F→F ]
0 0 1 2 2 1 0 0
の設定とすることになる。
[0077] このように、各ラウンド数に対応して個別にインポリューション性と ODM— MR、また は、 SDM— MRを満足させる行列配列と 、う 2つの条件を満足させる設計を行なうこ とができる力 6段構成を 8段構成に変更するといつたことは容易ではない。すなわち 、図 6、図 7に示すように、 6段構成、 8段構成の ODM— MR構造 Feistel暗号は、 F 関数の順序が大きく異なるため、再利用できる箇所が非常に少ない。例えば、図 6に 示すような、 6段構成の ODM— MR構造 Feistel暗号をすでに実装しているハードウ エアが製造済みであったとする。ここで、図 7に示すような 8段構成の ODM— MR構 造 Feistel暗号を使用したいといった要請があった場合、図 6に示す 6段構成の OD M— MR構造 Feistel暗号のハードウェアはほとんど利用することはできず、新たに、 図 7に示す 8段構成の ODM— MR構造 Feistel暗号のハードウェアを作成することが 必要となるという問題がある。あるいは、処理プログラムとしてのソフトウェアの変更を 行なうと!、つた処理が必要となる。
[0078] 以下、このような処理負担を軽減させる構成例について説明する。すなわち、 OD M— MR構造または、 SDM— MR構造を持つ Feistel暗号処理構成において、処理 ラウンド数の増加や減少などのラウンド数の変更を効率的に実行可能とした構成に ついて説明する。
[0079] (処理例 1) Feistel暗号処理基本ユニットに F関数を追加する処理例
まず、予め設定された Feistel暗号処理基本ユニット、すなわち、インポリューション 性と ODM— MR、または、 SDM— MRを満足させる行列配列という 2つの条件を満 足させた構成を持つ Feistel暗号処理基本ユニットに対して、 F関数を追加することで 、ラウンド数を増加させる処理構成について説明する。
[0080] 一例として、インポリューション性と ODM— MR、または、 SDM— MRを満足させる 行列配列と ヽぅ 2つの条件を満足させた構成を持つ 6段構成の ODM - MR構造 Fei stel暗号を基本とする暗号処理基本ユニットとする。ここでは、 3つの異なる線形変換 行列を持つ異なる F関数 F , F , F力も構成される Feistel暗号処理基本ユニットと
0 1 2
する。この基本暗号処理基本ユニットは、先に図 6を参照して説明したように、 F関数 の配置は、上から、
[F→F→F→F→F→F ]
0 2 1 1 2 0
となり、インポリューション性と ODM— MR、または、 SDM— MRを満足させる行列 配列という 2つの条件を満足させた構成を持つ。
[0081] この 6段構成の ODM— MR構造 Feistel暗号を 8ラウンド(段)構成に変更する処理 について説明する。 6段を 8段に変更する場合、図 8に示すように、 [F→F→F→F
0 2 1
→F→F ]という配列を持つ 6段構成の暗号処理基本ユニット 201の上下にそれぞ
1 2 0
れ [F ]という F関数を追加する。
0
[0082] この F関数 [F ]の追加によって、図 8に示すように、 Feistel暗号構成は、 8ラウンド(
0
段)構成に変更され、 F関数の配置順は、上から、
[F→F→F→F→F→F→F→F ]
0 0 2 1 1 2 0 0
という設定となる。
この 8段構成の場合、 F関数の配置順は、奇数段を上から選択した場合、 [F→F→F→F ]
0 2 1 0
となり、偶数段を下力 たどって選択した場合、 [F→F→F→F ]
0 2 1 0
となっている。
[0083] この 8段構成の Feistel暗号構成は、各ラウンドの F関数の上力もの配置順と、下か らの配置順が同一であり、従って、インポリューション性が満足される。さらに、奇数段 の 3連続部分に必ず異なる 3つの行列 M , M , Mを利用した F関数、 F , F , Fが
0 1 2 0 1 2 含まれ、偶数段を最終段からみたときにも 3連続部分に必ず、 M , M , Mの異なる
0 1 2
3つの行列を適用した異なる 3つの F関数、 F, F, Fが含まれるので、 ODM— MR
0 1 2
、または、 SDM— MRを満足させる行列配列となる。
[0084] この場合の F関数の選択条件は、
奇数段の 3連続部分に必ず異なる 3つの行列 M , M , Mを利用した F関数、 F ,
0 1 2 0
F , Fが含まれ、かつ、偶数段を最終段力 みたときにも 3連続部分に必ず、 M , M
1 2 0
, Mの異なる 3つの行列を適用した異なる 3つの F関数、 F , F , Fが含まれる設定
1 2 0 1 2
となる F関数を選択することである。
[0085] この選択条件に基づいて追加する F関数を選択すると、図 8に示す 6段から 8段へ のラウンド数追加処理においては、追加する F関数は、 F関数 [F ]となり、 6段構成の
0
ODM— MR構造 Feistel暗号を、インボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足させる行列配列を持つ 8ラウンド (段)構成の Feistel暗号に変更 することができる。
[0086] さらに、この図 8に示すインボリーシヨン性および、 ODM— MR、または、 SDM— M Rを満足させる行列配列を持つ 8ラウンド (段)構成の Feistel暗号構成を 10段に変 更する場合の処理例について、図 9を参照して説明する。 8段を 10段に変更する場 合、図 9に示すように、 [F→F→F→F→F→F→F→F ]という配列を持つ 8段
0 0 2 1 1 2 0 0
構成の暗号処理基本ユニット 202の上下にそれぞれ [F ]という F関数を追加する。
2
[0087] この F関数 [F ]の追加によって、図 9に示すように、 Feistel暗号構成は、 10ラウン
2
ド (段)構成に変更され、 F関数の配置順は、上から、
[F→F→F→F→F→F→F→F→F→F ]
2 0 0 2 1 1 2 0 0 2
という設定となる。
この 10段構成の場合、 F関数の配置順は、奇数段を上から選択した場合、 [F→F→F→F→F ]
2 0 1 2 0
となり、偶数段を下力 たどって選択した場合、
[F→F→F→F→F ]
2 0 1 2 0
となっている。
[0088] この 10段構成の Feistel暗号構成は、各ラウンドの F関数の上力もの配置順と、下 からの配置順が同一であり、従って、インポリューション性が満足される。さらに、奇数 段の 3連続部分に必ず異なる 3つの行列 M , M , Mを利用した F関数、 F , F , F
0 1 2 0 1 2 が含まれ、偶数段を最終段からみたときにも 3連続部分に必ず、 M , M , Mの異な
0 1 2 る 3つの行列を適用した異なる 3つの F関数、 F, F, Fが含まれるので、 ODM— M
0 1 2
R、または、 SDM— MRを満足させる行列配列となる。
[0089] この場合の F関数の選択条件も、 6段から 8段への変更と同様であり、奇数段の 3連 続部分に必ず異なる 3つの行列 M , M , Mを利用した F関数、 F , F , Fが含まれ
0 1 2 0 1 2
、かつ、偶数段を最終段からみたときにも 3連続部分に必ず、 M , M , Mの異なる 3
0 1 2 つの行列を適用した異なる 3つの F関数、 F , F , Fが含まれる設定となる F関数を
0 1 2
選択することである。
[0090] この選択条件に基づいて追加する F関数を選択すると、図 9に示す 8段から 10段へ のラウンド数追加処理においては、追加する F関数は、 F関数 [F ]となり、 8段構成の
2
ODM— MR構造 Feistel暗号を、インボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足させる行列配列を持つ 10ラウンド(段)構成の Feistel暗号に変 更することができる。
[0091] このように、予め設定されたインボリーシヨン性および、 ODM— MR、または、 SDM — MRを満足させる行列配列を持つ nラウンド (段)構成の Feistel暗号構成を、 n+2 ラウンド (段)構成の Feistel暗号構成とする場合、奇数段の 3連続部分に必ず異なる 3つの行列 M , M , Mを利用した F関数、 F , F , Fが含まれ、かつ、偶数段を最
0 1 2 0 1 2
終段からみたときにも 3連続部分に必ず、 M , M , Mの異なる 3つの行列を適用し
0 1 2
た異なる 3つの F関数、 F , F , Fが含まれる設定となる F関数を選択して、上下に追
0 1 2
加することで、インボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足 させる行列配列を持つ n+ 2ラウンド (段)構成の Feistel暗号構成を構築することがで きる。
[0092] このような条件を満足するように F関数の追加処理、すなわち、予め設定されたイン ボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足させる行列配列を 持つ nラウンド (段)構成の Feistel暗号構成ユニットに対して、最上段と最下段のそ れぞれに適切な F関数を付加する処理を行なうことで、付加した関数以外の部分は 変更する以前の関数をそのまま再利用することが可能であり, 2段ごとに効率よく段 数の増減が行える.
[0093] 以上のような処理によって、 ODM— MRまたは SDM— MR構造 Feistel暗号のィ ンポリューション性を維持したまま、効率よくその処理ラウンド数を 2段ごとに増減する ことが可能になる。また、上下に追加設定した F関数は、順次、上下から 1つずつ取り 除いても、インボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足させ る行列配列を持つ nラウンド (段)構成の Feistel暗号構成ユニットが残り、ラウンドの 増加のみならず、当初の暗号処理基本ユニットレベルまでのラウンド数削減にも対応 可能である。
[0094] なお、上述した処理例では、 3つの異なる線形変換行列を持つ 3つの F関数 F , F
0 1
, Fが含まれる構成例について説明したが、 2つの異なる線形変換行列を持つ 2つ
2
の F関数 F , Fが含まれる構成においても同様の処理によって、ラウンド数の増加が
0 1
実現できる。
[0095] 2つの異なる線形変換行列を持つ 2つの F関数 F , Fが含まれる Feistel暗号構成
0 1
について、ラウンド数の増加を行なう場合の条件は、以下のようになる。予め設定され たインボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足させる行列配 列を持つ nラウンド (段)構成の Feistel暗号構成を、 n+ 2ラウンド (段)構成の Feistel 暗号構成とする場合、奇数段の 2連続部分に必ず異なる 2つの行列 M , Mを利用
0 1 した F関数、 F , Fが含まれ、かつ、偶数段を最終段からみたときにも 2連続部分に
0 1
必ず、 M, Mの異なる 2つの行列を適用した異なる 2つの F関数、 F, Fが含まれる
0 1 0 1 設定となる F関数を選択して、上下に追加することで、インボリーシヨン性および、 OD M— MR、または、 SDM— MRを満足させる行列配列を持つ n+ 2ラウンド (段)構成 の Feistel暗号構成を構築することができる。 [0096] (処理例 2) Feistel暗号処理基本ユニットを複数利用する処理例
上述した処理例では、基本となる Feistel暗号処理基本ユニットの上下に、それぞ れ 1つずつの F関数を追加することで、 2ラウンド増加した Feistel暗号処理構成を構 築する例を説明した。次に、基本となる Feistel暗号処理基本ユニットを複数、組み合 わせることで、ラウンド数の変更を行なう処理例にっ 、て説明する。
[0097] 図 10を参照して、基本となる Feistel暗号処理基本ユニットを複数、組み合わせるこ とで、ラウンド数の変更を行なう処理例について説明する。図 10に示す Feistel暗号 処理基本ユニット 231, 232のそれぞれは、 F関数の配置力 上から、
[F→F→F→F→F→F ]
0 2 1 1 2 0
となり、インポリューション性と ODM— MR、または、 SDM— MRを満足させる行列 配列という 2つの条件を満足させた構成を持つ 6段構成の Feistel暗号処理基本ュ- ットである。
[0098] 図 10に示す構成は、この 2つの 6段 Feistel暗号処理基本ユニット 231, 232を用 いて、 12段構成の Feistel暗号処理構成を設定したものである。図 10に示す 12段構 成の Feistel暗号構成は、 F関数の配置力 上から、
[F→F→F→F→F→F→F→F→F→F→F→F ]
0 2 1 1 2 0 0 2 1 1 2 0
となる。
この 12段構成の場合、 F関数の配置順は、奇数段を上から選択した場合、 [F→F→F→F→F→F ]
0 1 2 0 1 2
となり、偶数段を下力 たどって選択した場合、
[F→F→F→F→F→F ]
0 1 2 0 1 2
となっている。
[0099] この 12段構成の Feistel暗号構成は、各ラウンドの F関数の上力もの配置順と、下 からの配置順が同一であり、従って、インポリューション性が満足される。さらに、奇数 段の 3連続部分に必ず異なる 3つの行列 M , M , Mを利用した F関数、 F , F , F
0 1 2 0 1 2 が含まれ、偶数段を最終段からみたときにも 3連続部分に必ず、 M , M , Mの異な
0 1 2 る 3つの行列を適用した異なる 3つの F関数、 F, F, Fが含まれるので、 ODM— M
0 1 2
R、または、 SDM— MRを満足させる行列配列となる。 [0100] 図 10には、 6段のユニットを 2つ接続して 12段構成の Feistel暗号構成を生成した 例を示したが、さらに 6段のユニットを 3つ、 4つ · ·と、多数接続することで、同様に 18 段, 24段の Feistel暗号構成、すなわち、 ODM— MR構造でかつインポリューション 性も保たれた Feistel暗号構成を構成することが可能となる。
[0101] このように、インポリューション性と ODM— MR、または、 SDM— MRを満足させる 行列配列という 2つの条件を満足させた構成を持つ n段の Feistel暗号処理基本ュ- ットを複数個(k)組み合わせることによって、 kX n段のインポリューション性と ODM— MR、または、 SDM— MRを満足させる行列配列という 2つの条件を満足させた Feis tel暗号処理構成を構築することができる。
[0102] 同様に 2つの異なる行列 M , Mを用いた ODM— MRまたは SDM— MR構造 Fei
0 1
stel暗号処理構成を暗号処理基本ユニットとして、これを複数、組み合わせることで、 ラウンド数の変更を行なう処理例にっ 、て説明する。図 11に示す Feistel暗号処理 基本ユニット 251, 252, 253のそれぞれは、 F関数の配置力 上から、
[F→F→F→F ]
0 1 1 0
となり、インポリューション性と ODM— MR、または、 SDM— MRを満足させる行列 配列という 2つの条件を満足させた構成を持つ 4段構成の Feistel暗号処理基本ュ- ットである。
[0103] 図 11に示す構成は、この 3つの 4段 Feistel暗号処理基本ユニット 251, 252, 253 を用いて、 12段構成の Feistel暗号処理構成を設定したものである。図 11に示す 12 段構成の Feistel暗号構成は、 F関数の配置力 上から、
[F→F→F→F→F→F→F→F→F→F→F→F ]
0 1 1 0 0 1 1 0 0 1 1 0
となる。
この 12段構成の場合、 F関数の配置順は、奇数段を上から選択した場合、 [F→F→F→F→F→F ]
0 1 0 1 0 1
となり、偶数段を下力 たどって選択した場合、
[F→F→F→F→F→F ]
0 1 0 1 0 1
となっている。
[0104] この 12段構成の Feistel暗号構成は、各ラウンドの F関数の上力もの配置順と、下 からの配置順が同一であり、従って、インポリューション性が満足される。さらに、奇数 段の 2連続部分に必ず異なる 2つの行列 M , Mを利用した F関数、 F , Fが含まれ
0 1 0 1
、偶数段を最終段からみたときにも 2連続部分に必ず、 M , Mの異なる 2つの行列
0 1
を適用した異なる 2つの F関数、 F が含まれるので、 ODM— MR、または、 SDM
0, F
1
MRを満足させる行列配列となる。
[0105] 図 11には、 4段のユニットを 3つ接続して 12段構成の Feistel暗号構成を生成した 例を示したが、さらに 4段のユニットを 4つ, 5つ · ·と、多数接続することで、同様に 16 段, 20段の Feistel暗号構成、すなわち、 ODM— MR構造でかつインポリューション 性も保たれた Feistel暗号構成を構成することが可能となる。
[0106] このように、インポリューション性と ODM— MR、または、 SDM— MRを満足させる 行列配列という 2つの条件を満足させた構成を持つ n段の Feistel暗号処理基本ュ- ットを複数個(k)組み合わせることによって、 kX n段のインポリューション性と ODM— MR、または、 SDM— MRを満足させる行列配列という 2つの条件を満足させた Feis tel暗号処理構成を構築することができる。
[0107] 例えば、 ICカードなどの暗号処理を実行する情報処理装置における実装処理にお いては、例えば図 10を参照して説明した 6段構成 ODM— MR構造 Feistel暗号処 理基本ユニットを 1つだけをノ、一ドウエアで実装しておき、使用する回数を選択可能 とした処理プログラムを設定して、用途に応じて使用回数を変更するような処理プロ グラムを実行させる構成とすることで、様々なデータ処理に応じて選択されたラウンド 数の暗号処理を実行させることができ、処理ラウンド数の増減を可能とした装置を低 コストで実現できる。
[0108] 具体的な例について、図 12を参照して説明する。図 12には、暗号処理を実行する 。 6段構成の Feistel暗号処理基本ユニット 270と、スィッチ 271〜274を示してある。 なお、スィッチ 271〜274は、ハードウェアとして設定する構成としてもソフトウェア上 でスィッチと同様の処理を実行する制御を行う構成としてもょ ヽ。
[0109] 図 12に示す 6段構成の Feistel暗号処理基本ユニット 270は、先に図 6、図 10を参 照して説明したと同様、 F関数の配置が、上から、
[F→F→F→F→F→F ] となり、インポリューション性と ODM— MR、または、 SDM— MRを満足させる行列 配列という 2つの条件を満足させた構成を持つ 6段構成の Feistel暗号処理基本ュ- ットである。
[0110] 図示しない制御部の制御によって、スィッチ 271〜274が制御される。初期データ の入力時には、スィッチ 271, 272は [a]側に設定され、例えば平文データ P , Pが
L R
入力され、 6段構成の Feistel暗号処理基本ユニット 270において 6ラウンドの Feiste 1暗号処理が実行される。処理結果は、スィッチ 273, 274が [c]側に設定されている 場合、出力される。
[0111] 6ラウンドの Feistel暗号処理を実行する場合は、スィッチ 273, 274が [c]側に設 定され、結果が出力される。例えば 12ラウンドの暗号処理を実行する設定の場合、 制御部の制御によって、スィッチ 273, 274は [d]側に設定され、スィッチ 271, 272 は [b]側に設定される。その結果、 6段構成の Feistel暗号処理基本ユニット 270に おいて実行された 6ラウンドの処理結果は、再度、 6段構成の Feistel暗号処理基本 ユニット 270の最上段に入力されて、さらに + 6ラウンドの F関数による暗号処理が実 行される。
[0112] 暗号処理が 12ラウンドの処理設定である場合は、その後、スィッチ 273, 274が [c] 側に設定され、出力される。さらに 18、 24· ·ラウンドの F関数処理を実行する場合は 、スィッチ 273, 274が [d]に設定されて、予定の処理ラウンドの終了後に、スィッチ 2 73, 274が [c]側に設定され、出力されることになる。このように、 1つの基本となる暗 号処理基本ユニット、すなわち、インポリューション性と ODM— MR、または、 SDM — MRを満足させる行列配列という 2つの条件を満足させた構成を持つ n段構成の F eistel暗号処理基本ユニットを ICカードなどの暗号処理装置内に構成し、このュ-ッ トを利用した処理の繰り返し回数を CPUなどの制御部の実行するプログラムによって 選択可能な構成とすることで、それぞれのデータ処理に応じた最適なラウンド数の暗 号処理演算を実行することが可能となる。
[0113] 図 13は、 2種類の行列を利用した構成例を示している。 4段構成の Feistel暗号処 理基本ユニット 280と、スィッチ 281〜2874を示してある。図 13に示す 3段構成の Fe istel暗号処理基本ユニット 280は、先に図 11を参照して説明したと同様、 F関数の 配置が、上から、
[F→F→F→F ]
0 1 1 0
となり、インポリューション性と ODM— MR、または、 SDM— MRを満足させる行列 配列という 2つの条件を満足させた構成を持つ 4段構成の Feistel暗号処理基本ュ- ットである。
[0114] 図示しない制御部の制御によって、スィッチ 281〜284が制御される。初期データ の入力時には、スィッチ 281, 282は [a]側に設定され、例えば平文データ P , Pが
L R
入力され、 4段構成の Feistel暗号処理基本ユニット 280においておラウンドの Feist el暗号処理が実行される。処理結果は、スィッチ 283, 284が [c]側に設定されてい る場合、出力される。
[0115] 4ラウンドの Feistel暗号処理を実行する場合は、スィッチ 283, 284が [c]側に設 定され、結果が出力される。例えば 8ラウンドの暗号処理を実行する設定の場合、制 御部の制御によって、スィッチ 283, 284は [d]側に設定され、スィッチ 281, 282は [ b]側に設定される。その結果、 4段構成の Feistel暗号処理基本ユニット 280におい て実行された 4ラウンドの処理結果は、再度、 4段構成の Feistel暗号処理基本ュ-ッ ト 280の最上段に入力されて、さらに +4ラウンドの F関数による暗号処理が実行され る。
[0116] 暗号処理が 8ラウンドの処理設定である場合は、その後、スィッチ 283, 284が [c] 側に設定され、出力される。さらに 12、 16 · ·ラウンドの F関数処理を実行する場合は 、スィッチ 283, 284が [d]に設定されて、予定の処理ラウンドの終了後に、スィッチ 2 83, 284が [c]側に設定され、出力されることになる。このように、 1つの基本となる暗 号処理基本ユニット、すなわち、インポリューション性と ODM— MR、または、 SDM — MRを満足させる行列配列という 2つの条件を満足させた構成を持つ n段構成の F eistel暗号処理基本ユニットを ICカードなどの暗号処理装置内に構成し、このュ-ッ トを利用した処理の繰り返し回数を CPUなどの制御部の実行するプログラムによって 選択可能な構成とすることで、それぞれのデータ処理に応じた最適なラウンド数の暗 号処理演算を実行することが可能となる。
[0117] [6.暗号処理装置の構成例] 次に、暗号処理を実行する暗号処理装置としての ICモジュール 300の構成例につ いて、図 14を参照して説明する。暗号処理は、例えば PC、 ICカード、リーダライタ、 その他、様々な情報処理装置において実行可能であり、図 14に示す ICモジュール 3 00は、暗号処理装置の一例を示すものである。
[0118] 図 14に示す CPU(Central processing Unit)301は、暗号処理の開始や、終了、デ ータの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実 行するプロセッサである。メモリ 302は、 CPU301が実行するプログラム、あるいは演 算パラメータなどの固定データを格納する ROM (Read-Only-Memory)、 CPU301 の処理にお!、て実行されるプログラム、およびプログラム処理にお!、て適宜変化する パラメータの格納エリア、ワーク領域として使用される RAM (Random Access Memory )等力もなる。また、メモリ 302は暗号処理に必要な鍵データや、暗号処理において 適用する変換テーブル (置換表)や変換行列に適用するデータ等の格納領域として 使用可能である。なおデータ格納領域は、耐タンパ構造を持つメモリとして構成され ることが好ましい。
[0119] 暗号処理部 303は、例えば上述した Feistel型共通鍵ブロック暗号処理アルゴリズ ムに従った暗号処理、復号処理を実行する。なお、ここでは、暗号処理手段を個別 モジュールとした例を示した力 このような独立した暗号処理モジュールを設けず、例 えば暗号処理プログラムを ROMに格納し、 CPU301が ROM格納プログラムを読み 出して実行するように構成してもよ ヽ。
[0120] 乱数発生器 304は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数 の発生処理を実行する。
[0121] 送受信部 305は、外部とのデータ通信を実行するデータ通信処理部であり、例え ばリーダライタ等、 ICモジュールとのデータ通信を実行し、 ICモジュール内で生成し た暗号文の出力、あるいは外部のリーダライタ等の機器力ものデータ入力などを実行 する。
[0122] この ICモジュール 300において、暗号処理部 303は、例えば、図 12や図 13に示す 暗号処理基本ユニット、すなわちインポリューション性と ODM— MR、または、 SDM — MRを満足させる行列配列という 2つの条件を満足させた構成を持つ n段構成の F eistel暗号処理基本ユニットとし、制御部としての CPU3— 1の実行するプログラムに 従って、処理ラウンド数が決定され、決定されたラウンド数の Feistel暗号処理を実行 する構成とすることがでさる。
[0123] [7.暗号処理装置製造装置の構成例]
次に、例えば上述した暗号処理装置を製造する製造装置の構成例について、図 1 5を参照して説明する。暗号処理装置を製造する製造装置は、図 15に示すように、 暗号処理基本ユニット生成部 501と、ラウンド数変更部 502を有する。
[0124] 暗号処理基本ユニット生成部 501は、先に図 1、図 2参照して説明した非線形変換 処理および線形変換処理を含むデータ変換処理を実行する SP型 F関数を複数ラウ ンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部であり、使用 するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を同じ回路で行 うことを可能としたインポリューション性を備え、かつ、複数の異なる F関数を予め設定 された F関数配列条件を満足する配列とした暗号処理基本ユニットを生成する。暗号 処理基本ユニットは、たとえば、図 12、図 13を参照して説明した暗号処理基本ュ-ッ トである。
[0125] ラウンド数変更部 502は、暗号処理基本ユニットを適用し、暗号処理装置に設定す る暗号処理部のラウンド数に基づ 、て、前記 F関数配列条件を満足する F関数を選 択し追加する処理を実行し、暗号処理装置 510を製造する。
[0126] ラウンド数変更部 502は、例えば、図 8、図 9を参照して説明したように、暗号処理 基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後に、順次 1つずつ 、前記 F関数配列条件を満足する F関数を選択し追加する処理を実行する。あるい は、図 10、図 11を参照して説明したように、暗号処理基本ユニットを複数ユニット接 続して、 F関数追加処理を実行する。
[0127] なお、上述の F関数配列条件とは、 Feistel型共通鍵ブロック暗号処理を実行する 暗号処理部に含まれる各ラウンドの F関数が 3つの異なる線形変換行列 M , M , M
0 1 2 を適用した 3種類の F関数 F , F , Fを含む構成である場合において、奇数ラウンド
0 1 2
を先頭力 順次選択した場合、 3連続部分に 3種類の F関数 F , F , Fを含み、偶数
0 1 2
ラウンドを最終ラウンドから選択した場合、 3連続部分に 3種類の F関数 F , F , Fを 含むという配列条件である。
[0128] また、 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウ ンドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , F
0 1 0 1 を含む構成である場合における F関数配列条件は、奇数ラウンドを先頭ラウンドから 順次選択した場合、 2連続部分に 2種類の F関数 F , Fを含み、偶数ラウンドを最終
0 1
ラウンドから選択した場合、 2連続部分に 2種類の F関数 F , Fを含むという配列条件
0 1
である。
[0129] 以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、 本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ること は自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的 に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の 欄を参酌すべきである。
[0130] なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、 あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理 を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに 組み込まれたコンピュータ内のメモリにインストールして実行させる力、あるいは、各 種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させること が可能である。
[0131] 例えば、プログラムは記録媒体としてのハードディスクや ROM (Read Only Memory )に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、 CD -ROM(Compact Disc Read Only Memory), MO(Magneto optical)ディスク, DVD( Digital Versatile Disc),磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納 (記録)しておくことができる。このようなリムーバブル記 録媒体は、 V、わゆるパッケージソフトウェアとして提供することができる。
[0132] なお、プログラムは、上述したようなリムーバブル記録媒体力もコンピュータにインス トールする他、ダウンロードサイトから、コンピュータに無線転送したり、 LAN(Local A rea Network),インターネットといったネットワークを介して、コンピュータに有線で転 送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵する ハードディスク等の記録媒体にインストールすることができる。
[0133] なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみ ならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個 別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的 集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
産業上の利用可能性
[0134] 上述したように、本発明の構成によれば、非線形変換部および線形変換部を有す る SP型の F関数を複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理 構成において、予め設定されたインボリーシヨン性および、予め設定された F関数の 配列条件としての ODM— MR、または、 SDM— MRを満足させる行列配列を持つ n ラウンド構成の Feistel暗号構成を暗号処理基本ユニットとして構成し、この暗号処理 基本ユニットに対して、 F関数の配列条件を満足するという条件設定の下に選択した F関数を追加する処理や、あるいは、暗号処理基本ユニットを複数接続する処理によ つて、インボリーシヨン性および、 ODM— MR、または、 SDM— MRを満足する配列 を持つラウンド数を増加させた Feistel暗号構成を構築することができる。

Claims

請求の範囲
[1] 暗号処理装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 であり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を 同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関 数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ユニットを 有する暗号処理部と、
前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づ いて、前記暗号処理基本ユニットを 1回または複数回繰り返し利用する暗号処理演 算の実行制御を行う制御部と、
を有することを特徴とする暗号処理装置。
[2] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F関数 F ,
0 1 2 0
F , Fを含む構成である場合において、
1 2
奇数ラウンドを先頭力 順次選択した場合、 3連続部分に 3種類の F関数 F , F , F
0 1
2を含み、偶数ラウンドを最終ラウンドから選択した場合、 3連続部分に 3種類の F関数
F , F , Fを含むという配列条件であることを特徴とする請求項 1に記載の暗号処理
0 1 2
装置。
[3] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , Fを
0 1 0 1 含む構成である場合にぉ 、て、
奇数ラウンドを先頭ラウンドから順次選択した場合、 2連続部分に 2種類の F関数 F
0
, Fを含み、偶数ラウンドを最終ラウンドから選択した場合、 2連続部分に 2種類の F 関数 F , Fを含むという配列条件であることを特徴とする請求項 1に記載の暗号処理
0 1
装置。
[4] 暗号処理装置製造装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 であり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を 同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関 数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ユニットを 生成する暗号処理基本ユニット生成部と、
前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウ ンド数に基づ!ヽて、前記 F関数配列条件を満足する F関数を選択し追加する処理を 実行するラウンド数変更部と、
を有することを特徴とする暗号処理装置製造装置。
[5] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F関数 F ,
0 1 2 0
F , Fを含む構成である場合において、
1 2
奇数ラウンドを先頭力 順次選択した場合、 3連続部分に 3種類の F関数 F , F , F
0 1
2を含み、偶数ラウンドを最終ラウンドから選択した場合、 3連続部分に 3種類の F関数
F , F , Fを含むという配列条件であることを特徴とする請求項 4に記載の暗号処理
0 1 2
装置製造装置。
[6] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , Fを
0 1 0 1 含む構成である場合にぉ 、て、
奇数ラウンドを先頭ラウンドから順次選択した場合、 2連続部分に 2種類の F関数 F
0
, Fを含み、偶数ラウンドを最終ラウンドから選択した場合、 2連続部分に 2種類の F 関数 F , Fを含むという配列条件であることを特徴とする請求項 4に記載の暗号処理
0 1
装置製造装置。
[7] 前記ラウンド数変更部は、 前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後 に、順次 1つずつ、前記 F関数配列条件を満足する F関数を選択し追加する処理を 実行する構成であることを特徴とする請求項 4に記載の暗号処理装置製造装置。
[8] 前記ラウンド数変更部は、
前記暗号処理基本ユニットを複数ユニット接続して、 F関数追加処理を実行する構 成であることを特徴とする請求項 4に記載の暗号処理装置製造装置。
[9] 暗号処理方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理ス テツプであり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関 数を同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ュニッ トを利用した暗号処理を実行する暗号処理ステップと、
前記暗号処理部に構成された暗号処理基本ユニットの利用回数設定情報に基づ いて、前記暗号処理基本ユニットを 1回または複数回繰り返し利用する暗号処理演 算の実行制御を行う制御ステップと、
を有することを特徴とする暗号処理方法。
[10] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F関数 F ,
0 1 2 0
F , Fを含む構成である場合において、
1 2
奇数ラウンドを先頭力 順次選択した場合、 3連続部分に 3種類の F関数 F , F , F
0 1
2を含み、偶数ラウンドを最終ラウンドから選択した場合、 3連続部分に 3種類の F関数
F , F , Fを含むという配列条件であることを特徴とする請求項 9に記載の暗号処理
0 1 2
方法。
[11] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , Fを 含む構成である場合にぉ 、て、
奇数ラウンドを先頭ラウンドから順次選択した場合、 2連続部分に 2種類の F関数 F
0
, Fを含み、偶数ラウンドを最終ラウンドから選択した場合、 2連続部分に 2種類の F 関数 F , Fを含むという配列条件であることを特徴とする請求項 9に記載の暗号処理
0 1
方法。
[12] 暗号処理装置製造方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 であり、使用するラウンド鍵の使用順序を逆にするだけで暗号ィ匕関数と復号関数を 同じ回路で行うことを可能としたインポリューション性を備え、かつ、複数の異なる F関 数を予め設定された F関数配列条件を満足する配列とした暗号処理基本ユニットを 生成する暗号処理基本ユニット生成ステップと、
前記暗号処理基本ユニットを適用し、暗号処理装置に設定する暗号処理部のラウ ンド数に基づ!ヽて、前記 F関数配列条件を満足する F関数を選択し追加する処理を 実行するラウンド数変更ステップと、
を有することを特徴とする暗号処理装置製造方法。
[13] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 3つの異なる線形変換行列 M , M , Mを適用した 3種類の F関数 F ,
0 1 2 0
F , Fを含む構成である場合において、
1 2
奇数ラウンドを先頭力 順次選択した場合、 3連続部分に 3種類の F関数 F , F , F
0 1
2を含み、偶数ラウンドを最終ラウンドから選択した場合、 3連続部分に 3種類の F関数
F , F , Fを含むという配列条件であることを特徴とする請求項 12に記載の暗号処
0 1 2
理装置製造方法。
[14] 前記 F関数配列条件は、
前記 Feistel型共通鍵ブロック暗号処理を実行する暗号処理部に含まれる各ラウン ドの F関数が 2つの異なる線形変換行列 M , Mを適用した 2種類の F関数 F , Fを
0 1 0 1 含む構成である場合にぉ 、て、 奇数ラウンドを先頭ラウンドから順次選択した場合、 2連続部分に 2種類の F関数 F
0
, Fを含み、偶数ラウンドを最終ラウンドから選択した場合、 2連続部分に 2種類の F 関数 F , Fを含むという配列条件であることを特徴とする請求項 12に記載の暗号処
0 1
理装置製造方法。
[15] 前記ラウンド数変更ステップは、
前記暗号処理基本ユニットを構成する先頭ラウンドの前、および最終ラウンドの後 に、順次 1つずつ、前記 F関数配列条件を満足する F関数を選択し追加する処理を 実行するステップであることを特徴とする請求項 12に記載の暗号処理装置製造方法
[16] 前記ラウンド数変更ステップは、
前記暗号処理基本ユニットを複数ユニット接続して、 F関数追加処理を実行するス テツプであることを特徴とする請求項 12に記載の暗号処理装置製造方法。
[17] 暗号処理装置において暗号処理を実行させるコンピュータ 'プログラムであり、 暗号処理部にお!ゝて、非線形変換処理および線形変換処理を含むデータ変換処 理を実行する SP型 F関数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理 を実行する暗号処理ステップであり、使用するラウンド鍵の使用順序を逆にするだけ で暗号ィ匕関数と復号関数を同じ回路で行うことを可能としたインポリューション性を備 え、かつ、複数の異なる F関数を予め設定された F関数配列条件を満足する配列とし た暗号処理基本ユニットを利用した暗号処理を実行する暗号処理ステップと、 制御部にぉ 、て、前記暗号処理部に構成された暗号処理基本ユニットの利用回数 設定情報に基づいて、前記暗号処理基本ユニットを 1回または複数回繰り返し利用 する暗号処理演算の実行制御を行う制御ステップと、
を実行させることを特徴とするコンピュータ ·プログラム。
PCT/JP2007/050010 2006-01-24 2007-01-04 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム WO2007086243A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN200780003386.XA CN101375323B (zh) 2006-01-24 2007-01-04 密码处理装置、密码处理装置制造装置及方法
EP07706357A EP1978496A4 (en) 2006-01-24 2007-01-04 ENCRYPTION / DECRYPTION DEVICE, ENCRYPTION DEVICE / DECRYPTION DEVICE, METHOD AND COMPUTER PROGRAM
US12/161,898 US20090010425A1 (en) 2006-01-24 2007-01-04 Encryption/decryption device, encryption/decryption device manufacturing device, and method, and computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006014910A JP2007199156A (ja) 2006-01-24 2006-01-24 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP2006-014910 2006-01-24

Publications (1)

Publication Number Publication Date
WO2007086243A1 true WO2007086243A1 (ja) 2007-08-02

Family

ID=38309042

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/050010 WO2007086243A1 (ja) 2006-01-24 2007-01-04 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム

Country Status (5)

Country Link
US (1) US20090010425A1 (ja)
EP (1) EP1978496A4 (ja)
JP (1) JP2007199156A (ja)
CN (1) CN101375323B (ja)
WO (1) WO2007086243A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US8619976B2 (en) 2007-12-13 2013-12-31 Nec Corporation Encryption method, decryption method, device, and program
JP5272417B2 (ja) 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5504592B2 (ja) 2008-08-25 2014-05-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
JP5532560B2 (ja) 2008-08-25 2014-06-25 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにプログラム
JP5200949B2 (ja) 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
JP5652363B2 (ja) 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682526B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682527B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US20130067212A1 (en) * 2011-09-14 2013-03-14 Augustin J. Farrugia Securing implementation of cryptographic algorithms using additional rounds
US10341090B2 (en) * 2014-10-14 2019-07-02 Sony Corporation Cipher processing apparatus and cipher processing method

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129384A (ja) * 1989-07-20 1991-06-03 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
JPH04170576A (ja) * 1990-11-02 1992-06-18 Hitachi Ltd 暗号化処理装置、及び復号化処理装置
JP2005313842A (ja) 2004-04-30 2005-11-10 Ichikoh Ind Ltd 車両用照明装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
JPH09230788A (ja) * 1996-02-23 1997-09-05 Sony Corp 暗号化方法および暗号化装置
US5949884A (en) * 1996-11-07 1999-09-07 Entrust Technologies, Ltd. Design principles of the shade cipher
JPH11119648A (ja) * 1997-10-15 1999-04-30 Matsushita Electric Ind Co Ltd データ暗号化装置
US6185679B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置
FR2851862B1 (fr) * 2003-02-27 2006-12-29 Radiotelephone Sfr Procede de generation d'une permutation pseudo-aleatoire d'un mot comportant n digits
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03129384A (ja) * 1989-07-20 1991-06-03 Nippon Telegr & Teleph Corp <Ntt> 暗号装置
JPH04170576A (ja) * 1990-11-02 1992-06-18 Hitachi Ltd 暗号化処理装置、及び復号化処理装置
JP2005313842A (ja) 2004-04-30 2005-11-10 Ichikoh Ind Ltd 車両用照明装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
See also references of EP1978496A4
SHIRAI T. ET AL: "On Feistel Ciphers Using Optimal Diffusion Mappings Across Multiple Rounds", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3329, 2004, pages 1 - 15, XP003016039 *
SHIRAI T. ET AL: "On Feistel Structures Using a Diffusion Switching Mechanism", LECTURE NOTES IN COMPUTER SCIENCE, vol. 4047, March 2006 (2006-03-01), pages 41 - 56, XP003016040 *
SHIRAI T. ET AL: "The 128-bit Blockcipher CLEFIA. Fast Software Encryption 2007 Videos and Slides", pages 1 - 19, XP003016041, Retrieved from the Internet <URL:http://www.fse/2007.uni.lu/slides/clefia.pdf> *
SHIRAI T.: "Improving Immunity of Feistel Ciphers against Differential Cryptanalysis by Using Multiple MDS Mattrices", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3017, 2004, pages 260 - 278, XP019007568 *

Also Published As

Publication number Publication date
EP1978496A4 (en) 2011-06-08
US20090010425A1 (en) 2009-01-08
CN101375323A (zh) 2009-02-25
CN101375323B (zh) 2011-01-26
EP1978496A1 (en) 2008-10-08
JP2007199156A (ja) 2007-08-09

Similar Documents

Publication Publication Date Title
WO2007086243A1 (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP4882598B2 (ja) 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
EP1788542B1 (en) Encryption device, encryption method, and computer program
TWI394418B (zh) A cryptographic processing device, a cryptographic processing method, and a non-temporary computer readable recording medium
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622222B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2007083528A1 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7801307B2 (en) Method of symmetric key data encryption
KR20090094086A (ko) 암호 처리 장치, 암호 처리 방법과 컴퓨터 프로그램
WO2008026625A1 (fr) Dispositif de codage, procédé de codage et programme informatique
WO2008026624A1 (en) Data conversion device, data conversion method, and computer program
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007706357

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12161898

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200780003386.X

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE