WO2006103867A1 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
WO2006103867A1
WO2006103867A1 PCT/JP2006/304015 JP2006304015W WO2006103867A1 WO 2006103867 A1 WO2006103867 A1 WO 2006103867A1 JP 2006304015 W JP2006304015 W JP 2006304015W WO 2006103867 A1 WO2006103867 A1 WO 2006103867A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
function
linear
linear transformation
branches
Prior art date
Application number
PCT/JP2006/304015
Other languages
English (en)
French (fr)
Inventor
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 EP06715124.1A priority Critical patent/EP1862991B1/en
Priority to KR1020077021765A priority patent/KR101245010B1/ko
Priority to CN2006800167728A priority patent/CN101176134B/zh
Priority to US11/909,544 priority patent/US8340282B2/en
Publication of WO2006103867A1 publication Critical patent/WO2006103867A1/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
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • the present invention relates to a rice cake processing apparatus, a rice cake processing method, and a computer program. More specifically, the present invention relates to a cryptographic processing apparatus, a cryptographic processing method, a cryptographic processing method, and a computer program that have improved resistance to linear analysis, differential analysis known as attack processing, and differential analysis. Background art
  • an encryption processing module is embedded in a small device such as an IC card, and data is transmitted and received between the IC card and a reader / writer as a data reading / writing device, authentication processing, or transmission / reception.
  • a reader / writer as a data reading / writing device, authentication processing, or transmission / reception.
  • 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.
  • Algorithms of common key block ciphers represented by DES are mainly used for input data.
  • the function can be divided into a round function part that performs conversion and a key schedule part that generates keys to be applied in each round of the round function (F function) part.
  • the round key (sub key) applied in each round of the round function part is generated by being input to the key schedule part based on one master key (primary key) and applied in each round function part.
  • differential analysis differential cryptanalysis
  • linear analysis also called linear cryptanalysis or linear attack
  • the present invention has been made in view of the above problems, and an encryption processing device, an encryption processing method, and a computer that realize a common key block encryption algorithm having high resistance to linear analysis and differential analysis. 'To provide a program.
  • the first aspect of the present invention provides
  • the linear conversion unit may be a cryptographic processing device that performs processing based on a matrix constraint condition adapted to the linear conversion.
  • min ⁇ 0 ⁇ is the minimum value of all X ⁇ ⁇ ⁇ ⁇ satisfying a ⁇ 0, and hwn (Y) is all n bits of data when the bit string Y is divided into n bits.
  • a I B is a matrix obtained by concatenating matrices A and B,
  • the second aspect of the present invention provides
  • a cryptographic processing device A cryptographic processing device,
  • the linear transformation part of the F function corresponding to each of the r stages applies a matrix M that satisfies the following conditions, that is,
  • nX a bit data force A mapping that performs linear conversion to nXb bit data ⁇ : ⁇ 0, 1 ⁇ ⁇ 0, l ⁇
  • nb the number of branches ⁇ ( ⁇ ) is
  • min ⁇ X ⁇ is the minimum value of all Xs that satisfy ⁇
  • hw (Y) is a bit string that is not all 0s when n bits of data are represented as 0.
  • a function that returns the number of (nonzero) elements and define the mapping ⁇ where the number of branches B ( ⁇ ) is b +1 as the optimal diffusion transformation
  • a I B is a matrix obtained by concatenating matrices A and B,
  • the cryptographic processing device is characterized by applying a matrix M such that all of BD, BD, and BD are 3 or more.
  • the linear transformation part of the F function corresponding to each of the r stages applies a matrix M that satisfies the following conditions, that is,
  • nX a bit data force and the mapping that performs linear conversion to nXb bit data ⁇ : ⁇ 0, 1 ⁇ ⁇ 0, 1 ⁇ 1 *
  • hw (Y) is a function that returns the number of (non-zero) elements when all the data of n bits are not 0 when the bit string Y is divided into n bits.
  • mapping ⁇ with the number of branches ⁇ ( ⁇ ) b + 1 is defined as the optimal diffusion transformation
  • tM is the transpose of the matrix
  • the cryptographic processing device is characterized in that the matrix M is applied so that the BL force is S3 or higher. [0015] Further, the fourth aspect of the present invention provides
  • the linear transformation process of the F function corresponding to each of the r stages is a linear transformation process that applies a matrix M that satisfies the following conditions:
  • nX a bit data force nXb mapping performs linear conversion to bit data theta: relative ⁇ 0, 1 ⁇ ⁇ 0, l ⁇ nb, branch number ⁇ a (theta),
  • min ⁇ X ⁇ is the minimum value of all Xs that satisfy h ⁇
  • hw (Y) is a value in which all n-bit data is not 0 when the bit string Y is divided into n bits.
  • mapping ⁇ with the number of branches ⁇ ( ⁇ ) b +1 is defined as the optimal diffusion transformation
  • a I B is a matrix obtained by concatenating matrices A and B,
  • the cryptographic processing method is characterized in that it is executed by a linear transformation process using a matrix M such that all of BD, BD, and BD are 3 or more.
  • the linear transformation part of the F function corresponding to each of the r stages described above is a linear transformation process using a matrix M that satisfies the following conditions, that is,
  • nX a bit data force Mapping that performs linear transformation to nXb bit data ⁇ : ⁇ 0, 1 ⁇ ⁇ 0, 1 ⁇
  • the number of branches is 8 (0)
  • hw (Y) is a function that returns the number of (non-zero) elements when all the data of n bits are not 0 when the bit string Y is divided into n bits.
  • mapping ⁇ with the number of branches ⁇ ( ⁇ ) b +1 is defined as the optimal diffusion transformation
  • tM is the transpose of the matrix
  • the cryptographic processing method is characterized by being executed by a linear transformation process using a matrix M such that the BL force is S3 or higher.
  • a computer program that executes Feistel type common key block cipher processing on a computer.
  • the linear transformation process of the F function corresponding to each of the r stages is a linear transformation process that applies a matrix M that satisfies the following conditions:
  • nX a bit data force and the mapping that performs linear conversion to nXb bit data ⁇ : ⁇ 0, 1 ⁇ ⁇ ⁇ 0, 1
  • hw (Y) is a function that returns the number of (non-zero) elements when all the data of n bits are not 0 when the bit string Y is divided into n bits.
  • mapping ⁇ with the number of branches ⁇ ( ⁇ ) b + 1 is defined as the optimal diffusion transformation
  • BD min ⁇ B (M)
  • BD min ⁇ B (M
  • a I B is a matrix obtained by concatenating matrices A and B,
  • This is a computer program characterized by being executed by a linear transformation process applying a matrix M such that all of BD, BD, and BD are 3 or more.
  • the seventh aspect of the present invention provides
  • a computer program that executes Feistel-type common key block ⁇ processing on a computer.
  • the linear transformation part of the F function corresponding to each of the r stages described above is a linear transformation process using a matrix M that satisfies the following conditions, that is,
  • nX a bit data force and the mapping that performs linear conversion to nXb bit data ⁇ : ⁇ 0, 1 ⁇ ⁇ 0, 1 ⁇ 1 *
  • min ⁇ X ⁇ is the minimum value of all Xs that satisfy a ⁇
  • hw n (Y) is a bit string Y divided into n bits and all n bits of data are not 0.
  • mapping ⁇ with the number of branches ⁇ ( ⁇ ) b +1 is defined as the optimal diffusion transformation
  • tM is the transpose of the matrix
  • the computer program is characterized by being executed by a linear transformation process using a matrix M such that the BL force is S3 or higher.
  • the computer 'program of the present invention is, for example, a storage provided in a computer-readable format to a computer system capable of executing various program' codes. It is a computer program that can be provided by a medium, a communication medium, for example, a recording medium such as a CD, FD, or MO, or a communication medium such as a network. By providing such a program in a computer-readable format, processing according to the program is realized on the computer 'system.
  • 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.
  • the F corresponding to each of the multiple rounds.
  • a configuration that executes linear transformation processing of a function by applying a matrix specified by a relatively loose or powerful restriction improves resistance against differential attacks and linear attacks in common key block ciphers.
  • the restrictions are relatively lenient, the number of usable matrix candidates increases, and the number of active S-boxes can be secured sufficiently large. In other words, it is possible to increase the minimum number of active S-boxes in the entire function, which is one of the strength indicators against attacks in common key block ciphers, and is resistant to linear attacks and differential attacks. Improved and more secure cryptographic processing is realized.
  • 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 illustrating an example of a square matrix applied to the linear transformation process by the linear transformation unit.
  • FIG. 5 is a diagram for explaining a specific example in which an F function output difference ⁇ is generated by executing linear transformation using a square matrix in the F function linear transformation unit.
  • FIG. 7] is a diagram for explaining the definition of simultaneous differential cancellation at an arbitrary stage in the common key block cipher.
  • FIG. 8 shows an example of a square MDS matrix.
  • FIG. 18 is a diagram showing a configuration example of an IC module as a cryptographic processing device that executes cryptographic processing according to the present invention.
  • the algorithm of the common key block cipher mainly includes a round function unit that performs conversion of input data and a key schedule unit that generates a key to be applied in each round of the round function unit. And can be divided into The key (sub key) applied in each round of the round function part is generated by being input to the key schedule part based on one master key (primary key) and applied in each round function part.
  • a typical method of this common key encryption method is DES (Data Encryption Standard) as a US federal standard encryption method.
  • the Feistel structure has a structure for converting plaintext into ciphertext by simple repetition of a conversion function.
  • the plaintext length is 2mn bits. However, m and n are both integers.
  • the plaintext of 2 mn bits is converted into two mn bits of input data P (Plain-Left) 101, P (Plain-Right
  • 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 an example of a configuration in which the F function (round function) 120 is repeated r stages is shown.
  • mn-bit input data X and a mn-bit round key K 103 input from the key generation unit are input to the F function 120, and the F function 120 In
  • 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.
  • 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.
  • the F function 120 has a so-called SPN type configuration in which a nonlinear conversion layer and a linear conversion layer are connected.
  • the SPN-type F function 120 includes a plurality of non-linear transformation processes as shown in FIG. 2 (b).
  • An S-box 121 is provided.
  • the mn-bit input value X from the previous stage of the round function part is XORed with the round key 1 ⁇ input from the key schedule part, and the output is a multiple (m ) S box 121.
  • m multiple
  • a nonlinear conversion process using a conversion table is executed.
  • the output value Z of the mn bits which is output data from the S box 121, is input to the linear conversion unit 122 that performs linear conversion processing, and linear conversion processing such as bit position replacement processing is performed.
  • Output mn bit output value Y is exclusive ORed with the input data from the previous stage, and used as the input value of the F function of the next round.
  • the F function 120 shown in Fig. 2 has an input / output bit length of m X n (m, n: integer) bits, and the nonlinear conversion layer is S as a nonlinear conversion layer having n bits of input / output.
  • Box 121 has a configuration aligned in m parallel arrangements, and linear transformation unit 122 as a linear transformation layer is an element on an extension field GF (2 n ) of 2 defined by an irreducible polynomial of order n. Perform linear transformation based on the m-th order square matrix.
  • FIG. 1 An example of a square matrix applied to the linear transformation process in the linear transformation unit 122 is shown in FIG.
  • a square matrix 125 defined in advance is applied to the m pieces of n-bit data Z [l], Z [2], ..., Z [m] that also output the nonlinear transformation (S bot 121) force
  • S bot 121) nonlinear transformation
  • Y [l], ⁇ [2],..., Y [m] are determined as F function (round function) output.
  • the linear operation for the matrix elements of each data is performed on the predetermined two extension fields GF (2 n ).
  • ⁇ (delta) symbol is used to indicate the difference.
  • 64-bit data is divided into bytes and expressed as a vector, and each element is expressed in hexadecimal.
  • the simultaneous difference cancellation in the F function having the three-stage configuration occurs, for example, based on the setting mechanism of the following data states:!
  • the data state generated by the mechanism described below is a data state that can be generated by setting a large number of differential input data, and can occur in the analysis of a key (round key) in so-called differential analysis.
  • This data state means that such a data state can be obtained in the i-round by setting a large number of differential input data.
  • the difference (34) is input to the first S box ((S1) in Fig. 4), and (00) is the input difference for the second to 8S boxes.
  • the output difference of the S box with zero (00) input difference is zero (00).
  • the S box with zero (00) input difference has no effect. It is not doing and is called inactive or inactive S-box.
  • an S box with a non-zero input difference (difference: 34 in the example in Figure 4) generates a nonlinear transformation result corresponding to a non-zero input difference as an output difference. box).
  • the output difference (b7) of one active S box (S1) that inputs a non-zero input difference (34) is generated, and the other inactive S boxes S2 to S8 are An output difference (00) is generated based on a zero input difference (00) and used as the difference input of the linear conversion unit.
  • (98, c4, b4, d3, ac, 72, Of, 32) as the F function output difference of i-round is all zero in the exclusive OR unit 131 shown in FIG.
  • i + 2 round Active S-box matches the output difference of the i-round Active S-box (SI), that is, the figure As shown in Fig. 4, i + 2 round active S box ((S1) output difference is b7, which is the same as i S round (S1) output difference (b7). This means that such a data state can be obtained by setting the difference input data.
  • ⁇ ⁇ + 2 (98, c4, b4, d3, ac, 72, Of, 32),
  • the minimum number of active S-boxes in the entire encryption function is known as one of strength indicators against differential attacks. The greater the minimum number of active S-boxes, the higher the resistance against differential attacks.
  • differential analysis differential attack
  • each round is obtained by setting a large number of input data (plaintext) having a certain difference and its output data (ciphertext) and analyzing this correspondence. This is a technique for analyzing the application key in a function. In this difference analysis, if the number of active S-boxes can be reduced, the analysis becomes easier and the number of analysis processes can be reduced.
  • the force indicating the occurrence state of the pattern in which only the first S box (S1) is the active S box is also applied to the other S boxes (S2 to S8). It is possible to set only each S box as the active S box by setting the input data of the fractional analysis. By executing such a differential analysis process, the analysis of the nonlinear transformation processing of each S box and the F function It is possible to analyze the round key input for.
  • the common-key block cipher algorithm shown in Fig. 4 has the same linear transformation matrix applied to the linear transformation unit in each round. Only two active S-boxes in the F-function to perform cause the possibility of simultaneous differential cancellation. Therefore, there is a problem that the minimum number of active S-boxes does not increase sufficiently as the number of rounds increases, and the strength against differential attacks does not increase so much.
  • 64-bit data is divided into bytes and expressed as a vector, and each element is expressed in hexadecimal.
  • the simultaneous difference cancellation in the F function having a five-stage configuration occurs, for example, based on the setting mechanism of the following data states:!
  • the data state generated by the mechanism described below is a data state that can be generated by setting a large number of differential input data, and can occur in the analysis of a key (round key) in so-called differential analysis.
  • ⁇ ⁇ (34, 00, 00, 00, 00, 00, 00, 00, 00)) is zero except for the input to one S_box.
  • This data state means that such a data state can be obtained in the i-round by setting a large number of differential input data.
  • ⁇ ⁇ (34, 00, 00, 00, 00, 00, 00, 00, 00) Corresponds to the input difference for each. (34) is input to the first S box ((S1) in FIG. 6), and (00) is the input difference for the second to 8S boxes.
  • the output difference of the S box having zero (00) input difference is zero (00).
  • the S box having zero (00) input difference It is also called “active S”, that is, inactive S-box.
  • S1 with a non-zero input difference difference: 34 in the example of Fig. 6
  • S box (Active S_box) generates a nonlinear transformation result corresponding to the non-zero input difference as an output difference. It is a box (Active S_box).
  • the output difference (b7) of one active S box (S1) that inputs a non-zero input difference (34) is generated, and the other inactive S boxes S2 to S8 are An output difference (00) is generated based on a zero input difference (00) and used as the difference input of the linear conversion unit.
  • ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ (98, c4, b4, d3, ac, 72, Of, 32) as i-round F function output difference is an input that is all zero in the exclusive OR unit 141 shown in FIG.
  • the output difference ⁇ + 1 from the i + 1 round F function has a non-zero value only at the position of the Active S—box in the i round.
  • This data state means that such a data state can be obtained by setting a large number of differential input data.
  • ⁇ + 1 (34, 00, 00, 00, 00, 00, 00, 00, 00, 00), and the non-zero difference value (difference: 34 in the example of FIG. 6) is the same as in the i round. It has a non-zero value only in the position of the S-box it has (first S box (S1)).
  • the output difference of Active S—box (SI) for i + 4 rounds matches the output difference of Active S—box (SI) for i rounds, that is, As shown in Fig. 6, the output difference of the active S box ((S1) in i + 4 rounds is b7, which matches the output difference (b7) of the active S box (S1) in i round.
  • This data state is By setting a large number of differential input data, such a data state can be obtained.
  • ⁇ + 3 (98, c4, b4, d3, ac, 72, Of, 32),
  • ⁇ + 4 (98, c4, b4, d3, ac, 72, Of, 32),
  • each round is obtained by setting a large number of input data (plaintext) having a certain difference and its output data (ciphertext) and analyzing this correspondence.
  • plaintext plaintext
  • ciphertext output data
  • the F function that performs input from right to left that is, only the i-th round, the i + 2nd round, and the i + 4th round are the active S box calculation process target rounds.
  • the number of active S boxes is 8 in rounds i + 1 and i + 3
  • the number of active S boxes in round i + 5 is 0 due to simultaneous difference cancellation.
  • the analysis of the box nonlinear transformation process and the analysis of the input round key for the F function are relatively easy.
  • Fig. 7 shows every other round (i, i + 2, i + 4, ⁇ ⁇ ⁇ , i + 2j) of the Faistel structure that executes the common key block cipher with the Feistel structure. ).
  • one of the strength indicators against differential attacks in common key block ciphers Is the minimum number of active s-boxes in the entire function, and the greater the minimum number of active S-boxes, the higher the resistance to differential attacks.
  • the difference analysis process requires that the person executing the analysis facilitates input data (plain text) having a certain difference and analyzes the corresponding output data (cipher text).
  • the linear analysis process it is not necessary to prepare input data (plain text) with a certain difference, and analysis is performed based on input data (plain text) exceeding a predetermined amount and corresponding output data (cipher text).
  • the common key block cipher algorithm has an S-bottom as a non-linear transformation unit, and there is no linear relationship between input data (plain text) and corresponding output data (cipher text).
  • the input and output of this S box is linearly approximated, and the analysis is performed by narrowing down the candidate keys by analyzing the linear relationship between many input data (plaintext) and the corresponding output data (ciphertext). .
  • linear analysis it is possible to pray by facilitating a large number of plaintexts and corresponding ciphertexts that do not require the preparation of input data with specific differences.
  • the cryptographic processing algorithm described below is a patent application filed by the same applicant as the present application, Japanese Patent Application No. 2003-339634, and Japanese Patent Application No. 2004-256465.
  • it has a configuration with improved resistance to attacks such as differential analysis, that is, a configuration in which the difficulty of key analysis is increased and safety is improved.
  • One feature of the ⁇ processing algorithm described below is that the common processing (conversion row ⁇ 1J) is applied to the linear transformation unit configured in the F function of each round as in the conventional DES algorithm.
  • This is a configuration in which multiple different square MDS (Maximum Distance Separable) matrices are set. Specifically, it has a configuration in which linear transformation processing is applied to which a different square MDS matrix is applied in each of at least consecutive even-numbered rounds and consecutive odd-numbered rounds.
  • This ⁇ process algorithm uses the property of square MDS (Maximum Distance Separable) matrix and realizes a structure in which simultaneous difference cancellation based on a small number of active S boxes does not occur or is unlikely to occur. Increase the minimum number of boxes to realize stronger common key block cipher processing against differential attacks. Alternatively, it has a configuration that increases the difficulty of linear analysis performed as a known plaintext attack.
  • This] process algorithm is a typical common key block cipher structure called an Feistel structure having an SPN type F function described with reference to FIGS. 1 and 2, that is, a nonlinear transform unit and a linear transform unit.
  • SPN type F function described with reference to FIGS. 1 and 2
  • the F function is executed in each round using this as an input value.
  • the F function is a linear transformation unit composed of an S box and a linear function. This is an F function with SP N type connected to the converter.
  • a matrix selected from a plurality of different square MDS (Maximum Distane Separable) matrices is used for each round as a matrix for the linear transformation process applied in the linear transformation unit in the F function.
  • a different square MDS matrix is applied in each of at least consecutive even rounds and consecutive odd rounds.
  • a square MDS matrix will be described.
  • a square MDS matrix is a matrix that satisfies the following properties (a) and (b).
  • a matrix that satisfies the above conditions (a) and (b) is called a square MDS matrix.
  • the input / output bit length for the F function executed in each round of the common key block cipher is m X n (m, n: integer) bits, and the non-linear transformation part configured in the F function has n bits of input / output
  • Figure 8 shows an example of a square MDS matrix when executed.
  • a square MDS matrix satisfying the above (a) and (b) has a non-zero number of elements of vector A as the hamming weight hw (A), M is an m-order square MDS matrix, and x is a square MDS.
  • Equation 1 the following inequality (Equation 1) is satisfied.
  • Equation 1 is the number of non-zero elements hw (x) of the input data X linearly transformed by the square MDS matrix (M) and the output linearly transformed by the square MDS matrix (M). This means that the total number of nonzero elements hw (Mx) of data Mx is greater than the order m of the square MDS matrix.
  • square MDS matrix is named because the right half of the standard form of the square MDS-code (Maximum Distance Separable Code) generator matrix satisfies the above conditions.
  • the linear transformation matrix applied by the linear transformation unit in the j-stage F function of the Feistel type common key block cipher processing configuration with 2r stages (round number) is expressed as MLTj. To do.
  • multiple matrices are used for the linear transformation processing applied in the linear transformation section in the F function of each stage in the Feistel-type common key block ⁇ processing configuration with 2r rounds (rounds).
  • a row ⁇ 'J selected from square MDS (Maximum Distance Separable) matrices with different values is set as a matrix to be applied in the linear transformation part of the F function in each round.
  • a different square MDS matrix is applied to each of at least consecutive even-numbered rounds and consecutive odd-numbered rounds.
  • q square MDS matrices less than r: LI, L2, ⁇ ⁇ , Lq are generated in response to a Feistel-type symmetric block encryption scheme with 2r rounds
  • F Q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 '' in order from the function.
  • q square MDS matrices are repeatedly set as LI, L2,..., Lq, L1, L2 '.
  • FIG. 9 shows a configuration example to which this setting is applied.
  • a square MDS matrix (LI, L2, L3) set in the linear transformation part of the F function part of each round is shown as an example of the arrangement of three different square MDS matrices in the key block cipher processing configuration.
  • the configuration in Fig. 9 divides a 2 mn-bit plaintext into two mn-bit data PL (Plain-Left) and PR (Plain-Right), and uses this as an input value in each round.
  • the F function 401 in the first round and the F functions in the other rounds are all connected to the nonlinear transformation unit consisting of the S box and the linear transformation unit as described with reference to Fig. 2.
  • q is an integer of 2 or more.
  • step S22 after the m-order square MDS matrices Ll, L2, Lq on q GF ( 2n ) are generated, the following square MDS matrix setting process is executed.
  • MLT1 L1
  • MLT2 L3
  • MLT3 L2
  • MLT4 L2
  • MLT5 L3
  • MLT6 L1
  • MLT7 L1
  • MLT8 L3
  • MLT9 L2
  • MLT10 L2
  • q square MD S matrices of r or less corresponding to the Feistel type common key block number processing configuration with 2r stages (number of rounds) LI, L2, ⁇ , Lq are generated, and for odd stages, L1 , L2, ⁇ , Lq, LI, L2 ', q square MDS matrices are repeatedly set, and for the even-numbered F function, LI, L2, ⁇ ⁇ , Lq , LI, L2 ", the configuration is such that q square MDS matrices are repeatedly set.
  • Input Number of necessary square MDSs q, Expansion order: n, Matrix size: m Assuming q m-order square MDS matrices LI, L2, Lq on GF (2 n ) at random.
  • q square MDS matrices are repeatedly set as Ll, L2, ⁇ , Lq, LI, L2 ' ⁇ in order from the upper stage, and for even-numbered F functions, In order from the F function, q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, L1, L2 ' ⁇ .
  • this processing example increases the minimum number of active S-boxes in the entire encryption function, which is one of the strength indicators against differential attacks in common key block ciphers.
  • the number of active S-boxes when differential analysis (differential attack) is performed increases, and the difficulty of analysis increases. Therefore, high security and cryptographic processing that is difficult to analyze the key is realized.
  • the square MDS matrix is a matrix that satisfies the following properties as described above.
  • step S102 In the square MDS matrix generation process in the above processing example al, as described in the processing sequence of Fig. 11, in step S102, it is included in q m-order square MDS matrices LI, L2, ..., Lq.
  • the linear independence of any m number of qm columns In the processing of square MDS matrix in this processing example a2, the square MDS matrix is obtained when any m of qm columns included in q m-order square MDS matrices LI, L2, and Lq are extracted. Check if it is. In other words, a stricter check will be performed.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ' ⁇ in order of upper-stage force for odd-numbered stages, and for lower-stage F functions for even-numbered F functions.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ".
  • any m column vectors of the linear transformation matrix included in at least consecutive q F functions in the odd number of rounds in the encryption function are square MDS matrices
  • One qm-order square MDS matrix M force Select and extract m rows arbitrarily, and form a matrix M 'with m rows and qm columns.
  • the qm column vectors contained in the matrix M 'of m rows and qm columns are arbitrarily divided into q gnoles consisting of m column vectors without duplication, and the column vectors included in each gnole are divided.
  • the m-th order square matrices LI, L2,..., Lq are output as square MDS matrices to be applied to the Feistel symmetric key block ⁇ with 2r rounds.
  • qm Generate one qm-order square MDS matrix M on GF (2 n ).
  • qm Generate a square MDS matrix M of X qm. Note that the order of the matrix M generated in step S301 may be larger than the qm order.
  • m rows are arbitrarily selected and extracted from the qm-order square MDS matrix M to form a matrix M 'with m rows and qm columns.
  • the m m-th order square MDS matrix M which is an example of selecting and extracting consecutive m rows, is selected and extracted, and m rows, qm A matrix of columns M ′ may be constructed.
  • the qm column vectors contained in the matrix M 'with m rows and qm columns are arbitrarily divided into X gnoles consisting of m column vectors without overlapping, and the column vectors included in each gnole are divided. Generate m-th square square square J 1JL1, L2, Lx.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 "in order from the upper level for odd-numbered levels, and for lower-level F functions, In sequence, q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ''.
  • the processing example a3 is particularly effective because m and r are large, and the time cost involved in the matrix determination processing method of the processing examples a 1 and a2 described above is enormous. This is a case where it is difficult to determine the conduct IJ within a short time. Even in such a case, the square MDS matrix generation method of the present processing example a3 can perform matrix generation processing in a relatively short time.
  • q square MDS matrices are repeatedly set as Ll, L2, ⁇ , Lq, LI, L2 ' ⁇ in order from the upper stage, and for even-numbered F functions, In order from the F function, q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, L1, L2 ' ⁇ .
  • the square MDS matrix is a matrix that satisfies the following properties as described above.
  • Step S503 q m-order square MDS matrices LI, L2, and Lq are output as square MDS matrices to be applied to Feistel symmetric key block ciphers with 2r rounds.
  • step S402 the inverse matrix of Ml, M2, and Mq of q m-order square MDS matrices Ml— M2— Mq— Force that determines linear independence when any m of qm columns included in 1 is extracted.
  • q m-th order Ml of square MDS matrices, M2, inverse of Mq ML- 1 checks whether it is a square MDS matrix when removed any of the m qm number of columns included in the M2-MQ-1. In other words, a stricter check will be performed.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ' ⁇ in order of upper-stage force for odd-numbered stages, and for lower-stage F functions for even-numbered F functions.
  • q square MDS matrices are repeatedly set as LI, L 2, ⁇ , Lq, LI, L2 ''.
  • the ⁇ processing algorithm that is resistant to differential attacks uses the square MDS matrix applied to the processing described above with reference to Figs. 10 to 13, that is, the linear transformation in the linear processing section of the F function. This is achieved by applying and setting one of the processing examples al (Fig. 11) to a3 (Fig. 13). Also, the cryptographic algorithm that is resistant to linear attacks is a square MDS that is applied to the processing described above with reference to FIGS. 10, 14, and 15, that is, the linear transformation in the linear processing part of the F function. This is realized by setting the matrix by applying the processing of the above-described processing example bl (FIG. 14) and b2 (FIG. 15).
  • Q square MDS matrices are generated by any combination of the above, and set as a matrix to be applied to the linear transformation process of the linear transformation part of the F function part of each stage of the 2r Feistel symmetric key block cipher processing configuration.
  • q square MDS matrices are repeatedly set as Ll, L2,..., Lq, LI, L2 '' in order from the upper stage.
  • LI, L2, ⁇ , Lq, LI, L2 ' ⁇ q square MDS matrices are repeatedly set. This setting enables cryptographic processing with improved resistance to differential attacks and linear attacks.
  • the square MDS matrix is a matrix that satisfies the following properties as described above.
  • q square MDS matrices are repeatedly set as Ll, L 2, ⁇ , Lq, LI, L2 '' in order from the upper stage, and for the F function of the even stage, the lower F In order from the function, q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ".
  • any m column vectors of the linear transformation matrix included in at least consecutive q F functions in the odd number of rounds in the encryption function are square MDS matrices
  • the difficulty of analysis of both differential attacks and linear attacks is improved, and highly secure cryptographic processing that is difficult to analyze keys is realized.
  • the example shown in FIG. 17 is a force that is an example of generating a square MDS matrix by the combination of the processing example a2 and the processing example b2 described above.
  • processing example al and the processing example bl, Processing example al and processing example b2, processing example a2 and processing example bl, processing example a3 and processing example bl, processing example a3 and processing example b2 are combined to generate q square MDS matrices,
  • LI, Q square MDS matrices are repeatedly set as L2, ⁇ , Lq, LI, L2-•, and for even-numbered F functions, LI, L2, ⁇ ⁇ , Lq, LI , L2 ", it is difficult to analyze both differential and linear attacks by repeatedly setting q square MDS matrices.
  • Cryptographic processing high difficult safety analysis is feasible.
  • the linear transformation matrix is assumed to be an m x m matrix defined on GF (2 n ), giving priority to easy understanding.
  • the same effect for differential analysis and linear analysis is effective even when using a matrix of mn X mn defined on GF (2).
  • any matrix on GF (2 n ) can have a one-to-one correspondence with a matrix on GF (2) that represents the same transformation. Therefore, it can be said that the matrix on GF (2) represents a more general expression.
  • the number of rows and columns is mn, which is n times that of GF (2 n ).
  • the first row of the matrix on GF (2 n ) is GF (2)
  • the 1st column corresponds to 1 force n ⁇ IJ.
  • the i-th row corresponds to the ( ⁇ 1) + 1st row to the (i- l) + n row
  • the i-th row corresponds to the ( ⁇ 1) + 1st row to the ( ⁇ 1) + n-th column. is doing. Therefore, when the row ⁇ 1J defined on GF (2) is used for the operation to fetch the row or column on GF (2 n ), the corresponding n rows or n columns are taken out. , Let's deal with the operation.
  • Arbitrary m column vectors of linear transformation matrix included in at least consecutive q F functions in odd rounds in ⁇ ⁇ ⁇ function are independent or square MDS matrix
  • the Feistel structure has a structure that converts plaintext into ciphertext by a simple iteration of the conversion function.
  • the 2mn-bit plaintext is divided into two mn-bit input data P (Plain-Left) 101 and P (Plain-Right) 102.
  • F function (round function) 120 is repeated r stages.
  • the mn-bit input data X and the key generation unit For example, in the first round shown in FIG. 1, the mn-bit input data X and the key generation unit
  • the mn-bit round key K 103 input from (not shown) is input to the F function 120 and F
  • an exclusive OR operation is performed, and the operation result of mn bits is output to the next round function.
  • This process that is, the F function is repeatedly applied for the specified number of rounds (r) to complete the encryption process, and the ciphertext split data C (Cipher-Left), C (Cipher-
  • the configuration of the F function 120 set as a function of each round has a so-called SPN type configuration in which a nonlinear transformation layer and a linear transformation layer are connected, as described above with reference to FIG.
  • the SPN type F function 120 has a plurality of S boxes (S_box) 121 for executing nonlinear transformation processing, as shown in FIG.
  • S_box S boxes
  • the mn-bit input value X from the previous stage of the round function part is XORed with the round key K input from the key schedule part, and the output is a multiple (m ) S box 121.
  • m multiple
  • the output value Z of mn bits which is the output data from the S box 121, is input to the linear conversion unit 122 that performs linear conversion processing, and linear conversion processing such as bit position replacement processing is performed, for example.
  • Output mn bit output value Y is exclusive ORed with the input data from the previous stage, and used as the input value of the F function of the next round.
  • the F function 120 shown in Fig. 2 has an input / output bit length of m X n (m, n: integer) bits, and the nonlinear conversion layer is S as a nonlinear conversion layer having n bits of input / output.
  • Box 121 has a configuration aligned in m parallel arrangements, and linear transformation unit 122 as a linear transformation layer is an element on an extension field GF (2 n ) of 2 defined by an irreducible polynomial of order n. Perform linear transformation based on the m-th order square matrix.
  • the square matrix to be applied to the linear transformation processing in the linear transformation unit 122 has the configuration shown in Fig. 3, for example, and m pieces of n-bit data Z output from the nonlinear transformation unit (S box 121).
  • a square MDS Maximum Distance Separable
  • Configuration example of cryptographic processing algorithm with improved durability for the square matrix applied to this linear transformation process.
  • Optimal Diffusion Mappings is defined as follows. nX a bit data force Mapping [ ⁇ ] that performs linear transformation to nXb bit data
  • the number of branches ⁇ ( ⁇ ) is defined as follows.
  • min ⁇ X ⁇ represents the minimum value of all Xs that satisfy ⁇
  • hw (Y) represents the data of ⁇ bits when the bit string ⁇ is divided into ⁇ bits. It is a function that returns the number of (non-zero) elements that are not all zero.
  • mapping ⁇ such that ⁇ ( ⁇ ) is b +1 is defined as the optimal diffusion transformation.
  • the number of branches in the matrix M is represented as B (M).
  • a I B represents a matrix obtained by concatenating matrices A and B.
  • BL is defined as follows.
  • the matrix constraint conditions applied to the linear transformation are only the above conditions (1) and (2), and [3.
  • the restrictions are more lenient. This loose restriction increases the number of available matrix candidates and keeps the number of active S_boxes sufficiently large. Can be configured. In other words, it is possible to increase the minimum number of active S-boxes in the entire encryption function, which is one of the strength indicators against attacks in common key block ciphers, and to improve resistance to linear attacks and differential attacks. Highly safe ⁇ process is realized.
  • a I B represents a matrix obtained by concatenating matrices A and B.
  • the minimum number of S_boxes having a non-zero input / output difference can be expressed using BD and BD. Conventionally, only BD is used.
  • Arbitrary m column vectors of linear transformation matrix included in at least consecutive q F functions in odd rounds in ⁇ ⁇ ⁇ function are independent or square MDS matrix
  • This condition is the definition data BD described above, that is,
  • the number of matrix candidates to be applied to the linear transformation of the F function increases, and if the number of differential active S-boxes with input / output differences is sufficiently large, the number of matrix candidates can be secured. There is In other words, it is possible to increase the minimum number of active S-boxes in the entire function, which is one of the strength indicators against attacks in common key block ciphers, and to improve resistance against differential attacks. Highly secure cryptographic processing is realized.
  • BL is defined as follows.
  • This configuration example is a configuration example with many restrictions compared to the configuration example 1.
  • optimal diffusion mapping is defined as follows.
  • n X a-bit data force mapping that performs linear transformation to n X b-bit data [ ⁇ ]
  • the number of branches ⁇ ( ⁇ ) is defined as follows.
  • min ⁇ X ⁇ represents the minimum value of all Xs that satisfy ⁇
  • hw (Y) represents the data of ⁇ bits when the bit string ⁇ is divided into ⁇ bits. All A function that returns the number of (non-zero) elements that are not zero.
  • mapping ⁇ such that ⁇ ( ⁇ ) is b + 1 as the optimal diffusion transformation.
  • M the number of branches in the matrix M is represented as B (M).
  • a I B represents a matrix obtained by concatenating matrices A and B.
  • BL is defined as follows.
  • the matrix constraint conditions applied to the linear transformation are only the above conditions (1) and (2), and the above-mentioned [3. Compared to the applicable matrix constraints described in Example of cryptographic processing algorithm configuration], this is a milder constraint. Due to this loose constraint, a Feistel type common key block ⁇ that can increase the number of usable matrix candidates and keep the number of active S_boxes sufficiently large can be constructed. In other words, it is possible to increase the minimum number of active S-boxes in the entire encryption function, which is one of the strength indicators against attacks in common key block ciphers, and to improve resistance to linear attacks and differential attacks. Highly safe ⁇ process is realized.
  • a I B represents a matrix obtained by concatenating matrices A and B.
  • Arbitrary m column vectors of linear transformation matrix included in at least consecutive q F functions in odd rounds in ⁇ ⁇ ⁇ function are independent or square MDS matrix
  • This condition is the definition data BD described above, that is,
  • BL is defined as follows.
  • FIG. 18 shows a configuration example of the IC module 600 as a cryptographic processing apparatus that executes cryptographic processing.
  • the above-described processing can be executed in, for example, various information processing apparatuses such as a PC, an IC card, a reader / writer, and the IC module 600 shown in FIG. 18 can be configured in these various devices.
  • the CPU (Central processing Unit) 601 shown in Fig. 18 executes the start and end of the sign process, control of data transmission / reception, data transfer control between each component, and various other programs. It is a processor.
  • the memory 602 is a storage area for a program executed by the CPU 601 or a ROM (Read-Only-Memory) that stores fixed data as an operation parameter, a program executed in the processing of the CPU 601, and a parameter that changes as appropriate in the program processing.
  • RAM Random Access Memory
  • the memory 602 is used as a storage area for key data necessary for cryptographic processing. Is available.
  • the data storage area is preferably configured as a tamper-resistant memory.
  • the encryption processing unit 603 executes encryption processing, decryption processing, and the like according to the above-described Feistel-type common key block encryption processing algorithm, for example.
  • the power of an example in which the cryptographic processing means is an individual module is not provided.
  • the ⁇ process program is stored in the ROM, and the CPU 601 reads the ROM storage program. You can configure it to run out and run.
  • the random number generator 604 executes a random number generation process necessary for generating a key necessary for the cryptographic process.
  • the transmission / reception unit 605 is a data communication processing unit that performs data communication with the outside. For example, the data communication with the IC module such as a reader / writer is performed, and the ciphertext generated in the IC module is output. Or, input data from an external reader / writer or other device.
  • the power explained by using two or three types of determinants is not limited to this, and a plurality of types of determinants are used. It is possible to improve the resistance against differential attacks and linear attacks.
  • the series of processes described in the specification can be executed by hardware, software, or a combined configuration of both.
  • a program that records the processing sequence is installed in a memory in a computer built in dedicated hardware and executed, or a general-purpose computer that can execute various types of processing. It is possible to install and run the program.
  • the program can be recorded in advance on 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. It can be stored (recorded).
  • a removable recording medium can be provided as a so-called package software.
  • the program is installed on the computer from the removable recording medium as described above, or is wirelessly transferred from the download site to the computer, or via a network such as a LAN (Local Area Network) or the Internet.
  • the computer can receive the program transferred in this way and install it on a built-in recording medium such as a hard disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

解析困難性を高めた、安全性の高い暗号処理装置および方法を実現する。非線形変換部および線形変換部を有するSPN型のF関数を、複数ラウンド繰り返し実行するFeistel型共通鍵ブロック暗号において、各ラウンドに対応するF関数の線形変換処理を比較的緩やかな制限条件を満足する行列を適用して実行する。本構成により差分攻撃や線形攻撃に対する耐性が向上する。また、制限が比較的緩やかであのので利用できる行列候補が増加し、アクティブS-box数を大きくできる。すなわち、暗号強度指標のひとつであるアクティブSボックスの最小数を大きくすることが可能となり、攻撃に対する耐性が向上し安全性の高い暗号処理が実現される。

Description

明 細 書
情報処理装置
技術分野
[0001] 本発明は、喑号処理装置、および喑号処理方法、並びにコンピュータ 'プログラム に関する。さらに詳細には、暗号解析処理、攻撃処理として知られる線形解析、差分 解析に対する耐性を向上させた暗号処理装置、および暗号処理方法、並びにコンビ ユータ.プログラムに関する。 背景技術
[0002] 昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保 が重要な問題となっている。セキュリティ確保の 1つの方法が暗号技術であり、現在、 様々な暗号化手法を用いた通信が実際に行なわれてレ、る。
[0003] 例えば ICカード等の小型の装置中に暗号処理モジュールを坦め込み、 ICカードと 、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行なレ、、 認証処理、あるいは送受信データの暗号化、復号を行なうシステムが実用化されて いる。
[0004] 暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号 鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵 と復号鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
[0005] 共通鍵喑号方式にも様々なアルゴリズムがある力 その 1つに共通鍵をベースとし て複数の鍵を生成して、生成した複数の鍵を用いてブロック単位(64ビット, 128ビッ トなど)のデータ変換処理を繰り返し実行する方式がある。このような鍵生成方式とデ ータ変換処理を適用したアルゴリズムの代表的なものが共通鍵ブロック喑号方式で ある。
[0006] 代表的な共通鍵ブロック暗号のアルゴリズムとしては、例えば米国標準暗号として の DES (Data Encryption Standard)アルゴリズムがあり、様々な分野において広く用 レ、られている。
[0007] DESに代表される共通鍵ブロック暗号のアルゴリズムは、主として、入力データの 変換を実行するラウンド関数部と、ラウンド関数 (F関数)部の各ラウンドで適用する鍵 を生成する鍵スケジュール部とに分けることができる。ラウンド関数部の各ラウンドで 適用するラウンド鍵(副鍵)は、 1つのマスター鍵(主鍵)に基づいて、鍵スケジュール 部に入力されて生成され、各ラウンド関数部で適用される。
[0008] しかし、このような共通鍵暗号処理においては、暗号解析による鍵の漏洩が問題と なっている。暗号解析または攻撃手法の代表的な手法として、ある差分を持つ入力 データ(平文)とその出力データ(暗号文)を多数解析することにより各ラウンド関数に おける適用鍵を解析する差分解析 (差分解読法または差分攻撃とも呼ばれる)や、平 文と対応暗号文に基づく解析を行う線形解析 (線形解読法または線形攻撃とも呼ば れる)が知られている。
[0009] 暗号解析による鍵の解析が容易であるということは、その暗号処理の安全性が低い ということになる。従来の DESアルゴリズムにおいては、ラウンド関数 (F関数)部の線 形変換部において適用する処理 (変換行列)力 各段のラウンドにおいて等しいもの であったため解析が行いやすぐ結果として鍵の解析の容易性を招いているという問 題がある。
発明の開示
発明が解決しょうとする課題
[0010] 本発明は、上記問題点に鑑みてなされたものであり、線形解析や差分解析に対す る耐性の高い共通鍵ブロック暗号アルゴリズムを実現する暗号処理装置、および暗 号処理方法、並びにコンピュータ 'プログラムを提供することを目的とする。
課題を解決するための手段
[0011] 本発明の第 1の側面は、
複数ビットの入出力を持つ複数の非線形変換層を並列に構成した非線形変換部と 線形変換を施す線形変換層で構成した線形変換部とで構成される Feistel型暗号 処理を備える暗号処理装置にぉレ、て、
前記線形変換部は、前記線形変換に適応する行列の制約条件に基づいて処理を 施すことを特徴とする暗号処理装置にある。 [0012] さらに、本発明の暗号処理装置の一実施態様において、前記線形変換に適応する 行列の制約条件は、 r段各々に対応する F関数の線形変換部の満足する行列 Miを 適用した構成、すなわち、 nXaビットデータから nXbビットデータへの線形変換を 行う写像 Θ :{0, l}na→{0, l}nbに対して、分岐数 Β( θ )を、
分岐数 Β( Θ )=mina≠0{hwn (ひ) +hwn( Θ (ひ)) }、
ただし、 minひ≠0{Χひ }は、 a≠0を満たすすべての Xひのうちの最小値、 hwn( Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0では なレ、(非ゼロ)要素の数を返す関数、とし、分岐数 Β( Θ )が b+1である写像 Θを最適 拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BDl=min{B(Mi) | l≤i≤r},
BD2=min{B(Mi | Mi + 2) | l≤i≤r_2},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD1, BD2のすべてが 3以上になるような行列 Miを適用した構成であることを特徴 とする。
[0013] さらに、本発明の第 2の側面は、
暗号処理装置であり、
非線形変換部および線形変換部を有する SPN型の F関数を持つ r段からなる Feis tel型共通鍵ブロック暗号処理構成を有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した構成、すなわち、
nX aビットデータ力 nXbビットデータへの線形変換を行う写像 Θ : {0, 1 →{0, l}nbに対して、分岐数 Β( θ )を、
分岐数 B( 0 )=min {hw (a) +hw ( θ (α))},
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値、 hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、 とし、分岐数 B( θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BD =min{B(M) | l≤i≤r},
BD =min{B(M | M ) | l≤i≤r— 2},
BD =min{B(M | M | M ) | l≤i≤r_4},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD, BD , BDのすべてが 3以上になるような行列 Mを適用した構成であることを 特徴とする暗号処理装置にある。
さらに、本発明の第 3の側面は、
喑号処理装置であり、
非線形変換部および線形変換部を有する SPN型の F関数を持つ r段からなる Feis tel型共通鍵ブロック暗号処理構成を有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した構成、すなわち、
nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, 1}1*に対して、分岐数8(0)を、
分岐数 Β(θ)=πΰη {hw (a)+hw (Θ ))}、
ただし、 min {X }は、 a≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b + 1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BL =min{B(tM_1 | Μ— 1 ) | l≤i≤r— 2}
ただし、 tMは行列の転置、
とした場合において、
BL力 S3以上になるような行列 Mを適用した構成であることを特徴とする暗号処理 装置にある。 [0015] さらに、本発明の第 4の側面は、
Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換処理は下記条件を満足する行列 Mを 適用した線形変換処理、すなわち、
nX aビットデータ力 nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, l}nbに対して、分岐数 Β(θ)を、
分岐数 B(0)=min {hw (a)+hw (θ (α))},
ただし、 min {X }は、ひ≠0を満たすすべての X のうちの最小値、 hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BD =min{B(M) | l≤i≤r},
BD =min{B(M | M ) | l≤i≤r— 2},
BD =min{B(M | M | M ) | l≤i≤r—4},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD , BD , BDのすべてが 3以上になるような行列 Mを適用した線形変換処理に よって実行することを特徴とする暗号処理方法にある。
[0016] さらに、本発明の第 5の側面は、
Feistel型共通鍵ブロック喑号処理を実行する喑号処理方法であり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した線形変換処理、すなわち、
nX aビットデータ力 nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, 1}1*に対して、分岐数8(0)を、
分岐数 Β(θ)=πΰη {hw (a)+hw (Θ ))}、
ただし、 min {X }は、 a≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BL =min{B(tM_1 | Μ— 1 ) | l≤i≤r— 2}
ただし、 tMは行列の転置、
とした場合において、
BL力 S3以上になるような行列 Mを適用した線形変換処理によって実行することを 特徴とする暗号処理方法にある。
さらに、本発明の第 6の側面は、
Feistel型共通鍵ブロック暗号処理をコンピュータ上において実行するコンピュータ •プログラムであり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換処理は下記条件を満足する行列 Mを 適用した線形変換処理、すなわち、
nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 Θ :{0, 1广→{0, 1 に対して、分岐数8(0)を、
分岐数 B(0)=min {hw (a)+hw (θ (α))},
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b + 1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BD =min{B(M) | l≤i≤r}, BD =min{B(M | M ) | l≤i≤r— 2},
BD =min{B(M | M | M ) | l≤i≤r—4},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD, BD , BDのすべてが 3以上になるような行列 Mを適用した線形変換処理に よって実行することを特徴とするコンピュータ 'プログラムにある。
[0018] さらに、本発明の第 7の側面は、
Feistel型共通鍵ブロック喑号処理をコンピュータ上において実行するコンピュータ •プログラムであり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した線形変換処理、すなわち、
nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, 1}1*に対して、分岐数8(0)を、
分岐数 Β(θ)=πΰη {hw (a)+hw (Θ ))}、
ただし、 min {X }は、 a≠0を満たすすべての X のうちの最小値、 hwn(Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BL =min{B(tM_1 | Μ— 1 ) | l≤i≤r— 2}
ただし、 tMは行列の転置、
とした場合において、
BL力 S3以上になるような行列 Mを適用した線形変換処理によって実行することを 特徴とするコンピュータ 'プログラムにある。
[0019] なお、本発明のコンピュータ 'プログラムは、例えば、様々なプログラム 'コードを実 行可能なコンピュータ ·システムに対して、コンピュータ可読な形式で提供する記憶 媒体、通信媒体、例えば、 CDや FD、 MOなどの記録媒体、あるいは、ネットワークな どの通信媒体によって提供可能なコンピュータ 'プログラムである。このようなプロダラ ムをコンピュータ可読な形式で提供することにより、コンピュータ 'システム上でプログ ラムに応じた処理が実現される。
[0020] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図 面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書において システムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内に あるものには限らない。
発明の効果
[0021] 本発明の構成によれば、非線形変換部および線形変換部を有する SPN型の F関 数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理において、複 数ラウンド各々に対応する F関数の線形変換処理を、比較的緩や力な制限によって 特定される行列を適用して実行する構成により、共通鍵ブロック暗号における差分攻 撃や線形攻撃に対する耐性が向上する。また、制限が比較的緩やかであり、利用で きる行列の候補が増加するとともに、アクティブ S— box数を十分大きく確保すること が可能となる。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標のひと つである喑号ィ匕関数全体でのアクティブ Sボックスの最小数を大きくすることが可能と なり、線形攻撃や、差分攻撃に対して耐性が向上し、より安全性の高い暗号処理が 実現される。
図面の簡単な説明
[0022] [図 l]Feistel構造を持つ代表的な共通鍵ブロック暗号の構成を示す図である。
[図 2]ラウンド関数部として設定される F関数の構成について説明する図である。
[図 3]線形変換部にぉレ、て、線形変換処理に適用する正方行列の例を示す図である
[図 4]m= 8, n=8の 128bitブロック暗号における 3段の同時差分キャンセルの様子 を説明する図である。
[図 5]F関数の線形変換部にぉレ、て、正方行列による線形変換が実行されて、 F関数 出力差分 Δ Υίを生成する具体例を説明する図である。 [図 6]m= 8, n=8の 128bitブロック暗号における 5段の同時差分キャンセルの様子 を説明する図である。
園 7]共通鍵ブロック暗号における任意段の同時差分キャンセルの定義を説明する 図である。
[図 8]正方 MDS行列の一例を示す図である。
園 9]共通鍵ブロック暗号処理アルゴリズムにおける各ラウンドの F関数の線形変換行 列としての正方 MDS行列設定例を説明する図である。
園 10]共通鍵ブロック暗号処理アルゴリズムにおける各ラウンドの F関数の線形変換 行列としての正方 MDS行列設定処理シーケンスを説明するフロー図である。
園 11]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、差分攻撃に対する耐性向上を実現する正方 MDS行列生成処理例 alを説 明するフロー図である。
園 12]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、差分攻撃に対する耐性向上を実現する正方 MDS行列生成処理例 a2を説 明するフロー図である。
園 13]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、差分攻撃に対する耐性向上を実現する正方 MDS行列生成処理例 a3を説 明するフロー図である。
園 14]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成処 理例 a3の具体的手法を説明する図である。
園 15]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、線形攻撃に対する耐性向上を実現する正方 MDS行列生成処理例 blを 説明するフロー図である。
園 16]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、線形攻撃に対する耐性向上を実現する正方 MDS行列生成処理例 b2を 説明するフロー図である。
園 17]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、差分攻撃および線形攻撃に対する耐性向上を実現する正方 MDS行列生 成処理例を説明するフロー図である。
[図 18]本発明に力かる暗号処理を実行する暗号処理装置としての ICモジュールの構 成例を示す図である。
発明を実施するための最良の形態
[0023] 以下、本発明の喑号処理装置、および喑号処理方法、並びにコンピュータ 'プログ ラムの詳細について説明する。なお、説明は、以下の項目順に行う。
1.共通鍵ブロック暗号アルゴリズムにおける差分解析処理
2.共通鍵ブロック暗号アルゴリズムにおける線形解析処理
3.耐性を向上させた暗号処理アルゴリズム構成例
(3— a)差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— b)線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— c)差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の 生成および F関数への設定例
4.本発明に係る喑号処理アルゴリズム
(4a)構成例 1
(4a. 1)構成例 1における差分攻撃に対する耐性の向上
(4a. 2)構成例 1における線形攻撃に対する耐性の向上
(4b)構成例 1
(4b. 1)構成例 2における差分攻撃に対する耐性の向上
(4b. 2)構成例 2における線形攻撃に対する耐性の向上
[0024] [1.共通鍵ブロック喑号アルゴリズムにおける差分解析処理]
まず、 DES (Data Encryption Standard)喑号処理に代表される共通鍵ブロック喑号 アルゴリズムにおける差分解析処理の概要について、一般化した共通鍵ブロック喑 号モデルを用いて説明する。
[0025] 共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を実行するラウ ンド関数部と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部 とに分けることができる。ラウンド関数部の各ラウンドで適用する鍵(副鍵)は、 1つの マスター鍵(主鍵)に基づいて、鍵スケジュール部に入力されて生成され、各ラウンド 関数部で適用される。この共通鍵暗号方式の代表的な方式に米国連邦標準暗号方 式としての DES (Data Encryption Standard)がある。
[0026] Feistel構造と呼ばれる代表的な共通鍵ブロック喑号の構造について、図 1を参照 して説明する。
[0027] Feistel構造は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造 を持つ。平文の長さを 2mnビットとする。ただし、 m, nは共に整数である。初めに、 2 mnビットの平文を、 mnビットの 2つの入力データ P (Plain-Left) 101, P (Plain-Right
L R
)102に分割し、これを入力値とする。
[0028] Feistel構造はラウンド関数とよばれる基本構造の繰り返しで表現され、各ラウンド に含まれるデータ変換関数は F関数 120と呼ばれる。図 1の構成では、 F関数 (ラウン ド関数) 120が r段繰り返された構成例を示してレ、る。
[0029] 例えば第 1番目のラウンドでは、 mnビットの入力データ Xと、鍵生成部(図示せず) 力ら入力される mnビットのラウンド鍵 K 103が F関数 120に入力され、 F関数 120に
1
おけるデータ変換処理の後に mnビットのデータ Yを出力する。出力はもう片方の前 段からの入力データ(第 1段の場合は入力データ P )と排他的論理和部 104におい
L
て、排他的論理和演算がなされ、 mnビットの演算結果が次のラウンド関数へと出力さ れる。この処理、すなわち F関数を定められたラウンド数 (r)だけ繰り返し適用して暗 号化処理が完了し、暗号文の分割データ C (Cipher-Left)、 C (Cipher-Right)が出
L R
力される。以上の構成より、 Feistel構造の復号処理はラウンド鍵を挿入する順序を 逆にするだけでよぐ逆関数を構成する必要がないことが導かれる。
[0030] 各ラウンドの関数として設定される F関数 120の構成について、図 2を参照して説明 する。図 2 (a)は、 1つのラウンドにおける F関数 120に対する入力および出力を示す 図であり、図 2 (b)は、 F関数 120の構成の詳細を示す図である。 F関数 120は、図 2 ( b)に示すように、非線形変換層と線形変換層を接続したいわゆる SPN型の構成を有 する。
[0031] SPN型の F関数 120は、図 2 (b)に示すように、非線形変換処理を実行する複数の Sボックス(S— box) 121を有する。ラウンド関数部の前段からの mnビットの入力値 X は、鍵スケジュール部から入力されるラウンド鍵 1^と排他的論理和が実行され、その 出力が nビットずつ非線形変換処理を実行する複数 (m個)の Sボックス 121に入力さ れる。各 Sボックスでは、例えば変換テーブルを適用した非線形変換処理が実行され る。
[0032] Sボックス 121からの出力データである mnビットの出力値 Zは、線形変換処理を実 行する線形変換部 122に入力されて、例えばビット位置の入れ替え処理などの線形 変換処理が実行され、 mnビットの出力値 Yを出力する。この出力値 Yが前段からの 入力データと排他的論理和され、次のラウンドの F関数の入力値とされる。
[0033] 図 2に示す F関数 120は、入出力ビット長が m X n (m, n :整数)ビットであり、非線 形変換層は nビットの入出力を持つ非線形変換層としての Sボックス 121は、 m個並 列にならんだ構成を有し、線形変換層としての線形変換部 122は n次の既約多項式 で定義される 2の拡大体 GF (2n)上の元を要素として持つ m次の正方行列に基づく 線形変換処理を実行する。
[0034] 線形変換部 122における線形変換処理に適用する正方行列の例を図 3に示す。
図 3に示す正方行列 125は、 n= 8, m=8の場合の例である。非線形変換部(Sボッ タス 121)力も出力された m個の nビットデータ Z[l] , Z[2] ,…, Z[m]に対してあらか じめ定められた正方行列 125を適用した演算により線形変換が施され、 F関数 (ラウ ンド関数)出力としての、 Y[l] , Υ[2] , ···, Y[m]が決定される。ただし、このとき各 データの行列の要素に対する線形演算はあらかじめ定められた 2の拡大体 GF (2n) 上で行われる。
[0035] これまでの Feistel型喑号では、すべての段の F関数に同じ線形変換層を用いてい るため、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質が存在 した。背景技術の欄において説明したように、暗号解析手法の代表的な手法として、 ある差分を持つ入力データ (平文)とその出力データ(暗号文)を多数解析することに より各ラウンド関数における適用鍵を解析する差分解析 (あるいは差分解読法)が知 られており、従来の DES喑号アルゴリズム等の共通鍵ブロック喑号においては、 F関 数 120部の線形変換部 122において適用する処理 (変換行歹 1J)を、各段のラウンドに おいて等しいものに設定しているため、差分解析が行いやすぐ結果として鍵の解析 の容易性を招いている。
[0036] 差分の伝播時に、同時に複数の差分がキャンセルする例について、図 4を参照して 説明する。なお、本明細書においては、差分を表す場合には Δ (デルタ)記号をつけ て表す。
[0037] 図 4は m = 8, n= 8の 128bitブロック喑号における 3段の同時差分キャンセルの様 子を説明する図である。ただし、図中では 64bitのデータをバイト単位で区切ってベ タトルとして表現し、それぞれの要素を 16進数で表記するものとする。
[0038] 3段構成を持つ F関数での同時差分キャンセルは、例えば以下のデータ状態:!〜 4 の設定メカニズムに基づいて発生する。以下に説明するメカニズムの発生するデータ 状態は、多数の差分入力データを設定することで発生させることができるデータ状態 であり、いわゆる差分解析における鍵 (ラウンド鍵)の解析において発生し得る。
[0039] (状態 1)
iラウンドへの入力差分の左半分は、すべてゼロである入力差分(A Xi— 1 = (00, 00, 00, 00, 00, 00, 00, 00) )であり、右半分の入力差分力 Sただ、ひとつの S— box への入力を除レ、てゼロである入力差分(Δ Χί= (34, 00, 00, 00, 00, 00, 00, 00 ) )であるとする。このデータ状態は、多数の差分入力データを設定することで、 iラウ ンドにおいて、このようなデータ状態を得ることができるということである。
[0040] なお、 Δ Χΐ= (34, 00, 00, 00, 00, 00, 00, 00)の 8つの各要素 ίま、 F関数中に 構成される m個(m= 8)の Sボックス各々に対する入力差分に対応する。差分(34) が第 1Sボックス(図 4中の(S1) )に入力され、(00)が、第 2〜8Sボックスに対する入 力差分である。
[0041] なおゼロ(00)の入力差分を持つ Sボックスの出力差分はゼロ(00)であり、差分デ ータに関する限り、ゼロ(00)の入力差分を持つ Sボックスは、何の作用も行なってい ないものであり、アクティブでないすなわち非アクティブ Sボックスと呼ばれる。一方、 非ゼロの入力差分(図 4の例では差分: 34)を持つ Sボックスは、非ゼロの入力差分に 対応した非線形変換結果を出力差分として発生させるので、アクティブ Sボックス (Ac tive S— box)と呼ばれる。 [0042] 図 4の例では、非ゼロの入力差分(34)を入力する 1つのアクティブ Sボックス(S1) の出力差分(b7)を発生させており、その他の非アクティブ Sボックス S2〜S8はゼロ の入力差分 (00)に基づいて出力差分 (00)を発生させ、線形変換部の差分入力とし ている。
[0043] (状態 2)
iラウンドへの非ゼロの入力差分(図 4の例では差分: 34)を持つ Sボックス(以下、ァ クティブ Sボックス (Active S-box)と呼ぶ)からの出力差分は線形変換層で拡散さ れたのち F関数から出力(出力値 = ΔΥί)され、そのまま次のラウンドへの入力差分 ΔΧί+lとなる。
[0044] 図 4の例における線形変換は、各ラウンドの F関数において共通する例えば図 5に 示すある特定の正方行列 125による線形変換が実行され iラウンドの F関数出力差分 としての ΔΥί=(98, c4, b4, d3, ac, 72, Of, 32)を出力する。図 5に示す泉形変 換構成から理解されるように、出力差分 AYi=(98, c4, b4, d3, ac, 72, Of, 32) は、 1つのアクティブ Sボックス(SI)力もの出力要素 Z[l]=b7にのみ依存した値とし て決定される。
[0045] この iラウンドの F関数出力差分としての ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32) は、図 4に示す排他的論理和部 131において、すべてゼロである入力差分(Δ¾— 1 = (00, 00, 00, 00, 00, 00, 00, 00)とお他的論理禾ロ(XOR)演算力 S実行され、演 算結果が、次のラウンド (i+1)への入力差分 ΔΧί+lとなる。
[0046] iラウンドの F関数出力差分としての ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)と、 すべてゼロである入力差分 AXi— 1=(00, 00, 00, 00, 00, 00, 00, 00)との排 他的論理和 (X〇R)結果は、 ΔΥίであるので、次のラウンド (i+1)への入力差分 ΔΧ ϊ+1= ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)となる。
[0047] (状態 3)
i+1ラウンドの F関数からの出力差分 AYi+l力 iラウンドでの Active S_boxの 位置にのみ非ゼロ値をもつ。このデータ状態は、多数の差分入力データを設定する ことで、このようなデータ状態を得ることができるとレ、うことである。
[0048] すなわち、 AYi+l=(ad, 00, 00, 00, 00, 00, 00, 00)であり、 iラウンドと同様 、非ゼロの差分値(図 4の例では差分: 34)を持つ S— boxの位置(第 ISボックス(SI ) )にのみ非ゼロ値をもつ。なお、明らかに ad≠00である。
[0049] (状態 4)
i+ 2ラウンドのアクティブ Sボックス(Active S -box) (SI)の出力差分が iラウンド でのアクティブ Sボックス (Active S -box) (SI)の出力差分と一致した場合、すな わち、図 4に示すように i+ 2ラウンドのアクティブ Sボックス((S1)の出力差分が b7と なり、 iラウンドでのアクティブ Sボックス(S1)の出力差分 (b7)と一致する。このデータ 状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることが できるということである。
[0050] このデータ状態が発生すると、 i+ 2ラウンドの F関数の出力差分 Δ Υί + 2= (98, c 4, b4, d3, ac, 72, Of, 32)力 2つ前のラウンドである iラウンドの F関数の出力差 分 Δ Υί= (98, c4, b4, d3, ac, 72, Of, 32)と一致することになる。
[0051] この結果、排他的論理和部 133では、
Δ Χί+ 1 = Δ Υΐ= (98, c4, b4, d3, ac, 72, Of, 32)と、
Δ Υΐ+ 2= (98, c4, b4, d3, ac, 72, Of, 32)と、
の同一の値同士の排他的論理和演算が実行されることになり、排他的論理和演算結 果としてオール 0の値を出力する。
[0052] その結果、次の段 (ラウンド i+ 3)への出力差分の前段 (i + 2ラウンド)からの左の入 力差分 Δ Χί + 3= (00, 00, 00, 00, 00, 00, 00, 00)となる。
[0053] このラウンド i+ 3への左入力 Δ Χί + 3= (00, 00, 00, 00, 00, 00, 00, 00)は、 ラウンド iへの左人力 Δ Χί— 1 = (00, 00, 00, 00, 00, 00, 00, 00)と同様才ーノレ ゼロであり、ラウンド i + 3以降のラウンドにおいても、ラウンド i〜i+ 2と同様の処理が 繰り返される可能性がある。
[0054] この結果、ラウンド数の伸びに対してアクティブ Sボックスの数が増大せず、差分攻 撃に対する強度がそれほど伸びないという問題を発生させる。
[0055] 共通鍵ブロック暗号において、差分攻撃に対する強度指標のひとつとして、暗号化 関数全体でのアクティブ Sボックスの最小数が知られてレ、る。アクティブ Sボックス数の 最小数が大きいほど差分攻撃に対する耐性が高いと判断される。 [0056] 前述したように、差分解析 (差分攻撃)においては、ある差分を持つ入力データ(平 文)とその出力データ(暗号文)を多数設定してこの対応を解析することにより各ラウ ンド関数における適用鍵を解析する手法であり、この差分解析において、アクティブ Sボックスの数を少なくできれば、解析が容易となり、解析プロセス数を削減できる。
[0057] 上述の図 4を参照した例では、第 1の Sボックス(S1)のみがアクティブ Sボックスであ るパターンの発生状態を提示した力 その他の Sボックス(S2〜S8)についても、差 分解析の入力データの設定によって、各 Sボックスのみをアクティブ Sボックスとした 設定が可能であり、このような差分解析プロセスを実行することにより、各 Sボックスの 非線形変換処理の解析、さらに F関数に対して入力されるラウンド鍵の解析が可能と なる。
[0058] このような差分解析に対する耐性を向上させるためには、アクティブ Sボックスの数 が常に多い状態を維持すること、すなわち、アクティブ Sボックスの最小数が多いこと が必要である。
[0059] 図 4を参照して説明した例において、右から左へ入力を行なう F関数、すなわち、第 iラウンドと第 i + 2ラウンドのみをアクティブ Sボックス算出処理対象ラウンドとしてみた 場合、アクティブ Sボックス数はわず力 2であり、左から右へ入力を行なう F関数、すな わち、第 i+ 1ラウンドではアクティブ Sボックス数が 8であるものの、同時差分キャンセ ルにより第 i + 3ラウンドでのアクティブ Sボックス数が 0となってしまうため、差分解析 による各 Sボックスの非線形変換処理の解析処理が容易となる。
[0060] 図 4に示す共通鍵ブロック暗号アルゴリズムは、各ラウンドにおける線形変換部にお レ、て適用する線形変換行列が等しいものであり、この構成に起因して、特に右から左 へ入力を行う F関数におけるわずか 2つのアクティブ Sボックスにより同時差分キャン セルの発生可能性を引き起こしている。従って、ラウンド数の伸びに対してアクティブ Sボックスの最小数が十分に増大せず、差分攻撃に対する強度がそれほど伸びない という問題がある。
[0061] 次に、同様に、同じ線形変換行列をすベての段(ラウンド)の F関数に用いる構成に おいて、 5ラウンドにまたがる同時差分キャンセルの発生メカニズムについて、図 6を 参照して説明する。 [0062] 図 6は m = 8, n= 8の 128bitブロック暗号における 5段の同時差分キャンセルの様 子を説明する図である。ただし、図中では 64bitのデータをバイト単位で区切ってベ タトルとして表現し、それぞれの要素を 16進数で表記するものとする。
[0063] 5段構成を持つ F関数での同時差分キャンセルは、例えば以下のデータ状態:!〜 7 の設定メカニズムに基づいて発生する。以下に説明するメカニズムの発生するデータ 状態は、多数の差分入力データを設定することで発生させることができるデータ状態 であり、いわゆる差分解析における鍵 (ラウンド鍵)の解析において発生し得る。
[0064] (状態 1)
iラウンドへの入力差分の左半分は、すべてゼロでぁる入カ差分 》_ 1 = (00, 00, 00, 00, 00, 00, 00, 00) )であり、右半分の入力差分力 Sただ、ひとつの S _box への入力を除レ、てゼロである入力差分(Δ Χί= (34, 00, 00, 00, 00, 00, 00, 00 ) )であるとする。このデータ状態は、多数の差分入力データを設定することで、 iラウ ンドにおいて、このようなデータ状態を得ることができるということである。
[0065] なお、 Δ Χΐ= (34, 00, 00, 00, 00, 00, 00, 00)の 8つの各要素 ίま、 F関数中に 構成される m個(m= 8)の Sボックス各々に対する入力差分に対応する。 (34)が第 1 Sボックス(図 6中の(S1) )に入力され、(00)が、第 2〜8Sボックスに対する入力差分 である。
[0066] なお前述したように、ゼロ(00)の入力差分を持つ Sボックスの出力差分はゼロ(00) であり、差分データに関する限り、ゼロ(00)の入力差分を持つ Sボックスは、何の作 用も行なってレ、なレ、ものであり、アクティブでなレ、すなわち非アクティブ Sボックスと呼 ばれる。一方、非ゼロの入力差分(図 6の例では差分: 34)を持つ Sボックス(S1)の みが、非ゼロの入力差分に対応した非線形変換結果を出力差分として発生させるの で、アクティブ Sボックス(Active S_box)である。
[0067] 図 6の例では、非ゼロの入力差分(34)を入力する 1つのアクティブ Sボックス(S1) の出力差分(b7)を発生させており、その他の非アクティブ Sボックス S2〜S8はゼロ の入力差分 (00)に基づいて出力差分 (00)を発生させ、線形変換部の差分入力とし ている。
[0068] (状態 2) iラウンドへの非ゼロの入力差分(図 4の例では差分: 34)を持つ Sボックス(以下、ァ クティブ Sボックス (Active S-box)と呼ぶ)からの出力差分は線形変換層で拡散さ れたのち F関数から出力(出力値 = ΔΥί)され、そのまま次のラウンドへの入力差分 ΔΧί+lとなる。
[0069] 図 6の例において、各ラウンドに共通の例えば図 5に示すある特定の正方行列 125 による線形変換が実行され iラウンドの F関数出力差分としての AYi= (98, c4, b4, d3, ac, 72, Of, 32)を出力する。
[0070] iラウンドの F関数出力差分としての ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)は、 図 6に示す排他的論理和部 141において、すべてゼロである入力差分(AXi_l= ( 00, 00, 00, 00, 00, 00, 00, 00)とお他的論理禾ロ(X〇R)演算力 s実行され、演算 結果が、次のラウンド (i+1)への入力差分 ΔΧί+lとなる。
[0071] iラウンドの F関数出力差分としての ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)と、 すべてゼロである入力差分(AXi— 1=(00, 00, 00, 00, 00, 00, 00, 00)との排 他的論理和(XOR)結果は、 ΔΥίであるので、次のラウンド(i+1)への入力差分 ΔΧ ΐ+1= ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)となる。
[0072] (状態 3)
i+1ラウンドの F関数からの出力差分 ΔΥί+1が、 iラウンドでの Active S— boxの 位置にのみ非ゼロ値をもつ。このデータ状態は、多数の差分入力データを設定する ことで、このようなデータ状態を得ることができるとレ、うことである。
[0073] すなわち、 ΔΥΐ+1=(34, 00, 00, 00, 00, 00, 00, 00)であり、 iラウンドと同様 、非ゼロの差分値(図 6の例では差分: 34)を持つ S— boxの位置(第 1Sボックス(S1 ))にのみ非ゼロ値をもつ。
[0074] (状態 4)
i+2ラウンドの F関数 (こ対する入力 fま、 ΔΧί= (34, 00, 00, 00, 00, 00, 00, 00 )と、 AYi+l=(34, 00, 00, 00, 00, 00, 00, 00)との非他的論理禾ロ部 142にお ける排他的論理和結果、すなわち、同一データ同士の排他的論理和であり、オール ゼロの入力、 ΔΧί + 2=(00, 00, 00, 00, 00, 00, 00, 00)となり、その結果、 i + 2 ラウンドの F関数からの出力差分も、オールゼロの出力差分、 ΔΥί + 2=(00, 00, 0 0, 00, 00, 00, 00, 00)となる。
[0075] (状態 5)
i+3ラウンドの F「数に対する人力 ίま、 ΔΧί+1=(98, c4, b4, d3, ac, 72, Of, 32)と、才ーノレゼロの i + 2ラウンドの F関数出力差分 ΔΥί + 2= (00, 00, 00, 00, 0 0, 00, 00, 00)との排他的論理和部 143における排他的論理和結果であり、 i + 3ラ ゥンドのF関数に対する入カΔXi + 3=ΔXi+l=(98, c4, b4, d3, ac, 72, Of, 3 2)となる。
[0076] (状態 6)
i+3ラウンドの F関数出力差分力 S、 ΔΥί + 3=(43, 00, 00, 00, 00, 00, 00, 00 )となり、才ーノレゼロの AXi+2=(00, 00, 00, 00, 00, 00, 00, 00)との非他白勺論 理和部 144における排他的論理和の結果としての AXi + 4= ΔΥί + 3=(43, 00, 00, 00, 00, 00, 00, 00)力 Si+4ラウンドの F関数入力差分となる。
[0077] (状態 7)
i + 4ラウンドのアクティブ Sボックス (Active S— box) (SI)の出力差分が iラウンド でのアクティブ Sボックス(Active S— box) (SI)の出力差分と一致した場合、すな わち、図 6に示すように i + 4ラウンドのアクティブ Sボックス((S1)の出力差分が b7と なり、 iラウンドでのアクティブ Sボックス(S1)の出力差分 (b7)と一致する。このデータ 状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることが できるということである。
[0078] このデータ状態が発生すると、 i+4ラウンドの F関数の出力差分 ΔΥί + 4= (98, c 4, b4, d3, ac, 72, Of, 32)力 2つ前のラウンドである i+ 2ラウンドの排他的論理 禾ロ部 143の出力差分 AXi+3=(98, c4, b4, d3, ac, 72, Of, 32)と一致すること になる。
[0079] この結果、排他的論理和部 145では、
ΔΧί + 3= (98, c4, b4, d3, ac, 72, Of, 32)と、
ΔΥϊ + 4=(98, c4, b4, d3, ac, 72, Of, 32)と、
の同一の値同士の排他的論理和演算が実行されることになり、排他的論理和演算結 果としてオール 0の値を出力する。 [0080] その結果、次の段(ラウンド i+ 5)への入力差分は、 Δ Χί+ 5 = (00, 00, 00, 00, 00, 00, 00, 00)として設定される。
[0081] このラウンド i+ 5への左入力 Δ Χί + 5= (00, 00, 00, 00, 00, 00, 00, 00)は、 ラウンド iへの左人力 A Xi_ l = (00, 00, 00, 00, 00, 00, 00, 00)と同様才ーノレ ゼロであり、ラウンド i + 5以降のラウンドにおいても、ラウンド i〜i + 4と同様の処理が 繰り返される可能性がある。
[0082] この結果、ラウンド数の伸びに対してアクティブ Sボックスの数が増大せず、差分攻 撃に対する強度がそれほど伸びないという問題を発生させる。
[0083] 前述したように、差分解析 (差分攻撃)においては、ある差分を持つ入力データ(平 文)とその出力データ(暗号文)を多数設定してこの対応を解析することにより各ラウ ンド関数における適用鍵を解析する手法であり、この差分解析において、アクティブ Sボックスの数を少なくできれば、解析が容易となり、解析プロセス数を削減できる。
[0084] 上述の図 6を参照した例において、右から左へ入力を行なう F関数、すなわち、第 i ラウンドと第 i+ 2ラウンド、第 i + 4ラウンドのみをアクティブ Sボックス算出処理対象ラ ゥンドとしてみた場合、アクティブ Sボックス数は、第 iラウンド = 1、第 i+ 2ラウンド =0 、第 i+4ラウンド = 1の合計わず力 2であり、左から右へ入力を行なう F関数、すなわ ち第 i+ 1ラウンドおよび第 i + 3ラウンドではアクティブ Sボックス数が 8であるものの、 同時差分キャンセルにより第 i+ 5ラウンドでのアクティブ Sボックス数が 0となってしま うため、差分解析による各 Sボックスの非線形変換処理の解析、および、 F関数に対 する入力ラウンド鍵の解析処理が比較的、容易となる。
[0085] 図 6を参照した例では、第 1の Sボックス(S1)のみがアクティブ Sボックスであるパタ ーンの発生状態を提示したが、その他の Sボックス(S2〜S8)についても、差分解析 の入力データの設定によって、各 Sボックスのみをアクティブ Sボックスとした設定が可 能であり、このような差分解析プロセスを実行することにより、各 Sボックスの非線形変 換処理の解析、さらに F関数に対して入力されるラウンド鍵の解析が可能となる。
[0086] 図 4および図 6を参照して、 3および 5ラウンドの場合の同時差分キャンセルの発生 例を説明したが、任意のラウンド数に一般化して同時差分キャンセルを定義すると以 下のように定義することができる。図 7を参照して、任意のラウンド数における同時差 分キャンセルの定義について説明する。なお、図 7は、フェイステル(Feistel)構造の 共通鍵ブロック暗号を実行するフェイステル (Feistel)構造の 1つおきのラウンド(i, i + 2, i+4, · · · , i + 2j)を示している。
[0087] 「定義」
フェイステル (Feistel)構造のラウンド iでの入力差分の半分(PLまたは PR)が 0 (図 7ίこおレヽて、 Δ ΧΪ= (00, 00, 00, 00, 00, 00, 00, 00) )であり、そこ (こ i+ 2jラウン ド (j = 0, 1 , 2, ...)の F関数の出力差分が排他的論理和部で演算されていく過程に おいて、あるラウンド i + 2kにおいて、排他的論理和の結果が 0 (図 7において、 Δ Χί + 2j + l = (00, 00, 00, 00, 00, 00, 00, 00) )になった場合を"同時差分キャン セル"と呼ぶ。
[0088] その時、 i, i + 2, i + 4, . ., i+ 2kラウンドの F関数の中に存在するアクティブ Sボッ タス(Active S— box)のことを"同時差分キャンセルを発生させたアクティブ Sボック ス"と呼ぶものとし、ベクトル Aの非ゼロの要素数をハミングウェイト hw (A)と定義する と、同時差分キャンセルを発生させるアクティブ Sボックスの数 aは、以下の式として表 せる。
[数 1]
a = hw(AXi+2J)
[0089] 前述の 3ラウンド、 5ラウンドでの例ではともに同時差分キャンセルを発生させたァク ティブ Sボックス数は 2、すなわち a = 2である。
[0090] 前述したように、共通鍵ブロック暗号における差分攻撃に対する強度指標のひとつ が喑号ィ匕関数全体でのアクティブ sボックスの最小数であり、アクティブ Sボックス数 の最小数が大きいほど差分攻撃に対する耐性が高いと判断される。
[0091] しかし、 DESアルゴリズムのように同じ線形変換行列をすベての段の F関数に用い る構成では、図 4、図 6を参照して説明したように、わずか 2つのアクティブ Sボックス により同時差分キャンセルが発生してしまう可能性があった。そのような性質があるた めラウンド数の伸びに対してアクティブ Sボックスの最小数が十分に増大せず、差分 攻撃に対する強度がそれほど伸びないという問題があった。
[0092] [2.共通鍵ブロック喑号アルゴリズムにおける線形解析処理]
差分解析処理は、上述したように、解析の実行者が一定の差分を持つ入力データ (平文)を容易し、その対応する出力データ(暗号文)を解析することが必要となる。線 形解析処理は、一定の差分を持つ入力データ(平文)を準備する必要はなぐ所定 量以上の入力データ (平文)と対応する出力データ(暗号文)とに基づいて解析を行
5。
[0093] 前述したように、共通鍵ブロック暗号アルゴリズムでは非線形変換部としての Sボッ タスを有し、入力データ(平文)と対応する出力データ(暗号文)との線形関係はない 力 線形解析では、この Sボックスの入出力を線形近似し、多数の入力データ(平文) と対応する出力データ (暗号文)の構成ビット値の線形関係を解析し、候補となる鍵を 絞り込むことによって解析を行う。線形解析においては、特定の差分を持つ入力デ ータを準備することが必要ではなぐ多数の平文と対応暗号文を容易することで、解 祈が可能となる。
[0094] [3.耐性を向上させた暗号処理アルゴリズム構成例]
次に、本発明の出願人が先に提案した暗号処理アルゴリズムについて説明する。 以下で説明する暗号処理アルゴリズムは、本出願と同一出願人による特許出願、特 願 2003— 339634、および特願 2004— 256465(こおレヽて説明してレヽるァノレゴリズ ムであり、上述した線形解析、差分解析等の攻撃に対する耐性を向上させた構成、 すなわち、鍵解析の困難性を高め、安全性を向上させた構成を持つ。
[0095] 以下で説明する喑号処理アルゴリズムの 1つの特徴は、従来の DESアルゴリズムの 如く各ラウンドの F関数に構成される線形変換部に共通の処理 (変換行歹 1J)を適用し た構成とせず、複数の異なる正方 MDS (Maximum Distance Separable)行列 を設定した構成としたことである。具体的には、少なくとも連続する偶数ラウンドおよび 連続する奇数ラウンドの各々において異なる正方 MDS行列を適用した線形変換処 理を実行する構成を持つ。
[0096] この喑号処理アルゴリズムは、正方 MDS (Maximum Distance Separable)行 列の性質を利用し、少ないアクティブ Sボックスに基づく同時差分キャンセルが起こら なレ、、または起こりにくい構造を実現し、アクティブ Sボックスの最小数を増大させ、差 分攻撃に対してより強い共通鍵ブロック暗号処理を実現する。あるいは、既知平文攻 撃として行なわれる線形解析についての困難性も高めた構成を持つ。
[0097] この喑号処理アルゴリズムは、図 1、 2を参照して説明した SPN型の F関数を有する Feistel構造と呼ばれる代表的な共通鍵ブロック暗号の構造、すなわち、非線形変換 部および線形変換部を有する SPN型の F関数の複数ラウンドに渡る単純な繰り返し により、平文を暗号文に変換する、あるいは暗号文を平文変換する構造を適用して いる。
[0098] 例えば、平文の長さを 2mnビット(ただし、 m, nは共に整数)として、 2mnビットの平 文を、 mnビットの 2つのデータ PL (Plain-Left) , PR(Plain-Right)に分割し、これを入 力値として、各ラウンドにおいて、 F関数を実行させるものであり、 F関数は、図 2を参 照して説明したように、 Sボックスからなる非線形変換部と、線形変換部を接続した SP N型を持つ F関数である。
[0099] この暗号処理アルゴリズムにおいては、 F関数中の線形変換部において適用する 線形変換処理のための行列として、複数の異なる正方 MDS (Maximum Distanc e Separable)行列から選択された行列を各ラウンドの F関数の線形変換部にぉレ、 て適用する行列として設定する。具体的には、少なくとも連続する偶数ラウンドおよび 連続する奇数ラウンドの各々において異なる正方 MDS行列を適用する。
[0100] 正方 MDS行列について説明する。正方 MDS行列とは以下の(a), (b)の性質を 満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が 0 でない、すなわち、 det (submatrix)≠0
[0101] 上記(a) , (b)の条件を満足する行列を正方 MDS行列と呼ぶ。
共通鍵ブロック暗号の各ラウンドで実行する F関数に対する入出力ビット長が m X n (m, n:整数)ビットであり、 F関数内に構成される非線形変換部が nビットの入出力を 持つ m個の Sボックスにより構成され、線形変換部が n次の既約多項式で定義される 2の拡大体 GF (2n)上の元を要素として持つ m次の正方行列に基づく線形変換処理 を実行する場合の、正方 MDS行列の一例を図 8に示す。図 8に示す正方 MDS行列 の例は、 n=8, m= 8の正方 MDS行列の例である。
[0102] 上記(a), (b)を満足する正方 MDS行列は、ベクトル Aの非ゼロの要素数をハミン グウェイト hw (A)とし、 Mを m次の正方 MDS行列とし、 xを正方 MDS行列 Mへの入 力ベクトルとした場合、以下の不等式 (式 1)を満たすことになる。
hw (x) +hw (Mx)≥m+ l (式 1)
[0103] 上記式 (式 1)は、正方 MDS行列(M)によって線形変換される入力データ Xの非ゼ 口の要素数 hw (x)と、正方 MDS行列(M)によって線形変換された出力データ Mx の非ゼロの要素数 hw (Mx)の総数が、正方 MDS行列の次数 mより大となるというこ とを意味している。
[0104] なお、正方 MDS行列という名は正方 MDS— code (Maximum Distance Sepa rable Code)の生成行列の標準形の右半分が上記条件を満足していることから名 づけているものである。
[0105] 1つの行列をすベての F関数に組み込むという従来の構成でも線形変換行列に正 方 MDS行列を用いることで、正方 MDS行列でない行列を用いる場合に比べてァク ティブ Sボックス数の最小数を比較的高水準に保持することができるということは知ら れている。
[0106] 本アルゴリズムでは、各ラウンドの F関数には正方 MDS行列の条件を満たす行列 を利用し、さらにラウンドごとに異なる行歹 1Jを設定する方法を提案する。具体的には、 少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々において異なる 正方 MDS行列を適用する。
[0107] 以下に、段数 (ラウンド数)が 2r (rは整数)の Feistel型共通鍵ブロック暗号におい て、差分攻撃に対する耐性をより高めた複数の構成例について説明する。
[0108] なお、以下の説明において、段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗 号処理構成の j段目の F関数における線形変換部で適用する線形変換行列を MLTj として表すものとする。
[0109] 本アルゴリズムの構成では、段数(ラウンド数)が 2rの Feistel型共通鍵ブロック喑号 処理構成における各段の F関数中の線形変換部において適用する線形変換処理の ための行列として、複数の異なる正方 MDS (Maximum Distance Separable) 行列から選択された行歹' Jを各ラウンドの F関数の線形変換部において適用する行列 として設定する。具体的には、少なくとも連続する偶数ラウンドおよび連続する奇数ラ ゥンドの各々におレ、て異なる正方 MDS行列を適用する。
[0110] 具体的には、段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構成に対 応して、 r以下の q個の正方 MDS行列: LI , L2, · · , Lqを生成し、段数(ラウンド数) が 2rの Feistel型共通鍵ブロック暗号処理構成における奇数段目の F関数中の線形 変換部にぉレ、て適用する線形変換処理のための行列として、上位段の F関数から順 に LI , L2, · · , Lq, LI , L2 ' 'として、 q個の正方 MDS行列を繰り返し設定する。さ らに、偶数段の F関数については、下位段の F関数から順に、 LI , L2, · · , Lq, L1 , L2 ' ·として、 q個の正方 MDS行列を繰り返し設定する。
[0111] 本設定を適用した構成例を図 9に示す。図 9は、段数 (ラウンド数)が 2r= 12、すな わち r = 6の Feistel型共通鍵ブロック暗号処理構成とした場合、 q = 3、すなわち、 12 段のラウンド数を持つ Feistel型共通鍵ブロック暗号処理構成において 3種類の異な る正方 MDS行列を配置した構成例として、各ラウンドの F関数部の線形変換部に設 定する正方 MDS行列(LI , L2, L3)を示している。
[0112] 図 9の構成は、 2mnビットの平文を、 mnビットの 2つのデータ PL (Plain- Left), PR( Plain-Right)に分割し、これを入力値として、各ラウンドにおいて、 F関数を実行させる 構成であり、第 1ラウンドの F関数 401およびその他のラウンドの F関数も、すべて図 2 を参照して説明したように、 Sボックスからなる非線形変換部と、線形変換部を接続し た SPN型を持つ F関数である。
[0113] 図 9の設定例は r = 6, q = 3であり、各 F関数内に示す記号 Lnは正方 MDS行歹 1J40 2を示している。すなわち、 LI , L2, L3は、それぞれ異なる 3種類の正方 MDS行列 を示し、各 F関数の線形変部において線形変換処理に適用する正方 MDS行列を示 している。
[0114] 線形変換行列 MLTjの設定処理シーケンスについて、図 10を参照して説明する。
[0115] [ステップ S21]
ラウンド数 2rの半数 rに対して r以下の数 q、すなわち、
q≤rとなる数 qを選択する。ただし、 qは 2以上の整数である。
[ステップ S22]
q個の GF (2n)上の m次正方 MDS行列 Ll, L2, Lqを生成する。 q個の GF (2n )上の m次正方 MDS行列 LI , L2, Lqの生成処理手法についての詳細は、後段 で説明する。
[0116] ステップ S22において、 q個の GF (2n)上の m次正方 MDS行列 Ll, L2, Lqが 生成した後、次に、以下の正方 MDS行列設定処理を実行する。
[ステップ S23]
2i— 1 (1≤i≤r)段目の線形変換行列 MLT にし を設定する。
2i- l (i- lmodq) + 1
[ステップ S 24]
2i (l≤i≤r)段目の線形変換行列に MLT2に MLT を設定する。
i 2r_2i+ l
[0117] 例えば、図 9に示す構成例、すなわち、 12段 (r=6)であり q = 3とした場合は、
MLT1 =L1, MLT2 = L3
MLT3 = L2, MLT4 = L2
MLT5 = L3, MLT6 = L1
MLT7 = L1, MLT8 = L3
MLT9 = L2, MLT10 = L2
ML丁 11 =L3, MLT12 = L1
の設定となる。
[0118] このように、このアルゴリズムを適用した暗号処理装置においては、段数 (ラウンド数 )が 2rの Feistel型共通鍵ブロック喑号処理構成に対応して、 r以下の q個の正方 MD S行列: LI , L2, · · , Lqを生成し、奇数段目については上位段の F関数力 順に L1 , L2, · · , Lq, LI, L2 ' .として、 q個の正方 MDS行列を繰り返し設定し、偶数段の F 関数については、下位段の F関数から順に、 LI, L2, · · , Lq, LI , L2 "として、 q個 の正方 MDS行列を繰り返し設定する構成としてレ、る。
[0119] 次に、図 10の処理フローにおけるステップ S22の q個の GF (2n)上の m次正方 MD S行列 LI , L2, Lqの生成処理および F関数への設定構成の詳細について説明 する。なお、説明は以下の項目に沿って行なう。
(3— a)差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— b)線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— c)差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の 生成および F関数への設定例
[0120] [ (3— a)差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例]
まず、差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数 への設定例として、 3つの処理例 al, a2, a3について説明する。
[0121] (処理例 al)
差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 1の例について説明する。まず、図 11に示すフローチャートを参照して正 方 MDS行列の生成処理にっレ、て説明する。
[0122] [ステップ S101]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、 GF (2n)上で、 q個の m次正方 MDS行列 LI , L2, Lqをランダムに生成する。な お、図 11に示すフローでは、 MDSの個数 q = 6,拡大次数: n = 8,行列のサイズ: m = 8の場合の処理例として示してある。
[0123] [ステップ S102]
q個の m次正方 MDS行列 Ll, L2, Lqに含まれる qm個の列の任意の m個を取 り出したときに、線形独立になっているかどうかをチェックする。チェックに通過したら ステップ S103に進む、そうでない場合はステップ S101にもどる。
[ステップ S 103]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック喑号に適用する正方 MDS行列として出力する。
[0124] 以上のプロセスによって、 q個の m次正方 MDS行列 LI , L2, Lqが生成される 。なお、 q≤rである。
[0125] このようにして生成した q個の m次正方 MDS行列 Ll, L2, Lqを、先に、図 10を 参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、段数 (ラウンド 数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部 の線形変換処理に適用する行列として設定する。すなわち、奇数段目については上 位段から順に Ll, L2, · · , Lq, LI, L2 ' ·として q個の正方 MDS行列を繰り返し設 定し、偶数段の F関数については、下位段の F関数から順に、 LI , L2, · ·, Lq, L1 , L2 ' ·として、 q個の正方 MDS行列を繰り返し設定する。
[0126] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0127] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる線 形変換行列の任意の m個の列ベクトルが独立であること、
(c)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の任 意の m個の列ベクトルが独立であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つ Feistel型共通鍵ブ ロック喑号処理構成において、連続する 2q_ lラウンドにおいて、 m個以下のァクテ イブ Sボックスの寄与による同時差分キャンセルは発生しないことが保証される。よつ て暗号化関数全体のアクティブ Sボックス数の最小値が増大する。
[0128] このように、本処理例によって、共通鍵ブロック暗号における差分攻撃に対する強 度指標のひとつである暗号化関数全体でのアクティブ Sボックスの最小数を大きくす ることが可能となり、結果として、差分解析 (差分攻撃)を行なった場合のアクティブ S ボックスの数が増大し、解析の困難性が高まることになる。従って鍵の解析の困難な 安全性の高レ、暗号処理が実現される。
[0129] (処理例 a2)
差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 2の例について説明する。図 12のフローチャートを参照して正方 MDS行 列の生成処理について説明する。
[0130] [ステップ S 201]
入力:必要な MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 LI , L2, Lqをランダムに生成する。な お、図 12に示すフローでは、 MDSの個数 q = 6,拡大次数: n = 8,行列のサイズ: m = 8の場合の処理例として示してある。
[0131] [ステップ S202]
q個の m次正方 MDS行列 LI, L2, Lqに含まれる qm個の列の任意の m個を取 り出したときに、正方 MDS行列になっているかどうかをチェックする。チェックに通過 したらステップ S203に進む、そうでない場合はステップ S201にもどる。
なお、正方 MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)力 SO でない、すなわち、 det (submatrix)≠0
[ステップ S203]
q個の m次正方 MDS行列 Ll, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック喑号に適用する正方 MDS行列として出力する。
[0132] 以上のプロセスによって、 q個の m次正方 MDS行列 LI , L2, Lqが生成される 。なお、 q≤rである。
[0133] 前述の処理例 alにおける正方 MDS行列生成処理においては、図 11の処理シー ケンスにおいて説明したように、ステップ S102において、 q個の m次正方 MDS行列 LI, L2,…, Lqに含まれる qm個の列の任意の m個を取り出したときの線形独立性を 判定したが、この処理例 a2における正方 MDS行列生成処理においては、 q個の m 次正方 MDS行列 LI, L2, Lqに含まれる qm個の列の任意の m個を取り出したと き正方 MDS行列になっているかどうかをチェックする。すなわち、より厳しいチェック が実行されることになる。
[0134] この図 12に示す処理シーケンスに従った正方 MDS行列生成処理によって生成さ れた q個の m次正方 MDS行列 LI , L2, Lqが、先に説明した処理例 alと同様、 先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、 段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部 の線形変換部の線形変換処理に適用する行列として設定される。すなわち、奇数段 目については上位段力 順に LI , L2, · ·, Lq, LI , L2 ' ·として q個の正方 MDS行 列を繰り返し設定し、偶数段の F関数については、下位段の F関数から順に、 LI , L 2, · · , Lq, LI , L2 "として、 q個の正方 MDS行列を繰り返し設定する。
[0135] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0136] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる線 形変換行列の任意の m個の列ベクトルが正方 MDS行列であること、
(c)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の任 意の m個の列ベクトルが正方 MDS行列であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つ Feistel型共通鍵ブ ロック喑号処理構成において、連続する 2q_ lラウンドにおいて、 m個以下のァクテ イブ Sボックスの寄与による同時差分キャンセルは発生しないことが保証される。 さらに、
(d)正方 MDSの性質から、 a個(a≤m)のアクティブ Sボックスの寄与によって得ら れる差分値における非ゼロの要素数は m+ l _ a個以上になることが保証される。よ つて喑号ィ匕関数全体のアクティブ Sボックス数の最小値が増大する。 [0137] このように、本処理例によって、共通鍵ブロック暗号における差分攻撃に対する強 度指標のひとつである暗号化関数全体でのアクティブ Sボックスの最小数を大きくす ることが可能となり、結果として、差分解析 (差分攻撃)を行なった場合のアクティブ S ボックスの数が増大し、解析の困難性が高まることになる。従って鍵の解析の困難な 安全性の高レ、暗号処理が実現される。
[0138] (処理例 a3)
差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 3の例について説明する。図 13のフローチャートを参照して正方 MDS行 列の生成処理について説明する。
[0139] [ステップ S301]
入力:必要な MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 1個の qm次正方 MDS行列 Mを生成する。なお、図 13に示すフロー では、 MDSの個数 q = 6,拡大次数: n = 8,行列のサイズ: m = 8の場合の処理例と して示してある。
[0140] [ステップ S302]
1個の qm次正方 MDS行列 M力 m本の行を任意に選択抽出し、 m行, qm列の行 列 M'を構成する。
[ステップ S303]
m行, qm列の行列 M'に含まれる qm本の列ベクトルを重複することなく m本の列べ タトルからなる q個のグノレープに任意に分割し、それぞれのグノレープに含まれる列べ タトルから m次の正方行列 LI , L2, ···, Lqを、ラウンド数 2rの Feistel型共通鍵ブロッ ク喑号に適用する正方 MDS行列として出力する。
[0141] 以上のプロセスによって、 q個の m次正方 MDS行列 LI , L2, Lqが生成される 。なお、 q≤rである。
[0142] 処理例 a3における正方 MDS行列生成手法 3について、図 14を参照して、より具体 的に説明する。
[ステップ S301]
GF (2n)上で、 1個の qm次正方 MDS行列 Mを生成する。図 14に示すように、 qm X qmの正方 MDS行列 Mを生成する。なお、このステップ S301において生成する 行列 Mの次数は qm次より大きレ、ものでもよい。
[ステップ S302]
図 14に示すように、 qm次正方 MDS行列 Mから m本の行を任意に選択抽出し、 m 行, qm列の行列 M'を構成する。なお、図に示す例では、連続する m本の行を選択 抽出した例として示してある力 m次正方 MDS行列 Mを構成する任意の離間した行 を m本選択抽出して、 m行, qm列の行列 M'を構成してもよい。
[ステップ S303]
m行, qm列の行列 M'に含まれる qm本の列ベクトルを重複することなく m本の列べ タトルからなる X個のグノレープに任意に分割し、それぞれのグノレープに含まれる列べ タトルから m次の正方行歹 1JL1 , L2, Lxを生成する。
[0143] 図 13、図 14を参照して説明した処理シーケンスに従った正方 MDS行列生成処理 によって生成された q個の m次正方 MDS行歹 IJL1 , L2, Lq力 先に説明した処 理例 al、 a2と同様、先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S24 ]の処理に従って、段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構成 の各段の F関数部の線形変換部の線形変換処理に適用する行列として設定される。 すなわち、奇数段目については上位段から順に LI , L2, · · , Lq, LI , L2 "として q 個の正方 MDS行列を繰り返し設定し、偶数段の F関数については、下位段の F関数 力 順に、 LI , L2, · · , Lq, LI, L2 ' 'として、 q個の正方 MDS行列を繰り返し設定 する。
[0144] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0145] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる線 形変換行列の任意の m個の列ベクトルが独立であること、
(c)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の任 意の m個の列ベクトルが独立であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つ Feistel型共通鍵ブ ロック暗号処理構成において、連続する 2q—lラウンドにおいて、 m個以下のァクテ イブ Sボックスの寄与による同時差分キャンセルは発生しないことが保証される。
さらに、
(d)正方 MDSの性質から、 a個(a≤m)のアクティブ Sボックスの寄与によって得ら れる差分値における非ゼロの要素数は m+ l _ a個以上になることが保証される。よ つて喑号ィ匕関数全体のアクティブ Sボックス数の最小値が増大する。
[0146] なお、処理例 a3が特に効果を発揮するのは、 m, r,が大きくなり、前述した処理例 a 1 , a2の行列決定処理方式に力かる時間的コストが莫大となり、現実的な時間内に行 歹 IJを決定することが困難である場合である。そのような場合でも本処理例 a3の正方 M DS行列生成手法ならば比較的短時間での行列生成処理が可能となる。
[0147] これは、処理例 a3においては、大きな m, rに対しても現実的な時間で十分に処理 可能な方式、例えばリードソロモン (Reed— Solomon)符号の生成行列の生成法を 適用することが可能となるからである。
[0148] この処理例 a3においても、上述したように、共通鍵ブロック暗号における差分攻撃 に対する強度指標のひとつである喑号ィ匕関数全体でのアクティブ Sボックスの最小数 を大きくすることが可能となり、結果として、差分解析 (差分攻撃)を行なった場合のァ クティブ Sボックスの数が増大し、解析の困難性が高まることになる。従って鍵の解析 の困難な安全性の高い暗号処理が実現される。
[0149] [ (3— b)線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例]
次に、線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数 への設定例として、 2つの処理例 bl , b2について説明する。
[0150] (処理例 bl)
線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 1の例について、説明する。図 15に示すフローチャートを参照して正方 MD S行列の生成処理について説明する。 [0151] [ステップ S401]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 Ml, M2, Mqをランダムに生成する 。なお、図 14に示すフローでは、正方 MDSの個数 q = 6,拡大次数: n = 8,行列の サイズ: m = 8の場合の処理例として示してある。
[0152] [ステップ S402]
q個の m次正方 MDS行列 Ml , M2, Mqの逆行列 Ml— M2— Mq 1を 算出し、隣り合う 2つの逆行列に含まれる 2mの行ベクトルから任意の m本の行べタト ルを取り出したときに、線形独立になっているかどうかをチェックする。図 15中、 は 、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップ S403に 進む、そうでない場合はステップ S401にもどる。ただし、 Ml 1と Mq_ 1は、隣り合う行 歹 する。
[ステップ S403]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。
[0153] 以上のプロセスによって、 q個の m次正方 MDS行列 LI , L2, ..·, Lqが生成される 。なお、 q≤rである。
[0154] このようにして生成した q個の m次正方 MDS行列 LI, L2, Lqを、先に、図 10を 参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、段数 (ラウンド 数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部 の線形変換処理に適用する行列として設定する。すなわち、奇数段目については上 位段から順に Ll, L2, · · , Lq, LI, L2 ' ·として q個の正方 MDS行列を繰り返し設 定し、偶数段の F関数については、下位段の F関数から順に、 LI , L2, · ·, Lq, L1 , L2 ' ·として、 q個の正方 MDS行列を繰り返し設定する。
[0155] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0156] 本構成により、 (a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列べクトノレ は独立であること、
が保証される。このことにより、線形攻撃における線形近似による解析困難性を高 めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い喑 号処理が実現される。
[0157] (処理例 b2)
線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 2の例について、説明する。図 16に示すフローチャートを参照して正方 MD S行列の生成処理について説明する。
[0158] [ステップ S501]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 Ml, M2, Mqをランダムに生成する 。なお、図 16に示すフローでは、正方 MDSの個数 q = 6,拡大次数: n = 8,行列の サイズ: m= 8の場合の処理例として示してある。
[0159] [ステップ S502]
q個の m次正方 MDS行列 Ml , M2, Mqの逆行列 Ml—1, M2"1, Mq_ 1を 算出し、隣り合う 2つの逆行列に含まれる 2mの行ベクトルから任意の m本の行べタト ルを取り出したときに、正方 MDS行列になっているかどうかをチェックする。図 16中、 は、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップ S5 03に進む、そうでない場合はステップ S401にもどる。ただし、 Ml— 1と Mq— 1は、隣り 合う行列とする。
なお、正方 MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が 0 でない、すなわち、 det (submatrix)≠0
[0160] [ステップ S503] q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。
[0161] 以上のプロセスによって、 q個の m次正方 MDS行列 LI , L2, ..·, Lqが生成される 。なお、 q≤rである。
[0162] 前述の処理例 blにおける正方 MDS行列生成処理においては、図 15の処理シー ケンスにおいて説明したように、ステップ S402において、 q個の m次正方 MDS行列 の Ml, M2, Mqの逆行列 Ml— M2— Mq— 1に含まれる qm個の列の任 意の m個を取り出したときの線形独立性を判定した力 この処理例 b2における正方 MDS行列生成処理においては、 q個の m次正方 MDS行列の Ml , M2, Mqの 逆行列 Ml— 1, M2— Mq—1に含まれる qm個の列の任意の m個を取り出したとき 正方 MDS行列になっているかどうかをチェックする。すなわち、より厳しいチェックが 実行されることになる。
[0163] この図 16に示す処理シーケンスに従った正方 MDS行列生成処理によって生成さ れた q個の m次正方 MDS行列 LI , L2, Lqが、先に説明した処理例 blと同様、 先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、 段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部 の線形変換部の線形変換処理に適用する行列として設定される。すなわち、奇数段 目については上位段力 順に LI , L2, · · , Lq, LI , L2 ' ·として q個の正方 MDS行 列を繰り返し設定し、偶数段の F関数については、下位段の F関数から順に、 LI , L 2, · · , Lq, LI , L2 ' 'として、 q個の正方 MDS行列を繰り返し設定する。
[0164] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0165] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列べクトノレ が正方 MDS行列となること、 が保証される。このことにより、線形攻撃における線形近似による解析困難性を高 めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い喑 号処理が実現される。
[0166] [ (3-c)差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の 生成および F関数への設定例]
次に、差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の生 成および F関数への設定例について説明する。
[0167] 差分攻撃に対する耐性を持つ喑号処理アルゴリズムは、先に、図 10〜図 13を参照 して説明した処理、すなわち、 F関数の線形処理部における線形変換に適用する正 方 MDS行列を前述の処理例 al (図 11)〜a3 (図 13)のいずれかの処理を適用して 設定することで実現される。また、線形攻撃に対する耐性を持つ暗号処理アルゴリズ ムは、先に、図 10、および図 14、図 15を参照して説明した処理、すなわち、 F関数の 線形処理部における線形変換に適用する正方 MDS行列を前述の処理例 bl (図 14 )、 b2 (図 15)のレ、ずれかの処理を適用して設定することで実現される。
[0168] 差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列は、
処理例 al (図 11)〜a3 (図 13)のいずれかの処理と、
処理例 bl (図 14)、 b2 (図 15)のいずれかの処理とを、
併せて実行して生成した正方 MDS行列を、図 10において説明した [ステップ S23 ]、 [ステップ S24]の処理に従って、段数(ラウンド数)が 2rの Feistel型共通鍵ブロッ ク暗号処理構成の各段の F関数部の線形変換部の線形変換処理に適用する行列と して設定することで実現される。
[0169] すなわち、
処理例 alと処理例 bl、
処理例 alと処理例 b2、
処理例 a2と処理例 bl、
処理例 a2と処理例 b2、
処理例 a3と処理例 bl、
処理例 a3と処理例 b2、 のいずれかの組み合わせによって、 q個の正方 MDS行列を生成し、 2rの Feistel 型共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部の線形変換処理に 適用する行列として設定する。奇数段目については上位段から順に Ll, L2, · ·, Lq , LI , L2 ' 'として q個の正方 MDS行列を繰り返し設定し、偶数段の F関数について は、下位段の F関数から順に、 LI , L2, · ·, Lq, LI , L2 ' ·として、 q個の正方 MDS 行列を繰り返し設定する。この設定により、差分攻撃および線形攻撃に対する耐性 向上を実現した暗号処理が可能となる。
[0170] 図 17を参照して、差分攻撃および線形攻撃に対する耐性向上を実現した喑号処 理を実現するための正方 MDS行列の生成処理の一例について説明する。この処理 は、前述した処理例 a2と、処理例 b2との組み合わせである。
[0171] [ステップ S601]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 Ml, M2, Mqをランダムに生成する 。なお、図 17に示すフローでは、正方 MDSの個数 q = 6,拡大次数: n = 8,行列の サイズ: m = 8の場合の処理例として示してある。
[0172] [ステップ S602]
q個の m次正方 MDS行列 Ml , M2, Mqに含まれる qm個の列の任意の m個を 取り出したときに、正方 MDS行列になっているかどうかをチェックする。チェックに通 過したらステップ S603に進む、そうでない場合はステップ S601にもどる。
なお、正方 MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が 0 でない、すなわち、 det (submatrix)≠0
[0173] [ステップ S603]
q個の m次正方 MDS行列 Ml , M2, Mqの逆行列 Ml— M2— Mq 1を 算出し、隣り合う 2つの逆行列に含まれる 2mの行ベクトルから任意の m本の行べタト ルを取り出したときに、正方 MDS行列になっているかどうかをチェックする。図 17中、 は、行ベクトルの転置ベクトルを示すものである。チヱックに通過したらステップ S6 04に進む、そうでない場合はステップ S601にもどる。ただし、 Ml—1と Mq_1は、隣り 合う行列とする。
[0174] [ステップ S604]
q個の m次正方 MDS行列 Ll, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック喑号に適用する正方 MDS行列として出力する。
[0175] 以上のプロセスによって、 q個の m次正方 MDS行列 LI , L2, Lqが生成される
。なお、 q≤rである。
[0176] この図 17に示す処理シーケンスに従った正方 MDS行列生成処理によって生成さ れた q個の m次正方 MDS行列 LI , L2, Lqが、先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、段数(ラウンド数)が 2rの Feistel型 共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部の線形変換処理に適 用する行列として設定される。すなわち、奇数段目については上位段から順に Ll, L 2, · · , Lq, LI , L2 ' 'として q個の正方 MDS行列を繰り返し設定し、偶数段の F関数 については、下位段の F関数から順に、 LI, L2, · · , Lq, LI , L2 "として、 q個の正 方 MDS行列を繰り返し設定する。
[0177] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0178] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号化関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる線 形変換行列の任意の m個の列ベクトルが正方 MDS行列であること、
(c)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の任 意の m個の列ベクトルが正方 MDS行列であること、
これら(a)〜(c)が保証されるため、複数段のラウンド数を持つ Feistel型共通鍵ブ ロック喑号処理構成において、連続する 2q_ lラウンドにおいて、 m個以下のァクテ イブ Sボックスの寄与による同時差分キャンセルは発生しないことが保証される。 さらに、 (d)正方 MDSの性質から、 a個(a≤m)のアクティブ Sボックスの寄与によって得ら れる差分値における非ゼロの要素数は m+ 1— a個以上になることが保証される。よ つて暗号ィヒ関数全体のアクティブ Sボックス数の最小値が増大する。
さらに、
(e)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列べクトノレ が正方 MDS行列となることが保証される。このことにより、線形攻撃における線形近 似による解析困難性を高めることが可能となり、解析の困難性、すなわち鍵の解析の 困難な安全性の高レ、暗号処理が実現される。
[0179] このように、本処理例によって、差分攻撃および線形攻撃の双方の解析の困難性 が向上し、鍵の解析の困難な安全性の高い暗号処理が実現される。なお、図 17に 示した例は、前述したように、先に説明した処理例 a2と処理例 b2の組み合わせによ る正方 MDS行列の生成例である力 その他、処理例 alと処理例 bl、処理例 alと処 理例 b2、処理例 a2と処理例 bl、処理例 a3と処理例 bl、処理例 a3と処理例 b2とを組 み合わせて q個の正方 MDS行列の生成を行レ、、段数(ラウンド数)が 2rの Feistel型 共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部の線形変換処理に適 用する行列として、奇数段目については上位段から順に LI , L2, · · , Lq, LI , L2 - •として q個の正方 MDS行列を繰り返し設定し、偶数段の F関数については、下位段 の F関数から順に、 LI, L2, · · , Lq, LI, L2 "として、 q個の正方 MDS行列を繰り 返し設定することによつても、差分攻撃および線形攻撃の双方の解析の困難性が高 ぐ鍵の解析の困難な安全性の高い暗号処理が実現可能である。
[0180] これまでの説明では、分かりやすさを優先して線形変換行列を GF (2n)上で定義さ れる m X mの行列として、 mnビットから mnビットへのデータ変換演算としてきたが、 差分解析および線形解析に対する同様な効果が GF (2)上で定義される mn X mnの 行列を用いた場合でも有効である。実際、任意の GF (2n)上の行列は同じ変換を表 す GF (2)上の行列に一対一で対応させることができる。よって GF (2)上の行列はよ り一般的な表現を表しているといえる。 GF (2)上では行と列の本数が mn本ずつと、 GF (2n)の場合と比べて n倍となる。このため GF (2n)上の行列の 1行目は、 GF (2) 上の行列の 1から n行目に対応し、 1列目は 1力 n歹 IJ目に対応している。つまり i行目 は (卜 1) + 1行目から(i— l) +n行目に対応し、 i列目は (卜 1) + 1列目から (卜 1) +n列目に対応している。よって、 GF (2n)上の行や列を取り出してくる操作には、 GF (2)上で定義される行歹 1Jを用いる場合は、対応する n行分もしくは n列分を取り出すと レ、う操作を対応させればよレ、。 GF (2n)上の m本の行や列を取り出す操作は、 GF (2 )上では n本の行や列を m回取り出すことになり、結果として mn X mnの行列を得るこ とができる。以上の対応付けにより、 GF (2)上で定義される行列に容易に拡張するこ とができる。
[0181] [4.本発明に係る喑号処理アルゴリズム]
次に、本発明に係る暗号処理アルゴリズムにつレ、て説明する。
上述の項目 [3.耐性を向上させた暗号処理アルゴリズム構成例]において説明し たように、非線形変換部および線形変換部を有する SPN型の F関数の複数ラウンド 繰り返し構成において、特定の条件を満足する正方 MDS (Maximum Distance Separable)行列を適用した線形変換処理を行なう構成とすることで、暗号解析処理 、攻撃処理として知られる線形解析、差分解析に対する耐性を向上させることが可能 であることを説明した。
[0182] しかし、上述した処理構成では、利用できる行列が限定されてしまうという問題があ る。すなわち、前述した処理例 al〜a3において説明した差分攻撃に対する耐性向 上を図るための各 F関数に設定する線形変換行列の条件としては、
(A1 )各 F関数の線形変換行列は正方 MDSであること、
(A2)喑号ィ匕関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる 線形変換行列の任意の m個の列ベクトルが独立または正方 MDS行列であること、
(A3)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の 任意の m個の列ベクトルが独立または正方 MDS行列であること、
これらの条件を満足させることが必要であった。
[0183] また、前述した処理例 bl〜b2において説明した線形攻撃に対する耐性向上を図 るための各 F関数の線形変換行列の条件としては、
(B1)各 F関数の線形変換行列は正方 MDSであること、 (B2)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行歹 1J、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列べクトノレ が正方 MDS行列となること、
これらの条件を満足させることが必要であった。
[0184] さらに、差分攻撃および線形攻撃の双方に対する耐性を持つ構成とするためには 、上述した (A1)〜(A3)および(B1)〜(B2)のすベての条件を満足させることが必 要となり、利用できる行列の候補数が絞られてしまうとレ、う問題がある。
[0185] 先に図 1、図 2を参照して説明したように、 Feistel構造は、変換関数の単純な繰り 返しにより、平文を暗号文に変換する構造を持つ。初めに、 2mnビットの平文を、 mn ビットの 2つの入力データ P (Plain-Left) 101, P (Plain-Right) 102に分割し、これを
L R
入力値として、 F関数 (ラウンド関数) 120を r段繰り返す。
[0186] 例えば、図 1に示す第 1番目のラウンドでは、 mnビットの入力データ Xと、鍵生成部
(図示せず)から入力される mnビットのラウンド鍵 K 103が F関数 120に入力され、 F
1
関数 120におけるデータ変換処理の後に mnビットのデータ Yを出力する。出力はも う片方の前段からの入力データ(第 1段の場合は入力データ P )と排他的論理和部 1
L
04におレ、て、排他的論理和演算がなされ、 mnビットの演算結果が次のラウンド関数 へと出力される。この処理、すなわち F関数を定められたラウンド数 (r)だけ繰り返し 適用して暗号化処理が完了し、暗号文の分割データ C (Cipher-Left)、 C (Cipher-
L R
Right)が出力される。以上の構成より、 Feistel構造の復号処理はラウンド鍵を挿入 する順序を逆にするだけでよぐ逆関数を構成する必要がないことが導かれる。
[0187] 各ラウンドの関数として設定される F関数 120の構成については、先に図 2を参照し て説明したように、非線形変換層と線形変換層を接続したいわゆる SPN型の構成を 有する。 SPN型の F関数 120は、図 2 (b)に示すように、非線形変換処理を実行する 複数の Sボックス(S _box) 121を有する。ラウンド関数部の前段からの mnビットの入 力値 Xは、鍵スケジュール部から入力されるラウンド鍵 Kと排他的論理和が実行され 、その出力が nビットずつ非線形変換処理を実行する複数 (m個)の Sボックス 121に 入力される。各 Sボックスでは、例えば変換テーブルを適用した非線形変換処理が実 行される。 [0188] Sボックス 121からの出力データである mnビットの出力値 Zは、線形変換処理を実 行する線形変換部 122に入力されて、例えばビット位置の入れ替え処理などの線形 変換処理が実行され、 mnビットの出力値 Yを出力する。この出力値 Yが前段からの 入力データと排他的論理和され、次のラウンドの F関数の入力値とされる。
[0189] 図 2に示す F関数 120は、入出力ビット長が m X n (m, n :整数)ビットであり、非線 形変換層は nビットの入出力を持つ非線形変換層としての Sボックス 121は、 m個並 列にならんだ構成を有し、線形変換層としての線形変換部 122は n次の既約多項式 で定義される 2の拡大体 GF (2n)上の元を要素として持つ m次の正方行列に基づく 線形変換処理を実行する。
[0190] 線形変換部 122における線形変換処理に適用する正方行列は、例えば図 3に示 す構成を持ち、非線形変換部(Sボックス 121)から出力された m個の nビットデータ Z
[1] , Z[2] , Z[m]に対してあらカ^め定められた正方行列 125を適用した演算 により線形変換が施され、 F関数 (ラウンド関数)出力としての、 Y[l] , Υ[2] ,…, Υ[ m]が決定される。ただし、このとき各データの行列の要素に対する線形演算はあら 力じめ定められた 2の拡大体 GF (2n)上で行われる。
[0191] この線形変換処理に適用する正方行列について、上述した [3.耐性を向上させた 暗号処理アルゴリズム構成例]におレ、て、特定の条件を満足する正方 MDS (Maxim urn Distance Separable)行列を適用することで、暗号解析処理、攻撃処理とし て知られる線形解析、差分解析に対する耐性を向上させた構成を説明したが、上述 したように、制約が多く利用できる行列の候補数が絞られてしまうという問題がある。
[0192] 以下においては、上記の問題を鑑み、線形変換に適用する行列の制約条件を弱 めることにより利用可能な行列の候補数を増やし、かつアクティブ S— boxの数を十 分に大きく保つことのできる Feistel型共通鍵ブロック喑号の 2つの構成例について 説明する。
[0193] (4a)構成例 1
まず、本発明に係る Feistel型共通鍵ブロック暗号構成例 1につレ、て説明する。 まず、線形変換の特殊な例として最適拡散変換(Optimal Diffusion Mapping s)を以下のように定義する。 nX aビットデータ力 nXbビットデータへの線形変換を行う写像 [ Θ ]
Θ :{0, i}na→{o, i}nb
に対して分岐数 Β( θ )を次のように定義する。
B( 0 )=min {hw (a) +hw ( θ (α))}
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値を表すものと し、 hw (Y)はビット列 Υを ηビットごとに区切って表したときに、 ηビットのデータすベ てが 0ではなレ、(非ゼロ)要素の数を返す関数とする。
このとき、 Β( Θ )が b +1であるような写像 Θを最適拡散変換と定義する。また便宜 的に行列 Mの分岐数を B (M)と表すものとする。
[0194] SPN型の F関数を持つ r段からなる Feistel喑号において、 BD を以下のように定 〜
義する。
BD =min{B(M) | l≤i≤r},
BD =min{B(M | M ) | l≤i≤r— 2},
として定義する。
ただし A I Bは行列 A, Bの連結により得られる行列を表すものとする。
[0195] また、 BLを以下のように定義する。
BL =min{B(M"1 | 'Μ"1 ) | l≤i≤r~2}
とする。ただし、 lMは行列の転置を表すものとする。
[0196] 本発明に従った Feistel型暗号の第 1の例においては、
(1) BD, BD力 ¾以上になるような行列 Mを選択することにより、差分攻撃に対す る耐性を向上させ、かつ
(2) BL力 S3以上になるような行列 Mを選択することにより、線形攻撃に対して耐性 を向上させた。
[0197] すなわち、本発明の Feistel型共通鍵ブロック暗号では、線形変換に適用する行列 の制約条件は、上記条件(1)、(2)のみであり、前述した [3.耐性を向上させた暗号 処理アルゴリズム構成例]におレ、て説明した適用可能な行列の制約条件に比較する と緩やかな制約となる。この緩やかな制約により利用可能な行列の候補数を増やし、 かつアクティブ S_boxの数を十分に大きく保つことのできる Feistel型共通鍵ブロッ ク暗号が構成できる。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標 のひとつである暗号化関数全体でのアクティブ Sボックスの最小数を大きくすることが 可能となり、線形攻撃や、差分攻撃に対して耐性が向上し、より安全性の高い喑号処 理が実現される。
[0198] 以下、上記条件(1)によって、差分攻撃に対する耐性が向上すること、および上記 条件(2)によって、線形攻撃に対する耐性が向上することについての根拠および証 明について、以下説明する。
[0199] (4a. 1)構成例 1における差分攻撃に対する耐性の向上
まず、上記条件(1)、すなわち、 BD , BD力 ¾以上になるような行列 Mを選択する
1 2 i ことにより、差分攻撃に対する耐性が向上する理由について説明する。
[0200] SPN型の F関数を持つ r段からなる Feistel喑号において、 BD は、以下のように
1〜3
定義される。
BD =min{B(M) | l≤i≤r},
1 i
BD =min{B(M | M ) | l≤i≤r— 2},
2 i i + 2
ただし A I Bは行列 A, Bの連結により得られる行列を表すものとする。 このとき
条件 0)BD ≥BD
1 2
という関係が存在する。
[0201] 次に、 kラウンド目に存在するゼロでない入出力差分をもつ S— box (差分アクティブ S— box)の個数を Dで表すものとする。この時、以下のことが成立する。
k
[0202] ゼロでない入力差分を SPN型の F関数を持つ Feistel暗号に与えたとき、以下の条 件が成り立つ。
条件 1)D=0ならば、 D ≠0, D ≠0, D ≠0, D ≠0,
i+2
条件 2)D :0ならば、 D =D ,
i-l i+1
条件 3)D ≠0ならば D +D +D ≥BD
L i i+1 i + 2
条件 4)D :0ならば D +D ≥BD,
i + 1 i + 2 1
条件 5)D =0ならば D +D ≥BD,
l i i+1 1
条件 6)D :0ならば D +D +D ≥BD 条件 7)D =0ならば D+D +D ≥BD ,
i + 4 i i+1 i + 3 2
である。
[0203] この時、連続する 6段に含まれる差分アクティブ S— boxの総数 T ( = D+D +D
6 i i+1
+ D +D +D )について考察する。
i + 2 i + 3 i + 4 i + 5
[0204] ケース 1)D ≠0かつ D ≠0の場合、
i+1 i + 4
上記条件 3より、 D +D +D ≥BDかつ D +D +D ≥BDであるため、
i i+1 i + 2 1 i + 3 i + 4 i + 5 1
T ≥2BD
6 1
となる。
[0205] ケース 2)D =0の場合、
i+1
T =D +D +D +D +D +D
6 i i+1 i+2 i + 3 i + 4 i + 5
となり、上記条件 2より、
T =2D +D +D +D
6 i + 2 i+3 i + 4 i + 5
が成立し、さらに、上記条件 4および条件 6に基づいて、
T = (D +D ) + (D +D +D )≥BD +BD
6 i + 2 i+3 i + 2 i + 4 i + 5 1 2
となる。
[0206] ケース 3)D =0の時、
i + 4
上記ケース 2と同様の証明により、
T ≥BD +BD
6 1 2
となる。
[0207] 従って、以上の結果をまとめ、条件 0を考慮すると、
T ≥BD +BD
6 1 2
となる。
[0208] この「6の倍数 6R (R≥2)は R個の 6の組に分解することができる」とレ、う性質により、 6R段の差分アクティブ S— box数の最小数を、上述の 6段で保証される差分ァクティ ブ S— boxから計算することができる。
[0209] つまり、ゼロでない入出力差分をもつ S_box (差分アクティブ S_box)の最小数は BD, BDを用いて表すことができることがわかる。従来において、 BDのみをなるベ
1 2 1 く大きくするという設計方針は考えられていたが、すべての段に同じ行歹 1Jを用いると レ、う方法であるため、 BD = 2となってしまっており、差分アクティブ S— boxの最小数
2
は低く抑えられたままであった。
[0210] しかし、上述した説明では、
BD ≥BDという条件が存在し、 BDを大きくとることにより、ゼロでない入出力差分
1 2 2
をもつ S— box (差分アクティブ S— box)の最小数を底上げする効果がある。
[0211] 前述した [3.耐性を向上させた暗号処理アルゴリズム構成例]において説明した適 用可能な行列の制約条件において、差分攻撃に対する耐性向上を図るための各 F 関数に設定する線形変換行列の条件としては、
(A1)各 F関数の線形変換行列は正方 MDSであること、
(A2)喑号ィ匕関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる 線形変換行列の任意の m個の列ベクトルが独立または正方 MDS行列であること、
(A3)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の 任意の m個の列ベクトルが独立または正方 MDS行列であること、
これらの条件を満足させることが必要であった。
[0212] この条件は、前述の定義データ BD 、すなわち、
1〜2
BD =min{B (M ) | l≤i≤r} ,
1 i
BD =min{B (M | M ) | l≤i≤r~ 2} ,
2 i i + 2
を用いて示すと、
BD =BD =m+ l
1 2
となる条件に相当するものである。
[0213] し力し、ここで説明したアルゴリズムにおいては、
BD ≥BDという条件が存在しており、 BDを大きくとることにより、最小数を底上げ
1 2 2
する効果があり、 F関数の線形変換に適用する行列の候補数が増え、かつゼロでな レ、入出力差分をもつ差分アクティブ S— boxの数を十分に大きく確保できるとレ、うメリ ットがある。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標のひとつ である喑号ィ匕関数全体でのアクティブ Sボックスの最小数を大きくすることが可能とな り、差分攻撃に対して耐性が向上し、より安全性の高い暗号処理が実現される。
[0214] (4a. 2)構成例 1における線形攻撃に対する耐性の向上 次に、前述した条件(2)、すなわち、 BL力 ¾以上になるような行列 Mを選択するこ
2 i
とにより、線形攻撃に対して耐性が向上する理由について説明する。
[0215] BLを以下のように定義される。
2
BL ^miniB M"1 | 'Μ"1 ) | l≤i≤r- 2}
2 i i + 2
とする。ただし、 は行列の転置を表すものとする。
[0216] 次に、 kラウンド目に存在するゼロでない入出力線形マスクをもつ S_box (線形ァク ティブ S— box)の個数を Lで表すものとする。この時、以下のことが成立する。
k
[0217] ゼロでない入力線形マスクを SPN型の F関数を持つ Feistel喑号に与えたとき、 条件 1) L +L +L ≥BL
i i+ 1 i + 2 2
が常に成立する。
[0218] 3の倍数 3R (R≥1)は 3の組に分解することができる。この性質により、 3R段の線形 アクティブ S— boxの最小数は、 R X BLで保証することができる。従って BLを大きく
2 2 とることにより、最小数を底上げする効果がある。
[0219] 前述した [3.耐性を向上させた暗号処理アルゴリズム構成例]において説明した適 用可能な行列の制約条件において、線形攻撃に対する耐性向上を図るための各 F 関数に設定する線形変換行列の条件としては、
(B1)各 F関数の線形変換行列は正方 MDSであること、
(B2)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行歹 1J、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列べクトノレ が正方 MDS行列となること、
これらの条件を満足させることが必要であった。
この条件は、前述の定義データ BL、すなわち、
2
BL ^miniB M"1 | 'Μ"1 ) | l≤i≤r- 2}
2 i i + 2
を用いて表すと、
BL =m+ l
2
となる条件に相当するものである。
[0220] し力、し、ここで説明したアルゴリズムにおいては、
BL力 S3以上になるような行列 Mを選択する
2 i とレ、う条件を設定しているのみであり、 3R段の線形アクティブ S— boxの最小数は、 R X BLで保証することができる。従って BLを大きくとることにより、線形アクティブ S
2 2
— boxの最小数を底上げする効果がある。すなわち、共通鍵ブロック暗号における攻 撃に対する強度指標のひとつである暗号化関数全体でのアクティブ Sボックスの最小 数を大きくすることが可能となり、線形攻撃に対して耐性が向上し、より安全性の高い 暗号処理が実現される。
[0221] なお、上述した条件、すなわち、
(1) BD , BD力 ¾以上になるような行列 Mを選択する
1 2 i
(2) BL力 S3以上になるような行列 Mを選択する
2 i
これらの 2つの条件は、独立に定義される条件であり、 (1)の条件を満足させること で差分攻撃に対する耐性を向上し、 (2)の条件を満足させることで、線形攻撃に対す る耐性が向上する。
[0222] これら、「差分攻撃に対する耐性を確保する条件(1)」と「線形攻撃に対する耐性を 確保する条件(2)」はそれぞれ独立に定義される条件である。通常は、両方を同じレ ベルの強度になるような行列を選択する方針が考えられるが、暗号が利用される状 況に応じては差分攻撃のみに対しては耐性を高めるが線形攻撃に対してはとくに条 件を与えない設計や、その逆の設計を行って運用することも可能である。
[0223] (4b)構成例 2
次に、本発明に係る Feistel型共通鍵ブロック暗号構成例 2について説明する。こ の構成例は、構成例 1に比較して制約の多レ、構成例である。
まず、線形変換の特殊な例として最適拡散変換(Optimal Diffusion Mapping s)を以下のように定義する。
n X aビットデータ力 n X bビットデータへの線形変換を行う写像 [ Θ ]
Θ : {0, i }na→{o, i }nb
に対して分岐数 Β ( θ )を次のように定義する。
B ( 0 ) =min {hw ( a ) +hw ( θ ( α ) ) }
η η
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値を表すものと し、 hw (Y)はビット列 Υを ηビットごとに区切って表したときに、 ηビットのデータすベ てが 0ではなレ、(非ゼロ)要素の数を返す関数とする。
このとき、 Β ( Θ )が b + 1であるような写像 Θを最適拡散変換と定義する。また便宜 的に行列 Mの分岐数を B (M)と表すものとする。
[0224] SPN型の F関数を持つ r段からなる Feistel喑号において、 BD を以下のように定
1~3
義する。
BD =min{B (M ) | l≤i≤r} ,
1 i
BD =min{B (M | M ) | l≤i≤r— 2} ,
2 i i + 2
BD =min{B (M | M | M ) | l≤i≤r_4},
3 i i + 2 i + 4
として定義する。
ただし A I Bは行列 A, Bの連結により得られる行列を表すものとする。
[0225] また、 BLを以下のように定義する。
2
BL =πήη{Β ( Μ_ 1 | 'Μ"1 ) | l≤i≤r- 2}
2 i i + 2
とする。ただし、 lMは行列の転置を表すものとする。
[0226] 本発明に従った Feistel型暗号にぉレヽては、
(1) BD , BD , BD力 ¾以上になるような行列 Mを選択することにより、差分攻撃
1 2 3 i
に対する耐性を向上させ、かつ
(2) BL力 ¾以上になるような行列 Mを選択することにより、線形攻撃に対して耐性
2 i
を向上させた。
[0227] すなわち、本発明の Feistel型共通鍵ブロック暗号では、線形変換に適用する行列 の制約条件は、上記条件(1)、(2)のみであり、前述した [3.耐性を向上させた暗号 処理アルゴリズム構成例]において説明した適用可能な行列の制約条件に比較する と緩やかな制約となる。この緩やかな制約により利用可能な行列の候補数を増やし、 かつアクティブ S _boxの数を十分に大きく保つことのできる Feistel型共通鍵ブロッ ク喑号が構成できる。すなわち、共通鍵ブロック暗号における攻撃に対する強度指標 のひとつである暗号化関数全体でのアクティブ Sボックスの最小数を大きくすることが 可能となり、線形攻撃や、差分攻撃に対して耐性が向上し、より安全性の高い喑号処 理が実現される。
[0228] 以下、上記条件(1)によって、差分攻撃に対する耐性が向上すること、および上記 条件(2)によって、線形攻撃に対する耐性が向上することについての根拠および証 明について、以下説明する。
[0229] (4b.1)構成例 2における差分攻撃に対する耐性の向上
まず、上記条件(1)、すなわち、 BD , BD , BD力 S3以上になるような行列 Mを選
1 2 3 i 択することにより、差分攻撃に対する耐性が向上する理由について説明する。
[0230] SPN型の F関数を持つ r段からなる Feistel喑号において、 BD は、以下のように
1~3
定義される。
BD =min{B(M) | l≤i≤r},
1 i
BD =min{B(M | M ) | l≤i≤r— 2},
2 i i + 2
BD =min{B(M | M | M ) | l≤i≤r_4},
3 i i + 2 i + 4
ただし A I Bは行列 A, Bの連結により得られる行列を表すものとする。 このとき
条件 0)BD ≥BD ≥BD
1 2 3
という関係が存在する。
[0231] 次に、 kラウンド目に存在するゼロでない入出力差分をもつ S— box (差分アクティブ S— box)の個数を Dで表すものとする。この時、以下のことが成立する。
k
[0232] ゼロでない入力差分を SPN型の F関数を持つ Feistel暗号に与えたとき、以下の条 件が成り立つ。
条件 1)D=0ならば、 D ≠0, D ≠0, D ≠0, D ≠0,
i + 2
条件 2)D :0ならば、 D =D
条件 3)D ≠0ならば D +D D ≥BD
条件 4)D 0ならば D +D ≥BD
i +l i + 2
条件 5)D =0ならば13+0 ≥BD
i + 2
条件 6)D :0ならば D +D +D ≥BD ,
i +l i + 4 2
条件 7)D =0ならば D +D +D ≥BD ,
1 i i + 3 2
条件 8)D :D =0ならば D +D +D ≥BD
i + 6
である。
[0233] 二の時、連続する 6段に含まれる差分アクティブ S— boxの総数 T ( = D+D +D + D +D +D )について考察する。
-2 i + 3 i + 4 i + 5
ケース 1)D ≠0かつ D ≠0の場合、
i+l i + 4
上記条件 3より、 D+D +D ≥BDかつ D +D +D ≥BDであるため、 i i+l i + 2 1 i + 3 i + 4 i + 5 1
T≥2BD
となる。
[0235] ケース 2)D =0の場合、
i+l
T =D +D +D +D +D +D
6 i i+l i+2 i + 3 i + 4 i + 5
となり、上記条件 2より、
T =2D +D +D +D
6 i + 2 i+3 i + 4 i + 5
が成立し、さらに、上記条件 4および条件 6に基づいて、
T = (D +D ) + (D +D +D )≥BD +BD
6 i + 2 i+3 i + 2 i + 4 i + 5 1 2
となる。
[0236] ケース 3)D =0の時、
i + 4
上記ケース 2と同様の証明により、
T≥BD +BD
6 1 2
となる。
[0237] 従って、以上の結果をまとめ、条件 0を考慮すると、
T≥BD +BD
6 1 2
となる。
[0238] 次に、連続する 9段に含まれる差分アクティブ S— boxの総数、
T = (D +D +D +D +D +D +D +D +D )
9 i i+l i+2 i + 3 i + 4 i + 5 i + 6 i+7 i + 8
について考察する。
[0239] ケース 1)D ≠0の場合、
i+l
上記条件 3より、
D +D +D ≥BD
i i+l i+2 1
また、前述した 6段の差分アクティブ S_box数により、
D +D +D +D +D +D ≥BD +BD
i + 3 i + 4 i + 5 i + 6 i + 7 i + 8 1 2
が成立する。よって、 T≥2BD +BD
9 1 2
となる。
[0240] ケース 2)D ≠0の場合、
i+7
ケース 1と同様の証明により、
T≥2BD +BD
9 1 2
となる。
[0241] ケース 3)D =D =0の場合、
i+l i+7
T =D +D +D +D +D +D +D +D +D
9 i i+l i+2 i + 3 i + 4 i + 5 i + 6 i+7 i + 8
であり、さらに条件 2より、
T =2D +D +D +D +2D
9 i + 2 i+3 i + 4 i + 5 i + 6
となり、さらに条件 4, 8, 5より、
T = (D +D ) + (D +D +D ) + (D +D )≥2BD +BD
9 i + 2 i+3 i + 2 i + 4 i + 6 i + 5 i + 6 1 3 となる。
従って、以上の結果をまとめ、条件 0を考慮すると、
T≥2BD +BDとなる。
9 1 3
[0242] 6以上の任意の 3の倍数 3R(R≥ 2)は 6と 9の組に分解することができる。以下に例 を示す。
例) 6 = 6, 9 = 9, 12 = 6 + 6, 15 = 6 + 9, 18 = 6 + 6 + 6 = 9 + 9,
21 = 6 + 6 + 9, 24 = 6 + 6 + 6 + 6 = 9 + 9 + 6, ...
[0243] この「6以上の任意の 3の倍数 3R(R≥ 2)は 6と 9の組に分解することができる」という 性質により、 3R段の差分アクティブ S— box数の最小数を、上述の 6段と 9段で保証さ れる差分アクティブ S—boxから計算することができる。
[0244] つまり、ゼロでない入出力差分をもつ S_box (差分アクティブ S_box)の最小数は
BD, BD , BDを用いて表すことができることがわかる。従来において、 BDのみを
1 2 3 1 なるべく大きくするという設計方針は考えられていたが、すべての段に同じ行列を用 レ、るという方法であるため、 BD =BD =2となってしまっており、差分アクティブ S—
2 3
boxの最小数は低く抑えられたままであった。
[0245] しかし、上述した説明では、 BD ≥BD ≥BDという条件を設定しているものであり、
1 2 3
BDを大きくとることにより、ゼロでない入出力差分をもつ S— box (差分アクティブ S
3
-box)の最小数を底上げする効果がある。
[0246] 前述した [3.耐性を向上させた暗号処理アルゴリズム構成例]において説明した適 用可能な行列の制約条件において、差分攻撃に対する耐性向上を図るための各 F 関数に設定する線形変換行列の条件としては、
(A1)各 F関数の線形変換行列は正方 MDSであること、
(A2)喑号ィ匕関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる 線形変換行列の任意の m個の列ベクトルが独立または正方 MDS行列であること、
(A3)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の 任意の m個の列ベクトルが独立または正方 MDS行列であること、
これらの条件を満足させることが必要であった。
[0247] この条件は、前述の定義データ BD 、すなわち、
1〜3
BD =min{B (M ) | l≤i≤r} ,
1 i
BD =min{B (M | M ) | l≤i≤r~ 2} ,
2 i i + 2
BD =min{B (M | M | M ) | l≤i≤r~4} ,
3 i i + 2 i + 4
を用いて示すと、
BD =BD =BD =m+ l
1 2 3
となる条件に相当するものである。
[0248] し力し、ここで説明したアルゴリズムにおいては、
BD ≥BD ≥BDという条件を設定しているのみであり、
1 2 3
BDを大きくとることにより、最小数を底上げする効果があり、 F関数の線形変換に
3
適用する行列の候補数が増え、かつゼロでない入出力差分をもつ差分アクティブ s
— boxの数を十分に大きく確保できるというメリットがある。すなわち、共通鍵ブロック 暗号における攻撃に対する強度指標のひとつである暗号化関数全体でのアクティブ Sボックスの最小数を大きくすることが可能となり、差分攻撃に対して耐性が向上し、 より安全性の高レ、暗号処理が実現される。
[0249] (4b. 2)構成例 2における線形攻撃に対する耐性の向上 次に、前述した条件(2)、すなわち、 BL力 ¾以上になるような行列 Mを選択するこ
2 i
とにより、線形攻撃に対して耐性が向上する理由について説明する。
[0250] BLは以下のように定義される。
2
BL =min{B (tM_ 1 | Μ— 1 ) | l≤i≤r— 2}
2 i i + 2
とする。ただし、 は行列の転置を表すものとする。
[0251] 次に、 kラウンド目に存在するゼロでない入出力線形マスクをもつ S_box (線形ァク ティブ S— box)の個数を Lで表すものとする。この時、以下のことが成立する。
k
[0252] ゼロでない入力線形マスクを SPN型の F関数を持つ Feistel喑号に与えたとき、 条件 1) L +L +L ≥BL
i i+ 1 i + 2 2
が常に成立する。
[0253] 3の倍数 3R (R≥1)は 3の組に分解することができる。この性質により、 3R段の線形 アクティブ S— boxの最小数は、 R X BLで保証することができる。従って BLを大きく
2 2 とることにより、最小数を底上げする効果がある。
[0254] 前述した [3.耐性を向上させた暗号処理アルゴリズム構成例]において説明した適 用可能な行列の制約条件において、線形攻撃に対する耐性向上を図るための各 F 関数に設定する線形変換行列の条件としては、
(B1)各 F関数の線形変換行列は正方 MDSであること、
(B2)暗号化関数内の奇数ラウンド内に連続して含まれる線形変換行歹 1J、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列べクトノレ が正方 MDS行列となること、
これらの条件を満足させることが必要であった。
この条件は、前述の定義データ BL、すなわち、
2
BL ^miniB M"1 | 'Μ"1 ) | l≤i≤r- 2}
2 i i + 2
を用いて表すと、
BL =m+ l
2
となる条件に相当するものである。
[0255] し力、し、ここで説明したアルゴリズムにおいては、
BL力 S3以上になるような行列 Mを選択する
2 i とレ、う条件を設定しているのみであり、 3R段の線形アクティブ S— boxの最小数は、 R X BLで保証することができる。従って BLを大きくとることにより、線形アクティブ S
2 2
— boxの最小数を底上げする効果がある。すなわち、共通鍵ブロック暗号における攻 撃に対する強度指標のひとつである暗号化関数全体でのアクティブ Sボックスの最小 数を大きくすることが可能となり、線形攻撃に対して耐性が向上し、より安全性の高い 暗号処理が実現される。
[0256] なお、上述した条件、すなわち、
(1) BD, BD , BD力 ¾以上になるような行列 Mを選択する
1 2 3 i
(2) BL力 S3以上になるような行列 Mを選択する
2 i
これらの 2つの条件は、独立に定義される条件であり、 (1)の条件を満足させること で差分攻撃に対する耐性を向上し、 (2)の条件を満足させることで、線形攻撃に対す る耐性が向上する。
[0257] これら、「差分攻撃に対する耐性を確保する条件(1)」と「線形攻撃に対する耐性を 確保する条件(2)」はそれぞれ独立に定義される条件である。通常は、両方を同じレ ベルの強度になるような行列を選択する方針が考えられるが、暗号が利用される状 況に応じては差分攻撃のみに対しては耐性を高めるが線形攻撃に対してはとくに条 件を与えない設計や、その逆の設計を行って運用することも可能である。
[0258] 最後に、暗号処理を実行する暗号処理装置としての ICモジュール 600の構成例を 図 18に示す。上述の処理は、例えば PC、 ICカード、リーダライタ、その他、様々な情 報処理装置において実行可能であり、図 18に示す ICモジュール 600は、これら様々 な機器に構成することが可能である。
[0259] 図 18に示す CPU(Central processing Unit)601は、喑号処理の開始や、終了、デ ータの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実 行するプロセッサである。メモリ 602は、 CPU601が実行するプログラム、あるいは演 算パラメータとしての固定データを格納する ROM (Read-Only- Memory)、 CPU601 の処理において実行されるプログラム、およびプログラム処理において適宜変化する パラメータの格納エリア、ワーク領域として使用される RAM (Random Access Memory )等からなる。また、メモリ 602は暗号処理に必要な鍵データ等の格納領域として使 用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成される ことが好ましい。
[0260] 暗号処理部 603は、例えば上述した Feistel型共通鍵ブロック暗号処理アルゴリズ ムに従った暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個 別モジュールとした例を示した力 このような独立した喑号処理モジュールを設けず、 例えば喑号処理プログラムを ROMに格納し、 CPU601が ROM格納プログラムを読 み出して実行するように構成してもよレ、。
[0261] 乱数発生器 604は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数 の発生処理を実行する。
[0262] 送受信部 605は、外部とのデータ通信を実行するデータ通信処理部であり、例え ばリーダライタ等、 ICモジュールとのデータ通信を実行し、 ICモジュール内で生成し た暗号文の出力、あるいは外部のリーダライタ等の機器からのデータ入力などを実行 する。
[0263] 以上、特定の実施例を参照しながら、本発明につレ、て詳解してきた。しかしながら、 本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ること は自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的 に解釈されるべきではなレ、。本発明の要旨を判断するためには、特許請求の範囲の 欄を参酌すべきである。
[0264] 更に、本発明の実施例では、 2種類または 3種類の行列式を用いて説明を行って いる力 それに限定されるものではなぐ複数種類の行列式を用いて、実施例の制約 条件を満足させることができるならば、差分攻撃及び線形攻撃に対する耐性を向上 させることは可能である。
[0265] なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、 あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理 を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに 組み込まれたコンピュータ内のメモリにインストールして実行させる力、、あるいは、各 種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させること が可能である。 [0266] 例えば、プログラムは記録媒体としてのハードディスクや ROM (Read Only Memory )に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、 CD — ROM(Compact Disc Read Only Memory), MO(Magneto optical)ディスク, DVD( Digital Versatile Disc),磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記 録媒体は、レ、わゆるパッケージソフトウェアとして提供することができる。
[0267] なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインス トールする他、ダウンロードサイトから、コンピュータに無線転送したり、 LAN(Local A rea Network),インターネットといったネットワークを介して、コンピュータに有線で転 送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵する ハードディスク等の記録媒体にインストールすることができる。
[0268] なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみ ならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個 別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的 集合構成であり、各構成の装置が同一筐体内にあるものには限らない。 産業上の利用可能性
[0269] 上述したように、本発明の構成によれば、非線形変換部および線形変換部を有す る SPN型の F関数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック喑号処 理において、複数ラウンド各々に対応する F関数の線形変換処理を、比較的緩やか な制限によって特定される行列を適用して実行する構成により、共通鍵ブロック暗号 における差分攻撃や線形攻撃に対する耐性が向上する。また、制限が比較的緩や かであり、利用できる行列の候補が増加するとともに、アクティブ S— box数を十分大 きく確保することが可能となる。すなわち、共通鍵ブロック暗号における攻撃に対する 強度指標のひとつである暗号化関数全体でのアクティブ Sボックスの最小数を大きく することが可能となり、線形攻撃や、差分攻撃に対して耐性が向上し、より安全性の 高レ、暗号処理が実現される。

Claims

請求の範囲
[1] 複数ビットの入出力を持つ複数の非線形変換層を並列に構成した非線形変換部と 線形変換を施す線形変換層で構成した線形変換部とで構成される Feistel型暗号 処理を備える暗号処理装置にぉレ、て、
前記線形変換部は、前記線形変換に適応する行列の制約条件に基づいて処理を 施すことを特徴とする暗号処理装置。
[2] 前記線形変換に適応する行列の制約条件は、
r段各々に対応する F関数の線形変換部の満足する行列 Miを適用した構成、すな わち、 nX aビットデータ力 nXbビットデータへの線形変換を行う写像 θ :{0, 1}η a→{0, l}nbに対して、分岐数 Β(θ)を、
分岐数 Β( Θ )=mina≠0{hwn(a) +hwn( θ (ct))}、
ただし、 mina≠0{Χα }は、 ひ≠0を満たすすべての Χαのうちの最小値、 hwn( Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0では なレ、(非ゼロ)要素の数を返す関数、とし、分岐数 Β( Θ )が b+1である写像 Θを最適 拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BDl=min{B(Mi) | l≤i≤r},
BD2=min{B(Mi | Mi + 2) | l≤i≤r_2},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BDl, BD2のすべてが 3以上になるような行列 Miを適用した構成であることを特徴 とする請求項 1に記載の暗号処理装置。
[3] 暗号処理装置であり、
非線形変換部および線形変換部を有する SPN型の F関数を持つ r段からなる Feis tel型共通鍵ブロック暗号処理構成を有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した構成、すなわち、 nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 θ :{0, 1 →{0, 1 に対して、分岐数8(0)を、
分岐数 Β(θ)=πΰη {hw (a)+hw (Θ ))}、
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BD =min{B(M) | l≤i≤r},
BD =min{B(M | M ) | l≤i≤r— 2},
BD =min{B(M | M | M ) | l≤i≤r_4},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD , BD , BDのすべてが 3以上になるような行列 Mを適用した構成であることを 特徴とする暗号処理装置。
暗号処理装置であり、
非線形変換部および線形変換部を有する SPN型の F関数を持つ r段からなる Feis tel型共通鍵ブロック暗号処理構成を有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した構成、すなわち、
nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 Θ :{0, 1广→{0, l}nbに対して、分岐数 Β(θ)を、
分岐数 B(0)=min {hw (a)+hw (θ (α))},
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b + 1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、 BL =min{B(M"1 | 'Μ"1 ) | l≤i≤r— 2}
ただし、 tMは行列の転置、
とした場合において、
BL力 S3以上になるような行列 Mを適用した構成であることを特徴とする暗号処理 装置。
[5] Feistel型共通鍵ブロック喑号処理を実行する喑号処理方法であり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換処理は下記条件を満足する行列 Mを 適用した線形変換処理、すなわち、
nX aビットデータ力 nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, l}nbに対して、分岐数 Β(θ)を、
分岐数 Β(θ)=πΰη {hw (a)+hw (Θ ))}、
ただし、 min {X }は、 a≠0を満たすすべての X のうちの最小値、 hwn(Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BD =min{B(M) | l≤i≤r},
BD =min{B(M | M ) | l≤i≤r— 2},
BD =min{B(M | M | M ) | l≤i≤r—4},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD, BD , BDのすべてが 3以上になるような行列 Mを適用した線形変換処理に よって実行することを特徴とする暗号処理方法。
[6] Feistel型共通鍵ブロック喑号処理を実行する喑号処理方法であり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、 前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 を適 用した線形変換処理、すなわち、
nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 Θ :{0, 1广→{0, l}nbに対して、分岐数 Β(θ)を、
分岐数 B(0)=min {hw (a)+hw (θ (α))},
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BL =min{B(M"1 | 'Μ"1 ) | l≤i≤r— 2}
ただし、 lMは行列の転置、
とした場合において、
BL力 ¾以上になるような行列 Mを適用した線形変換処理によって実行することを 特徴とする暗号処理方法。
Feistel型共通鍵ブロック暗号処理をコンピュータ上において実行するコンピュータ •プログラムであり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換処理は下記条件を満足する行列 Mを 適用した線形変換処理、すなわち、
nX aビットデータ力 nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, l}nbに対して、分岐数 Β(θ)を、
分岐数 B(0)=min {hw (a)+hw (θ (α))},
ただし、 min {X }は、 ひ≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b + 1である写像 Θを最適拡散変換と定義し、 さらに、行列 Mの分岐数を B (M)と表したとき、
BD =min{B(M) | l≤i≤r},
BD =min{B(M | M ) | l≤i≤r— 2},
BD =min{B(M | M | M ) | l≤i≤r_4},
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD, BD , BDのすべてが 3以上になるような行列 Mを適用した線形変換処理に よって実行することを特徴とするコンピュータ 'プログラム。
Feistel型共通鍵ブロック喑号処理をコンピュータ上において実行するコンピュータ •プログラムであり、
非線形変換部および線形変換部を有する SPN型の F関数を r段、繰り返し実行す るステップを有し、
前記 r段各々に対応する F関数の線形変換部は下記条件を満足する行列 Mを適 用した線形変換処理、すなわち、
nX aビットデータ力ら nXbビットデータへの線形変換を行う写像 Θ :{0, 1 →{0, 1}1*に対して、分岐数8(0)を、
分岐数 Β(θ)=πΰη {hw (a)+hw (Θ ))}、
ただし、 min {X }は、 a≠0を満たすすべての X のうちの最小値、
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではなレ、(非ゼロ)要素の数を返す関数、
とし、分岐数 Β( Θ )が b +1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、
BL =min{B(tM_1 | Μ— 1 ) | l≤i≤r— 2}
ただし、 tMは行列の転置、
とした場合において、
BL力 S3以上になるような行列 Mを適用した線形変換処理によって実行することを 特徴とするコンピュータ 'プログラム。
PCT/JP2006/304015 2005-03-25 2006-03-02 情報処理装置 WO2006103867A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP06715124.1A EP1862991B1 (en) 2005-03-25 2006-03-02 Information processing device
KR1020077021765A KR101245010B1 (ko) 2005-03-25 2006-03-02 정보 처리 장치
CN2006800167728A CN101176134B (zh) 2005-03-25 2006-03-02 信息处理装置
US11/909,544 US8340282B2 (en) 2005-03-25 2006-03-02 Information processing apparatus

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2005-088952 2005-03-25
JP2005088952 2005-03-25
JP2005-313842 2005-10-28
JP2005313842A JP4622807B2 (ja) 2005-03-25 2005-10-28 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
WO2006103867A1 true WO2006103867A1 (ja) 2006-10-05

Family

ID=37053135

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/304015 WO2006103867A1 (ja) 2005-03-25 2006-03-02 情報処理装置

Country Status (6)

Country Link
US (1) US8340282B2 (ja)
EP (1) EP1862991B1 (ja)
JP (1) JP4622807B2 (ja)
KR (1) KR101245010B1 (ja)
CN (2) CN101834719B (ja)
WO (1) WO2006103867A1 (ja)

Families Citing this family (20)

* 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 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8752032B2 (en) * 2007-02-23 2014-06-10 Irdeto Canada Corporation System and method of interlocking to protect software-mediated program and device behaviours
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 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US8369515B2 (en) * 2010-03-18 2013-02-05 Chiou-Haun Lee Cryptographic method of multilayer diffusion in multidimension
US8948376B2 (en) * 2010-05-11 2015-02-03 Ca, Inc. Format-preserving encryption via rotating block encryption
CN101951314B (zh) * 2010-10-12 2012-06-20 北京航空航天大学 对称密码加密中s-盒的设计方法
CN103427986B (zh) * 2013-08-22 2016-08-24 中国科学院信息工程研究所 获取分组密码活跃s盒个数下界的方法
JP2015191106A (ja) 2014-03-28 2015-11-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
CN104158796B (zh) * 2014-07-11 2017-07-21 中国科学院信息工程研究所 分组密码抗线性攻击安全性的评估方法
US10341090B2 (en) * 2014-10-14 2019-07-02 Sony Corporation Cipher processing apparatus and cipher processing method
US11038668B2 (en) * 2015-05-17 2021-06-15 Gideon Samid Transposition encryption alphabet method (TEAM)
US10608814B2 (en) * 2015-05-17 2020-03-31 Gideon Samid Equivoe-T: Transposition equivocation cryptography
EP3475825B1 (en) * 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
US10771235B2 (en) * 2016-09-01 2020-09-08 Cryptography Research Inc. Protecting block cipher computation operations from external monitoring attacks
JP2018093325A (ja) * 2016-12-01 2018-06-14 ソニーセミコンダクタソリューションズ株式会社 情報処理装置、情報処理方法、及びプログラム
CN112511293B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 基于比特与运算的s盒参数化设计方法及存储介质
CN112636899B (zh) * 2020-09-21 2022-03-18 中国电子科技集团公司第三十研究所 一种轻量化s盒设计方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072054A (ja) 2004-09-03 2006-03-16 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1130871C (zh) * 1996-04-30 2003-12-10 东芝株式会社 加密装置及加密方法
KR100260534B1 (ko) 1997-08-30 2000-07-01 구자홍 디이에스형 암호화 방법 및 장치
WO2002003605A1 (en) * 2000-07-04 2002-01-10 Koninklijke Philips Electronics N.V. Substitution-box for symmetric-key ciphers
JP4216445B2 (ja) * 2000-07-13 2009-01-28 株式会社東芝 パラメータ決定装置、パラメータ決定方法、および暗号化/復号装置
JP3907976B2 (ja) * 2000-07-13 2007-04-18 富士通株式会社 F関数内部にspn構造を用いた演算装置および演算方法
CN1402465A (zh) * 2002-04-10 2003-03-12 李新全 一种动态矩阵排列加密方法
JP4622222B2 (ja) 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006072054A (ja) 2004-09-03 2006-03-16 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KANDA M. ET AL: "On the Design of Linear Transformation Layers for SPN Structures", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 42, no. 42, 15 August 2001 (2001-08-15), pages 2087 - 2097, XP003000026 *

Also Published As

Publication number Publication date
KR20070112393A (ko) 2007-11-23
EP1862991A4 (en) 2013-10-30
CN101176134A (zh) 2008-05-07
EP1862991B1 (en) 2018-05-02
CN101834719B (zh) 2012-06-27
US20090103716A1 (en) 2009-04-23
KR101245010B1 (ko) 2013-03-18
CN101176134B (zh) 2012-08-08
US8340282B2 (en) 2012-12-25
JP2006301567A (ja) 2006-11-02
JP4622807B2 (ja) 2011-02-02
EP1862991A1 (en) 2007-12-05
CN101834719A (zh) 2010-09-15

Similar Documents

Publication Publication Date Title
WO2006103867A1 (ja) 情報処理装置
KR101091749B1 (ko) 암호 처리 장치, 암호 처리 방법 및 기록매체
EP2048641B1 (en) Encryption processing device, method for building encryption process algorithm, encryption processing method, and computer program
EP2058781B1 (en) Encryption device, encryption method, and computer program
JP4622222B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2008026624A1 (en) Data conversion device, data conversion method, and computer program
EP2058780A1 (en) Encryption device, encryption method, and computer program
WO2008072455A1 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2007083528A1 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP5772934B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5338945B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680016772.8

Country of ref document: CN

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: 1020077021765

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2006715124

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU

WWP Wipo information: published in national office

Ref document number: 2006715124

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11909544

Country of ref document: US