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

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

Info

Publication number
WO2006025416A1
WO2006025416A1 PCT/JP2005/015815 JP2005015815W WO2006025416A1 WO 2006025416 A1 WO2006025416 A1 WO 2006025416A1 JP 2005015815 W JP2005015815 W JP 2005015815W WO 2006025416 A1 WO2006025416 A1 WO 2006025416A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
square mds
linear transformation
function
processing
Prior art date
Application number
PCT/JP2005/015815
Other languages
English (en)
French (fr)
Inventor
Taizo Shirai
Preneel Bart
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
Priority to EP10011884.3A priority Critical patent/EP2375624B1/en
Priority to EP05781289A priority patent/EP1788542B1/en
Priority to BRPI0506365A priority patent/BRPI0506365B1/pt
Priority to EP10011885.0A priority patent/EP2375625B1/en
Priority to ES05781289T priority patent/ES2391639T3/es
Priority to US10/577,955 priority patent/US7747011B2/en
Application filed by Sony Corporation filed Critical Sony Corporation
Publication of WO2006025416A1 publication Critical patent/WO2006025416A1/ja
Priority to KR1020067006887A priority patent/KR101091749B1/ko
Priority to HK07101567.4A priority patent/HK1096758A1/xx
Priority to US12/780,512 priority patent/US8275127B2/en
Priority to US13/594,444 priority patent/US8767956B2/en
Priority to US14/278,632 priority patent/US9240885B2/en

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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms

Definitions

  • the present invention relates to a cryptographic processing device, a cryptographic 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 / received between the IC card and a reader / writer as a data reading / writing device, authentication processing, or encryption of transmitted / received data,
  • a decoding system has been put into practical use.
  • a public key cryptosystem in which an encryption key and a decryption key are set as different keys, for example, a public key and a secret key, and an encryption key and a decryption key.
  • a common key and a common key encryption method As a common key and a common key encryption method.
  • the common key cryptosystem has various algorithms. One of them is the generation of multiple keys based on the common key, and the generated multiple keys are used as a block unit (64 bits, 128 bits). Etc.) is repeatedly executed. A typical algorithm using such a key generation method and data conversion processing is the common key block encryption method.
  • 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 difference decryption
  • 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 an encryption processing method for realizing a highly-common key block encryption algorithm resistant to linear analysis and differential analysis, and The purpose of providing computer 'programs.
  • the first aspect of the present invention provides
  • the SPN type F function having a non-linear conversion unit and a linear conversion unit is configured to repeatedly execute multiple rounds.
  • the linear transformation unit of the F function corresponding to each of the plurality of rounds performs a linear transformation process on the n-bit and total mn-bit inputs output from each of the m non-linear transformation units by square MDS (
  • the inverse matrix: La _ 1 the matrix constituted by m column vectors arbitrarily selected from column vectors constituting the Lb _1 is square It is an MDS matrix.
  • the algorithm of the Feistel type common key block cryptographic processing is a cryptographic processing algorithm having 2r rounds, and the linear conversion unit of the F function is r It is characterized in that a linear transformation process is performed in which q different square MDS matrices of 2 ⁇ q ⁇ r are sequentially applied repeatedly in all even rounds and r odd rounds.
  • each of the plurality of different square MDS matrices applied in the linear transformation unit of the F function is arbitrarily selected from a column vector constituting the plurality of square MDS matrices.
  • the matrix composed of m column vectors selected in is a square MDS matrix that is linearly independent.
  • each of a plurality of different square MDS matrices applied in the linear transformation unit of the F function is arbitrarily selected from column vectors constituting the plurality of square MDS matrices.
  • the matrix composed of the m column vectors selected for is also a square MDS matrix that becomes a square MDS matrix.
  • each of the plurality of different square MDS matrices applied in the linear transformation unit of the F function includes all elements constituting the plurality of square MDS matrices. It is composed of a matrix composed of column vectors extracted from a matrix M ′ composed of row vectors selected from a square MDS matrix M.
  • the second aspect of the present invention provides:
  • An encryption processing method for executing Feistel type common key block encryption processing The SPN type F function that performs nonlinear transformation processing and linear transformation processing is repeatedly executed for multiple rounds.
  • the linear transformation processing of the F function corresponding to each of the plurality of rounds applies a square MDS (Maximum Distance Separable) matrix to the linear transformation processing for the n-bit and total mn-bit inputs output by each of the m non-linear transformation sections.
  • This is executed as a linear transformation process, and at least in each of the consecutive even-numbered rounds and the consecutive odd-numbered rounds, different square MDS matrices: La, Lb are applied, and the inverse matrix of the square MDS matrix: La_ 1 , L b
  • the cryptographic processing method is characterized by executing a linear transformation process using a square MDS matrix in which the matrix constituted by m column vectors arbitrarily selected from the column vectors constituting _1 is linearly independent.
  • the inverse matrix: La _ 1 the matrix constituted by m column vectors arbitrarily selected from column vectors constituting the Lb _1 is square It is characterized by executing a linear transformation process using a square MDS matrix that is an MDS matrix.
  • the algorithm of the Feistel type common key block cryptographic processing is a cryptographic processing algorithm having 2r rounds, and the linear transformation processing of the F function is r It is characterized in that linear transformation processing is performed by sequentially and repeatedly applying q kinds of different square MDS matrices of 2 ⁇ q ⁇ r in all even rounds and r odd rounds.
  • each of a plurality of different square MDS matrices applied in the linear transformation processing of the F function is a column vector constituting the plurality of square MDS matrices.
  • the matrix composed of m column vectors arbitrarily selected from is a square MDS matrix that is linearly independent.
  • each of a plurality of different square MDS matrices applied in the linear transformation processing of the F function is a column vector constituting the plurality of square MDS matrices.
  • the matrix composed of m column vectors arbitrarily selected from is also a square MDS matrix that becomes a square MDS matrix.
  • each of the different square MDS matrices to be applied in the logic is a square MDS matrix including all elements constituting the square MDS matrix M force A column extracted from the matrix M ′ constituted by the selected row vector It is characterized by a matrix composed of vectors.
  • the third aspect of the present invention provides
  • the linear transformation processing of the F function corresponding to each of the plurality of rounds applies a square MDS (Maximum Distance Separable) matrix to the linear transformation processing for the n-bit and total mn-bit inputs output by each of the m non-linear transformation sections.
  • a linear transformation step to be executed as a linear transformation process
  • the computer 'program of the present invention is, for example, a storage medium or a communication medium provided in a computer-readable format to a computer system capable of executing various program' codes, such as a CD or an FD.
  • a computer program that can be provided via a recording medium such as MO or a communication medium such as a network.
  • system is a logical group configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
  • the linear transformation process of the function is executed as a linear transformation process to which a square MDS (Maximum Distance Separable) matrix is applied, and a square MDS matrix that is different for each of at least consecutive even and odd rounds: La, Inverse matrix of the square MDS matrix to which Lb is applied: A force that is a linearly independent matrix composed of m column vectors arbitrarily selected from the column vectors constituting La _1 and Lb _1 , or a square MDS matrix Since it is configured to execute linear transformation processing using a square MDS matrix, the resistance to linear attacks in common key block ciphers is improved, and Analysis will be difficulty increases, the highly safe encryption processing is realized.
  • a square MDS Maximum Distance Separable
  • an SPN type F function having a non-linear conversion unit and a linear conversion unit is applied to each of a plurality of rounds using a Feistel-type common key block encryption process that repeatedly executes a plurality of rounds.
  • the corresponding F-function linear transformation process is executed as a linear transformation process using a square MDS (Maximum Distance Separable) matrix, and a square MDS matrix that is different in each of at least consecutive even rounds and consecutive odd rounds. Since this square MDS matrix itself constitutes a linear independence force or square MDS matrix, it is guaranteed that simultaneous differential cancellation does not occur due to the contribution of the active S box, and it is common.
  • the minimum number of active S-boxes in the entire cryptographic function which is one of the strength indicators against differential attacks in key block ciphers
  • the number can be increased. With this configuration, resistance against both linear attacks and differential attacks is 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 showing an example of a square matrix applied to the linear transformation process in the linear transformation unit.
  • FIG. 5 is a diagram for explaining a specific example in which linear transformation using a square matrix is performed in the linear transformation unit of the F function to generate an F function output difference AYi.
  • FIG. 7 is a diagram for explaining the definition of arbitrary-stage simultaneous difference cancellation in a common key block cipher.
  • FIG. 8 shows an example of a square MDS matrix.
  • FIG. 9 is a diagram for explaining an example of setting a square MDS matrix as a linear transformation matrix of the F function of each round in the common key block cipher processing algorithm according to the present invention.
  • FIG. 10 is a flowchart for explaining a square MDS matrix setting processing sequence as a linear transformation matrix of an F function in each round in the common key block cipher processing algorithm according to the present invention.
  • FIG. 11 is a flow diagram illustrating a square MDS matrix generation process example al that realizes improved resistance against differential attacks as a method of generating a square MDS matrix that is a linear transformation matrix set for the F function of each round.
  • FIG. 12 is a flow diagram illustrating a square MDS matrix generation processing example a2 that realizes improved resistance to differential attacks as a method of generating a square MDS matrix that is a linear transformation matrix set for the F function of each round.
  • FIG. 13 is a flow diagram illustrating a square MDS matrix generation processing example a3 that realizes improved resistance to differential attacks as a method of generating a square MDS matrix that is a linear transformation matrix set in the F function of each round.
  • FIG. 14 is a diagram for explaining a specific method of generation example a3 of a square MDS matrix that is a linear transformation matrix set to the F function of each round.
  • FIG. 15 is a flow diagram illustrating a square MDS matrix generation processing example b 1 that realizes improved resistance to linear attacks as a method of generating a square MDS matrix that is a linear transformation matrix set for the F function of each round.
  • FIG.16 A square MDS matrix generator that is a linear transformation matrix set for the F function of each round As a method, it is a flow diagram illustrating a square MDS matrix generation processing example b2 that realizes improved resistance to linear attacks.
  • FIG. 17 A flow diagram illustrating an example of square MDS matrix generation processing that realizes improved resistance against differential attacks and linear attacks as a method of generating a square MDS matrix that is a linear transformation matrix set for the F function of each round. is there.
  • 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 can be mainly divided into a round function part that performs conversion of input data and a key schedule part that generates a key to be applied in each round of the round function part.
  • 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 the US Federal Standard Encryption Method.
  • DES Data Encryption Standard
  • a typical common key block cipher structure called a Feistel structure will be described with reference to FIG.
  • the Feistel structure has a structure that converts plaintext into ciphertext by simple repetition of a conversion function.
  • the plaintext length is 2mn bits. However, m and n are both integers.
  • the 2 mn bits of plaintext 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 the data conversion function included in each round is called an F function 120.
  • a round function the data conversion function included in each round is called an F function 120.
  • FIG. 1 a configuration example in which the F function (round function) 120 is repeated r stages is shown.
  • the mn-bit input data X and the key generation unit are also input.
  • the mn-bit round key K 103 is input to the F function 120, and the F function 120 After the data conversion process, mn bit data Y is output.
  • the output is the input data from the other previous stage (input data P in the first stage) and the exclusive OR part 104.
  • 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 has a plurality of S-boxes 121 for executing nonlinear transformation processing, as shown in FIG. 2 (b).
  • the mn bit input value X of the round function part is exclusive ORed with the round key K that also receives the key schedule part power, and the output performs multiple non-linear transformation processing for each n bits (m ) S box 121 entered It is.
  • a nonlinear conversion process using a conversion table is executed.
  • Output value Z of mn bits which is output data from S box 121, is input to 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 of the previous stage force, 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 mX n (m, n: integer) bits, and the nonlinear conversion layer is an S box as a nonlinear conversion layer having n bits of input / output.
  • 121 has a configuration aligned with m parallel elements, and the linear transformation unit 122 as a linear transformation layer has elements on the extension field GF (2 n ) of 2 defined by the irreducible polynomial of order n. Executes linear transformation based on the m-th order square matrix.
  • FIG. 3 shows an example of a square matrix applied to the linear conversion process in the linear conversion unit 122.
  • Non-linear transformation unit (S bot 121) Forces the output of m n-bit data Z [l], Z [2], Z [m] to which the force is output, applying a predetermined square matrix 125 The linear transformation is performed by, and Y [l], ⁇ [2], and Y [m] are determined as F function (round function) outputs. However, at this time, the linear operation for the matrix elements of each data is performed on the two extension fields GF (2 n ) that are preliminarily determined.
  • 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 following setting mechanism of the data states 1 to 4.
  • 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).
  • AYi (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.
  • the input difference to i + 1) is ⁇ Xi + 1.
  • the output difference AYi + l 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 is that such a data state can be obtained by setting a large number of differential input data!
  • AYi + l (ad, 00, 00, 00, 00, 00, 00, 00, 00, 00), and has a non-zero difference value (difference: 34 in the example of FIG. 4) as in the i-round. Only the position of the S-box (first S box (S1)) has a non-zero value. It should be noted that ad ⁇ 00.
  • ⁇ + 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 the strength indicators against differential attacks.
  • the force that presents 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 active S-box when the right force is also input to the left, that is, when only the i-th round and i + 2nd round are considered as active S-box calculation target rounds, the active S-box The number is force 2, and the left force is input to the right F function, that is, the number of active S boxes is 8 in the i + 1 round, but the number of active S boxes is 8 in the i + 3 round due to simultaneous difference cancellation. Since the number of active S-boxes becomes 0, the analysis process of nonlinear transformation processing of each S-box by differential analysis becomes easy.
  • the common-key block cipher algorithm shown in Fig. 4 has the same linear transformation matrix applied in the linear transformation unit in each round, and due to this configuration, input is especially performed from right to left.
  • Side force in function Two active S-boxes 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 the five-stage configuration occurs, for example, based on the following setting mechanism of the data states 1 to 7.
  • 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 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.
  • AYi (98, c4, b4, d3, ac, 72, Of, 32) as the i-round F function output difference is an input that is all zero in the exclusive OR unit 141 shown in FIG.
  • the input difference to is ⁇ + 1.
  • the output difference AYi + l 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 is 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), and the non-zero difference value (difference: 34 in the example of FIG. 6) 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 the i + 4 round Active S box (SI) matches the output difference of the i round Active S box (SI), that is, As shown in Fig. 6, the output difference of the active S box ((S1) in i + 4 round 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),
  • one of the strength indicators for differential attacks in common key block ciphers is the minimum number of active S-boxes in the entire cryptographic function, and the larger the minimum number of active S-boxes, the greater the resistance against differential attacks. It is judged that tolerance is high.
  • 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 is based on input data (plain text) that exceeds a predetermined amount and input data (plain text) with a certain difference! / Line
  • 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 encryption processing algorithm of the present invention will be described below.
  • the cryptographic processing algorithm of the present invention has a configuration with improved resistance to attacks such as the linear analysis and differential analysis described above, that is, a configuration in which the difficulty of key analysis is increased and the security is improved.
  • One feature of the cryptographic processing algorithm according to the present invention is that it does not have a configuration in which a common processing (transformation matrix) is applied to a linear transformation unit configured as an F function in each round, as in the conventional DES algorithm.
  • it has a configuration that executes linear transformation processing applying a different square MDS matrix to each of at least consecutive even-numbered rounds and consecutive odd-numbered rounds.
  • the encryption processing algorithm according to the present invention is a square MDS (Maximum Distance Sepa (rable) matrix property to achieve a structure where few, simultaneous differential cancellations based on active S-boxes do not occur or are unlikely to occur, increase the minimum number of active S-boxes and be more resistant to differential attacks Realize common key block cipher processing. Or, it has a configuration that increases the difficulty of linear analysis performed as a known plaintext attack.
  • the cryptographic processing algorithm of the present invention has a structure of a typical common key block cipher called a Feistel structure having an SPN type F function described with reference to Figs.
  • a structure that transforms plaintext into ciphertext or transforms ciphertext into plaintext by simple iteration over multiple rounds of an SPN-type F function with a linear transformation section is applied.
  • the plaintext of 2mn bits is converted into two mnbits of data PL (Plain-Left) and PR (Plain-Right)
  • the F function is executed in each round using this as an input value.
  • the F function is a non-linear conversion unit such as an S box cover. This is an F function with SP N type connected with a linear transformation unit.
  • a plurality of different square MDS (Maximum Distance Separation) matrix forces as a matrix for the linear transformation process applied in the linear transformation unit in the F function are used for each round. It is set as a matrix to be applied in the linear transformation part of the F function. Specifically, a square MDS matrix that is different in each of at least consecutive even-numbered rounds and consecutive odd-numbered rounds is applied.
  • 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
  • the non-linear transformation part configured in the F function has n bits of input / output Consists of m S-boxes
  • linear transformation part is defined by n-th irreducible polynomial
  • Figure 8 shows an example of a square MDS matrix when executing a linear transformation process based on an mth-order square matrix with elements on the extension field GF (2 n ) of 2.
  • 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 non-zero elements hw (Mx) of data Mx is greater than the order m of the square MDS matrix.
  • the square MDS matrix is named because the right half of the standard form of the square MDS code (Maximum Distance Separable Code) generator satisfies the above conditions! / is there.
  • a method is proposed in which a matrix satisfying the condition of the square MDS matrix is used for the F function of each round, and a different matrix is set for each round. Specifically, a different square MDS matrix is applied to each of at least consecutive even rounds and consecutive odd rounds.
  • the linear transformation matrix applied by the linear transformation unit in the j-stage F function of the Feistel-type symmetric key block cipher processing configuration with 2r stages (round number) is expressed as MLTj. To do.
  • the Feistel type common key block cipher processing configuration with 2r stages (number of rounds) is used.
  • a matrix selected from a plurality of different square MDS (Maximum Distance Separable) matrices is used as the matrix for the linear transformation process applied to the linear transformation part in the F function at each stage in the generation.
  • q square MDS matrices less than or equal to r: LI, L2, ⁇ ⁇ , Lq are generated in response to a Feistel-type symmetric key block cipher processing configuration with 2r rounds
  • the upper-stage F function is used as a matrix for the linear transformation processing to be applied to the linear transformation section in the odd-numbered F function in the Feistel-type symmetric key block cipher processing configuration with 2r rounds.
  • Q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 "in order.
  • the lower-stage F-function forces are also ordered by LI , L2, ⁇ ⁇ , Lq, L1, L2 ' ⁇ q square MDS matrices are repeatedly set.
  • 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.
  • 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 for each round.
  • the F-function 401 in the first round and the F-functions in the other rounds are all connected to the S-box force nonlinear transformation unit and the linear transformation unit as described with reference to Fig. 2.
  • each F function indicates a square MDS matrix 402.
  • LI, L2, and L3 represent three different types of square MDS matrices, and the square MDS matrix applied to the linear transformation process in the linear transformation part of each F function.
  • q is an integer of 2 or more.
  • step S22 after the m-order square MDS matrices LI, L2, and Lq on q GF (2 n ) are generated, the following square MDS matrix setting process is executed.
  • MLT1 LI
  • MLT2 L3
  • MLT3 L2
  • MLT4 L2
  • MLT5 L3
  • MLT6 LI
  • MLT9 L2
  • MLTIO: L2
  • MLT11 L3
  • MLT12 L1
  • q square MDS matrices not more than r, ie, LI, L2, corresponding to the Feistel type common key block cryptographic processing configuration with 2r stages (number of rounds) , ⁇ , Lq, and for the odd-numbered stages the upper-stage F function force is also set to LI, L2, ⁇ , Lq, LI, L2 "in order, and q square MDS matrices are repeatedly set.
  • LI, L2, ⁇ , Lq, LI, L2 ' ⁇ can be used to repeatedly set q square MDS matrices.
  • step S103 Checks if it is linearly independent when any m pieces of qm columns included in q m-order square MDS matrices LI, L2, and Lq are extracted. If the check passes, go to step S103, otherwise return to step S101.
  • the q m-order square MDS matrices LI, L2, and Lq generated in this way are processed according to the processing of [Step S23] and [Step S24] described above with reference to FIG. It is 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 Feistel type common key block cipher processing configuration with 2r (number of rounds).
  • q square MDS matrices are repeatedly set as LI, L2, ..., Lq, LI, L2 '
  • 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 S102 qm included in q m-order square MDS matrices LI, L2, and Lq
  • the linear independence of any m columns was determined, but in the square MDS matrix generation process in this processing example a2, it is included in q m-order square MDS matrices LI, L2, and Lq Check if any m of qm columns is a square MDS matrix. In other words, a stricter checking force S is executed.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ' ⁇ in order from the upper level for the odd-numbered levels, and for the F function of the even-numbered levels, the lower-level F
  • q square MDS matrices are repeatedly set as LI, L 2, ⁇ , Lq, LI, L2 ".
  • Arbitrary m column vectors of the linear transformation matrix included in at least consecutive q F functions in odd rounds in the cryptographic function are square MDS matrices.
  • M rows are arbitrarily selected and extracted from one qm-order square MDS matrix M, and a row M ′ of m rows and qm columns is formed.
  • An m-row, qm-column matrix M contains qm column vectors, which are divided into q groups consisting of m column vectors without duplication, and the column vectors included in each group.
  • M-order square matrices LI, L2, and Lq are output as square MDS matrices to be applied to Feistel symmetric key block ciphers with 2r rounds.
  • 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.
  • m consecutive rows are selected.
  • the m-th order square MDS matrix M shown in the extracted example may be selected and extracted from m arbitrarily spaced rows to form a matrix M ′ of m rows and qm columns.
  • An m-row, qm-column matrix M contains qm column vectors that are arbitrarily divided into X groups of m column vectors without duplication, and the column vectors included in each group.
  • each step of the Feistel type symmetric key block cipher processing configuration with 2r (round number) It is set as a matrix to be applied to the linear transformation process of the linear transformation part of the F function part.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 "in order of the upper-stage forces.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ".
  • the processing example a3 is particularly effective because m, r, increase, and the time cost for the matrix determination processing method of the processing examples a1, a2 described above is enormous, which is realistic. This is a case where it is difficult to determine the matrix 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.
  • the q m-order square MDS matrices LI, L2, and Lq generated in this way are processed according to the processing of [Step S23] and [Step S24] described above with reference to FIG. It is 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 Feistel type common key block cipher processing configuration with 2r (number of rounds).
  • q square MDS matrices are repeatedly set as LI, L2, ..., Lq, LI, L2 '
  • 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 S402 Ml of q m-th square MDS matrices, M2, inverse of Mq Ml- 1, M2 "1, arbitrary in qm number of columns included in Mq _1 m Force to determine linear independence when taking out pieces
  • q m-order square MDS matrix Ml, M2, Mq inverse matrix Ml— 1 , M2 " 1 , Mq _1 Check if it is a square MDS matrix when any m of qm columns included in Mq _1 are extracted. In other words, a stricter check is performed.
  • q square MDS matrices are repeatedly set as LI, L2, ⁇ , Lq, LI, L2 ' ⁇ in order from the upper level for the odd-numbered levels, and for the F function of the even-numbered levels, the lower-level F
  • q square MDS matrices are repeatedly set as LI, L 2, ⁇ , Lq, LI, L2 ".
  • the cryptographic processing algorithm having resistance against differential attacks is the above-described square MDS matrix applied to the processing described with reference to FIGS. 10 to 13, that is, the linear transformation in the linear processing unit of the F function. It can be realized 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 any one of the processing examples b 1 (FIG. 14) and b2 (FIG. 15) described above.
  • 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 LI, L2, ⁇ , Lq, LI, L2 "in order of upper-stage forces.
  • the lower-order F functions are LI, L2, ⁇ ⁇ , Lq, LI, L2 ' ⁇ q square MDS Set the matrix repeatedly. This setting enables cryptographic processing with improved resistance to differential attacks and linear attacks.
  • Input Number of necessary square MDS q, expansion order: n, matrix size: m, q m-order square MDS matrices Ml, M2, Mq are randomly generated on GF (2 n ).
  • the square MDS matrix is a matrix that satisfies the following properties as described above.
  • 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. [0181] Through the above process, q m-order square MDS matrices LI, L2, and Lq are generated. Note that q ⁇ r.
  • Arbitrary m column vectors of the linear transformation matrix included in at least consecutive q F functions in odd rounds in the cryptographic function are square MDS matrices.
  • the difficulty of analyzing both the differential attack and the linear attack is improved, and a highly secure cryptographic process in which the key analysis is difficult 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, and the number of stages As a matrix that is applied to the linear transformation of the linear transformation part of the F function part of each stage of the Feistel-type symmetric key block cipher processing configuration with 2r (round number), LI, L2, Q square MDS matrices are repeatedly set as, Lq, LI, L2- ', and for even-numbered F functions, LI, L2, ..., Lq, LI, L2 "As a key analysis, it is difficult to analyze both differential attacks and linear attacks by repeatedly setting q square MDS matrices. High encryption processing of difficult safety can be realized.
  • the linear conversion matrix has been performed as a data conversion operation from mn bits to mn bits as a matrix of m x m 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 ) corresponds to the 1st to nth rows of the matrix on GF (2), and the first column corresponds to the 1st to nth columns.
  • the i-th row corresponds to the (i- 1) + 1-th row to the (i- 1) + n-th row
  • the i-th row corresponds to the (i- 1) + 1-th column to the (i- 1) + n-th column It corresponds to. Therefore, when the matrix defined on GF (2) is used for the operation to retrieve the rows and columns on GF (2 n ), V and U are obtained when the corresponding n rows or n columns are extracted. Let the operation correspond!
  • 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.
  • a CPU (Central processing Unit) 601 shown in FIG. 18 is a processor that executes encryption processing start and end, control of data transmission / reception, data transfer control between each component, and other various programs. It is.
  • the memory 602 is a program executed by the CPU 601 or a ROM (Read-Only-Memory) that stores fixed data as an operation parameter, a process executed by the CPU 601, a program executed by the CPU 601, and a program process!
  • the parameter storage area and the RAM (Random Access Memory) used as the work area will change accordingly.
  • the memory 602 can be used as a storage area for key data and the like necessary for encryption processing.
  • 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, for example, the above-described Feistel type common key block encryption processing algorithm.
  • the power shown here is an example in which the encryption processing means is an individual module. Such an independent encryption processing module is not provided.
  • the encryption processing program is stored in the ROM, and the CPU 601 reads the ROM storage program. You can configure it to run! / ⁇ .
  • the random number generator 604 executes random number generation processing necessary for generating a key necessary for encryption processing.
  • 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, data input for equipment such as an external reader / writer is executed.
  • 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. Can be stored (recorded).
  • a removable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory.
  • Such removable recording media can be provided as V, so-called packaged software.
  • the program can be transferred wirelessly from a 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.
  • the Feistel-type common key block cipher processing that repeatedly executes a SPN-type F function having a nonlinear conversion unit and a linear conversion unit over a plurality of rounds.
  • the F function linear transformation process corresponding to each of the multiple rounds is executed as a linear transformation process to which a square MDS (Maximum Distance Separable) matrix is applied, and at least consecutive even rounds and consecutive odd rounds.
  • a square MDS matrix La and Lb, which are different from each other, and an inverse matrix of the square MDS matrix: La _1 , Lb "is a matrix composed of m column vectors arbitrarily selected from the column vectors constituting 1 Since it is configured to perform linear transformation processing using a square MDS matrix with the power of being linearly independent or a property that constitutes a square MDS matrix, it improves resistance to linear attacks in common key block ciphers and makes it difficult to analyze cryptographic keys, etc. Therefore, encryption processing with high security is realized, so that it is difficult to perform key analysis and the encryption processing execution device that requires security is required. It is applicable.
  • an FN corresponding to each of a plurality of rounds can be obtained by performing a Feistel-type common key block cipher process in which an SPN type F function having a nonlinear conversion unit and a linear conversion unit is repeatedly executed for a plurality of rounds.
  • the linear transformation of the function is performed using the square MDS (Maximum
  • (Distance Separable) matrix is applied as a linear transformation process, and a different square MDS matrix is applied to each of at least consecutive even rounds and consecutive odd rounds, and these square MDS matrices themselves are linear. Since it is configured to construct a force or square MDS matrix that shows independence, it is guaranteed that simultaneous differential cancellation does not occur due to the contribution of the active S box, and it is one of the strength indicators against differential attacks in common key block ciphers. It is possible to increase the minimum number of active S-boxes in a certain cryptographic function. With this configuration, resistance against both linear attacks and differential attacks is improved, and more secure cryptographic processing is realized. Therefore, the present invention can be applied to a cryptographic processing execution device that increases the difficulty of key analysis and requires security.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Lock And Its Accessories (AREA)

Abstract

 解析困難性を高めた、安全性の高い暗号処理装置および方法を実現する。非線形変換部および線形変換部を有するSPN型のF関数を、複数ラウンド繰り返し実行するFeistel型共通鍵ブロック暗号処理において、複数ラウンド各々に対応するF関数の線形変換処理を、正方MDS(Maximum Distance Separable)行列を適用した線形変換処理とする。少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々において設定される正方MDS行列の逆行列に含まれる任意のm個の列ベクトルが正方MDS行列である設定とする。本構成により、共通鍵ブロック暗号における線形攻撃に対する耐性の向上した暗号処理が実現される。

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型共通鍵ブロック暗号処理を実行する暗号処理装置であり、
非線形変換部および線形変換部を有する SPN型の F関数を、複数ラウンド繰り返 し実行する構成を有し、
前記複数ラウンド各々に対応する F関数の線形変換部は、 m個の非線形変換部各 々の出力する nビット、総計 mnビットの入力に対する線形変換処理を、正方 MDS (
Maximum Distance Separable)行列を適用した線形変換処理として実行する 構成であり、
少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々においては、異 なる正方 MDS行列: La, Lbが適用され、かつ該正方 MDS行列の逆行列: La_ 1, L b_1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行 列が線形独立であることを特徴とする暗号処理装置にある。
[0012] さらに、本発明の暗号処理装置の一実施態様において、さらに、前記逆行列: La_ 1 , Lb_1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する 行列が正方 MDS行列であることを特徴とする。
[0013] さらに、本発明の暗号処理装置の一実施態様において、前記 Feistel型共通鍵ブ ロック暗号処理のアルゴリズムは、ラウンド数 2rの暗号処理アルゴリズムであり、前記 F関数の線形変換部は、 r個の全ての偶数ラウンドおよび r個の全ての奇数ラウンドに おいて 2≤ q < rの q種類の異なる正方 MDS行列を順次繰り返し適用した線形変換 処理を実行する構成であることを特徴とする。
[0014] さらに、本発明の暗号処理装置の一実施態様において、前記 F関数の線形変換部 において適用する異なる複数の正方 MDS行列の各々は、該複数の正方 MDS行列 を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行列が 線形独立である正方 MDS行列であることを特徴とする。
[0015] さらに、本発明の暗号処理装置の一実施態様において、前記 F関数の線形変換部 において適用する異なる複数の正方 MDS行列の各々は、該複数の正方 MDS行列 を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行列も 正方 MDS行列となる正方 MDS行列であることを特徴とする。
[0016] さらに、本発明の暗号処理装置の一実施態様において、前記 F関数の線形変換部 において適用する異なる複数の正方 MDS行列の各々は、該複数の正方 MDS行列 を構成する要素を全て含む正方 MDS行列 Mから選択された行ベクトルによって構 成される行列 M'から抽出された列ベクトルによって構成される行列によって構成され ていることを特徴とする。
[0017] さらに、本発明の第 2の側面は、
Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、 非線形変換処理および線形変換処理を実行する SPN型の F関数を、複数ラウンド 繰り返し実行し、
前記複数ラウンド各々に対応する F関数の線形変換処理は、 m個の非線形変換部 各々の出力する nビット、総計 mnビットの入力に対する線形変換処理を、正方 MDS (Maximum Distance Separable)行列を適用した線形変換処理として実行し、 少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々においては、異 なる正方 MDS行列: La, Lbが適用され、かつ該正方 MDS行列の逆行列: La_ 1, L b_1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行 列が線形独立である正方 MDS行列による線形変換処理を実行することを特徴とす る暗号処理方法にある。
[0018] さらに、本発明の暗号処理方法の一実施態様において、さらに、前記逆行列: La_ 1 , Lb_1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する 行列が正方 MDS行列である正方 MDS行列による線形変換処理を実行することを 特徴とする。
[0019] さらに、本発明の暗号処理方法の一実施態様において、前記 Feistel型共通鍵ブ ロック暗号処理のアルゴリズムは、ラウンド数 2rの暗号処理アルゴリズムであり、前記 F関数の線形変換処理は、 r個の全ての偶数ラウンドおよび r個の全ての奇数ラウンド にお 、て 2≤ q< rの q種類の異なる正方 MDS行列を順次繰り返し適用した線形変 換処理を実行することを特徴とする。
[0020] さらに、本発明の暗号処理方法の一実施態様において、前記 F関数の線形変換処 理において適用する異なる複数の正方 MDS行列の各々は、該複数の正方 MDS行 列を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行列 が線形独立である正方 MDS行列であることを特徴とする。
[0021] さらに、本発明の暗号処理方法の一実施態様において、前記 F関数の線形変換処 理において適用する異なる複数の正方 MDS行列の各々は、該複数の正方 MDS行 列を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行列 も正方 MDS行列となる正方 MDS行列であることを特徴とする。
[0022] さらに、本発明の暗号処理方法の一実施態様において、前記 F関数の線形変換処 理において適用する異なる複数の正方 MDS行列の各々は、該複数の正方 MDS行 列を構成する要素を全て含む正方 MDS行列 M力 選択された行ベクトルによって 構成される行列 M'から抽出された列ベクトルによって構成される行列によって構成さ れていることを特徴とする。
[0023] さらに、本発明の第 3の側面は、
Feistel型共通鍵ブロック暗号処理を実行するコンピュータ 'プログラムであり、 非線形変換処理および線形変換処理を実行する SPN型の F関数を、複数ラウンド 繰り返し実行するステップを有し、
前記複数ラウンド各々に対応する F関数の線形変換処理は、 m個の非線形変換部 各々の出力する nビット、総計 mnビットの入力に対する線形変換処理を、正方 MDS (Maximum Distance Separable)行列を適用した線形変換処理として実行する 線形変換ステップであり、
前記線形変換ステップにお 、て、少なくとも連続する偶数ラウンドおよび連続する 奇数ラウンドの各々では、異なる正方 MDS行列: La, Lbが適用され、かつ該正方 M DS行列の逆行列: La_1, Lb_1を構成する列ベクトルから任意に選択した m個の列 ベクトルによって構成する行列が線形独立である正方 MDS行列による線形変換処 理を実行することを特徴とするコンピュータ 'プログラムにある。
[0024] なお、本発明のコンピュータ 'プログラムは、例えば、様々なプログラム 'コードを実 行可能なコンピュータ ·システムに対して、コンピュータ可読な形式で提供する記憶 媒体、通信媒体、例えば、 CDや FD、 MOなどの記録媒体、あるいは、ネットワークな どの通信媒体によって提供可能なコンピュータ 'プログラムである。このようなプロダラ ムをコンピュータ可読な形式で提供することにより、コンピュータ 'システム上でプログ ラムに応じた処理が実現される。
[0025] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図 面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書において システムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内に あるものには限らない。
発明の効果 [0026] 本発明の構成によれば、非線形変換部および線形変換部を有する SPN型の F関 数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理において、複 数ラウンド各々に対応する F関数の線形変換処理を、正方 MDS (Maximum Dist ance Separable)行列を適用した線形変換処理として実行するとともに、少なくとも 連続する偶数ラウンドおよび連続する奇数ラウンドの各々にお 、て異なる正方 MDS 行列: La, Lbを適用し、かつ該正方 MDS行列の逆行列: La_1, Lb_1を構成する列 ベクトルから任意に選択した m個の列ベクトルによって構成する行列が線形独立であ る力、あるいは正方 MDS行列を構成する性質とした正方 MDS行列による線形変換 処理を実行する構成としたので、共通鍵ブロック暗号における線形攻撃に対する耐 性が向上し、暗号鍵等の解析困難性が高まることとなり、安全性の高い暗号処理が 実現される。
[0027] さらに、本発明の構成によれば、非線形変換部および線形変換部を有する SPN型 の F関数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理にぉ ヽ て、複数ラウンド各々に対応する F関数の線形変換処理を、正方 MDS (Maximum Distance Separable)行列を適用した線形変換処理として実行するとともに、少 なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々において異なる正 方 MDS行列を適用する構成とし、これらの正方 MDS行列自身が、線形独立性を示 す力 または正方 MDS行列を構成する構成としたので、アクティブ Sボックスの寄与 による同時差分キャンセルの発生しないことが保証され、共通鍵ブロック暗号におけ る差分攻撃に対する強度指標のひとつである暗号ィ匕関数全体でのアクティブ Sボック スの最少数を大きくすることが可能となる。本構成により、線形攻撃、差分攻撃の双 方に対して耐性が向上し、より安全性の高い暗号処理が実現される。
図面の簡単な説明
[0028] [図 l]Feistel構造を持つ代表的な共通鍵ブロック暗号の構成を示す図である。
[図 2]ラウンド関数部として設定される F関数の構成について説明する図である。
[図 3]線形変換部にぉ 、て、線形変換処理に適用する正方行列の例を示す図である
[図 4]m= 8, n= 8の 128bitブロック暗号における 3段の同時差分キャンセルの様子 を説明する図である。
圆 5]F関数の線形変換部において、正方行列による線形変換が実行されて、 F関数 出力差分 AYiを生成する具体例を説明する図である。
[図 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行列生成処理例 b 1を 説明するフロー図である。
[図 16]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、線形攻撃に対する耐性向上を実現する正方 MDS行列生成処理例 b2を 説明するフロー図である。
[図 17]各ラウンドの F関数に設定する線形変換行列である正方 MDS行列の生成手 法として、差分攻撃および線形攻撃に対する耐性向上を実現する正方 MDS行列生 成処理例を説明するフロー図である。
[図 18]本発明に力かる暗号処理を実行する暗号処理装置としての ICモジュールの構 成例を示す図である。
発明を実施するための最良の形態
[0029] 以下、本発明の暗号処理装置、および暗号処理方法、並びにコンピュータ 'プログ ラムの詳細について説明する。なお、説明は、以下の項目順に行う。
1.共通鍵ブロック暗号アルゴリズムにおける差分解析処理
2.共通鍵ブロック暗号アルゴリズムにおける線形解析処理
3.本発明に基づく暗号処理アルゴリズム
(3— a)差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— b)線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— c)差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の 生成および F関数への設定例
[0030] [1.共通鍵ブロック暗号アルゴリズムにおける差分解析処理]
まず、 DES (Data Encryption Standard)暗号処理に代表される共通鍵ブロック暗号 アルゴリズムにおける差分解析処理の概要にっ 、て、一般ィ匕した共通鍵ブロック暗 号モデルを用いて説明する。
[0031] 共通鍵ブロック暗号のアルゴリズムは、主として、入力データの変換を実行するラウ ンド関数部と、ラウンド関数部の各ラウンドで適用する鍵を生成する鍵スケジュール部 とに分けることができる。ラウンド関数部の各ラウンドで適用する鍵 (副鍵)は、 1つの マスター鍵 (主鍵)に基づいて、鍵スケジュール部に入力されて生成され、各ラウンド 関数部で適用される。この共通鍵暗号方式の代表的な方式に米国連邦標準暗号方 式としての DES (Data Encryption Standard)がある。
[0032] Feistel構造と呼ばれる代表的な共通鍵ブロック暗号の構造について、図 1を参照 して説明する。
[0033] Feistel構造は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造 を持つ。平文の長さを 2mnビットとする。ただし、 m, nは共に整数である。初めに、 2 mnビットの平文を、 mnビットの 2つの入力データ P (Plain- Left) 101, P (Plain-Right
L R
)102に分割し、これを入力値とする。
[0034] Feistel構造はラウンド関数とよばれる基本構造の繰り返しで表現され、各ラウンド に含まれるデータ変換関数は F関数 120と呼ばれる。図 1の構成では、 F関数 (ラウン ド関数) 120が r段繰り返された構成例を示して 、る。
[0035] 例えば第 1番目のラウンドでは、 mnビットの入力データ Xと、鍵生成部(図示せず) 力も入力される mnビットのラウンド鍵 K 103が F関数 120に入力され、 F関数 120に おけるデータ変換処理の後に mnビットのデータ Yを出力する。出力はもう片方の前 段からの入力データ (第 1段の場合は入力データ P )と排他的論理和部 104におい
て、排他的論理和演算がなされ、 mnビットの演算結果が次のラウンド関数へと出力さ れる。この処理、すなわち F関数を定められたラウンド数 (r)だけ繰り返し適用して暗 号化処理が完了し、暗号文の分割データ C (Cipher- Left)、 C (Cipher- Right)が出
L R
力される。以上の構成より、 Feistel構造の復号処理はラウンド鍵を挿入する順序を 逆にするだけでよぐ逆関数を構成する必要がないことが導かれる。
[0036] 各ラウンドの関数として設定される F関数 120の構成について、図 2を参照して説明 する。図 2 (a)は、 1つのラウンドにおける F関数 120に対する入力および出力を示す 図であり、図 2 (b)は、 F関数 120の構成の詳細を示す図である。 F関数 120は、図 2 ( b)に示すように、非線形変換層と線形変換層を接続したいわゆる SPN型の構成を有 する。
[0037] SPN型の F関数 120は、図 2 (b)に示すように、非線形変換処理を実行する複数の Sボックス(S— box) 121を有する。ラウンド関数部の前段力もの mnビットの入力値 X は、鍵スケジュール部力も入力されるラウンド鍵 Kと排他的論理和が実行され、その 出力が nビットずつ非線形変換処理を実行する複数 (m個)の Sボックス 121に入力さ れる。各 sボックスでは、例えば変換テーブルを適用した非線形変換処理が実行され る。
[0038] Sボックス 121からの出力データである mnビットの出力値 Zは、線形変換処理を実 行する線形変換部 122に入力されて、例えばビット位置の入れ替え処理などの線形 変換処理が実行され、 mnビットの出力値 Yを出力する。この出力値 Yが前段力もの 入力データと排他的論理和され、次のラウンドの F関数の入力値とされる。
[0039] 図 2に示す F関数 120は、入出力ビット長が mX n (m, n:整数)ビットであり、非線 形変換層は nビットの入出力を持つ非線形変換層としての Sボックス 121は、 m個並 列にならんだ構成を有し、線形変換層としての線形変換部 122は n次の既約多項式 で定義される 2の拡大体 GF (2n)上の元を要素として持つ m次の正方行列に基づく 線形変換処理を実行する。
[0040] 線形変換部 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) 上で行われる。
[0041] これまでの Feistel型暗号では、すべての段の F関数に同じ線形変換層を用いてい るため、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質が存在 した。背景技術の欄において説明したように、暗号解析手法の代表的な手法として、 ある差分を持つ入力データ (平文)とその出力データ(暗号文)を多数解析することに より各ラウンド関数における適用鍵を解析する差分解析 (あるいは差分解読法)が知 られており、従来の DES暗号アルゴリズム等の共通鍵ブロック暗号においては、 F関 数 120部の線形変換部 122において適用する処理 (変換行列)を、各段のラウンドに おいて等しいものに設定しているため、差分解析が行いやすぐ結果として鍵の解析 の容易性を招いている。
[0042] 差分の伝播時に、同時に複数の差分がキャンセルする例について、図 4を参照して 説明する。なお、本明細書においては、差分を表す場合には Δ (デルタ)記号をつけ て表す。
[0043] 図 4は m=8, n=8の 128bitブロック暗号における 3段の同時差分キャンセルの様 子を説明する図である。ただし、図中では 64bitのデータをバイト単位で区切ってベ タトルとして表現し、それぞれの要素を 16進数で表記するものとする。
[0044] 3段構成を持つ F関数での同時差分キャンセルは、例えば以下のデータ状態 1〜4 の設定メカニズムに基づいて発生する。以下に説明するメカニズムの発生するデータ 状態は、多数の差分入力データを設定することで発生させることができるデータ状態 であり、いわゆる差分解析における鍵 (ラウンド鍵)の解析において発生し得る。
[0045] (状態 1)
iラウンドへの入力差分の左半分は、すべてゼロである入力差分(AXi— 1 = (00, 00, 00, 00, 00, 00, 00, 00) )であり、右半分の入力差分力 Sただ、ひとつの S— box への入力を除いてゼロである入力差分(AXi= (34, 00, 00, 00, 00, 00, 00, 00 ) )であるとする。このデータ状態は、多数の差分入力データを設定することで、 iラウ ンドにおいて、このようなデータ状態を得ることができるということである。
[0046] なお、 ΔΧί= (34, 00, 00, 00, 00, 00, 00, 00)の 8つの各要素は、 F関数中に 構成される m個(m=8)の Sボックス各々に対する入力差分に対応する。差分(34) が第 1Sボックス(図 4中の(S1) )に入力され、(00)が、第 2〜8Sボックスに対する入 力差分である。
[0047] なおゼロ(00)の入力差分を持つ Sボックスの出力差分はゼロ(00)であり、差分デ ータに関する限り、ゼロ(00)の入力差分を持つ Sボックスは、何の作用も行なってい ないものであり、アクティブでないすなわち非アクティブ Sボックスと呼ばれる。一方、 非ゼロの入力差分(図 4の例では差分: 34)を持つ Sボックスは、非ゼロの入力差分に 対応した非線形変換結果を出力差分として発生させるので、アクティブ Sボックス (Ac tive S— box)と呼ばれる。
[0048] 図 4の例では、非ゼロの入力差分(34)を入力する 1つのアクティブ Sボックス(S1) の出力差分 (b7)を発生させており、その他の非アクティブ Sボックス S2〜S8はゼロ の入力差分 (00)に基づいて出力差分 (00)を発生させ、線形変換部の差分入力とし ている。
[0049] (状態 2)
iラウンドへの非ゼロの入力差分(図 4の例では差分: 34)を持つ Sボックス(以下、ァ クティブ Sボックス (Active S-box)と呼ぶ)力もの出力差分は線形変換層で拡散さ れたのち F関数力 出力(出力値 = AYi)され、そのまま次のラウンドへの入力差分 AXi+ lとなる。
[0050] 図 4の例における線形変換は、各ラウンドの F関数において共通する例えば図 5に 示すある特定の正方行列 125による線形変換が実行され iラウンドの F関数出力差分 としての AYi= (98, c4, b4, d3, ac, 72, Of, 32)を出力する。図 5に示す線形変 換構成力ら理解されるように、出力差分 AYi= (98, c4, b4, d3, ac, 72, Of, 32) は、 1つのアクティブ Sボックス(SI)力もの出力要素 Z[l] =b7にのみ依存した値とし て決定される。
[0051] この iラウンドの F関数出力差分としての AYi= (98, c4, b4, d3, ac, 72, Of, 32) は、図 4に示す排他的論理和部 131において、すべてゼロである入力差分(Δ Xi— 1 = (00, 00, 00, 00, 00, 00, 00, 00)と 他的餘理禾口(XOR)演算力 s実行され、演 算結果が、次のラウンド (i+ 1)への入力差分 Δ Xi+ 1となる。
[0052] iラウンドの F関数出力差分としての AYi= (98, c4, b4, d3, ac, 72, Of, 32)と、 すべてゼロである入力差分 AXi— 1 = (00, 00, 00, 00, 00, 00, 00, 00)との排 他的論理和 (XOR)結果は、 AYiであるので、次のラウンド (i+ 1)への入力差分 ΔΧ ί+ 1 = ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)となる。
[0053] (状態 3)
i+ 1ラウンドの F関数からの出力差分 AYi+ lが、 iラウンドでの Active S— boxの 位置にのみ非ゼロ値をもつ。このデータ状態は、多数の差分入力データを設定する ことで、このようなデータ状態を得ることができると!/、うことである。
[0054] すなわち、 AYi+ l = (ad, 00, 00, 00, 00, 00, 00, 00)であり、 iラウンドと同様 、非ゼロの差分値(図 4の例では差分: 34)を持つ S— boxの位置(第 1Sボックス(S1 ) )にのみ非ゼロ値をもつ。なお、明ら力に ad≠00である。
[0055] (状態 4) i+ 2ラウンドのアクティブ Sボックス (Active S— box) (SI)の出力差分が iラウンド でのアクティブ Sボックス (Active S -box) (SI)の出力差分と一致した場合、すな わち、図 4に示すように i+ 2ラウンドのアクティブ Sボックス((S1)の出力差分が b7と なり、 iラウンドでのアクティブ Sボックス(S1)の出力差分 (b7)と一致する。このデータ 状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることが できるということである。
[0056] このデータ状態が発生すると、 i+ 2ラウンドの F関数の出力差分 AYi+ 2= (98, c 4, b4, d3, ac, 72, Of, 32)力 2つ前のラウンドである iラウンドの F関数の出力差 分 AYi= (98, c4, b4, d3, ac, 72, Of, 32)と一致することになる。
[0057] この結果、排他的論理和部 133では、
ΔΧί+ 1 = ΔΥί= (98, c4, b4, d3, ac, 72, Of, 32)と、
ΔΥί+ 2= (98, c4, b4, d3, ac, 72, Of, 32)と、
の同一の値同士の排他的論理和演算が実行されることになり、排他的論理和演算結 果としてオール 0の値を出力する。
[0058] その結果、次の段 (ラウンド i+ 3)への出力差分の前段 (i+ 2ラウンド)力 の左の入 力差分 AXi+ 3= (00, 00, 00, 00, 00, 00, 00, 00)となる。
[0059] このラウンド i+ 3への左入力 ΔΧί+ 3= (00, 00, 00, 00, 00, 00, 00, 00)は、 ラウンド iへの左入力 AXi— 1 = (00, 00, 00, 00, 00, 00, 00, 00)と同様オール ゼロであり、ラウンド i+ 3以降のラウンドにおいても、ラウンド i〜i+ 2と同様の処理が 繰り返される可能性がある。
[0060] この結果、ラウンド数の伸びに対してアクティブ Sボックスの数が増大せず、差分攻 撃に対する強度がそれほど伸びないという問題を発生させる。
[0061] 共通鍵ブロック暗号において、差分攻撃に対する強度指標のひとつとして、暗号ィ匕 関数全体でのアクティブ Sボックスの最少数が知られて!/、る。アクティブ Sボックス数の 最少数が大きいほど差分攻撃に対する耐性が高いと判断される。
[0062] 前述したように、差分解析 (差分攻撃)にお 、ては、ある差分を持つ入力データ (平 文)とその出力データ(暗号文)を多数設定してこの対応を解析することにより各ラウ ンド関数における適用鍵を解析する手法であり、この差分解析において、アクティブ sボックスの数を少なくできれば、解析が容易となり、解析プロセス数を削減できる。
[0063] 上述の図 4を参照した例では、第 1の Sボックス(S1)のみがアクティブ Sボックスであ るパターンの発生状態を提示した力 その他の Sボックス(S2〜S8)についても、差 分解析の入力データの設定によって、各 Sボックスのみをアクティブ Sボックスとした 設定が可能であり、このような差分解析プロセスを実行することにより、各 Sボックスの 非線形変換処理の解析、さらに F関数に対して入力されるラウンド鍵の解析が可能と なる。
[0064] このような差分解析に対する耐性を向上させるためには、アクティブ Sボックスの数 が常に多い状態を維持すること、すなわち、アクティブ Sボックスの最少数が多いこと が必要である。
[0065] 図 4を参照して説明した例において、右力も左へ入力を行なう F関数、すなわち、第 iラウンドと第 i+ 2ラウンドのみをアクティブ Sボックス算出処理対象ラウンドとしてみた 場合、アクティブ Sボックス数はわず力 2であり、左力も右へ入力を行なう F関数、すな わち、第 i+ 1ラウンドではアクティブ Sボックス数が 8であるものの、同時差分キャンセ ルにより第 i+ 3ラウンドでのアクティブ Sボックス数が 0となってしまうため、差分解析 による各 Sボックスの非線形変換処理の解析処理が容易となる。
[0066] 図 4に示す共通鍵ブロック暗号アルゴリズムは、各ラウンドにおける線形変換部にお いて適用する線形変換行列が等しいものであり、この構成に起因して、特に右から左 へ入力を行う F関数におけるわず力 2つのアクティブ Sボックスにより同時差分キャン セルの発生可能性を引き起こしている。従って、ラウンド数の伸びに対してアクティブ Sボックスの最少数が十分に増大せず、差分攻撃に対する強度がそれほど伸びない という問題がある。
[0067] 次に、同様に、同じ線形変換行列をすベての段 (ラウンド)の F関数に用いる構成に おいて、 5ラウンドにまたがる同時差分キャンセルの発生メカニズムについて、図 6を 参照して説明する。
[0068] 図 6は m=8, n=8の 128bitブロック暗号における 5段の同時差分キャンセルの様 子を説明する図である。ただし、図中では 64bitのデータをバイト単位で区切ってベ タトルとして表現し、それぞれの要素を 16進数で表記するものとする。 [0069] 5段構成を持つ F関数での同時差分キャンセルは、例えば以下のデータ状態 1〜7 の設定メカニズムに基づいて発生する。以下に説明するメカニズムの発生するデータ 状態は、多数の差分入力データを設定することで発生させることができるデータ状態 であり、いわゆる差分解析における鍵 (ラウンド鍵)の解析において発生し得る。
[0070] (状態 1)
iラウンドへの入力差分の左半分は、すべてゼロである入力差分(AXi— 1 = (00, 00, 00, 00, 00, 00, 00, 00) )であり、右半分の入力差分力 Sただ、ひとつの S— box への入力を除いてゼロである入力差分(AXi= (34, 00, 00, 00, 00, 00, 00, 00 ) )であるとする。このデータ状態は、多数の差分入力データを設定することで、 iラウ ンドにおいて、このようなデータ状態を得ることができるということである。
[0071] なお、 ΔΧί= (34, 00, 00, 00, 00, 00, 00, 00)の 8つの各要素は、 F関数中に 構成される m個(m= 8)の Sボックス各々に対する入力差分に対応する。(34)が第 1 Sボックス(図 6中の(S1) )に入力され、(00)が、第 2〜8Sボックスに対する入力差分 である。
[0072] なお前述したように、ゼロ(00)の入力差分を持つ Sボックスの出力差分はゼロ(00) であり、差分データに関する限り、ゼロ(00)の入力差分を持つ Sボックスは、何の作 用も行なって ヽな 、ものであり、アクティブでな!/、すなわち非アクティブ Sボックスと呼 ばれる。一方、非ゼロの入力差分(図 6の例では差分: 34)を持つ Sボックス(S1)の みが、非ゼロの入力差分に対応した非線形変換結果を出力差分として発生させるの で、アクティブ Sボックス(Active S— box)である。
[0073] 図 6の例では、非ゼロの入力差分(34)を入力する 1つのアクティブ Sボックス(S1) の出力差分 (b7)を発生させており、その他の非アクティブ Sボックス S2〜S8はゼロ の入力差分 (00)に基づいて出力差分 (00)を発生させ、線形変換部の差分入力とし ている。
[0074] (状態 2)
iラウンドへの非ゼロの入力差分(図 4の例では差分: 34)を持つ Sボックス(以下、ァ クティブ Sボックス (Active S-box)と呼ぶ)力もの出力差分は線形変換層で拡散さ れたのち F関数力 出力(出力値 = AYi)され、そのまま次のラウンドへの入力差分 AXi+lとなる。
[0075] 図 6の例において、各ラウンドに共通の例えば図 5に示すある特定の正方行列 125 による線形変換が実行され iラウンドの F関数出力差分としての AYi= (98, c4, b4, d3, ac, 72, Of, 32)を出力する。
[0076] iラウンドの F関数出力差分としての AYi= (98, c4, b4, d3, ac, 72, Of, 32)は、 図 6に示す排他的論理和部 141において、すべてゼロである入力差分(AXi— 1= ( 00, 00, 00, 00, 00, 00, 00, 00)と 他的餘理禾口(XOR)演算力 s実行され、演算 結果が、次のラウンド (i+ 1)への入力差分 ΔΧΪ+ 1となる。
[0077] iラウンドの F関数出力差分としての AYi= (98, c4, b4, d3, ac, 72, Of, 32)と、 すべてゼロである入力差分(AXi— 1=(00, 00, 00, 00, 00, 00, 00, 00)との排 他的論理和 (XOR)結果は、 AYiであるので、次のラウンド (i+1)への入力差分 ΔΧ ί+1=ΔΥί=(98, c4, b4, d3, ac, 72, Of, 32)となる。
[0078] (状態 3)
i+1ラウンドの F関数からの出力差分 AYi+lが、 iラウンドでの Active S— boxの 位置にのみ非ゼロ値をもつ。このデータ状態は、多数の差分入力データを設定する ことで、このようなデータ状態を得ることができると!/、うことである。
[0079] すなわち、 ΔΥί+1=(34, 00, 00, 00, 00, 00, 00, 00)であり、 iラウンドと同様 、非ゼロの差分値(図 6の例では差分: 34)を持つ S— boxの位置(第 1Sボックス(S1 ))にのみ非ゼロ値をもつ。
[0080] (状態 4)
i+2ラウンドの 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関数からの出力差分も、オールゼロの出力差分、 AYi+2=(00, 00, 0 0, 00, 00, 00, 00, 00)となる。
[0081] (状態 5)
i+3ラウンドの F関数に対する入力は、 ΔΧί+1=(98, c4, b4, d3, ac, 72, Of, 32)と、オールゼロの i+ 2ラウンドの F関数出力差分 AYi+ 2= (00, 00, 00, 00, 0 0, 00, 00, 00)との排他的論理和部 143における排他的論理和結果であり、 i+ 3ラ ゥンドの F関数に対する入力 ΔΧί+ 3= ΔΧί+ 1 = (98, c4, b4, d3, ac, 72, Of, 3 2)となる。
[0082] (状態 6)
i+ 3ラウンドの F関数出力差分力 ΔΥί+ 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)力 ラウンドの F関数入力差分となる。
[0083] (状態 7)
i+4ラウンドのアクティブ Sボックス(Active S— box) (SI)の出力差分が iラウンド でのアクティブ Sボックス (Active S -box) (SI)の出力差分と一致した場合、すな わち、図 6に示すように i+4ラウンドのアクティブ Sボックス((S1)の出力差分が b7と なり、 iラウンドでのアクティブ Sボックス(S1)の出力差分 (b7)と一致する。このデータ 状態は、多数の差分入力データを設定することで、このようなデータ状態を得ることが できるということである。
[0084] このデータ状態が発生すると、 i+4ラウンドの F関数の出力差分 AYi+4= (98, c 4, b4, d3, ac, 72, Of, 32)力 2つ前のラウンドである i+ 2ラウンドの 他的餘理 禾ロ咅 の出力差分 AXi+ 3= (98, c4, b4, d3, ac, 72, Of, 32)と一致すること になる。
[0085] この結果、排他的論理和部 145では、
ΔΧί+ 3= (98, c4, b4, d3, ac, 72, Of, 32)と、
ΔΥί+4= (98, c4, b4, d3, ac, 72, Of, 32)と、
の同一の値同士の排他的論理和演算が実行されることになり、排他的論理和演算結 果としてオール 0の値を出力する。
[0086] その結果、次の段(ラウンド i+ 5)への入力差分は、 AXi+ 5= (00, 00, 00, 00,
00, 00, 00, 00)として設定される。
[0087] このラウンド i+ 5への左入力 ΔΧί+ 5= (00, 00, 00, 00, 00, 00, 00, 00)は、 ラウンド iへの左入力 AXi— 1 = (00, 00, 00, 00, 00, 00, 00, 00)と同様オール ゼロであり、ラウンド i+ 5以降のラウンドにおいても、ラウンド i〜i+4と同様の処理が 繰り返される可能性がある。
[0088] この結果、ラウンド数の伸びに対してアクティブ Sボックスの数が増大せず、差分攻 撃に対する強度がそれほど伸びないという問題を発生させる。
[0089] 前述したように、差分解析 (差分攻撃)にお!、ては、ある差分を持つ入力データ (平 文)とその出力データ(暗号文)を多数設定してこの対応を解析することにより各ラウ ンド関数における適用鍵を解析する手法であり、この差分解析において、アクティブ Sボックスの数を少なくできれば、解析が容易となり、解析プロセス数を削減できる。
[0090] 上述の図 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関数に対 する入力ラウンド鍵の解析処理が比較的、容易となる。
[0091] 図 6を参照した例では、第 1の Sボックス(S1)のみがアクティブ Sボックスであるパタ ーンの発生状態を提示した力 その他の Sボックス(S2〜S8)についても、差分解析 の入力データの設定によって、各 Sボックスのみをアクティブ Sボックスとした設定が可 能であり、このような差分解析プロセスを実行することにより、各 Sボックスの非線形変 換処理の解析、さらに F関数に対して入力されるラウンド鍵の解析が可能となる。
[0092] 図 4および図 6を参照して、 3および 5ラウンドの場合の同時差分キャンセルの発生 例を説明したが、任意のラウンド数に一般ィ匕して同時差分キャンセルを定義すると以 下のように定義することができる。図 7を参照して、任意のラウンド数における同時差 分キャンセルの定義について説明する。なお、図 7は、フェイステル (Feistel)構造の 共通鍵ブロック暗号を実行するフェイステル (Feistel)構造の 1つおきのラウンド (i, i + 2, i+4, · · · , i+ 2j)を示している。 [0093] 「定義」
フェイステル (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において、 AXi + 2j + l = (00, 00, 00, 00, 00, 00, 00, 00) )〖こなった場合を"同時差分キャン セル"と呼ぶ。
[0094] その時、 i, i+ 2, i+4, . . , i+ 2kラウンドの F関数の中に存在するアクティブ Sボッ タス(Active S— box)のことを〃同時差分キャンセルを発生させたアクティブ Sボック ス"と呼ぶものとし、ベクトル Aの非ゼロの要素数をハミングウェイト hw(A)と定義する と、同時差分キャンセルを発生させるアクティブ Sボックスの数 aは、以下の式として表 せる。
[数 1]
Figure imgf000021_0001
i=0
[0095] 前述の 3ラウンド、 5ラウンドでの例ではともに同時差分キャンセルを発生させたァク ティブ Sボックス数は 2、すなわち a = 2である。
[0096] 前述したように、共通鍵ブロック暗号における差分攻撃に対する強度指標のひとつ が暗号ィ匕関数全体でのアクティブ Sボックスの最少数であり、アクティブ Sボックス数 の最少数が大きいほど差分攻撃に対する耐性が高いと判断される。
[0097] しかし、 DESアルゴリズムのように同じ線形変換行列をすベての段の F関数に用い る構成では、図 4、図 6を参照して説明したように、わず力 2つのアクティブ Sボックス により同時差分キャンセルが発生してしまう可能性があった。そのような性質があるた めラウンド数の伸びに対してアクティブ Sボックスの最少数が十分に増大せず、差分 攻撃に対する強度がそれほど伸びないという問題があった。
[0098] [2.共通鍵ブロック暗号アルゴリズムにおける線形解析処理]
差分解析処理は、上述したように、解析の実行者が一定の差分を持つ入力データ (平文)を容易し、その対応する出力データ(暗号文)を解析することが必要となる。線 形解析処理は、一定の差分を持つ入力データ(平文)を準備する必要はなぐ所定 量以上の入力データ (平文)と対応する出力データ(暗号文)とに基づ!/、て解析を行
[0099] 前述したように、共通鍵ブロック暗号アルゴリズムでは非線形変換部としての Sボッ タスを有し、入力データ(平文)と対応する出力データ(暗号文)との線形関係はない 力 線形解析では、この Sボックスの入出力を線形近似し、多数の入力データ(平文) と対応する出力データ (暗号文)の構成ビット値の線形関係を解析し、候補となる鍵を 絞り込むことによって解析を行う。線形解析においては、特定の差分を持つ入力デ ータを準備することが必要ではなぐ多数の平文と対応暗号文を容易することで、解 祈が可能となる。
[0100] [3.本発明に基づく暗号処理アルゴリズム]
以下、本発明の暗号処理アルゴリズムについて説明する。本発明の暗号処理アル ゴリズムは、上述した線形解析、差分解析等の攻撃に対する耐性を向上させた構成 、すなわち、鍵解析の困難性を高め、安全性を向上させた構成を持つ。
[0101] 本発明に係る暗号処理アルゴリズムの 1つの特徴は、従来の DESアルゴリズムの如 く各ラウンドの F関数に構成される線形変換部に共通の処理 (変換行列)を適用した 構成とせず、複数の異なる正方 MDS (Maximum Distance Separable)行列を 設定した構成としたことである。具体的には、少なくとも連続する偶数ラウンドおよび 連続する奇数ラウンドの各々にお ヽて異なる正方 MDS行列を適用した線形変換処 理を実行する構成を持つ。
[0102] 本発明に係る暗号処理アルゴリズムは、正方 MDS (Maximum Distance Sepa rable)行列の性質を利用し、少な 、アクティブ Sボックスに基づく同時差分キャンセ ルが起こらない、または起こりにくい構造を実現し、アクティブ Sボックスの最小数を増 大させ、差分攻撃に対してより強い共通鍵ブロック暗号処理を実現する。あるいは、 既知平文攻撃として行なわれる線形解析についての困難性も高めた構成を持つ。
[0103] 本発明の暗号処理アルゴリズムは、図 1、 2を参照して説明した SPN型の F関数を 有する Feistel構造と呼ばれる代表的な共通鍵ブロック暗号の構造、すなわち、非線 形変換部および線形変換部を有する SPN型の F関数の複数ラウンドに渡る単純な 繰り返しにより、平文を暗号文に変換する、あるいは暗号文を平文変換する構造を適 用している。
[0104] 例えば、平文の長さを 2mnビット(ただし、 m, nは共に整数)として、 2mnビットの平 文を、 mnビットの 2つのデータ PL (Plain- Left) , PR(Plain- Right)に分割し、これを入 力値として、各ラウンドにおいて、 F関数を実行させるものであり、 F関数は、図 2を参 照して説明したように、 Sボックスカゝらなる非線形変換部と、線形変換部を接続した SP N型を持つ F関数である。
[0105] 本発明の構成においては、 F関数中の線形変換部において適用する線形変換処 理のための行列として、複数の異なる正方 MDS (Maximum Distance Separabl e)行列力 選択された行列を各ラウンドの F関数の線形変換部において適用する行 列として設定する。具体的には、少なくとも連続する偶数ラウンドおよび連続する奇数 ラウンドの各々において異なる正方 MDS行列を適用する。
[0106] 正方 MDS行列について説明する。正方 MDS行列とは以下の(a) , (b)の性質を 満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が 0 でない、すなわち、 det (submatrix)≠0
[0107] 上記 (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行列の例である。
[0108] 上記(a) , (b)を満足する正方 MDS行列は、ベクトル Aの非ゼロの要素数をハミン グウェイト hw(A)とし、 Mを m次の正方 MDS行列とし、 xを正方 MDS行列 Mへの入 力ベクトルとした場合、以下の不等式 (式 1)を満たすことになる。
hw(x) +hw(Mx)≥m+ l (式 1)
[0109] 上記式 (式 1)は、正方 MDS行列(M)によって線形変換される入力データ Xの非ゼ 口の要素数 hw(x)と、正方 MDS行列(M)によって線形変換された出力データ Mx の非ゼロの要素数 hw(Mx)の総数が、正方 MDS行列の次数 mより大となるというこ とを意味している。
[0110] なお、正方 MDS行列という名は正方 MDS— code (Maximum Distance Sepa rable Code)の生成行列の標準形の右半分が上記条件を満足して!/、ることから名 づけているものである。
[0111] 1つの行列をすベての F関数に組み込むという従来の構成でも線形変換行列に正 方 MDS行列を用いることで、正方 MDS行列でな 、行列を用いる場合に比べてァク ティブ Sボックス数の最少数を比較的高水準に保持することができるということは知ら れている。
[0112] 本発明では、各ラウンドの F関数には正方 MDS行列の条件を満たす行列を利用し 、さらにラウンドごとに異なる行列を設定する方法を提案する。具体的には、少なくと も連続する偶数ラウンドおよび連続する奇数ラウンドの各々にお 、て異なる正方 MD S行列を適用する。
[0113] 以下に、段数 (ラウンド数)が 2r(rは整数)の Feistel型共通鍵ブロック暗号におい て、差分攻撃に対する耐性をより高めた複数の構成例について説明する。
[0114] なお、以下の説明において、段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗 号処理構成の j段目の F関数における線形変換部で適用する線形変換行列を MLTj として表すものとする。
[0115] 本発明の構成では、段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構 成における各段の F関数中の線形変換部にお 、て適用する線形変換処理のための 行列として、複数の異なる正方 MDS (Maximum Distance Separable)行列から 選択された行列を各ラウンドの F関数の線形変換部において適用する行列として設 定する。具体的には、少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの 各々において異なる正方 MDS行列を適用する。
[0116] 具体的には、段数 (ラウンド数)が 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行列を繰り返し設定する。
[0117] 本設定を適用した構成例を図 9に示す。図 9は、段数 (ラウンド数)が 2r= 12、すな わち r = 6の Feistel型共通鍵ブロック暗号処理構成とした場合、 q = 3、すなわち、 12 段のラウンド数を持つ Feistel型共通鍵ブロック暗号処理構成において 3種類の異な る正方 MDS行列を配置した構成例として、各ラウンドの F関数部の線形変換部に設 定する正方 MDS行列(LI, L2, L3)を示している。
[0118] 図 9の構成は、 2mnビットの平文を、 mnビットの 2つのデータ PL (Plain-Left) , PR( Plain-Right)に分割し、これを入力値として、各ラウンドにおいて、 F関数を実行させる 構成であり、第 1ラウンドの F関数 401およびその他のラウンドの F関数も、すべて図 2 を参照して説明したように、 Sボックス力 なる非線形変換部と、線形変換部を接続し た SPN型を持つ F関数である。
[0119] 図 9の設定例は r=6, q= 3であり、各 F関数内に示す記号 Lnは正方 MDS行列 40 2を示している。すなわち、 LI, L2, L3は、それぞれ異なる 3種類の正方 MDS行列 を示し、各 F関数の線形変部にお 、て線形変換処理に適用する正方 MDS行列を示 している。
[0120] 線形変換行列 MLTjの設定処理シーケンスについて、図 10を参照して説明する。
[0121] [ステップ S21] ラウンド数 2rの半数 rに対して r以下の数 q、すなわち、
q≤rとなる数 qを選択する。ただし、 qは 2以上の整数である。
[ステップ S22]
q個の GF (2n)上の m次正方 MDS行列 LI, L2, Lqを生成する。 q個の GF (2n )上の m次正方 MDS行列 LI, L2, Lqの生成処理手法についての詳細は、後段 で説明する。
[0122] ステップ S22において、 q個の GF (2n)上の m次正方 MDS行列 LI, L2, Lqが 生成した後、次に、以下の正方 MDS行列設定処理を実行する。
[ステップ S23]
2i- l (l≤i≤r)段目の線形変換行列 MLT にし を設定する。
2i- l (i- lmodq) + l
[ステップ S 24]
2i ( 1≤ i≤ r)段目の線形変換行列に MLT2に MLT を設定する。
i 2r-2i + l
[0123] 例えば、図 9に示す構成例、すなわち、 12段 (r=6)であり q= 3とした場合は、
MLT1 = LI, MLT2 = L3
MLT3 = L2, MLT4 = L2
MLT5 = L3, MLT6 = LI
MLT7 = LI, MLT8 = L3
MLT9 = L2, MLTIO: =L2
MLT11 = L3, MLT12 =L1
の設定となる。
[0124] このように、本発明の暗号処理装置においては、段数 (ラウンド数)が 2rの Feistel 型共通鍵ブロック暗号処理構成に対応して、 r以下の q個の正方 MDS行列: LI, L2 , · · , Lqを生成し、奇数段目については上位段の F関数力も順に LI, L2, · · , Lq, LI, L2"として、 q個の正方 MDS行列を繰り返し設定し、偶数段の F関数について は、下位段の F関数から順に、 LI, L2, · · , Lq, LI, L2' ·として、 q個の正方 MDS 行列を繰り返し設定する構成として ヽる。
[0125] 次に、図 10の処理フローにおけるステップ S22の q個の GF (2n)上の m次正方 MD S行列 LI, L2, Lqの生成処理および F関数への設定構成の詳細について説明 する。なお、説明は以下の項目に沿って行なう。
(3— a)差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— b)線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例
(3— c)差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の 生成および F関数への設定例
[0126] [ (3— a)差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例]
まず、差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数 への設定例として、 3つの処理例 al, a2, a3について説明する。
[0127] (処理例 al)
差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 1の例について説明する。まず、図 11に示すフローチャートを参照して正 方 MDS行列の生成処理につ 、て説明する。
[0128] [ステップ S 101]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 LI, L2, Lqをランダムに生成する。な お、図 11に示すフローでは、 MDSの個数 q = 6,拡大次数: n=8,行列のサイズ: m = 8の場合の処理例として示してある。
[0129] [ステップ S 102]
q個の m次正方 MDS行列 LI, L2, Lqに含まれる qm個の列の任意の m個を取 り出したときに、線形独立になっているかどうかをチェックする。チェックに通過したら ステップ S103に進む、そうでない場合はステップ S101にもどる。
[ステップ S 103]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。
[0130] 以上のプロセスによって、 q個の m次正方 MDS行列 LI, L2, Lqが生成される 。なお、 q≤rである。
[0131] このようにして生成した q個の m次正方 MDS行列 LI, L2, Lqを、先に、図 10を 参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、段数 (ラウンド 数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部 の線形変換処理に適用する行列として設定する。すなわち、奇数段目については上 位段から順に LI, L2, · · , Lq, LI, L2' ·として q個の正方 MDS行列を繰り返し設 定し、偶数段の F関数については、下位段の F関数から順に、 LI, L2, · · , Lq, L1, L2' ·として、 q個の正方 MDS行列を繰り返し設定する。
[0132] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0133] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号ィ匕関数内の奇数ラウンド内の少なくとも連続する q個の F関数に含まれる線 形変換行列の任意の m個の列ベクトルが独立であること、
(c)偶数ラウンド内の少なくとも連続する q個の F関数に含まれる線形変換行列の任 意の m個の列ベクトルが独立であること、
これら (a)〜(c)が保証されるため、複数段のラウンド数を持つ Feistel型共通鍵ブ ロック暗号処理構成において、連続する 2q—lラウンドにおいて、 m個以下のァクテ イブ Sボックスの寄与による同時差分キャンセルは発生しないことが保証される。よつ て暗号ィ匕関数全体のアクティブ Sボックス数の最小値が増大する。
[0134] このように、本処理例によって、共通鍵ブロック暗号における差分攻撃に対する強 度指標のひとつである暗号ィ匕関数全体でのアクティブ Sボックスの最少数を大きくす ることが可能となり、結果として、差分解析 (差分攻撃)を行なった場合のアクティブ S ボックスの数が増大し、解析の困難性が高まることになる。従って鍵の解析の困難な 安全性の高!ヽ暗号処理が実現される。
[0135] (処理例 a2)
差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 2の例について説明する。図 12のフローチャートを参照して正方 MDS行 列の生成処理につ!、て説明する。
[0136] [ステップ S 201]
入力:必要な MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 LI, L2, Lqをランダムに生成する。な お、図 12に示すフローでは、 MDSの個数 q = 6,拡大次数: n=8,行列のサイズ: m = 8の場合の処理例として示してある。
[0137] [ステップ S202]
q個の m次正方 MDS行列 LI, L2, Lqに含まれる qm個の列の任意の m個を取 り出したときに、正方 MDS行列になっているかどうかをチェックする。チェックに通過 したらステップ S203に進む、そうでない場合はステップ S201にもどる。
なお、正方 MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が 0 でない、すなわち、 det (submatrix)≠0
[ステップ S203]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。
[0138] 以上のプロセスによって、 q個の m次正方 MDS行列 LI, L2, Lqが生成される 。なお、 q≤rである。
[0139] 前述の処理例 alにおける正方 MDS行列生成処理においては、図 11の処理シー ケンスにおいて説明したように、ステップ S102において、 q個の m次正方 MDS行列 LI, L2, Lqに含まれる qm個の列の任意の m個を取り出したときの線形独立性を 判定したが、この処理例 a2における正方 MDS行列生成処理においては、 q個の m 次正方 MDS行列 LI, L2, Lqに含まれる qm個の列の任意の m個を取り出したと き正方 MDS行列になっているかどうかをチェックする。すなわち、より厳しいチェック 力 S実行されること〖こなる。
[0140] この図 12に示す処理シーケンスに従った正方 MDS行列生成処理によって生成さ れた q個の m次正方 MDS行列 LI, L2, Lqが、先に説明した処理例 alと同様、 先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S 24]の処理に従って、 段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部 の線形変換部の線形変換処理に適用する行列として設定される。すなわち、奇数段 目については上位段から順に LI, L2, · · , Lq, LI, L2' ·として q個の正方 MDS行 列を繰り返し設定し、偶数段の F関数については、下位段の F関数力 順に、 LI, L 2, · · , Lq, LI, L2"として、 q個の正方 MDS行列を繰り返し設定する。
[0141] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0142] 本構成により、
(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ボックス数の最小値が増大する。
[0143] このように、本処理例によって、共通鍵ブロック暗号における差分攻撃に対する強 度指標のひとつである暗号ィ匕関数全体でのアクティブ Sボックスの最少数を大きくす ることが可能となり、結果として、差分解析 (差分攻撃)を行なった場合のアクティブ S ボックスの数が増大し、解析の困難性が高まることになる。従って鍵の解析の困難な 安全性の高!ヽ暗号処理が実現される。 [0144] (処理例 a3)
差分攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 3の例について説明する。図 13のフローチャートを参照して正方 MDS行 列の生成処理につ!、て説明する。
[0145] [ステップ S301]
入力:必要な MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 1個の qm次正方 MDS行列 Mを生成する。なお、図 13に示すフロー では、 MDSの個数 q=6,拡大次数: n=8,行列のサイズ: m= 8の場合の処理例と して示してある。
[0146] [ステップ S302]
1個の qm次正方 MDS行列 Mから m本の行を任意に選択抽出し、 m行, qm列の行 列 M'を構成する。
[ステップ S303]
m行, qm列の行列 M'に含まれる qm本の列ベクトルを重複することなく m本の列べ クトルカゝらなる q個のグループに任意に分割し、それぞれのグループに含まれる列べ タトルから m次の正方行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロッ ク暗号に適用する正方 MDS行列として出力する。
[0147] 以上のプロセスによって、 q個の m次正方 MDS行列 LI, L2, Lqが生成される 。なお、 q≤rである。
[0148] 処理例 a3における正方 MDS行列生成手法 3について、図 14を参照して、より具体 的に説明する。
[ステップ S 301]
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次の正方行列 LI, L2, Lxを生成する。
[0149] 図 13、図 14を参照して説明した処理シーケンスに従った正方 MDS行列生成処理 によって生成された q個の m次正方 MDS行列 LI, 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行列を繰り返し設定 する。
[0150] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0151] 本構成により、
(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+ 1— a個以上になることが保証される。よ つて暗号ィ匕関数全体のアクティブ Sボックス数の最小値が増大する。
[0152] なお、処理例 a3が特に効果を発揮するのは、 m, r,が大きくなり、前述した処理例 a 1, a2の行列決定処理方式に力かる時間的コストが莫大となり、現実的な時間内に行 列を決定することが困難である場合である。そのような場合でも本処理例 a3の正方 M DS行列生成手法ならば比較的短時間での行列生成処理が可能となる。
[0153] これは、処理例 a3においては、大きな m, rに対しても現実的な時間で十分に処理 可能な方式、例えばリードソロモン (Reed— Solomon)符号の生成行列の生成法を 適用することが可能となるからである。
[0154] この処理例 a3においても、上述したように、共通鍵ブロック暗号における差分攻撃 に対する強度指標のひとつである暗号ィ匕関数全体でのアクティブ Sボックスの最少数 を大きくすることが可能となり、結果として、差分解析 (差分攻撃)を行なった場合のァ クティブ Sボックスの数が増大し、解析の困難性が高まることになる。従って鍵の解析 の困難な安全性の高い暗号処理が実現される。
[0155] [ (3— b)線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関 数への設定例]
次に、線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数 への設定例として、 2つの処理例 bl, b2について説明する。
[0156] (処理例 bl)
線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 1の例について、説明する。図 15に示すフローチャートを参照して正方 MD S行列の生成処理にっ 、て説明する。
[0157] [ステップ S401]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、 GF (2n)上で、 q個の m次正方 MDS行列 Ml, M2, Mqをランダムに生成する 。なお、図 14に示すフローでは、正方 MDSの個数 q = 6,拡大次数: n=8,行列の サイズ: m= 8の場合の処理例として示してある。 [0158] [ステップ S402]
q個の m次正方 MDS行列 Ml, M2, Mqの逆行列 Ml—1, M2"1, Mq_ 1を 算出し、隣り合う 2つの逆行列に含まれる 2mの行ベクトル力 任意の m本の行べタト ルを取り出したときに、線形独立になっているかどうかをチェックする。図 15中、 は 、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップ S403に 進む、そうでない場合はステップ S401にもどる。ただし、 Ml 1と Mq_1は、隣り合う行 列とする。
[ステップ S403]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。
[0159] 以上のプロセスによって、 q個の m次正方 MDS行列 LI, L2, Lqが生成される 。なお、 q≤rである。
[0160] このようにして生成した q個の m次正方 MDS行列 LI, L2, Lqを、先に、図 10を 参照して説明した、 [ステップ S23]、 [ステップ S24]の処理に従って、段数 (ラウンド 数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部 の線形変換処理に適用する行列として設定する。すなわち、奇数段目については上 位段から順に LI, L2, · · , Lq, LI, L2' ·として q個の正方 MDS行列を繰り返し設 定し、偶数段の F関数については、下位段の F関数から順に、 LI, L2, · · , Lq, L1, L2' ·として、 q個の正方 MDS行列を繰り返し設定する。
[0161] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0162] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号ィ匕関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列ベクトル は独立であること、
が保証される。このこと〖こより、線形攻撃における線形近似による解析困難性を高 めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い暗 号処理が実現される。
[0163] (処理例 b2)
線形攻撃に対する耐性向上を実現した正方 MDS行列の生成および F関数への設 定例の第 2の例について、説明する。図 16に示すフローチャートを参照して正方 MD S行列の生成処理にっ 、て説明する。
[0164] [ステップ S 501]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、
GF (2n)上で、 q個の m次正方 MDS行列 Ml, M2, Mqをランダムに生成する 。なお、図 16に示すフローでは、正方 MDSの個数 q = 6,拡大次数: n=8,行列の サイズ: m= 8の場合の処理例として示してある。
[0165] [ステップ 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
[0166] [ステップ S503]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。
[0167] 以上のプロセスによって、 q個の m次正方 MDS行列 LI, L2, Lqが生成される
。なお、 q≤rである。
[0168] 前述の処理例 blにおける正方 MDS行列生成処理においては、図 15の処理シー ケンスにおいて説明したように、ステップ S402において、 q個の m次正方 MDS行列 の Ml, M2, Mqの逆行列 Ml— 1, M2"1, Mq_1に含まれる qm個の列の任 意の m個を取り出したときの線形独立性を判定した力 この処理例 b2における正方 MDS行列生成処理においては、 q個の m次正方 MDS行列の Ml, M2, Mqの 逆行列 Ml— 1, M2"1, Mq_1に含まれる qm個の列の任意の m個を取り出したとき 正方 MDS行列になっているかどうかをチェックする。すなわち、より厳しいチェックが 実行されること〖こなる。
[0169] この図 16に示す処理シーケンスに従った正方 MDS行列生成処理によって生成さ れた q個の m次正方 MDS行列 LI, L2, Lqが、先に説明した処理例 blと同様、 先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S 24]の処理に従って、 段数 (ラウンド数)が 2rの Feistel型共通鍵ブロック暗号処理構成の各段の F関数部 の線形変換部の線形変換処理に適用する行列として設定される。すなわち、奇数段 目については上位段から順に LI, L2, · · , Lq, LI, L2' ·として q個の正方 MDS行 列を繰り返し設定し、偶数段の F関数については、下位段の F関数力 順に、 LI, L 2, · · , Lq, LI, L2"として、 q個の正方 MDS行列を繰り返し設定する。
[0170] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0171] 本構成により、
(a)各 F関数の線形変換行列は正方 MDSであること、
(b)暗号ィ匕関数内の奇数ラウンド内に連続して含まれる線形変換行列、および偶 数ラウンド内に連続して含まれる線形変換行列の逆行列の任意の m個の列ベクトル が正方 MDS行列となること、
が保証される。このこと〖こより、線形攻撃における線形近似による解析困難性を高 めることが可能となり、解析の困難性、すなわち鍵の解析の困難な安全性の高い暗 号処理が実現される。
[0172] [ (3— c)差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の 生成および F関数への設定例] 次に、差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列の生 成および F関数への設定例について説明する。
[0173] 差分攻撃に対する耐性を持つ暗号処理アルゴリズムは、先に、図 10〜図 13を参照 して説明した処理、すなわち、 F関数の線形処理部における線形変換に適用する正 方 MDS行列を前述の処理例 al (図 11)〜a3 (図 13)の!、ずれかの処理を適用して 設定することで実現される。また、線形攻撃に対する耐性を持つ暗号処理アルゴリズ ムは、先に、図 10、および図 14、図 15を参照して説明した処理、すなわち、 F関数の 線形処理部における線形変換に適用する正方 MDS行列を前述の処理例 b 1 (図 14 )、 b2 (図 15)の 、ずれかの処理を適用して設定することで実現される。
[0174] 差分攻撃および線形攻撃に対する耐性向上を実現した正方 MDS行列は、
処理例 al (図 11)〜a3 (図 13)の!、ずれかの処理と、
処理例 bl (図 14)、 b2 (図 15)のいずれかの処理とを、
併せて実行して生成した正方 MDS行列を、図 10において説明した [ステップ S23 ]、 [ステップ S24]の処理に従って、段数(ラウンド数)が 2rの Feistel型共通鍵ブロッ ク暗号処理構成の各段の F関数部の線形変換部の線形変換処理に適用する行列と して設定することで実現される。
[0175] すなわち、
処理例 alと処理例 bl、
処理例 alと処理例 b2、
処理例 a2と処理例 bl、
処理例 a2と処理例 b2、
処理例 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 行列を繰り返し設定する。この設定により、差分攻撃および線形攻撃に対する耐性 向上を実現した暗号処理が可能となる。
[0176] 図 17を参照して、差分攻撃および線形攻撃に対する耐性向上を実現した暗号処 理を実現するための正方 MDS行列の生成処理の一例について説明する。この処理 は、前述した処理例 a2と、処理例 b2との組み合わせである。
[0177] [ステップ S601]
入力:必要な正方 MDSの個数 q,拡大次数: n,行列のサイズ: mとして、 GF (2n)上で、 q個の m次正方 MDS行列 Ml, M2, Mqをランダムに生成する 。なお、図 17に示すフローでは、正方 MDSの個数 q = 6,拡大次数: n=8,行列の サイズ: m= 8の場合の処理例として示してある。
[0178] [ステップ S602]
q個の m次正方 MDS行列 Ml, M2, Mqに含まれる qm個の列の任意の m個を 取り出したときに、正方 MDS行列になっているかどうかをチェックする。チェックに通 過したらステップ S603に進む、そうでない場合はステップ S601にもどる。
なお、正方 MDS行列とは、前述したように以下の性質を満たす行列をいう。
(a)正方行列である
(b)行列に含まれるすべての部分行列(submatrix)の行列式(determinant)が 0 でない、すなわち、 det (submatrix)≠0
[0179] [ステップ S603]
q個の m次正方 MDS行列 Ml, M2, Mqの逆行列 Ml—1, M2"1, Mq_ 1を 算出し、隣り合う 2つの逆行列に含まれる 2mの行ベクトル力 任意の m本の行べタト ルを取り出したときに、正方 MDS行列になっているかどうかをチェックする。図 17中、 は、行ベクトルの転置ベクトルを示すものである。チェックに通過したらステップ S6 04に進む、そうでない場合はステップ S601にもどる。ただし、 Ml—1と Mq_1は、隣り 合う行列とする。
[0180] [ステップ S604]
q個の m次正方 MDS行列 LI, L2, Lqを、ラウンド数 2rの Feistel型共通鍵ブロ ック暗号に適用する正方 MDS行列として出力する。 [0181] 以上のプロセスによって、 q個の m次正方 MDS行列 LI, L2, Lqが生成される 。なお、 q≤rである。
[0182] この図 17に示す処理シーケンスに従った正方 MDS行列生成処理によって生成さ れた q個の m次正方 MDS行列 LI, L2, Lqが、先に、図 10を参照して説明した、 [ステップ S23]、 [ステップ S 24]の処理に従って、段数(ラウンド数)が 2rの Feistel型 共通鍵ブロック暗号処理構成の各段の F関数部の線形変換部の線形変換処理に適 用する行列として設定される。すなわち、奇数段目については上位段カゝら順に LI, L 2, · · , Lq, LI, L2 "として q個の正方 MDS行列を繰り返し設定し、偶数段の F関数 については、下位段の F関数から j噴に、 LI, L2, · · , Lq, LI, L2 "として、 q個の正 方 MDS行列を繰り返し設定する。
[0183] このように、偶数ラウンドの正方 MDS行列と奇数ラウンドの正方 MDS行列を互い に逆順に配置することによって、暗号化処理と復号処理は鍵の順序を入れ替える処 理を除き同一であることが保証される。
[0184] 本構成により、
(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行列となることが保証される。このことにより、線形攻撃における線形近 似による解析困難性を高めることが可能となり、解析の困難性、すなわち鍵の解析の 困難な安全性の高!ヽ暗号処理が実現される。
[0185] このように、本処理例によって、差分攻撃および線形攻撃の双方の解析の困難性 が向上し、鍵の解析の困難な安全性の高い暗号処理が実現される。なお、図 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行列を繰り 返し設定することによつても、差分攻撃および線形攻撃の双方の解析の困難性が高 ぐ鍵の解析の困難な安全性の高い暗号処理が実現可能である。
[0186] これまでの説明では、分かりやすさを優先して線形変換行列を 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列目に対応している。つまり i行目 は (i- 1) + 1行目から (i- 1) +n行目に対応し、冽目は (i- 1) + 1列目から (i- 1) +n列目に対応している。よって、 GF (2n)上の行や列を取り出してくる操作には、 GF (2)上で定義される行列を用いる場合は、対応する n行分もしくは n列分を取り出すと V、う操作を対応させればよ!ヽ。 GF (2n)上の m本の行や列を取り出す操作は、 GF (2 )上では n本の行や列を m回取り出すことになり、結果として mn X mnの行列を得るこ とができる。以上の対応付けにより、 GF (2)上で定義される行列に容易に拡張するこ とがでさる。
[0187] 最後に、暗号処理を実行する暗号処理装置としての ICモジュール 600の構成例を 図 18に示す。上述の処理は、例えば PC、 ICカード、リーダライタ、その他、様々な情 報処理装置において実行可能であり、図 18に示す ICモジュール 600は、これら様々 な機器に構成することが可能である。
[0188] 図 18に示す CPU(Central processing Unit)601は、暗号処理の開始や、終了、デ ータの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実 行するプロセッサである。メモリ 602は、 CPU601が実行するプログラム、あるいは演 算パラメータとしての固定データを格納する ROM (Read-Only-Memory)、 CPU601 の処理にお!、て実行されるプログラム、およびプログラム処理にお!、て適宜変化する パラメータの格納エリア、ワーク領域として使用される RAM (Random Access Memory )等力もなる。また、メモリ 602は暗号処理に必要な鍵データ等の格納領域として使 用可能である。データ等の格納領域は、耐タンパ構造を持つメモリとして構成される ことが好ましい。
[0189] 暗号処理部 603は、例えば上述した Feistel型共通鍵ブロック暗号処理アルゴリズ ムに従った暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個 別モジュールとした例を示した力 このような独立した暗号処理モジュールを設けず、 例えば暗号処理プログラムを ROMに格納し、 CPU601が ROM格納プログラムを読 み出して実行するように構成してもよ!/ヽ。
[0190] 乱数発生器 604は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数 の発生処理を実行する。
[0191] 送受信部 605は、外部とのデータ通信を実行するデータ通信処理部であり、例え ばリーダライタ等、 ICモジュールとのデータ通信を実行し、 ICモジュール内で生成し た暗号文の出力、あるいは外部のリーダライタ等の機器力ものデータ入力などを実行 する。
[0192] 以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、 本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ること は自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的 に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の 欄を参酌すべきである。
[0193] なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、 あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理 を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに 組み込まれたコンピュータ内のメモリにインストールして実行させる力、あるいは、各 種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させること が可能である。
[0194] 例えば、プログラムは記録媒体としてのハードディスクや ROM (Read Only Memory )に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、 CD -ROM(Compact Disc Read Only Memory), MO(Magneto optical)ディスク, DVD( Digital Versatile Disc),磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納 (記録)しておくことができる。このようなリムーバブル記 録媒体は、 V、わゆるパッケージソフトウェアとして提供することができる。
[0195] なお、プログラムは、上述したようなリムーバブル記録媒体力もコンピュータにインス トールする他、ダウンロードサイトから、コンピュータに無線転送したり、 LAN(Local A rea Network),インターネットといったネットワークを介して、コンピュータに有線で転 送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵する ハードディスク等の記録媒体にインストールすることができる。
[0196] なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみ ならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個 別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的 集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
産業上の利用可能性
[0197] 上述したように、本発明の構成によれば、非線形変換部および線形変換部を有す る SPN型の F関数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処 理において、複数ラウンド各々に対応する F関数の線形変換処理を、正方 MDS (M aximum Distance Separable)行列を適用した線形変換処理として実行するとと もに、少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々において異 なる正方 MDS行列: La, Lbを適用し、かつ該正方 MDS行列の逆行列: La_1, Lb" 1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行列 が線形独立である力、あるいは正方 MDS行列を構成する性質とした正方 MDS行列 による線形変換処理を実行する構成としたので、共通鍵ブロック暗号における線形 攻撃に対する耐性が向上し、暗号鍵等の解析困難性が高まることとなり、安全性の高 い暗号処理が実現される。従って、鍵解析困難性を高め、安全性の要求される暗号 処理実行装置において適用可能である。
さらに、本発明の構成によれば、非線形変換部および線形変換部を有する SPN型 の F関数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理にぉ ヽ て、複数ラウンド各々に対応する F関数の線形変換処理を、正方 MDS (Maximum
Distance Separable)行列を適用した線形変換処理として実行するとともに、少 なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々において異なる正 方 MDS行列を適用する構成とし、これらの正方 MDS行列自身が、線形独立性を示 す力 または正方 MDS行列を構成する構成としたので、アクティブ Sボックスの寄与 による同時差分キャンセルの発生しないことが保証され、共通鍵ブロック暗号におけ る差分攻撃に対する強度指標のひとつである暗号ィ匕関数全体でのアクティブ Sボック スの最少数を大きくすることが可能となる。本構成により、線形攻撃、差分攻撃の双 方に対して耐性が向上し、より安全性の高い暗号処理が実現される。従って、鍵解析 困難性を高め、安全性の要求される暗号処理実行装置において適用可能である。

Claims

請求の範囲
[1] Feistel型共通鍵ブロック暗号処理を実行する暗号処理装置であり、
非線形変換部および線形変換部を有する SPN型の F関数を、複数ラウンド繰り返 し実行する構成を有し、
前記複数ラウンド各々に対応する F関数の線形変換部は、 m個の非線形変換部各 々の出力する nビット、総計 mnビットの入力に対する線形変換処理を、正方 MDS (
Maximum Distance Separable)行列を適用した線形変換処理として実行する 構成であり、
少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々においては、異 なる正方 MDS行列: La, Lbが適用され、かつ該正方 MDS行列の逆行列: La_ 1, L b_1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行 列が線形独立であることを特徴とする暗号処理装置。
[2] 前記暗号処理装置において、さらに、
前記逆行列: La_1, Lb_1を構成する列ベクトルから任意に選択した m個の列べタト ルによって構成する行列が正方 MDS行列であることを特徴とする請求項 1に記載の 暗号処理装置。
[3] 前記 Feistel型共通鍵ブロック暗号処理のアルゴリズムは、ラウンド数 2rの暗号処理 アルゴリズムであり、
前記 F関数の線形変換部は、
r個の全ての偶数ラウンドおよび r個の全ての奇数ラウンドにおいて 2≤q<rの q種 類の異なる正方 MDS行列を順次繰り返し適用した線形変換処理を実行する構成で あることを特徴とする請求項 1に記載の暗号処理装置。
[4] 前記 F関数の線形変換部にぉ 、て適用する異なる複数の正方 MDS行列の各々は 、該複数の正方 MDS行列を構成する列ベクトルから任意に選択した m個の列べタト ルによって構成する行列が線形独立である正方 MDS行列であることを特徴とする請 求項 1に記載の暗号処理装置。
[5] 前記 F関数の線形変換部にぉ 、て適用する異なる複数の正方 MDS行列の各々は 、該複数の正方 MDS行列を構成する列ベクトルから任意に選択した m個の列べタト ルによって構成する行列も正方 MDS行列となる正方 MDS行列であることを特徴と する請求項 1に記載の暗号処理装置。
[6] 前記 F関数の線形変換部にぉ 、て適用する異なる複数の正方 MDS行列の各々は 、該複数の正方 MDS行列を構成する要素を全て含む正方 MDS行列 M力 選択さ れた行ベクトルによって構成される行列 M'から抽出された列ベクトルによって構成さ れる行列によって構成されて ヽることを特徴とする請求項 1に記載の暗号処理装置。
[7] Feistel型共通鍵ブロック暗号処理を実行する暗号処理方法であり、
非線形変換処理および線形変換処理を実行する SPN型の F関数を、複数ラウンド 繰り返し実行し、
前記複数ラウンド各々に対応する F関数の線形変換処理は、 m個の非線形変換部 各々の出力する nビット、総計 mnビットの入力に対する線形変換処理を、正方 MDS (Maximum Distance Separable)行列を適用した線形変換処理として実行し、 少なくとも連続する偶数ラウンドおよび連続する奇数ラウンドの各々においては、異 なる正方 MDS行列: La, Lbが適用され、かつ該正方 MDS行列の逆行列: La_ 1, L b_1を構成する列ベクトルから任意に選択した m個の列ベクトルによって構成する行 列が線形独立である正方 MDS行列による線形変換処理を実行することを特徴とす る暗号処理方法。
[8] 前記暗号処理方法において、さらに、
前記逆行列: La_1, Lb_1を構成する列ベクトルから任意に選択した m個の列べタト ルによって構成する行列が正方 MDS行列である正方 MDS行列による線形変換処 理を実行することを特徴とする請求項 7に記載の暗号処理方法。
[9] 前記 Feistel型共通鍵ブロック暗号処理のアルゴリズムは、ラウンド数 2rの暗号処理 アルゴリズムであり、
前記 F関数の線形変換処理は、
r個の全ての偶数ラウンドおよび r個の全ての奇数ラウンドにおいて 2≤q<rの q種 類の異なる正方 MDS行列を順次繰り返し適用した線形変換処理を実行することを 特徴とする請求項 7に記載の暗号処理方法。
[10] 前記 F関数の線形変換処理にぉ 、て適用する異なる複数の正方 MDS行列の各 々は、該複数の正方 MDS行列を構成する列ベクトルから任意に選択した m個の列 ベクトルによって構成する行列が線形独立である正方 MDS行列であることを特徴と する請求項 7に記載の暗号処理方法。
[11] 前記 F関数の線形変換処理において適用する異なる複数の正方 MDS行列の各 々は、該複数の正方 MDS行列を構成する列ベクトルから任意に選択した m個の列 ベクトルによって構成する行列も正方 MDS行列となる正方 MDS行列であることを特 徴とする請求項 7に記載の暗号処理方法。
[12] 前記 F関数の線形変換処理において適用する異なる複数の正方 MDS行列の各 々は、該複数の正方 MDS行列を構成する要素を全て含む正方 MDS行列 Mから選 択された行ベクトルによって構成される行列 M'から抽出された列ベクトルによって構 成される行列によって構成されていることを特徴とする請求項 7に記載の暗号処理方 法。
[13] Feistel型共通鍵ブロック暗号処理を実行するコンピュータ 'プログラムであり、 非線形変換処理および線形変換処理を実行する SPN型の F関数を、複数ラウンド 繰り返し実行するステップを有し、
前記複数ラウンド各々に対応する F関数の線形変換処理は、 m個の非線形変換部 各々の出力する nビット、総計 mnビットの入力に対する線形変換処理を、正方 MDS (Maximum Distance Separable)行列を適用した線形変換処理として実行する 線形変換ステップであり、
前記線形変換ステップにお 、て、少なくとも連続する偶数ラウンドおよび連続する 奇数ラウンドの各々では、異なる正方 MDS行列: La, Lbが適用され、かつ該正方 M DS行列の逆行列: La_1, Lb_1を構成する列ベクトルから任意に選択した m個の列 ベクトルによって構成する行列が線形独立である正方 MDS行列による線形変換処 理を実行することを特徴とするコンピュータ ·プログラム。
PCT/JP2005/015815 2004-09-03 2005-08-30 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム WO2006025416A1 (ja)

Priority Applications (11)

Application Number Priority Date Filing Date Title
EP05781289A EP1788542B1 (en) 2004-09-03 2005-08-30 Encryption device, encryption method, and computer program
BRPI0506365A BRPI0506365B1 (pt) 2004-09-03 2005-08-30 aparelho e método de processamento criptográfico, e, meio de armazenamento legível por computador para realizar o referido método
EP10011885.0A EP2375625B1 (en) 2004-09-03 2005-08-30 On Feistel ciphers using optimal diffusion mappings across multiple rounds
ES05781289T ES2391639T3 (es) 2004-09-03 2005-08-30 Dispositivo de cifrado, método de cifrado, y programa de ordenador
US10/577,955 US7747011B2 (en) 2004-09-03 2005-08-30 Encryption device, encryption method, and computer program
EP10011884.3A EP2375624B1 (en) 2004-09-03 2005-08-30 On Feistel ciphers using optimal diffusion mappings across multiple rounds
KR1020067006887A KR101091749B1 (ko) 2004-09-03 2006-04-10 암호 처리 장치, 암호 처리 방법 및 기록매체
HK07101567.4A HK1096758A1 (en) 2004-09-03 2007-02-09 Encryption device, encryption method, and computer program
US12/780,512 US8275127B2 (en) 2004-09-03 2010-05-14 Cryptographic processing apparatus, cryptographic processing method, and computer program therefor
US13/594,444 US8767956B2 (en) 2004-09-03 2012-08-24 Cryptographic processing apparatus, cryptographic processing method, and computer program therefor
US14/278,632 US9240885B2 (en) 2004-09-03 2014-05-15 Cryptographic processing apparatus, cryptographic processing method, and computer program therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004256465A JP4561252B2 (ja) 2004-09-03 2004-09-03 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2004-256465 2004-09-03

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US10/577,955 A-371-Of-International US7747011B2 (en) 2004-09-03 2005-08-30 Encryption device, encryption method, and computer program
US12/780,512 Continuation US8275127B2 (en) 2004-09-03 2010-05-14 Cryptographic processing apparatus, cryptographic processing method, and computer program therefor

Publications (1)

Publication Number Publication Date
WO2006025416A1 true WO2006025416A1 (ja) 2006-03-09

Family

ID=36000066

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/015815 WO2006025416A1 (ja) 2004-09-03 2005-08-30 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Country Status (10)

Country Link
US (4) US7747011B2 (ja)
EP (3) EP1788542B1 (ja)
JP (1) JP4561252B2 (ja)
KR (1) KR101091749B1 (ja)
CN (1) CN100511331C (ja)
BR (1) BRPI0506365B1 (ja)
ES (3) ES2860689T3 (ja)
HK (1) HK1096758A1 (ja)
RU (1) RU2383934C2 (ja)
WO (1) WO2006025416A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101553856B (zh) * 2006-09-01 2011-04-20 索尼株式会社 密码处理装置和密码处理方法

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622222B2 (ja) 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7970133B2 (en) * 2006-01-19 2011-06-28 Rockwell Collins, Inc. System and method for secure and flexible key schedule generation
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) * 2006-09-01 2012-07-04 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2010044251A (ja) * 2008-08-13 2010-02-25 Hitachi Ltd ハッシュ値生成装置、プログラム及びハッシュ値生成方法
WO2011075902A1 (zh) * 2009-12-24 2011-06-30 华南理工大学 一种基于线性几何的群组密钥管理方法
JP5578422B2 (ja) * 2010-07-21 2014-08-27 日本電気株式会社 暗号化通信システム、送信装置、受信装置、暗号化/復号化方法およびそれらのプログラム
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
MY150357A (en) * 2010-11-04 2013-12-31 Mimos Berhad A method for linear transformation in substitution-permutation networks symmetric-key block cipher
JP5682527B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
EP3029877B1 (en) 2013-08-02 2018-04-11 Nec Corporation Authenticated encryption device, authenticated encryption method, and program for authenticated encryption
CN103427986B (zh) * 2013-08-22 2016-08-24 中国科学院信息工程研究所 获取分组密码活跃s盒个数下界的方法
JP5772934B2 (ja) * 2013-12-02 2015-09-02 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN103701584B (zh) * 2013-12-10 2017-01-18 中国船舶重工集团公司第七0九研究所 一种对称密码中二进制线性扩散结构的设计方法
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
CN105912938B (zh) * 2016-04-01 2019-02-12 青岛大学 一种求多元素逆元的计算方法及计算系统
KR20190037980A (ko) 2017-09-29 2019-04-08 한밭대학교 산학협력단 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
JP7244060B2 (ja) * 2019-02-20 2023-03-22 Necソリューションイノベータ株式会社 ブロック暗号装置、ブロック暗号方法およびプログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023623A (ja) * 2000-07-13 2002-01-23 Toshiba Corp パラメータ決定装置、パラメータ決定方法、暗号化装置、および復号装置
JP2002091295A (ja) * 2000-07-13 2002-03-27 Fujitsu Ltd Feistel構造とSPN構造とを組み合わせた演算装置および演算方法
JP2002091297A (ja) * 2000-07-13 2002-03-27 Fujitsu Ltd F関数内部にspn構造を用いた演算装置および演算方法
JP2004245988A (ja) * 2003-02-13 2004-09-02 Sony Corp データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
US7305085B2 (en) * 2000-06-30 2007-12-04 Kabushiki Kaisha Toshiba Encryption apparatus and method, and decryption apparatus and method based on block encryption
JP3505482B2 (ja) * 2000-07-12 2004-03-08 株式会社東芝 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
JP2003098959A (ja) * 2001-09-21 2003-04-04 Toshiba Corp 暗号処理装置
US20030233557A1 (en) * 2002-06-13 2003-12-18 Zimmerman Thomas Guthrie Electronic signature verification method and apparatus
US20040088588A1 (en) * 2002-10-31 2004-05-06 International Business Machines Corporation Limited resource access while power-on-password is active
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4466108B2 (ja) * 2004-02-13 2010-05-26 株式会社日立製作所 証明書発行方法および証明書検証方法
JP4561252B2 (ja) * 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 2005-03-25 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2007199156A (ja) 2006-01-24 2007-08-09 Sony Corp 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
US8146139B2 (en) * 2006-06-30 2012-03-27 Samsung Electronics Co., Ltd. System and method of user authentication using handwritten signatures for an MFP
JP4882598B2 (ja) 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5682526B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5652363B2 (ja) 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002023623A (ja) * 2000-07-13 2002-01-23 Toshiba Corp パラメータ決定装置、パラメータ決定方法、暗号化装置、および復号装置
JP2002091295A (ja) * 2000-07-13 2002-03-27 Fujitsu Ltd Feistel構造とSPN構造とを組み合わせた演算装置および演算方法
JP2002091297A (ja) * 2000-07-13 2002-03-27 Fujitsu Ltd F関数内部にspn構造を用いた演算装置および演算方法
JP2004245988A (ja) * 2003-02-13 2004-09-02 Sony Corp データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP1788542A4 *
TAIZO SHIRAI; KYOJI SHIBUTAMI: "Fast Software Encryption 2004, Lecture Notes in Computer Science", vol. 3017, February 2004, SPRINGER VER- LAG., article "Improving immunity of Feistel ciphers against differential cryptanalysis by using multiple MDS matrices", pages: 260 - 278

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101553856B (zh) * 2006-09-01 2011-04-20 索尼株式会社 密码处理装置和密码处理方法

Also Published As

Publication number Publication date
ES2391639T3 (es) 2012-11-28
RU2006114754A (ru) 2007-11-10
US20120324243A1 (en) 2012-12-20
US8275127B2 (en) 2012-09-25
EP2375624A3 (en) 2015-05-06
US9240885B2 (en) 2016-01-19
US8767956B2 (en) 2014-07-01
US7747011B2 (en) 2010-06-29
JP2006072054A (ja) 2006-03-16
US20090103714A1 (en) 2009-04-23
CN1879138A (zh) 2006-12-13
EP2375625A3 (en) 2015-05-06
RU2383934C2 (ru) 2010-03-10
US20140247937A1 (en) 2014-09-04
HK1096758A1 (en) 2007-06-08
JP4561252B2 (ja) 2010-10-13
ES2860689T3 (es) 2021-10-05
EP1788542A4 (en) 2008-01-16
CN100511331C (zh) 2009-07-08
EP2375624B1 (en) 2021-03-17
EP2375624A2 (en) 2011-10-12
EP1788542A1 (en) 2007-05-23
BRPI0506365A (pt) 2006-10-31
EP2375625B1 (en) 2021-06-16
ES2879845T3 (es) 2021-11-23
KR101091749B1 (ko) 2011-12-08
EP2375625A2 (en) 2011-10-12
KR20070058370A (ko) 2007-06-08
US20110026706A1 (en) 2011-02-03
BRPI0506365B1 (pt) 2019-01-15
EP1788542B1 (en) 2012-07-18

Similar Documents

Publication Publication Date Title
WO2006025416A1 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8306217B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
EP2048641B1 (en) Encryption processing device, method for building encryption process algorithm, encryption processing method, and computer program
EP2096616A1 (en) Encryption device, encryption method, and computer program
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
WO2008026624A1 (en) Data conversion device, data conversion method, and computer program
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
Deb et al. Study of NLFSR and reasonable security improvement on trivium cipher

Legal Events

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

Ref document number: 200580001259.7

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

WWE Wipo information: entry into national phase

Ref document number: 2005781289

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020067006887

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2006114754

Country of ref document: RU

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: PI0506365

Country of ref document: BR

WWE Wipo information: entry into national phase

Ref document number: 10577955

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2005781289

Country of ref document: EP