WO2009122464A1 - 共通鍵暗号機能を搭載した暗号化装置及び組込装置 - Google Patents

共通鍵暗号機能を搭載した暗号化装置及び組込装置 Download PDF

Info

Publication number
WO2009122464A1
WO2009122464A1 PCT/JP2008/000837 JP2008000837W WO2009122464A1 WO 2009122464 A1 WO2009122464 A1 WO 2009122464A1 JP 2008000837 W JP2008000837 W JP 2008000837W WO 2009122464 A1 WO2009122464 A1 WO 2009122464A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
circuit
mask
value
multiplication
Prior art date
Application number
PCT/JP2008/000837
Other languages
English (en)
French (fr)
Inventor
伊藤孝一
岡田壮一
武仲正彦
Original Assignee
富士通株式会社
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 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2008/000837 priority Critical patent/WO2009122464A1/ja
Priority to EP08720703.1A priority patent/EP2273472B1/en
Priority to JP2010505044A priority patent/JP5229315B2/ja
Publication of WO2009122464A1 publication Critical patent/WO2009122464A1/ja
Priority to US12/889,096 priority patent/US8369516B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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 belongs to the field of cryptography, and relates to a countermeasure technique for preventing a cryptanalysis called a power analysis attack.
  • Encryption methods are roughly classified into public key encryption methods and common key encryption methods.
  • Public key cryptography is a scheme that uses different keys for encryption and decryption, and instead of publicly disclosing the key for encryption (public key), the key for decrypting the ciphertext (secret key) Is a method of maintaining security by making secret information only for the receiver.
  • secret key the key for decrypting the ciphertext
  • a common key encryption method is a method that uses the same key (secret key) for encryption and decryption, and makes this secret key information unknown to a third party other than the sender and receiver. This is a method to keep safety.
  • the decryption technique is a technique for estimating secret information such as a secret key from available information such as ciphertext, and there are various methods. Among them, a technique that has recently attracted attention is a method called a power analysis attack (hereinafter referred to as PA).
  • PA is a method devised by Paul Kocher in 1998. It collects and analyzes power consumption data when various input data is given to a cryptographic processor mounted on an embedded device such as a smart card. This is a technique for estimating the key information inside the processor. It is known that by using PA, a secret key can be estimated from a cryptographic processor for both public key encryption and secret key encryption.
  • SPA Single Power Analysis
  • DPA differential power attack
  • Non-Patent Document 2 describes a decryption method using SPA and DPA for DES (Data Encryption ⁇ Standards) currently used as a standard in the common key cryptosystem.
  • DES Data Encryption ⁇ Standards
  • DPA Data Encryption ⁇ Standards
  • Rijndael Rijndael
  • Decoding technology using PA is attracting attention as a particularly effective method, and various decoding methods have been studied.
  • decoding technology not only decoding technology but also countermeasure technology for preventing decoding by PA has been developed, and it is attracting attention as an important technology as well as decoding technology.
  • Fig. 1 shows the general configuration of common key encryption processing.
  • the common key encryption process is composed of two processes, a round process and an extended key generation.
  • extended key generation a plurality of data called extended keys (hereinafter referred to as extended key 0, extended key 1,..., Extended key N) are generated from the input secret key and output to the round process.
  • extended key 0, extended key 1,..., Extended key N a plurality of data called extended keys
  • AES Advanced Encryption Standards
  • Non-Patent Document 4 AES (Advanced Encryption Standards) is known as a typical common key encryption algorithm, and is disclosed as Non-Patent Document 4 below.
  • Fig. 2 shows the configuration of AES.
  • AES is an algorithm using 128-bit as an encryption unit. That is, a 128-bit ciphertext is generated from a 128-bit plaintext.
  • the secret key can be selected from three types: 128, 192, and 256-bit.
  • N + 1 128-bit extended keys are generated from the secret key.
  • AES round processing is composed of four types, RoundKey, Subbyte, ShiftRow, and MixColumn. Of these, an expanded key is used in RoundKey. By inputting plain text to the round process, the process of RoundKey, Subbyte, ShiftRow, MixColumn is repeated N-1 times. Next, processing of RoundKey, Subbyte, ShiftRow, and RoundKey is executed and ciphertext is output.
  • N 10 in the case of 128-bit
  • N 12 in the case of 192-bit
  • N 14 in the case of 256-bit.
  • FIG. 3 shows the RoundKey processing
  • FIG. 4 shows the Subbyte processing
  • FIG. 5 shows the MixColumn processing
  • FIG. 6 shows the ShiftRow processing.
  • DPA is a technique for decrypting a secret key by measuring power consumption related to the round processing of FIG.
  • the processing configuration of the common key encryption that can be decrypted using DPA will be described without being limited to AES.
  • round processing is configured by combining three of expanded key XOR processing (FIG. 7), linear transformation processing (FIG. 8), and nonlinear transformation processing (FIG. 3), and the round processing is repeated a plurality of times.
  • the expanded key XOR process is a process of outputting the operation result Z of the exclusive OR (XOR) of the expanded key K with respect to the input data X.
  • FIG. 10 is equivalent to a structure combining RoundKey (FIG. 3) and Subbyte (FIG. 4) in AES.
  • FIG. 11 shows a configuration in which only bits related to w j input / output are extracted in the configuration of FIG.
  • m j is a known value such as plain text
  • k j is an unknown value
  • w j is a known Sbox table. It is shown that the extended key k j can be estimated by DPA under this assumption.
  • DPA consists of two steps: measurement of power consumption data and analysis of extended key using power difference data.
  • the measurement of power consumption data the power consumption data consumed by the cryptographic processor when given a plaintext is measured as a power consumption curve as shown in FIG. 12 using an oscilloscope or the like. Such measurement is repeated while changing the plaintext value, and the measurement is terminated when a sufficient number of measurement data is obtained.
  • G be the set of power consumption curves obtained by this series of measurements.
  • G 0 (k ' j ) ⁇ G
  • G 1 (k ' j ) ⁇ G
  • a power difference curve DG (k ′ j ) shown below is created.
  • the secret key can be decrypted.
  • the first value of the expanded key is the secret key value as it is, so if the secret key is 128-bit, the expanded key is 0, and if the secret key is 192-bit or 256-bit, For example, if the extended key 0 and the extended key 1 are decrypted, the entire secret key can be decrypted.
  • the Hamming weight of the bit value (1101) 2 is 3.
  • equation (4) holds, there will be a difference in the average hamming weight of load value z j between G 1 (k ' j ) and G 0 (k' j ), but equation (5) holds. In this case, there is no difference in the average hamming weight of the load value z j between G 1 (k ′ j ) and G 0 (k ′ j ).
  • Non-Patent Document 5 the power consumption is considered to be proportional to the hamming weight of the data value, and experimental results showing that this is correct are shown in documents such as Non-Patent Document 5 below.
  • FIG. 14 is a generalized structure of FIG. 10, and is a processing structure in which two linear transformation processes L 1 and L 2 are inserted before and after the key XOR process.
  • FIG. 14 shows a structure equivalent to SC2000, where L 1 is a function that outputs the input as it is, L 2 is a bit transposition function, and w j is an Sbox called the B function of SC2000.
  • L 1 is a function that outputs the input as it is
  • L 2 is a bit transposition function
  • w j is an Sbox called the B function of SC2000.
  • L 2 is a bit permutation function
  • the process of FIG. 14 can be converted to the same process as in FIG. 11 by considering a structure in which only the bits related to w j input / output are taken out. Can be used to decrypt the extended key K.
  • DPA is applied focusing on Sbox output during nonlinear processing, but in addition, the value immediately after XOR of input m j and key k j (output value of key XOR processing) or Sbox A method of applying DPA by paying attention to the value of the input value x j is known (non-patent document 7 below).
  • the secret key K is estimated by DPA when the following conditions are satisfied. (These DPA attack conditions are also described in Patent Document 1 below.)
  • DPA-1 If the input M is known and controllable, the key K is unknown and fixed, and the conversion of Sbox w j is known, measure the power consumption curve of part A (output of Sbox w j ) in FIG. DPA is possible.
  • DPA-2 If the input M is known and controllable, and the key K is unknown and fixed, DPA is possible by measuring the power consumption curve of the part B in Fig. 15 (writing the output of the key XOR process).
  • DPA-3 When the input M is known and controllable, and the key K is unknown and fixed, by measuring the power consumption curve of the part C in FIG. 15 (loading the input value to index Sbox w j ) DPA is possible.
  • Zero multiplication SPA is an attack method that can be implemented only for cryptographic processing devices that use multiplication processing due to its nature. In the case of AES, this attack method is possible only for cryptographic processing devices that use Subbyte processing using the calculation of composite fields described later (FIG. 23), and this attack is not possible for cryptographic processing devices that are not. It is.
  • FIG. 16 shows a circuit configuration of encryption processing that can be attacked by zero multiplication SPA.
  • M is a value known to the attacker such as plaintext
  • K is a value unknown to the attacker such as a key.
  • M is a value known to the attacker such as plaintext
  • K is a value unknown to the attacker such as a key.
  • a multiplication process Z X ⁇ Y with data Y is performed.
  • the value of Y is a value that is unknown to the attacker.
  • Non-patent Document 8 As a representative method for randomizing power consumption, a method called a masking method is known (Non-patent Document 8 below, hereinafter referred to as “Conventional Example 1”).
  • R is a random number, and is a value generated every time encryption processing is executed.
  • R is a random number, and is a value generated every time encryption processing is executed.
  • the data for encryption processing is masked with a random value. Therefore, since the power is randomized by randomizing the data, it is possible to realize a safe process for the PA.
  • a value XORed with respect to data without PA countermeasures such as R is called a mask value.
  • FIG. 19 shows an AES circuit in which the DPA countermeasure according to Conventional Example 1 is applied to the AES circuit not taking the DPA countermeasure of FIG.
  • AES Subbyte processing is performed by table reference processing (0 £ x £ 255) using a static conversion table S [x] using fixed data.
  • the conversion table S [x] used in the Subbyte process is called Sbox.
  • Patent Document 1 A method for solving the problem 2 of the conventional example 1 is disclosed in the following Patent Document 1 (hereinafter referred to as “conventional example 2”).
  • the value to be masked is randomly generated, while in the conventional example 2, one of a plurality of pre-calculated fixed values is masked with a value selected by a random number.
  • the selected mask value is expressed as R i.
  • the random number is a pre-calculated value, unlike the conventional example 1, there is no need to dynamically update the Sbox table data, and it is only necessary to prepare a plurality of pre-calculated static data. High-speed processing can be realized.
  • the DPA countermeasure method of Conventional Example 2 the AES encryption process without the DPA countermeasure shown in FIG. 18 is replaced with the encryption process as shown in FIG.
  • q-1 MUX represents a selector, and selects one of q input data by random numbers.
  • q-1 DEMUX represents a demultiplexer, and selects one of q input destinations from random numbers by random numbers.
  • the input data M ′ i is subjected to XOR processing using the expanded key K i , Subbyte processing using Sbox, ShiftRow, MixColumn processing, and data M ′ i + 1 is output.
  • one of q fixed values is selected by a random number r (0 £ r-1q-1), and a mask process using this value is performed.
  • cr a fixed value selected by the random number r.
  • M i M 'i for a fixed value f r selected by the random number r
  • non-linear conversion processing by the Sbox circuit is performed. This process is performed by selecting one of q Sboxes using a random number.
  • the Sbox input data is masked by c r, output data performs processing such as masked by d r.
  • Sbox with mask is represented as S ' h [x] and Sbox without countermeasure is represented as S [x]
  • the conventional example 2 Since there is a q-1 DEMUX at the input of the Sbox circuit and a q-1 MUX circuit at the output, only one signal of the expanded key XOR operation is transmitted out of the q Sboxes. Since the power characteristics of q Sboxes are different from each other, by selecting one of these by a random number, power consumption is randomized, and PA-safe processing can be realized. Unlike the conventional example 1, since the Sbox table can use pre-calculated data, it can realize a higher speed process than the conventional example 1. However, the configuration of FIG. 20 requires a q-times Sbox circuit without countermeasures shown in FIG. Since the circuit of Sbox is generally very large in AES, the circuit scale of these q Sboxes has a drawback of increasing the circuit scale of AES as a whole. Therefore, the conventional example 2 has the following problems as in the conventional example 1.
  • circuit scale is larger than the circuit without DPA countermeasures.
  • Conventional example 3 As a method for reducing the circuit scale of the AES Sbox, a method using a composite field is known. This method is known as a method that can be applied to an AES circuit that does not use SPA and DPA countermeasures.
  • FIG. 21 shows the configuration of an AES Sbox circuit described in “5.1.1 SubBytes () Transformation” of Non-Patent Document 4 below.
  • the Sbox circuit is shown for encryption and decryption, respectively.
  • Affine inverse transformation A ⁇ 1 (x) which is an inverse function of Affine transformation.
  • GF () is a symbol representing a Galois Field.
  • a Galois field represented as GF (2 ⁇ ) using an integer value ⁇ is called a binary field, and GF ((... ( The Galois field represented as (2 ⁇ 1 ) ⁇ 2 )...) ⁇ ) is called a composite field.
  • a Galois field is a type of data representation format, and data represented in this data representation format is called an element.
  • the element of the binary field is arbitrary data of ⁇ -bit
  • the element of the composite field is arbitrary data of ( ⁇ 1 ⁇ ... ⁇ ⁇ ) -bit.
  • the element of GF (2 ⁇ ) is only ⁇ -bit data format, but the element of GF ((... ((2 ⁇ 1 ) ⁇ 2 )...) ⁇ ) is ⁇ 1-bit, ⁇ 1 ⁇ ⁇ 2-bit, It corresponds to a data format of ⁇ types of bit lengths such as ( ⁇ 1 ⁇ ... ⁇ ⁇ ) -bit, and a data format with a smaller bit length allows arithmetic processing with a smaller circuit scale.
  • a multiplication ⁇ , an XOR operation ⁇ , and a remainder operation mod (f (x)) using a polynomial f (x) are defined.
  • a (x) is used only for encryption, A ⁇ 1 (x) is used only for decryption, and I (x) is a common circuit used for both encryption and decryption.
  • a (x) and A -1 (x) are circuits that perform 8-bit input / output operations by simple logic operations, and are known to have a small circuit scale.
  • I (x) is a circuit that performs 8-bit input / output operations using a table, and is known for its large circuit scale. That is, since the circuit scale of I (x), which is a common circuit used for both encryption and decryption, is large in the configuration of FIG. 21, reduction of the circuit scale of I (x) becomes a problem.
  • Non-Patent Document 10 As a method for reducing the circuit scale of I (x), an inverse element calculation method using a composite field is proposed in Non-Patent Document 10 below. A general inverse element calculation circuit using a table is shown in FIG. 22, and an inverse element calculation circuit using a composite is shown in FIG.
  • a general inverse element calculation circuit performs a process of converting 8-bit input data into 8-bit output data by using a table. Since it is an input / output, the circuit scale is very large.
  • the circuit scale is proportional to m′n′2 m (FIG. 22).
  • FIG. 23 calculates the inverse element T ⁇ 1 of the element T of GF (2 8 ).
  • the element U of GF (((2 2 ) 2 ) 2 ) is used.
  • GF ((2 2 ) 2 ) x 2 + The remainder of x + (10) 2
  • GF (2 2 ) x 2 + x + 1.
  • T and U are 8-bit data
  • the ⁇ , ⁇ ⁇ 1 conversion is a matrix operation called an isomorphism function.
  • U is calculated from T by ⁇ transformation, and then U 16 and U 17 are calculated.
  • the most significant 4-bit of U 17 of the 8-bit value is “0000”. That is, U 17 is a value represented by 4 bits instead of 8 bits.
  • U- 17 which is the inverse element of U17 , is a value represented by 4 bits.
  • c a ⁇ b.
  • a, b and c are all 4-bit values.
  • (law-1) a ⁇ b b ⁇ a
  • a and b are 8-bit or 4-bit data and are elements of GF (2 8 ) or GF (((2 2 ) 2 ) 2 ).
  • (law-2) a ⁇ (b ⁇ c) a ⁇ b ⁇ a ⁇ c
  • a, b, and c are 8-bit or 4-bit data, and are elements of GF (2 8 ) or GF (((2 2 ) 2 ) 2 ).
  • a is 8-bit or 4-bit data, and is an element of GF (2 8 ) or GF (((2 2 ) 2 ) 2 ).
  • a ⁇ b a H ⁇ b
  • a is 8-bit data
  • a H is upper 4-bit of a
  • a L is lower 4-bit of a
  • b is 4-bit data.
  • is a symbol representing bit concatenation.
  • a, a H, the relationship of a L is expressed as a a H
  • a, a H , a L , and b are elements of GF (((2 2 ) 2 ) 2 ).
  • GF (((2 2 ) 2 ) 2 ), (law-1) (law-2) (law-3) is an arbitrary binary GF ( 2 ⁇ ) and any composite GF ((... (2 ⁇ 1 )... ⁇ )).
  • a L , b are ( ⁇ 1 ⁇ ... ⁇ ⁇ -1) -bit
  • the result of a ⁇ b is ( follows law-4).
  • Table 1 summarizes the comparison of the features of the conventional examples 1, 2, and 3 described above. Table 1 compares three points of PA safety, circuit scale, and processing speed. In terms of safety, “safe” is better. In terms of circuit scale, “small” is better. Regarding the processing speed, “high speed” is superior. From Table 1, it can be seen that Conventional Examples 1, 2, and 3 are not systems having excellent characteristics in all three points. ⁇ Conventional issues and solutions> Here, the means of the present invention that exhibits excellent effects for all three features shown in Table 1 are shown. In order to explain this means, a simple combination of Conventional Example 2 and Conventional Example 3 is shown, and the solution means according to the present invention is shown. First, one simple combination of Conventional Examples 2 and 3 is shown in FIG.
  • FIG. 24 shows a circuit according to a combination of Conventional Example 2 and Conventional Example 3.
  • the problem of Conventional Example 2 is that the circuit scale of q Sboxes shown in FIG. 20 is large. Therefore, FIG. 24 aims to reduce the Sbox circuit, which is a disadvantage of the conventional example 2, by replacing these Sbox circuits with the composite circuit shown in FIG. 23, and the table index of the inverse element calculation circuit of FIG. For processing, a table selection technique corresponding to random numbers shown in FIG. 20 is introduced.
  • Input data of FIG. 24 is a M ⁇ K ⁇ p r. This is a value obtained by masking a value obtained by XORing the plaintext M and the extended key K with a fixed value p r (0 £ r £ q-1) selected by a random number r.
  • M is a value known to the attacker
  • K is an unknown value to the attacker
  • r is an unknown value to the attacker
  • a set of q fixed values p 0 , p 1 ,..., p q-1 is the attacker Assume a known value. Based on this assumption, a zero multiplication SPA method for the circuit of FIG. 24 will be described.
  • Such a zero multiplication SPA is applied not only to the multiplier that performs the multiplication of X and X 16 in FIG. 24 but also to the multiplier that multiplies the output of X 16 and the 4-bit table I ′ r [x]. Is possible.
  • the reason for this selection values one by a random number from among the p r is the q 8-bit fixed value and because it is (hereinafter, the fixed value mask, fixed mask value called a), as a result, 256
  • the value of street K can be narrowed down to q ways.
  • a fixed mask value p r i.e. mask any 8-bit random number R value (hereinafter, random value mask, random mask value hereinafter) is used as a, as a zero multiplication even were observed by SPA attacks Cannot narrow down the candidates for K values.
  • FIG. 25 shows the result of diagramizing such a condition for safety against the zero multiplication SPA regarding the multiplication processing.
  • X and Y are unmasked data and are data calculated in the AES process without DPA and SPA countermeasures.
  • p r and q s represent fixed value masks selected by the random numbers r and s.
  • R and S represent random value masks. Randomized value masking (Random value masking) (Random value mask processing such as R and S) for data X and Y calculated in processing without DPA and SPA countermeasures such as X ⁇ R and Y ⁇ S value masking), and the XORed data XR and YS as a result are called random value masked data.
  • fixed value masking such as p r and q s for data X and Y calculated in processing without DPA and SPA countermeasures, such as X ⁇ p r and Y ⁇ q s Is called fixed value masking
  • the resulting XORed data XXpr and Y ⁇ q s are called fixed value masked data.
  • the present invention is an implementation technique for performing PA countermeasures for a cryptographic processor that performs common key cryptography.
  • AES which is a typical common key algorithm
  • the security of embedded devices such as smart cards can be improved.
  • the first aspect of the present invention is premised on a common key block encryption device that performs nonlinear conversion by a multiplication process in a binary or composite field.
  • arithmetic unit that performs arithmetic processing other than non-linear conversion using fixed value masked input data obtained by exclusive OR operation (hereinafter referred to as “XOR”) of a fixed value mask (hereinafter referred to as “fixed value mask”).
  • XOR exclusive OR operation
  • fixed value mask a fixed value mask
  • random value mask (hereinafter referred to as “random number mask”) is XORed.
  • XOR operation circuit that converts to random value masked input data, a multiplier that performs multiplication based on the random value masked input data output from the XOR operation circuit, and a random value mask that is output from the multiplier
  • a random value mask-fixed value mask conversion circuit that reconverts the output data into fixed value masked output data and outputs the result.
  • the second aspect of the present invention has the following configuration.
  • the calculates constituted by the arithmetic circuit or equivalent computing circuit for computing an output J0 X ⁇ Y ⁇ f r .
  • the third aspect of the present invention has the following configuration.
  • the multiplication process according to the first aspect of the present invention is such that the input data of the multiplication process in the non-linear transformation is X, Y, the random value mask is R, the fixed value mask is fr , the circle is an XOR operation circuit, and the circle is a multiplier.
  • the fourth aspect of the present invention has the following configuration.
  • a random value mask obtained by XORing random numbers into a fixed value mask is R ′, S ′, and R ′ H and R ′ L are bit values when R ′ is divided into upper and lower half, J2
  • the fifth aspect of the present invention has the following configuration.
  • J1 (X H ⁇ R ' L ) ⁇ (Y ⁇ R' L )
  • J2 ((X H ⁇ R ' L ) ⁇ (Y ⁇ R' L ) ⁇ R ' L ) ⁇ R' L
  • J3 (X L ⁇ R ' L ) ⁇ (Y ⁇ R' L )
  • the calculates constituted by the arithmetic circuit or equivalent computing circuit for computing an output J0 X ⁇ Y ⁇ f r .
  • a 4-bit value U 17 ⁇ c r is calculated from input data U ⁇ g r by U 16 ⁇ U calculation executed by XORing a random value mask, and 8-bit U 16 ⁇ R ′ and R ′, respectively.
  • a maskedU 16 ⁇ U calculation circuit is provided.
  • the seventh aspect of the present invention has the following configuration.
  • an arithmetic circuit group that executes an operation equivalent to this, J0 is input as U 17 ⁇ cr to the 4-bit to 4-bit conversion table circuit, and U 16 ⁇ R 16 and R 16 are input to U 16 ⁇ R 'and R' are input to maskedU -17 ⁇
  • the eighth aspect of the present invention has the following configuration.
  • the ninth aspect of the present invention has the following configuration.
  • the tenth aspect of the present invention has the following configuration.
  • the eleventh aspect of the present invention has the following configuration.
  • the multiplication process in the nonlinear conversion is performed in a binary field represented by GF (2 8 ). It can be configured to be executed.
  • the binary field GF (2 8 ) is represented by, for example, a remainder of a polynomial x 8 + x 4 + x 3 + x + 1.
  • the multiplication processing in the nonlinear conversion is configured to be executed in the composite represented by GF (((2 2 ) 2 ) 2 ).
  • the present invention can also be implemented as an embedded device incorporating the encryption device according to any one of the first to eleventh aspects described above.
  • FIG. 7 It is a figure showing the general structure of a common key encryption process.
  • This is a configuration of a generally known AES encryption algorithm.
  • This is RoundKey processing in AES that is generally known.
  • Subbyte processing in AES that is generally known.
  • It is a commonly known MixColumn process in AES.
  • This is extended key XOR processing in general common key cryptography without DPA countermeasures.
  • This is a non-linear transformation process in general common key cryptography without DPA countermeasures.
  • This process is a combination of FIG. 7 and FIG. It is the figure which took out the bit relevant to the input / output of wj about the process of FIG.
  • FIG. 7 It is an example of the power consumption of a smart card.
  • a power difference curve is created and spikes appear.
  • This is an example in which a power difference curve was created and spikes did not appear.
  • FIG. 7 This is a combination of FIG. 7, FIG. 8, and FIG.
  • This is a condition related to the power consumption measurement location for decrypting the secret key by DPA.
  • It is a figure showing the 1st structure of the encryption circuit which can be attacked by zero multiplication SPA.
  • It is a figure showing the AES circuit without a general DPA countermeasure. This is a circuit in which the DPA countermeasure of Conventional Example 1 is applied to the AES circuit without DPA countermeasure of FIG.
  • FIG. 5 is a diagram showing the focus of points for deriving a basic idea of the present invention, which is a condition of input data to a multiplier for realizing safe processing for zero multiplication SPA. It is a figure showing the multiplication circuit by the basic idea of this invention.
  • FIG. 1 is a first configuration diagram of a multiplication circuit according to the present invention.
  • (Basic principle-1) It is a 2nd block diagram of the multiplication circuit by this invention.
  • (Basic principle-2) It is a 3rd block diagram of the multiplication circuit by this invention.
  • (Basic principle-3) FIG. 6 is a fourth block diagram of a multiplication circuit according to the present invention.
  • (Basic principle-4) It is a figure showing the framework of the inverse element calculation process using the technique of this invention. This is the first embodiment when the basic principle-1 is used for the masked U 16 ⁇ U calculation. This is a second embodiment in which basic principle-2 is used for masked U 16 ⁇ U calculation.
  • FIG. 36 shows a fifth embodiment when the basic principle-4 is used for the masked U -17 ⁇ U 16 calculation.
  • (Condition-3) is the table operation according to the conventional example 2 for the table operation among the inverse element operations using the composite shown in FIG. That is, a method is used in which q pre-calculation tables are prepared and one of them is selected by a random number. Since q pre-computation tables are required, the problem shown in Task 1 may occur. However, since it is not an inverse operation using an 8-bit input / output table but a 4-bit input / output table operation using a composite field, Since the circuit scale of each table can be reduced to 1/64 of the 8-bit input / output table, the problem of problem 1 does not occur. Therefore, all the problems 1, 2 and 3 can be solved for the table calculation in FIG.
  • Condition-4 is a SPA / DPA countermeasure policy regarding multiplication in the inverse element operation using the composite shown in FIG.
  • the data input to the multiplication process is all random-value masked data, thereby serving as a zero multiplication SPA countermeasure.
  • DPA countermeasures for multiplication can be executed simultaneously. Therefore, Problem 3 is solved.
  • this multiplication process can be executed in one cycle, and a penalty related to the processing speed, such as a process of updating a table according to a random number, does not occur.
  • the present invention executes AES processing that satisfies all of the above (Condition-1) to (Condition-4).
  • the basic policy for satisfying all of these conditions is to perform mask processing using a random value mask only for multiplication processing in the inverse operation of a composite field, and use a fixed value mask for other processing.
  • the mask process is executed.
  • the basic idea for realizing this is described below.
  • FIG. 26 shows a basic idea of the present invention in which only multiplication processing is performed using random value masked data, and other processing is performed using fixed value masked data.
  • one or both inputs of the multiplier are fixed value masked data.
  • the fixed value masked data is converted to random value masked data by XORing the random value mask with respect to the fixed value masked data. That is, masked data X ⁇ p r with a fixed mask value p r is a fixed value masked data, the further random number R for this data and XOR result X ⁇ R ⁇ p r.
  • R ′ R ⁇ p r is also a random value that can take an arbitrary 8-bit value.
  • FIG. 26 is an abstract representation of the idea of multiplication processing in the present invention, and various specific calculation methods can be considered.
  • the method of giving R and S and the calculation method of the random value mask-fixed value mask conversion process differ depending on which one is executed.
  • the multiplication method of the present invention applicable to both of these two types or any one of the multiplication processes, (Basic Principle-1), (Basic Principle-2), (Basic Principle-3), (Basic Principle-4) ).
  • a circuit for calculating the X ⁇ Y ⁇ f r by basic principle -1, MaskedMul_1 as a symbol (X ⁇ R ', Y ⁇ S', R ', S', f r) is represented by.
  • X, Y, and R ′ are 8-bit.
  • a circuit for calculating the X ⁇ Y ⁇ f r by basic principle -2, MaskedMul_2 as a symbol (X ⁇ R ', Y ⁇ R', R ', f r) is represented by.
  • J1 X ⁇ Y ⁇ X ⁇ R ' ⁇ Y ⁇ R' ⁇ R ' 2
  • -U 17 U 16 ⁇ U: 2 x 8-bit ⁇ 8-bit multiplication Since the basic principle-2 is based on (law-1) to (law-3), it can be applied to operations of arbitrary binary fields and composite fields.
  • J1 (X ⁇ R ') ⁇ (Y ⁇ R' L )
  • J2 (Y ⁇ R ' H ) ⁇ R' H ⁇ R ' H 2
  • J3 ((X ⁇ R ') ⁇ (Y ⁇ R' L ) ⁇ R ' L ) ⁇ R' L
  • X and R ′ are 8-bit
  • Y, R ′ H and R ′ L are 4-bit
  • R ′ R ′ H
  • X L. Therefore, J0 J1 ⁇ (J2
  • (0000) 2 ) ⁇ J3 ⁇ f r ((X H ⁇ Y)
  • (X L ⁇ Y)) ⁇ f r , but from (law-4) , X ⁇ Y ((X H ⁇ Y)
  • (X L ⁇ Y)), J0 J1 ⁇ (J2
  • (0000) 2 ) ⁇ J3 ⁇ f r X ⁇ Y ⁇ f r Can be derived.
  • J1, J2, J3, and calculates the J4, obtain J0 ((J1 ⁇ J2)
  • (J3 ⁇ J4)) ⁇ f r by J0 X ⁇ Y ⁇ f r .
  • (X L ⁇ Y)), so J0 ((J1 ⁇ J2)
  • (J3 ⁇ J4)) ⁇ f r X ⁇ Y ⁇ f r can be confirmed.
  • p r and q r represent fixed value masks selected by the random number r.
  • FIG. 31 shows a framework for executing the calculation of iii.
  • the calculation in FIG. 31 includes two multiplication processes “masked U 16 ⁇ U calculation” and “masked U -17 ⁇ U 16 calculation”. These are circuits that perform multiplication processing while performing data mask processing, and each have the following functions.
  • ⁇ Masked U 16 ⁇ U calculating basic function of this circuit by inputting a U ⁇ g r, is that calculates and outputs a U 17 ⁇ c r.
  • c r, g r is a fixed value mask is selected by a random number r
  • c r is a 4-bit
  • g r is 8-bit.
  • the fixed value masks c r and g r are given as inputs to this circuit.
  • a random number R is given as an input in order to execute multiplication with the random value masked data inside the circuit.
  • U 16 ⁇ R ', R ' outputs two data represented by, giving as input to masked U -17 ⁇ U 16 calculation.
  • the value output as R ′ differs depending on the embodiment of this circuit.
  • R ′ R 16 and the multiplication of the basic principle-2.
  • R ′ R. Details of the first embodiment and the second embodiment will be described later.
  • Figure 31 is a process for calculating the output data U -1 ⁇ f r from the input data U ⁇ g r. The overall flow of this calculation process will be described.
  • the masked U 16 ⁇ U calculation calculates a 4-bit value U 17 ⁇ c r from 8-bit value U ⁇ g r. For this U 17 ⁇ c r , U ⁇ 17 ⁇ d r is calculated using the 4-bita4-bit conversion table I ′ r [x] selected by the random number r.
  • This data is a first input of the two input data to the masked U -17 ⁇ U 16 calculation.
  • FIG. 32 is a block diagram of the first embodiment of the present invention for calculating masked U 16 ⁇ U using the multiplication circuit of basic principle-1.
  • U ⁇ R (U ⁇ g r ) ⁇ R ⁇ g r
  • U 16 ⁇ R 16 (U ⁇ R) 16 , R 16 To do.
  • U 17 ⁇ c r MaskMul_1 (U ⁇ R, U 16 ⁇ R 16, R, R 16, c r) by calculating the U 17 ⁇ c r.
  • U 16 ⁇ R 16 and R 16 generated in this calculation process are output as U 16 ⁇ R ′ and R ′, respectively.
  • FIG. 33 is a block diagram of a second embodiment in which masked U 16 ⁇ U is calculated using the multiplication circuit of basic principle-2.
  • U 16 ⁇ R and R generated in this calculation process are output as U 16 ⁇ R ′ and R ′, respectively.
  • U -1 ⁇ f r MaskMul_1 (U -17 ⁇ S ⁇ d r, U 16 ⁇ R, S ⁇ d r, R ', f r) by U - 1 Calculate f r .
  • FIG. 35 is a block diagram of a fourth embodiment of the present invention for calculating masked U -17 ⁇ U 16 using the multiplication circuit of basic principle-3.
  • U -1 ⁇ f r MaskMul_3 (U 16 ⁇ (d r
  • FIG. 36 is a block diagram of the fifth embodiment of the present invention for calculating masked U -17 ⁇ U 16 using the multiplication circuit of basic principle-4.
  • Input data U -17 ⁇ d r , d r , U 16 ⁇ R ' r , f r , R', and R ' H which is the upper 4-bit of 8-bit random number R', R which is the lower 4-bit ' L
  • U 16 H ⁇ R' L (Upper 4-bit of U 16 ⁇ R ') ⁇ R' L ⁇ R ' H
  • U -17 ⁇ R' L (U -17 ⁇ d r ) ⁇ R ' L ⁇ d r
  • U 16 H and U 16 L represent the upper 4-bit and the lower 4-bit of the 8-bit value U 16 , respectively.
  • U -1 ⁇ f r MaskMul_4 (U 16 H ⁇ R ' L , U 16 L ⁇ R' L , U -17 ⁇ R ' L , R' L , U ⁇ 1 ⁇ f r is calculated from f r ).
  • the technique of the present invention it is possible to realize a cryptographic processing apparatus that solves the problems 1, 2, and 3 for all common key cryptosystems that perform multiplication processing using not only AES but also composite fields it can.
  • the present invention is also applied to CLEFIA (http://www.sony.co.jp/Products/clefia/technical/data/clefia-spec-1.0.pdf) which is a 128-bit common key block cipher algorithm. Applicable.
  • the multiplication circuit according to the present invention is one of [first embodiment] to [fifth embodiment] for two calculations of “masked U 16 ⁇ U calculation” and “masked U -17 ⁇ U 16 calculation”.
  • the necessary number of 8-bit′4-bit multiplications varies.
  • the number of multiplications is evaluated by the total number of multiplications required for each of the basic principle-1 to basic principle-4, which are the basis of the embodiment. The evaluation results are shown in Table 5.

Landscapes

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

Abstract

 非線型変換を2進体又は合成体における乗算処理で演算する共通鍵ブロック暗号化装置であって、非線型変換以外の演算処理を、固定値マスクをXORして得た固定値マスク化入力データにより実行する演算器と、乗算処理において、全ての入力データに固定値マスクをXORして固定値マスク化入力データに変換し、更に乱数値マスクをXORして乱数値マスク化入力データに変換するXOR演算回路と、そのXOR演算回路から出力された乱数値マスク化入力データに基づいて乗算処理を実行する乗算器と、その乗算器から出力される乱数値マスク化出力データを固定値マスク化出力データ再変換して出力する乱数値マスク-固定値マスク変換回路とからなる。

Description

共通鍵暗号機能を搭載した暗号化装置及び組込装置
 本発明は、暗号の分野に属するもので、電力解析攻撃と呼ばれる解読法を防ぐための対策技術に関する。
 暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。
 暗号の分野における技術の一つに、解読技術とよばれるものがある。解読技術とは秘密鍵等の秘密情報を暗号文等、入手可能な情報から推定する技術のことであり、様々な手法が存在する。その中で最近注目されている技術に、電力解析攻撃(Power Analysis, 以下PA)と呼ばれる手法がある。PAとは、1998年にPaul Kocherによって考案された手法で、スマートカード等の組み込み機器に搭載された暗号プロセッサに様々な入力データを与えた時の電力消費データを収集・解析することで、暗号プロセッサ内部の鍵情報を推定する手法である。PAを用いることで、公開鍵暗号、秘密鍵暗号共に暗号プロセッサから秘密鍵を推定できることが知られている。
 PAには、単純電力解析(Single Power Analysis, 以下SPA), 電力差分攻撃(Differential Power Analysis, 以下DPA)の2種類が存在する。SPAは暗号プロセッサにおける単一の電力消費データの特徴から秘密鍵の推定を行う方式、DPAは多数の電力消費データの差分を解析することで秘密鍵の推定を行う方式で、一般にDPAの方が強力であるといわれている。SPA、DPAを用いた解読技術としては代表的なものとして次のような論文が発表されている。RSAなどの公開鍵暗号に対するDPAを用いた解読法については、下記非特許文献1などの文献にて述べられている。また、共通鍵暗号方式において、現在標準として利用されているDES(Data Encryption Standards)に対するSPA, DPAを用いた解読法については、下記非特許文献2で述べられている。DESの他に、次世代で標準として利用されると思われる共通鍵暗号方式であるRijndaelについても、下記非特許文献3などの文献でDPAを用いた解読の可能性が指摘されている。
 PAを用いた解読技術は特に有効な方法として注目されており、様々な解読法が研究されている。また、解読技術のみならずPAによる解読を防ぐための対策技術も発展しており、解読技術と同様に重要な技術として注目されている。
 共通鍵暗号処理の一般的な構成を図1に示す。一般的に、共通鍵暗号処理はラウンド処理と拡大鍵生成の2つの処理から構成される。拡大鍵生成は、入力された秘密鍵から複数の拡大鍵と呼ばれるデータを複数(以下拡大鍵0, 拡大鍵1,…, 拡大鍵Nと表記)生成し、ラウンド処理に対して出力する。これらの拡大鍵及び平文をラウンド処理に入力することで、暗号化のための変換を行い、暗号文を出力する。
 代表的な共通鍵暗号のアルゴリズムとして、AES(Advanced Encryption Standards)が知られており、下記非特許文献4として公開されている。
 AESの構成を図2に示す。
 AESは128-bitを暗号化単位とするアルゴリズムである。すなわち128-bitの平文から128-bitの暗号文を生成する。秘密鍵は128,192,256-bitの3種類から選択することができる。拡大鍵処理を実行することで、秘密鍵からN+1個の128-bit拡大鍵を生成する。AESのラウンド処理は, RoundKey, Subbyte, ShiftRow, MixColumnの4種類から構成され、これらのうちRoundKeyにおいて拡大鍵が使用される。ラウンド処理に平文を入力することで、RoundKey, Subbyte, ShiftRow, MixColumnの順番の処理をN-1回繰り返す。次に、RoundKey, Subbyte, ShiftRow, RoundKeyの処理を実行し暗号文を出力する。この繰り返し回数Nは秘密鍵のビット長によって異なり、128-bitの場合N=10, 192-bitの場合N=12, 256-bitの場合N=14である。RoundKeyの処理を図3に、Subbyteの処理を図4に、MixColumnの処理を図5に、ShiftRowの処理を図6に示す。
<DPAによる秘密鍵解読手法>
 以下では、DPAによる秘密鍵解読手法について説明を行う。DPAは、図1のラウンド処理に関する消費電力を測定することで、秘密鍵を解読する手法である。以下では、DPAを用いて解読を行うことができる共通鍵暗号の処理構成について、AESに限定せずに説明を行う。一般的な共通鍵暗号では、拡大鍵XOR処理(図7)、線形変換処理(図8)、非線形変換処理(図3)の3つを組み合わせてラウンド処理を構成し、ラウンド処理を複数回繰り返すことで構成される。図7に示す通り、拡大鍵XOR処理は入力データXに対して、拡大鍵Kの排他的論理和(XOR)の演算結果Zを出力する処理である。図8は線形変換処理であり、入力データXに対して、Z=L(X)を満たすZを出力する処理である。このとき、Lは任意のX,Yに関して、
Figure JPOXMLDOC01-appb-M000001
が成立する。具体的には、図6のShiftRowのようなビット置換処理や、図5のMixColumnのような行列演算などがこれに該当する。図9は非線形変換処理であり、入力データXに対してZ=W(X)を満たすZを出力する。このとき、Wは任意のX,Yに関して、W(X○Y) =W(X)○W(Y)が成立しない(非線形)。具体的には、Sboxと呼ばれる非線型変換テーブル索引で実現する場合が多く、入力XをX=x0x1…xu-1とu個に分割し、Sbox wjを用いてzj=wj(xj)で表されるzjを計算、再びZ=z0z1...zu-1と結合してZを出力する。
 次に、上記処理を組み合わせた共通鍵暗号に対する、DPAを用いた解読法を示す。
 最も簡単な例として、図7と図9を組み合わせた図10の処理に対してDPAを用いることで、拡大鍵Kを解読できることを示す。なお、図10は、AESにおけるRoundKey(図3)とSubbyte(図4)をあわせた構造と等価である。
 図10の構成においてwjの入出力に関係するビットのみを取り出した構成を図11に示す。図11において、mjは平文などの既知の値、kjは未知の値、wjは既知のSboxテーブルであると仮定する。この仮定の下で、DPAにより拡大鍵kjを推定できることを示す。
 DPAは、電力消費データの測定と、電力差分データを用いた拡大鍵の解析という2段階から構成される。電力消費データの測定において、ある平文を与えたときに暗号プロセッサが消費する電力消費データは、オシロスコープ等を用いれば、図12に示すような電力消費曲線として測定される。平文の値を様々に変えながらこのような測定を繰り返し、十分な回数の測定データが得られた時点で測定を終了する。この一連の測定で得られた電力消費曲線の集合をGとする。
 次に、電力消費曲線を用いた拡大鍵の解析について説明を行う。暗号処理内部で用いられている拡大鍵kjについて、kj=k’jであるという仮定を立てる。mj, wjが既知のため、このk’jの仮定に基づき、集合Gは以下のG0(k’j), G1(k’j)に示す2種類の集合に分類できる。

  G0 (k’j) = { G| zj= wj(mj○k’j)のe番目のビット値=0  }   (1)
  G1 (k’j) = { G| zj= wj(mj○k’j)のe番目のビット値=1  }   (2)

そして、以下に示す電力差分曲線DG(k’j)を作成する。
                  
  DG(k’i) = (集合G1に属する電力消費曲線の平均)
         - (集合G0に属する電力消費曲線の平均)   (3)

もしこの仮定が正しい、すなわちk’j=kjである場合、図13Aに示すようなスパイクが現われる。もしこの仮定が誤り、すなわちk’j 1kjである場合、図13Bに示すようにスパイクが現れない平坦な曲線となる。よって、仮定したk’jから図13Aのような電力差分曲線が得られれば、拡大鍵kjを解読できたことになる。このようなkjの解読を各jについて行えば、最終的に図10における拡大鍵Kを解読することができる。この解読を、拡大鍵0,拡大鍵1,…, 拡大鍵Nについて繰り返すことで、秘密鍵を解読することができる。なおAESの場合、アルゴリズムの性質上、拡大鍵の先頭の値がそのまま秘密鍵の値であるため、秘密鍵が128-bitならば拡大鍵0を、秘密鍵が192-bitもしくは256-bitならば拡大鍵0と拡大鍵1を解読すれば、秘密鍵全体を解読することができる。
 次に、k’j=kjである場合、電力差分曲線DG(k’j)にスパイクが現れる理由について説明する。k’j=kjの場合、(1)式及び(2)式に従いG0(k’j), G1(k’j)の分類を行うことで、zjに関して(4)式が成立する。

(G1に属するzjの平均ハミングウェイト)
    - (G0に属するzjの平均ハミングウェイト) = 1   (4)

一方、k’j 1kjの場合(4)式は成立せず、ランダムな分類を行うことになるので(5)式が成立する。

(G1に属するzjの平均ハミングウェイト)
    - (G0に属するzjの平均ハミングウェイト) = 0   (5)

 ただし、ハミングウェイトとは、ある値をビット値で表現したときにビット値=’1’となる個数のことであり、例えばビット値(1101)2のハミングウェイトは3である。
 よって、(4)式が成立する場合はG1(k’j)とG0(k’j)の間でのロード値zjの平均ハミングウェイトに差が生じるが、(5)式が成立する場合はG1(k’j)とG0(k’j)の間でのロード値zjの平均ハミングウェイトに差が生じない。
 一般的に、消費電力はデータ値のハミングウェイトに比例すると考えられており、このことが正しいことを示した実験結果が下記非特許文献5などの文献にて示されている。
 従って、k’j=kjである場合、(4)式が満たされることで消費電力の差が電力差分曲線上のスパイクという形になって現れるが、(5)式の場合はスパイクが現れず、平坦な曲線となる。
 以上では、最も簡単な図10の構造に対するDPAに関して述べたが、このような手法は、間に図9の線形変換を挿入しても成立することが判明している。
 図14は、図10を一般化した構造であり、鍵XOR処理の前後に2つの線形変換処理L1, L2を入れた処理構造である。例えば、L1は入力をそのまま出力する関数、L2をビット転置置換関数、wjをSC2000のB関数と呼ばれるSboxにすることで、図14はSC2000と等価な構造を表す。なお、SC2000の仕様については、下記非特許文献6を参照のこと。L2はビット置換関数であるので、図14の処理について、wjの入出力に関係するビットのみを取りだした構造を考えることで、図11と同一の処理に変換でき、前述と同様のDPAを用いることで、拡大鍵Kを解読することができる。
 以上の手法では、非線形処理中のSbox出力に注目してDPAを適用しているが、そのほかにも、入力mjと鍵kjとのXOR直後の値(鍵XOR処理の出力値)やSboxへの入力値xjの値に注目してDPAを適用する手法が知られている(下記非特許文献7)。
 上記を整理すると、次の条件を満たす場合にDPAにより秘密鍵Kが推定される。(これらのDPA攻撃条件については、下記特許文献1にも記載されている。)

DPA-1. 入力Mが既知かつ制御可能、鍵Kは未知で固定、Sbox wjの変換が既知の場合、図15のAの部分(Sbox wjの出力)の電力消費曲線を測定することでDPA可能。

DPA-2. 入力Mが既知かつ制御可能、鍵Kは未知で固定の場合、図15のBの部分(鍵XOR処理の出力の書き出し)の電力消費曲線を測定することでDPA可能。

DPA-3. 入力Mが既知かつ制御可能、鍵Kは未知で固定の場合、図15のCの部分(Sbox wjを索引するための入力値のロード)の電力消費曲線を測定することでDPA可能。
<SPAによる秘密鍵解読手法>
 以下では、SPAによる秘密鍵解読手法について説明を行う。この攻撃は、
Figure JPOXMLDOC01-appb-M000002

といった乗算処理の消費電力を観察する。ただし、◎は乗算をあらわす記号であり、AES処理では、後に説明する合成体の計算(図23)において、a,b,cがGF(28)やGF(((22)2)2)の元である場合の乗算処理が行われる。入力データであるaもしくはbに’0’が入力された場合、0との乗算、つまり0=0◎bもしくは0=a◎0の演算が行われる(以下、ゼロ乗算と呼ぶ)。ゼロ乗算の消費電力波形と、a,b共に非ゼロの場合の乗算(以下、非ゼロ乗算と呼ぶ)の電力波形と比較した場合、前者は非常に特殊な波形となることが知られている。つまり、乗算処理におけるゼロ乗算と非ゼロ乗算の区別は、SPAにより観察できる。この性質を利用することで、秘密鍵を解読することができる。この攻撃をゼロ乗算SPAと呼ぶ。ゼロ乗算SPAは、その性質上乗算処理を用いる暗号処理装置に対してのみ実施可能な攻撃法である。AESの場合、後に述べる合成体の計算(図23)を用いたSubbyte処理を用いる暗号処理装置に対してのみこの攻撃法が可能であり、そうでない暗号処理装置に対してはこの攻撃は不可能である。
 図16は、ゼロ乗算SPAによる攻撃可能な暗号処理の回路構成を表している。
 図16において、Mは平文など攻撃者にKnownな値、Kは鍵などの攻撃者にUnknownな値である。X=M○KのXOR演算を行った後、データYとの乗算処理Z=X◎Yを行う。Yの値は攻撃者にUnknowな値である。攻撃者はこの処理に対してSPAによる観察を行い、Mの値を変化させながらX◎Yの演算におけるゼロ乗算の発生の有無を観察する。もし、ゼロ乗算が観察された場合、X=0である。つまり、M○K=0であることが分かるので、K=MつまりUnknownなKがMと一致することが分かり、Kの解読に成功する。この攻撃を成功させるためには、Yの値は0以外なら何でも良い任意の値である。
 ゼロ乗算SPAは図17の回路構成に対しても可能である。
 図17において、Mは平文など攻撃者にKnownな値、Kは鍵などの攻撃者にUnknownな値である。αは任意の変換関数であり、攻撃者がゼロに関する逆変換α-1(0)を(つまり、α(z)=0を満たすzを)演算可能であれば、線型・非線型いずれの変換でも良い。V=M○KのXOR演算、X=α(V)の演算を行った後、データYとの乗算処理Z=X◎Yを行う。Yの値は攻撃者にUnknowな値である。攻撃者はこの処理に対してSPAによる観察を行い、Mの値を変化させながらX◎Yの演算におけるゼロ乗算の発生の有無を観察する。もし、ゼロ乗算が観察された場合、X=0である。つまり、α(M○K)=0であるので、M○K=zであることが分かる。つまりK=M○zが分かるので、Kの解読に成功する。
<従来技術>
 従来のDPA対策法としては、暗号処理に対策を施し消費電力をランダム化する手法が存在する。この手法を用いた対策法として、以下の2つの従来例が知られており、下記に従来例1、従来例2として示す。また、DPA対策なしのAES回路に対して、Subbyte回路の縮小を実現する方法を、以下の従来例3に示す。従来例1,2は、Subbyteの回路を乗算処理ではなくテーブル演算で実行するため、ゼロ乗算SPAに対して安全であるので、DPA対策を行うことでそのままPA対策となることに注意されたい。
従来例1
 消費電力をランダム化する手法の代表的なものとして、masking method と呼ばれている手法が知られている(下記非特許文献8、以下「従来例1」と呼ぶ)。DPA対策なしの暗号処理において計算されるデータをMとすると、従来例1に記載されているDPA対策は、データMを計算する代わりに、M’=M○Rで表されるデータM’,Rを計算することで暗号処理を行う方法である。ただしRは乱数であり、暗号処理を実行する度に発生させる値である。この方法により、暗号処理のデータをランダムな値でマスクされる。よって、データがランダム化されることで消費電力もランダム化されるため、PAに安全な処理を実現することができる。以下の説明では、RのようにPA対策なしのデータに対してXORされる値をマスク値と呼ぶ。
 図18のDPA対策を行っていないAES回路に対して、従来例1によるDPA対策を適用したAES回路を図19に示す。この回路においては、図18で計算しているデータMiの代わりに、乱数Riに対してMi’ = Mi ○ Riを満たすMi’とRiの2つのランダムなデータを計算する。暗号化処理ごとに計算されるデータ値がランダムであるため、DPAに対して安全な処理を実現することができる。ただし、データをMi’とRiの両方について計算しなくてはならないため、回路規模が増大する。(図18のおよそ2倍)。図18ではAESのSubbyte処理を、固定データによる静的な変換テーブルS[x] を用いたテーブル参照処理(0£x£255)によって行う。Subbyte処理で用いられる変換テーブルS[x]は、Sboxと呼ばれる。これに対して、図19で用いられるSboxのテーブルデータS’[x]は、乱数Rin, Routに応じてS’[x] = S[x○Rin]○Routに従ったS’[x]を、x=0,1,...,255それぞれに対して動的に更新する必要がある。この更新処理は256 cycleを必要するため、図19の回路を図18と比較すると、処理速度が遅いという欠点を有する。
従来例1の課題
  課題1.DPA対策無しの回路と比較して、回路規模が大きい。
  課題2.DPA対策無しの回路と比較して、処理速度が遅い。
従来例2
 従来例1の課題2を解消するための方法が下記特許文献1に公開されている(以下本書では「従来例2」と記す)。従来例1ではマスクする値をランダムに生成していたのに対し、従来例2は事前計算された複数の固定値の中から一つを乱数によって選択した値によりマスクする。この選択されたマスク値をRiと表記する。従来例2では、従来例1と同様に、M’i=Mi○Riを満たすデータM’i,Riを計算するが、Riは事前計算された値であるため、M’i,Riの両方を計算する必要はなく、M’iのみを計算すれば良い。乱数が事前計算された値であるため、従来例1と異なりSboxのテーブルデータを動的に更新する必要はなく、事前計算された静的なデータを複数用意すれば良いので、従来例1より高速な処理を実現することができる。従来例2のDPA対策方法を用いることで、図18に示したDPA対策無しのAES暗号処理は、以下の図20に示すような暗号処理に置き換えられる。
 図20について説明する。q-1 MUXはセレクタを表し、q個の入力データの中から一つを乱数によって選択する。q-1 DEMUXはデマルチプレクサを表し、入力されたデータをq個の出力先の中から一つを乱数によって選択する。
 入力データM’iに対して、拡大鍵KiによるXOR処理、及びSboxを用いたSubbyte処理、ShiftRow, MixColumn処理が実行され、データM’i+1が出力される。これらの一連の処理においては、乱数r(0£r£q-1)によって、q数の固定値のうち一つが選択され、この値によるマスク処理が行われる。例えば、q個の固定値をch(h=0,1,..,q-1)と表記した場合、乱数rによって選択される固定値をcrと表記する。DPA対策無しの処理における入力データをMiと表記すると、M’iは乱数rによって選択された固定値frに対して、M’i=Mi○frを満たす。つまり、Mi’はfrでXORされているので、Miのマスク値はfrである。
 拡大鍵Kiに対しては、乱数rにより選択された固定値erによりマスクされた後、M’iに対してXORされる。Mi’のマスク値はfr, 拡大鍵Kiのマスク値はerなので、Sboxに入力されるデータのマスク値は、これらのマスク値同士のXORで表されるので、fr○erとなる。ここで任意のh=0,1,…,q-1に対してch=fh○ehと表記すると、Sboxに入力されるデータのマスク値はcrとなる。
 次に、Sbox回路による非線形変換処理が行われる。この処理は、乱数によりq個のSboxから一つを乱数によって選択することで行う。このSboxは、入力データがcrによりマスクされ、出力データがdrによりマスクされるような処理を行う。この処理を実現するための、マスクつきSbox をS’h[x]と表し、対策無しのSboxをS[x]と表した場合、S’h[x]=S[x○ch]○dhの関係が満たされるようにS’h[x]は設計される (h=0,1,…,q-1)。Sbox回路の入力にq-1 DEMUXが、出力にq-1 MUX回路があるため、q個のSboxのうち拡大鍵XOR演算の信号が伝達するのは1つだけである。q個のSboxの電力特性はそれぞれ異なるため、乱数によりこれらのうちの一つを選択することで、消費電力がランダム化され、PAに安全な処理を実現することができる。従来例1と異なり、Sboxテーブルは事前計算データを用いることができるため、従来例1より高速な処理を実現できる。しかし、図20の構成は、図16に示した対策無しのq倍のSbox回路を必要とする。AESにおける一般的にSboxの回路は非常に大きいため、このq個のSboxの回路規模がAES全体の回路規模を増大させるという欠点がある。よって、従来例2は、従来例1と同様、以下の問題がある。
従来例2の課題
  課題1.DPA対策無しの回路と比較して、回路規模が大きい。

従来例3
 AESのSboxの回路規模を小さくする方法として、合成体(Composite Field)を用いた方法が知られている。(下記非特許文献9、以下「従来例3」と呼ぶ)この方法は、SPA,DPA対策を用いないAES回路に適用できる方法として知られている。
 この方法を説明する前提として、AESのSbox回路の一般的な構成について説明する。図21は、下記非特許文献4の"5.1.1 SubBytes() Transformation"に記されているAESのSbox回路の構成を示している。Sbox回路は暗号化・復号それぞれに示しており、GF(28)の多項式x8+x4+x3+x+1の剰余値に関する逆元関数I(x)、Affine変換A(x)、及びAffine変換の逆関数であるAffine逆変換A-1(x)から構成される。ただし、GF()はガロア体(Galois Field)を現す記号である。特に、整数値βを用いてGF(2β)と表されるガロア体は、2進体 (binary field)と呼ばれ、γ個の整数値β1,…, βγを用いてGF( (…((2β1)β2) …)βγ )と表されるガロア体は合成体(composite field)と呼ばれる。ガロア体とはデータ表現形式の一種であり、このデータ表現形式で表されるデータを元(element)と呼ぶ。2進体の元はβ-bitの任意のデータであり、合成体の元は(β1×… ×βγ)-bitの任意のデータである。GF(2β)の元はβ-bitのデータ形式のみであるが、GF( (…((2β1)β2) …)βγ )の元は、β1-bit、β1×β2-bit、…、(β1×… ×βγ)-bitのようにγ種類のビット長のデータ形式に対応しており、ビット長が小さいデータ形式ほど小さな回路規模による演算処理が可能である。2進体、合成体それぞれの元に関して、乗算◎、XOR演算○、及び多項式f(x)による剰余演算mod (f(x))が定義されている。
 逆元(inverse element)とは、任意の8-bit値xに対してI(x)=x-1 mod (x8+x4+x3+x+1)を満たす8-bit値yのことであり、x◎y=1 mod (x8+x4+x3+x+1)を満たす。Affine変換と逆元については、下記非特許文献4の"5.1.1 SubBytes() Transformation"も参照されたい。
 A(x)は暗号化のときのみ、A-1(x)は復号のときのみ用いられ、I(x)は暗号化と復号の両方で用いられる共通の回路である。A(x),A-1(x)は簡単な論理演算による8-bit入出力演算を行う回路であり、回路規模が小さいことが知られている。これに対し、I(x)はテーブルを用いた8-bit入出力演算を行う回路であり、回路規模が大きいことで知られている。つまり、図21の構成は、暗号化と復号の両方で用いられる共通の回路であるI(x)の回路規模が大きいため、I(x)の回路規模削減が課題となる。このI(x)の回路規模を削減するための方法として、合成体(Composite Field)を用いた逆元の計算法が、下記非特許文献10に提案されている。テーブルを用いた一般的な逆元計算回路を図22に、合成体を用いた逆元計算回路を図23に示す。
 図22に示す通り、一般的な逆元計算回路は、テーブルを用いることで8-bit入力データを8-bit出力データに変換する処理を行うが、この処理を回路実装した場合、8-bit入出力であるため非常に回路規模が大きい。テーブル演算を行う回路において、m-bit入力データをn-bit出力データに変換する場合、その回路規模はm´n´2mに比例することが知られており(図22)、回路規模を小さくするためには入出力のビット長であるm,nの両方を小さくすることが重要な課題となる。この課題を解決したのが、図23に示す合成体を用いた逆元演算回路であり、この回路ではm=4, n=4のテーブルを用いる。図22に示すm=n=8のテーブルと、図23に示すm=n=4のテーブルの大きさを比較すると、(4´4´24)/(8´8´28)=(28)/(214)=1/64であり、つまり図23のテーブルは図22のテーブルの1/64の大きさとなるため、回路規模を削減可能である。
 図23の処理内容について説明する。図23は、GF(28)の元Tに対して、その逆元T-1を計算する。このT-1を4-bit入出力テーブルで計算するために、GF(((22)2)2)の元Uを利用する。ただし、合成体GF(((22)2)2)の元Uは多項式GF((24)2)=x2+x+(1100)2, GF((22)2)=x2+x+(10)2, GF(22)=x2+x+1の剰余である。TもUも8-bitデータであり、TとUはδ変換と呼ばれる変換により、U=δ(T), U=δ-1(T)により計算される。δ,δ-1変換はisomorphism functionと呼ばれる行列演算であり、詳細は下記非特許文献11を参照されたい。最初にδ変換により、TからUを計算した後、U16とU17を計算する。なお、U17は=U16とUを乗算することで計算する。この演算の結果、8ビット値のU17のうち、最上位4-bitは’0000’となることが知られている。つまり、U17は8ビットではなく4ビットで表現される値である。また、U17の逆元であるU-17も同様に4ビットで表現される値である。つまり、U17からU-17を計算するテーブル回路は、図22の方法では8ビット入出力であるのに対し、4ビット入出力に削減することができる。このテーブルによってU-17を計算した後、U-1=U-17´U16によりU-1を計算する。最後にT-1-1(U-1)により、T-1を計算する。
 図23の回路は、テーブルのビット長を削減した代わりに、16乗回路、乗算回路が追加されているが、これらの回路規模は図22の8-bit入出力テーブルと比べて非常に小さいことが知られているため、図23に示す逆元計算回路は図22の逆元計算回路より小さい回路規模を実現することができる。ただし、従来例3はPA対策を行っていないため、以下の課題3に示す問題がある。
従来例3の課題
  課題3.SPA,DPAに対して安全な処理を実現することができない。

 なお、GF(28)の元とGF(((22)2)2)の元を用いた乗算◎は以下の種類が知られている。乗算◎、及びXOR演算○に関しては(law-1), (law-2), (law-3), (law-4) に示される法則が成立する。

・GF(28)の乗算: 以下の1種類のみ定義される。
  - c=a◎bで定義される8-bit´8-bit乗算のみ定義される。a,b,cは全て8-bit値。

・ GF(((22)2)2)の乗算: 以下の3種類が定義される。
  - c=a◎bで定義される8-bit´8-bit乗算。a,b,cは全て8-bit値。
  - c=a◎bで定義される8-bit´4-bit乗算。a,cは8-bit値、bは4-bit値。
  - c=a◎bで定義される4-bit´4-bit乗算。a,b,cは全て4-bit値。

(law-1)  a◎b = b◎a
ただし、a,bは8-bitもしくは4-bitデータであり、GF(28)もしくはGF(((22)2)2)の元。
(law-2)  a◎(b○c) = a◎b○a◎c
ただし、a,b,cは8-bitもしくは4-bitデータであり、GF(28)もしくはGF(((22)2)2)の元。
(law-3)  a○a=0
ただし、aは8-bitもしくは4-bitデータであり、GF(28)もしくはGF(((22)2)2)の元。
(law-4)  a◎b = aH◎b || aL◎b
ただし、aは8-bitデータ、aHはaの上位4-bit, aLはaの下位4-bit、bは4-bitデータである。||はビット結合(concatenation)を表す記号であり、例えばビット値(1110)2は(1110)2=(11)|| (10)2と表記される。また、a, aH, aLの関係はa=aH||aLと表記される。a, aH, aL, bはGF(((22)2)2)の元である。

 (law-1)(law-2)は, 整数における乗算´、加算+について成立する交換則a´b=b´aと、結合則a´ (b+c)=a´b+a´cに対応する法則であり、GF(28), GF(((22)2)2)の両方に成立する。(law-3)はXOR演算の定義0○0=0, 1○1=0より明らかであり、GF(28), GF(((22)2)2)の両方に成立する。(law-4)はGF(((22)2)2)のみ成立する特殊な法則である。GF(((22)2)2)における8-bit´4-bit乗算の計算結果は2つの4-bit´4-bit乗算aH◎b, aL◎bの演算結果をビット結合することで得られることを意味している。
 GF(28),GF(((22)2)2)以外の一般的なガロア体について、(law-1)(law-2)(law-3)は、任意の2進体GF(2β)及び任意の合成体GF( (…(2β1)…)βγ)について成立する。(law-4)は、合成体GF( (…(2β1)…)βγ)が、βγ=2を満たす場合に成立する。つまり、aが (β1×… ×βγ-1×2)-bitであり、aH, aL, bが(β1×… ×βγ-1)-bitの場合に、a◎bの結果は(law-4)に従う。
 以上で述べた従来例1,2,3について、それぞれの特徴に関する比較を表1にまとめる。表1においては、PAに対する安全性、回路規模、及び処理速度の3点について比較を行っている。安全性に関しては「安全」である方が優れている。回路規模に関しては「小」である方が優れている。処理速度に関しては、「高速」である方が優れている。表1から、従来例1,2,3はこれら3点全てについて優れた特徴を持つ方式ではないことが分かる。

<従来の課題と解決手段について>
 ここでは、表1に示す3つの特徴全てについて優れた効果を発揮する本発明の手段を示す。この手段を説明するために、従来例2と従来例3の単純な組み合わせを示したうえで、本発明による解決手段を示す。最初に、従来例2と3の単純な組み合わせの一つを図24に示す。
 図24は従来例2と従来例3の組み合わせによる回路を示している。従来例2の問題は、図20に示したq個のSboxの回路規模が大きいことである。よって図24は、これらのSbox回路を図23に示した合成体の回路に置き換えることで、従来例2の欠点であるSbox回路の削減を目標としており、図23の逆元計算回路のテーブル索引処理について、図20に示す、乱数に応じたテーブル選択技術を導入している。
 図24の入力データは、M○K○prである。これは、平文Mと拡大鍵KをXORされた値に対して、さらに乱数rにより選択された固定値pr(0£r£q-1)によりマスクされた値である。
 この値に対してδ変換を行った値はX=δ(M○K○pr)=δ(M○K)○δ(pr)である。つまり、Xはマスク値δ(pr)によりマスクされている。なお、δ,δ-1変換は線型変換であるため、任意のa,bに対しδ(a○b)=δ(a)○δ(b), δ-1(a○b)=δ-1(a) ○δ-1(b)が成立する関数である。
 図24において、このXとX16の乗算を行う乗算器に対し、ゼロ乗算SPAを用いることで、256通りの鍵Kの候補をq通りに絞ることが可能である。qの値は、理論上は無限に大きくすることが可能であるが、大きくしすぎた場合回路規模が大きくなるため、現実的にはq=4程度の値が用いられる。つまり、256通りの鍵Kの値を4通りに絞り込むことができるため、図24の回路はゼロ乗算SPAに対して脆弱である。以下では、その攻撃法について説明を行う。
 最初に攻撃の前提を説明する。Mは攻撃者にKnownな値、Kは攻撃者にUnknownな値、rは攻撃者にUnknownな値、q個の固定値のセットp0, p1, …, pq-1は攻撃者にKnownな値であると仮定する。この前提をもとに、図24の回路に対するゼロ乗算SPAの方法について説明する。
 ゼロ乗算SPAにより消費電力を観察される対象の乗算器は、X=0によるゼロ乗算が発生した場合、SPAにより観察できる。このSPAはX=0を意味するので、δ(M○K)○δ(pr)=0、つまりδ(M○K)=δ(pr)であることが攻撃者に分かる。両辺にδ-1変換を行うことで、M○K=prを得る。よって、攻撃者はK=M○prであることが分かる。つまり、r=0,1,..,q-1のいずれかに対しK= M○prであることが攻撃者にわかるので、Kの値をq通りに絞り込むことができる。このようなゼロ乗算SPAは、図24におけるXとX16の乗算を行う乗算器のみならず、X16と4-bitテーブルI’r[x]の出力を乗算する乗算器に対しても同様に可能である。
 以上から、図24に示した回路は、マスク値prによるデータのランダム化を行っているにも関わらず、ゼロ乗算SPAに対して脆弱である。この理由は、prがq個の8-bit固定値の中から一つを乱数によってセレクトされた値(以下、固定値マスク, fixed mask valueと呼ぶ)であるためであり、その結果、256通りのKの値をq通りに絞ることができる。固定値マスクprの代わりに、つまり任意の8-bit乱数値Rをマスク値(以下、乱数値マスク, random mask valueと呼ぶ)として用いる場合、例えゼロ乗算がSPAによって観察されたとしても攻撃者はKの値の候補を絞ることができない。なぜなら、攻撃者がゼロ乗算観察によって得る情報は、K= M○prの代わりにK=M○Rであるが、このときRは任意の8-bit乱数値であり攻撃者にUnknownな値であるので、Kの値の候補の数は256通りより減ることはないからである。
 以上より、合成体計算を用いたAES処理において、乗算器に対して、固定値マスクによりマスクされたデータを入力した場合、ゼロ乗算SPAに対して脆弱であり、乱数値マスクによりマスクされたデータを入力した場合、ゼロ乗算SPAに対して安全であるとの結論が得られる。このような、乗算処理に関してゼロ乗算SPAに対して安全性であるための条件を図式化した結果を図25に示す。
 図25において、X,Yはマスクされていないデータであり、DPA, SPA対策なしのAES処理において計算されるデータである。pr, qsは、乱数r,sによってセレクトされた固定値マスクを表す。R,Sは、乱数値マスクを表す。X○R, Y○Sのように、DPA,SPA対策無しの処理において計算されるデータX,Yに対して、R,Sのような乱数値マスクをXORする処理を乱数値マスク化(random value masking)と呼び、その結果XORされたデータX○R, Y○Sを乱数値マスク化データ(random value masked data)と呼ぶ。同様に、X○pr, Y○qsのように、DPA,SPA対策無しの処理において計算されるデータX,Yに対して、pr,qsのような固定値マスクをXORする処理を固定値マスク化(fixed value masking)と呼び、その結果XORされたデータX○pr, Y○qsを固定値マスク化データ(fixed value masked data)と呼ぶ。
 図25に示すように、ゼロ乗算SPAに対して安全な乗算処理は、c=a◎bで表される乗算処理の2つの入力a,bともに乱数値マスク化データを入力する処理である。もし、乗算に対する2つの入力a,bのうち、片方もしくは両方に乱数値マスク化データではない値が入力される場合、ゼロ乗算SPAに対して脆弱となる。例えば、c=(X○pr)◎(Y○qs)のようにa,bともに固定値マスク化データ、c=(X○pr)◎(Y○S)のようにbのみ乱数値マスク化データ、c=(X○R)◎Yのようにaのみ乱数値マスク化データの場合は、いずれの場合についてもゼロ乗算SPAに対して脆弱である。以上により、ゼロ乗算SPAに対して安全な処理を実現するための条件は、以下の(ZSPA-sec)により表される。

(ZSPA-sec) ゼロ乗算SPAに対して安全な乗算処理は、c=a◎bで表される乗算処理の2つの入力a,bともに乱数値マスク化データを入力する演算である。
 下記文献群は、この明細書にて引用する公知例である。
Thomas S.Messerges, Ezzy A.Dabbish and Robert H.Sloan "Power Analysis Attacks of Modular Exponentitiation in Smartcards", Cryptographic Hardware and Embedded Systems(CHES’99), Springer-Verlag, pp.144-157 Paul Kocher, Joshua Jaffe, and Benjamin Jun, "Differential Power Analysis," in proceedings of Advances in Cryptology-CRYPTO’99, Springer-Verlag, 1999, pp. 388-397 S. Chari, C. Jutla, J.R. Rao, P. Rohatgi, "An Cautionary Note Regarding Evaluation of AES Candidates on Smart-Cards," Second Advanced Encryption Standard Candidate Conference, March 1999 米NIST(National Institute of Standards and Technology), 標準FIPS197 (Federal Information Processing Standards Publication)http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf T. S. Messerge, Ezzy A. Dabbish and Robert H.Sloan ,"Investigations of Power Attacks on Smartcards". Proceedings of USENIX Workshop on Smartcard Technology, Mar 1999. Takeshi Shimoyama, Hitoshi Yanami, Kazuhiro Yokoyama, Masahiko Takenaka, Kouichi Itoh, Jun Yajima, Naoya Torii, Hidema Tanaka "The Block Cipher SC2000", Fast Software Encryption (FSE 2001), pp.312-327, LNCS vol.2355 M.Akkar, RBevan, P.Dischamp, and D. Moyart, "Power Analysis, What Is Now Possible... ", Asiacrypt 2000) Thomas S. Messerges, "Securing the AES Finalists Against Power Analysis Attacks," in proceedings of Fast Software Encryption Workshop 2000, Springer-Verlag, April 2000. Akashi Satoh, Sumio Morioka, Kohji Takano and Seiji Munetoh: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ASIACRYPT2001, LNCS Vol.2248, pp.239-254, Dec 2001. Akashi Satoh, Sumio Morioka, Kohji Takano and Seiji Munetoh: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ASIACRYPT2001, LNCS Vol.2248, pp.239-254, Dec 2001. "A Compact Rijndael Hardware Architecture with S-Box Optimization" 特開2002-366029号公報
 上記のように、従来例を単純に組み合わせた場合、前述した課題1、課題2、課題3を全て解決したSPA,DPA対策つきAES暗号装置を実現することができない。よって、これらの問題を全て解決することが、本発明の課題である。
 本発明は、共通鍵暗号を行う暗号プロセッサにするPA対策を行うための実装技術である。本技術を用いることで、代表的な共通鍵アルゴリズムであるAESをはじめとした暗号処理の秘密鍵の解読を困難にし、スマートカード等の組み込み機器の安全性を高めることができる。
 本発明の第1の態様は、非線型変換を2進体又は合成体における乗算処理で演算する共通鍵ブロック暗号化装置を前提とする。
 まず、非線型変換以外の演算処理を、固定値によるマスク(以下「固定値マスク」)をエクスクルーシブオア演算(以下「XOR」)して得た固定値マスク化入力データにより実行する演算器を有する。
 次に、非線型変換における乗算処理において、全ての入力データに固定値マスクをXORして固定値マスク化入力データに変換し、更に乱数値によるマスク(以下「乱数値マスク」)をXORして乱数値マスク化入力データに変換するXOR演算回路と、そのXOR演算回路から出力された乱数値マスク化入力データに基づいて乗算処理を実行する乗算器と、その乗算器から出力される乱数値マスク化出力データを固定値マスク化出力データ再変換して出力する乱数値マスク-固定値マスク変換回路を有する。
 上記本発明の第1の態様をベースとして、本発明の第2の態様は、以下の構成を有する。
 即ち、本発明の第1の態様における乗算処理は、非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○pr,S’=S○qrのように固定値マスクに乱数をXORした乱数値マスクをR’,S’として、
  J1=(X○R’)◎(Y○S’)
  J2=S’◎(X○R’)
  J3=R’◎(Y○S’)
  J4=R’◎S’
  J0=J1○J2○J3○J4○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
 上記本発明の第1の態様をベースとして、本発明の第3の態様は、以下の構成を有する。
 即ち、本発明の第1の態様における乗算処理は、非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○prのように固定値マスクに乱数をXORした乱数値マスクをR’として、
  J1=(X○R’)◎(Y○R’)
  J2=R’◎((X○R’)○(Y○R’)○R’)
  J0=J1○J2○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
 上記本発明の第1の態様をベースとして、本発明の第4の態様は、以下の構成を有する。
 即ち、本発明の第1の態様における乗算処理は、βγ=2を満たす合成体GF((…(2β1)…)βγ)における演算であり、その乗算処理は、非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○pr,S’=S○qrのように固定値マスクに乱数をXORした乱数値マスクをR’,S’とし、R’H及びR’LをそれぞれR’を上位及び下位に半分ずつ分割した場合のビット値とし、J2||(0000)2をJ2の下位側にそれと同じビット数のゼロビット列を結合する演算として、
  J1=(X○R’)◎(Y○R’L)
  J2=(Y○R’H)◎R’H○R’H 2
  J3=((X○R’)○(Y○R’L)○R’L)◎R’L
  J0=J1○(J2||(0000)2)○J3○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
 上記本発明の第1の態様をベースとして、本発明の第5の態様は、以下の構成を有する。
 即ち、本発明の第1の態様における乗算処理は、βγ=2を満たす合成体GF((…(2β1)…)βγ)における演算であり、その乗算処理は、非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○pr,S’=S○qrのように固定値マスクに乱数をXORした乱数値マスクをR’,S’とし、R’H及びR’LをそれぞれR’を上位及び下位に半分ずつ分割した場合のビット値とし、X’H及びX’LをそれぞれX’を上位及び下位に半分ずつ分割した場合のビット値として、
  J1=(XH○R’L)◎(Y○R’L)
  J2=((XH○R’L)○(Y○R’L)○R’L)◎R’L
  J3=(XL○R’L)◎(Y○R’L)
  J4=((XL○R’L)○(Y○R’L)○R’L)◎R’L
  J0=((J1○J2)||(J3○J4))○fr
を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される。
 上述の本発明の第2又は第3の態様の乗算処理の演算回路を用いて、2進体もしくは合成体におけるU16◎Uの乗算を実行するように構成することができる。
 また、上述の本発明の第2、第4又は第5の態様の乗算処理の演算回路を用いて、2進体もしくは合成体におけるU-17◎U16の乗算を実行するように構成することができる。
 本発明の第6の態様は、4ビットのcr,8ビットのgr,4ビットのdr,及び8ビットのfrをそれぞれ乱数rによって選択される固定値マスクとし、8ビットのR、R’を乱数値マスクとして、8ビットの入力データU○grから8ビットの出力データU-1○frを、βγ=2を満たす合成体GF((…(2β1)…)βγ)において演算する共通鍵ブロック暗号化装置を前提として、以下の構成を有する。
 まず、乱数値マスクをXORさせて実行するU16◎U計算により、入力データU○grから4ビット値U17○crを計算すると共に、それぞれ8ビットのU16○R’及びR’を計算するmaskedU16◎U計算回路を有する。
 次に、そのmaskedU16◎U計算回路から出力されるU17○crから4ビットのU-17○drを計算する、乱数rによって選択された4ビット対4ビット変換テーブル回路を有する。
 そして、4ビット対4ビット変換テーブル回路から出力されるU-17○drとmaskedU16◎U計算回路から出力されるU16○R’及びR’をそれぞれ入力し、出力データU-1○frを計算するmaskedU-17◎U16計算回路を有する。
 上記本発明の第6の態様をベースとして、本発明の第7の態様は、以下の構成を有する。
 即ち、maskedU16◎U計算回路は、固定値マスクgr,、入力データU○gr、及び乱数値マスクRを入力して、U○R=(U○gr)○R○gr、U16○R16=(U○R)16、及びR16の3つのデータを計算する演算回路群と、
  J1=(U○R)◎(U16○R16)
  J2=R16◎(U○R)
  J3=R◎(U16○R16)
  J4=R◎R16
  J0=J1○J2○J3○J4○cr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU17○crとして4ビット対4ビット変換テーブル回路へ入力させ、U16○R16及びR16をU16○R’及びR’としてmaskedU-17◎U16計算回路に入力させる。
 上記本発明の第6の態様をベースとして、本発明の第8の態様は、以下の構成を有する。
 即ち、maskedU16◎U計算回路は、固定値マスクgr,入力データU○gr、及び乱数値マスクRを入力して、U○R=(U○gr)○R○gr及びU16○R=(U○R)16○R○R16の2つのデータを計算する演算回路群と、
  J1=(U○R)◎(U16○R)
  J2=R◎((U○R)○(U16○R)○R)
  J0=J1○J2○cr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU17○crとして4ビット対4ビット変換テーブル回路へ入力させ、U16○R及びRをU16○R’及びR’としてmaskedU-17◎U16計算回路に入力させる。
 上記本発明の第6の態様をベースとして、本発明の第9の態様は、以下の構成を有する。
 即ち、maskedU-17◎U16計算回路は、4ビット対4ビット変換テーブル回路から出力されるU-17○dr、固定値マスクdrとfr、maskedU16◎U計算回路から出力されるU16○R’,R’、及び内部で発生させた乱数Sを入力して、U-17○S○dr=(U-17○dr)○S、及びS○drの2つのデータを計算する演算回路群と、
  J1=(U-17○S○dr)◎(U16○R’)
  J2=R’◎(U-17○S○dr)
  J3=(S○dr)◎(U16○R’)
  J4=(S○dr)◎R’
  J0=J1○J2○J3○J4○fr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU-1○frとして出力する。
 上記本発明の第6の態様をベースとして、本発明の第10の態様は、以下の構成を有する。
 即ち、maskedU-17◎U16計算回路は、4ビット対4ビット変換テーブル回路から出力されるU-17○dr、固定値マスクdrとfr、maskedU16◎U計算回路から出力されるU16○R’,R’、及びR’の上位4ビットであるR’H、R’の下位4ビットであるR’Lを入力して、U16○(dr||dr)○R’,U-17○dr○R’L,dr○R’,U-17○dr○R’H,dr○R’Hの5つのデータを計算する演算回路群と、
  J1=(U16○(dr||dr)○R’)◎(U-17○dr○R’H)
  J2=(U-17○dr○R’H)◎(dr○R’H)○(dr○R’H2
  J3=((U16○(dr||dr)○R’)○(U-17○dr○R’L)○(dr○R’L))◎(dr○R’L)
  J0=J1○(J2||(0000)2)○J3○fr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU-1○frとして出力する。
 上記本発明の第6の態様をベースとして、本発明の第11の態様は、以下の構成を有する。
 即ち、maskedU-17◎U16計算回路は、4ビット対4ビット変換テーブル回路から出力されるU-17○dr、固定値マスクdrとfr、maskedU16◎U計算回路から出力されるU16○R’,R’、及びR’の上位4ビットであるR’H,、R’の下位4ビットであるR’L、を入力して、U16 HとU16 Lをそれぞれ8ビット値U16の上位4ビットと下位4ビットとして、U16 H○R’L=(U16○R’の上位4ビット)○R’L○R’H、U-17○R’L=(U-17○dr)○R’L○dr、U16 L○R’L=(U16○R’の下位4ビット)の3つのデータを計算する演算回路群と、
  J1=(U16 H○R’L)◎(U-17○R’L)
  J2=((U16 H○R’L)○(U-17○R’L)○R’L)◎R’L
  J3=(U16 L○R’L)◎(U-17○R’L)
  J4=((U16 L○R’L)○(U-17○R’L)○R’L)◎R’L
  J0=((J1○J2)||(J3○J4))○fr
の演算又はこれと等価な演算を実行する演算回路群とから構成され、J0をU-1○frとして出力する。
 上述の本発明の第1、第2、第3、第6、又は第7、8の何れかの態様において、非線型変換における乗算処理は、GF(28)で表される2進体において実行されるように構成することができる。このとき、2進体GF(28)は、例えば多項式x8+x4+x3+x+1の剰余で表される。
 また、上述の第1~第11の何れかの態様において、非線型変換における乗算処理は、GF(((22)2)2)で表される合成体において実行されるように構成することができる。このとき、合成体GF(((22)2)2)は、例えば多項式GF((24)2)=x2+x+(1100)2,GF((22)2)=x2+x+(10)2,GF(22)=x2+x+1の剰余で表される。
 本発明は、上述の第1乃至第11の何れかの態様による暗号化装置を組み込んだ組込装置として実施することもできる。
共通鍵暗号処理の一般的な構成を表す図である。 一般的に知られているAES暗号アルゴリズムの構成である。 一般的に知られているAESにおけるRoundKey処理である。 一般的に知られているAESにおけるSubbyte処理である。 一般的に知られている AESにおけるMixColumn処理である。 一般的に知られている AESにおけるShiftRow処理である。 DPA対策無しの一般的な共通鍵暗号における拡大鍵XOR処理である。 DPA対策無しの一般的な共通鍵暗号における線形変換処理である。 DPA対策無しの一般的な共通鍵暗号における非線形変換処理である。 図7と図9を組み合わせた処理である。 図10の処理についてwjの入出力に関係するビットを取り出した図である。 スマートカードの消費電力の例である。 電力差分曲線を作成し、スパイクが出現した例である。 電力差分曲線を作成し、スパイクが出現しなかった例である。 図7と図8と図9と組み合わせた構成である。 DPAにより秘密鍵解読を行うための、消費電力測定箇所に関する条件である。 ゼロ乗算SPAによる攻撃可能な暗号回路の第一の構成を表す図である。 ゼロ乗算SPAによる攻撃可能な暗号回路の第二の構成を表す図である。 一般的なDPA対策なしのAES回路を表す図である。 図18のDPA対策なしAES回路に対し、従来例1のDPA対策を適用した回路である。 図18のDPA対策なしAES回路に対し、従来例2のDPA対策を適用した回路である。 一般的なAESのSbox回路の構成を表す図である。 テーブルを用いた一般的な逆元計算回路を表す図である。 従来例3に記されている、合成体を用いた逆元計算回路である。 従来例2と従来例3の単純な組み合わせによる逆元計算回路である。 ゼロ乗算SPAに安全な処理を実現するための、乗算器に対する入力データの条件であり、本発明の基本アイデアを導出するための着眼点を表した図である。 本発明の基本アイデアによる乗算回路を表す図である。 本発明による乗算回路の第一の構成図である。(基本原理-1) 本発明による乗算回路の第二の構成図である。(基本原理-2) 本発明による乗算回路の第三の構成図である。(基本原理-3) 本発明による乗算回路の第四の構成図である。(基本原理-4) 本発明の技術を用いた逆元計算処理のフレームワークを表す図である。 masked U16×U計算に基本原理-1を用いる場合の第1の実施形態である。 masked U16×U計算に基本原理-2を用いる場合の実施形態第2の実施形態である。 masked U-17×U16計算に基本原理-1を用いる場合の第3の実施形態である。 masked U-17×U16計算に基本原理-3を用いる場合の第4の実施形態である。 図36は、masked U-17×U16計算に基本原理-4を用いる場合の第5の実施形態である。
 以下、図面を参照しながら、本発明を実施するための最良の形態を詳細に説明する。
本発明の基本原理
 本発明は、「背景技術」において指摘した課題1,2,3を全て解決したAES暗号処理装置を実現する。そのために、以下の(条件-1), (条件-2), (条件-3), (条件-4)を満たした処理を行う。

(条件-1) AESのSubbyte処理以外について、従来例2による処理を行う。
(条件-2) AESのSubbyte処理は、合成体による逆元演算をSPA,DPAに安全な方法で実行。
(条件-3) (条件-2)の合成体演算におけるテーブル処理は、従来例2による処理を行う。
(条件-4) (条件-2)の合成体演算における乗算には、常に乱数値マスク化データを入力。

 (条件-1)を導入することで、AESのSubbyte処理以外について、課題1、課題2、課題3を同時に解決する。なぜなら、従来例2の唯一の問題であった課題1は、Subbyte回路に関してのみの課題であるため、Subbyte処理に従来例2を用いなければこれらの課題は全て解決される。後は、AESのSubbyte処理に関して課題1,2,3を解決できるならば、AES処理全体として全ての課題を解決できる。
 (条件-2)を導入することで、AESのSubbyte処理に関して、課題1を解決する。Subbyte処理において回路規模が大きい逆元演算を、図23に示すような従来例3の合成体による処理に置き換えることで、回路規模の削減を実現する。ただし、従来例3の合成体の演算をそのまま用いた場合、SPA, DPAに対して安全ではないため、課題3が未解決である。また、SPA,DPA対策を行う場合についても、課題2をクリアする必要がある。
 (条件-3)は、図23に示す合成体を用いた逆元演算のうち、テーブル演算については、従来例2によるテーブル演算を行う。つまり、q個の事前計算テーブルを準備し、そのうちの一つを乱数により選択する方法を用いる。q個の事前計算テーブルを必要とするため、課題1に示される問題の発生が危惧されるが、8ビット入出力テーブルによる逆元演算ではなく、合成体による4ビット入出力テーブル演算であるので、個々のテーブルの回路規模を8ビット入出力テーブルの1/64に抑えることができるため、課題1の問題は発生しない。よって、 図23におけるテーブル演算に関しては課題1,2,3全てを解決できる。もし、このテーブル演算処理を従来例1の方法で実行する場合、乱数に応じてテーブルを更新する必要がある。4ビットテーブルの更新は16cycleを必要とする。一般的にテーブル演算は1cycleで実行されるため、このテーブル更新によるペナルティは処理速度を大きく低下させ、課題2に示される問題が発生する。
 (条件-4)は、図23に示す合成体を用いた逆元演算のうち、乗算に関するSPA,DPA対策法の方針である。前述の(ZSPA-sec)で述べたように、乗算処理に入力するデータは、全て乱数値マスク化データとすることで、ゼロ乗算SPA対策となる。また乱数値マスク化データを用いることで、乗算に関するDPA対策法も同時に実行できる。よって、課題3を解決する。また乱この乗算処理は1cycleで実行することができ、乱数に応じてテーブルを更新する処理のような処理速度に関するペナルティを発生しないため、課題2を解決する。
 本発明は、以上の(条件-1)~(条件-4)を全て満たしたAES処理を実行する。これらの条件を全て満たすための基本方針は、合成体の逆元演算における乗算処理のみに対して、乱数値マスクを用いたマスク処理を実行し、それ以外の処理については固定値マスクを用いたマスク処理を実行することである。これを実現するための基本アイデアを以下で述べる。
<課題を解決するための基本アイデア>
 乗算処理のみ乱数値マスク化データによる処理を行い、それ以外を固定値マスク化データによる処理を行うための、本発明の基本アイデアを図26に示す。
 従来例の場合、図26の上段に示すように、乗算器の片方、もしくは両方の入力が固定値マスク化データである。これに対し、本発明では、図26下段に示すように、固定値マスク化データに対して、乱数値マスクをXORすることで、固定値マスク化データを乱数値マスク化データに変換する。つまり、固定値マスクprによりマスク化されたデータX○prは固定値マスク化データであるが、このデータに対してさらに乱数RをXORするとX○R○prとなる。Rが任意の8-bit値をとり得る乱数値ならば、R’=R○prで表されるR’も同様に任意の8-bit値をとり得る乱数値であるので、X○R○pr=X○R’は乱数値マスク化データとなる。
 固定値マスクqrによりマスク化されたデータY○qrに対しても同様に乱数SをXORすることで、 Y○S○qr=Y○S’は乱数値マスク化データとなる。これらの乱数値マスク化データに対して、(X○R’)◎(Y○S’)の乗算を行う、つまり乗算器の2つの入力ともに乱数値マスク化データであるので、本発明の方式はSPA,DPAに対して安全な処理を実現する。ただし、この乗算の結果出力されるデータも乱数値マスク化データである。(条件-1)に示すように、本発明はSubbyte処理以外は従来例2による処理、つまり固定値マスク値化データによる処理を行う必要がある。よって、乱数値マスク化データ同士を乗算した結果、出力される乱数値マスク化データを固定値マスク化データに変換する必要がある。この処理は、図26の乱数値マスク-固定値マスク変換処理回路によって実行される。
 図26は本発明における乗算処理のアイデアを抽象的に表現したものであり、具体的な演算方法は様々な方法が考えられる。合成体を用いた逆元演算処理においては、U17=U16◎UとU-1=U-17◎U16の2種類が実行されるが、本発明の乗算処理がこれらの2種類のいずれかを実行するかによって、R,Sの与え方、及び乱数値マスク-固定値マスク変換処理の計算方法が異なる。これら2種類の両方、もしくはいずれかの乗算処理に適用可能な本発明の乗算方式、以下の(基本原理-1)、(基本原理-2)、(基本原理-3)、(基本原理-4)に示す。(基本原理-1)、(基本原理-2)、(基本原理-3)、(基本原理-4)の技術が適用可能な乗算の種類(U17=U16◎U及びU-1=U-17◎U16)の対応表を表2に示す。
 以下の(基本原理-1)~(基本原理-4)の説明においては、PA対策無しの通常のAES処理で計算されるデータをX,Y、乱数値マスクをR,S、固定値マスクをfrと記述する。R’=R○pr,S’=S○qrのように、固定値マスクに乱数をXORした乱数値マスクをR’,S’と表記している。
[基本原理-1]
U17=U16◎UとU-1=U-17◎U16の両方の乗算に適用可能な方法である。(図27)
J1 =  (X○R’)◎(Y○S’)
J2 =  S’ ◎(X○R’) 
J3 =  R’ ◎(Y○S’)
J4 =  R’ ◎S’

ただし、U17=U16◎UならX,Y,R’,S’は8-bit、U-1=U-17◎U16ならX,R’は8-bit, Y,S’は4-bitである。
J1,J2,J3,J4を計算し、J0 = J1○J2○J3○J4○frによりJ0=X◎Y○frを得る。基本原理-1によりX◎Y○frを計算する回路を、記号としてMaskedMul_1(X○R’, Y○S’,R’,S’,fr)により表現する。また、(law-1)~(law-3)を考慮すると、

J1 =  X◎Y○ X◎S’ ○ Y◎R’○ R’◎S’
J2 =  S’ ◎X○ S’ ◎ R’ 
J3 =  R’ ◎Y○ R’ ◎S’
J4 =  R’ ◎S’

であるので、J0 = J1○J2○J3○J4○fr= X◎Y○frを確認できる。
J1~J4の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通り。

-U17=U16◎Uの場合:8-bit´8-bit乗算4回、
-U-1=U-17◎U16の場合:8-bit´4-bit乗算4回(もしくは4-bit´4-bit乗算8回)。

基本原理-1は(law-1)~(law-3)に基づいているため、任意の2進体と合成体の演算に適用可能である。
[基本原理-2]
 基本原理-1によるPA対策を用いた場合、PA対策なしにおける1回の乗算が4回の乗算に置き換えられる。この乗算回数の増加は、PA対策に伴うオーバヘッドとなる。よって、この置き換え後の乗算回数を減らすことが、PA対策に伴うオーバヘッドを減少させることになる。このオーバヘッドの減少を行うために、基本原理-1におけるS’に関して、S’=R’による特殊化を行ったものが(基本原理-2)である。この特殊化を行うことで、演算処理が簡略化されるため、PA対策なしにおける1回の乗算が2回の乗算に置き換えられる。
 ただし、S’=R’による特殊化は、S’とR’のデータビット長が等しい場合のみ可能である。よって、PA対策なしにおける乗算の2つの入力データのビット長が等しい場合のみ(基本原理-2)を適用できる。つまり、U17=U16◎Uに示される8-bit´8-bit乗算のみに対して適用可能な方法であり(図28)、U-1=U-17◎U16に示される8-bit´4-bit乗算には適用できない。

J1 =  (X○R’)◎(Y○R’)
J2 =  R’ ◎( (X○R’) ○(Y○R’) ○R’) 

ただし、X,Y,R’は8-bitである。J1,J2を計算し、J0 = J1○J2○frによりJ0=X◎Y○frを得る。基本原理-2によりX◎Y○frを計算する回路を、記号としてMaskedMul_2(X○R’,Y○R’,R’,fr)により表現する。また(law-1)~(law-3)を考慮すると、

J1 =  X◎Y ○ X◎R’ ○ Y◎R’ ○ R’2
J2 =  X ◎R’ ○ Y’ ◎ R’ ○R’2

であるので、J0 = J1○J2○fr= X◎Y○frを確認できる。
J1,J2の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通り。

- U17=U16◎Uの場合:8-bit´8-bit乗算2回

基本原理-2は(law-1)~(law-3)に基づいているため、任意の2進体と合成体の演算に適用可能である。
[基本原理-3]
 基本原理-2を用いることで、本発明1よりPA対策に伴う乗算回数のオーバヘッドを減少させることができるが、その技術を適用可能となるのはU17=U16◎Uに示される8-bit´8-bit乗算のみであり、U-1=U-17◎U16に示される8-bit´4-bit乗算には適用できなかった。この問題を改善するために、U-1=U-17◎U16に示す8-bit´4-bit乗算には適用可能であり、かつ基本原理-1より乗算回数のオーバヘッドを低減させる方法が以下に示す基本原理-3である。
 基本原理-2の基本的な考え方は、Xの乱数値マスクR’とYの乱数値マスクS’について、S’=R’による共通化を行うことで計算を簡略化することであった。この考え方はX,Yのビット長が等しい場合のみに可能であるが、ビット長が異なる場合はS’=R’とすることが不可能である。よって、ビット長が異なる場合、2つの乱数値マスクを同一とさせることは不可能であるが、部分的に一致させることは可能である。つまり、R’を8-bit, S’を4-bitとした場合、R’=R’H||R’Lのように、R’を上位4-bit値R’Hと下位4-bit値R’Lに分けた場合、S’=R’Lとすることで、乱数値マスクを部分的に一致させることができる。この考え方を用いることで、基本原理-1より乗算回数のオーバヘッドを低減し、U-1=U-17◎U16に示される8-bit´4-bit乗算に適用可能な方式を以下に示す(図29)。

J1 = (X○R’)◎(Y○R’)
J2 = (Y○R’H) ◎R’H○ R’H 2
J3 = ((X○R’ ) ○ (Y○R’L) ○R’L) ◎ R’L

ただし、X,R’は8-bit, Y, R’H, R’Lは4-bitであり、R’=R’H||R’Lである。J1,J2,J3を計算し、J0 = J1○(J2 || (0000)2 )○J3○frによりJ0=X◎Y○frを得る。基本原理-3によりX◎Y○frを計算する回路を、記号としてMaskedMul_3(X○R’,Y○R’H,Y○R’L,R’H,R’L,fr)により表現する。また、(law-1)~(law-4)を考慮すると、

J1= (XH ○ R’H) ◎ (Y○R’L) || (XL○R’L) ◎ (Y○R’L)
  = (XH ◎ Y ○ XH◎R’L○ Y◎R’○ R’ H◎R’L) || (XL ◎ Y ○ XL◎R’L○ Y◎R’L○ R’ H◎R’L 2
J2 || (0000)2  = (Y ◎R’H) || (0000)2
J3= (XH ○ R’H) ◎R’L || (XL○R’L○Y○R’L○ R’L) ◎R’L
  = (XH◎R’L ○ R’ H◎R’L) || (XL ◎ R’L○ YL◎R’L○ R’L 2)

である。ただし、XH, XLはX=XH||XLを満たす4-bit値である。よって、J0 = J1○(J2 || (0000)2 )○J3○f= ( (XH◎Y) || (XL◎Y) )○ frであるが、(law-4)より、X◎Y= ( (XH◎Y) || (XL ◎ Y) )を考慮すると、J0 = J1○(J2 || (0000)2 )○J3○f=X◎Y○frを導出できる。

J1,J2,J3の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通りである。

-U17=U16◎Uの場合:8-bit´4-bit乗算2回、4-bit´4-bit乗算1回、4-bit´4-bit自乗算1回。

さらに、8-bit´4-bit乗算1回は4-bit´4-bit乗算2回に相当すること、4-bit´4-bit自乗算1回は4-bit´4-bit乗算1回よりコストが安い演算(つまり、4-bit´4-bit乗算では1回未満のコスト)ことを考慮すると、基本原理-3に必要な乗算回数は以下のようにも表現できる。

-U17=U16◎Uの場合:8-bit´4-bit乗算φ回 (2.5<φ<3)

基本原理-3は(law-1)~(law-4)に基づいているため、βγ=2を満たす合成体GF((…(2β1)…)βγ)の演算に対して適用可能である。
[基本原理-4]
 U-1=U-17◎U16に示される8-bit´4-bit乗算に関して、基本原理-1の場合4回の8-bit´4-bit乗算を必要とするのに対して、基本原理-3を用いることでφ回の8-bit´4-bit乗算(2.5<φ<3)まで減少させることに成功した。8-bit´4-bit乗算の性質を利用することで、この乗算回数をさらに減少させることができる方法が基本原理-4である。(law-4)より、8-bit´4-bit乗算は2つの4-bit´4-bit乗算に分解できる。基本原理-4では、これら個々の4-bit´4-bit乗算に入力される2つのデータに対し、(基本原理-2)と同様に、同一の乱数値のXORを行う(図30)。

J1 = (XH ○ R’L) ◎ (Y○R’L
J2 = ( (XH○R’L) ○ (Y○R’L) ○ R’L) ◎R’L
J3= (XL ○ R’L) ◎ (Y○R’L)
J4= ( (XL○R’L) ○ (Y○R’L) ○ R’L) ◎ R’L

ただし、Xは8-bit、XH, XL, Y, R’Lは4-bitであり、X=XH||XLである。J1,J2,J3,J4を計算し、J0 = ( (J1○J2) || (J3○J4) ) ○frによりJ0=X◎Y○frを得る。 (law-1)~(law-4)を考慮すると、

J1○J2=(XH ○ R’L) ◎ (Y○R’L) ○(XH○R’L○Y○R’L○ R’L) ◎R’L
= XH◎Y ○ XH◎R’L○ Y◎R’L ○ R’L 2 ○ XH◎R’○ Y◎R’L ○ R’L = XH◎Y

J3○J4=(XL ○ R’L) ◎ (Y○R’L) ○(XL○R’L○Y○R’L○ R’L) ◎R’L
= XL◎Y ○ XL◎R’L○ Y◎R’L ○ R’L 2 ○ XL◎R’○ Y◎R’L ○ R’L = XL◎Y

である。基本原理-4によりX◎Y○frを計算する回路を、記号としてMaskedMul_4(XH○R’L,XL○R’L,Y○R’L, R’L,fr)により表現する。(law-4)から、X◎Y= ( (XH◎Y) || (XL◎ Y) )であるので、J0 = ( (J1○J2) || (J3○J4) ) ○f=X◎Y ○ frを確認できる。

J1,J2,J3,J4の乗算処理への入力データは全て乱数値マスク化データであるため、SPA,DPAに対して安全な処理を実現できる。この処理に必要となる乗算の回数は以下の通りである。

-U17=U16◎Uの場合: 4-bit´4-bit乗算4回(8-bit´4-bit乗算2回と等価)。

 基本原理-4は(law-1)~(law-4)に基づいているため、βγ=2を満たす合成体GF((…(2β1)…)βγ)の演算に対して適用可能である。
本発明の各実施形態の構成
 基本原理-1, 基本原理-2, 基本原理-3, 基本原理-4に記した本発明の技術を、図23に示した従来例3に示した逆元演算に適用した実施形態を以下に示す。以下の実施形態の説明では、図31に示すように、逆元演算の処理のコア部分、つまり合成体の計算部分に対して本発明を用いた場合の実施形態を示す。本発明の実施形態において説明する逆元演算では、共通して以下のI~IVのステップを実行する。

i.逆元演算回路はGF(28)の元T○prを入力することで、GF(28)の元T-1○qrを計算し出力する回路である。ただし、pr,qrは乱数rによって選択される固定値マスクを表す。

ii.入力されたGF(28)の元T○grにδ変換を行い、δ(T○pr)=δ(T)○δ(pr)=U○grを計算する。ただし、grは乱数rによって選択される固定値マスクであり、gr=δ(pr)を満たす。

iii.U○grに対して、乗算とテーブル演算を組み合わせた演算を行うことで、U○grから、U-1○frを計算する。ただし、frは乱数rによって選択される固定値マスクを表す。

iv.U-1○frに対して、δ-1変換を行うことでδ-1(U-1○fr)=δ-1(U-1)○δ-1(fr)=T-1○qrを計算する。ただし、qrとfrの間には、δ-1(fr)= qrの関係式が成立する。
 以下では、上記のi~ivのステップのうち、iiiに記した逆元演算のステップに関して、基本原理-1, 基本原理-2, 基本原理-3, 基本原理-4に記した本発明の技術を適用することで、SPA,DPA対策を実現する実施形態について説明する。
 iiiの計算を実行するためのフレームワークを図31に示す。
 図31の計算は、「masked U16◎U計算」、「masked U-17◎U16計算」2つの乗算処理から構成される。これらは、データのマスク処理を実行しながら乗算処理を行う回路であり、それぞれ以下の機能を有する。
masked U 16 ◎U計算
 この回路の基本機能は、U○grを入力することで、U17○crを計算し出力することである。ただし、cr,grは乱数rによって選択される固定値マスクであり、crは4-bit, grは8-bitである。この固定値マスクcr, grはこの回路に対する入力として与える。この回路内部で乱数値マスク化されたデータによる乗算を実行するために、乱数Rを入力として与える。また、U16○R’, R’で表される2つのデータを出力し、masked U-17◎U16計算への入力として与える。R’として出力される値は、この回路の実施形態によって異なり、基本原理-1の乗算回路を用いた[第1の実施形態]の場合R’=R16であり、基本原理-2の乗算回路を用いた[第2の実施形態]の場合R’=Rである。[第1の実施形態][第2の実施形態]の詳細については、後に述べる。
masked U -17 ◎U 16 計算
 この回路の基本機能は、U-17○dr及びU16○R’、乱数R’を入力することで、U-1○frを計算し出力することである。ただし、dr,frは乱数rによって選択される固定値マスクであり、drは4-bit, frは8-bitである。この固定値マスクdr, frはこの回路に対する入力として与える。
 図31は、入力データU○grから出力データU-1○frを計算する処理である。この計算処理全体の流れを説明する。
 masked U16◎U計算により、8-bit値U○grから4-bit値U17○crを計算する。このU17○crに対し、乱数rによって選択された4-bita4-bit変換テーブルI’r[x]を用いてU-17○drを計算する。GF(((22)2)2)の元における4-bita4-bit逆元変換テーブルをI[x]=x-1と表した場合、I’h[x]はh-0,1,..,q-1全てに関して、I’h[x]=I[x○ch] ○dhで与えられる変換を行うテーブルである。U17○crに対しI’r[x]による変換を行うことで、I’[U17○cr] = I[(U17○cr)○cr]○d= I[U17]○d= (U17)-1○d= U-17○drを計算することができる。このデータは、masked U-17◎U16計算に対する2つの入力データの1番目の入力となる。
 masked U-17◎U16計算に対する2番目の入力データとして、U16○R’の計算を行う。後に述べる[第1の実施形態]の場合、U16○R’は、masked U16◎U計算の過程において計算される(U○R)16=U16○R16のデータを用いるため、R’=R16となる。後に述べる[第2の実施形態]の場合、masked U16◎U計算の過程において計算されるU16○Rの値を用いるため、R’=Rとなる。
 なお、(U○R)16=U16○R16が成立する理由は、16乗演算は2乗演算を4回繰り返す演算であり、かつ1回の2乗演算の結果は(law-3)を考慮すると(U○R)2=U2○2U◎R○R2=U2○R2、つまり整数kに対してUk○Rkの形式を満たすからであり、よって、16乗の場合U16○R16となる。
 以上により、U-17○drとU16○R’の計算を行った後、これらの値をmasked U-17◎U16計算に対する2つの入力データとして与えることで、U-1○frを得る。
 上記における、「masked U16◎U計算」、「masked U-17◎U16計算」に対して、基本原理-1、基本原理-2、基本原理-3、基本原理-4に記した、本発明の回路を用いることで、SPA,DPAに対して安全な処理を実現することができる。以下では、「masked U16◎U計算」、「masked U-17◎U16計算」に対して、基本原理-1、基本原理-2、基本原理-3、基本原理-4を適用した結果の実施形態を示す。
 図32は、基本原理-1の乗算回路を用いてmasked U16◎Uを計算する本発明の第1の実施形態の構成図である。入力データgr, U○gr, Rから、U○R= (U○gr) ○R○gr、U16○R16= (U○R)16、R16の3つのデータを計算する。その後、基本原理-1のMaskMul_1回路を用いて、U17○cr= MaskMul_1(U○R, U16○R16, R, R16, cr)によりU17○crを計算する。この計算過程で発生したU16○R16とR16を、それぞれU16○R’, R’として出力する。
 図33は、基本原理-2の乗算回路を用いてmasked U16◎Uを計算する第2の実施形態の構成図である。入力データgr, U○gr, Rから、U○R= (U○gr) ○R○gr、U16○R= (U○R)16○R○R16の2つのデータを計算する。その後、基本原理-2のMaskMul_2回路を用いて、U17○cr=MaskMul_2(U○R, U16○R, R, cr)によりU17○crを計算する。この計算過程で発生したU16○RとRを、それぞれU16○R’, R’として出力する。
 図34は、基本原理-1の乗算回路を用いてmasked U-17◎U16を計算する本発明の第3の実施形態の構成図である。入力データU-17○dr, dr, U16○R’, R’,fr及び内部で発生させた乱数Sから、U-17○S○dr= (U-17○dr)○S、S○drの2つのデータを計算する。その後、基本原理-1のMaskMul_1回路を用いて、U-1○fr=MaskMul_1(U-17○S○dr, U16○R, S○dr, R’, fr)によりU-1○frを計算する。
 図35は、基本原理-3の乗算回路を用いてmasked U-17◎U16を計算する本発明の第4の実施形態の構成図である。入力データU-17○dr, dr, U16○R’ , R’、及び8-bit乱数R’の上位4-bitであるR’H, 下位4-bitであるR’Lを用いて、U16○(dr||dr) ○R’, U-17○dr○R’L, dr○RL’, U-17○dr○R’H, dr○R’Hの5つのデータを計算する。その後、基本原理-3のMaskMul_3回路を用いて、U-1○fr=MaskMul_3(U16○(dr||dr)○R’, U-17○dr○R’H, U-17○dr○R’L, dr○R’H, dr○R’L, fr)によりU-1○frを計算する。
 図36は、基本原理-4の乗算回路を用いてmasked U-17◎U16を計算する本発明の第5の実施形態の構成図である。入力データU-17○dr, dr, U16○R’ r, fr, R’、及び8-bit乱数R’の上位4-bitであるR’H, 下位4-bitであるR’L、を用いて、U16 H○R’L=(U16○R’の上位4-bit) ○R’L○R’H、U-17○R’L= (U-17○dr) ○R’L○dr、U16 L○R’L=(U16○R’の下位4-bit)の3つのデータを計算する。ただし、U16 HとU16 Lは、それぞれ8-bit値U16の上位4-bitと下位4-bitを表す。その後、基本原理-4のMaskMul_4回路を用いて、U-1○fr=MaskMul_4(U16 H○R’L, U16 L○R’L, U-17○R’L, R’L, fr)によりU-1○frを計算する。
本発明の各実施形態の効果
 本発明の技術を用いたAES暗号処理装置は、「本発明の基本原理」に記した(条件-1), (条件-2), (条件-3), (条件-4)を満たすので、従来例1,2,3が解決できなかった課題1,2,3を全て解決できる。つまり、従来例では不可能であった、小さな回路規模(課題1の解決)、高速な処理速度(課題2の解決)、SPA,DPAに安全な処理(課題3の解決)の3点を全て満たしたAES暗号処理装置を実現することができる。従来例1,2,3と本発明の比較を表3に示す。
 また、本発明の技術を用いることで、AESのみならず、合成体を用いた乗算処理を行う共通鍵暗号全般に対して、課題1,2,3を解決した暗号処理装置を実現することができる。例えば、128-bit共通鍵ブロック暗号アルゴリズムであるCLEFIA(http://www.sony.co.jp/Products/clefia/technical/data/clefia-spec-1.0.pdf) に対しても、本発明を適用できる。
 本発明の技術を実現するための基本的な乗算回路は、基本原理-1、基本原理-2、基本原理-3、基本原理-4の4種類であり、それぞれの回路に必要となる8-bit´4-bit乗算の回数を表4に示す。
 本発明の乗算回路は、「masked U16◎U計算」「masked U-17◎U16計算」の2つの計算に対し、[第1の実施形態]~[第5の実施形態]のうちのどの実施形態を適用するかに応じて、必要となる8-bit´4-bit乗算の乗算回数が変化する。この乗算回数は、実施形態のベースとなる基本原理-1~基本原理-4それぞれに必要となる乗算回数の合計で評価される。評価結果を表5に示す。
 表5の評価においては、16乗の演算回数が含まれていないが、これは、GF(((22)2)2)の16乗演算は、非常に小さな回路規模で実現できる特殊な演算であるからである。具体的には、Xに対する16乗演算結果X16はXの上位4-bit XH, 下位4-bit XLを用いて、X16=XH || (XL○XH)のように4-bitXOR演算のみで演算可能であり、これは乗算回路の回路規模と比較して非常に小さいため無視できる大きさである。

Claims (18)

  1.  非線型変換を2進体又は合成体における乗算処理で演算する共通鍵ブロック暗号化装置であって、
     前記非線型変換以外の演算処理を、固定値によるマスク(以下「固定値マスク」)をエクスクルーシブオア演算(以下「XOR」)して得た固定値マスク化入力データにより実行する演算器と、
     前記非線型変換における乗算処理において、
     全ての入力データに固定値マスクをXORして固定値マスク化入力データに変換し、更に乱数値によるマスク(以下「乱数値マスク」)をXORして乱数値マスク化入力データに変換するXOR演算回路と、
     該XOR演算回路から出力された乱数値マスク化入力データに基づいて前記乗算処理を実行する乗算器と、
     該乗算器から出力される乱数値マスク化出力データを固定値マスク化出力データ再変換して出力する乱数値マスク-固定値マスク変換回路と、
     を含むことを特徴とする暗号化装置。
  2.  前記乗算処理は、
     前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○pr,S’=S○qrのように固定値マスクに乱数をXORした乱数値マスクをR’,S’として、
      J1=(X○R’)◎(Y○S’)
      J2=S’◎(X○R’)
      J3=R’◎(Y○S’)
      J4=R’◎S’
      J0=J1○J2○J3○J4○fr
    を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
     ことを特徴とする請求項1に記載の暗号化装置。
  3.  前記乗算処理は、
     前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○prのように固定値マスクに乱数をXORした乱数値マスクをR’として、
      J1=(X○R’)◎(Y○R’)
      J2=R’◎((X○R’)○(Y○R’)○R’)
      J0=J1○J2○fr
    を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
     ことを特徴とする請求項1に記載の暗号化装置。
  4.  前記乗算処理は、βγ=2を満たす合成体GF((…(2β1)…)βγ)における演算であり、
     前記乗算処理は、
     前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○pr,S’=S○qrのように固定値マスクに乱数をXORした乱数値マスクをR’,S’とし、R’H及びR’LをそれぞれR’を上位及び下位に半分ずつ分割した場合のビット値とし、J2||(0000)2をJ2の下位側にそれと同じビット数のゼロビット列を結合する演算として、
      J1=(X○R’)◎(Y○R’L)
      J2=(Y○R’H)◎R’H○R’H 2
      J3=((X○R’)○(Y○R’L)○R’L)◎R’L
      J0=J1○(J2||(0000)2)○J3○fr
    を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
     ことを特徴とする請求項1に記載の暗号化装置。
  5.  前記乗算処理は、βγ=2を満たす合成体GF((…(2β1)…)βγ)における演算であり、
     前記乗算処理は、
     前記非線形変換における乗算処理の入力データをX,Y、乱数値マスクをR,S、固定値マスクをfr、○をXOR演算回路、◎を乗算器とし、R’=R○pr,S’=S○qrのように固定値マスクに乱数をXORした乱数値マスクをR’,S’とし、R’H及びR’LをそれぞれR’を上位及び下位に半分ずつ分割した場合のビット値とし、X’H及びX’LをそれぞれX’を上位及び下位に半分ずつ分割した場合のビット値として、
      J1=(XH○R’L)◎(Y○R’L)
      J2=((XH○R’L)○(Y○R’L)○R’L)◎R’L
      J3=(XL○R’L)◎(Y○R’L)
      J4=((XL○R’L)○(Y○R’L)○R’L)◎R’L
      J0=((J1○J2)||(J3○J4))○fr
    を演算して出力J0=X◎Y○frを演算する演算回路又はこれと等価な演算回路によって構成される、
     ことを特徴とする請求項1に記載の暗号化装置。
  6.  請求項2又は3の何れか1項に記載の前記乗算処理の演算回路を用いて、2進体もしくは合成体におけるU16◎Uの乗算を実行する、
     ことを特徴とする暗号化装置。
  7.  請求項2、4、又は5の何れか1項に記載の前記乗算処理の演算回路を用いて、2進体もしくは合成体におけるU-17◎U16の乗算を実行する、
     ことを特徴とする暗号化装置。
  8.  4ビットのcr,8ビットのgr,4ビットのdr,及び8ビットのfrをそれぞれ乱数rによって選択される固定値マスクとし、8ビットのR、R’を乱数値マスクとして、8ビットの入力データU○grから8ビットの出力データU-1○frを、βγ=2を満たす合成体GF((…(2β1)…)βγ)において演算する共通鍵ブロック暗号化装置であって、
     乱数値マスクをXORさせて実行するU16◎U計算により、前記入力データU○grから4ビット値U17○crを計算すると共に、それぞれ8ビットのU16○R’及びR’を計算するmaskedU16◎U計算回路と、
     該maskedU16◎U計算回路から出力される前記U17○crから4ビットのU-17○drを計算する、乱数rによって選択された4ビット対4ビット変換テーブル回路と、
     前記4ビット対4ビット変換テーブル回路から出力されるU-17○drと前記maskedU16◎U計算回路から出力されるU16○R’及びR’をそれぞれ入力し、前記出力データU-1○frを計算するmaskedU-17◎U16計算回路と、
     を含むことを特徴とする暗号化装置。
  9.  前記maskedU16◎U計算回路は、
     前記固定値マスクgr,、前記入力データU○gr、及び前記乱数値マスクRを入力して、
     U○R=(U○gr)○R○gr、U16○R16=(U○R)16、及びR16の3つのデータを計算する演算回路群と、
      J1=(U○R)◎(U16○R16)
      J2=R16◎(U○R)
      J3=R◎(U16○R16)
      J4=R◎R16
      J0=J1○J2○J3○J4○cr
    の演算又はこれと等価な演算を実行する演算回路群と、
     を含み、
     前記J0を前記U17○crとして前記4ビット対4ビット変換テーブル回路へ入力させ、前記U16○R16及び前記R16を前記U16○R’及び前記R’として前記maskedU-17◎U16計算回路に入力させる、
     ことを特徴とする請求項8に記載の暗号化装置。
  10.  前記maskedU16◎U計算回路は、
     前記固定値マスクgr,前記入力データU○gr、及び前記乱数値マスクRを入力して、
     U○R=(U○gr)○R○gr及びU16○R=(U○R)16○R○R16の2つのデータを計算する演算回路群と、
      J1=(U○R)◎(U16○R)
      J2=R◎((U○R)○(U16○R)○R)
      J0=J1○J2○cr
    の演算又はこれと等価な演算を実行する演算回路群と、
     を含み、
     前記J0を前記U17○crとして前記4ビット対4ビット変換テーブル回路へ入力させ、前記U16○R及び前記Rを前記U16○R’及び前記R’として前記maskedU-17◎U16計算回路に入力させる、
     ことを特徴とする請求項8に記載の暗号化装置。
  11.  前記maskedU-17◎U16計算回路は、
     前記4ビット対4ビット変換テーブル回路から出力されるU-17○dr、前記固定値マスクdrとfr、前記maskedU16◎U計算回路から出力されるU16○R’,R’、及び内部で発生させた乱数Sを入力して、
     U-17○S○dr=(U-17○dr)○S、及びS○drの2つのデータを計算する演算回路群と、
      J1=(U-17○S○dr)◎(U16○R’)
      J2=R’◎(U-17○S○dr)
      J3=(S○dr)◎(U16○R’)
      J4=(S○dr)◎R’
      J0=J1○J2○J3○J4○fr
    の演算又はこれと等価な演算を実行する演算回路群と、
     を含み、
     前記J0を前記U-1○frとして出力する、
     ことを特徴とする請求項8に記載の暗号化装置。
  12.  前記maskedU-17◎U16計算回路は、
     前記4ビット対4ビット変換テーブル回路から出力されるU-17○dr、前記固定値マスクdrとfr、前記maskedU16◎U計算回路から出力されるU16○R’,R’、及びR’の上位4ビットであるR’H、R’の下位4ビットであるR’Lを入力して、
     U16○(dr||dr)○R’,U-17○dr○R’L,dr○R’,U-17○dr○R’H,dr○R’Hの5つのデータを計算する演算回路群と、
      J1=(U16○(dr||dr)○R’)◎(U-17○dr○R’H)
      J2=(U-17○dr○R’H)◎(dr○R’H)○(dr○R’H2
      J3=((U16○(dr||dr)○R’)○(U-17○dr○R’L)○(dr○R’L))◎(dr○R’L)
      J0=J1○(J2||(0000)2)○J3○fr
    の演算又はこれと等価な演算を実行する演算回路群と、
     を含み、
     前記J0を前記U-1○frとして出力する、
     ことを特徴とする請求項8に記載の暗号化装置。
  13.  前記maskedU-17◎U16計算回路は、
     前記4ビット対4ビット変換テーブル回路から出力されるU-17○dr、前記固定値マスクdrとfr、前記maskedU16◎U計算回路から出力されるU16○R’,R’、及びR’の上位4ビットであるR’H,、R’の下位4ビットであるR’L、を入力して、
     U16 HとU16 Lをそれぞれ8ビット値U16の上位4ビットと下位4ビットとして、U16 H○R’L=(U16○R’の上位4ビット)○R’L○R’H、U-17○R’L=(U-17○dr)○R’L○dr、U16 L○R’L=(U16○R’の下位4ビット)の3つのデータを計算する演算回路群と、
      J1=(U16 H○R’L)◎(U-17○R’L)
      J2=((U16 H○R’L)○(U-17○R’L)○R’L)◎R’L
      J3=(U16 L○R’L)◎(U-17○R’L)
      J4=((U16 L○R’L)○(U-17○R’L)○R’L)◎R’L
      J0=((J1○J2)||(J3○J4))○fr
    の演算又はこれと等価な演算を実行する演算回路群と、
     を含み、
     前記J0を前記U-1○frとして出力する、
     ことを特徴とする請求項8に記載の暗号化装置。
  14.  請求項1、2、3、6、7、9、又は10の何れか1項において、前記非線型変換における乗算処理は、GF(28)で表される2進体において実行される、
     ことを特徴とする暗号化装置。
  15.  請求項14において、前記2進体GF(28)は、多項式x8+x4+x3+x+1の剰余で表される、
     ことを特徴とする暗号化装置。
  16.  請求項1乃至13の何れか1項において、前記非線型変換における乗算処理は、GF(((22)2)2)で表される合成体において実行される、
     ことを特徴とする暗号化装置。
  17.  請求項16において、前記合成体GF(((22)2)2)は、多項式GF((24)2)=x2+x+(1100)2,GF((22)2)=x2+x+(10)2,GF(22)=x2+x+1の剰余で表される、
     ことを特徴とする暗号化装置。
  18.  請求項1乃至17の何れか1項に記載の暗号化装置を組み込んだ組込装置。
PCT/JP2008/000837 2008-03-31 2008-03-31 共通鍵暗号機能を搭載した暗号化装置及び組込装置 WO2009122464A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2008/000837 WO2009122464A1 (ja) 2008-03-31 2008-03-31 共通鍵暗号機能を搭載した暗号化装置及び組込装置
EP08720703.1A EP2273472B1 (en) 2008-03-31 2008-03-31 Coder equipped with common key code function and built-in equipment
JP2010505044A JP5229315B2 (ja) 2008-03-31 2008-03-31 共通鍵暗号機能を搭載した暗号化装置及び組込装置
US12/889,096 US8369516B2 (en) 2008-03-31 2010-09-23 Encryption apparatus having common key encryption function and embedded apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/000837 WO2009122464A1 (ja) 2008-03-31 2008-03-31 共通鍵暗号機能を搭載した暗号化装置及び組込装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/889,096 Continuation US8369516B2 (en) 2008-03-31 2010-09-23 Encryption apparatus having common key encryption function and embedded apparatus

Publications (1)

Publication Number Publication Date
WO2009122464A1 true WO2009122464A1 (ja) 2009-10-08

Family

ID=41134886

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/000837 WO2009122464A1 (ja) 2008-03-31 2008-03-31 共通鍵暗号機能を搭載した暗号化装置及び組込装置

Country Status (4)

Country Link
US (1) US8369516B2 (ja)
EP (1) EP2273472B1 (ja)
JP (1) JP5229315B2 (ja)
WO (1) WO2009122464A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175039A (ja) * 2010-02-23 2011-09-08 Toshiba Corp 暗号化装置および復号装置
WO2012131926A1 (ja) * 2011-03-29 2012-10-04 富士通株式会社 暗号処理装置、認証方法およびプログラム
JP2014081569A (ja) * 2012-10-18 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> マスク生成装置、情報処理装置、及びその方法、プログラム
CN109033847A (zh) * 2018-06-11 2018-12-18 安徽工程大学 Aes加密运算单元、aes加密电路及其加密方法
CN109033894A (zh) * 2018-06-11 2018-12-18 安徽工程大学 普通轮变换运算单元、普通轮变换电路及其aes加密电路
CN109033893A (zh) * 2018-06-11 2018-12-18 安徽工程大学 基于合成矩阵的aes加密单元、aes加密电路及其加密方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2494731B (en) 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack
US10142099B2 (en) * 2013-01-11 2018-11-27 Qualcomm Incorporated Method and apparatus for a computable, large, variable and secure substitution box
US20150227472A1 (en) * 2014-02-10 2015-08-13 Kabushiki Kaisha Toshiba Memory system, controller, and method
US9898623B2 (en) 2014-03-31 2018-02-20 Stmicroelectronics S.R.L. Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
US9800406B2 (en) 2014-05-21 2017-10-24 Intel Corporation Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher
KR102376506B1 (ko) * 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
US20160269175A1 (en) * 2015-03-09 2016-09-15 Qualcomm Incorporated Cryptographic cipher with finite subfield lookup tables for use in masked operations
US10210350B2 (en) * 2015-08-10 2019-02-19 Samsung Electronics Co., Ltd. Electronic device against side channel attacks
US9853813B2 (en) 2016-03-17 2017-12-26 Crater Dog Technologies, LLC Method for securing a private key
CN106452725B (zh) * 2016-06-14 2019-05-31 东南大学 一种基于寄存器掩码的面向aes算法的抗功耗攻击方法
CN107547195A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
CN109818732B (zh) * 2019-03-12 2021-05-11 南京航空航天大学 一种动态路径s盒及可防御功耗攻击的aes加密电路
CN110059492B (zh) * 2019-04-01 2023-01-31 南京航空航天大学 一种基于双路互补结构的可检错aes加密电路
US11838403B2 (en) * 2019-04-12 2023-12-05 Board Of Regents, The University Of Texas System Method and apparatus for an ultra low power VLSI implementation of the 128-bit AES algorithm using a novel approach to the shiftrow transformation
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366029A (ja) 2001-06-13 2002-12-20 Fujitsu Ltd Dpaに対して安全な暗号化
JP2006003905A (ja) * 2004-06-19 2006-01-05 Samsung Electronics Co Ltd 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置
JP2006203416A (ja) * 2005-01-19 2006-08-03 Mitsubishi Electric Corp 電子素子及び解読攻撃防御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL94449A (en) * 1990-05-20 1994-06-24 Fortress U & T 2000 Ltd Method and apparatus for exponentiation over gf(2")
KR100594265B1 (ko) * 2004-03-16 2006-06-30 삼성전자주식회사 매스킹 방법이 적용된 데이터 암호처리장치, aes암호시스템 및 aes 암호방법.
US8923510B2 (en) * 2007-12-28 2014-12-30 Intel Corporation Method and apparatus for efficiently implementing the advanced encryption standard

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002366029A (ja) 2001-06-13 2002-12-20 Fujitsu Ltd Dpaに対して安全な暗号化
JP2006003905A (ja) * 2004-06-19 2006-01-05 Samsung Electronics Co Ltd 情報漏れ攻撃を防止するためのガロア体上の乗算方法及び装置、逆変換装置、そしてaesバイト置換演算装置
JP2006203416A (ja) * 2005-01-19 2006-08-03 Mitsubishi Electric Corp 電子素子及び解読攻撃防御方法

Non-Patent Citations (14)

* Cited by examiner, † Cited by third party
Title
"Computer Security Symposium 2004 (CSS2004), 20 October, 2004 (20.10.04)", article SUMIO MORIOKA ET AL.: "Goseitai o Mochiita AES S-Box Kairo ni Taisuru DPA Kogeki", pages: 679 - 684 *
AKASHI SATOH ET AL.: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ADVANCES IN CRYPTOLOGY - ASIACRYPT 2001, LNCS, vol. 2248, 2001, pages 239 - 254, XP007906471, DOI: doi:10.1007/3-540-45682-1 *
AKASHI SATOH; SUMIO MCRI.OKA; KOHJI TAKANO; SEIJI MUNETOH: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ASIACRYPT2001, LNCS, vol. 2248, December 2001 (2001-12-01), pages 239 - 254, XP007906471, DOI: doi:10.1007/3-540-45682-1
AKASHI SATOH; SUMIO MORIOKA; KOHJI TAKANO; SEIJI MUNETOH: "A Compact Rijndael Hardware Architecture with S-Box Optimization", ASIACRYPT2001, LNCS, vol. 2248, December 2001 (2001-12-01), pages 239 - 254, XP007906471, DOI: doi:10.1007/3-540-45682-1
ELENA TRICHINA: "Combinational Logic Design for AES SubByte Transformation on Masked Data", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2003/236, 2003, Retrieved from the Internet <URL:http://eprint.iacr.org/2003/236> *
M.AKKAR; RBEVAN, P; DISCHAMP; D. MOYART: "Power Analysis, What Is Now Possible...", ASIACRYPT, 2000
NOBUYUKI KAWAHATA ET AL.: "AES ni Okeru Goseitai SubBytes Muke Power Masking Josan Kairo no Sekkei", IEICE TECHNICAL REPORT VLD2007-88, vol. 107, no. 335, 14 November 2007 (2007-11-14), pages 37 - 42 *
PAUL KOCHER; JOSHUA JAFFE; BENJAMIN JUN: "proceedings of Advances in Cryptology CRYPTO'99", 1999, SPRINGCR-VERLAG, article "Differential Power Analysis", pages: 388 - 397
S. CHARI; C. JUTLA; J.R. RAO; P. ROHATGI: "An Cautionary Note Regarding Evaluation of AES Candidates on Smart-Cards", SECOND ADVANCED ENCRYPTION STANDARD CANDIDATE CONFERENCE, March 1999 (1999-03-01)
See also references of EP2273472A4 *
T. S. MESSERGE; EZZY A; DABBISH; ROBERT H.SLOAN: "Investigations of Power Attacks on Smartcards", PROCEEDINGS OF USENIX WORKSHOP ON SMARTCARD TECHNOLOGY, March 1999 (1999-03-01)
TAKESHI SHIMOYAMA; HITOSHI YANAMI; KAZUHIRO YOKOYAMA; MASAHIKO TAKENAKA; KOUICHIITOH, JUN; YAJIMA, NAOYA TORII; HIDEMA TANAKA: "The Block Cipher SC2000", FAST SOFTWARE ENCRYPTION, vol. 2355, 2001, pages 312 - 327
THOMAS S.; MESSERGES: "proceedings of Fast Software Encryption Workshop", April 2000, SPRINGER-VERLAG, article "Securing the AES Finalists Against Power Analysis Attacks"
THOMAS S.MESSERGES; EZZY A. DABBISH; ROBERT H.; SLOAN: "Cryptographic Hardware and Embedded Systems(CHES'99)", SPRINGER-VERLAG, article "Power Analysis Attacks of Modular Exponentitiation in Smartcards", pages: 144 - 157

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175039A (ja) * 2010-02-23 2011-09-08 Toshiba Corp 暗号化装置および復号装置
WO2012131926A1 (ja) * 2011-03-29 2012-10-04 富士通株式会社 暗号処理装置、認証方法およびプログラム
JP5556955B2 (ja) * 2011-03-29 2014-07-23 富士通株式会社 暗号処理装置、認証方法およびプログラム
JP2014081569A (ja) * 2012-10-18 2014-05-08 Nippon Telegr & Teleph Corp <Ntt> マスク生成装置、情報処理装置、及びその方法、プログラム
CN109033847A (zh) * 2018-06-11 2018-12-18 安徽工程大学 Aes加密运算单元、aes加密电路及其加密方法
CN109033894A (zh) * 2018-06-11 2018-12-18 安徽工程大学 普通轮变换运算单元、普通轮变换电路及其aes加密电路
CN109033893A (zh) * 2018-06-11 2018-12-18 安徽工程大学 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
CN109033893B (zh) * 2018-06-11 2021-06-18 安徽工程大学 基于合成矩阵的aes加密单元、aes加密电路及其加密方法
CN109033847B (zh) * 2018-06-11 2021-06-18 安徽工程大学 Aes加密运算单元、aes加密电路及其加密方法
CN109033894B (zh) * 2018-06-11 2021-06-22 安徽工程大学 普通轮变换运算单元、普通轮变换电路及其aes加密电路

Also Published As

Publication number Publication date
EP2273472A4 (en) 2011-06-29
US8369516B2 (en) 2013-02-05
JP5229315B2 (ja) 2013-07-03
JPWO2009122464A1 (ja) 2011-07-28
US20110013769A1 (en) 2011-01-20
EP2273472B1 (en) 2016-02-17
EP2273472A1 (en) 2011-01-12

Similar Documents

Publication Publication Date Title
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
CN106788974B (zh) 掩码s盒、分组密钥计算单元、装置及对应的构造方法
JP4596686B2 (ja) Dpaに対して安全な暗号化
De Mulder et al. Cryptanalysis of the Xiao–Lai white-box AES implementation
JP4909018B2 (ja) 共通鍵暗号のための暗号化装置
US8787568B2 (en) Data transformation apparatus, data transformation method, and computer program
Jaffe A first-order DPA attack against AES in counter mode with unknown initial counter
TW201044334A (en) Encryption device, encryption method, and computer program
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
Tragha et al. ICIGA: Improved cryptography inspired by genetic algorithms
Ara et al. Dynamic key dependent S-Box for symmetric encryption for IoT devices
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
JP5680016B2 (ja) 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
Noura et al. Tresc: Towards redesigning existing symmetric ciphers
KR100991713B1 (ko) 마스킹을 이용한 aes 역원 연산 장치 및 방법과 이를 이용한 aes 암호 시스템
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Bansod et al. MANTRA: an ultra lightweight cipher design for ubiquitous computing
Golić DeKaRT: A new paradigm for key-dependent reversible circuits
Ha et al. Differential power analysis on block cipher ARIA
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
Silva-Garcia et al. The triple-DES-96 cryptographic system
JP5772934B2 (ja) データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
Bai et al. Securing SMS4 cipher against differential power analysis and its VLSI implementation
Cook et al. Elastic aes
Mohan et al. Improving the Diffusion power of AES Rijndael with key multiplication

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010505044

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2008720703

Country of ref document: EP