WO2012132623A1 - 暗号処理装置、および暗号処理方法、並びにプログラム - Google Patents
暗号処理装置、および暗号処理方法、並びにプログラム Download PDFInfo
- Publication number
- WO2012132623A1 WO2012132623A1 PCT/JP2012/053933 JP2012053933W WO2012132623A1 WO 2012132623 A1 WO2012132623 A1 WO 2012132623A1 JP 2012053933 W JP2012053933 W JP 2012053933W WO 2012132623 A1 WO2012132623 A1 WO 2012132623A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- round
- key
- unit
- data
- keys
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
Definitions
- the present disclosure relates to a cryptographic processing device, a cryptographic processing method, and a program. More specifically, the present invention relates to an encryption processing apparatus that executes common key system encryption, an encryption processing method, and a program.
- Cryptography is one of the components of information security technology, and at present, cryptography is used in various products and systems.
- common key block cipher There are various cryptographic processing algorithms, but one of the basic techniques is called common key block cipher.
- common key block encryption a key for encryption and a key for decryption are common.
- encryption processing and the decryption processing a plurality of keys are generated from the common key, and data conversion processing is repeatedly executed in a block unit, for example, block data units such as 64 bits, 128 bits and 256 bits.
- DES Data Encryption Standard
- AES Advanced Encryption Standard
- CLEFIA proposed by Sony Corporation in 2007 is one of the common key block ciphers.
- Such an algorithm of the common key block encryption mainly includes an encryption processing unit having a round function execution unit that repeatedly executes conversion of input data, and a key scheduling unit that generates a round key to be applied in each round of the round function unit. And composed of The key schedule unit first generates an expanded key with an increased number of bits based on the master key (primary key) which is a secret key, and applies it in each round function unit of the encryption processing unit based on the generated expanded key Generate a round key (secondary key).
- a structure in which a round function having a linear conversion unit and a non-linear conversion unit is repeatedly performed is known.
- a Feistel structure or a generalized Feistel structure is a typical structure.
- the Feistel structure and the generalized Feistel structure have a structure that converts plaintext into ciphertext by simple repetition of a round function including an F function as a data conversion function. In the F function, linear conversion processing and non-linear conversion processing are performed. Examples of documents that describe cryptographic processing to which the Feistel structure is applied include Non-Patent Document 1 and Non-Patent Document 2.
- the present disclosure has been made in view of, for example, the above-described situation, and makes it difficult to perform unauthorized decryption such as a related key attack, and provides a highly secure cryptographic processing device, a cryptographic processing method, and a program. To aim.
- the first aspect of the present disclosure is An encryption processing unit that divides and inputs configuration bits of data to be data processed into a plurality of lines, and repeatedly executes data conversion processing in which round functions are applied to data of each line as round operations;
- a key scheduling unit for outputting a round key to the round operation execution unit of the encryption processing unit;
- the key schedule unit A substitution-type key schedule unit that divides a secret key held in advance into a plurality of pieces to generate a plurality of round keys or round key configuration data, The plurality of round keys or the plurality of round keys generated by combining the round key configuration data are output to the round operation execution unit sequentially executed in the encryption processing unit in a setting that does not repeat a predetermined sequence It is in the cryptographic processor.
- the key scheduling unit changes an input sequence of the plurality of round keys to the round operation execution unit in units of multiple rounds in the round operation execution unit.
- the cryptographic processing unit may input data divided into the plurality of lines and perform non-linear conversion processing, and an F function execution unit including linear conversion processing; It has an operation part which performs the operation which applied the above-mentioned round key to the output of F function execution part.
- the key schedule unit divides a secret key held in advance into a plurality of pieces and has a plurality of bits having the same number of bits as the round key input to the round operation execution unit. Generate a round key for
- the key scheduling unit divides a secret key held in advance into a plurality of pieces and has a plurality of bits having a smaller number of bits than the round key input to the round operation execution unit.
- Round key configuration data is generated, and a plurality of round key configuration data are concatenated to generate a round key having the same number of bits as the round key input to the round operation execution unit.
- the key scheduling unit parallelizes a plurality of round keys to be applied in parallel in the round operation executing unit to the round operation executing unit sequentially executed in the encryption processing unit. Output.
- the key scheduling unit includes one or more selectors that perform key selection / supply processing to the round operation execution unit.
- the key scheduling unit sets a plurality of round keys or a plurality of groups obtained by dividing the round key configuration data, and performs the round operation on a set group basis. Control processing of the key supply sequence to the execution unit is performed.
- the key scheduling unit includes the selector in units of groups.
- the encryption processing unit performs encryption processing that converts plaintext as input data into ciphertext, or decryption processing that converts ciphertext as input data into plaintext. Run.
- a second aspect of the present disclosure is: A cryptographic processing method to be executed by the cryptographic processing device; Cryptographic processing unit that divides configuration bits of data to be processed into data into multiple lines and inputs the data, and repeatedly executes data conversion processing in which round functions are applied to data of each line as round operations Step and The key scheduling unit executes a key scheduling step of outputting a round key to the round operation execution unit of the encryption processing unit,
- the key schedule unit A substitution-type key schedule unit that divides a secret key held in advance into a plurality of pieces to generate a plurality of round keys or round key configuration data, The plurality of round keys or the plurality of round keys generated by combining the round key configuration data are output to the round operation execution unit sequentially executed in the encryption processing unit in a setting that does not repeat a predetermined sequence It is in the cryptographic processing method.
- the third aspect of the present disclosure is: A program that causes a cryptographic processing device to execute cryptographic processing, Cryptographic processing that divides configuration bits of data to be processed into data into a plurality of lines and inputs the data conversion processing in which round functions are applied to data of each line as round operations. Step and Having the key scheduling unit execute a key scheduling step of outputting a round key to the round operation execution unit of the encryption processing unit;
- the key schedule unit is a substitution type key schedule unit that divides a secret key held in advance into a plurality of pieces to generate a plurality of round keys or round key configuration data.
- a plurality of round keys generated by combining the plurality of round keys or the round key configuration data to a round operation execution unit sequentially executed in the encryption processing unit are repeated in a predetermined sequence It is in the program to be output with settings that do not require
- the program of the present disclosure is, for example, a program provided by, for example, a storage medium to an information processing apparatus or computer system capable of executing various program codes. By executing such a program on a program execution unit on an information processing apparatus or computer system, processing according to the program is realized.
- a system is a logical set composition of a plurality of devices, and the device of each composition is not limited to what exists in the same case.
- a highly secure cryptographic processing device is realized by round key supply control. Specifically, encryption processing in which data conversion processing in which a round function is applied to data of each line is repeatedly executed as a round operation by dividing configuration bits of data to be data processed into a plurality of lines And a key scheduling unit that outputs a round key to the round operation execution unit of the encryption processing unit, and the key scheduling unit divides the secret key held in advance into a plurality of generations to generate a plurality of round keys A plurality of generated round keys are output to the round operation execution unit sequentially executed by the encryption processing unit in a setting that does not become a repetition of a predetermined sequence.
- This configuration realizes a highly secure cryptographic processing configuration highly resistant to, for example, related key attacks and the like.
- FIG. It is a figure explaining the structural example which changes the selection order of a key in multiple rounds. It is a figure explaining the example of a round key supply structure which set the substitution process performed in a 4-round unit to a different aspect each time. It is a figure explaining the structural example which changes the selection order of a key in multiple rounds. It is a figure explaining the structural example which substitutes every 3 rounds, and utilizes 6 keys in 3 rounds. It is a figure explaining the structural example which changes the selection order of a key in multiple rounds.
- Common key block cipher As a common key block cipher (hereinafter, block cipher), it refers to the one defined below.
- the block cipher takes plaintext P and key K as input and outputs ciphertext C.
- the bit length of plaintext and ciphertext is called block size and written here by n.
- n can take any integer value, it is usually a value determined in advance for each block encryption algorithm.
- a block cipher having a block length of n may be called an n-bit block cipher.
- the bit length of the key is represented by k.
- the key can have any integer value.
- the common key block encryption algorithm will correspond to one or more key sizes.
- Plaintext P n bits
- Ciphertext C n bits
- Key K k bits
- FIG. 1 shows a diagram of an n-bit common key block encryption algorithm E corresponding to a key length of k bits.
- the decryption algorithm D corresponding to the encryption algorithm E can be defined as the inverse function E -1 of the encryption algorithm E, receives the ciphertext C and the key K as input, and outputs the plaintext P.
- FIG. 2 shows a diagram of a decryption algorithm D corresponding to the encryption algorithm E shown in FIG.
- Block ciphers can be considered in two parts.
- Key schedule section which outputs an expanded key K '(bit length k') obtained by expanding a bit length by a predetermined step
- P plaintext
- K 'expanded a key K 'expanded from the key schedule section
- a “data encryption unit” that converts data and outputs a ciphertext C.
- the data encryption unit used in the following embodiments can be divided into processing units called round functions.
- the round function receives two pieces of data as input, performs internal processing, and outputs one piece of data.
- One of the input data is n-bit data in the middle of encryption, and the output of the round function in one round is supplied as the input of the next round.
- Another input data uses a part of data of the expanded key output from the key schedule, and this key data is called a round key.
- the total number of round functions is called the total number of rounds, which is a value predetermined for each encryption algorithm.
- R represents the total number of rounds.
- the input data of the first round is X 1 viewed from the input side of the data encryption unit
- the data to be input to the i-th round function is X i
- the round key is RK i It is indicated as 4.
- the round function may take various forms depending on the block encryption algorithm. Round functions can be classified according to the structure adopted by the cryptographic algorithm. As typical structures, SPN structure, Feistel structure, and extended Feistel structure are exemplified here.
- (A) SPN structure round function A configuration in which exclusive OR operation with a round key, non-linear conversion, linear conversion processing, etc. is applied to all n-bit input data. The order of each operation is not determined.
- FIG. 5 shows an example of the round function of the SPN structure.
- (A) Feistel structure The n-bit input data is divided into two n / 2-bit data.
- a function (F function) having one of the data and the round key as input is applied, and the output is exclusively ORed to the other data. After that, the left and right sides of the data are used as output data.
- F function function having one of the data and the round key as input
- the output is exclusively ORed to the other data.
- the left and right sides of the data are used as output data.
- There are various types of internal configurations of the F function but basically, it is realized by a combination of exclusive OR operation with round key data, non-linear operation, and linear transformation as in the SPN structure.
- FIG. 6 shows an example of the round function of the Feistel structure.
- the extended Feistel structure is an extended Feistel structure in which the number of data divisions is 2 is divided into three or more. Assuming that the division number is d, various extended Feistel structures can be defined by d. Because the size of the input and output of the F function is relatively small, it is considered suitable for small-sized implementation.
- (D) d-series generalized Feistel structure In an extended Feistel structure in which the division number d is an even number, d / 2 F functions are applied in parallel in one round. Also, use cyclic shift as a replacement between rounds. 7, 18, and 20 show a four-series generalized Feistel structure.
- the non-linear transformation processing unit tends to have a high implementation cost as the size of the input data increases.
- the target data is often divided into a plurality of units, and a configuration in which non-linear transformation is performed on each of the units is often employed. For example, assuming that the input size is ms bits, they are divided into m pieces of s-bit data, and non-linear conversion with s-bit input / output is performed on each of them.
- the non-linear transformation of those s-bit units is called S-box. An example is shown in FIG.
- the linear transformation processing unit can be defined as a matrix by its nature.
- the elements of a matrix can generally be expressed in various ways, such as elements of fields of GF (2 8 ) and elements of GF (2).
- FIG. 10 shows an example of a linear transformation processing unit which has ms bit input / output and is defined by an m ⁇ m matrix defined on GF (2 s ).
- the key schedule unit (expanded key generation unit) generates k'-bit expanded key (round key) K 'by k-bit secret key K as input. Function.
- the key schedule portion is required to have the following characteristics (characteristics 1 to 3) in terms of security. (Characteristic 1)
- Characteristics 1 to 3 in terms of security.
- a general attack is the bias of data between plaintext and ciphertext on a certain fixed secret key (difference, linearity While the related key attack uses the bias of plaintext and inter-cipher text data on a plurality of secret keys, while the related key attack is used.
- the attack is performed under the assumption that the values of the two secret keys are unknown, but the difference between the secret keys is known.
- An unknown secret key K is derived using the set of)).
- (+) represents an exclusive OR operator. Therefore, the related key difference attack is stronger than the normal difference attack because the information available to the attacker is increased.
- the key scheduling unit is also required to have the following characteristics (characteristics 4 to 9) on implementation.
- Characteristics 4 to 9) Easy to implement (Characteristic 5) Short setup time for generating an expanded key from a secret key (Characteristic 6) Able to generate an expanded key on-the-fly (Characteristic 7) Encryption key schedule Part, decryption key schedule part can be shared as much as possible (Characteristic 8) Shareable with data encryption part and data decryption part as much as possible (Characteristic 9) can easily cope with change of secret key length
- the key scheduling unit satisfy these characteristics in a balanced manner from the viewpoint of security and implementation.
- the key scheduling unit has various designs for every common key block cipher. Although the security of the key scheduling unit and the implementation performance are closely related to the data encryption unit, it is generally considered that there is a trade-off between security and implementation performance like the data encryption unit.
- Non-Patent Document 3 Sony Corporation, "The 128-bit Blockcipher CLEFIA Algorithm Specification", Revision 1.0, 2007.
- Camellia Non-Patent Document 3
- Patent Document 4 Aoki, Ichikawa, Kanda, Matsui, Morii, Nakasu, Tokita, "128-bit block cipher Camellia algorithm specification", version 2.0, 2001) and the like.
- a method of improving the mounting performance there is a method of forming only by a linear function without using a non-linear function.
- a key scheduling unit that divides the secret key data into a plurality of pieces and replaces them is considered to have high implementation performance, especially when the hardware is implemented, with almost no circuit being required.
- Such a key schedule part is called a replacement key schedule part.
- the replacement key scheduling unit has high implementation performance, many systems have security problems.
- the key scheduling part of the block cipher GOST (Non-Patent Document 5: GOST 28147-89: Encryption, Decryption, and Message Authentication Code (MAC) Algorithms, RFC 5830.) is 4n-bit.
- the secret key K is equally divided into eight for every (n / 2) -bit, and each of them is used as a round key in order
- the key scheduling unit can be configured by only the selector for each round without performing any operation on the secret key K, so that the number of circuits required for hardware implementation is very small.
- the data structure of GOST has a Feistel structure, and it is vulnerable to the related key attack because the round key is exclusively ORed before each F function. It is known that, in fact, an attack succeeds with probability 1.
- RK0 1 , RK0 2 ,..., RK0 R be round keys obtained from the secret key K0
- RK1 1 , RK1 2 ,..., RK1 R be round keys obtained from the secret key K1.
- the difference of the secret key K0 and the secret key K1 as a secret key difference ⁇ the difference between each round key round key difference ⁇ 1, ⁇ 2, ..., and ⁇ R.
- the probability that such an equation holds is called the success probability of the identification attack using a related key attack.
- block ciphers which are considered to be strong against related key attacks, need to show that this probability is sufficiently small.
- the probability of 1 is similarly obtained when exclusive-ORing the round key before the F function using the replacement key schedule part. It is possible to configure a related key attack transitioning at.
- KASUMI Non-Patent Document 6: 3rd Generation Partnership Project, Technical Specification Group Services and System Aspects, 3G Security, Specification of the 3GPP Confidentiality and Integrity Algorithms; Document 2: KASUMI Specification, V9.0.0, 2009).
- KASUMI Key scheduling unit of KASUMI also has high implementation performance, it is known to be vulnerable to related key attacks.
- the secret key K is equally divided into a plurality of pieces, and each is supplied to the data encryption unit according to the following method.
- Methodhod 1 Change of round key insertion position: The round key is exclusive ORed after the F function, not before the conventional F function (for example, the positions shown in FIGS. 14 and 18) (for example, FIG. 19, Position shown in FIG. 20)
- Methodhod 2 Change of Round Key Generation / Replacement: Round keys are generated according to the structure of the data encryption unit using a substitution method that is secure against related key attacks and the like.
- the divided secret keys are not supplied in order, but are appropriately supplied in order so as to have resistance to a related key attack. This order is related to the bit length and number of divisions of the secret key K, and the structure of the data encryption unit, and it is necessary to design a key schedule unit for each structure of the data encryption unit.
- the length of one round key is (n / 2) -bit and when the secret key K is 2n-bit (n / 2) Divide into 4 equal parts every -bit and supply while replacing every 4 rounds. This is the setting shown in FIG.
- the round key supply process shown in FIG. 21 will be described.
- the secret key K is 2n-bit key data.
- the 2n-bit secret key K is divided into four equal parts to generate four round keys K1, K2, K3, and K4.
- the four round keys K1, K2, K3, and K4 are (n / 2) -bit key data.
- the four round keys K1, K2, K3, and K4 are used in different sequences in units of four rounds as one unit.
- round keys K1 to K4 are input and applied in the following sequence in R1 to R4.
- Round R1 Round Key K1 Round
- R2 Round Key K2 Round
- R3 Round Key K3 Round
- R4 Round Key K4
- R5 to R8 round keys K1 to K4 are input and applied in the following sequence.
- round keys K1 to K4 are input and applied in the following sequence.
- R12: Round Key K1 Round Key K1
- different round key input sequences are applied in units of four rounds as one unit.
- the secret key K is 2n-bit key data.
- the 2n-bit secret key K is divided into eight equal parts to generate eight keys K1, K2, K3, K4, K5, K6, K7, and K8.
- the eight keys K1 to K8 are (n / 4) -bit key data.
- An (n / 2) -bit round key consisting of concatenated data of two keys selected from the eight keys K1 to K8: KxKy is used in a different sequence in each unit, using four rounds as one unit.
- R1 to R4 a round key KxKy in which key data K1 to K8 are concatenated in the following sequence is inputted and applied.
- R5 to R8 a round key KxKy in which key data K1 to K8 are concatenated in the following sequence is inputted and applied.
- Round Key K5K8 Round Key K5K8
- R9 to R12 a round key KxKy obtained by concatenating key data K1 to K8 in the following sequence is inputted and applied.
- R12: Round Key K1 K8 Round Key K1 K8
- the length of the secret key K is 4 n-bit, it is equally divided into eight every (n / 2) -bit and supplied while being replaced every eight rounds.
- the configuration shown in FIG. 1 the configuration shown in FIG. 1
- the secret key K is 4n-bit key data.
- the 4n-bit secret key K is divided into eight equal parts to generate eight round keys K1, K2, K3, K4, K5, K6, K7, and K8.
- the eight round keys K1 to K8 are (n / 2) -bit key data.
- the eight round keys K1 to K8 are used in different sequences in each unit, with eight rounds as one unit.
- R1 to R8 round keys are input and applied in the following sequence.
- R10 Round Key K5 Round
- R11 Round Key K1 Round
- R12 Round Key K4 Round
- R13 Round Key K8 Round
- R14 Round Key K6 Round
- R15 Round Key K3 Round
- R16 Round Key K7
- different round key input sequences are applied in units of eight rounds as one unit.
- two round keys are (n / 4) -bit.
- the secret key K is 2n-bit, it is equally divided into eight every (n / 4) -bit, and two (n / 4) -bit ones are supplied while replacing every four rounds.
- the round key supply process shown in FIG. 24 will be described.
- the secret key K is 2n-bit key data.
- the 2n-bit secret key K is divided into eight equal parts to generate eight round keys K1, K2, K3, K4, K5, K6, K7, and K8.
- Eight round keys K1 to K8 are (n / 4) -bit key data. Two round keys selected from the eight round keys K1 to K8 are used in different sequences in each unit, with four rounds as one unit.
- R1 Round key K1 and round key K2
- R2 Round key K3 and round key K4
- Round R3 Round key K5 and round key K6
- Round R4 Round key K7 and round key K8
- R5 to R8 enter and apply two round keys in the following sequence.
- Round R5 Round key K5 and round key K1
- Round R6 Round key K2 and round key K6
- Round R7 Round key K7 and round key K3
- Round R8 Round key K4 and round key K8
- R9 to R12 two round keys are input and applied in the following sequence.
- Round R9 Round key K7 and round key K5 Round
- R10 Round key K1 and round key K3 Round
- R11 Round key K4 and round key K2 Round
- Round R12 Round key K6 and round key K8
- different round key input sequences are applied in units of four rounds as one unit.
- the round key supply process shown in FIG. 25 will be described.
- the secret key K is 2n-bit key data.
- the 2n-bit secret key K is divided into eight equal parts to generate eight round keys K1, K2, K3, K4, K5, K6, K7, and K8.
- Eight round keys K1 to K8 are (n / 4) -bit key data. Two round keys selected from the eight round keys K1 to K8 are used in different sequences in each unit, with four rounds as one unit. In this example, round keys K1 to K4 are applied to the left F function of each round in the 4-sequence Feistel structure, and round keys K5 to K8 are applied to the right F function of each round in the 4-sequence Feistel structure.
- R1 Round key K1 and round key K5
- R2 Round key K2 and round key K6
- R3 Round key K3 and round key K7
- R4 Round key K7 and round key K8
- R5 to R8 enter and apply two round keys in the following sequence.
- Round R5 Round key K2 and round key K5
- Round R6 Round key K4 and round key K8
- Round R7 Round key K1 and round key K6 Round
- R9 to R12 two round keys are input and applied in the following sequence.
- Round R9 Round key K4 and round key K5 Round
- R10 Round key K3 and round key K7 Round
- R11 Round key K2 and round key K8 Round
- Round R12 Round key K1 and round key K6
- different round key input sequences are applied in units of four rounds as one unit.
- the key schedule part according to the present method is effective also for a model in which the cyclic shift in the 4-sequence generalized Feistel structure as shown in FIG. 26 is changed to round permutation (referred to as 4-sequence generalized Feistel +). .
- the basic configuration shown in FIG. 26 is a configuration in which n-bit input data is divided into d units of n / d bits and F function processing and exclusive OR processing are performed in the d-line generalized Feistel structure, The operation with the round key is performed on the output of the F function.
- the data sequence input to the F function is the F function input data sequence, Exclusive OR side data series, data series to be exclusive ORed, I assume.
- Each n / d bit data transferred in each series (each line) is further subdivided into d / 2 (in this case, the division may not be equal division).
- the data re-divided into d / 2 in each series (each line) is distributed according to the following rules.
- the key schedule part by this method is effective also to the model (4 series generalization Feistel +) which changed this cyclic shift to round permutation.
- the structure shown in FIG. 27 which is the replacement method similar to FIG. 25 is suitable. That is, in the secret key divided into eight equal parts by (n / 4) -bit, four are used as the round key RK r, 0 to the left F function, and the remaining four are added to the right F function Is used for the round key RK r, 1 of.
- the round key supply process shown in FIG. 27 will be described.
- the secret key K is 2n-bit key data.
- the 2n-bit secret key K is divided into eight equal parts to generate eight round keys K1, K2, K3, K4, K5, K6, K7, and K8.
- Eight round keys K1 to K8 are (n / 4) -bit key data.
- Two round keys selected from the eight round keys K1 to K8 are used in different sequences in each unit, with four rounds as one unit.
- two round keys selected from round keys K1 to K8 are applied to two F functions of each round in a 4-series generalized Feistel + structure in which cyclic shift is changed to round permutation.
- R1 Round key K1 and round key K5
- R2 Round key K2 and round key K6
- R3 Round key K3 and round key K7
- R4 Round key K7 and round key K8
- R5 to R8 enter and apply two round keys in the following sequence.
- Round R5 Round key K2 and round key K5
- Round R6 Round key K4 and round key K8
- Round R7 Round key K1 and round key K6 Round
- R9 to R12 two round keys are input and applied in the following sequence.
- Round R9 Round key K4 and round key K5 Round
- R10 Round key K3 and round key K7 Round
- R11 Round key K2 and round key K8 Round
- Round R12 Round key K1 and round key K6
- different round key input sequences are applied in units of four rounds as one unit.
- FIG. 28 shows how to configure the key scheduling unit when the secret key is (5n / 4) -bit and the round key required for one round is (n / 2) -bit.
- the key scheduling unit when the secret key is (5n / 4) -bit and the round key required for one round is (n / 2) -bit.
- replacement and extension are performed so as to be an integral multiple of the bit length of the round key required for one round first. After that, it takes a structure to supply in order.
- the round key supply process shown in FIG. 28 will be described.
- the secret key K is (5/4) n-bit key data.
- the replacement key schedule unit generates five round keys K1, K2, K3, K4, and K5 corresponding to the bit length of the round key.
- Two round keys selected from the round keys K1 to K5 are input as round keys to be applied to each round and applied to two F functions.
- R1 Round key K3 and round key K4 Round
- R2 Round key K1 and round key K2 Round
- R3 Round key K3 and round key K4 Round
- R4 Round key K5 and round key K5 Round
- R5 Round key K1 and round key K2
- R6-R10, and the subsequent five rounds: R11-R15 apply and apply two round keys in the same sequence.
- the number of active F functions can be determined by determining one input difference. From the above, it can be understood that it is sufficient to show that a sufficiently large number of active F-functions can be obtained regardless of any input difference when considering the security against the differential attack.
- the minimum value of the number of active F functions for each input difference is defined as the minimum number of active F functions.
- the configuration according to the present disclosure that is, the configuration in which the input key sequence is changed in predetermined round units in the replacement key scheduling unit, such key replacement is not performed. It is possible to guarantee the number of active F functions larger than the modulus, and to realize a highly secure cryptographic processing configuration with a small number of rounds.
- the round key input process is as follows: It is necessary to input two (n / 4) -bit round keys for each round.
- n-bit for example, as shown in FIG. 32
- n / 4-bit round keys obtained by dividing the n-bit secret key into four equal parts are generated and input two for each round.
- the secret key is (5/4)
- n-bit for example, as shown in FIG. 33 and FIG. 34
- n / 4-bit round keys are generated by dividing the n-bit secret key into five equal parts. Enter two in a round.
- the secret key K is n-bit key data.
- the n-bit secret key K is divided into four equal parts to generate four round keys K1, K2, K3, and K4.
- the four round keys K1, K2, K3, and K4 are (n / 4) -bit key data.
- the four round keys K1, K2, K3, and K4 are used in different sequences in units of four rounds as one unit.
- R3 to R4 round keys K1 to K4 are input and applied in the following sequence.
- round keys K1 to K4 are input and applied in the following sequence.
- Round R5 Round key K4 and round key K3
- Round R6 Round key K2 and round key K1
- round keys K1 to K4 are input and applied in the following sequence.
- Round R7 Round key K2 and round key K4
- Round R8 Round key K1 and round key K3
- round keys K1 to K4 are input and applied in the following sequence.
- Round R9 Round key K1 and round key K2
- Round R10 Round key K3 and round key K4
- the round key supply process shown in FIG. 33 will be described.
- the secret key K is (5/4) n-bit key data.
- the replacement key schedule unit generates five round keys K1, K2, K3, K4, and K5 corresponding to the bit length of the round key.
- Two round keys selected from the round keys K1 to K5 are input as round keys to be applied to each round and applied to two F functions.
- the key supply sequence in the key supply processing configuration shown in FIG. 33 is, as a result, the same as that in FIG. 28 described above. That is, K1, K2, K3, K4, K5, K5, K1, K2, K3... Supply keys in this order.
- K1, K2, K3, K4, K5, K5, K1, K2, K3... Supply keys in this order.
- the key supply processing sequence shown in FIG. 33 and the key supply processing sequence shown in FIG. 34 are exactly the same. That is, in the first five rounds: in R1 to R5, two round keys are input and applied in the following sequence.
- Round R1 Round key K1 and round key K2 Round
- R2 Round key K3 and round key K4 Round
- R3 Round key K5 and round key K5 Round
- R4 Round key K2 and round key K3 Round
- R5 Round key K3 and round key K4 The next five rounds: Enter and apply two round keys in the same sequence in R6 to R10.
- the same effect can be obtained by changing the key selection order in units of multiple rounds instead of rearranging the supply order of divided keys and sequentially inputting to the round function.
- the round key supply configuration described above with reference to FIG. 24 and the key supply processing sequence shown in FIG. 35 are exactly the same. That is, in the first four rounds, two round keys are inputted and applied in the following sequence in R1 to R4.
- Round R2 Round key K3 and round key K4 Round
- R3 Round key K5 and round key K6 Round
- R5 to R8 enter and apply two round keys in the following sequence.
- Round R5 Round key K5 and round key K1
- Round R6 Round key K2 and round key K6
- Round R7 Round key K7 and round key K3
- Round R8 Round key K4 and round key K8
- Round R9 Round key K7 and round key K5
- Round R10 Round key K1 and round key K3
- Round R11 Round key K4 and round key K2
- Round R12 Round key K6 and round key K8
- the round key supply configuration described with reference to FIG. 24 and the key supply processing sequence illustrated in FIG. 35 have a configuration in which different round key input sequences are applied in units of four rounds as one unit.
- the key supply sequence according to the configuration shown in FIG. 36 is as follows. In the first four rounds: In R1 to R4, two round keys are input and applied in the following sequence. Round R1: Round key K1 and round key K2 Round R2: Round key K3 and round key K4 Round R3: Round key K5 and round key K6 Round R4: Round key K7 and round key K8
- R5 to R8 enter and apply two round keys in the following sequence.
- Round R5 Round key K5 and round key K1
- Round R6 Round key K2 and round key K6
- Round R7 Round key K7 and round key K3
- Round R8 Round key K4 and round key K8
- R9 to R12 Two round keys are input and applied in the following sequence.
- the key supply sequence shown in FIG. 36 is the same as the key supply sequence shown in FIG. 24 in rounds 1 to 4 and 5 to 8, but is different from round 9 onward.
- the configuration shown in FIG. 24 is configured to execute key replacement performed by the replacement key schedule unit, that is, key replacement processing with the same settings in units of four rounds, while the configuration shown in FIG. 36 performs the replacement key schedule unit execution. This is because key replacement, that is, key replacement processing is executed with different settings in units of four rounds.
- the same effect can be obtained by changing the key selection order instead of rearranging the order of the divided keys and inputting them in order to the round function.
- the round key supply configuration described above with reference to FIG. 36 and the key supply processing sequence shown in FIG. 37 are exactly the same.
- the key supply sequence according to the configuration shown in FIG. 38 is as follows.
- R4 to R6 enter and apply two round keys in the following sequence.
- Round R4 Round key K7 and round key K3
- Round R5 Round key K8 and round key K1
- Round R6 Round key K2 and round key K4
- R7 to R9 enter and apply two round keys in the following sequence.
- Round R7 Round key K6 and round key K8
- Round R8 Round key K5 and round key K7
- Round R9 Round key K3 and round key K1
- R10 to R12 two round keys are input and applied in the following sequence.
- Round R10 Round key K4 and round key K5 Round
- Round R11 Round key K2 and round key K6 Round
- Round R12 Round key K8 and round key K7
- key replacement of the same pattern is repeated every three rounds.
- the same effect can be obtained by changing the key selection order instead of rearranging the key order and sequentially inputting to the round function.
- the round key supply configuration described with reference to FIG. 38 and the key supply processing sequence shown in FIG. 39 are exactly the same.
- the round key supply method of the present disclosure is executed as processing by the replacement key scheduling unit as in the conventional method, the implementation efficiency is high.
- the length of the secret key K which is the generation source of the round key is 2n-bit
- two round keys of the keys K1 to K8 obtained by equally dividing the key into eight for each round select.
- the keys K1 to K8 are divided into two as shown in FIG. K1, K2, K3, K4 K5, K6, K7, K8 Set two groups of these four round keys,
- the implementation efficiency can be further enhanced in a certain implementation form by adopting a configuration in which key replacement in a predetermined number of rounds, that is, change of the key supply sequence is performed in each of these group units.
- the replacement key scheduling unit is configured to have two selectors, and in each selector, the above-mentioned four round key groups, ie, K1, K2, K3, K4 K5, K6, K7, K8
- the configuration is such that selection of an output key from each of these round key groups is performed.
- two selectors are required to select one from eight as shown in FIG. 40. For example, as shown in FIG. By configuring, as shown in FIG. 41, two small selectors select one from four.
- the implementation efficiency can be improved by designing the replacement so that a selector with three inputs can be used. Specifically, as shown in FIG. From the (5/4) n-bit secret key K, n / 4-bit round keys K1, K2, K, K4, and K5 are generated, The first selector performs key selection for K1, K2, and K3 and the second selector performs key selection for K3, K4, and K5.
- An encryption processing apparatus that executes encryption processing according to the above-described embodiment can be mounted on various information processing apparatuses that execute encryption processing. Specifically, PC, TV, recorder, player, communication device, RFID, smart card, sensor network device, dent / battery authentication module, health, medical device, self-supporting network device etc., for example, data processing and communication processing Can be used in various crises to perform cryptographic processing associated with
- FIG. 43 An exemplary configuration of an IC module 700 as an example of an apparatus that executes the cryptographic processing of the present disclosure is illustrated in FIG.
- the above-described processing can be executed in, for example, a PC, an IC card, a reader / writer, and various other information processing apparatuses, and the IC module 700 shown in FIG. 43 can be configured in these various devices.
- a central processing unit (CPU) 701 illustrated in FIG. 43 is a processor that executes start and end of encryption processing, control of data transmission and reception, control of data transfer between respective components, and other various programs.
- a memory 702 is a ROM (Read-Only-Memory) for storing fixed data such as a program executed by the CPU 701 or operation parameters, a program executed in processing of the CPU 701, and a storage area for parameters appropriately changed in program processing, It consists of RAM (Random Access Memory) etc. which are used as a work area. Further, the memory 702 can be used as a storage area for key data necessary for encryption processing, data to be applied to a conversion table (permutation table) applied to encryption processing, a conversion matrix, and the like.
- the data storage area is preferably configured as a memory having a tamper resistant structure.
- the cryptographic processing unit 703 executes cryptographic processing and decryption processing according to the cryptographic processing configuration described above, that is, the common key block cryptographic processing algorithm to which, for example, the generalized Feistel structure or Feistel structure is applied.
- the encryption processing means is an individual module
- such an encryption processing module is not provided, for example, an encryption processing program is stored in the ROM, and the CPU 701 reads and executes the ROM storage program. It may be configured to
- the random number generator 704 executes random number generation processing required for generation of a key required for cryptographic processing and the like.
- the transmission / reception unit 705 is a data communication processing unit that executes data communication with the outside, and performs data communication with the IC module, such as a reader / writer, and outputs the ciphertext generated in the IC module, or an external reader Execute data input from a device such as a writer.
- the encryption processing apparatus described in the above-described embodiment is applicable not only to encryption processing that encrypts plaintext as input data, but also to decryption processing that restores ciphertext as input data to plaintext. It is applicable.
- the configuration described in the above-described embodiment can be applied to the encryption process and the decryption process.
- An encryption processing unit that divides and inputs configuration bits of data to be processed into data into a plurality of lines, and repeatedly executes data conversion processing in which round functions are applied to data of each line as round operations ,
- a key scheduling unit for outputting a round key to the round operation execution unit of the encryption processing unit;
- the key schedule unit A substitution-type key schedule unit that divides a secret key held in advance into a plurality of pieces to generate a plurality of round keys or round key configuration data, The plurality of round keys or the plurality of round keys generated by combining the round key configuration data are output to the round operation execution unit sequentially executed in the encryption processing unit in a setting that does not repeat a predetermined sequence Cryptographic processing unit.
- the encryption processing device wherein the key schedule unit changes an input sequence of the plurality of round keys to the round operation execution unit in units of a plurality of rounds in the round operation execution unit.
- the cryptographic processing unit inputs the data divided into the plurality of lines and performs nonlinear conversion processing, an F function execution unit including linear conversion processing, and the output of the F function execution unit.
- the encryption processing device according to (1) or (2), further including: an operation unit that executes an operation to which the round key is applied.
- the key scheduling unit divides a secret key held in advance into a plurality of pieces and generates a plurality of round keys having the same number of bits as the round key input to the round operation execution unit. (3) The encryption processing apparatus in any one. (5) The key scheduling unit divides a secret key held in advance into a plurality of pieces and generates a plurality of round key configuration data having a smaller number of bits than the round key input to the round operation execution unit, The encryption processing device according to any one of (1) to (4), wherein a plurality of round key configuration data are connected to generate a round key having the same number of bits as the round key input to the round operation execution unit.
- the key scheduling unit parallelly outputs a plurality of round keys to be applied in parallel in the round operation execution unit to the round operation execution unit sequentially executed in the encryption processing unit (1) to (5) Cryptographic processing apparatus described in.
- the encryption processing device according to any one of (1) to (6), wherein the key schedule unit has one or more selectors that perform selection / supply processing of a key to the round operation execution unit.
- the key scheduling unit sets a plurality of round keys or a plurality of groups into which the round key configuration data is divided, and performs control processing of a key supply sequence to the round operation execution unit in set groups.
- the encryption processing device according to any one of (1) to (7)
- the encryption processing device according to any one of (1) to (8), wherein the key scheduling unit has a selector for each group.
- the encryption processing unit executes encryption processing for converting plaintext as input data into ciphertext, or decryption processing for converting ciphertext as input data into plaintext (1) to (9)
- the cryptographic processing device according to any one of the above.
- the series of processes described in the specification can be performed by hardware, software, or a combined configuration of both.
- the program recording the processing sequence is installed in memory in a computer built into dedicated hardware and executed, or the program is executed on a general-purpose computer capable of executing various processing. It is possible to install and run.
- the program can be recorded in advance on a recording medium.
- the program can be installed from a recording medium to a computer, or can be installed in a recording medium such as a built-in hard disk by receiving a program via a network such as a LAN (Local Area Network) or the Internet.
- LAN Local Area Network
- a system is a logical set configuration of a plurality of devices, and the devices of each configuration are not limited to those in the same housing.
- a cryptographic processing device with high security is realized by supply control of round keys.
- encryption processing in which data conversion processing in which a round function is applied to data of each line is repeatedly executed as a round operation by dividing configuration bits of data to be data processed into a plurality of lines
- a key scheduling unit that outputs a round key to the round operation execution unit of the encryption processing unit, and the key scheduling unit divides the secret key held in advance into a plurality of generations to generate a plurality of round keys
- a plurality of generated round keys are output to the round operation execution unit sequentially executed by the encryption processing unit in a setting that does not become a repetition of a predetermined sequence.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Description
データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理装置にある。
暗号処理装置において実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理ステップと、
鍵スケジュール部が、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理方法にある。
暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部に、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行させる暗号処理ステップと、
鍵スケジュール部に、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行させ、
前記鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記鍵スケジュール部に、前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力させるプログラムにある
具体的には、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵を生成する置換型鍵スケジュール部であり、暗号処理部において順次実行するラウンド演算実行部に対して、生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する。本構成により、例えば関連鍵攻撃等に対する耐性の高い安全性の高い暗号処理構成が実現される。
1.共通鍵ブロック暗号の概要
2.鍵スケジュール部の構成と処理の概要について
3.鍵スケジュール部に対する攻撃とこれまでの対策例について
4.関連鍵攻撃に対し安全性を得られる置換型鍵スケジュール部について
5.鍵置換型鍵スケジュール部の様々な構成例(バリエーション)について
6.暗号処理装置の構成例について
7.本開示の構成のまとめ
まず、共通鍵ブロック暗号の概要について説明する。
(1-1.共通鍵ブロック暗号)
ここでは共通鍵ブロック暗号(以下ではブロック暗号)としては以下に定義するものを指すものとする。
ブロック暗号は入力として平文Pと鍵Kを取り、暗号文Cを出力する。平文と暗号文のビット長をブロックサイズと呼びここではnで著す。nは任意の整数値を取りうるが、通常、ブロック暗号アルゴリズムごとに、あらかじめひとつに決められている値である。ブロック長がnのブロック暗号のことをnビットブロック暗号と呼ぶこともある。
平文P:nビット
暗号文C:nビット
鍵K:kビット
暗号化アルゴリズムEに対応する復号アルゴリズムDは暗号化アルゴリズムEの逆関数E-1と定義でき、入力として暗号文Cと鍵Kを受け取り,平文Pを出力する。図2に図1に示した暗号アルゴリズムEに対応する復号アルゴリズムDの図を示す。
ブロック暗号は2つの部分に分けて考えることができる。ひとつは鍵Kを入力とし、
ある定められたステップによりビット長を拡大してできた拡大鍵K'(ビット長k')を出力する「鍵スケジュール部」と、もうひとつは平文Pと鍵スケジュール部から拡大された鍵K'を受け取ってデータの変換を行い暗号文Cを出力する「データ暗号化部」である。
2つの部分の関係は図3に示される。
以下の実施例において用いるデータ暗号化部はラウンド関数という処理単位に分割できるものとする。ラウンド関数は入力としての2つのデータを受け取り、内部で処理を施したのち、1つのデータを出力する。入力データの一方は暗号化途中のnビットデータであり、あるラウンドにおけるラウンド関数の出力が次のラウンドの入力として供給される構成となる。もう1つの入力データは鍵スケジュールから出力された拡大鍵の一部のデータが用いられ、この鍵データのことをラウンド鍵と呼ぶものとする。またラウンド関数の総数は総ラウンド数と呼ばれ、暗号アルゴリズムごとにあらかじめ定められている値である。ここでは総ラウンド数をRで表す。
ブロック暗号アルゴリズムによってラウンド関数はさまざまな形態をとりうる。ラウンド関数はその暗号アルゴリズムが採用する構造(structure)によって分類できる。代表的な構造としてここではSPN構造、Feistel構造、拡張Feistel構造を例示する。
nビットの入力データすべてに対して、ラウンド鍵との排他的論理和演算、非線形変換、線形変換処理などが適用される構成。各演算の順番は特に決まっていない。図5にSPN構造のラウンド関数の例を示す。
nビットの入力データはn/2ビットの2つのデータに分割される。うち片方のデータとラウンド鍵を入力として持つ関数(F関数)が適用され、出力がもう片方のデータに排他的論理和される。そののちデータの左右を入れ替えたものを出力データとする。F関数の内部構成にもさまざまなタイプのものがあるが、基本的にはSPN構造同様にラウンド鍵データとの排他的論理和演算、非線形演算、線形変換の組み合わせで実現される。図6にFeistel構造のラウンド関数の一例を示す。
拡張Feistel構造はFeistel構造ではデータ分割数が2であったものを,3以上に分割する形に拡張したものである。分割数をdとすると、dによってさまざまな拡張Feistel構造を定義することができる。F関数の入出力のサイズが相対的に小さくなるため、小型実装に向いているとされる。図7にd=4でかつ、ひとつのラウンド内に2つのF関数が並列に適用される場合の拡張Feistel構造の一例を示す。また,図8にd=8でかつ,ひとつのラウンド内に1つのF関数が適用される場合の拡張Feistel構造の一例を示す。
分割数dが偶数である拡張Feistel構造において、ひとつのラウンド内にd/2個のF関数が並列に適用される。
また、ラウンド間の置換としてcyclic shiftを用いる。
なお、図7、18、20は4系列一般化Feistel構造を示す。
非線形変換処理部は、入力されるデータのサイズが大きくなると実装上のコストが高くなる傾向がある。それを回避するために対象データを複数の単位に分割し、それぞれに対して非線形変換を施す構成がとられることが多い。例えば入力サイズをmsビットとして、それらをsビットずつのm個のデータに分割して、それぞれに対してsビット入出力を持つ非線形変換を行う構成である。それらのsビット単位の非線形変換をS-boxと呼ぶものとする。図9に例を示す。
線形変換処理部はその性質上、行列として定義することが可能である。行列の要素はGF(28)の体の要素やGF(2)の要素など、一般的にはさまざまな表現ができる。図10にmsビット入出力をもち、GF(2s)の上で定義されるm×mの行列により定義される線形変換処理部の例を示す。
本開示の暗号処理の説明の前に、前提となる構成である鍵スケジュール部の構成と処理の概要について説明する。
k=128の場合、
m=128,R=11であるため、
k'=1408である。
m=128,R=13であるため、
k'=1664である。
(特性1)等価鍵が存在しないこと
なお、秘密鍵K0を入力したときの拡大鍵K0'と,秘密鍵K1(≠K0)を入力したときの拡大鍵K1'に対し、K0'=K1'が成り立つとき、K0とK1を等価鍵と呼ぶ。
一般的な攻撃は、ある固定された秘密鍵上での平文や暗号文間のデータの偏り(差分,線形性など)を利用したものであるのに対し、関連鍵攻撃では複数の秘密鍵上での平文や暗号文間データの偏りを利用するものである。
また、秘密鍵の差分を攻撃者が自由に選べるという強力な仮定を置く攻撃も存在する。この仮定の下でも安全性を達成していることが望ましい。
但し、(+)は排他的論理和演算子を表す。
よって、関連鍵差分攻撃は攻撃者が利用できる情報がより増えているため通常の差分攻撃よりさらに強力な攻撃となる。
例えば、秘密鍵K0を入力したときのラウンド鍵をRK1,RK2,…,RKRとし、秘密鍵K1を入力したときのラウンド鍵がRK2,RK3,…,RKR+1のように、スライドした値を取るとき、安全性が損なわれる可能性がある。
(特性4)実装が容易であること
(特性5)秘密鍵から拡大鍵を生成するセットアップ時間が短いこと
(特性6)on-the-flyで拡大鍵が生成できること
(特性7)暗号化鍵スケジュール部,復号鍵スケジュール部ができる限り共有可能であること
(特性8)データ暗号化部,データ復号部とできる限り共有可能であること
(特性9)秘密鍵長の変更に容易に対応できること
次に、鍵スケジュール部に対する攻撃とこれまでの対策例について説明する。
鍵スケジュール部は各種の共通鍵ブロック暗号毎に、様々な設計がなされている。
鍵スケジュール部の安全性、実装性能はデータ暗号化部と深い関連があるが、一般的にデータ暗号化部と同様に安全性と実装性能にはトレードオフがあると考えられている。
例えば、図13に示すように、ブロック暗号GOST(非特許文献5:GOST 28147-89: Encryption, Decryption, and Message Authentication Code (MAC) Algorithms, RFC 5830.)の鍵スケジュール部は、4n-bitの秘密鍵Kを(n/2)-bit毎、8つに等分割し、それぞれを順番にラウンド鍵とする構造になっている
秘密鍵K0から得られるラウンド鍵をRK01,RK02,…,RK0Rとし、秘密鍵K1から得られるラウンド鍵をRK11,RK12,…,RK1Rとする。このとき、秘密鍵K0と秘密鍵K1の差分を秘密鍵差分Δとし、各ラウンド鍵の差分をラウンド鍵差分Δ1,Δ2,…,ΔRとする。
同様に全てのラウンド関数において,(d,d)の差分が伝播していくため,暗号文差分が必ず(d,d)となる。
秘密鍵K(+)(d,d,d,d,d,d,d,d),
平文P(+)(d,d)、
を入力したときに得られる暗号文C'は確率1でC'=C(+)(d,d)となる。
しかしながら、KASUMIの鍵スケジュール部も高い実装性能を持つものの、関連鍵攻撃に対して脆弱であることが知られている。
以上のような問題点を鑑み,以下では、実装コストを増大させずに,関連鍵攻撃に対し安全性を得られるような置換型鍵スケジュール部の構成法について説明する。
(手法1)ラウンド鍵挿入位置の変更:ラウンド鍵を従来のF関数の前(例えば図14,図18に示す位置)ではなく、F関数の後で排他的論理和を取る(例えば図19,図20に示す位置)
(手法2)ラウンド鍵生成置換の変更:データ暗号化部の構造にしたがって,関連鍵攻撃等に対して安全になるような置換法を用いてラウンド鍵を生成する。
(効果1)高い実装性能
置換型鍵スケジュール部を用いることで従来型同様高い実装性能を持つことが期待される.特にハードウェア実装時の必要回路が少なくできるという利点がある。
(効果2)ラウンド鍵の挿入位置の変更による安全性向上
図19や図20に示す構成のように、ラウンド鍵をF関数の前でなく後に排他的論理和することで、置換型鍵スケジュール部を用いたとしても、従来法であるGOSTのような確率1で成功する関連鍵攻撃を防ぐことが可能となる。
また、実装手法によっては、データ暗号化部の実装性能をさらに向上させることにもつなげられる。
従来方式と異なり、分割した秘密鍵を順番に供給するのではなく、関連鍵攻撃耐性を持つように適切に順序を入れ替えて供給する。
この順序は秘密鍵Kのbit長と分割数、及び、データ暗号化部の構造に関連があり、データ暗号化部の構造毎に鍵スケジュール部を設計する必要がある。
図21に示す設定である。
秘密鍵Kは、2n-bitの鍵データである。
この2n-bit秘密鍵Kを4等分して4つのラウンド鍵K1,K2,K3,K4を生成する。
4つのラウンド鍵K1,K2,K3,K4は、(n/2)-bitの鍵データである。
この4つのラウンド鍵K1,K2,K3,K4を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1
ラウンドR2:ラウンド鍵K2
ラウンドR3:ラウンド鍵K3
ラウンドR4:ラウンド鍵K4
ラウンドR5:ラウンド鍵K3
ラウンドR6:ラウンド鍵K1
ラウンドR7:ラウンド鍵K4
ラウンドR8:ラウンド鍵K2
ラウンドR9 :ラウンド鍵K4
ラウンドR10:ラウンド鍵K3
ラウンドR11:ラウンド鍵K2
ラウンドR12:ラウンド鍵K1
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば、図22に示す構成である。
秘密鍵Kは、2n-bitの鍵データである。
この2n-bit秘密鍵Kを8等分して8つの鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つの鍵K1~K8は、(n/4)-bitの鍵データである。
この8つの鍵K1~K8から選択した2つの鍵の連結データからなる(n/2)-bitラウンド鍵:KxKyを、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1K2
ラウンドR2:ラウンド鍵K3K4
ラウンドR3:ラウンド鍵K5K6
ラウンドR4:ラウンド鍵K7K8
ラウンドR5:ラウンド鍵K3K4
ラウンドR6:ラウンド鍵K2K7
ラウンドR7:ラウンド鍵K1K6
ラウンドR8:ラウンド鍵K5K8
ラウンドR9 :ラウンド鍵K2K7
ラウンドR10:ラウンド鍵K4K5
ラウンドR11:ラウンド鍵K3K6
ラウンドR12:ラウンド鍵K1K8
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば図23に示す構成である。
秘密鍵Kは、4n-bitの鍵データである。
この4n-bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1~K8は、(n/2)-bitの鍵データである。
この8つのラウンド鍵K1~K8を、8ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1
ラウンドR2:ラウンド鍵K2
ラウンドR3:ラウンド鍵K3
ラウンドR4:ラウンド鍵K4
ラウンドR5:ラウンド鍵K5
ラウンドR6:ラウンド鍵K6
ラウンドR7:ラウンド鍵K7
ラウンドR8:ラウンド鍵K8
ラウンドR9 :ラウンド鍵K2
ラウンドR10:ラウンド鍵K5
ラウンドR11:ラウンド鍵K1
ラウンドR12:ラウンド鍵K4
ラウンドR13:ラウンド鍵K8
ラウンドR14:ラウンド鍵K6
ラウンドR15:ラウンド鍵K3
ラウンドR16:ラウンド鍵K7
このように、8ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば図24に示す構成である。
秘密鍵Kは、2n-bitの鍵データである。
この2n-bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1~K8は、(n/4)-bitの鍵データである。
この8つのラウンド鍵K1~K8から選択した2つのラウンド鍵を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K5と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR7:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR8:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR9 :ラウンド鍵K7と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K1と、ラウンド鍵K3
ラウンドR11:ラウンド鍵K4と、ラウンド鍵K2
ラウンドR12:ラウンド鍵K6と、ラウンド鍵K8
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば図25に示す構成である。
秘密鍵Kは、2n-bitの鍵データである。
この2n-bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1~K8は、(n/4)-bitの鍵データである。
この8つのラウンド鍵K1~K8から選択した2つのラウンド鍵を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
この例では、K1~K4のラウンド鍵を4系列Feistel構造における各ラウンドの左側のF関数に適用し、K5~K8のラウンド鍵を4系列Feistel構造における各ラウンドの右側のF関数に適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K5
ラウンドR2:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K2と、ラウンド鍵K5
ラウンドR6:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR7:ラウンド鍵K1と、ラウンド鍵K6
ラウンドR8:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR9 :ラウンド鍵K4と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR11:ラウンド鍵K2と、ラウンド鍵K8
ラウンドR12:ラウンド鍵K1と、ラウンド鍵K6
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
ラウンド鍵:K1~K4、
ラウンド鍵:K5~K8、
これらの4つのラウンド鍵単位で入力順の入れ替えを行う。
この構成によって、置換型鍵スケジュール部に必要となるセレクタのコストをさらに削減することが可能になる。
このとき、
F関数に入力されるデータ系列をF関数入力側データ系列,
排他的論理和されるデータ系列を排他的論理和側データ系列、
とする。
各系列(各ライン)において転送されるn/dビットデータ各々について、さらにd/2個に再分割する(この際の分割は等分割でなくても良い)。
各系列(各ライン)各々でd/2個に再分割されたデータを次のルールにしたがって分配する。
(2)排他的論理和側データ系列は必ず次のラウンド関数のF関数入力側データ系列に分配する
(3)各d/2個に分割されたデータ系列はd/2箇所の次のラウンド関数のデータ系列にそれぞれ重複なく分配する
これを必要回数繰り返す。
具体的には、例えば、図25と同様の入れ替え手法である図27に示す構造が適している。
すなわち、秘密鍵を(n/4)-bit毎8等分した中で、4つを左側のF関数へのラウンド鍵RKr,0に用いるものとし、残りの4つを右側のF関数へのラウンド鍵RKr,1に用いる構成である。
秘密鍵Kは、2n-bitの鍵データである。
この2n-bit秘密鍵Kを8等分して8つのラウンド鍵K1,K2,K3,K4,K5,K6,K7,K8を生成する。
8つのラウンド鍵K1~K8は、(n/4)-bitの鍵データである。
この8つのラウンド鍵K1~K8から選択した2つのラウンド鍵を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
この例では、K1~K8のラウンド鍵から選択した2つのラウンド鍵を、cyclic shiftをround permutationに変更した4系列一般化Feistel+構造における各ラウンドの2つのF関数に適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K5
ラウンドR2:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K2と、ラウンド鍵K5
ラウンドR6:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR7:ラウンド鍵K1と、ラウンド鍵K6
ラウンドR8:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR9 :ラウンド鍵K4と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K3と、ラウンド鍵K7
ラウンドR11:ラウンド鍵K2と、ラウンド鍵K8
ラウンドR12:ラウンド鍵K1と、ラウンド鍵K6
このように、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用する。
例えば、秘密鍵が(5n/4)-bitであり、1ラウンドに必要なラウンド鍵が(n/2)-bitのときの鍵スケジュール部の構成法を図28に示す。
この構成では、初めに1ラウンドに必要なラウンド鍵のbit長の整数倍になるように置換と拡張を行う。その後は順番に供給していく構造を取る。
秘密鍵Kは、(5/4)n-bitの鍵データである。
まず、置換型鍵スケジュール部は、この(5/4)n-bitの鍵データに基づいて、ラウンド鍵のbit長に相当する5つのラウンド鍵K1,K2,K3,K4,K5を生成する。
このラウンド鍵K1~K5から選択した2つのラウンド鍵を各ラウンドに適用するラウンド鍵として入力して2つのF関数に適用する。
ラウンドR1:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR2:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR4:ラウンド鍵K5と、ラウンド鍵K5
ラウンドR5:ラウンド鍵K1と、ラウンド鍵K2
次の5ラウンド:R6~R10、その後の5ラウンド:R11~R15でも同様のシーケンスで2つのラウンド鍵を入力して適用する。
まず、差分確率,active F関数、最小active F関数数の定義を行う。
先の表1では、関連鍵差分攻撃に対する安全性を保証するために必要なactive F関数の個数が7個であるような暗号では、少なくとも28ラウンドが必要になる。
本開示に従った処理、すなわち、置換型鍵スケジュール部において、所定のラウンド単位で、入力鍵シーケンスを変更する処理を行う構成とすることで、従来法と比べて13ラウンド減らせることが分かる。
この構造に対して、ラウンド鍵を単純に順番に入れる従来法(図30)を採用した際の、関連鍵差分を考慮したラウンド数と最小active F関数数の対応は、前記の(表1)と同じ値を取る。
先の表1では、関連鍵差分攻撃に対する安全性を保証するために必要なactive F関数の個数が7個であるような暗号では、少なくとも28ラウンドが必要になる。
本開示に従った処理、すなわち、置換型鍵スケジュール部において、所定のラウンド単位で、入力鍵シーケンスを変更する処理を行う構成とすることで、従来法と比べて13ラウンド減らせることが分かる。
次に、鍵置換型鍵スケジュール部の様々な構成例(バリエーション)について説明する。
従って、1ラウンド辺り、合計で、
(n/d)×(d/2)
=(n/2)-bitのラウンド鍵データが必要となる。
各ラウンド単位で、(n/4)-bitのラウンド鍵を2つずつ入力する必要がある。
秘密鍵がn-bitの場合には、例えば図32に示すように、n-bit秘密鍵を4等分したn/4-bitのラウンド鍵を生成して各ラウンドに2つずつ入力する。
秘密鍵が(5/4)n-bitの場合には、例えば図33、図34に示すように、n-bit秘密鍵を5等分したn/4-bitのラウンド鍵を生成して各ラウンドに2つずつ入力する。
図32に示すラウンド鍵の供給処理について説明する。
秘密鍵Kは、n-bitの鍵データである。
このn-bit秘密鍵Kを4等分して4つのラウンド鍵K1,K2,K3,K4を生成する。
4つのラウンド鍵K1,K2,K3,K4は、(n/4)-bitの鍵データである。
この4つのラウンド鍵K1,K2,K3,K4を、4ラウンドを1単位として、各単位で異なるシーケンスで利用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K3と、ラウンド鍵K1
ラウンドR4:ラウンド鍵K4と、ラウンド鍵K2
ラウンドR5:ラウンド鍵K4と、ラウンド鍵K3
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K1
ラウンドR7:ラウンド鍵K2と、ラウンド鍵K4
ラウンドR8:ラウンド鍵K1と、ラウンド鍵K3
ラウンドR9 :ラウンド鍵K1と、ラウンド鍵K2
ラウンドR10:ラウンド鍵K3と、ラウンド鍵K4
秘密鍵Kは、(5/4)n-bitの鍵データである。
まず、置換型鍵スケジュール部は、この(5/4)n-bitの鍵データに基づいて、ラウンド鍵のbit長に相当する5つのラウンド鍵K1,K2,K3,K4,K5を生成する。
このラウンド鍵K1~K5から選択した2つのラウンド鍵を各ラウンドに適用するラウンド鍵として入力して2つのF関数に適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K5
ラウンドR4:ラウンド鍵K2と、ラウンド鍵K3
ラウンドR5:ラウンド鍵K3と、ラウンド鍵K4
次の5ラウンド:R6~R10でも同様のシーケンスで2つのラウンド鍵を入力して適用する。
すなわち、いずれも、K1,K2,K3,K4,K5,K5,K5,K1,K2,K3・・・この順番で鍵の供給が行われる。
このように、置換型鍵スケジュール部の鍵供給処理において、例えばmラウンドにm'(>1)回の鍵置換が必要な設定では、2回目以降の鍵置換を行わず、鍵の選択順序を変更する処理を行う構成としてもよい。
例えば、図33に示す鍵供給処理シーケンスと、図34に示す鍵供給処理シーケンスは、全く同じとなる。
すなわち、最初の5ラウンド:R1~R5では以下のシーケンスで2つのラウンド鍵を入力して適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K5
ラウンドR4:ラウンド鍵K2と、ラウンド鍵K3
ラウンドR5:ラウンド鍵K3と、ラウンド鍵K4
次の5ラウンド:R6~R10でも同様のシーケンスで2つのラウンド鍵を入力して適用する。
すなわち、最初の4ラウンド:R1~R4では以下のシーケンスで2つのラウンド鍵を入力して適用する。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K5と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR7:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR8:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR9 :ラウンド鍵K7と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K1と、ラウンド鍵K3
ラウンドR11:ラウンド鍵K4と、ラウンド鍵K2
ラウンドR12:ラウンド鍵K6と、ラウンド鍵K8
このように、図24を参照して説明したラウンド鍵供給構成と、図35に示す鍵供給処理シーケンスは、4ラウンドを1単位として、各単位で異なるラウンド鍵入力シーケンスを適用した構成となる。
先に図24を参照して説明した構成では、鍵の長さが2n-bitで8等分する場合、4ラウンド毎に同じ態様の鍵置換を行っている。
これに対して、例えば、図36に示すように、4ラウンド単位で実行する置換処理を毎回異なる態様に設定してもよい。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K8
ラウンドR5:ラウンド鍵K5と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR7:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR8:ラウンド鍵K4と、ラウンド鍵K8
ラウンドR9 :ラウンド鍵K8と、ラウンド鍵K5
ラウンドR10:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR11:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR12:ラウンド鍵K4と、ラウンド鍵K6
図24に示す設定では置換型鍵スケジュール部の実行する鍵置換、すなわち鍵入れ替え処理を4ラウンド単位で同じ設定で実行する構成であるが、図36に示す構成では、置換型鍵スケジュール部の実行する鍵置換、すなわち鍵入れ替え処理を4ラウンド単位で異なる設定で実行しているからである。
上記のように、図24や、図36に示す構成では、4ラウンドに8等分した8個の鍵を1つずつ入力している。
図38に示すように、3ラウンド毎に置換を行い3ラウンドに6個のみを利用する構成も可能である。
ラウンドR1:ラウンド鍵K1と、ラウンド鍵K2
ラウンドR2:ラウンド鍵K3と、ラウンド鍵K4
ラウンドR3:ラウンド鍵K5と、ラウンド鍵K6
ラウンドR4:ラウンド鍵K7と、ラウンド鍵K3
ラウンドR5:ラウンド鍵K8と、ラウンド鍵K1
ラウンドR6:ラウンド鍵K2と、ラウンド鍵K4
ラウンドR7:ラウンド鍵K6と、ラウンド鍵K8
ラウンドR8:ラウンド鍵K5と、ラウンド鍵K7
ラウンドR9:ラウンド鍵K3と、ラウンド鍵K1
ラウンドR10:ラウンド鍵K4と、ラウンド鍵K5
ラウンドR11:ラウンド鍵K2と、ラウンド鍵K6
ラウンドR12:ラウンド鍵K8と、ラウンド鍵K7
この例では、3ラウンド単位で、同一パターンの鍵置換を繰り返す構成としている。
本開示のラウンド鍵の供給方式は従来方式と同様、置換型鍵スケジュール部による処理として実行するものであるため、実装効率が高い。
例えば、図40に示すように、ラウンド鍵の生成元となる秘密鍵Kの長さが2n-bitのとき、ラウンド毎に鍵を8等分した鍵K1~K8のうちの2つのラウンド鍵を選択する。
K1,K2,K3,K4
K5,K6,K7,K8
これらの4つのラウンド鍵のグループを2つ設定し、
これらの各グループ単位で、所定ラウンド数単位の鍵置換、すなわち鍵供給シーケンスの変更を行う構成とすることで、ある実装形態において実装効率をさらに高めることができる。
K1,K2,K3,K4
K5,K6,K7,K8
これらの各ラウンド鍵のグループからの出力鍵の選択を実行する構成とする。
具体的には、図42に示すように、
(5/4)nビットの秘密鍵Kから、n/4ビットのラウンド鍵K1,K2,K,K4,K5を生成し、
第1のセレクタが、K1,K2,K3を対象とした鍵選択を実行し、第2のセレクタが、K3,K4,K5を対象とした鍵選択を実行する構成である。
最後に、上述した実施例に従った暗号処理を実行する暗号処理装置の実相例について説明する。
上述した実施例に従った暗号処理を実行する暗号処理装置は、暗号処理を実行する様々な情報処理装置に搭載可能である。具体的には、PC、TV、レコーダ、プレーヤ、通信機器、さらに、RFID、スマートカード、センサネットワーク機器、デンチ/バッテリー認証モジュール、健康、医療機器、自立型ネットワーク機器等、例えばデータ処理や通信処理に伴う暗号処理を実行する様々な危機において利用可能である。
暗号化処理、復号処理、双方の処理において、上述した実施例において説明した構成を適用することが可能である。
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
(1) データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理装置。
(3)前記暗号処理部は、前記複数のラインに分割されたデータを入力して非線形変換処理と、線形変換処理を含むF関数実行部と、前記F関数実行部の出力に対して、前記ラウンド鍵を適用した演算を実行する演算部を有する前記(1)または(2)に記載の暗号処理装置。
(5)前記鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して前記ラウンド演算実行部に入力するラウンド鍵より少ないビット数を持つ複数のラウンド鍵構成データを生成し、前記複数のラウンド鍵構成データを複数連結して前記ラウンド演算実行部に入力するラウンド鍵と同一ビット数のラウンド鍵を生成する前記(1)~(4)いずれかに記載の暗号処理装置。
(7)前記鍵スケジュール部は、前記ラウンド演算実行部に対する鍵の選択供給処理を行う1以上のセレクタを有する記(1)~(6)いずれかに記載の暗号処理装置。
(9)前記鍵スケジュール部は、前記グループ単位のセレクタを有する記(1)~(8)いずれかに記載の暗号処理装置。
(10)前記暗号処理部は、入力データとしての平文を暗号文に変換する暗号化処理、または、入力データとしての暗号文を平文に変換する復号処理を実行する記(1)~(9)いずれかに記載の暗号処理装置。
具体的には、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵を生成する置換型鍵スケジュール部であり、暗号処理部において順次実行するラウンド演算実行部に対して、生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する。本構成により、例えば関連鍵攻撃等に対する耐性の高い安全性の高い暗号処理構成が実現される。
701 CPU(Central processing Unit)
702 メモリ
703 暗号処理部
704 乱数生成部
705 送受信部
Claims (12)
- データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理部と、
前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジュール部を有し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理装置。 - 前記鍵スケジュール部は、
前記ラウンド演算実行部に対する前記複数のラウンド鍵の入力シーケンスを、前記ラウンド演算実行部における複数ラウンド単位で変更する請求項1に記載の暗号処理装置。 - 前記暗号処理部は、
前記複数のラインに分割されたデータを入力して非線形変換処理と、線形変換処理を含むF関数実行部と、
前記F関数実行部の出力に対して、前記ラウンド鍵を適用した演算を実行する演算部を有する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して前記ラウンド演算実行部に入力するラウンド鍵と同一のビット数を持つ複数のラウンド鍵を生成する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して前記ラウンド演算実行部に入力するラウンド鍵より少ないビット数を持つ複数のラウンド鍵構成データを生成し、
前記複数のラウンド鍵構成データを複数連結して前記ラウンド演算実行部に入力するラウンド鍵と同一ビット数のラウンド鍵を生成する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
前記暗号処理部において順次実行するラウンド演算実行部に対して、ラウンド演算実行部において並列適用する複数のラウンド鍵を並列出力する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
前記ラウンド演算実行部に対する鍵の選択供給処理を行う1以上のセレクタを有する請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、
前記複数のラウンド鍵または前記ラウンド鍵構成データを区分した複数のグループを設定し、設定したグループ単位で、前記ラウンド演算実行部に対する鍵供給シーケンスの制御処理を行う請求項1に記載の暗号処理装置。 - 前記鍵スケジュール部は、前記グループ単位のセレクタを有する請求項8に記載の暗号処理装置。
- 前記暗号処理部は、
入力データとしての平文を暗号文に変換する暗号化処理、または、
入力データとしての暗号文を平文に変換する復号処理を実行する請求項1に記載の暗号処理装置。 - 暗号処理装置において実行する暗号処理方法であり、
暗号処理部が、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行する暗号処理ステップと、
鍵スケジュール部が、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行し、
前記鍵スケジュール部は、
予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力する暗号処理方法。 - 暗号処理装置において暗号処理を実行させるプログラムであり、
暗号処理部に、データ処理対象となるデータの構成ビットを複数のラインに分割して入力し、各ラインのデータに対してラウンド関数を適用したデータ変換処理をラウンド演算として繰り返して実行させる暗号処理ステップと、
鍵スケジュール部に、前記暗号処理部のラウンド演算実行部に対して、ラウンド鍵を出力する鍵スケジューリングステップを実行させ、
前記鍵スケジュール部は、予め保持する秘密鍵を複数個に分割して複数のラウンド鍵またはラウンド鍵構成データを生成する置換型鍵スケジュール部であり、
前記鍵スケジュール部に、前記暗号処理部において順次実行するラウンド演算実行部に対して、前記複数のラウンド鍵、または前記ラウンド鍵構成データを結合して生成した複数のラウンド鍵を一定のシーケンスの繰り返しとならない設定で出力させるプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12765375.6A EP2693684B1 (en) | 2011-03-28 | 2012-02-20 | Encryption processing device, encryption processing method, and programme |
BR112013024231A BR112013024231A2 (pt) | 2011-03-28 | 2012-02-20 | dispositivo e método de processamento de criptografia, programa, e, dispositivo de processamento de informação |
CN201280014184.6A CN103621007A (zh) | 2011-03-28 | 2012-02-20 | 加密处理装置、加密处理方法和程序 |
US14/002,462 US9270458B2 (en) | 2011-03-28 | 2012-02-20 | Encryption processing device, encryption processing method, and program |
RU2013142993/08A RU2013142993A (ru) | 2011-03-28 | 2012-02-20 | Устройство обработки шифрования, способ обработки шифрования и программа |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011069185 | 2011-03-28 | ||
JP2011-069185 | 2011-03-28 | ||
JP2011207705A JP5682527B2 (ja) | 2011-03-28 | 2011-09-22 | 暗号処理装置、および暗号処理方法、並びにプログラム |
JP2011-207705 | 2011-09-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012132623A1 true WO2012132623A1 (ja) | 2012-10-04 |
Family
ID=46930384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/053933 WO2012132623A1 (ja) | 2011-03-28 | 2012-02-20 | 暗号処理装置、および暗号処理方法、並びにプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US9270458B2 (ja) |
EP (1) | EP2693684B1 (ja) |
JP (1) | JP5682527B2 (ja) |
CN (1) | CN103621007A (ja) |
BR (1) | BR112013024231A2 (ja) |
RU (1) | RU2013142993A (ja) |
TW (1) | TW201251412A (ja) |
WO (1) | WO2012132623A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014135687A (ja) * | 2013-01-11 | 2014-07-24 | Nippon Telegr & Teleph Corp <Ntt> | 安全性強化装置、検証装置、およびプログラム |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101516574B1 (ko) * | 2014-02-21 | 2015-05-04 | 한국전자통신연구원 | 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법 |
WO2015142765A1 (en) | 2014-03-17 | 2015-09-24 | Coinbase, Inc | Bitcoin host computer system |
US9515818B2 (en) * | 2014-09-16 | 2016-12-06 | Apple Inc. | Multi-block cryptographic operation |
US9735958B2 (en) * | 2015-05-19 | 2017-08-15 | Coinbase, Inc. | Key ceremony of a security system forming part of a host computer for cryptographic transactions |
RU2675435C1 (ru) * | 2016-02-25 | 2018-12-20 | Федеральное государственное казенное военное образовательное учреждение высшего образования "Военный учебно-научный центр Военно-Морского Флота "Военно-морская академия имени Адмирала флота Советского Союза Н.Г. Кузнецова" | Устройство аппаратурного шифрования и передачи данных в локальных сетях |
US20180150836A1 (en) * | 2016-11-29 | 2018-05-31 | Ca, Inc. | Generating tokens dynamically using payment keys |
WO2019003321A1 (ja) * | 2017-06-27 | 2019-01-03 | 三菱電機株式会社 | 符号生成装置、符号生成方法および符号生成プログラム |
EP3651142A4 (en) * | 2017-08-10 | 2021-03-24 | Sony Corporation | ENCRYPTION DEVICE, ENCRYPTION METHOD, DECCRYPTION DEVICE, AND DECryption METHOD |
SG11202010090RA (en) * | 2018-04-17 | 2020-11-27 | Coinbase Inc | Offline storage system and method of use |
KR102091611B1 (ko) * | 2018-06-11 | 2020-03-20 | 엘지전자 주식회사 | 이동단말기 |
EP3617928B1 (de) * | 2018-08-28 | 2021-01-27 | Siemens Aktiengesellschaft | Verfahren zum speichern von schlüsseldaten in einem elektronischen bauteil |
US11394543B2 (en) | 2018-12-13 | 2022-07-19 | Coinbase, Inc. | System and method for secure sensitive data storage and recovery |
EP4007983A4 (en) | 2019-08-01 | 2023-08-30 | Coinbase, Inc. | SYSTEMS AND METHODS FOR GENERATING SIGNATURES |
WO2021076868A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
WO2023013470A1 (ja) * | 2021-08-03 | 2023-02-09 | Kddi株式会社 | 暗号化装置、暗号化方法及び暗号化プログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU693719B2 (en) * | 1995-09-05 | 1998-07-02 | Mitsubishi Denki Kabushiki Kaisha | Data transformation apparatus and data transformation method |
US7391865B2 (en) * | 1999-09-20 | 2008-06-24 | Security First Corporation | Secure data parser method and system |
JP4561252B2 (ja) * | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US7881466B2 (en) * | 2004-10-28 | 2011-02-01 | Irdeto B.V. | Method and system for obfuscating a cryptographic function |
JP2007192893A (ja) * | 2006-01-17 | 2007-08-02 | Sony Corp | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
JP2007199156A (ja) | 2006-01-24 | 2007-08-09 | Sony Corp | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP5055993B2 (ja) * | 2006-12-11 | 2012-10-24 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
-
2011
- 2011-09-22 JP JP2011207705A patent/JP5682527B2/ja not_active Expired - Fee Related
-
2012
- 2012-02-20 EP EP12765375.6A patent/EP2693684B1/en not_active Not-in-force
- 2012-02-20 US US14/002,462 patent/US9270458B2/en not_active Expired - Fee Related
- 2012-02-20 RU RU2013142993/08A patent/RU2013142993A/ru unknown
- 2012-02-20 WO PCT/JP2012/053933 patent/WO2012132623A1/ja active Application Filing
- 2012-02-20 BR BR112013024231A patent/BR112013024231A2/pt not_active Application Discontinuation
- 2012-02-20 CN CN201280014184.6A patent/CN103621007A/zh active Pending
- 2012-02-22 TW TW101105914A patent/TW201251412A/zh unknown
Non-Patent Citations (9)
Title |
---|
"3rd Generation Partnership Project, Technical Specification Group Services and System Aspects, 3G Security, Specification of the 3GPP Confidentiality and Integrity Algorithms", KASUMI SPECIFICATION, 2009 |
"GOST 28147-89: Encryption, Decryption, and Message Authentication Code (MAC) Algorithms", RFC 5830 |
AOKI, ICHIKAWA; KANDA, MATSUI; MORIAI, NAKAJIMA; TOKITA, 128-BIT BLOCK ENCRYPTION CAMELLIA ALGORITHM SPECIFICATION, 2001 |
K. NYBERG: "ASIACRYPT 96", 1996, SPRINGERVERLAG, article "Generalized Feistel Networks", pages: 91 - 104 |
KO, Y. ET AL.: "Related Key Differential Attacks on 27 Rounds of XTEA and Full-Round GOST", LECTURE NOTES IN COMPUTER SCIENCE, vol. 3017, 28 July 2004 (2004-07-28), pages 299 - 316, XP019007570 * |
See also references of EP2693684A4 |
SHIBUTANI, K. ET AL.: "Piccolo: An Ultra- Lightweight Blockcipher", LECTURE NOTES IN COMPUTER SCIENCE, vol. 6917, 27 September 2011 (2011-09-27), pages 342 - 357, XP019166866 * |
THE 128-BIT BLOCKCIPHER CLEFIA ALGORITHM SPECIFICATION, 2007 |
YULIANG ZHENG; TSUTOMU MATSUMOTO; HIDEKI IMAI: "On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses", CRYPTO, 1989, pages 461 - 480 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014135687A (ja) * | 2013-01-11 | 2014-07-24 | Nippon Telegr & Teleph Corp <Ntt> | 安全性強化装置、検証装置、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN103621007A (zh) | 2014-03-05 |
EP2693684A4 (en) | 2015-03-25 |
JP2012215816A (ja) | 2012-11-08 |
EP2693684A1 (en) | 2014-02-05 |
US20130343546A1 (en) | 2013-12-26 |
TW201251412A (en) | 2012-12-16 |
RU2013142993A (ru) | 2015-03-27 |
EP2693684B1 (en) | 2018-11-07 |
US9270458B2 (en) | 2016-02-23 |
BR112013024231A2 (pt) | 2016-12-20 |
JP5682527B2 (ja) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012132623A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
US8165288B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
US7092525B2 (en) | Cryptographic system with enhanced encryption function and cipher key for data encryption standard | |
US8577023B2 (en) | Encryption processing method, apparatus, and computer program utilizing different types of S-boxes | |
JP5682525B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
JP2008058830A (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
WO2008026625A1 (fr) | Dispositif de codage, procédé de codage et programme informatique | |
TWI595460B (zh) | Data processing device, information processing device, data processing method and program | |
WO2011105367A1 (ja) | ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム | |
Reyad et al. | Key-based enhancement of data encryption standard for text security | |
WO2012105352A1 (ja) | ブロック暗号化装置、復号装置、暗号化方法、復号方法およびプログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
US20240097880A1 (en) | High-speed circuit combining aes and sm4 encryption and decryption | |
Azzawi | Enhancing the encryption process of advanced encryption standard (AES) by using proposed algorithm to generate S-Box | |
Alenezi et al. | On the performance of AES algorithm variants | |
JP5772934B2 (ja) | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム | |
Kumar et al. | Implementation of AES algorithm using Verilog | |
JP5338945B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
Aye | Hybrid Cryptographic System for Network Security | |
WO2008117142A9 (en) | Method and system for block cipher encryption |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12765375 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2012765375 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14002462 Country of ref document: US |
|
ENP | Entry into the national phase |
Ref document number: 2013142993 Country of ref document: RU Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112013024231 Country of ref document: BR |
|
ENP | Entry into the national phase |
Ref document number: 112013024231 Country of ref document: BR Kind code of ref document: A2 Effective date: 20130920 |