WO2012131926A1 - 暗号処理装置、認証方法およびプログラム - Google Patents
暗号処理装置、認証方法およびプログラム Download PDFInfo
- Publication number
- WO2012131926A1 WO2012131926A1 PCT/JP2011/057917 JP2011057917W WO2012131926A1 WO 2012131926 A1 WO2012131926 A1 WO 2012131926A1 JP 2011057917 W JP2011057917 W JP 2011057917W WO 2012131926 A1 WO2012131926 A1 WO 2012131926A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- random number
- computer
- key
- cmp
- compression
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Definitions
- the present invention relates to an encryption processing apparatus that executes encryption processing, an authentication method that executes authentication processing based on encryption processing, and a program.
- the validity of the device is confirmed by an authentication protocol using cryptographic processing. Since the authenticity of the authentication chip is proved by the encryption key stored inside the chip, the chip can be forged if this key leaks to the outside.
- the encryption key is safe because it is stored inside the chip and is not read out to the outside, but by using a side channel attack, it can be stored from the power consumption measurement data. There is a risk of decryption of the encryption key. Countermeasures against side channel attacks are an important issue for authentication devices.
- the dedicated encryption circuit is safe because the power consumption is randomized by randomizing the internal data, but there is a problem that the circuit scale becomes large by introducing the dedicated randomized encryption circuit. .
- the encryption circuit is a large circuit that occupies 30 to 40% of the entire chip.
- the conventional encryption circuit with randomization has a problem that the circuit scale is further doubled and directly increases the cost of the chip. Was.
- an object of one aspect of the present invention is to realize a randomized encryption process and an authentication process having resistance to a side channel attack without increasing a circuit scale or a processing amount.
- a randomizing circuit for randomizing n keys each having K 1 , K 2 ,..., K n bits with a random number, and generating one key from the randomized n keys
- a compression circuit for outputting a compression key obtained by compression, and an encryption circuit for encrypting input data using the compression key is a randomizing circuit for randomizing n keys each having K 1 , K 2 ,..., K n bits with a random number, and generating one key from the randomized n keys
- An overview of the challenge and response authentication protocol It is a principle diagram of general challenge and response authentication (one-sided authentication, encryption / decryption) using common key encryption. It is a functional block diagram of generally considered challenge and response authentication (one-sided authentication, encryption only) using common key encryption. It is a functional block diagram of generally considered challenge and response authentication (two-sided authentication, encryption / decryption) using common key encryption. It is a functional block diagram of generally considered challenge and response authentication (two-sided authentication and encryption only) using a common key encryption. It is a figure which shows the algorithm of the general process (combination of a key XOR process and table conversion) of a common key encryption. FIG.
- FIG. 7 is a diagram in which bits related to wj input / output are extracted for the processing of FIG. 6. It is a figure which shows the example of a power consumption curve. It is a figure which shows the example of a power difference curve (with a spike). It is a figure which shows the example of an electric power difference curve (no spike). It is a figure which shows the algorithm of the general process (combination of a key XOR process, table conversion, and linear conversion) of a common key encryption. It is explanatory drawing of the conditions in which the secret key estimation by DPA is possible. It is a functional block diagram of an AES circuit without DPA countermeasures. FIG.
- FIG. 12 is a functional block diagram of a circuit in which a DPA countermeasure of a method 1 generally considered is applied to the AES circuit without the DPA countermeasure of FIG.
- It is a functional block diagram of authentication protocol example 1 (one-sided authentication, encryption / decryption) by simple key randomization.
- It is a functional block diagram of the example 2 (one-sided authentication, encryption / decryption) of the authentication protocol by simple key randomization.
- FIG. 10 is an explanatory diagram of Method 1 applied to each embodiment. It is explanatory drawing of the method 2 applied to each embodiment.
- FIG. 10 is an explanatory diagram of Method 1 applied to each embodiment. It is explanatory drawing of the method 2 applied to each embodiment.
- FIG. 6 is a functional block diagram of a first embodiment (method 1 + one-side authentication, encryption / decryption).
- FIG. 10 is a functional block diagram of a second embodiment (method 1 + one-side authentication, encryption only).
- FIG. 16 is a functional block diagram of a third embodiment IV (method 1 + two-sided authentication, encryption / decryption).
- FIG. 14 is a functional block diagram of a fourth embodiment (method 1 + two-sided authentication, encryption only).
- FIG. 16 is a functional block diagram of a fifth embodiment IV (method 2 + one-sided authentication, encryption / decryption).
- FIG. 16 is a functional block diagram of a sixth embodiment (method 2 + one-side authentication, encryption only).
- FIG. 16 is a functional block diagram of a seventh embodiment (method 2 + two-sided authentication, encryption / decryption).
- FIG. 20 is a functional block diagram of an eighth embodiment ⁇ (method 2 + two-sided authentication, only encryption).
- FIG. 4 is a basic structure diagram of a key compression (Compress function) circuit of Method 1. It is a basic structure figure of the key compression (Compress_2 function) circuit of Method 2.
- FIG. 3 is a diagram illustrating a first embodiment (method 1 of part 1) of a key compression circuit. It is a figure which shows the circuit scale estimation reference
- FIG. 6 is a diagram showing a circuit scale estimation table of the first embodiment (method 1) of the key compression circuit.
- FIG. 6 is a diagram showing a second embodiment (method 1 part 2) of the key compression circuit.
- FIG. 10 is a diagram showing a circuit scale estimation table of a second embodiment (method 1 part 2) of a key compression circuit.
- FIG. 10 is a diagram showing a third embodiment (method 1 of 3) of the key compression circuit.
- FIG. 10 is a diagram showing a circuit scale estimation table of a third embodiment (method 1 of 3) of a key compression circuit.
- FIG. 10 is a diagram showing a fourth embodiment (method 1 part 4) of the key compression circuit.
- FIG. 10 is a diagram showing a circuit scale estimation table of a fourth embodiment (method 1 part 4) of a key compression circuit.
- FIG. 10 is a diagram showing a fifth embodiment (method 2 part 1) of a key compression circuit.
- FIG. 10 is a diagram showing a circuit scale estimation table of a fifth embodiment (method 2 of 1) of a key compression circuit.
- FIG. 10 is a diagram showing a sixth embodiment (method 2 part 2) of the key compression circuit.
- FIG. 10 is a diagram showing a circuit scale estimation table of a sixth embodiment (method 2 of 2) of a key compression circuit.
- FIG. 10 is a diagram showing a seventh example (method 2 of 3) of the key compression circuit.
- FIG. 10 is a diagram showing a circuit scale estimation table of a seventh embodiment (method 2 of 3) of a key compression circuit.
- FIG. 10 is a diagram showing an eighth embodiment (method 2 part 4) of the key compression circuit.
- FIG. 20 is a diagram showing a circuit scale estimation table of an eighth embodiment (method 2 of 4) of a key compression circuit. It is a block diagram of the hardware system which can implement
- 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 what is called 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. Regardless of which encryption method is used, it is a major security premise that the secret key does not leak outside.
- Tamper resistance means prevention of peeping, and refers to the property that important information stored inside an embedded device does not leak due to information observed from outside the embedded device.
- the secret key is not leaked by information observed from the outside.
- a general authentication device is considered to have high tamper resistance because a secret key is written inside when the device is manufactured and the key is not taken out after the device is manufactured.
- the side channel attack discovered in 1996 revealed that the secret key leaked to all embedded devices including authentication devices even if the key was not taken out after manufacturing, so the side channel attack Countermeasures against tamper resistance have become essential issues.
- the side channel attack is an attack that decrypts the secret key using information that can be observed from the outside without causing physical damage to the embedded device.
- a timing attack Non-Patent Document 1 for observing the processing time was proposed, but it was not a big threat because the countermeasure was easy.
- PA Power Analysis Attack
- PA is a method devised by Paul Kocher in 1998, and is a method for estimating internal key information by collecting and analyzing power consumption data when various input data is given to an embedded device.
- the embedded device is a single LSI chip such as a smart card chip or an authentication chip, it is easy to measure power consumption, so PA countermeasures are a major tamper resistance issue. 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
- SPA is a method for estimating a secret key from the characteristics of a single power consumption data in a cryptographic processor
- DPA is a method for estimating a secret key by analyzing a difference of a large number of power consumption data.
- SPA is not effective because it is easy to take countermeasures, but DPA is known as an effective attack method.
- the following papers have been published as typical decoding techniques using SPA and DPA.
- the decryption method using DPA for public key cryptography such as RSA is described in documents such as Non-Patent Document 2.
- Non-Patent Document 3 describes a cryptanalysis method using DPA for DES (Data Encryption Standards) used as an old standard in the common key cryptosystem.
- DES Data Encryption Standards
- AES AES
- Decoding technology using PA is attracting attention as a particularly effective method, and various decoding methods have been studied.
- countermeasure technology for preventing decoding by PA has been developed, and it is attracting attention as an important technology as well as decoding technology.
- the circuit scale of a circuit that performs encryption processing is known to be large, and a dedicated countermeasure circuit for common key cryptography is twice the circuit scale of an unmeasured circuit.
- incorporation of a dedicated countermeasure circuit directly leads to an increase in cost.
- the upper layer authentication protocol using encryption is improved, so that the cost of the dedicated countermeasure circuit is not increased and the same level as that of an unmeasured circuit.
- An authentication chip with countermeasures depending on the circuit scale can be realized.
- ⁇ Challenge and response authentication protocol> In the authentication chip, a communication protocol called a challenge and response authentication protocol is used to confirm the validity of the device. An overview of the challenge and response authentication protocol is shown in FIG.
- the challenge and response authentication is a secret word using digital information, and a random number called “changing” is transmitted from the authenticating side (master device 101) to the authenticated side (slave device 102).
- the slave unit 102 On the other hand, the slave unit 102 generates a response called “response” for “changing” and sends it back to the master unit 101.
- the parent device 101 determines the value of “response” for “challenge”, and if it is correct, determines that the child device 102 is a valid device.
- the retransmission attack is an attack that impersonates a legitimate device by repeating responses observed from outside in the past.
- the pair of the challenge and response becomes a completely fixed value. For this reason, an attacker can observe an appropriate response corresponding to the challenge by observing the pair, and chip forgery is facilitated by manufacturing a chip that returns this response. For example, if a malicious third party can know that the system uses only the secret word “river” for “mountain”, it can be impersonated by always responding with “river”.
- FIG. 2 is a functional block of generally considered challenge and response authentication (one-sided authentication, encryption / decryption) using a common key encryption.
- the secret key K is shared in advance between the authentication chips of the parent device 101 and the child device 102. This can be realized by writing the value of K when the chip is manufactured.
- the authenticating master device 101 generates a random number r and transmits it to the authenticated slave device 102 (S201 in FIG. 2).
- C Enc (P, K) represents that the result of encrypting plaintext P with the key K using the common key encryption is the ciphertext C.
- FIG. 2 shows one-side authentication by only the base unit 101 using both encryption and decryption, but it is also possible to perform challenge and response authentication only by encryption, and the method is shown in FIG.
- FIG. 3 is a functional block diagram of generally considered challenge and response authentication (one-side authentication, encryption only) using common key encryption.
- the secret key K is pre-shared between the authentication chips of the parent device 101 and the child device 102, and the parent device 101 on the authenticating side generates a random number r and is authenticated.
- 102 (S301 in FIG. 3).
- the process up to this point is the same as in FIG.
- FIG. 2 and FIG. 3 show an authentication protocol called single-side authentication for the parent device 101 to confirm the validity of the child device 102.
- the child device 102 cannot confirm the validity of the parent device 101, the child device 102 cannot prevent the parent device 101 from being illegal.
- the slave unit 102 also needs a means for confirming the validity of the master unit 101. This is realized by an authentication protocol called two-sided authentication, in which the slave unit 102 transmits a challenge to the master unit 101 and confirms the response from the master unit 101.
- FIG. 4 shows an authentication protocol that extends the authentication protocol of Figure 2 to double-sided authentication.
- FIG. 4 is a functional block diagram of generally considered challenge and response authentication (two-sided authentication, encryption / decryption) using common key encryption.
- the parent device 101 transmits the random number r to the child device 102 (S401 in FIG. 4), and the child device 102 calculates the result a obtained by encrypting r with the secret key K (S403 in FIG. 4).
- the difference from FIG. 2 is that the handset 102 also generates a random number s at this time (S402 in FIG. 4).
- a and s are transmitted to the base unit 101.
- the base unit 101 decrypts a with the secret key K, and if it matches r, the slave unit 102 determines that it is valid, and further uses the secret key K to determine s.
- B is generated as a result of encryption (S404 in FIG. 4). After this b is sent to the child device 102, the child device 102 decrypts the response b from the parent device 101 with the secret key K. If the result matches s, the child device 101 determines that the parent device 101 is valid. (S405 in FIG. 4).
- FIG. 4 shows a two-sided authentication using encryption / decryption, but authentication only with encryption is also possible, and its functional block diagram is shown in FIG.
- the master unit 101 transmits the random number r to the slave unit 102 (S501 in FIG. 5), and the slave unit 102 generates a random number s while calculating the result a obtained by encrypting r with the secret key K (S502 in FIG. 5). ), A, s are transmitted to the parent device 101 (S503 in FIG. 5). If the result a ′ obtained by encrypting r with the secret key K matches the response a from the child device 102, the parent device 101 determines that the child device 102 is valid, and then determines the random number s from the child device 102.
- a result b is generated and transmitted to the child device 102 (S504 in FIG. 5).
- the child device 102 generates a result b 'obtained by encrypting the random number s with the secret key K, and determines that the parent device 101 is valid if it matches b (S505 in FIG. 5).
- FIG. 6 is a diagram showing an algorithm of a common process (a combination of key XOR process and table conversion) of common key cryptography.
- M is input data such as plaintext (or ciphertext)
- K is an expanded key.
- K shown in FIG. 6 is a value called an extended key, and is a value generated by expanding the bit length by performing a specific process based on the secret key.
- the result of exclusive OR (XOR) of M and K is divided for each specific bit length data, and a conversion table operation called Sbox is performed on each divided data.
- M and K differ depending on the common key encryption, for example, 48-bit (bit) for DES and 128-bit for AES.
- bit length of Sbox depends on the encryption, for example, 6-bit input 4-bit output for DES and 8-bit input 8-bit output for AES. Since the circuit scale of Sbox with a-bit input and b-bit output increases in proportion to a ⁇ b ⁇ 2 a , there is an upper limit on the bit length of Sbox input / output, and 8-bit input / output Sbox is the largest Known as a thing.
- FIG. 7 shows a configuration in which only the 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 partial key k j of the extended key K can be estimated by DPA under this assumption.
- the DPA consists of two steps: power consumption data measurement and key analysis using power difference data.
- the power consumption data consumed by the cryptographic processor when given a certain plaintext is measured as a power consumption curve as shown in FIG. 8 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.
- DG (k ′ j ) (average of power consumption curves belonging to set G 1 )-(average of power consumption curves belonging to set G 0 ) (3)
- the extended key K itself has a large bit length of 48-bit or 128-bit and is difficult to decipher by brute force, but k ' j and k j are the bit lengths of the keys related to Sbox input, Because it is 8-bit, brute force decoding by the above method is easy.
- 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,
- the extended key 0 and the extended key 1 are decrypted, the entire secret key can be decrypted, and it is easy to decrypt the secret key from the expanded key.
- equation (4) does not hold, and random classification is performed, so equation (5) holds.
- (Average hamming weight of z j belonging to G 1 )-(Average hamming weight of z j belonging to G 0 ) 0 (5)
- 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 ).
- FIG. 10 is a diagram showing an algorithm of general processing of common key cryptography (combination of key XOR processing, table conversion, and linear conversion).
- FIG. 10 is a generalized structure of FIG. 6, 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.
- L 1 is a function that outputs an input as it is, L 2 bit permutation permutation function, by the Sbox called B function of SC2000 and w j, 10 represents an equivalent structures and SC2000. Details of the specifications of SC2000 are disclosed in Non-Patent Document 6. Since L2 is a bit permutation function, it can be converted into the same processing as in FIG. 11 by considering a structure in which only the bits related to the input / output of w j are taken into account. K can be deciphered.
- Non-Patent Document 7 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).
- FIG. 11 is an explanatory diagram of conditions under which secret key estimation by DPA is possible.
- DPA-1 Input M is known and controllable, extended key K is unknown and fixed, Sbox w j conversion is known, power consumption curve of part A (output of Sbox w j ) is measured DPA is possible by doing.
- DPA-2 When input M is known and controllable, and extended key K is unknown and fixed, DPA is possible by measuring the power consumption curve of part B (writing of the output of the key XOR process) in FIG.
- DPA-3 When the input M is known and controllable, and the extended key K is unknown and fixed, the power consumption curve of the portion C in FIG. 11 (loading of input values to index Sbox w j ) is measured DPA is possible.
- Non-Patent Document 8 As a DPA countermeasure method that can be generally considered, there is a technique for randomizing power consumption by taking countermeasures against cryptographic processing.
- a representative method is known as a masking method (Non-Patent Document 8, hereinafter referred to as “generally considered method 1”).
- M the data calculated in the cryptographic process without DPA countermeasures
- Non-Patent Document 8 can be used instead of calculating data M.
- 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.
- 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.
- 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
- FIG. 13 shows an AES circuit in which the above generally considered method 1 is applied to the DPA-unmeasured circuit in FIG.
- this circuit instead of the data M i are calculated in FIG. 12, with respect to the random number R i
- Two random data of M i ′ and R i that satisfy the above are calculated. Since the data value calculated for each encryption process is random, a process that is safe against DPA can be realized. However, since the data must be calculated for both M i ′ and R i , the circuit scale increases. (Approximately twice that of FIG. 12).
- AES Subbyte processing is performed by table reference processing (0 ⁇ x ⁇ 255) using a static Sbox conversion table S [x] using fixed data.
- the conversion table S [x] used in the Subbyte process is called Sbox.
- the Sbox table data S ′ [x] used in FIG. 13 corresponds to the random numbers Rin and Rout.
- Defending against side channel attacks can be realized by mounting the countermeasure method based on the generally considered method 1 on the common key encryption circuit of the authentication chip.
- the circuit scale is large compared to a circuit without DPA countermeasures.
- FIG. 14 is a functional block diagram of an authentication protocol example 1 (one-side authentication, encryption / decryption) based on simple key randomization. This is an authentication protocol based on FIG. 2 and using both one-side authentication and encryption / decryption.
- the random number r generated on the parent device 101 side is transmitted to the child device 102 (S1401 in FIG. 14), and the child device 102 generates a response a by performing encryption processing with the random number r and the secret key K (FIG. 14). S1402).
- S1402 When generating this response a
- the key is generated after masking with a random number r.
- the response sent to the base unit 101 is sent to the base unit 101 side. To check whether r ′ matches r (S1403 in FIG. 14).
- FIG. 15 is a functional block diagram of an authentication protocol example 2 (one-side authentication, encryption / decryption) based on simple key randomization.
- the random number r for masking the key XOR (S1501 in FIG. 15) is observable from the outside, so that the method of generating the random number for masking the key is changed in order to solve the problem of FIG.
- r It generates a response by masking secret key K by using the m r Is generated (S1502, S1503 in FIG. 15).
- the secret key K can be decrypted by the same method as in FIG.
- an authentication protocol that is secure against a side channel attack cannot be realized only by a technique of simply randomizing a key using a random number.
- Each of the following embodiments solves this problem, and shows a method for realizing a secure authentication protocol against side channel attacks without using a dedicated circuit with countermeasures. Before describing each embodiment, the reason why it is not safe to simply randomize a key using a random number will be described.
- FIG. 16 shows a diagram of factors that cause a side channel attack to succeed, using an AES encryption circuit as an example.
- the 128-bit extended key K is XORed with the 128-bit plaintext, and then divided into 16 pieces every 8-bit, and each data is input to the Sbox.
- the effort required for the side channel attack is determined by the bit length of the partial key related to the Sbox input.
- this bit length varies depending on the common key cryptosystem, the 8-bit AES is the maximum as already explained.
- the attack based on the idea of FIG. 16 is successful even for AES having the longest partial key bit length of the Sbox input, the other common key cryptography succeeds more easily. This is the same even when the key is masked with a challenge and response random number, as shown in FIG. Since the random number with the key masked can be observed from the outside, the key can be decrypted by the brute force of the partial key related to Sbox input regardless of whether or not the key is masked with the random number. .
- each of the following embodiments executes the following three-stage procedure instead of performing simple secret key randomization.
- (Procedure 1) Prepare multiple private keys (Procedure 2) Compress to one key using random numbers (Procedure 3) Use the key compressed in (Method 2) instead of the secret key K used in the conventional authentication protocol.
- a plurality (n) of keys are prepared and compressed into one using a random number.
- the process of compressing a key using a random number is referred to as random key compression
- the compressed key is referred to as a compressed key.
- This idea is based on the premise that random numbers used in challenge-and-response authentication cannot be observed from the outside, and even if random numbers are observed, the effort of attackers in side channel attacks is increased. Is the aim. It is assumed that random key compression satisfies the following two conditions. (cond-1) If you know the value of n keys and random number, you can also know the value of the compressed key (cond-2) Unless the random number and n keys are all known, the value of the compressed key is unknown.
- Basic concept 1 used the random numbers used for challenge and response as random numbers used for random key compression.
- a device that generates a response by cryptographic processing is different from a device that generates a random number necessary for generating a response. That is, random number generation is performed by a device different from the device that performs the encryption process. If the random number generator performs a fraudulent act, and a random number that should always change is given as a fixed value, the compression key will always be a fixed value, so the effort required for the attack will be the same as in the conventional method, and side channel attacks Can not prevent.
- the device that generates the response In order to prevent this attack, in addition to the random number r received from the outside from the device that generates the response, the device that generates the response also generates another random number s, and uses these two random numbers r and s. It is to perform key compression. This is an idea of the basic concept 2, and an outline is shown in FIG.
- the authentication device receives the random number r from the communication partner of the authentication protocol, and further generates the random number s by itself.
- the key compression process is performed using two random numbers r and s. Even when the external input random number r is intentionally fixed, the internally generated random number s changes randomly, so that the compression key is changed. Prevents immobilization and realizes safety against side channel attacks.
- the internally generated random number s is output to the outside and transmitted to the authentication device of the communication partner. This is because the communication partner device also needs to generate the same compression key, and the communication partner device generates the same compression key based on the random number r transmitted by itself and the received s.
- FIG. 20 to FIG. 27 show first to eighth embodiments relating to an authentication protocol in which the basic concepts 1 and 2 are applied to a challenge and authentication protocol.
- FIG. 21, FIG. 22, and FIG. 23 are obtained by applying the basic concept 1 to the authentication protocols of FIG. 2, FIG. 3, FIG. 4, and FIG. 24, 25, 26, and 27 are obtained by applying the basic concept 2 to the authentication protocols of FIGS. 2, 3, 4, and 5, respectively.
- the authentication protocol using the basic concept 1 shown in FIGS. 20, 21, 22, and 23 is basically the same as the authentication protocol shown in FIGS. 20, FIG. 21, FIG. 22 and FIG. 23, the same step numbers (numbers starting with S) are given to the same processes as those in FIG. 2, FIG. 3, FIG. 20, 21, 22, and 23 are different from FIGS. 2, 3, 4, and 5 in that a random number r generated on the base unit 101 side and n keys K 1 , K 2 , ..., K n is used to generate a compressed key K cmp and encryption processing is performed using this key.
- the processes are S2001 in FIG. 20, S2101 in FIG. 21, S2201 in FIG. 22, and S2301 in FIG.
- K cmp Compress (K 1 , K 2 ,..., K n , r)
- the authentication protocol using the basic concept 2 shown in FIGS. 24, 25, 26, and 27 is basically the same as the protocol shown in FIGS.
- FIG. 24, FIG. 25, FIG. 26, and FIG. 27, the same step numbers (numbers starting with S) are assigned to the same processes as those in FIG. 24, 25, 26, and 27 differ from FIGS. 2, 3, 4, and 5 in that the random number on the handset 102 side that was not performed in FIGS. s generation processing is executed in FIGS. 24 and 25.
- the second difference using the random number r generated by the base unit 101, the random number s generated by the slave unit 102 side, and the n keys K 1, K 2, ..., a K n, compression key K
- the point is to generate cmp and perform encryption using this key.
- the processing is S2402 in FIG. 24, S2502 in FIG. 25, S2601 in FIG. 26, and S2701 in FIG.
- the processes are S2403 in FIG. 24, S2503 in FIG. 25, S2602 in FIG. 26, and S2702 in FIG. In FIG. 24, FIG. 25, FIG. 26, and FIG.
- K cmp Compress_2 (K 1 , K 2 ,..., K n , r, s).
- Compress_2 K 1 , K 2 ,..., K n , r, s.
- FIG. 28 shows the basic structure of the Compress function used for the key compression of the basic concept 1.
- Each of the n keys K 1 ,... K n is u-bit.
- Each of the n u-bit keys is divided into t g-bit blocks by bit division using connection.
- Key compression is performed by repeating execution in units of blocks t times. Ie, n-number of keys K 1, ... for n g-bit value is the first block of K n, g-bit value of the result of the key compression by the compression circuit 2803 , The first k-bit block value of the compression key K cmp .
- a selector (MUX) 2801 is used to select an input value block
- a demultiplexer (DEMUX) 2804 is used to select an output value block.
- the compression circuit 2803 compression processing is performed on the intermediate output values L 1 ,..., L n to output the g-bit compression key K cmp .
- Various operations can be applied to this compression processing as long as all bits of L 1 ,..., L n affect K cmp .
- FIG. 29 shows the basic structure of the Compress_2 function used for the key compression of the basic concept 2. Basically, it has the same structure as FIG. In FIG. 29, the same numbers are assigned to parts that perform the same functions as in FIG. FIG. 29 differs from FIG. 28 in that the first random number r and the second random number s are input and these random numbers are converted into one random number by the random number synthesis circuit 2901 and used.
- the random number synthesis circuit 2901 can apply various operations as long as all the bit information of the first random number r and the second random number s is reflected in the output. For operations with a small circuit scale, ⁇ XOR of two random numbers -Q-bit addition / subtraction of two random numbers. Where q is the bit length of the random number.
- the first to eighth embodiments of the key compression circuit described below relate to circuits used as the “randomization circuit 2802”, “compression circuit 2803”, and “random number synthesis circuit 2901” in FIGS.
- Randomization circuit 2802 Cyclic shift of key according to random bit value Compression circuit 2803: XOR of all values Second embodiment Randomization circuit 2802: Simple bit combination of random number and key Compression circuit 2803: After XORing all values, GF (2 g ) remainder calculation Third embodiment Randomization circuit 2802: Random number Execute LFSR processing for key according to bit value Compression circuit 2803: XOR of all values Fourth embodiment Randomizing circuit 2802: Multiplication of random number and key on GF (2 g ) (g ⁇ h) Compression circuit 2803: GF (2g) remainder operation after XORing all values
- Randomization circuit 2802 Cyclic shift of key according to random bit value Compression circuit 2803: XOR of all values Random number synthesis circuit 2901: XOR of two random numbers Sixth embodiment Randomization circuit 2802: Simple bit combination of random number and key Compression circuit 2803: After XORing all values, GF (2 g ) remainder calculation Random number synthesis circuit 2901: q-bit of two random numbers Addition / seventh embodiment Randomization circuit 2802: Execution of LFSR processing for key according to random bit value Compression circuit 2803: After XORing all values, GF (2 g ) remainder calculation Random number synthesis circuit 2901: Two Random number XOR Eighth Embodiment Randomizing circuit 2802: Multiplication of random number and key on GF (2 g ) (g ⁇ h) Compression circuit 2803: XOR all values, then GF (2 g ) remainder calculation Random number synthesis circuit 2901: XOR of two random numbers
- the required additional circuit scale can be reduced from 4.8 Kgate to 8.7 Kgate (Kgate indicates 1000 gates), and the cryptographic circuit scale can be increased by more than twice.
- Kgate indicates 1000 gates
- the effect is superior to that of Method 1, which is generally considered.
- the first to eighth embodiments are superior to the configuration in which this circuit is doubled. Show the effect.
- FIG. 30 is a diagram showing a first embodiment (basic concept 1) of a key compression circuit.
- basic concept 1 each of the 128-bit secret keys K i (1 ⁇ i ⁇ 4) is divided into eight for each 16-bit , and expressed as K i, 7 ,.
- a cyclic shift process is performed by a cyclic shift circuit group which is a randomizing circuit 2802 based on a 4-bit random number obtained by dividing a 16-bit random number into four. Since there are 16 cyclic shifts, 4-bit is sufficient as the random number.
- the outputs of the four 16-bit cyclic shift circuits are XORed by an XOR (exclusive OR circuit) that is a compression circuit 2803 to generate one 16-bit value.
- This 16-bit value is the 16-bit partial key K cmp, j of the compression key K cmp .
- FIG. 31 is a diagram showing a table of circuit scale estimation criteria for the embodiment of the key compression circuit.
- the table in FIG. 31 shows the circuit scale (gate / bit) per 1-bit.
- the circuit scale is shown as the number of gates converted to 2-input NAND (2-input NOR).
- FIG. 32 and FIG. 33 are diagrams showing circuit scale estimations of NAND gates and NOR gates which are calculation criteria for circuit scales.
- each of the 2-input NAND gate and the 2-input NOR gate is composed of 4 MOSFETs (Metal-Oxide-Semiconductor Field-Effect Transistor). Has been.
- FIG. 34 is a diagram showing a circuit scale estimate of the NOT gate. Since the NOT gate is composed of two MOSFETs as shown in FIG. 34, the number of gates is 0.5 as shown in FIG.
- FIG. 35 is a diagram showing a circuit scale estimation of a register constituted by a 1-input D-flip flop.
- FIG. 36 is a diagram showing a circuit scale estimation of a 2-input XOR (exclusive OR circuit).
- FIG. 37 is a diagram showing a circuit size estimate of the 2-1 selector.
- 37A shows a multiplexer (MUX)
- FIG. 37B shows a demultiplexer (DEMUX).
- FIG. 38 is a diagram showing a circuit scale estimation of the adder / subtracter.
- FIG. 39 is a diagram showing a circuit size estimate (14.5 gates) of the shift / cyclic register.
- the shift / cyclic register is composed of one selector (MUX) (see FIG. 37 (a)) and one register (see FIG. 35) (in FIG. 39, three stages). It is shown).
- MUX selector
- FIG. 35 register
- FIG. 40 is a diagram showing a circuit size estimate of the LSFR / residue arithmetic circuit.
- FIG. 41 is a diagram showing an estimation table of the circuit scale of the first embodiment (basic concept 1 part 1) of the key compression circuit shown in FIG. 30, which is calculated based on the estimation criteria shown in FIG. .
- the register that outputs K cmp is not included in the evaluation because it is shared with the register of the encryption circuit.
- the key register portion is 5.6 Kgate
- the selector (8-1 MUX) 2801 portion is 1.6 Kgate
- the cyclic shift register portion that is the randomizing circuit 2802 is 0.93 Kgate.
- the 4-1XOR portion which is the compression circuit 2803 is 0.1 Kgate
- the demultiplexer (8-1DEMUX) 2804 portion is 0.4 Kgate.
- the circuit scale of the entire key compression circuit of FIG. 30 is 8.6 Kgate, which can be realized with about half the circuit scale of the prior art.
- FIG. 42 is a diagram showing a second embodiment (basic concept 1 part 2) of the key compression circuit.
- FIG. 42 parts having the same functions as those in the basic structure diagram of FIG.
- Each of the 128-bit secret keys K i (1 ⁇ i ⁇ 2) is divided into four for each 32-bit and denoted as K i, 3 ,..., K i, 0 .
- Each of the two K i of in accordance with the select signal input from the outside, the selector (4-1MUX) 2801 is, to select either the 32-bit partial key which is divided into four parts.
- a 16-bit random number obtained by dividing the 32-bit random number into two is bit-coupled to each of the two selected 32-bit partial keys. Furthermore, as a configuration of the compression circuit 2803, two 48-bit values of the bit combination result in the randomization circuit 2802 are XORed, and a GF (2 32 ) remainder operation (GF (2 32 ) is performed on the XOR result. The remainder circuit) is executed.
- the GF (2 32 ) residue operation is, for example, a polynomial used in a CRC code, x 32 + x 28 + x 27 + x 26 + x 25 + x 23 + x 22 + x 20 + x 19 + x 18 + x 14 + x 13 + x 11 + x 10 + x 9 + x 8 + x 6 +1
- the remainder operation by is appropriate.
- the 32-bit result of the remainder operation is the 32-bit partial key K cmp, j of the compression key K cmp .
- FIG. 43 is a diagram showing a circuit scale estimation table of the second embodiment (basic concept 1 part 2) of the key compression circuit shown in FIG. 42, which is calculated based on the estimation criteria shown in FIG. .
- the register that outputs K cmp is not included in the evaluation because it is shared with the register of the cryptographic circuit.
- the key register portion is 2.8 Kgate
- the selector (4-1MUX) 2801 portion is 0.67 Kgate
- the 2-1XOR portion which is a part of the compression circuit 2803 is 0.12 Kgate. is there.
- the GF (2 32 ) remainder circuit portion which is a part of the compression circuit 2803 is 0.86 Kgate
- the demultiplexer (4-1DEMUX) 2804 portion is 0.34 Kgate.
- the circuit scale of the entire key compression circuit of FIG. 42 is 4.8 Kgate, which can be realized with about half the circuit scale of the prior art.
- FIG. 43 is a diagram showing a third embodiment (basic concept 1 part 3) of the key compression circuit.
- FIG. 43 parts having the same functions as those in the basic structure diagram of FIG.
- Each of the 128-bit secret keys K i (1 ⁇ i ⁇ 2) is divided into four for each 32-bit and denoted as K i, 3 ,..., K i, 0 .
- Each of the two K i of in accordance with a select signal input from the outside, the selector (4-1MUX) 2801 is, to select either the 32-bit partial key which is divided into four parts.
- a 32-bit LFSR Linear Feedback Shift Register
- LFSR processing uses an 8-bit random bit value obtained by dividing a 16-bit random number into two for each of the two selected 32-bit partial keys.
- Various polynomials used in LFSR processing are known. For example, x 32 + x 7 + x 5 + x 3 + x 2 + x + 1 Is available.
- the XOR exclusive OR circuit that is the compression circuit 2803 XORs the two LFSR processing results to obtain the 32-bit partial key K cmp, j of the compression key K cmp .
- FIG. 45 is a diagram showing an estimation table of the circuit scale of the third embodiment (basic concept 1 part 3) of the key compression circuit shown in FIG. 44, which is calculated based on the estimation criteria shown in FIG. . .
- the register that outputs K cmp is not included in the evaluation because it is shared with the register of the cryptographic circuit.
- the key register portion is 2.8 Kgate
- the selector (4-1MUX) 2801 portion is 0.67 Kgate
- the randomizing circuit 2802 LFSR portion is 1.15 Kgate.
- the 2-1XOR portion of the compression circuit 2803 is 0.1 Kgate
- the demultiplexer (4-1 DEMUX) 2804 portion is 0.34 Kgate.
- the circuit scale of the entire key compression circuit of FIG. 44 is 5.0 Kgate, which can be realized with about half the circuit scale of the prior art.
- FIG. 46 is a diagram showing a fourth embodiment (basic concept 1 part 4) of the key compression circuit.
- FIG. 46 parts having the same functions as those in the basic structure diagram of FIG.
- Each of the 128-bit secret keys K i (1 ⁇ i ⁇ 2) is divided into four for each 32-bit and denoted as K i, 3 ,..., K i, 0 .
- Each of the two K i of in accordance with the select signal input from the outside, the selector (4-1MUX) 2801 is, to select either the 32-bit partial key which is divided into four parts.
- each of the selected two 32-bit partial keys is subjected to polynomial multiplication of 32-bit random number bit values obtained by dividing the 64-bit random number into two to obtain two 64-bit random numbers. Generate a value.
- Polynomial multiplication In this case, the polynomial multiplication can be realized by one shift register that stores the multiplier a, one register that stores the multiplicand b, and one 32-bit XOR circuit.
- two 64-bits resulting from multiplication in the randomization circuit 2802 are XORed.
- a GF (2 32 ) residue operation (GF (2 32 ) residue circuit) is executed on the XOR result.
- the GF (2 32 ) residue operation is, for example, a polynomial used in a CRC code, x 32 + x 28 + x 27 + x 26 + x 25 + x 23 + x 22 + x 20 + x 19 + x 18 + x 14 + x 13 + x 11 + x 10 + x 9 + x 8 + x 6 +1
- the remainder operation by is appropriate.
- the 32-bit partial key K cmp, j of the compression key K cmp is obtained from the 32-bit value of the remainder result.
- FIG. 47 is a diagram showing a circuit scale estimation table of the fourth embodiment (basic concept 1 part 4) of the key compression circuit shown in FIG. 46, which is calculated based on the estimation criteria shown in FIG. .
- the register that outputs K cmp is not included in the evaluation because it is shared with the register of the cryptographic circuit.
- the key register portion is 2.8 Kgate
- the selector (4-1MUX) 2801 portion is 0.67 Kgate
- the shift register constituting part of the polynomial multiplier which is the randomizing circuit 2802 is shown.
- the part is 0.93Kgate.
- the part of the register that constitutes a part of the polynomial multiplier is 0.7 Kgate
- the part of 2-1XOR that also constitutes a part of the polynomial multiplier is 0.2 Kgate.
- the 2-1XOR portion that is part of the compression circuit 2803 is 0.12 Kgate
- the GF (2 32 ) remainder circuit portion that is part of the compression circuit 2803 is 1.15 Kgate
- the demultiplexer (4-1DEMUX ) 2804 is 0.34 Kgate.
- the circuit scale of the entire key compression circuit of FIG. 46 is 7.0 Kgate, which can be realized with a circuit scale about half that of the conventional one.
- FIG. 48 is a diagram showing a fifth embodiment (basic concept 2 part 1) of the key compression circuit. 48, parts having the same functions as those in the basic structure diagram of FIG. 29 are denoted by the same reference numerals.
- the configuration of FIG. 48 is basically the same as that of the first embodiment of FIG. 30, except that 16-bit random numbers r and s are synthesized by XOR which is a random number synthesis circuit 2901. The difference is that the bit value is used as a random number for randomized compression.
- FIG. 49 is a diagram showing a circuit scale estimation table of the fifth embodiment (basic concept 2 part 1) of the key compression circuit shown in FIG. 48, which is calculated based on the estimation criteria shown in FIG. . Except that the number of gates is increased by the random number compression circuit 2901, it is the same as in the case of the first embodiment shown in FIG.
- FIG. 50 is a diagram showing a sixth embodiment (basic concept 2 part 2) of the key compression circuit.
- parts having the same functions as those in the basic structure diagram of FIG. 42 is the same as that of the second embodiment shown in FIG. 42 except that addition by an adder 2901 which is a random number synthesis circuit 2901 is used for the synthesis of two random numbers.
- FIG. 51 is a diagram showing a circuit scale estimation table of the sixth embodiment (basic concept 2 part 2) of the key compression circuit shown in FIG. 50, which is calculated based on the estimation criteria shown in FIG. . Except that the number of gates is increased by the random number compression circuit 2901, it is the same as in the case of the second embodiment shown in FIG.
- FIG. 52 is a diagram showing a seventh embodiment (basic concept 2 part 3) of the key compression circuit.
- the third embodiment is the same as the third embodiment shown in FIG. 44 except that XOR, which is a random number synthesis circuit 2901, is used to synthesize two random numbers.
- FIG. 53 is a diagram showing a circuit scale estimation table of the seventh embodiment (basic concept 2 part 3) of the key compression circuit shown in FIG. 52, which is calculated based on the estimation criteria shown in FIG. . Except for the increase by the amount of the random number compression circuit 2901, this is the same as in the third embodiment shown in FIG.
- FIG. 54 is a diagram showing an eighth embodiment (basic concept 2 part 4) of the key compression circuit.
- parts having the same functions as those in the basic structure diagram of FIG. 46 is the same as that of the fourth embodiment shown in FIG. 46 except that XOR which is a random number synthesis circuit 2901 is used to synthesize two random numbers.
- FIG. 55 is a diagram showing a circuit scale estimation table of the eighth embodiment (basic concept 2 part 4) of the key compression circuit shown in FIG. 54, which is calculated based on the estimation criteria shown in FIG. . Except for the increase by the amount of the random number compression circuit 2901, this is the same as the case of the fourth embodiment shown in FIG.
- FIG. 56 is a diagram showing an example of a hardware configuration of a computer that can realize the system as software processing.
- the computer shown in FIG. 56 includes a CPU 5601, a memory 5602, an input device 5603, an output device 5604, an external storage device 5605, a portable recording medium driving device 5606 into which a portable recording medium 5609 is inserted, and a communication interface 5607. , These are connected to each other by a bus 5608.
- the configuration shown in the figure is an example of a computer that can implement the above system, and such a computer is not limited to this configuration.
- the CPU 5601 controls the entire computer.
- the memory 5602 is a memory such as a RAM that temporarily stores a program or data stored in the external storage device 5605 (or the portable recording medium 5609) when executing a program, updating data, or the like.
- the CUP 5601 performs overall control by reading the program into the memory 5602 and executing it.
- the input / output device 5603 detects an input operation by a user using a keyboard, a mouse, or the like, notifies the CPU 5601 of the detection result, and outputs data transmitted under the control of the CPU 5601 to a display device or a printing device.
- the external storage device 5605 is, for example, a hard disk storage device. Mainly used for storing various data and programs.
- the portable recording medium driving device 5606 accommodates a portable recording medium 5609 such as an optical disk, SDRAM, or Compact Flash (registered trademark), and has an auxiliary role for the external storage device 5605.
- the communication interface 5607 is a device for connecting, for example, a LAN (local area network) or WAN (wide area network) communication line.
- the systems according to the first to eighth embodiments described above are realized by the CPU 5601 executing programs equipped with these functions.
- the program may be recorded and distributed in, for example, the external storage device 5605 or the portable recording medium 5609, or may be acquired from the network by the network connection device 5607.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化するランダム化回路と、前記ランダム化されたn個の鍵から1つの鍵を生成することにより圧縮して得られる圧縮鍵を出力する圧縮化回路と、前記圧縮鍵を用いて入力データを暗号化する暗号化回路とを含むように構成する。
Description
本発明は、暗号処理を実行する暗号処理装置、暗号処理に基づく認証処理を実行する認証方法およびプログラムに関する。
認証機能を搭載した小型認証チップでは、暗号処理を用いた認証プロトコルにより、機器の正当性を確認する。認証チップの正当性は、チップ内部に格納されている暗号鍵によって証明されるため、この鍵が外部に漏洩するとチップを偽造できる。
チップ偽造防止のためには、暗号鍵の漏洩防止が必須である。一般的な機器認証において、暗号鍵はチップ内部に格納され外部に読み出されることがないため安全であるが、サイドチャネル攻撃を用いることで、消費電力の測定データから、内部に格納された状態の暗号鍵を解読される危険性がある。サイドチャネル攻撃への対策は、認証機器における重要な課題である。
従来のサイドチャネル攻撃対策は、専用の暗号化回路を用いることで対策が行われていた。専用の暗号化回路は、内部データのランダム化を行うことで消費電力をランダム化するため安全であるが、専用のランダム化つき暗号回路を導入することで回路規模が大きくなるという問題があった。暗号化回路は、チップ全体の3~4割を占める大きな回路であるが、従来のランダム化つき暗号回路の場合、回路規模がさらに2倍となり、チップのコスト増に直結するという問題点を有していた。
Paul C. Kocher "Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems", Advances in cryptology-CRYPTO 1996, Springer-Verlag, pp. 104-113
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
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.
そこで、本発明の1つの側面では、回路規模または処理量を増大させずに、サイドチャネル攻撃への耐性を有するランダム化つき暗号処理および認証処理を実現することを目的とする。
態様の一例では、それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化するランダム化回路と、前記ランダム化されたn個の鍵から1つの鍵を生成することにより圧縮して得られる圧縮鍵を出力する圧縮化回路と、前記圧縮鍵を用いて入力データを暗号化する暗号化回路とを含むように構成する。
以上の構成により、回路を2倍化することなく、小さい回路規模増または処理量増ながらも、サイドチャネル攻撃に安全な認証を実現することが可能となる。
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。いずれの暗号方式を用いた場合でも、秘密鍵が外部に漏洩しないことがセキュリティ上の大きな前提となる。
暗号方式は、公開鍵暗号方式と共通鍵暗号方式に大別される。公開鍵暗号方式とは、暗号化と復号で異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を一般に公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式と呼ばれるものは、暗号化と復号で同一の鍵(秘密鍵)を用いる方式であり、この秘密鍵を送信者と受信者以外の第三者にわからない情報とすることで安全性を保つ方式である。いずれの暗号方式を用いた場合でも、秘密鍵が外部に漏洩しないことがセキュリティ上の大きな前提となる。
セキュリティ機能を備えた組み込み機器に求められる性質として、耐タンパ性(Tamper-proof)と呼ばれるものがある。耐タンパとは、覗き見防止の意味であり、組み込み機器の外部から観察された情報により、組み込み機器内部に格納された重要情報が漏洩しない性質を指す。暗号を用いた認証機器の場合、外部から観察された情報により秘密鍵が漏洩しない性質である。一般的な認証機器は、機器製造時に秘密鍵が内部に書き込まれ、製造後は鍵が外部に取り出されることは無いため、高い耐タンパ性を有すると考えられていた。しかし、1996年に発見されたサイドチャネル攻撃により、認証機器を含めた組み込み装置全般に対して、製造後は鍵を外部に取り出さない場合でも、秘密鍵が漏洩することが判明したため、サイドチャネル攻撃への対策が耐タンパ上の必須課題となった。
サイドチャネル攻撃とは、組み込み機器に対する物理破壊を伴わずに、外部から観察可能な情報を用いて秘密鍵を解読する攻撃である。1996年には、処理時間を観察するタイミング攻撃(非特許文献1)が提案されたが、対策も容易であったため大きな脅威とならなかった。しかし1998年に、消費電力を観察する電力解析攻撃(Power Analysis, 以下PA)と呼ばれる手法が提案され、大きな脅威として現在でも注目されている。PAとは、1998年にPaul Kocherによって考案された手法で、組み込み機器に様々な入力データを与えた時の電力消費データを収集・解析することで、内部の鍵情報を推定する手法である。特に、組み込み機器がスマートカードチップや認証チップなどの単体のLSIチップである場合、消費電力の測定が容易であるため、PA対策は耐タンパ上の大きな課題である。PAを用いることで、公開鍵暗号、秘密鍵暗号共に暗号プロセッサから秘密鍵を推定できることが知られている。
PAには、単純電力解析(Single Power Analysis, 以下SPA), 電力差分攻撃(Differential Power Analysis, 以下DPA)の2種類が存在する。SPAは暗号プロセッサにおける単一の電力消費データの特徴から秘密鍵の推定を行う方式、DPAは多数の電力消費データの差分を解析することで秘密鍵の推定を行う方式である。共通鍵に限定した場合、SPAは対策が容易であるためほとんど有効ではないが、DPAが有効な攻撃法として知られている。SPA、DPAを用いた解読技術としては代表的なものとして次のような論文が発表されている。RSAなどの公開鍵暗号に対するDPAを用いた解読法については、非特許文献2などの文献にて述べられている。また、共通鍵暗号方式において、旧来の標準として利用されているDES(Data Encryption Standards)に対するDPAを用いた解読法については、非特許文献3で述べられている。DESの他に、現在標準的に利用されているAESについては、非特許文献4などの文献でDPAを用いた解読の可能性が指摘されている。
PAを用いた解読技術は特に有効な方法として注目されており、様々な解読法が研究されている。また、解読技術のみならずPAによる解読を防ぐための対策技術も発展しており、解読技術と同様に重要な技術として注目されている。ただし、これらの対策技術を用いた場合、暗号処理を行う回路の回路規模が大きくなるという欠点も知られており、共通鍵暗号に対する専用の対策回路は、未対策の回路の2倍の回路規模が必要という問題がある。認証チップやスマートカードの小型チップにおいては、暗号回路の占める回路規模の割合は非常に大きいため、専用の対策回路を組み込むことはコスト増に直結する。
本実施形態は、専用の対策回路を用いる代わりに、暗号を利用する上位レイヤの認証プロトコルの改良を行うことで、専用の対策回路によるコスト増を招くことなく、未対策の回路と同程度の回路規模による対策つき認証チップを実現することができる。
<チャレンジアンドレスポンス認証プロトコル>
認証チップにおいては、機器の正当性を確認するために、チャレンジアンドレスポンス認証プロトコルと呼ばれる通信プロトコルが利用される。チャレンジアンドレスポンス認証プロトコルの概要を図1に示す。チャレンジアンドレスポンス認証とは、デジタル情報を用いた合言葉であり、認証を行う側(親機101)から認証される側(子機102)に対し、「チャンレジ」と呼ばれる乱数を送信する。これに対し、子機102側では「チャンレンジ」に対して「レスポンス」と呼ばれる応答を生成し、親機101に返信する。親機101は、「チャレンジ」に対する「レスポンス」の値を判断し、もし正しいならば、子機102が正当な機器であると判断する。
認証チップにおいては、機器の正当性を確認するために、チャレンジアンドレスポンス認証プロトコルと呼ばれる通信プロトコルが利用される。チャレンジアンドレスポンス認証プロトコルの概要を図1に示す。チャレンジアンドレスポンス認証とは、デジタル情報を用いた合言葉であり、認証を行う側(親機101)から認証される側(子機102)に対し、「チャンレジ」と呼ばれる乱数を送信する。これに対し、子機102側では「チャンレンジ」に対して「レスポンス」と呼ばれる応答を生成し、親機101に返信する。親機101は、「チャレンジ」に対する「レスポンス」の値を判断し、もし正しいならば、子機102が正当な機器であると判断する。
「チャレンジ」として乱数を用いることで、対応する「レスポンス」が毎回変化する。これにより、再送攻撃(Replay attack)に対する防御が行える。再送攻撃とは、過去に外部から観察された応答を繰り返すことで、正当な機器の成りすましを行う攻撃である。つまり、乱数を用いない場合、チャンレジとレスポンスのペアが完全に固定値になる。このため、攻撃者がこのペアを観察することで、チャレンジに対応する適切なレスポンスを知ることができ、このレスポンスを返すチップを製造することでチップ偽造が容易となるからである。例えるならば、「山」に対する「川」という合言葉しか用いないシステムであることを、悪意のある第三者が知ることができれば、常に「川」と応答することで成りすましが可能となる。
「チャレンジ」に対する「レスポンス」の生成は、暗号関数を用いた方法が一般的である。どの暗号関数を用いるかによってメリットとデメリットがあるが、認証チップの場合、回路規模の小ささを優先できるメリットがある共通鍵暗号を用いる方法が広く用いられている。図2は、共通鍵暗号を用いた一般的に考えられるチャレンジアンドレスポンス認証(片側認証、暗号化・復号)の機能ブロックである。図2に示す認証方式(プロトコル)は、親機101と子機102の認証チップ間で、秘密鍵Kを事前共有している。これは、チップの製造時にKの値を書き込むことで実現できる。この値が外部に漏洩しないことがセキュリティ上の重要な前提である。認証を行なう側の親機101は、乱数rを生成し、認証される側の子機102に送信する(図2のS201)。子機102は、乱数rに対し、秘密鍵Kによる暗号処理a=Enc(r, K)を実行し、応答aを生成し、親機101に返信する(図2のS202)。ただし、C=Enc(P,K)とは、共通鍵暗号を用いて、平文Pを鍵Kにより暗号化した結果が暗号文Cであることを表す。応答aを受け取った親機101は、秘密鍵Kによる復号処理r’=Dec(a,K)を実行し、復号結果r’を得る(図2のS203)。復号結果r'がrと一致するならば、親機101は子機102を正当な機器と認定する。乱数rに対応した正当なレスポンスaを生成できるのは、秘密鍵Kを有する場合に限られるので、親機101は子機102の正当性を確認することができる。図2は暗号化と復号の両方を利用した親機101のみによる片側認証であるが、暗号化のみによるチャンレジアンドレスポンス認証も可能であり、その方法は図3に示される。
図3は、共通鍵暗号を用いた一般的に考えられるチャレンジアンドレスポンス認証(片側認証、暗号化のみ)の機能ブロック図である。図3では、親機101と子機102の認証チップ間で、秘密鍵Kを事前共有しており、認証を行なう側の親機101は、乱数rを生成し、認証される側の子機102に送信する(図3のS301)。子機102は、乱数rに対し、秘密鍵Kによる暗号処理a=Enc(r, K)を実行し、応答aを生成し、親機101に返信する(図3のS302)。ここまでは図2と同じであるが、親機101が子機102の正当性を確認するために、応答aを復号する代わりに乱数rを暗号化しa’=Enc(r, K)、その処理結果a’が子機102からの応答aと一致するか判定する。そして、一致するならば子機102が正当であると判断する(図3のステップS303)。
図2、図3は、片側認証と呼ばれる、親機101が子機102の正当性を確認するための認証プロトコルである。これでは、子機102は親機101の正当性を確認することができないため、子機102は親機101の不正を防止できない。これを防ぐために、子機102も親機101の正当性を確認する手段が必要である。これを実現するのが両側認証と呼ばれる認証プロトコルであり、子機102が親機101にチャレンジを送信し、親機101からのレスポンスを確認する処理が行われる。
図2の認証プロトコルを両側認証に拡張した認証プロトコルを図4に示す。すなわち、図4は、共通鍵暗号を用いた一般的に考えられるチャレンジアンドレスポンス認証(両側認証、暗号化・復号)の機能ブロック図である。図2と同様、親機101が乱数rを子機102に送信し(図4のS401)、子機102がrを秘密鍵Kで暗号化した結果aを計算する(図4のS403)。図2との違いは、このとき子機102側でも乱数sを生成することである(図4のS402)。次にa,sが親機101に送信され、親機101はaを秘密鍵Kで復号し、rと一致するなら子機102が正当であると判断し、さらに秘密鍵Kを用いてsを暗号化した結果bを生成する(図4のS404)。このbが子機102に送られた後、子機102は親機101からの応答bを秘密鍵Kにより復号し、その結果がsと一致するならば親機101が正当であると判断する(図4のS405)。
図4は暗号化・復号を用いた両側認証であるが、暗号化のみの認証も可能であり、その機能ブロック図は図5に示される。親機101が乱数rを子機102に送信し(図5のS501)、子機102がrを秘密鍵Kで暗号化した結果aを計算しつつ、乱数sを生成し(図5のS502)、a,sを親機101に送信する(図5のS503)。親機101はrを秘密鍵Kで暗号化した結果a’が子機102からの応答aと一致するならば、子機102が正当であると判断した上で、子機102からの乱数sを秘密鍵Kにより暗号化した結果bを生成し、子機102に送信する(図5のS504)。子機102は、乱数sを秘密鍵Kにより暗号化した結果b’を生成し、bに一致するならば親機101が正当であると判断する(図5のS505)。
<共通鍵暗号回路に対するDPAによる秘密鍵解読手法>
図6は、共通鍵暗号の一般的な処理(鍵XOR処理とテーブル変換の組み合わせ)のアルゴリズムを示す図である。Mは平文(もしくは暗号文)などの入力データ、Kは拡大鍵である。図6に示すKは、拡大鍵と呼ばれる値であり、秘密鍵をもとに、特定の処理を行うことでビット長を拡大することで生成される値である。MとKの排他的論理和(XOR)した結果を、特定のビット長データごとに分割し、それぞれの分割されたデータに対し、Sboxと呼ばれる変換テーブル演算を行う。M,Kは共通鍵暗号によって異なり、例えばDESの場合48-bit(ビット), AESの場合128-bitである。Sboxのビット長は暗号に依存するが、例えばDESの場合6-bit入力4-bit出力、AESの場合8-bit入力8-bit出力である。a-bit入力b-bit出力のSboxの回路規模は、a×b×2aに比例して大きくなるため、Sbox入出力のビット長には上限があり、8-bit入出力Sboxが最も大きいものとして知られている。
図6は、共通鍵暗号の一般的な処理(鍵XOR処理とテーブル変換の組み合わせ)のアルゴリズムを示す図である。Mは平文(もしくは暗号文)などの入力データ、Kは拡大鍵である。図6に示すKは、拡大鍵と呼ばれる値であり、秘密鍵をもとに、特定の処理を行うことでビット長を拡大することで生成される値である。MとKの排他的論理和(XOR)した結果を、特定のビット長データごとに分割し、それぞれの分割されたデータに対し、Sboxと呼ばれる変換テーブル演算を行う。M,Kは共通鍵暗号によって異なり、例えばDESの場合48-bit(ビット), AESの場合128-bitである。Sboxのビット長は暗号に依存するが、例えばDESの場合6-bit入力4-bit出力、AESの場合8-bit入力8-bit出力である。a-bit入力b-bit出力のSboxの回路規模は、a×b×2aに比例して大きくなるため、Sbox入出力のビット長には上限があり、8-bit入出力Sboxが最も大きいものとして知られている。
図6の構成においてwj の入出力に関係するビットのみを取り出した構成を図7に示す。図7において、mjは平文などの既知の値、kjは未知の値、wjは既知のSboxテーブルであると仮定する。この仮定の下で、DPAにより拡大鍵Kの部分鍵kjを推定できることを示す。
DPAは電力消費データの測定と、電力差分データを用いた鍵の解析という2段階から構成される。電力消費データの測定において、ある平文を与えたときに暗号プロセッサが消費する電力消費データは、オシロスコープ等を用いれば、図8に示すような電力消費曲線として測定される。平文の値を様々に変えながらこのような測定を繰り返し、十分な回数の測定データが得られた時点で測定を終了する。この一連の測定で得られた電力消費曲線の集合をGとする。
次に電力消費曲線を用いた拡大鍵の解析について説明を行う。暗号処理内部で用いられている拡大鍵の部分鍵kjについて、kj =k’jであるという仮定を立てる。mj, wjが既知のため、このk’jの仮定に基づき、集合Gは以下のG0(k’j), G1(k’j)に示す2種類の集合に分類できる。
そして、以下に示す電力差分曲線DG(k’j)を作成する。
DG(k’i) = (集合G1に属する電力消費曲線の平均) - (集合G0に属する電力消費曲線の平均) ・・・(3)
DG(k’i) = (集合G1に属する電力消費曲線の平均) - (集合G0に属する電力消費曲線の平均) ・・・(3)
もしこの仮定が正しい、すなわちk’j=kjである場合、図9上段に示すようなスパイクが現われる。もしこの仮定が誤り、すなわちk’j≠kjである場合、図9下段に示すようにスパイクが現れない平坦な曲線となる。よって、仮定したk’jから図9上段のような電力差分曲線が得られれば、拡大鍵の部分鍵kjを解読できたことになる。このようなkjの解読を各jについて行えば、最終的に図6における鍵Kの全てを解読することができる。拡大鍵K自身は、48-bitや128-bitの大きなビット長をもつため総当りによる解読が困難であるが、k’j, kjはSbox入力に関連する鍵のビット長であり、高々8-bitであるため、上記の手法による総当り解読は容易である。
この解読を、全ての拡大鍵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)
(G1に属するzjの平均ハミングウェイト) - (G0に属するzjの平均ハミングウェイト) = 1 ・・・(4)
一方、k’j≠kjの場合(4)式は成立せず、ランダムな分類を行うことになるので(5)式が成立する。
(G1に属するzjの平均ハミングウェイト) - (G0に属するzjの平均ハミングウェイト)
= 0 ・・・(5)
ただし、ハミングウェイトとは、ある値をビット値で表現したときにビット値=’1’となる個数のことであり、例えばビット値(1101)2のハミングウェイトは3である。
(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)式の場合はスパイクが現れず、平坦な曲線となる。
従って、k’j=kjである場合、(4)式が満たされることで消費電力の差が電力差分曲線上のスパイクという形になって現れるが、(5)式の場合はスパイクが現れず、平坦な曲線となる。
以上の説明では、最も簡単な図6の構造に対するDPAに関して述べたが、このような手法は、図10に示すように、拡大鍵の前後に線形変換を挿入しても成立することが判明している。すなわち、図10は、共通鍵暗号の一般的な処理(鍵XOR処理とテーブル変換と線形変換の組み合わせ)のアルゴリズムを示す図である。図10は、図6を一般化した構造であり、鍵XOR処理の前後に2つの線形変換処理L1, L2を入れた処理構造である。例えば、L1は入力をそのまま出力する関数、L2をビット転置置換関数、wjをSC2000のB関数と呼ばれるSboxにすることで、図10はSC2000と等価な構造を表す。なお、SC2000の仕様については、非特許文献6に詳細が開示されている。L2はビット置換関数であるので、wjの入出力に関係するビットのみを取りだした構造を考えることで、図11と同一の処理に変換でき、前述と同様のDPAを用いることで、拡大鍵Kを解読することができる。
以上の手法では、非線形処理中のSbox出力に注目してDPAを適用しているが、そのほかにも、入力mjと鍵kjとのXOR直後の値(鍵XOR処理の出力値)やSboxへの入力値xjの値に注目してDPAを適用する手法が知られている(非特許文献7)。
上記を整理すると、次の条件を満たす場合にDPAにより秘密鍵が推定される。図11は、DPAによる秘密鍵推定が可能な条件の説明図である。
DPA-1.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定、Sbox wjの変換が既知の場合、図11のAの部分(Sbox wjの出力)の電力消費曲線を測定することでDPA可能。
DPA-2.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のBの部分(鍵XOR処理の出力の書き出し)の電力消費曲線を測定することでDPA可能。
DPA-3.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のCの部分(Sbox wjを索引するための入力値のロード)の電力消費曲線を測定することでDPA可能。
DPA-1.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定、Sbox wjの変換が既知の場合、図11のAの部分(Sbox wjの出力)の電力消費曲線を測定することでDPA可能。
DPA-2.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のBの部分(鍵XOR処理の出力の書き出し)の電力消費曲線を測定することでDPA可能。
DPA-3.:入力Mが既知かつ制御可能、拡大鍵Kは未知で固定の場合、図11のCの部分(Sbox wjを索引するための入力値のロード)の電力消費曲線を測定することでDPA可能。
<一般的に考えられるDPA対策手法>
一般的に考えられるDPA対策法としては、暗号処理に対策を施し消費電力をランダム化する手法が存在する。この手法の代表的なものとして、masking method と呼ばれている手法が知られている(非特許文献8。以下「一般的に考えられる手法1」と呼ぶ)。DPA対策なしの暗号処理において計算されるデータをMとすると、非特許文献8に記載されているDPA対策は、データMを計算する代わりに、
で表されるデータM’,Rを計算することで暗号処理を行う方法である。ただしRは乱数であり、暗号処理を実行する度に発生させる値である。この方法により、暗号処理のデータをランダムな値でマスクされる。よって、データがランダム化されることで消費電力もランダム化されるため、DPAに安全な処理を実現することができる。この方法の問題点は、M’, Rの両方を計算する必要があるため、対策なしの回路の2倍の回路規模を必要とすることである。
一般的に考えられるDPA対策法としては、暗号処理に対策を施し消費電力をランダム化する手法が存在する。この手法の代表的なものとして、masking method と呼ばれている手法が知られている(非特許文献8。以下「一般的に考えられる手法1」と呼ぶ)。DPA対策なしの暗号処理において計算されるデータをMとすると、非特許文献8に記載されているDPA対策は、データMを計算する代わりに、
で表されるデータM’,Rを計算することで暗号処理を行う方法である。ただしRは乱数であり、暗号処理を実行する度に発生させる値である。この方法により、暗号処理のデータをランダムな値でマスクされる。よって、データがランダム化されることで消費電力もランダム化されるため、DPAに安全な処理を実現することができる。この方法の問題点は、M’, Rの両方を計算する必要があるため、対策なしの回路の2倍の回路規模を必要とすることである。
AESにおける非特許文献8の応用事例として、図12のDPA未対策回路に対し、上記一般的に考えられる手法1を適用したAES回路を図13に示す。この回路においては、図12で計算しているデータMiの代わりに、乱数Riに対して
を満たすMi’とRiの2つのランダムなデータを計算する。暗号化処理ごとに計算されるデータ値がランダムであるため、DPAに対して安全な処理を実現することができる。ただし、データをMi’とRiの両方について計算しなくてはならないため、回路規模が増大する。(図12のおよそ2倍)。図12ではAESのSubbyte処理を、固定データによる静的なSbox変換テーブルS[x] を用いたテーブル参照処理(0≦x≦255)によって行う。Subbyte処理で用いられる変換テーブルS[x]は、Sboxと呼ばれる。これに対して、図13で用いられるSboxのテーブルデータS’[x]は、乱数Rin, Routに応じて
に従ったS’[x]を、x=0,1,...,255それぞれに対して作成する必要がある。
を満たすMi’とRiの2つのランダムなデータを計算する。暗号化処理ごとに計算されるデータ値がランダムであるため、DPAに対して安全な処理を実現することができる。ただし、データをMi’とRiの両方について計算しなくてはならないため、回路規模が増大する。(図12のおよそ2倍)。図12ではAESのSubbyte処理を、固定データによる静的なSbox変換テーブルS[x] を用いたテーブル参照処理(0≦x≦255)によって行う。Subbyte処理で用いられる変換テーブルS[x]は、Sboxと呼ばれる。これに対して、図13で用いられるSboxのテーブルデータS’[x]は、乱数Rin, Routに応じて
に従ったS’[x]を、x=0,1,...,255それぞれに対して作成する必要がある。
このように一般的に考えられる手法1による対策法を、認証チップの共通鍵暗号回路に搭載することで、サイドチャネル攻撃に対する防御を実現できる。しかし、DPA対策無しの回路と比較して、回路規模が大きいという問題が発生する。
そこで、以下の各実施形態は、前述した一般的に考えられる手法1に示されるような専用の対策つき暗号回路を用いる代わりに、暗号より上位層の認証プロトコルへの改良によりサイドチャネル攻撃に安全な処理を実現する。暗号回路そのものは、未対策の回路をそのまま用いるため、前述した一般的に考えられる手法1が有する問題点を回避する。認証プロトコルは、乱数を伴う処理であるため、この乱数を適切に利用することで、サイドチャネル攻撃に対して安全となる方法が考えられる。すなわち、一般的なチャレンジアンドレスポンス認証では、前述した図2~5に示されるように、固定の秘密鍵Kに対する暗号化処理が行われるが、これはサイドチャネル攻撃に対して脆弱な条件である。この欠点は、乱数を用いて秘密鍵をマスク化することで一見克服できそうであるが、発明者の分析によればこの方法もサイドチャネル攻撃に対して脆弱であることが判明した。
以下、基本概念1、基本概念2に基づく各実施形態について説明する前に、乱数を用いた単純な秘密鍵のランダム化法について説明する。そして、発明者の分析によりその方法が安全でないことを示したうえで、その問題点を克服した各実施形態について説明する。
<単純な秘密鍵のランダム化(失敗事例)>
図14は、単純な鍵のランダム化による認証プロトコルの例1(片側認証、暗号化・復号)の機能ブロック図である。これは、図2をベースとしており、片側認証かつ暗号化・復号の両方を利用する認証プロトコルである。親機101側で生成した乱数rを子機102に送信し(図14のS1401)、子機102はこの乱数rと秘密鍵Kによる暗号化処理を行ことでレスポンスaを生成する(図14のS1402)。このレスポンスa生成の際、
のように、鍵を乱数rでマスクした上で生成する。親機101に送信されたレスポンスは、親機101側で
により復号され、r’がrと一致するか確認する(図14のS1403)。
図14は、単純な鍵のランダム化による認証プロトコルの例1(片側認証、暗号化・復号)の機能ブロック図である。これは、図2をベースとしており、片側認証かつ暗号化・復号の両方を利用する認証プロトコルである。親機101側で生成した乱数rを子機102に送信し(図14のS1401)、子機102はこの乱数rと秘密鍵Kによる暗号化処理を行ことでレスポンスaを生成する(図14のS1402)。このレスポンスa生成の際、
のように、鍵を乱数rでマスクした上で生成する。親機101に送信されたレスポンスは、親機101側で
により復号され、r’がrと一致するか確認する(図14のS1403)。
鍵Kをランダム化することで、サイドチャネル攻撃に一見安全そうであるが、脆弱であると結論付けられる。なぜなら、乱数rは親機101と子機102の間で共有するために送信される値であり、外部から容易に観察可能であるため、この観察された値を用いて、前述した(1)式および(2)式に示される部分鍵kj’を、攻撃者が推定した部分鍵に乱数rをXORされた値に置き換えることで、通常のサイドチャネル攻撃と同じ手順で鍵を解読できるからである。
同じ問題は、図14をさらに拡張した図15で発生する。図15は、単純な鍵のランダム化による認証プロトコルの例2(片側認証、暗号化・復号)の機能ブロック図である。この図15は、鍵をXORマスクする乱数r(図15のS1501)が外部から観察可能であるため脆弱であった図14の問題を解消するために、鍵をマスクする乱数の作成方法を変更し、rの代わりに
を生成し、このmrを用いて秘密鍵Kをマスク化することでレスポンス
を生成する(図15のS1502、S1503)。mrが外部から観察できない値であるので、レスポンス生成がサイドチャネル攻撃に対して安全そうに見えるが、レスポンス生成の前段階の処理であり、mrを生成するときの処理の消費電力を測定することで、図14と同様の手法により秘密鍵Kを解読することができる。
を生成し、このmrを用いて秘密鍵Kをマスク化することでレスポンス
を生成する(図15のS1502、S1503)。mrが外部から観察できない値であるので、レスポンス生成がサイドチャネル攻撃に対して安全そうに見えるが、レスポンス生成の前段階の処理であり、mrを生成するときの処理の消費電力を測定することで、図14と同様の手法により秘密鍵Kを解読することができる。
図14、図15の事例に示されるように、乱数を用いて鍵を単純にランダム化する手法だけでは、サイドチャネル攻撃に対して安全な認証プロトコルを実現することができない。以下の各実施形態はこの問題を解決し、対策つきの専用回路を用いなくともサイドチャネル攻撃に対して安全な認証プロトコルを実現する方式を示す。各実施形態について説明する前に、なぜ乱数を用いて鍵を単純にランダム化する手法だけでは安全でないかの理由を説明する。
図16に、AES暗号回路を事例として、サイドチャネル攻撃が成功する要因の図を示す。128-bitの拡大鍵Kが、128-bit平文とXORされた後、8-bitごとに16分割され、それぞれのデータがSboxに入力される。攻撃者は、それぞれのSboxの消費電力データを利用することで、8-bitごとに分割された拡大鍵K=k15||…||k0に対し、8-bit部分鍵kjそれぞれの総当りを前述の(1)式および(2)式に従い実行する。つまり、128-bitの鍵の総当りには本来2128の手間が必要であるのに対し、サイドチャネル攻撃を用いることで28の手間を16回28×16=212に減らすことができる。すなわち、サイドチャネル攻撃に必要な手間は、Sboxの入力に関連した部分鍵のビット長によって決定する。このビット長は共通鍵暗号方式によって変動するが、既に説明したとおりAESの8-bitが最大である。つまりSbox入力の部分鍵ビット長が最も長いAESに対しても図16の考えに基づいた攻撃が成功するならば、その他の共通鍵暗号ではさらに容易に成功することになる。これは、図17に示すように、チャレンジアンドレスポンスの乱数で鍵をマスク化した場合でも同じである。鍵をマスク化した乱数が外部から観察可能であるので、乱数による鍵のマスク化の有無に関係なく、Sboxの入力に関連する部分鍵のビット長の総当りにより、鍵を解読することができる。
<実施形態の基本概念>
以上説明したように、チャレンジアンドレスポンスで用いる乱数をそのまま秘密鍵のマスクに用いても、サイドチャネル攻撃に対して安全な処理を実現することができない。この問題を克服するために、以下の各実施形態では、単純な秘密鍵のランダム化を行う代わりに、以下の3段階の手順を実行する。
(手順-1) 秘密鍵を複数個準備し
(手順-2) 乱数を用いて1つの鍵に圧縮し
(手順-3) (発明手法-2)で圧縮された鍵を、従来の認証プロトコルで用いられる秘密鍵Kの代わりに使用
以上説明したように、チャレンジアンドレスポンスで用いる乱数をそのまま秘密鍵のマスクに用いても、サイドチャネル攻撃に対して安全な処理を実現することができない。この問題を克服するために、以下の各実施形態では、単純な秘密鍵のランダム化を行う代わりに、以下の3段階の手順を実行する。
(手順-1) 秘密鍵を複数個準備し
(手順-2) 乱数を用いて1つの鍵に圧縮し
(手順-3) (発明手法-2)で圧縮された鍵を、従来の認証プロトコルで用いられる秘密鍵Kの代わりに使用
単純なランダム化を実行する代わりに、(手順-2)に示されるようなランダムな鍵圧縮を実行することで、サイドチャネル攻撃に対する安全性と、小規模・高速な暗号処理を両立することができる(基本概念1)。
さらに、(手順-2)に示す乱数は、認証を行う側(片側認証における親機101側)で生成した乱数のみならず、認証される側(片側認証における子機102側)で生成した乱数を利用することで、さらに安全性を高めることができる(基本概念2)。基本概念1、基本概念2に共通する基本アイデアを図18に示す。
さらに、(手順-2)に示す乱数は、認証を行う側(片側認証における親機101側)で生成した乱数のみならず、認証される側(片側認証における子機102側)で生成した乱数を利用することで、さらに安全性を高めることができる(基本概念2)。基本概念1、基本概念2に共通する基本アイデアを図18に示す。
図18に示される通り、この基本アイデアでは、鍵を複数個(n個)準備し、それらを乱数を用いて1つに圧縮する。以下、乱数を用いて鍵を圧縮する処理をランダムな鍵圧縮と呼び、圧縮された鍵を圧縮鍵と呼ぶ。このアイデアは、チャレンジアンドレスポンス認証で用いる乱数は外部から観察されることは不回避であるという前提に基づくものであり、乱数が観察されたとしても、サイドチャネル攻撃における攻撃者の手間を増やすことが狙いである。ランダムな鍵圧縮は、以下の2条件を満たすものとする。
(cond-1) n個の鍵と乱数の値が分かれば、圧縮鍵の値も分かる
(cond-2) 乱数とn個の鍵が全て分からない限り、圧縮鍵の値は分からない。
(cond-1) n個の鍵と乱数の値が分かれば、圧縮鍵の値も分かる
(cond-2) 乱数とn個の鍵が全て分からない限り、圧縮鍵の値は分からない。
サイドチャネル攻撃においては、Sboxの入力する部分鍵のビット値が全て確定しないと、前述した(1)式および(2)式に示す攻撃を実施することはできない。この部分鍵は、図18の圧縮鍵に相当する値である。しかし、上記の (cond-1)(cond-2)により、全ての圧縮鍵のビット値を確定するためには、乱数が外部に観察されたとしても、n個の部分鍵全ての値がわからない限り不可能となる。つまり、サイドチャネル攻撃を成功させるためには、一般的には一つの部分鍵に関する総当りを実施すればよかったのに対し、ランダムな鍵圧縮を用いることで、n個の部分鍵全てに関する総当りを実施する必要がある。例えばAESの場合、一般的に考えられる手法ならば28の手間で解読できたのに対し、ランダムな鍵圧縮を用いることで(28)nの手間となる。例えばn=8の場合264の手間となる。サイドチャネル攻撃における264は、現実的に不可能な計算量であるため、安全となる。
基本概念1は、ランダム鍵圧縮に用いる乱数として、チャレンジアンドレスポンスに用いる乱数をそのまま利用していた。チャレンジアンドレスポンスにおいては、暗号処理により応答を生成する機器と、応答生成に必要な乱数を生成するのは別の機器である。つまり、暗号処理を行う機器とは別の機器により乱数生成が行われる。もし、乱数生成をする側が不正行為を行い、常に変化すべき乱数を固定値として与えた場合、圧縮鍵が常に固定値となるため、攻撃に必要な手間が従来法と同じとなり、サイドチャネル攻撃を防ぐことができない。この攻撃を防ぐためには、応答を生成する側の機器から外部から受け取る乱数rに加えて、応答を生成する側の機器でも別の乱数sを生成し、これら2つの乱数r,sを用いて鍵圧縮を行うことである。これは基本概念2のアイデアであり、概要は図19に示される。
認証機器は、認証プロトコルの通信相手から乱数rを受け取り、さらに自分自身でも乱数sを生成する。鍵圧縮処理はrとsの2つの乱数を用いて行うことで、外部入力乱数rが意図的に固定化された場合でも、内部生成された乱数sがランダムに変化することで、圧縮鍵が固定化されることを防ぎ、サイドチャネル攻撃に対する安全性を実現する。内部生成された乱数sは、外部出力され通信相手の認証機器に送信される。なぜなら、通信相手の機器も同じ圧縮鍵を生成する必要があるためであり、通信相手の機器は、自分自身が送信した乱数rと受け取ったsを元に、同じ圧縮鍵を生成する。
基本概念1,2を、チャレンジアンド認証プロトコルに応用した認証プロトコルに関する第1から第8の実施形態を図20から図27に示す。図20,図21,図22,図23は、それぞれ基本概念1を図2,図3,図4,図5の認証プロトコルに応用したものである。また、図24,図25,図26,図27は、それぞれ基本概念2を図2,図3,図4,図5の認証プロトコルに応用したものである。
図20から図27の全てにおいて、親機101と子機102はn個の鍵K1, K2, …, Knを事前共有するものとする。図20,図21,図22,図23に示す基本概念1を用いた認証プロトコルは、基本的には図2,図3,図4,図5に示す認証プロトコルと同じである。図20,図21,図22,図23において、図2,図3,図4,図5の場合と同じ処理には、同じステップ番号(Sで始まる番号)を付してある。図20,図21,図22,図23が、図2,図3,図4,図5と異なる点は、親機101側で生成した乱数rと、n個の鍵K1, K2, …, Knを用いて、圧縮鍵Kcmpを生成し、この鍵を用いて暗号化処理を行う点である。子機102側では、図20のS2001、図21のS2101、図22のS2201、図23のS2301の各処理である。親機101側では、図20のS2002、図21のS2102、図22のS2202、図23のS2302の各処理である。図20,図21,図22,図23において、これらの鍵圧縮処理は
Kcmp = Compress(K1, K2, …, Kn, r)
と表現されており、圧縮処理を行うCompress関数はさまざまな実装形態が存在する。Compress関数の具体的な構成については、後述する。
Kcmp = Compress(K1, K2, …, Kn, r)
と表現されており、圧縮処理を行うCompress関数はさまざまな実装形態が存在する。Compress関数の具体的な構成については、後述する。
図24,図25,図26,図27に示す基本概念2を用いた認証プロトコルは、基本的には図2,図3,図4,図5に示すプロトコルと同じである。図24,図25,図26,図27において、図2,図3,図4,図5の場合と同じ処理には、同じステップ番号(Sで始まる番号)を付してある。図24,図25,図26,図27が、図2,図3,図4,図5と異なる第一の相違点は、図2,図3では行っていなかった、子機102側の乱数sの生成処理が図24,図25で実行されている点である。図24のS2401、図25のS2501の各処理である。第二の相違点は、親機101側で生成した乱数rと、子機102側で生成した乱数s、およびn個の鍵K1, K2, …, Knを用いて、圧縮鍵Kcmpを生成し、この鍵を用いて暗号化処理を行う点である。子機102側では、図24のS2402、図25のS2502、図26のS2601、図27のS2701の各処理である。親機101側では、図24のS2403、図25のS2503、図26のS2602、図27のS2702の各処理である。図24,図25,図26,図27において、これらの鍵圧縮処理は
Kcmp = Compress_2(K1, K2, …, Kn, r,s)
と表現されており、圧縮処理を行うCompress_2関数はさまざまな実装形態が存在する。Compress_2関数の具体的な構成については、後述する。
Kcmp = Compress_2(K1, K2, …, Kn, r,s)
と表現されており、圧縮処理を行うCompress_2関数はさまざまな実装形態が存在する。Compress_2関数の具体的な構成については、後述する。
<Compress関数の基本構造>
基本概念1の鍵圧縮に用いられるCompress関数の基本構造を図28に示す。n個の鍵K1,...Knがそれぞれu-bitである。n個のu-bit鍵それぞれは、結線を用いたビット分割によりt個のg-bitブロックに分割される。鍵圧縮は、ブロック単位での実行をt回繰り返すことで実行される。すなわち、n個の鍵K1,...Knの1番目のブロックであるn個のg-bit値に対して、圧縮化回路2803で鍵圧縮処理を行った結果のg-bit値が、圧縮鍵Kcmpの1番目のk-bitブロック値となる。同様の処理を2番目からt番目のブロックについて繰り返すことで、圧縮鍵Kcmpの全てのブロック値が決定される。入力値のブロックの選択にはセレクタ(MUX)2801が、出力値のブロックの選択にはデマルチプレクサ(DEMUX)2804が用いられる。
基本概念1の鍵圧縮に用いられるCompress関数の基本構造を図28に示す。n個の鍵K1,...Knがそれぞれu-bitである。n個のu-bit鍵それぞれは、結線を用いたビット分割によりt個のg-bitブロックに分割される。鍵圧縮は、ブロック単位での実行をt回繰り返すことで実行される。すなわち、n個の鍵K1,...Knの1番目のブロックであるn個のg-bit値に対して、圧縮化回路2803で鍵圧縮処理を行った結果のg-bit値が、圧縮鍵Kcmpの1番目のk-bitブロック値となる。同様の処理を2番目からt番目のブロックについて繰り返すことで、圧縮鍵Kcmpの全てのブロック値が決定される。入力値のブロックの選択にはセレクタ(MUX)2801が、出力値のブロックの選択にはデマルチプレクサ(DEMUX)2804が用いられる。
圧縮化回路2803でのそれぞれのブロックの鍵圧縮処理においては、第一の乱数rによりn個のランダム化回路2802でランダム化処理が行われた結果、それぞれh-bitの中間出力値L1, ..., Lnを得る。ランダム化回路2802でのランダム化処理としては、さまざまな演算が適用可能である。回路規模が小さな演算としては、
・乱数と鍵の単純なビット結合 (g<h)
・乱数ビット値に応じた鍵の巡回シフト (g=h)
・乱数ビット値に応じて鍵に対する巡回シフトレジスタ(LFSR)処理の実行 (g=h)
・乱数と鍵のXOR (g==h)
・乱数と鍵のg-bit加算・減算(g==h)
・乱数と鍵のGF(2g)上の乗算(g<h)
が挙げられる。これらの演算を用いることで、乱数と鍵の全てのビットが、演算結果Liの値に対して影響を及ぼす。次に、中間出力値L1,...,Lnに対して、圧縮化回路2803圧縮処理を行うことで、g-bitの圧縮鍵Kcmpを出力する。この圧縮処理は、L1,...,Lnの全てのビットがKcmpに影響を及ぼす関数であれば、様々な演算が適用可能である。回路規模が小さな演算としては、
・全ての値のXOR(ランダム化処理がg==hの場合に限定)
・全ての値のg-bit加算(ランダム化処理がg==hの場合に限定)
・全ての値をXOR後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値を加算後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値をビット結合後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
が挙げられる。これらの処理を用いることで、L1,...,Lnの全てのビットがKcmpに影響を及ぼす。以上の2段階の処理を経ることで、前述した図18および図19の基本概念1,2の説明で示した(cond-1)(cond-2)が満たされた、ランダム鍵圧縮処理を実現できる。なぜなら、入力から一意に出力が決定されることで、(cond-1)が満たされ、また入力の全てのビットが出力に影響することで、(cond-2)が満たされるからである。
・乱数と鍵の単純なビット結合 (g<h)
・乱数ビット値に応じた鍵の巡回シフト (g=h)
・乱数ビット値に応じて鍵に対する巡回シフトレジスタ(LFSR)処理の実行 (g=h)
・乱数と鍵のXOR (g==h)
・乱数と鍵のg-bit加算・減算(g==h)
・乱数と鍵のGF(2g)上の乗算(g<h)
が挙げられる。これらの演算を用いることで、乱数と鍵の全てのビットが、演算結果Liの値に対して影響を及ぼす。次に、中間出力値L1,...,Lnに対して、圧縮化回路2803圧縮処理を行うことで、g-bitの圧縮鍵Kcmpを出力する。この圧縮処理は、L1,...,Lnの全てのビットがKcmpに影響を及ぼす関数であれば、様々な演算が適用可能である。回路規模が小さな演算としては、
・全ての値のXOR(ランダム化処理がg==hの場合に限定)
・全ての値のg-bit加算(ランダム化処理がg==hの場合に限定)
・全ての値をXOR後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値を加算後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
・全ての値をビット結合後、GF(2g)の剰余演算(ランダム化処理におけるg,hの制限なし)
が挙げられる。これらの処理を用いることで、L1,...,Lnの全てのビットがKcmpに影響を及ぼす。以上の2段階の処理を経ることで、前述した図18および図19の基本概念1,2の説明で示した(cond-1)(cond-2)が満たされた、ランダム鍵圧縮処理を実現できる。なぜなら、入力から一意に出力が決定されることで、(cond-1)が満たされ、また入力の全てのビットが出力に影響することで、(cond-2)が満たされるからである。
基本概念2の鍵圧縮に用いられるCompress_2関数の基本構造を図29に示す。基本的には図28と同じ構造である。図29において、図28の場合と同じ機能を実行する部分には同じ番号を付してある。図29が図28と異なる点は、第一の乱数rと第二の乱数sを入力することと、これらの乱数を乱数合成回路2901により1つの乱数に変換したうえで利用する点である。乱数合成回路2901は、第一の乱数rと第二の乱数sの全てのビット情報が出力に反映されるならば、様々な演算が適用可能である。回路規模が小さな演算としては、
・2つの乱数のXOR
・2つの乱数のq-bit加算・減算
が挙げられる。ただし、qは乱数のビット長である。
・2つの乱数のXOR
・2つの乱数のq-bit加算・減算
が挙げられる。ただし、qは乱数のビット長である。
図28,図29の「ランダム化回路2802」「圧縮回路2803」「乱数合成回路2901」として用いる回路によって、様々な実施例が存在する。具体例については、後述する。
以下に説明する鍵圧縮回路の第1から第8の実施例は、図28、図29の「ランダム化回路2802」「圧縮回路2803」「乱数合成回路2901」として用いる回路に関するものである。
それぞれの実施例で用いられる回路の組み合わせは以下の通りである。
*基本概念1を用いた実施例
・第1の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
・第2の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
・第3の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値のXOR
・第4の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
*基本概念1を用いた実施例
・第1の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
・第2の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
・第3の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値のXOR
・第4の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
*基本概念2を用いた実施例
・第5の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
乱数合成回路2901:2つの乱数のXOR
・第6の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のq-bit加算
・第7の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
・第8の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
・第5の実施例
ランダム化回路2802:乱数ビット値に応じた鍵の巡回シフト
圧縮化回路2803:全ての値のXOR
乱数合成回路2901:2つの乱数のXOR
・第6の実施例
ランダム化回路2802:乱数と鍵の単純なビット結合
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のq-bit加算
・第7の実施例
ランダム化回路2802:乱数ビット値に応じて鍵に対するLFSR処理の実行
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
・第8の実施例
ランダム化回路2802:乱数と鍵のGF(2g)上の乗算 (g<h)
圧縮回路2803:全ての値をXOR後、GF(2g)の剰余演算
乱数合成回路2901:2つの乱数のXOR
上記第1から第8の全ての実施例においては、128-bit共通鍵ブロック暗号において128-bit鍵を用いていると仮定する。すなわち、秘密鍵K1,…,Knのそれぞれは128-bitであり、乱数r,sは最大128-bitであるとする。全てのr,sのビットを鍵圧縮に用いる必要はない。
上記第1から第8のいずれの実施例も、必要な追加回路の回路規模を4.8Kgateから8.7Kgate(Kgateは1000ゲートを示す)と小さく抑えることができ、暗号回路規模を2倍以上大きくする一般的に考えられる手法1より優れた効果を発揮する。例えば、下記文献に記されるサイドチャネル攻撃対策なしのAES回路は、17.6Kgateを必要とするため、この回路が2倍化される構成と比較して、第1から第8の実施例は優れた効果を発揮する。
<実施例1>
図30は、鍵圧縮回路の第1の実施例(基本概念1その1)を示す図である。図30において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦4)のそれぞれは、16-bitごとに8分割され、それぞれKi,7,…, Ki,0と表記される。4つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(8-1MUX)2801により、8分割された16-bit部分鍵のいずれかをセレクトする。セレクトされた4つの16-bit部分鍵それぞれに対して、16-bit乱数を4分割した4-bit乱数に基づき、ランダム化回路2802である巡回シフト回路群により、巡回シフト処理が行われる。巡回シフトは16通りであるため、乱数は4-bitで十分である。4つの16-bit巡回シフト回路の出力は、圧縮化回路2803であるXOR(排他論理和回路)にてXORされることで1つの16-bit値を生成する。この16-bit値は、圧縮鍵Kcmpの16-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,7)の部分鍵を表す。セレクト信号を、8分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(8-1DEMUX)2804にて、j=0,1,…,7全ての圧縮鍵を生成する。
図30は、鍵圧縮回路の第1の実施例(基本概念1その1)を示す図である。図30において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦4)のそれぞれは、16-bitごとに8分割され、それぞれKi,7,…, Ki,0と表記される。4つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(8-1MUX)2801により、8分割された16-bit部分鍵のいずれかをセレクトする。セレクトされた4つの16-bit部分鍵それぞれに対して、16-bit乱数を4分割した4-bit乱数に基づき、ランダム化回路2802である巡回シフト回路群により、巡回シフト処理が行われる。巡回シフトは16通りであるため、乱数は4-bitで十分である。4つの16-bit巡回シフト回路の出力は、圧縮化回路2803であるXOR(排他論理和回路)にてXORされることで1つの16-bit値を生成する。この16-bit値は、圧縮鍵Kcmpの16-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,7)の部分鍵を表す。セレクト信号を、8分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(8-1DEMUX)2804にて、j=0,1,…,7全ての圧縮鍵を生成する。
圧縮された部分鍵は、4つの16-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(216)4=264の手間が攻撃者にとって必要となるため、安全である。
上述の鍵圧縮回路の第1の実施例の回路規模の見積もりについて、以下に説明する。図31は、鍵圧縮回路の実施例の回路規模見積もり基準の表を示す図である。
図31の表は、1-bitあたりの回路規模(gate/bit)を示したものである。ここでは、回路規模を、2入力NAND(2入力NOR)換算ゲート数として示している。図32および図33は、回路規模の算定基準となるNANDゲートおよびNORゲートの回路規模見積を示す図である。図32および図33のように、2入力NANDゲートおよび2入力NORゲートのいずれも、4つのMOSFET(金属酸化絶縁膜半導体電界効果トランジスタ:Metal-Oxide-Semiconductor Field-Effect Transistor)によって1ゲートが構成されている。
図31の表は、1-bitあたりの回路規模(gate/bit)を示したものである。ここでは、回路規模を、2入力NAND(2入力NOR)換算ゲート数として示している。図32および図33は、回路規模の算定基準となるNANDゲートおよびNORゲートの回路規模見積を示す図である。図32および図33のように、2入力NANDゲートおよび2入力NORゲートのいずれも、4つのMOSFET(金属酸化絶縁膜半導体電界効果トランジスタ:Metal-Oxide-Semiconductor Field-Effect Transistor)によって1ゲートが構成されている。
図34は、NOTゲートの回路規模見積を示す図である。NOTゲートは、図34に示されるように2つのMOSFETから構成されるため、図31に示されるように、ゲート数は0.5ゲートとなる。
図35は、1入力D-フリップフロップによって構成されるレジスタの回路規模見積を示す図である。レジスタは、図35に示されるように、4つのNANDゲート(図32参照)と、1つのNORゲート(図33参照)と、4つのNOTゲート(図34参照)と、それぞれ1ゲートからなる4個のゲート単位とから構成される。このため、図31に示されるように、レジスタのゲート数は、1*4+1*1+0.5*4+1*4=11ゲートとなる(“*”は乗算を示す)。
図36は、2入力XOR(排他論理和回路)の回路規模見積を示す図である。XORは、図36に示されるように、2つのNORゲート(図33参照)と、1つのNANDゲート(図32参照)と、1つのNOTゲート(図34参照)とから構成される。このため、図31に示されるように、XORのゲート数は、1*2+1*1+0.5*1=3.5ゲートとなる。
図37は、2-1セレクタの回路規模見積を示す図である。図37(a)はマルチプレクサ(MUX)、図37(b)はデマルチプレクサ(DEMUX)である。マルチプレクサ(MUX)は、図37(a)に示されるように、3つのNANDゲート(図32参照)と、1つのNOTゲート(図34参照)とから構成される。このため、図31に示されるように、2-1セレクタ(MUX)のゲート数は、1*3+0.5*1=3.5ゲートとなる。また、デマルチプレクサ(DEMUX)は、図37(b)に示されるように、2つのNANDゲート(図32参照)と3つのNOTゲート(図34参照)とから構成される。このため、図31に示されるように、2-1セレクタ(DEMUX)のゲート数はやはり、1*2+0.5*3=3.5ゲートとなる。
図38は、加減算器の回路規模見積を示す図である。加減算器は、図38に示されるように、1つの3入力XORゲート(7gate/3入力XOR)(図36参照)と、4つの3入力NANDゲート(2ゲート/3入力NAND)(図32参照)とから構成される。このため、図31に示されるように、加減算器のゲート数は、7*1+2*4=15ゲートとなる。
図39は、シフト/巡回レジスタの回路規模見積(14.5ゲート)を示す図である。シフト/巡回レジスタは、図39に示されるように、1つのセレクタ(MUX)(図37(a)参照)と、1つのレジスタ(図35参照)とから構成される(図39では3段分が示されている)。このため、図31に示されるように、シフト/巡回レジスタのゲート数は、3.5*1+11*1=14.5ゲートとなる。
図40は、LSFR/剰余演算回路の回路規模見積を示す図である。LSFR/剰余演算回路は、図40に示されるように、1つのセレクタ(MUX)(図37(a)参照)と、1つのレジスタ(図35参照)と、ビット位置に対応して0または1個のXORゲート(図36参照)とから構成される(図40では3段分が示されている)。このため、図31に示されるように、LSFR/剰余演算回路のゲート数は高々、3.5*1+11*1+3.5*1=18ゲートとなる。
また、特には図示しないが、ANDゲートおよびORゲートのゲート数は、図31に示されるように、それぞれ1.5ゲートとなる。
ここで、図31は、1-bitあたりの回路規模を示したものであるため、8-bitレジスタならば11×8=88gate(ゲート)、16-bitシフトレジスタならば14.5×16=232gateと見積もられる。さらに、図31は、2入力1出力(2-1と記される)の演算回路の規模を表すが、これはm入力1出力となった場合(m-1と記される)は、2入力1出力の演算回路の(m-1)倍の回路規模である。例えば、10-bit 2-1 XOR回路は3.5×10=35gateであるが、10-bit 4-1 XOR回路は回路規模が3倍となり3×3.5×10=105gateである。20-bit 4-1加算器の場合、(20×15)×3=900gateとなる。
ここで、図31は、1-bitあたりの回路規模を示したものであるため、8-bitレジスタならば11×8=88gate(ゲート)、16-bitシフトレジスタならば14.5×16=232gateと見積もられる。さらに、図31は、2入力1出力(2-1と記される)の演算回路の規模を表すが、これはm入力1出力となった場合(m-1と記される)は、2入力1出力の演算回路の(m-1)倍の回路規模である。例えば、10-bit 2-1 XOR回路は3.5×10=35gateであるが、10-bit 4-1 XOR回路は回路規模が3倍となり3×3.5×10=105gateである。20-bit 4-1加算器の場合、(20×15)×3=900gateとなる。
図41は、図31に示される見積もり基準に基づいて計算される、図30に示される鍵圧縮回路の第1の実施例(基本概念1その1)の回路規模の見積表を示す図である。ただし、図30において、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図41に示されるように、図30において、鍵レジスタ部分が5.6Kgate、セレクタ(8-1MUX)2801の部分が1.6Kgate、ランダム化回路2802である巡回シフトレジスタ部分が0.93Kgateである。さらに、図30において、圧縮化回路2803である4-1XORの部分が0.1Kgate、デマルチプレクサ(8-1DEMUX)2804の部分が0.4Kgateである。この結果、図30の鍵圧縮回路全体の回路規模は、8.6Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例2>
図42は、鍵圧縮回路の第2の実施例(基本概念1その2)を示す図である。図42において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、32-bit乱数を2分割した16-bit乱数がビット結合される。さらに、圧縮化回路2803の構成として、ランダム化回路2802でのビット結合結果の2つの48-bit値がXORされ、このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余演算の結果の32-bitは、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
図42は、鍵圧縮回路の第2の実施例(基本概念1その2)を示す図である。図42において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、32-bit乱数を2分割した16-bit乱数がビット結合される。さらに、圧縮化回路2803の構成として、ランダム化回路2802でのビット結合結果の2つの48-bit値がXORされ、このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余演算の結果の32-bitは、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jである。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図43は、図31に示される見積もり基準に基づいて計算される、図42に示される鍵圧縮回路の第2の実施例(基本概念1その2)の回路規模の見積表を示す図である。ただし、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図43に示されるように、図42において、鍵レジスタ部分が2.8Kgate、セレクタ(4-1MUX)2801の部分が0.67Kgate、圧縮化回路2803の一部である2-1XORの部分が0.12Kgateである。さらに、圧縮化回路2803の一部であるGF(232)剰余回路の部分が0.86Kgate、デマルチプレクサ(4-1DEMUX)2804の部分が0.34Kgateである。この結果、図42の鍵圧縮回路全体の回路規模は、4.8Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例3>
図43は、鍵圧縮回路の第3の実施例(基本概念1その3)を示す図である。図43において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802である32-bitLFSR(Linear Feedback Shift Register)が、セレクトされた2つの32-bit部分鍵それぞれに対して、16-bit乱数を2分割した8-bit乱数ビット値で与えられるシフト量に従ったLFSR処理を実行する。LFSR処理で用いられる多項式は様々なものが知られているが、例えば、
x32+x7+x5+x3+x2+x+1
が利用可能である。次に、圧縮化回路2803であるXOR(排他論理和回路)にて、2つのLFSR処理結果をXORすることで、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804にて、j=0,1,…,3全ての圧縮鍵を生成する。
図43は、鍵圧縮回路の第3の実施例(基本概念1その3)を示す図である。図43において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802である32-bitLFSR(Linear Feedback Shift Register)が、セレクトされた2つの32-bit部分鍵それぞれに対して、16-bit乱数を2分割した8-bit乱数ビット値で与えられるシフト量に従ったLFSR処理を実行する。LFSR処理で用いられる多項式は様々なものが知られているが、例えば、
x32+x7+x5+x3+x2+x+1
が利用可能である。次に、圧縮化回路2803であるXOR(排他論理和回路)にて、2つのLFSR処理結果をXORすることで、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804にて、j=0,1,…,3全ての圧縮鍵を生成する。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図45は、図31に示される見積もり基準に基づいて計算される、図44に示される鍵圧縮回路の第3の実施例(基本概念1その3)の回路規模の見積表を示す図である。。ただし、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図45に示されるように、図44において、鍵レジスタ部分が2.8Kgate、セレクタ(4-1MUX)2801の部分が0.67Kgate、ランダム化回路2802であるLFSRの部分が1.15Kgateである。さらに、圧縮化回路2803である2-1XORの部分が0.1Kgate、デマルチプレクサ(4-1DEMUX)2804の部分が0.34Kgateである。この結果、図44の鍵圧縮回路全体の回路規模は、5.0Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例4>
図46は、鍵圧縮回路の第4の実施例(基本概念1その4)を示す図である。図46において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、64-bit乱数を2分割した32-bit乱数ビット値同士の多項式乗算を行い、2つの64-bit値を生成する。多項式乗算を
と記した場合、多項式乗算は、乗数aを格納するシフトレジスタ1個と、被乗数bを格納するレジスタ1個と、32-bitXOR回路1個により実現できる。さらに、圧縮化回路2803の構成として、ランダム化回路2802での乗算の結果の2つの64-bitがXOR演算される。このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余結果の32-bit値により、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
図46は、鍵圧縮回路の第4の実施例(基本概念1その4)を示す図である。図46において、図28の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。128-bit秘密鍵Ki(1≦i≦2)のそれぞれは、32-bitごとに4分割され、それぞれKi,3,…, Ki,0と表記される。2つのKiそれぞれは、外部から入力されるセレクト信号に従い、セレクタ(4-1MUX)2801が、4分割された32-bit部分鍵のいずれかをセレクトする。次に、ランダム化回路2802において、セレクトされた2つの32-bit部分鍵それぞれに対して、64-bit乱数を2分割した32-bit乱数ビット値同士の多項式乗算を行い、2つの64-bit値を生成する。多項式乗算を
と記した場合、多項式乗算は、乗数aを格納するシフトレジスタ1個と、被乗数bを格納するレジスタ1個と、32-bitXOR回路1個により実現できる。さらに、圧縮化回路2803の構成として、ランダム化回路2802での乗算の結果の2つの64-bitがXOR演算される。このXOR結果に対してGF(232)の剰余演算(GF(232)の剰余回路)が実行される。GF(232)の剰余演算は、例えばCRC符号で用いられる多項式、
x32+x28+x27+x26+x25+x23+x22+x20+x19+x18+x14+x13+x11+x10+x9+x8+x6+1
による剰余演算が適切である。剰余結果の32-bit値により、圧縮鍵Kcmpの32-bit部分鍵Kcmp,jを得る。ただし、Kcmp,jは、下位ビットから数えてj番目(j=0,...,3)の部分鍵を表す。セレクト信号を、4分割された部分鍵それぞれについて切り替えることで、デマルチプレクサ(4-1DEMUX)2804が、j=0,1,…,3全ての圧縮鍵を生成する。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図47は、図31に示される見積もり基準に基づいて計算される、図46に示される鍵圧縮回路の第4の実施例(基本概念1その4)の回路規模の見積表を示す図である。ただし、Kcmpを出力するレジスタは、暗号回路のレジスタと共用するため、評価に含まれない。図47に示されるように、図46において、鍵レジスタ部分が2.8Kgate、セレクタ(4-1MUX)2801の部分が0.67Kgate、ランダム化回路2802である多項式乗算器の一部を構成するシフトレジスタの部分が0.93Kgateである。同じく上記多項式乗算器の一部を構成するレジスタの部分が0.7Kgate、同じく上記多項式乗算器の一部を構成する2-1XORの部分が0.2Kgateである。また、圧縮化回路2803の一部である2-1XORの部分が0.12Kgateであり、圧縮化回路2803の一部であるGF(232)剰余回路の部分が1.15Kgate、デマルチプレクサ(4-1DEMUX)2804の部分が0.34Kgateである。この結果、図46の鍵圧縮回路全体の回路規模は、7.0Kgateとなり、従来の半分程度の回路規模で実現できることがわかる。
<実施例5>
図48は、鍵圧縮回路の第5の実施例(基本概念2その1)を示す図である。図48において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。図48の構成は、基本的には図30の第1の実施例の場合と同じであるが、2つの16-bit乱数r,sを乱数合成回路2901であるXORにより合成した結果の16-bit値を、ランダム化圧縮の乱数として用いるところが異なる。
図48は、鍵圧縮回路の第5の実施例(基本概念2その1)を示す図である。図48において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。図48の構成は、基本的には図30の第1の実施例の場合と同じであるが、2つの16-bit乱数r,sを乱数合成回路2901であるXORにより合成した結果の16-bit値を、ランダム化圧縮の乱数として用いるところが異なる。
圧縮された部分鍵は、4つの16-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(216)4=264の手間が攻撃者にとって必要となるため、安全である。
図49は、図31に示される見積もり基準に基づいて計算される、図48に示される鍵圧縮回路の第5の実施例(基本概念2その1)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけゲート数が増加しているほかは、図41に示される実施例1の場合と同じである。
<実施例6>
図50は、鍵圧縮回路の第6の実施例(基本概念2その2)を示す図である。図50において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901である加算器2901による加算を用いるほかは、図42に示される第2の実施例の場合と同じである。
図50は、鍵圧縮回路の第6の実施例(基本概念2その2)を示す図である。図50において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901である加算器2901による加算を用いるほかは、図42に示される第2の実施例の場合と同じである。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図51は、図31に示される見積もり基準に基づいて計算される、図50に示される鍵圧縮回路の第6の実施例(基本概念2その2)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけゲート数が増加しているほかは、図43に示される実施例2の場合と同じである。
<実施例7>
図52は、鍵圧縮回路の第7の実施例(基本概念2その3)を示す図である。図52において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図44に示される第3の実施例の場合と同じである。
図52は、鍵圧縮回路の第7の実施例(基本概念2その3)を示す図である。図52において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図44に示される第3の実施例の場合と同じである。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図53は、図31に示される見積もり基準に基づいて計算される、図52に示される鍵圧縮回路の第7の実施例(基本概念2その3)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけ増加しているほかは、図45に示される第3の実施例の場合と同じである。
<実施例8>
図54は、鍵圧縮回路の第8の実施例(基本概念2その4)を示す図である。図54において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図46に示される第4の実施例の場合と同じである。
図54は、鍵圧縮回路の第8の実施例(基本概念2その4)を示す図である。図54において、図29の基本構造図の場合と同じ機能を有する部分には同じ番号を付してある。2つの乱数の合成に乱数合成回路2901であるXORを用いるほかは、図46に示される第4の実施例の場合と同じである。
圧縮された部分鍵は、2つの32-bit部分鍵の全てのビット情報を含みながら圧縮されるので、乱数が外部に観察されたとしても、(232)2=264の手間が攻撃者にとって必要となるため、安全である。
図55は、図31に示される見積もり基準に基づいて計算される、図54に示される鍵圧縮回路の第8の実施例(基本概念2その4)の回路規模の見積表を示す図である。乱数圧縮回路2901の分だけ増加しているほかは、図47に示される第4の実施例の場合と同じである。
以上説明したように、各実施形態を用いることで、一般的に考えられる手法1のように、回路を2倍化することなく、小さい回路規模増ながらも、サイドチャネル攻撃に安全な暗号処理および認証処理を実現することが可能となる。
なお、上述の基本概念1,2に基づく処理は、認証処理のみならず、暗号処理一般にも適用することが可能である。
なお、上述の基本概念1,2に基づく処理は、認証処理のみならず、暗号処理一般にも適用することが可能である。
図56は、上記システムをソフトウェア処理として実現できるコンピュータのハードウェア構成の一例を示す図である。
図56に示されるコンピュータは、CPU5601、メモリ5602、入力装置5603、出力装置5604、外部記憶装置5605、可搬記録媒体5609が挿入される可搬記録媒体駆動装置5606、及び通信インタフェース5607を有し、これらがバス5608によって相互に接続された構成を有する。同図に示される構成は上記システムを実現できるコンピュータの一例であり、そのようなコンピュータはこの構成に限定されるものではない。
CPU5601は、当該コンピュータ全体の制御を行う。メモリ5602は、プログラムの実行、データ更新等の際に、外部記憶装置5605(或いは可搬記録媒体5609)に記憶されているプログラム又はデータを一時的に格納するRAM等のメモリである。CUP5601は、プログラムをメモリ5602に読み出して実行することにより、全体の制御を行う。
入出力装置5603は、ユーザによるキーボードやマウス等による入力操作を検出し、その検出結果をCPU5601に通知し、CPU5601の制御によって送られてくるデータを表示装置や印刷装置に出力する。
外部記憶装置5605は、例えばハードディスク記憶装置である。主に各種データやプログラムの保存に用いられる。
可搬記録媒体駆動装置5606は、光ディスクやSDRAM、コンパクトフラッシュ(登録商標)等の可搬記録媒体5609を収容するもので、外部記憶装置5605の補助の役割を有する。
可搬記録媒体駆動装置5606は、光ディスクやSDRAM、コンパクトフラッシュ(登録商標)等の可搬記録媒体5609を収容するもので、外部記憶装置5605の補助の役割を有する。
通信インターフェース5607は、例えばLAN(ローカルエリアネットワーク)又はWAN(ワイドエリアネットワーク)の通信回線を接続するための装置である。
上述した第1~第8の実施形態によるシステムは、それらの機能を搭載したプログラムをCPU5601が実行することで実現される。そのプログラムは、例えば外部記憶装置5605や可搬記録媒体5609に記録して配布してもよく、或いはネットワーク接続装置5607によりネットワークから取得できるようにしてもよい。
上述した第1~第8の実施形態によるシステムは、それらの機能を搭載したプログラムをCPU5601が実行することで実現される。そのプログラムは、例えば外部記憶装置5605や可搬記録媒体5609に記録して配布してもよく、或いはネットワーク接続装置5607によりネットワークから取得できるようにしてもよい。
以上のようにして実行されるプログラムにより、小さい処理量増ながらも、サイドチャネル攻撃に安全な暗号処理および認証処理を実現することが可能となる。
Claims (18)
- それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化するランダム化回路と、
前記ランダム化されたn個の鍵から1つの鍵を生成することにより圧縮して得られる圧縮鍵を出力する圧縮化回路と、
前記圧縮鍵を用いて入力データを暗号化する暗号化回路と、
を含むことを特徴とする暗号処理装置。 - 第一の乱数と第二の乱数を入力し合成し前記乱数として出力する乱数合成回路を更に含む、
ことを特徴とする請求項1に記載の暗号処理装置。 - それぞれK1, K2, …, Knビットからなるn個の鍵を乱数によりランダム化し、
前記ランダム化されたn個の鍵から1つの鍵を生成することにより、圧縮して得られる圧縮鍵を生成し、
前記圧縮鍵を用いて認証する、
ことを特徴とする認証方法。 - 第一の乱数と第二の乱数を入力し合成し前記乱数として出力する、
ことを特徴とする請求項3に記載の暗号処理方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵として秘密鍵Kを共有し、
前記第1のコンピュータにて、乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記乱数rを送信し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記乱数rとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記乱数rを暗号化することで暗号化された乱数aを生成して前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記乱数rとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵としてn個の秘密鍵Kを共有し、
前記第1のコンピュータにて、第1の乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記第1の乱数rを送信し、
前記第2のコンピュータにて、第2の乱数sを生成し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記第1の乱数rとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記第1の乱数rを暗号化することで第1の暗号化された乱数aを生成して前記第2の乱数sとともに前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記第1の乱数rとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行い、
前記第1のコンピュータにて、前記認証に成功した場合に、前記圧縮鍵Kcmpを用いて前記第2のコンピュータから受信した前記第2の乱数sを暗号化することで第2の暗号化された乱数bを生成して前記第2のコンピュータに送信し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 前記n個の秘密鍵Kをそれぞれ、前記第1の乱数rのビット値に応じて巡回シフトし、
前記n個の巡回シフトの結果を、ビット値ごとに排他論理和演算して前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項5または6のいずれかに記載の認証方法。 - 前記n個の秘密鍵Kをそれぞれ、前記第1の乱数rとビット値ごとにビット結合し、
前記n個のビット結合の結果を、ビット値ごとに排他論理和演算し、
前記排他論理和演算の結果に対して、ガロア体GF(2g)上の剰余演算を行って前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項5または6のいずれかに記載の認証方法。 - 前記n個の秘密鍵Kをそれぞれ、前記第1の乱数rのビット値に応じて巡回シフトレジスタ処理し、
前記n個の巡回シフトレジスタ処理の結果を、ビット値ごとに排他論理和演算して前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項5または6のいずれかに記載の認証方法。 - 前記n個の秘密鍵Kのそれぞれについて、前記第1の乱数rとガロア体GF(2g)上の乗算(g<h)を実行し、
前記n個の乗算の結果を、ビット値ごとに排他論理和演算し、
前記排他論理和演算の結果に対して、ガロア体GF(2g)上の剰余演算を行って前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項5または6のいずれかに記載の認証方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵としてn個の秘密鍵Kを共有し、
前記第1のコンピュータにて、第1の乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記第1の乱数rを送信し、
前記第2のコンピュータにて、第2の乱数sを生成し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記第1の乱数rと前記第2の乱数sとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記第1の乱数rを暗号化することで暗号化された乱数aを生成して前記第2の乱数sとともに前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記乱数rと前記第2のコンピュータから受信した乱数sとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 親機に相当する第1のコンピュータと子機に相当する第2のコンピュータとで前記n個の鍵としてn個の秘密鍵Kを共有し、
前記第1のコンピュータにて、第1の乱数rを生成し、
前記第1のコンピュータから前記第2のコンピュータに前記第1の乱数rを送信し、
前記第2のコンピュータにて、第2の乱数sを生成し、
前記第2のコンピュータにて、前記n個の秘密鍵Kと前記第1のコンピュータから受信した前記第1の乱数rと前記第2の乱数sとから前記圧縮鍵の生成に従って圧縮鍵Kcmpを生成し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータから受信した前記第1の乱数rを暗号化することで第1の暗号化された乱数aを生成して前記第2の乱数sとともに前記第1のコンピュータに送信し、
前記第1のコンピュータにて、前記n個の秘密鍵Kと前記第1の乱数rと前記第2のコンピュータから受信した前記第2の乱数sとから前記圧縮鍵の生成に従って前記圧縮鍵Kcmpを生成し、
前記第1のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第2のコンピュータの認証を行い、
前記第1のコンピュータにて、前記認証に成功した場合に、前記圧縮鍵Kcmpを用いて前記第2のコンピュータから受信した前記第2の乱数sを暗号化することで第2の暗号化された乱数bを生成して前記第2のコンピュータに送信し、
前記第2のコンピュータにて、前記圧縮鍵Kcmpを用いて前記第1のコンピュータの認証を行う、
ことを特徴とする請求項3または4のいずれか記載の認証方法。 - 前記第1の乱数rと前記第2の乱数sをビット値ごとに排他論理和演算して合成された乱数を生成し、
前記n個の秘密鍵Kをそれぞれ、前記合成された乱数のビット値に応じて巡回シフトし、
前記n個の巡回シフトの結果を、ビット値ごとに排他論理和演算して前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項11または12のいずれかに記載の認証方法。 - 前記第1の乱数rと前記第2の乱数sをビット値ごとに排他論理和演算して合成された乱数を生成し、
前記n個の秘密鍵Kをそれぞれ、前記合成された乱数とビット値ごとにビット結合し、
前記n個のビット結合の結果を、ビット値ごとに排他論理和演算し、
前記排他論理和演算の結果に対して、ガロア体GF(2g)上の剰余演算を行って前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項11または12のいずれかに記載の認証方法。 - 前記第1の乱数rと前記第2の乱数sをビット値ごとに排他論理和演算して合成された乱数を生成し、
前記n個の秘密鍵Kをそれぞれ、前記合成された乱数のビット値に応じて巡回シフトレジスタ処理し、
前記n個の巡回シフトレジスタ処理の結果を、ビット値ごとに排他論理和演算して前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項11または12のいずれかに記載の認証方法。 - 前記第1の乱数rと前記第2の乱数sをビット値ごとに排他論理和演算して合成された乱数を生成し、
前記n個の秘密鍵Kのそれぞれについて、前記合成された乱数とガロア体GF(2g)上の乗算(g<h)を実行し、
前記n個の乗算の結果を、ビット値ごとに排他論理和演算し、
前記排他論理和演算の結果に対して、ガロア体GF(2g)上の剰余演算を行って前記圧縮鍵Kcmpを生成する、
ことを特徴とする請求項11または12のいずれかに記載の認証方法。 - コンピュータに、
複数個の鍵のそれぞれを乱数によりランダム化し、
前記ランダム化された複数個の鍵を圧縮して得られる圧縮鍵を暗号処理のための鍵として出力する、
処理を実行させるためのプログラム。 - コンピュータに、
第一の乱数と第二の乱数を入力し合成し前記乱数として出力する、
処理を実行させるための請求項17に記載のプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/057917 WO2012131926A1 (ja) | 2011-03-29 | 2011-03-29 | 暗号処理装置、認証方法およびプログラム |
JP2013506933A JP5556955B2 (ja) | 2011-03-29 | 2011-03-29 | 暗号処理装置、認証方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/057917 WO2012131926A1 (ja) | 2011-03-29 | 2011-03-29 | 暗号処理装置、認証方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012131926A1 true WO2012131926A1 (ja) | 2012-10-04 |
Family
ID=46929752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/057917 WO2012131926A1 (ja) | 2011-03-29 | 2011-03-29 | 暗号処理装置、認証方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5556955B2 (ja) |
WO (1) | WO2012131926A1 (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007173999A (ja) * | 2005-12-19 | 2007-07-05 | Sony Computer Entertainment Inc | 認証システム及び認証対象装置 |
JP2008131108A (ja) * | 2006-11-16 | 2008-06-05 | Fujitsu Ltd | 共通鍵暗号のための暗号化装置 |
JP2008233683A (ja) * | 2007-03-22 | 2008-10-02 | Toshiba Corp | 暗号処理装置及びプログラム |
WO2009122464A1 (ja) * | 2008-03-31 | 2009-10-08 | 富士通株式会社 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5727063A (en) * | 1995-11-27 | 1998-03-10 | Bell Communications Research, Inc. | Pseudo-random generator |
JP2002215030A (ja) * | 2001-01-17 | 2002-07-31 | Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd | 乱数発生方法 |
JP4435076B2 (ja) * | 2005-11-18 | 2010-03-17 | フェリカネットワークス株式会社 | 携帯端末,データ通信方法,およびコンピュータプログラム |
JP2009258141A (ja) * | 2006-06-30 | 2009-11-05 | Kiyoto Yui | 無限乱数発生装置を用いた無限暗号化・復号装置及び無限暗号化装置 |
-
2011
- 2011-03-29 WO PCT/JP2011/057917 patent/WO2012131926A1/ja active Application Filing
- 2011-03-29 JP JP2013506933A patent/JP5556955B2/ja not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007173999A (ja) * | 2005-12-19 | 2007-07-05 | Sony Computer Entertainment Inc | 認証システム及び認証対象装置 |
JP2008131108A (ja) * | 2006-11-16 | 2008-06-05 | Fujitsu Ltd | 共通鍵暗号のための暗号化装置 |
JP2008233683A (ja) * | 2007-03-22 | 2008-10-02 | Toshiba Corp | 暗号処理装置及びプログラム |
WO2009122464A1 (ja) * | 2008-03-31 | 2009-10-08 | 富士通株式会社 | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2012131926A1 (ja) | 2014-07-24 |
JP5556955B2 (ja) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5700128B2 (ja) | 暗号化処理装置および認証方法 | |
Mahajan et al. | A study of encryption algorithms AES, DES and RSA for security | |
EP2290872B1 (en) | Device for generating a message authentication code for authenticating a message | |
US5623549A (en) | Cipher mechanisms with fencing and balanced block mixing | |
US8369516B2 (en) | Encryption apparatus having common key encryption function and embedded apparatus | |
Marwaha et al. | Comparative analysis of cryptographic algorithms | |
JP5954030B2 (ja) | 暗号処理装置および方法 | |
RU2449482C2 (ru) | Устройство обработки шифрования, способ обработки шифрования и компьютерная программа | |
US8090957B2 (en) | Information security device, information security method, computer program, computer-readable recording medium, and integrated circuit | |
US20130028412A1 (en) | Method of counter-measuring against side-channel attacks | |
US9503255B2 (en) | Cryptographic sequencing system and method | |
US7248700B2 (en) | Device and method for calculating a result of a modular exponentiation | |
RU2459275C1 (ru) | Способ блочного шифрования сообщения м, представленного в двоичном виде | |
Morawiecki | Malicious Keccak | |
EP3832945B1 (en) | System and method for protecting memory encryption against template attacks | |
Singh et al. | Comparative study of DES, 3DES, AES and RSA | |
US20190171583A1 (en) | Apparatus and Method for Memory Address Encryption | |
Ledda et al. | Enhancing IDEA algorithm using circular shift and middle square method | |
JP5556955B2 (ja) | 暗号処理装置、認証方法およびプログラム | |
Liu et al. | Improving tag generation for memory data authentication in embedded processor systems | |
JP2006025366A (ja) | 暗号化装置及び半導体集積回路 | |
RU2188513C2 (ru) | Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки | |
KR101105384B1 (ko) | 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법 | |
Liu et al. | iCETD: An improved tag generation design for memory data authentication in embedded processor systems | |
CN107766725B (zh) | 抗模板攻击的数据传输方法及系统 |
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: 11862442 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2013506933 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11862442 Country of ref document: EP Kind code of ref document: A1 |