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

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

Info

Publication number
WO2007083528A1
WO2007083528A1 PCT/JP2007/050009 JP2007050009W WO2007083528A1 WO 2007083528 A1 WO2007083528 A1 WO 2007083528A1 JP 2007050009 W JP2007050009 W JP 2007050009W WO 2007083528 A1 WO2007083528 A1 WO 2007083528A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
cryptographic
linear transformation
matrix
cryptographic processing
Prior art date
Application number
PCT/JP2007/050009
Other languages
English (en)
French (fr)
Inventor
Taizo Shirai
Kyoji Shibutani
Original Assignee
Sony Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corporation filed Critical Sony Corporation
Priority to EP07706356A priority Critical patent/EP1975908A4/en
Priority to CN200780002505XA priority patent/CN101371286B/zh
Priority to US12/160,895 priority patent/US8073140B2/en
Publication of WO2007083528A1 publication Critical patent/WO2007083528A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures

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, and a computer program that execute a Feistel type common key block cryptographic process.
  • 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.
  • the present invention has been made in view of the above problems, and has a configuration for executing Feistel-type common key block encryption processing! In addition to other encryption algorithms and hash functions, etc.
  • Cryptographic processing device, cryptographic processing method, and computer program that can reduce design cost and memory storage data by sharing parts as a configuration to perform applicable data conversion and common data conversion The purpose is to provide.
  • the present invention uses at least a part of hardware and software necessary for executing nonlinear transformation and linear transformation in common in cryptographic processing and hash functions that are different algorithms. This makes it possible to reduce the hardware implementation cost, and also to reduce the code size by sharing components in software implementation, the encryption processing method, and the computer program.
  • the purpose is to provide lamb.
  • the first aspect of the present invention provides
  • a cryptographic processing device A cryptographic processing device,
  • a cryptographic processing unit that executes Feistel-type common key block cryptographic processing that repeats multiple rounds of the SP-type F function that performs data transformation processing including nonlinear transformation processing and linear transformation processing;
  • the cryptographic processing unit executes Feistel-type common key block cryptographic processing that repeats multiple rounds of the SP-type F function that performs data transformation processing including nonlinear transformation processing and linear transformation processing;
  • At least one of the non-linear conversion process or the linear conversion process executed in the F function in each round is the same as the conversion process applied in the encryption algorithm or hash function other than the Feistel type common key block cipher algorithm.
  • the cryptographic processing apparatus is characterized in that the processing is executed as processing.
  • the cryptographic processing unit is configured to selectively apply at least two or more different matrices to the linear conversion processing of each round, At least one of the matrices to be selectively applied is a matrix applied in an encryption algorithm or a hash function other than the Feistel type common key block cipher algorithm.
  • the cryptographic processing unit is configured to selectively apply two different matrices M and M to linear transformation processing of each round.
  • the cryptographic processing unit is configured to selectively apply three different matrices M 1, M 2, and M to linear transformation processing of each round.
  • the cryptographic processing unit is configured to execute 64-bit Feistel type common key block cryptographic processing, and is selectively applied to linear transformation processing in each round. At least one of the matrices is a matrix applied to the AES encryption algorithm. [0016] Further, in one embodiment of the cryptographic processing apparatus of the present invention, the cryptographic processing unit includes: AE
  • the cryptographic processing unit is configured to execute 128-bit Feistel-type common key block cryptographic processing, and is selectively applied to linear conversion processing in each round.
  • At least one of the matrices is characterized by being a matrix that is applied in the Whirlpoore and Shush functions.
  • the cryptographic processing unit is configured to selectively execute both algorithms of a Whirlpool hash function and a 128-bit Feistel type common key block cryptographic process. It is characterized by having.
  • the second aspect of the present invention provides
  • It has a cryptographic processing step that executes Feistel-type common key block cryptographic processing that repeats multiple rounds of SP-type F functions that perform data transformation processing including nonlinear transformation processing and linear transformation processing.
  • the cryptographic processing step includes
  • At least one of the non-linear conversion process or the linear conversion process executed in the F function in each round is the same as the conversion process applied in the encryption algorithm or hash function other than the Feistel type common key block cipher algorithm.
  • the encryption processing method is characterized by being executed as a process.
  • the cryptographic processing step selectively applies and applies a plurality of different matrices of at least two or more to each round of linear transformation processing.
  • At least one of the matrices is a matrix applied in an encryption algorithm or a hash function other than the Feistel-type common key block encryption algorithm.
  • the cryptographic processing step includes a process of selectively applying two different matrices M and M to the linear transformation process of each round.
  • each matrix M and M is (a) Apply to M, M in order of odd rounds,
  • the cryptographic processing step selectively applies three different matrices M 1, M 2, and M to the linear transformation processing in each round.
  • Three different matrices M, M, and M are applied so as to satisfy the conditions (a) and (b) above.
  • the cryptographic processing step is a step of executing a 64-bit Feistel-type common key block cryptographic process, and a matrix that is selectively applied to the linear transformation process in each round. At least one of the above is characterized by applying a matrix used in the AES encryption algorithm.
  • the cryptographic processing step is a step of executing a 128-bit Feistel type common key block cryptographic process, and a matrix to be selectively applied to the linear transformation process of each round At least one of the above is a matrix that is applied to the Whirlpoo Leh, the sch function.
  • the third aspect of the present invention provides
  • the cryptographic processing step includes
  • At least one of the non-linear conversion process and the linear conversion process executed in the F function in each round is the same as the conversion process applied in the cryptographic algorithm or hash function other than the Feistel type common key block cipher algorithm. It is in a computer program characterized by being executed as a conversion process.
  • the computer 'program of the present invention is, for example, a storage medium or communication medium provided in a computer-readable format to a computer system capable of executing various program' codes, such as a CD or FD.
  • a computer program that can be provided via a recording medium such as MO or a communication medium such as a network.
  • system is a logical group configuration of a plurality of devices, and the devices of each configuration are not limited to being in the same casing.
  • the SP-type F function having a non-linear transformation unit and a linear transformation unit is executed in the F function in each round in the Feistel-type common key block cipher processing that repeatedly executes a plurality of rounds.
  • At least one of the non-linear conversion process and the linear conversion process is applied to a cryptographic algorithm or hash function other than the Feistel-type common key block cipher algorithm, such as AES or Whirlpool! Since it is configured to execute as the same conversion process as the process, it is possible to reduce design costs and memory storage data by sharing parts.
  • 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. 4 A diagram explaining the Feistel-type cryptographic algorithm using three different linear transformation matrices.
  • FIG. 5 is a diagram showing a configuration example of an IC module as a cryptographic processing apparatus that executes cryptographic processing according to the present invention.
  • the Feistel structure with SP type F function is explained.
  • a structure called a Feistel structure is often used, in which conversion functions that are the basis for plaintext data conversion methods are arranged in a special order.
  • the Feistel structure has a structure that converts plaintext into ciphertext by simple repetition of a conversion function called a round function.
  • the Feistel structure will be described with reference to FIG.
  • the length of the plaintext input as the encryption target is 2mn bits. However, m and n are both integers.
  • the 2mn bit plaintext is divided into two mnbit input data P (Plain-Left) 101, P (Plain-Right) 102
  • the Feistel structure is expressed by repetition of a basic structure called a round function, and a data conversion function included in each round is called an F function 120.
  • a round function a basic structure
  • a data conversion function included in each round is called an F function 120.
  • the F function round An example of a configuration in which 120 is repeated r stages is shown.
  • the mn-bit input data X and the mn-bit round key K 103 to which the key generation unit (not shown) is also input are input to the F function 120, and the F function 120 After the data conversion process, mn bit data Y is output.
  • the output is the input data from the other previous stage (input data P in the first stage) and the exclusive OR part 104.
  • FIG. 2 (a) is a diagram showing inputs and outputs to the F function 120 in one round
  • FIG. 2 (b) is a diagram showing details of the configuration of the F function 120.
  • F function 120 has a so-called SP-type configuration in which a nonlinear transformation layer (S layer) and a linear transformation layer (P layer) are connected!
  • the F function 120 shown in FIG. 2 is a function having an input / output bit length set to mX n (m, n: integer) bits.
  • exclusive OR of key data K and data X is executed first, then nonlinear transformation layer (S layer) is applied, and then linear transformation layer (P layer) is applied. .
  • the non-linear conversion layer (S layer) consists of m non-linear input tables called n-bit input and n-bit output called S-box 121, and mn bit data. Is divided into n bits and input to the corresponding S-box 121 to convert the data. In each S box, for example, nonlinear conversion processing using a conversion table is executed.
  • the linear conversion layer (P layer) is configured by a linear conversion unit 122, and the linear conversion unit 122 inputs an output value Z of mn bits, which is output data from the S bot 121, and receives this input. Performs linear conversion and outputs the mn bit result.
  • the linear conversion unit 122 performs linear conversion processing such as input bit position replacement processing and outputs an output value Y of mn bits. This The output value Y is XORed with the input data of the previous stage force and used as the input value of the F function of the next round.
  • the linear transformation executed by the linear transformation unit 122 as the linear transformation layer is defined on GF (2) mn X mn It is defined that the transformation is a linear transformation performed by applying the matrix, and the matrix included in the i-th round is called M.
  • Optimal Diffusion Mappings is defined as follows.
  • n X a bit data force mapping that performs linear conversion to n X b bit data
  • branches B ( ⁇ ) The number of branches B ( ⁇ ) is defined as follows.
  • min ⁇ X ⁇ represents the minimum value of all Xs satisfying ⁇ ⁇ 0.
  • Hw (Y) is a function that returns the number of non-zero (non-zero) elements in the n-bit data when the bit string Y is divided into n bits.
  • mapping ⁇ such that B (0) is b + 1 as the optimal diffusion transformation.
  • B (M) the number of branches in the matrix M is expressed as B (M).
  • S layer As a nonlinear transformation layer (S layer), an S-box that also has an n-bit input and an n-bit output nonlinear transformation table power
  • P layer As the linear transformation layer (P layer), a linear transformation matrix that performs linear transformation processing such as permutation processing of input bit positions is used.
  • US standard cipher AES is a 128-bit block cipher, and there are parts of the data conversion procedure that perform the following non-linear and linear operations.
  • the above equation shows a part of the linear transformation in AES.
  • the above equation is an equation using a linear transformation matrix that performs linear transformation processing such as input bit position replacement processing.
  • the elements of the matrix represent the elements of the finite field GF (2 8 ), and the irreducible polynomial is represented by t 8 + t 4 + t 3 + t + 1.
  • the matrix used here is an optimal diffusion transform with 5 branches.
  • the 4 X 4 matrix described above is applied to the linear transformation in the AES encryption algorithm.
  • Hash function Whirlpool is a hash function with 512-bit output, and there is a part that performs the following operations in the data conversion procedure.
  • the above equation shows the nonlinear transformation of the hash function Whirlpool.
  • S w (x) is the S-box that performs the nonlinear transformation applied in the no-shush function Whirlpool.
  • the above equation represents a linear transformation of the hash function Whirlpool.
  • the above equation is an equation using a linear transformation matrix that performs linear transformation processing such as input bit position replacement processing.
  • the elements of the matrix represent the elements of the finite field GF (2 8 ), and the irreducible polynomial is represented by t 8 + t 4 + t 3 + t 2 + 1.
  • the matrix used here is the optimal spread transform with 9 branches. Noh, Sche function The 8 x 8 matrix described above is applied to the linear transformation in the Whirlpool algorithm.
  • the cryptographic processing apparatus includes a data including a non-linear conversion process and a linear conversion process.
  • SP-type F function that repeats the data conversion process Feitel-type common key block that repeats multiple rounds
  • a cryptographic processing unit that performs cryptographic processing, and in the cryptographic processing unit, nonlinear transformation processing or linear transformation that is executed in the F function in each round It has a configuration in which at least one of the conversion processes is executed as the same conversion process as a conversion process applied in a cryptographic algorithm or hash function other than the Feistel type common key block cipher algorithm.
  • Feistel ciphers with SP-type F functions are the algorithms described earlier in [1. Feistel structure with SP-type F functions].
  • the algorithms include AES ciphers and the hash function Whirlpool.
  • the Feistel type signal having the SP type F function has a configuration in which the F function is executed in each round as described above with reference to FIGS. 1 and 2, and the S in the F function in each round. It has a configuration that executes non-linear transformation applying a box and linear transformation processing applying a linear transformation matrix.
  • the Feistel cipher with the SP type F function which is one design of the common key block cipher, can support various input / output bit configurations by changing the configuration of the F function. For example, there are 64-bit block ciphers with 64 I / O bits, some! / Are 128-bit block ciphers with 128 I / O bits.
  • the non-linear conversion processing or linear conversion processing configuration applied to the F function needs to be a configuration corresponding to the number of processing bits.
  • the Feistel cipher with SP type F function that executes 128-bit block cipher with 128 I / O bits is applied to the hash function Whirlpool!
  • Non-linear transformation and linear transformation processing configurations can be applied.
  • a conversion table replacement table for linear conversion and linear conversion applied by the hash function Whirlpool.
  • the linear transformation matrix applied to is applicable.
  • the linear transformation matrix to be applied in each round is set as a different matrix, for example, it is necessary to hold a plurality of different linear transformation matrix data in an information processing apparatus such as an IC card that executes cryptographic processing.
  • an information processing apparatus such as an IC card that executes cryptographic processing.
  • AES As described above, in an IC card or a mobile terminal, various data processing can be executed by one device, and therefore it is required to have a configuration capable of executing various cryptographic algorithms and hash functions. It has been. In response to such a request, for example, when a configuration capable of executing two different algorithms of AES and Feistel encryption is used, it is necessary to maintain a nonlinear conversion table and a linear conversion matrix applied to each algorithm. Become. In addition, when two different algorithms, the whirlpool and the Feistel cipher, are configured to be executable, it is necessary to maintain a nonlinear conversion table and a linear conversion matrix applied to each algorithm.
  • a limited memory space of a device such as an IC card is used to store a plurality of tables and matrices used for the plurality of algorithms. Will be spent to store.
  • a linear transformation matrix for application to Feistel-type encryption is a matrix that has a property to prevent a decrease in encryption strength because it is not preferable to use an arbitrary matrix in order to maintain a certain encryption strength. It will be necessary.
  • the linear transformation part of the F function corresponding to each of the r stages in the Feistel-type common key block cipher processing configuration consisting of r stages with F functions applies a matrix M that satisfies the following conditions.
  • nX a bit data force n X b Map for linear conversion to b bit data 0: For ⁇ 0, 1 ⁇ ⁇ ⁇ 0, l ⁇ nb , the number of branches ⁇ ( ⁇ ) is
  • Number of branches B (6) min ⁇ hw (a) + hw ( ⁇ ( ⁇ )) ⁇ ,
  • hw (Y) is a function that returns the number of ⁇ (non-zero) elements in which all the n-bit data is not 0 when the bit string Y is divided into n bits.
  • mapping ⁇ where the number of branches ⁇ ( ⁇ ) is b + 1 as the optimal diffusion transformation
  • a I B is a matrix obtained by concatenating matrices A and B,
  • M and M must be different matrices under the condition of 3 or more.
  • Restriction Condition A can be applied as a condition of the linear transformation matrix applied to the Feistel encryption in order to have resistance against attacks such as differential attacks.
  • the linear transformation matrix used in AES and Whirlpool for example, satisfies a certain condition for the number of branches, which is one of the indicators for maintaining the cryptographic strength, and applies these to Feistel cryptography. By doing so, it is ensured that a certain encryption strength is maintained. Therefore, by applying the linear transformation matrix used in AES and Whirlpool to a part of the plurality of matrices in the Feistel type cryptography that applies the above-mentioned plurality of different linear transformation matrices, the IC card is a portable terminal. This makes it possible to effectively use the memory in cryptographic processing devices such as the Feistel type cryptographic design. In other words, the number of matrices to be determined at the time of design can be reduced, the number of candidates to be searched by the designer is reduced, and the time for narrowing down is reduced.
  • Feistel ciphers with SP-type F-functions the linear transformation matrix to be applied to each round is set as a different matrix, and Feistel-type with increased resistance to attacks such as differential analysis.
  • a configuration example in which the AES or Whirpool matrix is applied to some of the linear transformation matrices will be explained.
  • an example will be described in which an AES or Whirlpool matrix is adopted as one of the matrices in a Feistel cipher that uses two or three different linear transformation matrices.
  • Condition (a) is a condition that (a) is arranged in the order of M and M in odd stages, and as shown in FIG.
  • the matrices M and M are arranged in this order in the order of 8,.
  • each of the matrices M 1 and M 2 is a linear function executed in the F function in each round.
  • the matrix M is a matrix that satisfies the constraints of the Feistel cryptographic algorithm.
  • matrix ⁇ is used in the AES algorithm described above.
  • the matrix ⁇ is a matrix with a selected matrix force that satisfies the constraints of the Feistel cryptographic algorithm.
  • each matrix represent the elements of the finite field GF (2 8 ), and the irreducible polynomial is represented by t 8 + t 4 + t 3 + t + 1.
  • Condition (a) is a condition in which (a) M 1, M 3 and M are arranged in the odd-numbered stage in this order, as shown in FIG.
  • Matrixes M, M, and M are arranged in this order in the order of rounds 12, 10, 8,.
  • each of the matrices M 1, M 2, M is executed in the F function in each round
  • the matrices M and M are Feistel's algorithm
  • the matrix satisfies the constraints of the system.
  • the matrix M is the AES algorithm described above.
  • each matrix element represents an element of a finite field GF (2 8 ), and an irreducible polynomial is represented by t 8 + t 4 + t 3 + t + l.
  • Feistel ciphers that use two different linear transformation matrices are in the F function of each stage in a Feistel type common key block cipher processing configuration with multiple stages (rounds).
  • Two different linear transformation matrices M and M are used as matrices for the linear transformation processing applied in the linear transformation section of
  • Condition (a) is a condition that (a) is arranged in order of M and M in odd stages, and as shown in FIG.
  • the matrices M and M are arranged in this order in the order of 8,.
  • each of the matrices M 1 and M 2 is a linear function executed in the F function in each round.
  • the matrix M is the control of the Feistel encryption algorithm. Let the matrix satisfy the conditions.
  • the number of branches is 8 or more even if any 8 rows are fetched, and ⁇ _1 2
  • the matrix ⁇ is based on the Whirlpool algorithm described above.
  • the matrix M is a matrix selected from the matrices that satisfy the constraints of the Feistel encryption algorithm. Two different matrices M, M above
  • 0 1 is applied to perform a linear transformation of the F function in each round of the Feistel encryption algorithm.
  • the elements of each matrix represent elements of a finite field GF (2 8 ), and the irreducible polynomial is represented by t 8 + t 4 + t 3 + t 2 + 1.
  • Feistel type ciphers using three different linear transformation matrices are in the F function at each stage in a Feistel type common key block cipher processing configuration with multiple stages (rounds).
  • Three different matrices M, M, and M are used as the matrix for the linear transformation process applied in the linear transformation part of
  • Condition (a) is a condition that (a) is arranged in order of M 1, M 2, and M in odd-numbered stages.
  • Matrixes M, M, and M are arranged in this order in the order of rounds 12, 10, 8,.
  • each of the matrices M 1, M 2, M is executed in the F function in each round
  • the matrix M is the Whirlpool algorithm described above.
  • the matrices M and M are Feistel ciphers
  • the matrix M is the Whirlpool algorithm described above.
  • Three different matrices M above Three different matrices M above
  • each matrix element represents an element of the finite field GF (2 8 ), and the irreducible polynomial is t
  • the Feistel type common key block cipher processing is configured to execute the linear transformation matrix AES or Whirlpool applied to the linear transformation processing in the F function of each round.
  • the power that explains the common configuration The conversion table applied to the nonlinear transformation, for example, the nonlinear transformation processing applied to the AES algorithm in the nonlinear transformation processing in the 64-bit Feistel type common key block cipher processing, for example Use conversion table
  • a nonlinear conversion table applied to the Whirlpool algorithm can be used for nonlinear conversion processing in 128-bit Feistel type common key block cipher processing.
  • the cryptographic processing apparatus of the present invention includes a cryptographic processing unit that executes a Feistel-type common key block cryptographic process that repeats a SP-type F function that performs a data conversion process including a nonlinear conversion process and a linear conversion process for a plurality of rounds. And at least one of non-linear transformation processing or linear transformation processing executed in accordance with the F function in each round in the cryptographic processing unit other than the Feistel type common key block cryptographic algorithm. It is configured to execute as the same conversion process as that applied in the cryptographic algorithm or hash function. With this configuration, it is possible to reduce memory storage data by reducing design costs by sharing parts.
  • FIG. 5 shows a configuration example of the IC module 300 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 300 shown in FIG. 5 can be configured in these various devices.
  • a CPU (Central processing Unit) 301 shown in FIG. 5 is a processor that executes the start and end of cryptographic processing, control of data transmission / reception, data transfer control between components, and other various programs.
  • the memory 302 is a program executed by the CPU 301 or a ROM (Read-Only-Memory) that stores fixed data such as calculation parameters, a program executed in the processing of the CPU 301, and changes as appropriate depending on the program processing.
  • the storage area of parameters to be used, RAM (Random Access Memory) used as work area, etc. are also available.
  • the memory 302 is used as a storage area for key data necessary for encryption processing, conversion table (replacement table) applied in encryption processing, data applied to conversion matrix, and the like. Is available.
  • the data storage area is preferably configured as a memory having a tamper-resistant structure.
  • the cryptographic processing unit 303 executes, for example, cryptographic processing and decryption processing according to the above-described Feistel-type common key block cryptographic processing algorithm, AES algorithm, signal processing such as Whirlpool, hash function, and the like. Note that here, the power of an example in which the encryption processing means is an individual module is not provided.
  • an encryption processing program is stored in the ROM, and the CPU 301 reads the ROM storage program. May be configured to run.
  • the random number generator 304 executes a random number generation process necessary for generating a key necessary for the cryptographic process.
  • the transmission / reception unit 305 is a data communication processing unit that performs data communication with the outside. 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.
  • This IC module 300 has a configuration capable of executing two different algorithms such as the AES algorithm and the Feistel-type symmetric key block encryption algorithm to which a plurality of different matrices (linear transformation matrices) are applied.
  • a part of the application matrix of the Feistel type common key block cipher processing algorithm is shared with the application matrix of the AES algorithm, so that the data for the transformation matrix to be recorded in the memory 302 can be reduced.
  • the program can be recorded in advance in a hard disk or ROM (Read Only Memory) as a recording medium.
  • the program can be temporarily or permanently stored on a removable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory. Can be stored (recorded).
  • a removable recording medium such as a flexible disk, CD-ROM (Compact Disc Read Only Memory), MO (Magneto optical) disk, DVD (Digital Versatile Disc), magnetic disk, or semiconductor memory.
  • Such removable recording media can be provided as V, so-called packaged software.
  • the program is installed on the computer with a removable recording medium, as described above, or wirelessly transferred 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.
  • any conversion processing is performed by using a cryptographic algorithm or hash function other than the Feistel type common key block cipher algorithm, such as AES or Whirlpool. Because it is configured to execute as the same conversion process as that applied in the above, it is possible to reduce design cost and memory storage data by sharing parts. In other words, by making it possible to use at least a part of the hardware and software necessary for performing nonlinear transformation and linear transformation in common in cryptographic processing and hash functions that are different algorithms, hardware In addition, the code size can be reduced by sharing components in software implementation.

Landscapes

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

Abstract

低コストかつメモリ記憶データの削減を可能としたFeistel型共通鍵ブロック暗号処理構成を実現する。非線形変換部および線形変換部を有するSP型のF関数を、複数ラウンド繰り返し実行するFeistel型共通鍵ブロック暗号処理において、各ラウンドにおけるF関数において実行する非線形変換処理または線形変換処理の少なくともいずれかの変換処理を、前記Feistel型共通鍵ブロック暗号アルゴリズム以外の暗号アルゴリズムまたはハッシュ関数、例えばAESやWhirlpoolなどにおいて適用される変換処理と同一の変換処理として実行する構成とした。本構成により、部品の共通化による設計コストの削減やメモリ記憶データの削減が可能となる。

Description

明 細 書
暗号処理装置、および暗号処理方法、並びにコンピュータ 'プログラム 技術分野
[0001] 本発明は、暗号処理装置、および暗号処理方法、並びにコンピュータ 'プログラム に関する。さらに詳細には、 Feistel型共通鍵ブロック暗号処理を実行する暗号処理 装置、および暗号処理方法、並びにコンピュータ 'プログラムに関する。
背景技術
[0002] 昨今、ネットワーク通信、電子商取引の発展に伴い、通信におけるセキュリティ確保 が重要な問題となっている。セキュリティ確保の 1つの方法が暗号技術であり、現在、 様々な暗号ィ匕手法を用いた通信が実際に行なわれている。
[0003] 例えば ICカード等の小型の装置中に暗号処理モジュールを埋め込み、 ICカードと 、データ読み取り書き込み装置としてのリーダライタとの間でデータ送受信を行ない、 認証処理、あるいは送受信データの暗号化、復号を行なうシステムが実用化されて いる。
[0004] 暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号 鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵 と復号鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
[0005] 共通鍵暗号方式にも様々なアルゴリズムがある力 その 1つに共通鍵をベースとし て複数の鍵を生成して、生成した複数の鍵を用いてブロック単位(64ビット, 128ビッ トなど)のデータ変換処理を繰り返し実行する方式がある。このような鍵生成方式とデ ータ変換処理を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式で ある。
[0006] 代表的な共通鍵ブロック暗号のアルゴリズムとしては、共通鍵ブロック暗号のァルゴ リズム中で行なわれるデータ変換には非線形変換や線形変換が含まれる。従って、 共通鍵ブロック暗号などの暗号要素技術を設計する際に、非線形変換を行う関数や 線形変換部に利用するための行列を決定しなくてはならない。
[0007] 例えば、 ICカードにおいて暗号処理演算を実行させる場合、暗号処理アルゴリズム を実行させるハードウェアを内蔵させ、ハードウェア内のメモリにプログラム(ソフトゥェ ァ)などのデータを記録することが必要となる。
[0008] 昨今、 ICカードや携帯電話などの情報処理端末に様々なデータ処理機能を備えさ せることで、ユーザが多数のカードを保持する必要性を排除し、利便性を高めようと する動きがある。しかし、この場合、それぞれの機関の運用システムにおいて採用す る暗号アルゴリズムに対応させることが必要となる。 ICカードや携帯端末などにおい て、複数の異なる暗号アルゴリズムを実行可能な構成とするためには、各ァルゴリズ ムに対応するハードウェアを備え、かつ各アルゴリズムに対応するソフトウェアを組み 込むことが必要となり、コスト高を招くと!、う問題がある。
発明の開示
発明が解決しょうとする課題
[0009] 本発明は、上記問題点に鑑みてなされたものであり、 Feistel型共通鍵ブロック暗 号処理を実行する構成にお!、て、他の暗号アルゴリズムやハッシュ関数などにお!ヽ て適用可能なデータ変換と共通のデータ変換を実行する構成として、部品の共通化 による設計コストの削減やメモリ記憶データの削減を可能とした暗号処理装置、およ び暗号処理方法、並びにコンピュータ 'プログラムを提供することを目的とする。
[0010] さらに、具体的には、本発明は、非線形変換や線形変換を実行するために必要と なる少なくとも一部のハードウェアや、ソフトウェアを、異なるアルゴリズムである暗号 処理やハッシュ関数において共通に利用可能とすることで、ハードウェアの実装コス トを低下させ、またソフトウェア実装においても部品の共有ィ匕による、コードサイズの 縮小を可能とした暗号処理装置、および暗号処理方法、並びにコンピュータ 'プログ ラムを提供することを目的とする。
課題を解決するための手段
[0011] 本発明の第 1の側面は、
暗号処理装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 を有し、 前記暗号処理部は、
各ラウンドにおける F関数において実行する非線形変換処理または線形変換処理 の少なくとも ヽずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム 以外の暗号アルゴリズムまたはハッシュ関数において適用される変換処理と同一の 変換処理として実行する構成であることを特徴とする暗号処理装置にある。
[0012] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、各ラ ゥンドの線形変換処理に、少なくとも 2以上の異なる複数の行列を選択的に適用する 構成であり、選択適用する行列の少なくとも 1つは前記 Feistel型共通鍵ブロック暗号 アルゴリズム以外の暗号アルゴリズムまたはハッシュ関数において適用される行列で あることを特徴とする。
[0013] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、各ラ ゥンドの線形変換処理に、 2つの異なる行列 M , Mを選択的に適用する構成であり
0 1
、各行列 M , Mの配置は、
0 1
(a)奇数ラウンドに M , Mの順に配置、
0 1
(b)偶数ラウンドの最終段から M , Mの順に配置、
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用する構成で
0 1
あることを特徴とする。
[0014] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、各ラ ゥンドの線形変換処理に、 3つの異なる行列 M , M , Mを選択的に適用する構成
0 1 2
であり、各行列 M , M , Mの配置は、
0 1 2
(a)奇数ラウンドに M , M , Mの順に配置、
0 1 2
(b)偶数ラウンドの最終段から M , M , Mの順に配置、
0 1 2
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用する構
0 1 2
成であることを特徴とする。
[0015] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、 64ビ ット Feistel型共通鍵ブロック暗号処理を実行する構成であり、各ラウンドの線形変換 処理に選択適用する行列の少なくとも 1つは AES暗号アルゴリズムにお 、て適用さ れる行列であることを特徴とする。 [0016] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、 AE
S暗号処理と、 64ビット Feistel型共通鍵ブロック暗号処理との両アルゴリズムを選択 的に実行する構成を有することを特徴とする。
[0017] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、 128 ビット Feistel型共通鍵ブロック暗号処理を実行する構成であり、各ラウンドの線形変 換処理に選択適用する行列の少なくとも 1つは Whirlpooレ、ッシュ関数において適 用される行列であることを特徴とする。
[0018] さらに、本発明の暗号処理装置の一実施態様において、前記暗号処理部は、 Whi rlpoolハッシュ関数と、 128ビット Feistel型共通鍵ブロック暗号処理との両ァルゴリズ ムを選択的に実行する構成を有することを特徴とする。
[0019] さらに、本発明の第 2の側面は、
暗号処理方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理ス テツプを有し、
前記暗号処理ステップは、
各ラウンドにおける F関数において実行する非線形変換処理または線形変換処理 の少なくとも ヽずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム 以外の暗号アルゴリズムまたはハッシュ関数において適用される変換処理と同一の 変換処理として実行することを特徴とする暗号処理方法にある。
[0020] さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理ステップは 、各ラウンドの線形変換処理に、少なくとも 2以上の異なる複数の行列を選択的に適 用し、選択適用する行列の少なくとも 1つは前記 Feistel型共通鍵ブロック暗号アル ゴリズム以外の暗号アルゴリズムまたはハッシュ関数において適用される行列である ことを特徴とする。
[0021] さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理ステップは 、各ラウンドの線形変換処理に、 2つの異なる行列 M , Mを選択的に適用する処理
0 1
を実行するステップであり、各行列 M , Mの適用順は、 (a)奇数ラウンドに M , Mの順に適用、
0 1
(b)偶数ラウンドの最終段から M , Mの順に適用、
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用することを
0 1
特徴とする。
[0022] さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理ステップは 、各ラウンドの線形変換処理に、 3つの異なる行列 M , M , Mを選択的に適用する
0 1 2
処理を実行するステップであり、各行列 M , M , Mの適用順は、
0 1 2
(a)奇数ラウンドに M , M , Mの順に適用、
0 1 2
(b)偶数ラウンドの最終段から M , M , Mの順に適用、
0 1 2
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用するこ
0 1 2
とを特徴とする。
[0023] さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理ステップは 、 64ビット Feistel型共通鍵ブロック暗号処理を実行するステップであり、各ラウンドの 線形変換処理に選択適用する行列の少なくとも 1つは AES暗号アルゴリズムにおい て利用される行列を適用することを特徴とする。
[0024] さらに、本発明の暗号処理方法の一実施態様において、前記暗号処理ステップは 、 128ビット Feistel型共通鍵ブロック暗号処理を実行するステップであり、各ラウンド の線形変換処理に選択適用する行列の少なくとも 1つは Whirlpooレ、ッシュ関数に ぉ 、て適用される行列であることを特徴とする。
[0025] さらに、本発明の第 3の側面は、
暗号処理装置において暗号処理を実行させるコンピュータ 'プログラムであり、 暗号処理部にぉ 、て実行させるステップとして、非線形変換処理および線形変換 処理を含むデータ変換処理を実行する SP型 F関数を複数ラウンド繰り返す Feistel 型共通鍵ブロック暗号処理を実行させる暗号処理ステップを有し、
前記暗号処理ステップは、
各ラウンドにおける F関数において実行する非線形変換処理または線形変換処理 の少なくとも 、ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム 以外の暗号アルゴリズムまたはハッシュ関数において適用される変換処理と同一の 変換処理として実行させるステップであることを特徴とするコンピュータ 'プログラムに ある。
[0026] なお、本発明のコンピュータ 'プログラムは、例えば、様々なプログラム 'コードを実 行可能なコンピュータ ·システムに対して、コンピュータ可読な形式で提供する記憶 媒体、通信媒体、例えば、 CDや FD、 MOなどの記録媒体、あるいは、ネットワークな どの通信媒体によって提供可能なコンピュータ 'プログラムである。このようなプロダラ ムをコンピュータ可読な形式で提供することにより、コンピュータ 'システム上でプログ ラムに応じた処理が実現される。
[0027] 本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図 面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書において システムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内に あるものには限らない。
発明の効果
[0028] 本発明の構成によれば、非線形変換部および線形変換部を有する SP型の F関数 を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処理において、各ラ ゥンドにおける F関数において実行する非線形変換処理または線形変換処理の少な くとも 、ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム以外 の暗号アルゴリズムまたはハッシュ関数、例えば AESや Whirlpoolなどにお!、て適 用される変換処理と同一の変換処理として実行する構成としたので、部品の共通化 による設計コストの削減やメモリ記憶データの削減が可能となる。すなわち、非線形 変換や線形変換を実行するために必要となる少なくとも一部のハードウェアや、ソフト ウェアを、異なるアルゴリズムである暗号処理やハッシュ関数にぉ 、て共通に利用可 能とすることで、ハードウェアの実装コストを低下させ、またソフトウェア実装において も部品の共有ィ匕によるコードサイズの縮小が可能となる。
図面の簡単な説明
[0029] [図 l]Feistel構造を持つ代表的な共通鍵ブロック暗号の構成を示す図である。
[図 2]ラウンド関数部として設定される F関数の構成について説明する図である。
[図 3] 2つの異なる線形変換行列を利用した Feistel型暗号アルゴリズムについて説 明する図である。
[図 4] 3つの異なる線形変換行列を利用した Feistel型暗号アルゴリズムについて説 明する図である。
[図 5]本発明に係る暗号処理を実行する暗号処理装置としての ICモジュールの構成 例を示す図である。
発明を実施するための最良の形態
[0030] 以下、本発明の暗号処理装置、および暗号処理方法、並びにコンピュータ 'プログ ラムの詳細について説明する。説明は、以下の項目に従って行なう。
1. SP型 F関数を持つ Feistel構造
2.線形変換層(P層)における最適拡散変換
3.様々な暗号アルゴリズムおよびハッシュ関数におけるデータ変換の態様
4. SP型 F関数を持つ Feistel型暗号におけるデータ変換処理に、他の喑号ァルゴ リズムまたはハッシュ関数に適用されるデータ変換処理構成を適用した構成
(4. 1) AES部品共有型 64ビット Feistel型暗号
(4. 2) Whirlpool部品共有型 128ビット Feistel型暗号
5.暗号処理装置の構成例
[0031] [1. SP型 F関数を持つ Feistel構造]
まず、 SP型 F関数を持つ Feistel構造について説明する。共通鍵ブロック暗号のデ ザインとして、平文データの変換方法に基本となる変換関数をある特別な順序で配 置する Feistel構造と呼ばれる構造が用いられることが多 、。 Feistel構造はラウンド 関数と呼ばれる変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を 持つ。
[0032] 図 1を参照して、 Feistel構造について説明する。暗号ィ匕対象として入力される平文 の長さを 2mnビットとする。ただし、 m, nは共に整数である。初めに、 2mnビットの平 文を、 mnビットの 2つの入力データ P (Plain-Left) 101, P (Plain- Right) 102に分割
L R
し、これを入力値とする。
[0033] Feistel構造はラウンド関数とよばれる基本構造の繰り返しで表現され、各ラウンド に含まれるデータ変換関数は F関数 120と呼ばれる。図 1の構成では、 F関数 (ラウン ド関数) 120が r段繰り返された構成例を示して 、る。
[0034] 例えば第 1番目のラウンドでは、 mnビットの入力データ Xと、鍵生成部(図示せず) 力も入力される mnビットのラウンド鍵 K 103が F関数 120に入力され、 F関数 120に おけるデータ変換処理の後に mnビットのデータ Yを出力する。出力はもう片方の前 段からの入力データ (第 1段の場合は入力データ P )と排他的論理和部 104におい
て、排他的論理和演算がなされ、 mnビットの演算結果が次のラウンド関数へと出力さ れる。この処理、すなわち F関数を定められたラウンド数 (r)だけ繰り返し適用して暗 号化処理が完了し、暗号文の分割データ C (Cipher- Left)、 C (Cipher- Right)が出
L R
力される。以上の構成より、 Feistel構造の復号処理はラウンド鍵を挿入する順序を 逆にするだけでよぐ逆関数を構成する必要がないことが導かれる。
[0035] 各ラウンドの関数として設定される F関数 120の構成について、図 2を参照して説明 する。図 2 (a)は、 1つのラウンドにおける F関数 120に対する入力および出力を示す 図であり、図 2 (b)は、 F関数 120の構成の詳細を示す図である。 F関数 120は、図 2 ( b)に示すように、非線形変換層(S層)と線形変換層(P層)を接続した!/、わゆる SP型 の構成を有する。
[0036] 図 2に示す F関数 120は、入出力ビット長が mX n (m, n:整数)ビットの設定を持つ 関数である。 SP型 F関数内部では初めに鍵データ Kとデータ Xとの排他的論理和が 実行され、次に非線形変換層(S層)が適用され、続いて線形変換層(P層)が適用さ れる。
[0037] 具体的には非線形変換層(S層)は、 Sボックス (S-box) 121と呼ばれる nビット入 力 nビット出力の非線形変換テーブルが m個並んだものであり、 mnビットのデータは nビットずつ分割されてそれぞれ対応する Sボックス(S— box) 121に入力されデータ が変換される。各 Sボックスでは、例えば変換テーブルを適用した非線形変換処理が 実行される。
[0038] 線形変換層(P層)は線形変換部 122によって構成され、線形変換部 122は、 Sボッ タス 121からの出力データである mnビットの出力値 Zを入力し、この入力に対して線 形変換を施し mnビットの結果を出力する。線形変換部 122は、入力ビット位置の入 れ替え処理などの線形変換処理を実行して、 mnビットの出力値 Yを出力する。この 出力値 Yが前段力 の入力データと排他的論理和され、次のラウンドの F関数の入力 値とされる。
[0039] なお、以下に説明する本実施例の構成では、線形変換層(Ρ層)としての線形変換 部 122にお ヽて実行する線形変換は GF (2)上で定義される mn X mnの行列を適用 して行なわれる線形変換であると定義し、また、第 iラウンド目に含まれる行列を Mと 呼ぶものとする。
[0040] [2.線形変換層(P層)における最適拡散変換]
上述した F関数内の線形変換層(P層)としての線形変換部 122において実行され る線形変換の特殊な例として最適拡散変換(Optimal Diffusion Mappings)を 以下のように定義する。
[0041] n X aビットデータ力 n X bビットデータへの線形変換を行う写像、
Θ : {0, 1广→{0, i }nb
に対して分岐数 B ( Θ )を次のように定義する。
B ( 0 ) =min {hw ( a ) +hw ( Θ ( ) ) }
α≠0 η η
ただし、 min {X }は、 α≠0を満たすすべての X のうちの最小値を表すものと
a≠0 a a
し、 hw (Y)はビット列 Yを nビットごとに区切って表したときに、 nビットのデータすベ てが 0ではない(非ゼロ)要素の数を返す関数とする。このとき、 B ( 0 )が b + 1である ような写像 Θを最適拡散変換と定義する。また便宜的に行列 Mの分岐数を B (M)と 表すものとする。
[0042] [3.様々な暗号アルゴリズムおよびハッシュ関数におけるデータ変換の態様] 次に、様々な暗号アルゴリズムおよびハッシュ関数におけるデータ変換の態様につ いて説明する。先に説明した非線形変換や線形変換処理は、多くの暗号ァルゴリズ ムゃ縮約関数としてのハッシュ関数などにおいて利用されるデータ変換である。
[0043] 様々な暗号アルゴリズムおよびハッシュ関数では、このようなデータ変換を行うため 、非線形変換層(S層)として、 nビット入力 nビット出力の非線形変換テーブル力もな る Sボックス(S— box)が利用され、線形変換層(P層)としては、入力ビット位置の入 れ替え処理などの線形変換処理を実行する線形変換行列が利用される。
[0044] このように、様々な暗号アルゴリズムおよびハッシュ関数におけるデータ変換は、非 線形変換や線形変換処理を行なうと ヽぅ共通性を有するため、共通鍵ブロック暗号 やハッシュ関数の一部、ストリーム暗号などでは、データ変換を行なうための同じよう な部品が使われることがある。例えば、非線形変換を実現するために 8ビット入出力 の置換表が使われるケースや、線形変換として GF (28)上の 4x4や 8x8の行列が使 われることがある。以下、米国標準暗号 AES (Advanced Encryption Standard ;) )と、 ISOにおいて標準化されているハッシュ関数 Whirlpoolにおいて利用される非 線形変換と、線形変換の概要について説明する。
[0045] (l)AES暗号
米国標準暗号 AESは 128ビットブロック暗号であり、データ変換手続きの中に以下 のような非線形演算と線形演算を行う部分が存在する。
[非線形変換]
[数 1] ァ。 y2 = sAES (x2)
[0046] 上記式は AESにおける非線形変換の一部を示して 、る。上記式にお!、て、 (X
)は、 AESアルゴリズムにおいて適用される非線形変換を実行する Sボックスによる k
処理関数を示しており、 1バイトデータ )を入力として、 1バイトデータ (y )の出力に
k k
非線形変換処理を行なう関数を示している。複数の Sボックスの適用によって、入力 4 バイトデータ: X〜xを出力 4バイトデータ: y〜yに非線形変換する処理を実行する
[0047] [線形変換]
[数 2]
Figure imgf000013_0001
[0048] 上記式は AESにおける線形変換の一部を示して 、る。上記式は、入力ビット位置 の入れ替え処理などの線形変換処理を実行する線形変換行列を利用した式である 。ただし、行列の要素は有限体 GF (28)の要素を表し、既約多項式は t8+t4+t3+t + 1で表されるものである。ここで用いられている行列は分岐数が 5となる最適拡散変 換である。 AES暗号アルゴリズムにおける線形変換には、上記した 4 X 4の行列が適 用される。
[0049] (2) Whirlpool
次に、 ISOにおいて標準化されているハッシュ関数 Whirlpoolにおいて利用される 非線形変換と、線形変換の概要について説明する。ハッシュ関数 Whirlpoolは 512 bitの出力を持つハッシュ関数であり、データ変換手続きの中に以下のような演算を 行う部分が存在する。
[0050] [非線形変換]
[数 3]
= S ,)
y2-sw(x2)
y4 = sw(x4)
5 = ) y1 = sw(x1)
[0051] 上記式はハッシュ関数 Whirlpoolの非線形変換を示して 、る。上記式にぉ 、て、 S w(x )は、ノ、ッシュ関数 Whirlpoolにおいて適用される非線形変換を実行する Sボッ k
クスによる処理関数を示しており、 1バイトデータ (X
k )を入力として、 1バイトデータ (y k
)の出力に非線形変換処理を行なう関数を示して 、る。複数の sボックスの適用によ つて、入力 8バイトデータ: X〜xを出力 8バイトデータ: y〜yに非線形変換する処
0 7 0 7
理を実行する。
[0052] [線形変換]
[数 4]
Figure imgf000015_0001
[0053] 上記式はハッシュ関数 Whirlpoolの線形変換を示している。上記式は、入力ビット 位置の入れ替え処理などの線形変換処理を実行する線形変換行列を利用した式で ある。ただし、行列の要素は有限体 GF (28)の要素を表し、既約多項式は t8+t4+t3 +t2+ 1で表されるものである。ここで用いられている行列は分岐数が 9となる最適拡 散変換である。ノ、ッシュ関数 Whirlpoolアルゴリズムにおける線形変換には、上記し た 8 X 8の行列が適用される。
[0054] [4. SP型 F関数を持つ Feistel型暗号におけるデータ変換処理に、他の喑号ァ ルゴリズムまたはハッシュ関数に適用されるデータ変換処理構成を適用した構成] 上述したように、 AES暗号や、ノ、ッシュ関数 Whirlpoolでも、入力値から出力値を 得るためのデータ変換処理において非線形変換、線形変換が実行され、それぞれ の変換処理に適用されるデータ、すなわち、非線形変換に適用する変換テーブル( 置換表)や、線形変換に適用する線形変換行列は予め規定されたデータが利用され る。
[0055] 以下では、 SP型 F関数を持つ Feistel型暗号におけるデータ変換処理において実 行される非線形変換処理や変換処理において、 AES暗号や、ハッシュ関数 Whirlp oolにお 、て利用されて 、る非線形変換に適用する変換テーブル (置換表)や、線形 変換に適用する線形変換行列を適用した構成について説明する。
[0056] 本発明に係る暗号処理装置は、非線形変換処理および線形変換処理を含むデー タ変換処理を実行する SP型 F関数を複数ラウンド繰り返す Feistel型共通鍵ブロック 暗号処理を実行する暗号処理部を有し、暗号処理部において、各ラウンドにおける F 関数において実行する非線形変換処理または線形変換処理の少なくともいずれか の変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム以外の暗号アルゴリ ズムまたはハッシュ関数において適用される変換処理と同一の変換処理として実行 する構成を有する。
[0057] SP型 F関数を持つ Feistel型暗号は、先に [1. SP型 F関数を持つ Feistel構造]の 項目において説明したアルゴリズムであり、そのアルゴリズムは、 AES暗号や、ハツシ ュ関数 Whirlpoolのアルゴリズムとは異なって!/、る。 SP型 F関数を持つ Feistel型喑 号は、先に図 1、図 2を参照して説明したように、各ラウンドにおいて、 F関数を実行す る構成を有し、各ラウンドにおける F関数において Sボックスを適用した非線形変換と 、線形変換行列を適用した線形変換処理を実行する構成を持つ。
[0058] 共通鍵ブロック暗号の 1つのデザインである SP型 F関数を持つ Feistel型暗号は、 F関数の構成を変更することで、様々な入出力ビット構成に対応可能である。例えば 入出力ビットを 64ビットとした 64ビットブロック暗号、ある!/、は、入出力ビットを 128ビッ トとした 128ビットブロック暗号などである。
[0059] SP型 F関数を持つ Feistel型暗号を設計する場合、 F関数において適用する非線 形変換処理や線形変換処理構成は、処理ビット数に対応した構成とすることが必要 となる。
[0060] ここで、例えば、入出力ビットを 64ビットとした 64ビットブロック暗号を実行する SP型 F関数を持つ Feistel型暗号においては、前述した AESアルゴリズムにおいて適用さ れる非線形変換および線形変換処理構成が適用可能となる。すなわち、 AESァルゴ リズムで適用されている非線形変換用の変換テーブル (置換表)や線形変換に適用 する線形変換行列が適用可能である。
[0061] また、入出力ビットを 128ビットとした 128ビットブロック暗号を実行する SP型 F関数 を持つ Feistel型暗号にお!、ては、前述したハッシュ関数 Whirlpoolにお!/、て適用さ れる非線形変換および線形変換処理構成が適用可能となる。すなわち、ハッシュ関 数 Whirlpoolで適用されて 、る非線形変換用の変換テーブル (置換表)や線形変換 に適用する線形変換行列が適用可能となる。
[0062] SP型 F関数を持つ Feistel型暗号にぉ 、て、各ラウンドにお 、て適用する線形変 換行列を異なる行列として設定すると、例えば差分解析などの攻撃に対する耐性を 高めることができる。すなわち、暗号強度を高めることが可能となる。なお、各ラウンド において適用する線形変換行列を異なる行列として設定することで SP型 F関数を持 つ Feistel型暗号の暗号強度を高めた構成の詳細については、本発明と同一の出願 人に係る先の特許出願:特願 2005— 313842に説明されて 、る。
[0063] 従来型の Feistel型暗号では、すべての段の F関数に同じ線形変換層を用いてい るため、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質が存在 した。暗号解析手法の代表的な手法として、ある差分を持つ入力データ (平文)とそ の出力データ(暗号文)を多数解析することにより各ラウンド関数における適用鍵を解 析する差分解析 (あるいは差分解読法)が知られており、従来の DES暗号ァルゴリズ ム等の共通鍵ブロック暗号においては、 F関数の線形変換部において適用する処理 (変換行列)を、各段のラウンドにおいて等しいものに設定しているため、差分解析が 行いやすぐ結果として鍵の解析の容易性を招いている。
[0064] 各ラウンドの F関数に適用する線形変換行列を特定のシーケンスに従った異なる行 列とすることで、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質 を排除することが可能となり、差分解析などの攻撃に対する耐性を高めることができる
[0065] 各ラウンドにおいて適用する線形変換行列を異なる行列として設定する場合、例え ば暗号処理を実行する ICカードなどの情報処理装置に複数の異なる線形変換行列 データを保持することが必要となる。 Feistel型暗号にぉ 、て複数の行列を選択する 際には、いくつかの選択基準があるが、例えば各行列を決定する際に、新たに 2つや 3つの行列全てを自ら決定せずに、そのうちのひとつを AESの行列や Whirlpoolの 行列をそのまま利用することで、設計の効率化が図られる。
[0066] 具体的には、 64ビット Feistel型暗号において利用する行列の 1つとして AESに適 用されて 、る行列を利用する構成や、 128ビット Feistel型暗号にぉ 、て利用する行 列の 1つとして Whirlpoolに適用されている行列を利用する構成である。 [0067] 先に説明したように、 ICカードや携帯端末では、様々なデータ処理を 1つの装置で 実行可能とするため、様々な暗号アルゴリズムやハッシュ関数を実行可能な構成とす ることが求められている。このような要請に対して、例えば、 AESと Feistel型暗号の 2 つの異なるアルゴリズムを実行可能な構成とする場合、それぞれのアルゴリズムに適 用する非線形変換テーブルや線形変換行列を保持することが必要となる。また、 Wh irlpoolと Feistel型暗号の 2つの異なるアルゴリズムを実行可能な構成とする場合、 それぞれのアルゴリズムに適用する非線形変換テーブルや線形変換行列を保持す ることが必要となる。
[0068] このような複数のアルゴリズムに適用する変換用のデータを保持させるためには、 I Cカードなどの装置の限られたメモリ空間をこれらの複数のアルゴリズムに利用される 複数のテーブルや行列を格納するために費やされることになる。また、 Feistel型暗 号に適用するための例えば線形変換行列は、一定の暗号強度を保持するために、 任意の行列を利用することは好ましくなく暗号強度を低下させないための性質を持つ 行列であることが必要となる。
[0069] Feistel型暗号に適用するための例えば線形変換行列の制約は、例えば、前述し た本発明と同一の出願人に係る先の特許出願:特願 2005— 313842に説明されて いる。例えば適用可能な 1つの制約条件の例を以下に示す。
[0070] (制約条件 A)
F関数を持つ r段カゝらなる Feistel型共通鍵ブロック暗号処理構成における r段各々 に対応する F関数の線形変換部は下記条件を満足する行列 Mを適用する。
nX aビットデータ力 n X bビットデータへの線形変換を行う写像 0 : {0, 1广→{0, l }nbに対して、分岐数 Β ( θ )を、
分岐数 B ( 6 ) =min {hw ( a ) +hw ( θ ( α ) ) } ,
α≠0 η η
ただし、 min {X }は、 α≠0を満たすすべての X のうちの最小値、
a≠0 a a
hw (Y)はビット列 Yを nビットごとに区切って表したときに nビットのデータすべてが 0ではな ヽ(非ゼロ)要素の数を返す関数、
とし、分岐数 Β ( Θ )が b + 1である写像 Θを最適拡散変換と定義し、
さらに、行列 Mの分岐数を B (M)と表したとき、 BD =min{B (M ) | l≤i≤r} ,
BD =min{B (M | M ) | l≤i≤r—2},
2 i i + 2
ただし、 A I Bは行列 A, Bの連結により得られる行列、
とした場合において、
BD , BDのすべてが 3以上になるような行列 Mを適用する。
1 2 i
なお、 3以上という条件により、 Mと M が必ず異なる行列ではなくてはならない。
i i+2
[0071] 例えば、上述の (制約条件 A)が、差分攻撃などの攻撃に対する耐性を持っために 、Feistel型暗号に適用する線形変換行列の条件として適用可能である。
[0072] AESや、 Whirlpoolにお 、て利用されて ヽる例えば線形変換行列は、暗号強度を 保つ指標の 1つである分岐数が一定の条件を満たしており、これらを Feistel型暗号 に適用することで、一定の暗号強度の保持が保証される。従って、上述した複数の異 なる線形変換行列を適用する Feistel型暗号における複数の行列の一部に、 AESや 、 Whirlpoolにおいて利用されている線形変換行列を適用することで、 ICカードゃ携 帯端末などの暗号処理装置におけるメモリの有効利用が可能となり、また Feistel型 暗号の設計の効率化も図られることになる。すなわち、設計時に決定すべき行列の 数を少なくすることができ、設計者が探索すべき候補数が少なくなり絞込みのための 時間が削減される。
[0073] 以下、 SP型 F関数を持つ Feistel型暗号にぉ 、て、各ラウンドにお 、て適用する線 形変換行列を異なる行列として設定し、差分解析などの攻撃に対する耐性を高めた Feistel型暗号にお!、て、その一部の線形変換行列に AESまたは Whirpoolの行列 を適用した構成例について説明する。以下に説明する実施例では、 2つまたは 3つ の異なる線形変換行列を用いる Feistel暗号において、それら行列のうちの 1つに A ESまたは Whirlpoolの行列を採用する例を説明する。
[0074] (4. 1)AES部品共有型 64ビット Feistel型暗号
まず、 AESと部品共有した 64ビットブロック暗号の構成について説明する。前述し たように、 Feistel型暗号の各ラウンドの F関数に適用する線形変換行列を適用する ことで、差分の伝播時に同時に複数の差分がキャンセルしてしまうという性質を排除 することが可能となり、差分解析などの攻撃に対する耐性を高めることができる。以下 、非線形変換層(S層)と線形変換層(P層)を F関数に有する SP型の 64ビット Feiste 1型暗号構成にぉ 、て、 2つの異なる線形変換行列と 3つの異なる線形変換行列を適 用し、その一部を AES暗号アルゴリズムにお 、て適用されて 、る線形変換行列を利 用した構成例について説明する。
[0075] (4. 1. 1) 2つの異なる線形変換行列を適用した構成例
まず、 2つの異なる線形変換行列を利用した Feistel型暗号であり、 64ビットブロック 暗号を実行する構成例について説明する。図 3を参照して、 2つの異なる線形変換 行列を利用した Feistel型暗号アルゴリズムについて説明する。
[0076] 本アルゴリズムの構成では、複数段(ラウンド)を持つ Feistel型共通鍵ブロック暗号 処理構成における各段の F関数中の線形変換部にお!/、て適用する線形変換処理の ための行列として、 2つの異なる行列 M , Mを利用する。具体的には、図 3に示すよ
0 1
うに、
(a)奇数段に M , Mの順に配置
0 1
(b)偶数段の最終段から M , Mの順に配置
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用する構成と
0 1
する。
[0077] 条件 (a)は、(a)奇数段に M , Mの順に配置する条件であり、図 3に示すように、ラ
0 1
ゥンド 1, 3, 5,…の順に、行列 M , Mを順に配置する。条件 (b)は、(a)偶数段の
0 1
最終段から M , Mの順に配置する条件であり、図 3に示すように、ラウンド 12, 10,
0 1
8, · · ·の順に、行列 M , Mを順に配置する。
0 1
[0078] ここで、行列 M , Mの各々は、各ラウンドにおける F関数において実行される線形
0 1
変換行列であり、 4 X 4の行列を示している。この 2つの行列 M , Mは異なる行列で
0 1
あり、その 1つの行列、例えば、行列 Mは、前述の AESアルゴリズムにおいて利用さ
0
れている 4 X 4の行列を利用する。行列 Mは、 Feistel暗号アルゴリズムの制約条件 を満足する行列とする。
[0079] 具体的な行列の組み合わせ例を以下に示す。例えば、 M , Mの 2つの行列全体
0 1
の任意の 4本の行を取り出してきても分岐数が 5であり、さらに ~ 'Μ _1の 2つの
0 1 行列の任意の 4本の行を取り出してきても分岐数が 5であるような条件を満たす行列 としては以下の行列の組み合わせがある。なお、 tMは Mの転置行列, M_ 1は Mの逆 行列を表す。
[数 5]
Figure imgf000021_0001
[0080] 上記行列 Μ , Μのうち、行列 Μは、先に説明した AESアルゴリズムにおいて利用
0 1 0
されている 4 X 4の行列であり、行列 Μは、 Feistel暗号アルゴリズムの制約条件を満 足する行列力も選択された行列である。上記の 2つの異なる行列 M , M
0 1を適用して
Feistel暗号アルゴリズムの各ラウンドにおける F関数の線形変換を実行する。なお、 各行列の要素は有限体 GF (28)の要素を表し、既約多項式は t8 + t4 + t3 + t+ 1で表 される。
[0081] (4. 1. 2) 3つの異なる線形変換行列を適用した構成例
次に、 3つの異なる線形変換行列を利用した Feistel型暗号であり、 64ビットブロッ ク暗号を実行する構成例について説明する。図 4を参照して、 3つの異なる線形変換 行列を利用した Feistel型暗号アルゴリズムについて説明する。
[0082] 本アルゴリズムの構成では、複数段(ラウンド)を持つ Feistel型共通鍵ブロック暗号 処理構成における各段の F関数中の線形変換部にお!/、て適用する線形変換処理の ための行列として、 3つの異なる行列 M , M , Mを利用する。具体的には、図 4に
0 1 2
示すように、
(a)奇数段に M , M , Mの順に配置
0 1 2
(b)偶数段の最終段から M , M , Mの順に配置
0 1 2
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用する構
0 1 2
成とする。 [0083] 条件 (a)は、(a)奇数段に M , M , Mの順に配置する条件であり、図 4に示すよう
0 1 2
に、ラウンド 1, 3, 5, ···の順に、行列 M , M , Mを順に配置する。条件 (b)は、 (a
0 1 2
)偶数段の最終段から M , M , Mの順に配置する条件であり、図 4に示すように、ラ
0 1 2
ゥンド 12, 10, 8, ···の順に、行列 M , M , Mを順に配置する。
0 1 2
[0084] ここで、行列 M , M , Mの各々は、各ラウンドにおける F関数において実行される
0 1 2
線形変換行列であり、 4X4の行列を示している。この 3つの行列 M , M , Mは異な
0 1 2 る行列であり、その 1つの行列、例えば、行列 Mは、前述の AESアルゴリズムにおい
0
て利用されている 4X4の行列を利用する。行列 M, Mは、 Feistel喑号ァルゴリズ
1 2
ムの制約条件を満足する行列とする。
[0085] 具体的な行列の組み合わせ例を以下に示す。例えば、 M , M , Mの 3つの行列
0 1 2
全体の任意の 4本の行を取り出してきても分岐数が 5であり、さらに tM _1, *M _1の 2
0 1 つの行列、 *M _1, *M _1の 2つの行列、 *M _1, *M _1の 2つの行列の任意の 4本の
1 2 2 0
行を取り出してきても分岐数が 5であるような条件を満たす行列としては以下の行列 の組み合わせがある。
[数 6]
Figure imgf000022_0001
[0086] 上記行列 M , M , Mのうち、行列 Mは、先に説明した AESアルゴリズムにおいて
0 1 2 0
利用されている 4X4の行列であり、行列 M , Mは、 Feistel暗号アルゴリズムの制
1 2
約条件を満足する行列から選択された行列である。上記の 3つの異なる行列 M , M
0 1
, Mを適用して Feistel暗号アルゴリズムの各ラウンドにおける F関数の線形変換を
2
実行する。なお、各行列の要素は有限体 GF(28)の要素を表し、既約多項式は t8+t 4+t3+t+lで表される。 [0087] (4. 2)Whirlpool部品共有型 128ビット Feistel型暗号
次に、 ISO標準化ハッシュ関数である Whirlpoolと部品共有した 128ビットブロック 暗号の構成について説明する。前述したように、 Feistel型暗号の各ラウンドの F関数 に適用する線形変換行列を適用することで、差分の伝播時に同時に複数の差分が キャンセルしてしまうという性質を排除することが可能となり、差分解析などの攻撃に 対する耐性を高めることができる。以下、非線形変換層(S層)と線形変換層(P層)を F関数に有する SP型の 128ビット Feistel型暗号構成において、 2つの異なる線形変 換行列と 3つの異なる線形変換行列を適用し、その一部を Whirlpool暗号ァルゴリズ ムにお 、て適用されて 、る線形変換行列を利用した構成例につ 、て説明する。
[0088] (4. 2. 1) 2つの異なる線形変換行列を適用した構成例
まず、 2つの異なる線形変換行列を利用した Feistel型暗号であり、 128ビットブロッ ク暗号を実行する構成例について説明する。 2つの異なる線形変換行列を利用した Feistel型暗号は、先に図 3を参照して説明したように、複数段 (ラウンド)を持つ Feis tel型共通鍵ブロック暗号処理構成における各段の F関数中の線形変換部において 適用する線形変換処理のための行列として 2つの異なる線形変換行列 M , Mを利
0 1 用する構成である。具体的には、図 3に示すように、
(a)奇数段に M , Mの順に配置
0 1
(b)偶数段の最終段から M , Mの順に配置
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用する構成と
0 1
する。
[0089] 条件 (a)は、(a)奇数段に M , Mの順に配置する条件であり、図 3に示すように、ラ
0 1
ゥンド 1, 3, 5,…の順に、行列 M , Mを順に配置する。条件 (b)は、(a)偶数段の
0 1
最終段から M , Mの順に配置する条件であり、図 3に示すように、ラウンド 12, 10,
0 1
8, · · ·の順に、行列 M , Mを順に配置する。
0 1
[0090] ここで、行列 M , Mの各々は、各ラウンドにおける F関数において実行される線形
0 1
変換行列であり、 8 X 8の行列を示している。この 2つの行列 M, Mは異なる行列で
0 1
あり、その 1つの行列、例えば、行列 Mは、前述の Whirlpoolアルゴリズムにおいて
0
利用されている 8 X 8の行列を利用する。行列 Mは、 Feistel暗号アルゴリズムの制 約条件を満足する行列とする。
[0091] 具体的な行列の組み合わせ例を以下に示す。例えば、 M , Mの 2つの行列全体
0 1
の任意の 8本の行を取り出してきても分岐数が 8以上であり、さらに ~ _1の 2
0 1 つの行列の任意の 8本の行を取り出してきても分岐数が 8以上であるような条件を満 たす行列としては以下の行列の組み合わせがある。
[数 7]
Figure imgf000024_0001
[0092] 上記行列 Μ , Μのうち、行列 Μは、先に説明した Whirlpoolアルゴリズムにおい
0 1 0
て利用されている 8 X 8の行列であり、行列 Mは、 Feistel暗号アルゴリズムの制約条 件を満足する行列から選択された行列である。上記の 2つの異なる行列 M , M
0 1を適 用して Feistel暗号アルゴリズムの各ラウンドにおける F関数の線形変換を実行する。 なお、各行列の要素は有限体 GF (28)の要素を表し、既約多項式は t8 + t4 + t3 + t2 + 1で表される。
[0093] (4. 2. 2) 3つの異なる線形変換行列を適用した構成例
次に、 3つの異なる線形変換行列を利用した Feistel型暗号であり、 128ビットブロッ ク暗号を実行する構成例について説明する。 3つの異なる線形変換行列を利用した Feistel型暗号は、先に図 4を参照して説明したように、複数段 (ラウンド)を持つ Feis tel型共通鍵ブロック暗号処理構成における各段の F関数中の線形変換部において 適用する線形変換処理のための行列として、 3つの異なる行列 M , M , Mを利用
0 1 2 する。具体的には、図 4に示すように、 (a)奇数段に M , M , Mの順に配置
0 1 2
(b)偶数段の最終段から M , M , Mの順に配置
0 1 2
上記 (a), (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用する構
0 1 2
成とする。
[0094] 条件(a)は、(a)奇数段に M , M , Mの順に配置する条件であり、図 4に示すよう
0 1 2
に、ラウンド 1, 3, 5, ···の順に、行列 M , M , Mを順に配置する。条件 (b)は、 (a
0 1 2
)偶数段の最終段から M , M , Mの順に配置する条件であり、図 4に示すように、ラ
0 1 2
ゥンド 12, 10, 8, ···の順に、行列 M , M , Mを順に配置する。
0 1 2
[0095] ここで、行列 M , M , Mの各々は、各ラウンドにおける F関数において実行される
0 1 2
線形変換行列であり、 8X8の行列を示している。この 3つの行列 M , M , Mは異な
0 1 2 る行列であり、その 1つの行列、例えば、行列 Mは、前述の Whirlpoolアルゴリズム
0
において利用されている 8X8の行列を利用する。行列 M, Mは、 Feistel暗号アル
1 2
ゴリズムの制約条件を満足する行列とする。
[0096] 具体的な行列の組み合わせ例を以下に示す。例えば、 M , M , Mの 3つの行列
0 1 2
全体の任意の 8本の行を取り出してきても分岐数が 8以上であり、さらに tM _1, *M "
0 1
1の 2つの行列、 ~ 'Μ _1の 2つの行列、 ~ 'Μ _1の 2つの行列の任意の 8
1 2 2 0
本の行を取り出してきても分岐数が 8以上であるような条件を満たす行列としては以 下の行列の組み合わせがある。
[数 8]
1 9 2 5 8 1 4 1 6 8 9 6 9 5 1
1 1 9 2 5 8 1 4 1 1 6 8 9 6 9 5
4 1 1 9 2 5 8 1 5 1 1 6 8 9 6 9
1 4 1 1 9 2 5 8 9 5 1 1 6 8 9 6
M,
8 1 4 1 1 9 2 5 6 9 5 1 1 6 8 9
5 8 1 4 1 1 9 2 9 6 9 5 1 1 6 8
2 5 8 1 4 1 1 9 8 9 6 9 5 1 1 6
9 2 5 8 1 4 1 1ノ 6 8 9 6 9 5 1 1
M,
Figure imgf000026_0001
[0097] 上記行列 M , M , Mのうち、行列 Mは、先に説明した Whirlpoolアルゴリズムに
0 1 2 0
おいて利用されている 8 X 8の行列であり、行列 M , Mは、 Feistel暗号アルゴリズム
1 2
の制約条件を満足する行列から選択された行列である。上記の 3つの異なる行列 M
0
, M , Mを適用して Feistel暗号アルゴリズムの各ラウンドにおける F関数の線形変
1 2
換を実行する。なお、各行列の要素は有限体 GF (28)の要素を表し、既約多項式は t
8+t4+t3+t2+ 1で表される。
[0098] なお、上述した処理例では、 Feistel型共通鍵ブロック暗号処理を実行する構成に ぉ 、て、各ラウンドの F関数中の線形変換処理に適用する線形変換行列の AESまた は Whirlpoolとの共通化構成を説明した力 非線形変換に適用する変換テーブルに っ 、ても、例えば 64ビット Feistel型共通鍵ブロック暗号処理における非線形変換処 理にお 、ては、 AESアルゴリズムにお 、て適用する非線形変換テーブルを利用する ことが可能であり、例えば 128ビット Feistel型共通鍵ブロック暗号処理における非線 形変換処理にぉ ヽては、 Whirlpoolアルゴリズムにお 、て適用する非線形変換テー ブルを利用することが可能である。
[0099] すなわち、本発明の暗号処理装置は、非線形変換処理および線形変換処理を含 むデータ変換処理を実行する SP型 F関数を複数ラウンド繰り返す Feistel型共通鍵 ブロック暗号処理を実行する暗号処理部を有し、暗号処理部において、各ラウンドに おける F関数にぉ ヽて実行する非線形変換処理または線形変換処理の少なくとも!/ヽ ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム以外の暗号ァ ルゴリズムまたはハッシュ関数において適用される変換処理と同一の変換処理として 実行する構成を有する。この構成により、部品の共通化による設計コストの削減ゃメ モリ記憶データの削減が可能となる。すなわち、非線形変換や線形変換を実行する ために必要となる少なくとも一部のハードウェアや、ソフトウェアを、異なるァルゴリズ ムである暗号処理やハッシュ関数において共通に利用可能とすることで、ハードゥエ ァの実装コストを低下させ、またソフトウェア実装においても部品の共有ィ匕によるコー ドサイズの縮小が可能となる。
[0100] [5.暗号処理装置の構成例]
最後に、暗号処理を実行する暗号処理装置としての ICモジュール 300の構成例を 図 5に示す。上述の処理は、例えば PC、 ICカード、リーダライタ、その他、様々な情 報処理装置において実行可能であり、図 5に示す ICモジュール 300は、これら様々 な機器に構成することが可能である。
[0101] 図 5に示す CPU(Central processing Unit)301は、暗号処理の開始や、終了、デー タの送受信の制御、各構成部間のデータ転送制御、その他の各種プログラムを実行 するプロセッサである。メモリ 302は、 CPU301が実行するプログラム、あるいは演算 パラメータなどの固定データを格納する ROM (Read-Only-Memory)、 CPU301の 処理にお 、て実行されるプログラム、およびプログラム処理にぉ 、て適宜変化するパ ラメータの格納エリア、ワーク領域として使用される RAM (Random Access Memory) 等力もなる。また、メモリ 302は暗号処理に必要な鍵データや、暗号処理において適 用する変換テーブル (置換表)や変換行列に適用するデータ等の格納領域として使 用可能である。なおデータ格納領域は、耐タンパ構造を持つメモリとして構成される ことが好ましい。
[0102] 暗号処理部 303は、例えば上述した Feistel型共通鍵ブロック暗号処理アルゴリズ ムに従った暗号処理、復号処理、さらに、 AESアルゴリズムや、 Whirlpoolなどの喑 号処理やハッシュ関数等を実行する。なお、ここでは、暗号処理手段を個別モジユー ルとした例を示した力 このような独立した暗号処理モジュールを設けず、例えば暗 号処理プログラムを ROMに格納し、 CPU301が ROM格納プログラムを読み出して 実行するように構成してもよ 、。
[0103] 乱数発生器 304は、暗号処理に必要となる鍵の生成などにおいて必要となる乱数 の発生処理を実行する。
[0104] 送受信部 305は、外部とのデータ通信を実行するデータ通信処理部であり、例え ばリーダライタ等、 ICモジュールとのデータ通信を実行し、 ICモジュール内で生成し た暗号文の出力、あるいは外部のリーダライタ等の機器力ものデータ入力などを実行 する。
[0105] この ICモジュール 300にお!/、て、例えば AESアルゴリズムと、複数の異なる行列( 線形変換行列)を適用した Feistel型共通鍵ブロック暗号処理アルゴリズムの 2つの 異なるアルゴリズムを実行可能な構成とする場合、 Feistel型共通鍵ブロック暗号処 理アルゴリズムの適用行列の一部を AESアルゴリズムの適用行列と共通化すること で、メモリ 302に記録すべき変換行列用データを削減することができる。
[0106] また、同様に、ノ、ッシュ関数 Whirlpoolと、複数の異なる行列 (線形変換行列)を適 用した Feistel型共通鍵ブロック暗号処理アルゴリズムの 2つの異なるアルゴリズムを 実行可能な構成とする場合、 Feistel型共通鍵ブロック暗号処理アルゴリズムの適用 行列の一部をハッシュ関数 Whirlpoolの適用行列と共通化することで、メモリ 302に 記録すべき変換行列用データを削減することができる。
[0107] 以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、 本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ること は自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的 に解釈されるべきではない。本発明の要旨を判断するためには、特許請求の範囲の 欄を参酌すべきである。
[0108] なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、 あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理 を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに 組み込まれたコンピュータ内のメモリにインストールして実行させる力、あるいは、各 種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させること が可能である。
[0109] 例えば、プログラムは記録媒体としてのハードディスクや ROM (Read Only Memory )に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、 CD -ROM(Compact Disc Read Only Memory), MO(Magneto optical)ディスク, DVD( Digital Versatile Disc),磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、 一時的あるいは永続的に格納 (記録)しておくことができる。このようなリムーバブル記 録媒体は、 V、わゆるパッケージソフトウェアとして提供することができる。
[0110] なお、プログラムは、上述したようなリムーバブル記録媒体力 コンピュータにインス トールする他、ダウンロードサイトから、コンピュータに無線転送したり、 LAN(Local A rea Network),インターネットといったネットワークを介して、コンピュータに有線で転 送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵する ハードディスク等の記録媒体にインストールすることができる。
[0111] なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみ ならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個 別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的 集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
産業上の利用可能性
[0112] 上述したように、本発明の構成によれば、非線形変換部および線形変換部を有す る SP型の F関数を、複数ラウンド繰り返し実行する Feistel型共通鍵ブロック暗号処 理において、各ラウンドにおける F関数において実行する非線形変換処理または線 形変換処理の少なくとも!/、ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号 アルゴリズム以外の暗号アルゴリズムまたはハッシュ関数、例えば AESや Whirlpool などにおいて適用される変換処理と同一の変換処理として実行する構成としたので、 部品の共通化による設計コストの削減やメモリ記憶データの削減が可能となる。すな わち、非線形変換や線形変換を実行するために必要となる少なくとも一部のハードウ エアや、ソフトウェアを、異なるアルゴリズムである暗号処理やハッシュ関数において 共通に利用可能とすることで、ハードウェアの実装コストを低下させ、またソフトウェア 実装においても部品の共有ィ匕によるコードサイズの縮小が可能となる。

Claims

請求の範囲
[1] 暗号処理装置であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理部 を有し、
前記暗号処理部は、
各ラウンドにおける F関数において実行する非線形変換処理または線形変換処理 の少なくとも 、ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム 以外の暗号アルゴリズムまたはハッシュ関数において適用される変換処理と同一の 変換処理として実行する構成であることを特徴とする暗号処理装置。
[2] 前記暗号処理部は、
各ラウンドの線形変換処理に、少なくとも 2以上の異なる複数の行列を選択的に適 用する構成であり、選択適用する行列の少なくとも 1つは前記 Feistel型共通鍵プロ ック暗号アルゴリズム以外の暗号アルゴリズムまたはハッシュ関数において適用され る行列であることを特徴とする請求項 1に記載の暗号処理装置。
[3] 前記暗号処理部は、
各ラウンドの線形変換処理に、 2つの異なる行列 M , Mを選択的に適用する構成
0 1
であり、各行列 M, Mの配置は、
0 1
(a)奇数ラウンドに M , Mの順に配置、
0 1
(b)偶数ラウンドの最終段から M , Mの順に配置、
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用する構成で
0 1
あることを特徴とする請求項 2に記載の暗号処理装置。
[4] 前記暗号処理部は、
各ラウンドの線形変換処理に、 3つの異なる行列 M , M , Mを選択的に適用する
0 1 2
構成であり、各行列 M , M , Mの配置は、
0 1 2
(a)奇数ラウンドに M , M , Mの順に配置、
0 1 2
(b)偶数ラウンドの最終段から M , M , Mの順に配置、
0 1 2
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用する構 成であることを特徴とする請求項 2に記載の暗号処理装置。
[5] 前記暗号処理部は、
64ビット Feistel型共通鍵ブロック暗号処理を実行する構成であり、
各ラウンドの線形変換処理に選択適用する行列の少なくとも 1つは AES暗号アル ゴリズムにおいて適用される行列であることを特徴とする請求項 1〜4いずれかに記 載の暗号処理装置。
[6] 前記暗号処理部は、
AES暗号処理と、 64ビット Feistel型共通鍵ブロック暗号処理との両アルゴリズムを 選択的に実行する構成を有することを特徴とする請求項 5に記載の暗号処理装置。
[7] 前記暗号処理部は、
128ビット Feistel型共通鍵ブロック暗号処理を実行する構成であり、
各ラウンドの線形変換処理に選択適用する行列の少なくとも 1つは Whirlpooレ、ッ シュ関数において適用される行列であることを特徴とする請求項 1〜4いずれかに記 載の暗号処理装置。
[8] 前記暗号処理部は、
Whirlpoolハッシュ関数と、 128ビット Feistel型共通鍵ブロック暗号処理との両ァ ルゴリズムを選択的に実行する構成を有することを特徴とする請求項 7に記載の暗号 処理装置。
[9] 暗号処理方法であり、
非線形変換処理および線形変換処理を含むデータ変換処理を実行する SP型 F関 数を複数ラウンド繰り返す Feistel型共通鍵ブロック暗号処理を実行する暗号処理ス テツプを有し、
前記暗号処理ステップは、
各ラウンドにおける F関数において実行する非線形変換処理または線形変換処理 の少なくとも 、ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム 以外の暗号アルゴリズムまたはハッシュ関数において適用される変換処理と同一の 変換処理として実行することを特徴とする暗号処理方法。
[10] 前記暗号処理ステップは、 各ラウンドの線形変換処理に、少なくとも 2以上の異なる複数の行列を選択的に適 用し、選択適用する行列の少なくとも 1つは前記 Feistel型共通鍵ブロック暗号アル ゴリズム以外の暗号アルゴリズムまたはハッシュ関数において適用される行列である ことを特徴とする請求項 9に記載の暗号処理方法。
[11] 前記暗号処理ステップは、
各ラウンドの線形変換処理に、 2つの異なる行列 M , Mを選択的に適用する処理
0 1
を実行するステップであり、各行列 M , Mの適用順は、
0 1
(a)奇数ラウンドに M , Mの順に適用、
0 1
(b)偶数ラウンドの最終段から M , Mの順に適用、
0 1
上記 (a) , (b)の条件を満足するように 2つの異なる行列 M , Mを適用することを
0 1
特徴とする請求項 10に記載の暗号処理方法。
[12] 前記暗号処理ステップは、
各ラウンドの線形変換処理に、 3つの異なる行列 M , M , Mを選択的に適用する
0 1 2
処理を実行するステップであり、各行列 M , M , Mの
0 1 2 適用順は、
(a)奇数ラウンドに M , M , Mの順に適用、
0 1 2
(b)偶数ラウンドの最終段から M , M , Mの順に適用、
0 1 2
上記 (a) , (b)の条件を満足するように 3つの異なる行列 M , M , Mを適用するこ
0 1 2
とを特徴とする請求項 10に記載の暗号処理方法。
[13] 前記暗号処理ステップは、
64ビット Feistel型共通鍵ブロック暗号処理を実行するステップであり、 各ラウンドの線形変換処理に選択適用する行列の少なくとも 1つは AES暗号アル ゴリズムにおいて利用される行列を適用することを特徴とする請求項 9〜 12いずれか に記載の暗号処理方法。
[14] 前記暗号処理ステップは、
128ビット Feistel型共通鍵ブロック暗号処理を実行するステップであり、 各ラウンドの線形変換処理に選択適用する行列の少なくとも 1つは Whirlpooレ、ッ シュ関数において適用される行列であることを特徴とする請求項 9〜 12いずれかに 記載の暗号処理方法。 暗号処理装置において暗号処理を実行させるコンピュータ 'プログラムであり、 暗号処理部にぉ 、て実行させるステップとして、非線形変換処理および線形変換 処理を含むデータ変換処理を実行する SP型 F関数を複数ラウンド繰り返す Feistel 型共通鍵ブロック暗号処理を実行させる暗号処理ステップを有し、
前記暗号処理ステップは、
各ラウンドにおける F関数において実行する非線形変換処理または線形変換処理 の少なくとも 、ずれかの変換処理を、前記 Feistel型共通鍵ブロック暗号アルゴリズム 以外の暗号アルゴリズムまたはハッシュ関数において適用される変換処理と同一の 変換処理として実行させるステップであることを特徴とするコンピュータ ·プログラム。
PCT/JP2007/050009 2006-01-17 2007-01-04 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム WO2007083528A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP07706356A EP1975908A4 (en) 2006-01-17 2007-01-04 ENCRYPTION / DECOMPOSITION DEVICE, ENCRYPTION / DECOMPOSITION METHOD AND COMPUTER PROGRAM
CN200780002505XA CN101371286B (zh) 2006-01-17 2007-01-04 密码处理装置和密码处理方法
US12/160,895 US8073140B2 (en) 2006-01-17 2007-01-04 Encryption/decryption device, encryption/decryption method, and computer program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006-008695 2006-01-17
JP2006008695A JP2007192893A (ja) 2006-01-17 2006-01-17 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Publications (1)

Publication Number Publication Date
WO2007083528A1 true WO2007083528A1 (ja) 2007-07-26

Family

ID=38287482

Family Applications (1)

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

Country Status (5)

Country Link
US (1) US8073140B2 (ja)
EP (1) EP1975908A4 (ja)
JP (1) JP2007192893A (ja)
CN (1) CN101371286B (ja)
WO (1) WO2007083528A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
WO2009075337A1 (ja) 2007-12-13 2009-06-18 Nec Corporation 暗号化方法及び復号化方法、装置並びにプログラム
US20120047087A1 (en) 2009-03-25 2012-02-23 Waldeck Technology Llc Smart encounters
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
JP2011130340A (ja) * 2009-12-21 2011-06-30 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
JP5652363B2 (ja) * 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682527B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP5682526B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
JP5682525B2 (ja) 2011-03-28 2015-03-11 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
US20140196151A1 (en) * 2013-01-10 2014-07-10 Microsoft Corporation Preserving geometric properties of datasets while protecting privacy
US9094191B2 (en) * 2013-03-14 2015-07-28 Qualcomm Incorporated Master key encryption functions for transmitter-receiver pairing as a countermeasure to thwart key recovery attacks
CN103905186B (zh) * 2014-02-26 2017-12-05 苏州朗格智能配用电系统有限公司 一种加密方法
JP2015191106A (ja) * 2014-03-28 2015-11-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
CN105281911B (zh) * 2015-08-04 2018-09-25 电子科技大学 将任意长度字符串映射到固定大小矩阵的哈希函数方法
CN109635599B (zh) * 2018-12-07 2024-01-09 上海航芯电子科技股份有限公司 数据加密方法、解密方法、保护装置、片内存储器及芯片

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005313842A (ja) 2004-04-30 2005-11-10 Ichikoh Ind Ltd 車両用照明装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US358738A (en) * 1887-03-01 Emmet v
US327953A (en) * 1885-10-06 Ische anilin and soda fabrik
JP3517063B2 (ja) * 1996-10-11 2004-04-05 株式会社東芝 暗号化装置及び暗号化方法
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JP4596686B2 (ja) * 2001-06-13 2010-12-08 富士通株式会社 Dpaに対して安全な暗号化
JP4622222B2 (ja) * 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2005309148A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd データ変換装置およびデータ変換方法
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005313842A (ja) 2004-04-30 2005-11-10 Ichikoh Ind Ltd 車両用照明装置

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
OWADA T. ET AL.: "MUGI, AES, SHA-1/256 Togo Hardware no Jisso", SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU, 17 January 2006 (2006-01-17), XP003015810 *
SATOH A. ET AL.: "AES to Camellia no Kyoyu Hardware Architecture", NEN SYMPHOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU, vol. II, 26 January 2003 (2003-01-26), pages 941 - 946, XP003015808 *
See also references of EP1975908A4
SHIRAI T. ET AL.: "Improving Immunity of Feistel Ciphers against Differential Cryptanalysis by Using Multiple MDS Matrices", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3017, 2004, pages 260 - 278, XP019007568 *
SHIRAI T. ET AL.: "On Feistel Ciphers Using Optimal Diffusion Mappings Across Multiple Rounds", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3329, 2004, pages 1 - 15, XP003015809 *
SHIRAI T. ET AL.: "On Feistel Structures Using a Diffusion Switching Mechanism", LECTURE NOTES IN COMPUTER SCIENCE, vol. 4047, March 2006 (2006-03-01), pages 41 - 56, XP019041668 *
SHIRAI T. ET AL.: "The 128-bit Blockcipher CLEFIA", FAST SOFTWARE ENCRYPTION 2007 VIDEOS AND SLIDES, 19 April 2007 (2007-04-19), XP003015811, Retrieved from the Internet <URL:http://fse2007.uni.lu/slides/clefia.pdf> *
WATANABE D. ET AL.: "A New Keystream Generator MUGI, Lecture Notes in computer Science", vol. 2365, February 2002, article "especially 2.2 Selection of Components 3.3 Update Function", pages: 179 - 194, XP002993796 *

Also Published As

Publication number Publication date
US8073140B2 (en) 2011-12-06
EP1975908A4 (en) 2011-06-08
JP2007192893A (ja) 2007-08-02
EP1975908A1 (en) 2008-10-01
US20100226493A1 (en) 2010-09-09
CN101371286A (zh) 2009-02-18
CN101371286B (zh) 2011-05-25

Similar Documents

Publication Publication Date Title
WO2007083528A1 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4622807B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR101091749B1 (ko) 암호 처리 장치, 암호 처리 방법 및 기록매체
US8369522B2 (en) Encryption processing apparatus, encryption method, and computer program
US20090010425A1 (en) Encryption/decryption device, encryption/decryption device manufacturing device, and method, and computer program
WO2008026624A1 (en) Data conversion device, data conversion method, and computer program
JP2005107078A (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5338945B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム

Legal Events

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

Ref document number: 2007706356

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 12160895

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 200780002505.X

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE