WO2006112114A1 - データ暗号化装置及びデータ暗号化方法 - Google Patents

データ暗号化装置及びデータ暗号化方法 Download PDF

Info

Publication number
WO2006112114A1
WO2006112114A1 PCT/JP2006/302364 JP2006302364W WO2006112114A1 WO 2006112114 A1 WO2006112114 A1 WO 2006112114A1 JP 2006302364 W JP2006302364 W JP 2006302364W WO 2006112114 A1 WO2006112114 A1 WO 2006112114A1
Authority
WO
WIPO (PCT)
Prior art keywords
random number
data
conversion
encryption
unit
Prior art date
Application number
PCT/JP2006/302364
Other languages
English (en)
French (fr)
Inventor
Kaoru Yokota
Masao Nonaka
Original Assignee
Matsushita Electric Industrial Co., Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US11/597,915 priority Critical patent/US8094811B2/en
Priority to EP06713507A priority patent/EP1865481A1/en
Priority to JP2006521745A priority patent/JP4823904B2/ja
Priority to CN2006800090961A priority patent/CN101147182B/zh
Publication of WO2006112114A1 publication Critical patent/WO2006112114A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • the present invention relates to a data encryption device, and in particular, is safe against an attack method that analyzes a cryptographic key embedded in a cryptographic module by measuring power consumption when performing cryptographic processing.
  • the present invention relates to a data encryption apparatus.
  • FIG. 1 is a block diagram for explaining the outline of AES encryption processing.
  • AESB sound codes support three types of encryption key sizes of 128 bits, 192 bits, and 256 bits, but the following explanation assumes that the encryption key size is 128 bits.
  • AES encryption generates 1281) 11 round keys 1 ⁇ 0, 1 ⁇ 1, ⁇ ⁇ 10 based on the 128-bit encryption key. It is assumed that it has been generated. Even in FIG. 1, the round key generation process is not shown.
  • the encryption process of AES encryption performs bitwise exclusive OR 10a with round key KO, table conversion process (S) 10b, and linear conversion (LI) 10c for 128bit plaintext ⁇ . .
  • a series of processes similar to those described above are performed using the round key K1 (l la to l lc).
  • the same series of processing is performed sequentially using the round keys ⁇ 2, ⁇ 3, ⁇ , ⁇ 9.
  • linear transformation L2 is performed instead of linear transformation L1 (19c) 0.
  • bitwise exclusive OR operation with the round key K10 is performed. (19d) and the resulting value is ciphertext C.
  • table conversion 10b The process of table conversion 10b will be described.
  • the table conversions l lb, 12b,..., 19b are the same process.
  • FIG. 2 is a block diagram showing processing of the table conversion 10b.
  • the 128-bit data that is input is divided into 8 bits from the top to make 8 bits X 16 pieces of data.
  • table conversion processing using the conversion table Tab is performed on each 8-bit data (100a to 10 Op).
  • the conversion table Tab is a table indicating the correspondence between input 8 bits and output 8 bits.
  • “h” in 63h indicates that “63” is in hexadecimal notation.
  • Tab [254] BBh.
  • table conversion processing is performed for each 8-bit data. Then, each output result is concatenated in the same order as when it was divided into 128 bits, and 128-bit output data Y is obtained.
  • the linear transformation L1 performs byte transposition called ShiftRow and matrix transformation called MixColumn in this order.
  • the input data is divided into 8 bits from the top, and A0, ⁇ 1, ..., A14, A15.
  • Byte transposition ShiftRow rearranges A0 to A15 to create 128-bit data.
  • the data is concatenated in the order of A0, A5, A10, A15, A4, A9, A14, A3, A8, A13, A2, A7, A12, Al, A6, and All from the top to 128bit data. To do.
  • the linear conversion L2 (19c) is obtained by omitting the MixColumn process from the linear conversion L1. In other words, the result of performing only ShiftRow processing on the input data to L2 is used as the output data of L2.
  • FIG. 3 is a block diagram showing an example of the configuration when the AES cipher is implemented as an encryption device.
  • the encryption device 110 is a device that encrypts plaintext P and outputs ciphertext C, and includes a register 110a, an encryption key storage unit 110b, a round key generation unit 110c, a round key storage unit lOd, Another logical sum unit 110e, a table storage unit 110f, a table conversion unit 110g, a first linear conversion unit 110h, and a second linear conversion unit 110i are included.
  • the register 110a is a storage device that stores intermediate data for cryptographic processing.
  • the encryption key storage unit 110b is a storage device that stores an encryption key.
  • the round key generation unit 110c is a processing unit that reads an encryption key from the encryption key storage unit 110b, generates round keys K0 to K10, and stores them in the round key storage unit lOd during encryption processing.
  • the exclusive OR unit 110e is a processing unit that reads a necessary round key from the round key storage unit lOd and performs an exclusive OR operation.
  • the table storage unit 110f is a storage device that stores the above-described conversion table having 8 bits ⁇ 256 data powers as an array Tab [256].
  • the table conversion unit 11 Og is a processing unit that reads the table storage unit 110 beam array Tab [256] and executes table conversion processing.
  • the first linear converter 110h and the second linear converter 110i are Each of the processing units executes the processes of the linear transformation LI and the linear transformation L2 described above.
  • the operation of the encryption device 110 will be described.
  • plaintext P is input to the encryption device 110, it is stored in the register 110a.
  • the exclusive OR part l lOe reads out the data stored in the register 110a, performs an exclusive OR operation with the round key, and overwrites and stores the operation result in the register 110a.
  • the table conversion unit 110g reads the data stored in the register 110a, performs a table conversion process, and overwrites and stores the conversion result in the register 110a.
  • the first linear conversion unit 110h reads the data stored in the register 110a, performs linear conversion L1, and overwrites and stores the conversion result in the register 110a.
  • the linear transformation process in the last iteration performs the linear transformation L2 processing by the second linear transformation unit 110i instead of the first linear transformation unit 110h, and the exclusive OR unit 110e is connected to the round K10. Performs an exclusive OR operation and overwrites and stores the operation result in register 110a. Then, the encryption device 110 outputs the data stored in the register 110a as ciphertext C.
  • the intermediate data of the cryptographic process is temporarily stored in the register as described above.
  • the power consumption when storing data in a register is strongly dependent on the contents of the stored data. For example, the more bits that have “1” in the stored data, the greater the power consumed during storage.
  • the bit that is stored in the register and inverts the data bit (for example, bit '1' is stored and bit '0' is overwritten in this state) ), The more power is consumed during storage.
  • the power consumption when storing in the register Measure and guess the data in the register. Then, the encryption key used for encryption processing is specified from the estimated data value.
  • the data after the processing of exclusive OR 1 Oa in Fig. 1 is analyzed by analyzing the power consumption when the exclusive OR part l lOe in Fig. 3 stores in register 11 Oa Suppose you can. If the data at this time is D and the analyst also knows the value of plaintext P, the round key KO is
  • the intermediate value of the encryption process temporarily stored in the register is estimated from the power consumption during the encryption process, and the encryption key is estimated therefrom.
  • a method called a masking method is disclosed (for example, refer to Patent Document 1).
  • the masking method is characterized in that the intermediate value of the cryptographic process is randomized by a random number before it is stored in the register. As a result, even if the register data is estimated by power analysis, the value is randomized by random numbers, so the actual intermediate value of encryption processing is insignificant. Therefore, the value of the round key cannot be specified.
  • FIG. 4 and FIG. 5 are block diagrams for explaining the processing procedure when the masking method for the AES cipher is applied.
  • the exclusive OR operation 20a, 20c, 20e, 21b, ..., 29 b, 29d, 29h using the generated random number is added to the AESB sound processing of the old Rinanore as shown in Fig. 4.
  • the exclusive OR operation 21b, ..., 29b is an exclusive OR operation with the result of performing the linear transformation L1 on the random number
  • the exclusive OR operation 29h is performed on the random number. This is an exclusive OR operation with the result of linear transformation L2.
  • the intermediate value T of the cryptographic process is randomized by the influence of the random number R0 by the exclusive OR operation 20a.
  • the exclusive OR operation with the random number R0 is performed again by the exclusive OR operation 20c.
  • the effect is offset.
  • the randomized Rl, R2, ..., RIO randomization effects are offset, so the final ciphertext C is the original AES cipher shown in Fig. 1. It is the same as that obtained by processing.
  • FIG. 6 is a block diagram for explaining the internal configuration of the randomized table conversion 30c in FIG.
  • the other randomized table conversions 3 lb, 32b,..., 39b are the same as the randomized table conversion 30c except that the random numbers used are different.
  • the 128-bit input data X is divided into 8 bits from the top to obtain x0, xl, ..., xl5.
  • Random numbers R0 and R1 are divided into 8 bits from the top, and R0a, ROb,..., R0p, and Rla, Rlb,.
  • x0, xl,..., Xl5 perform exclusive OR operation with ROa, ROb,.
  • table conversion using the AES encryption conversion table Tab is performed on the result (8 bits each).
  • the correspondence between xl5 and yl5 can be expressed as a conversion table consisting of 8bit X 256 data each. That is, the process of FIG. 6 is a process of the tape glue conversion process 303a, 303b,..., 303p using 16 types of conversion tables TabOa, TabOb,.
  • the randomized table conversion SmO (30c) is constructed based on the random numbers RO and R1. Concrete As shown in Fig. 7, 16 types of conversion tables consisting of 8 bits x 256 data are created. Similarly, randomized table conversions Sml to Sm9 are constructed based on random numbers R1 and R2, R2 and R3, ..., R9 and RIO. The specific configuration method is the same as SmO.
  • Non-Special Reference 1 Federal Information Processing3 ⁇ 4tandards Publication 19 7, rspecification for the ADVANCED ENCRYPTION STANDARD (AES;) ", November 26, 2001
  • Patent Document 1 US Pat. No. 6,295,606
  • the random number used to generate the randomized conversion table needs to be different for each encryption process, and the table creation process described above is performed once. It is necessary to execute every time. Therefore, there is a problem that the processing speed of the cryptographic processing is significantly reduced by the additional processing for the power analysis countermeasure.
  • the present invention has been made to solve the above-mentioned problems, and is a data encryption that can prevent a power analysis attack and can reduce a decrease in the speed of an encryption process and an increase in a memory amount.
  • An object is to provide a dredge apparatus.
  • the data encryption apparatus of the present invention is a data encryption device that performs predetermined encryption processing based on a key on plaintext to generate a ciphertext, A single core random number is generated for each round, and a predetermined number of the core random numbers are concatenated to perform a data fusion between the plaintext and the first random number.
  • a plaintext data merging unit that generates data
  • a data disturbing unit that performs a data disturbing process on the intermediate data based on the first random number, the second random number, and the key for each round.
  • the first random number is a repetition of the core random number. For this reason, for example, if the number of core random numbers is 16, it is possible to reduce the number of randomized conversion tables that conventionally required 16 when performing data disturbance processing to one. . Therefore, it is possible to reduce the speed reduction of the cryptographic process and reduce the amount of memory necessary for the cryptographic process.
  • the data disturbing unit stores, for each round, a conversion table storage unit that stores one conversion table that converts data obtained by equally dividing plain text by the predetermined number, and the conversion table for each round, the conversion table.
  • a configuration that includes a data conversion unit that performs data conversion processing may be used.
  • the data encryption device may further include a random number conversion unit that performs predetermined random number conversion on the first random number and generates the second random number
  • the data disturbing unit includes: And a linear conversion unit that performs predetermined linear conversion on the intermediate data and outputs the result, and the random number conversion unit uses the inverse conversion of the linear conversion as the random number conversion. You may go.
  • the predetermined encryption process is an AES (Advanced Encryption Standard) encryption process
  • the linear conversion unit includes an InvMixColumn process and an InvShiftRow process in the AES encryption process
  • the random number conversion unit includes: The first random number may be output as the second random number.
  • the core random number may be the same value in all rounds.
  • the present invention can be realized as a data encryption device including such characteristic means, and the data includes a characteristic means included in the data encryption device as a step. It can be realized as an encryption method, or as a program that causes a computer to execute the characteristic steps included in the data encryption method. It goes without saying that such a program can be distributed via a recording medium such as a CD-ROM (Compact Disc-Read Only Memory) or a communication network such as the Internet.
  • a recording medium such as a CD-ROM (Compact Disc-Read Only Memory) or a communication network such as the Internet.
  • an exclusive OR operation is performed on the intermediate data for encryption processing and the random number for randomizing the conversion table in accordance with a certain format and before and after each table conversion processing.
  • the analysis method using sub information generated by the cryptographic module power during cryptographic processing, such as a power analysis attack is blocked while As a result, the reduction in the speed of encryption processing and the increase in the amount of memory are reduced compared to the conventional method.
  • FIG. 1 is a block diagram showing a processing procedure of AES encryption.
  • FIG. 2 is a block diagram showing the configuration of AES encryption table conversion processing 10b.
  • FIG. 3 is a block diagram showing a configuration of an AES encryption device 110.
  • FIG. 4 is a block diagram showing a processing procedure of AES encryption according to the prior art.
  • FIG. 5 is a block diagram showing a processing procedure of AES encryption according to the prior art.
  • FIG. 6 is a block diagram showing a configuration of a randomized table conversion process 30c according to the prior art.
  • FIG. 7 is a block diagram showing a modified example of the configuration of the randomized table conversion processing 30c according to the prior art.
  • FIG. 8 is a block diagram showing an AES encryption processing procedure according to the embodiment of the present invention.
  • FIG. 9 is a flowchart showing a processing procedure of AES encryption.
  • FIG. 10 is a block diagram showing a configuration of an encryption device 410 according to the embodiment of the present invention.
  • FIG. 11 is a block diagram showing a configuration of a random number generation unit 41 Oa according to the embodiment of the present invention.
  • FIG. 12 is a block diagram showing a configuration of randomized table conversion processing according to the embodiment of the present invention.
  • FIG. 13 is a block diagram showing a first modification example of the randomized table conversion process according to the embodiment of the present invention.
  • FIG. 14 is a block diagram showing a second modification example of the randomized table conversion process according to the embodiment of the present invention.
  • FIG. 15 is a block diagram illustrating a processing procedure of AES decoding.
  • FIG. 16 is a block diagram showing a configuration of decoding apparatus 510 according to the embodiment of the present invention.
  • FIG. 8 is a block diagram for explaining the processing procedure of the AES encryption for preventing the power analysis attack.
  • FIG. 9 is a flowchart showing the processing procedure of the AES encryption. The encryption processing procedure will be described below with reference to FIGS. It is assumed that 128bit X l l round keys ⁇ , ⁇ 1, ⁇ , ⁇ 10 have already been generated from 128bit encryption keys.
  • a 128-bit random number R is generated (S2). Also, a value R1 obtained by applying a reverse transformation Lli of the linear transformation L1 to the random number R is obtained (S4). Further, a value R2 obtained by performing a linear transformation L2 on R1 is obtained (S6).
  • the linear transformations L1 and L2 are the same processing as the aforementioned Ll and L2.
  • (B) Exclusive OR operation after table transformation 40d, 41c, 42c, ..., 48c 40e, 41d, 42d, ... , And 49c, respectively, are removed by the exclusive OR operation 41b, 42b,..., 49b before the table conversion 41c, 42c,.
  • the intermediate value after the exclusive OR operation 40e is ⁇ intermediate value of the original AES cipher ⁇ (+) R1
  • the input value of the exclusive OR operation 41b is ⁇ intermediate value of the original AES cipher ⁇ (+ ) L1 (R1).
  • the input value of the exclusive OR operation 40e is ⁇ intermediate value of the original AES cipher ⁇ (+) R, and the effect of this R is to perform exclusive OR operation with R in the exclusive OR operation 41b. Removed by. The same applies to other cases.
  • FIG. 10 is a block diagram showing an example of the configuration of the encryption device 410 that realizes the AES encryption processing procedure of FIG.
  • the encryption key storage unit 410c stores a 128-bit encryption key.
  • the round key generation unit 410d uses the encryption key stored in the encryption key storage unit 410c at the time of encryption processing in accordance with the AES encryption round key generation procedure to generate 128bit X 11 round keys ⁇ , ⁇ 1, ... Is generated.
  • the round key storage unit 410e stores the round keys ⁇ , ⁇ 1, ..., K10.
  • the random number generation unit 410a generates a random number R (S2 in FIG. 9).
  • the random number generation unit 410a includes a core random number generation unit 41 la and a random number expansion unit 41 lb.
  • the core random number generation unit 41 la generates an 8-bit core random number r and transfers it to the random number expansion unit 4 l ib.
  • the random number expansion unit 41 lb sets a value obtained by concatenating the 16 random numbers r as a random number R, and the random number generation unit 410a outputs the random number R. That is, the random number R is
  • II represents data concatenation.
  • the generated 128-bit random number R is transferred to the exclusive OR unit 410b, the table randomizing unit 410i, and the first linear inverse transform unit 410h.
  • the first linear inverse transform unit 410h performs the inverse transform of the linear transform L1 on the random number R to obtain R1 (S4 in Fig. 9), and the table randomizing unit 410i and the second linear transform unit Forward to 410 ⁇ .
  • the table randomizing unit 410i performs randomization on the conversion table Tab of the original AES encryption stored in the table storage unit 4101 based on the random numbers R and R1.
  • exclusive OR operation using different random numbers was performed before and after each table conversion processing 300a to 300p. Accordingly, it is necessary to create different randomized conversion tables 303a to 303p as shown in FIG.
  • the exclusive OR operation with the same random number r is performed before and after each table conversion process 412a to 412p. Therefore, as shown in FIG.
  • FIG. 13 can be realized by one randomized conversion table 416 as shown in FIG. Specifically, the randomized conversion table mTab is generated as follows. First, the table randomizing unit 410i stores the data in the table storage unit 4101! /, And the array data of the original AES encryption conversion table Tab. Read data Tab [0] to Tab [255]. Next, the following array data mTab [0] to mTab [255] are generated using the array data, the random number R, and the core random number r included in the random number R1.
  • the table randomizing unit 410i transfers the randomized conversion table mTab generated as described above to the random table storage unit 410j and stores it.
  • the second linear transformation unit 410 ⁇ performs linear transformation L2 on the random number R1 to obtain R2.
  • the exclusive OR unit 410b performs an exclusive OR operation with the random number R on the plaintext ⁇ ⁇ input to the encryption device 410, transfers the result to the register 410g, and temporarily stores it ( (S8 in Figure 9).
  • the exclusive OR unit 410f reads the data in the register 410g, performs an exclusive OR operation with the round key K0 stored in the round key storage unit 41Oe, and stores the result in the register.
  • Write 410g (S10 in Figure 9). At this time, the data stored in the register before being written is overwritten and erased.
  • the table conversion unit 410k reads the data in the register 410g, and performs a table conversion process based on the randomized conversion table mTab stored in the random table storage unit 410j (S12 in FIG. 9). ⁇ S16). Specifically, if the data read from the register 410g is X, the data Y after the table conversion process is
  • the converted data is overwritten in the register 410g.
  • Data in register 410g before overwriting is erased.
  • the first linear conversion unit 410m reads the data in the register 410g and performs linear conversion L Apply 1 to overwrite register 410g (YES in S18, S20 in Fig. 9).
  • the exclusive OR unit 410f reads out the data in the register 410g, performs an exclusive OR operation with the round key K10 stored in the round key storage unit 410e, and writes the result into the register 410g. (S24 in Figure 9).
  • the exclusive OR unit 410p reads the data stored in the register 410g, performs an exclusive OR operation with the random number R2, and outputs the result as the ciphertext C from the encryption device 410 (Fig. 9 S26).
  • FIG. 15 is a block diagram for explaining the processing procedure of AES decoding. The difference from the cryptographic processing procedure shown in Fig. 8 is that the data flow is reversed in order to generate plaintext P from ciphertext C.
  • the inverse transformation Si of the table transformation S is performed, the linear transformation L1 is substituted by the linear transformation L1, the inverse transformation Lli is performed, and the linear transformation L2 is substituted by the linear transformation L2 inverse transformation L2i Is different.
  • the linear transformation L2 (48f) remains as it is.
  • FIG. 16 is a block diagram showing a configuration of decryption device 510 for decrypting ciphertext C encrypted by encryption device 410 to obtain plaintext P.
  • decryption device 510 for decrypting ciphertext C encrypted by encryption device 410 to obtain plaintext P.
  • the reverse table storage unit 5101 stores the reverse conversion table ITab that has a reverse conversion relationship with the conversion table Tab stored in the table storage unit 4101. Specifically, ITab distribution
  • the column elements ITab [0] to ab [255] are defined as follows.
  • the method of obtaining the randomized inverse transformation table ImTab from the inverse transformation table ITab by the inverse table randomizing unit 5 lOi is the same as the method described in the table randomizing unit 410i, and is therefore omitted.
  • the exclusive OR unit 5 ⁇ is processed.
  • the exclusive OR unit 510f performs an exclusive OR operation using the round key K10. Then, a series of processes including the first linear inverse transform unit 510m, the inverse table transform unit 510k, and the exclusive OR unit 510f are performed in order of round keys ⁇ 9, ⁇ 8, ..., ⁇ 1, ⁇ 0. Use repeatedly. At this time, in a series of processing when the round key ⁇ 9 is used, processing by the second linear inverse transform unit 510 ⁇ is performed instead of the first linear inverse transform unit 510m.
  • the first linear inverse transform unit 510m performs the above-described inverse transform process Lli of the linear transform L1, and the second linear inverse transform unit 510 ⁇ performs the inverse transform process L2i of the linear transform L2.
  • the exclusive OR unit 510b performs an exclusive OR operation and outputs the result as plaintext P.
  • the AES cipher is the target of the power analysis attack countermeasure.
  • the cipher is not limited to the AES cipher, but a series of data fusion with a round key, table conversion, and linear conversion. It is possible to apply the same encryption method if it is a repetitive encryption method. Examples of such encryption methods include Camellia encryption and Hierocrypt encryption.
  • a force using an exclusive OR operation as a method of fusing two pieces of data. This may be an arithmetic addition.
  • the first linear inverse transform unit 410m and the second linear transform unit 410 ⁇ do not actually perform any processing. Good.
  • Each of the above devices is specifically a computer system including a microprocessor, ROM, RAM, a hard disk unit, a display unit, a keyboard, a mouse, and the like.
  • a computer program is stored in the RAM or hard disk unit.
  • Microprocessor power Each device achieves its functions by operating according to the computer program.
  • the computer program is configured by combining a plurality of instruction codes indicating instructions to the computer in order to achieve a predetermined function.
  • a part or all of the components constituting each of the above devices may be configured by one system LSI (Large Scale Integration).
  • a system LSI is an ultra-multifunctional LSI that is manufactured by integrating multiple components on a single chip. Specifically, it is a computer system that includes a microprocessor, ROM, RAM, and so on. It is. A computer program is stored in the RAM. By operating according to the above-mentioned computer program S, the microprocessor power S
  • the system LSI achieves its functions.
  • a part or all of the constituent elements constituting each of the above devices may be configured as an IC card that can be attached to and detached from each device or a single module force.
  • the IC card or the module is a computer system composed of a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its functions by the microprocessor operating according to the computer program. This IC card or module may be tamper resistant! /.
  • the present invention may be the method described above. Further, the present invention may be a computer program that realizes these methods by a computer, or the computer program. It may be a digital signal having a program power.
  • the present invention provides a computer-readable recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD. (Blu-ray Disc), recorded on a semiconductor memory or the like. Also, it may be the digital signal recorded on these recording media.
  • a computer-readable recording medium capable of reading the computer program or the digital signal, such as a flexible disk, a hard disk, a CD-ROM, an MO, a DVD, a DVD-ROM, a DVD-RAM, a BD. (Blu-ray Disc), recorded on a semiconductor memory or the like. Also, it may be the digital signal recorded on these recording media.
  • the present invention may transmit the computer program or the digital signal via an electric communication line, a wireless or wired communication line, a network typified by the Internet, data transmission, or the like.
  • the present invention may be a computer system including a microprocessor and a memory, the memory storing the computer program, and the microprocessor operating according to the computer program. .
  • the program or the digital signal is recorded on the recording medium and transferred, or the program or the digital signal is transferred via the network or the like. It may be implemented by a computer system.
  • the cryptographic apparatus according to the present invention has a feature of reducing the amount of cryptographic processing compared to the prior art while preventing power analysis attacks, and thus the present invention can be realized at high speed processing or at low cost. It can be applied to an encryption device that requires

Landscapes

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

Abstract

 電力解析攻撃を阻止でき、かつ、暗号処理の速度低下及びメモリ量増加を、従来よりも削減可能なデータ暗号化装置は、平文に対して鍵に基づく所定の暗号処理を行い、暗号文を生成するデータ暗号化装置であって、ラウンドごとにコア乱数を1個生成し、前記コア乱数を所定の個数だけ連結して、第1乱数を生成する乱数生成部(410a)と、前記平文と前記第1乱数とのデータ融合を行い、中間データを生成する排他的論理和部(410b)と、ラウンドごとに前記中間データに対して、前記第1乱数と第2乱数と前記鍵に基づいて、データ撹乱処理を行うデータ撹乱部(410f、410k)とを備える。

Description

明 細 書
データ暗号化装置及びデータ暗号化方法
技術分野
[0001] 本発明は、データ暗号化装置に関し、特に、暗号処理を実行する際の電力消費量 を計測することにより暗号モジュールに埋め込まれている暗号鍵を解析する攻撃方 法に対して安全なデータ暗号ィ匕装置に関する。
背景技術
[0002] 近年、ハードウェアあるいはソフトウェアで実装された暗号モジュールが暗号処理を 行う際の副情報を手が力りにして、暗号鍵の解析を行う解読法が各種考案されてい る。例えば、タイミング攻撃と呼ばれる解読方法では、暗号モジュールが暗号処理に 要する時間が、暗号処理に用いている暗号鍵の値により、わずかではあるが異なるこ とを利用して、暗号鍵の解析を行う。即ち、タイミング攻撃においては、暗号処理を行 う際の処理時間という副情報を利用して、暗号鍵の解読を行っている。このような解 読法の中でも、暗号処理を行う際の電力消費量を副情報として解読を行う解読方法 として、 Simple Power Analysis Λ ' Differential Power Analysis と ヽっ 7こ 各種の方法が考案されている。これらの解読法は、近年、高性能な計測機器が安価 で手に入るようになった背景もあって、 IC (Integrated Circuit)カードのような暗号が 実装された実際の製品に対しても解析が可能であることが報告されている。また、暗 号処理を行う際に、暗号モジュール力 発生する電磁波強度を副情報として解読す る方法など数々の解読方法が考案されている。以下の記述では、暗号処理時におけ る暗号モジュールの電力消費量を手がかりにして、暗号鍵を解析する解読方法を総 称して、「電力解析攻撃」と呼ぶことにする。以下では、電力解析攻撃を例にして説 明を行うが、副情報を用いたその他の解読方法に対しても同様にして説明することが できる。即ち、本発明は、電力解析攻撃のみならず、暗号処理中に暗号モジュール 力 発生する副情報を利用して鍵の推定を行う解読方法であれば適用可能である。
[0003] 電力解析攻撃の概要について説明する。ここでは、 AES (Advanced Encryptio n Standard)暗号 (AES暗号の詳細は、非特許文献 1を参照)に電力解析攻撃を 適用した例を元に説明する。図 1は、 AES暗号の処理概要を説明するブロック図で ある。 AESB音号は、暗号鍵サイズが 128bit、 192bit、 256bitの 3種類をサポートし ているが、以下では、暗号鍵サイズは 128bitであるとして説明を行う。また、 AES暗 号では、 128bitの暗号鍵を元に、 1281) 11個のラゥンド鍵1^0、1^1、 · ' ·、Κ10と 呼ばれる鍵を生成するが、ここでは、既にラウンド鍵が生成されているものとして説明 する。図 1でもラウンド鍵生成処理については、図示していない。
[0004] (AES暗号の処理概略)
AES暗号の暗号処理概要を説明する。
[0005] AES暗号の暗号化処理は、 128bitの平文 Ρに対して、ラウンド鍵 KOとのビットごと の排他的論理和演算 10a、テーブル変換処理 (S) 10b、線形変換 (LI) 10cを行う。 次に、前記と同様の一連の処理を、ラウンド鍵 K1を用いて行う(l la〜l lc)。更に、 同様の一連の処理をラウンド鍵 Κ2、 Κ3、 · · ·、 Κ9を順次用いて行う。但し、ラウンド 鍵 Κ9を用いた一連の処理については、線形変換 L1の代わりに、線形変換 L2を行う (19c) 0そして、最後に、ラウンド鍵 K10とのビットごとの排他的論理和演算を行い(1 9d)、その結果の値を暗号文 Cとする。
[0006] (テーブル変換 S ( 10b) )
テーブル変換 10bの処理について説明する。なお、テーブル変換 l lb、 12b、 · · · 、 19bも、これと同一の処理である。
[0007] 図 2は、テーブル変換 10bの処理を示すブロック図である。入力される 128bitのデ ータは、上位から 8bitずつに分割され、 8bit X 16個のデータとなる。そして、各 8bit データに対して、変換テーブル Tabによるテーブル変換処理が行われる(100a〜10 Op)。ここで、変換テーブル Tabは、入力 8bitと出力 8bitとの対応関係を示すテープ ルであり、具体的には、 8bit X 256要素の配列 Tab [256]によって表され、入力 8bit が Xのとき、テーブル変換による出力値 Yは、 Y=Tab[X]として得られる。
[0008] 具体的には、 AES暗号に用いられる変換テーブルは、 Tab [256] = {63h、 7Ch、 77h、 7Bh、 · · ·、 BBh、 16h}となるテーブルである。ここで、 63hの" h"は、 "63"が 1 6進数表記であることを示している。このとき、入力 03hに対するテーブル変換の出力 は、 Tab[2] = 77hであり、入力 FEMlO進数で 254)に対するテーブル変換の出力 は、 Tab[254] =BBhとなる。このようにして、各 8bitデータに対するテーブル変換 処理が行われる。そして、各出力結果を先ほど分割した際と同じ順序で連結して 128 bitとし、 128bitの出力データ Yとする。
[0009] (線形変換 LI (10c) )
線形変換 LI (10c)の処理について説明する。なお、線形変換 l lc、 12c、 · · ·、 18 cの処理も、これと同様の処理である。
[0010] 線形変換 L1は、 ShiftRowと呼ばれるバイト転置と、 MixColumnと呼ばれる行列 変換とをこの順序で行う。まず、入力データを、上位から 8bitずつに分割して、 A0、 Α1、 · · ·、 A14、 A15とする。バイト転置 ShiftRowは、 A0〜A15に対して並び換え を行って 128bitデータを作成する。具体的には、上位から A0、 A5、 A10、 A15、 A 4、 A9、 A14、 A3、 A8、 A13、 A2、 A7、 A12、 Al、 A6、 Al lの順にデータを連結 して 128bitデータとする。
[0011] 次に、上記 ShiftRowの結果に対して、 MixColumn処理を行う。具体的には、 Shi ftRowの結果を再び、上位から 8bitずつ分割して、 Β0、 Β1、 · · ·、 B14、 B15とする 。次に、 X0 = B0、 X1 = B4、 X2 = B8、 X3 = B12として、下記数 1に従って行歹 U演 算を行い、 Y0、 Yl、 Υ2、 Υ3を計算して、 C0=Y0、 C4=Y1、 C8=Y2、 C12=Y 3とする。
[0012] [数 1] f
Y0 " 02h 03h 01 h 01 h 、 fxol
Y1 01 h 02h 03h 01 h X1
X
Y2 01 h 01 h 02h 03h X2
Y3 01 h 02h X3
J 03h 01 h ソ ソ ここで、行列演算に用いる加算と乗算は拡大体 GF (2"8)上の演算として行う。また 、 "2'8"は" 2の 8乗,,を表す。更に、 X0 = B1、 X1 = B5、 X2 = B9、 X3 = B13として 、上記行列演算(数 1で示される演算)を行い、 Y0、 Yl、 Υ2、 Υ3を計算して、 Cl = Y0、 C5=Y1、 C9=Y2、 C13=Y3とする。同様に、 X0 = B2、 X1 = B6、 X2 = B1 0、 X3 = B14として、行列演算(数 1)を行い、 YO、 Yl、 Υ2、 Υ3を計算して、 C2=Y 0、 C6=Y1、 C10=Y2、 C14=Y3とする。そして、 XO = B3、 X1 = B7、 X2 = B11 、 X3 = B15として、行歹 [J演算を行 ヽ、 YO、 Yl、 Υ2、 Υ3を計算して、 C3=YO、 C7 =Y1、 C11 =Y2、 C15=Y3とする。上記のようにして得られた CO、 Cl、 C2、 · · ·、 C14、 C15を、上位からこの順序で連結した 128bitデータ力 MixColumn処理の 出力データ、即ち、線形変換 L1の出力データとなる。
[0014] (線形変換 L2 (19c) )
線形変換 L2 (19c)は、線形変換 L1から、 MixColumn処理を省略したものである 。即ち、 L2への入力データに対して、 ShiftRow処理のみを行った結果を L2の出力 データとする。
[0015] (暗号装置 110の構成)
AES暗号を暗号装置として実装した場合の一構成例について説明する。
[0016] 図 3は、 AES暗号を暗号装置として実装した場合の一構成例を示すブロック図であ る。
[0017] 暗号装置 110は、平文 Pを暗号化し暗号文 Cを出力する装置であり、レジスタ 110a と、暗号鍵記憶部 110bと、ラウンド鍵生成部 110cと、ラウンド鍵記憶部 l lOdと、排 他的論理和部 110eと、テーブル保管部 110fと、テーブル変換部 110gと、第 1線形 変換部 110hと、第 2線形変換部 110iとを含む。
[0018] レジスタ 110aは、暗号処理の中間データを記憶する記憶装置である。暗号鍵記憶 部 110bは暗号鍵を記憶している記憶装置である。ラウンド鍵生成部 110cは、暗号 処理時に、暗号鍵記憶部 110bから暗号鍵を読み出し、ラウンド鍵 K0〜K10を生成 し、ラウンド鍵記憶部 l lOdに記憶する処理部である。排他的論理和部 110eは、ラウ ンド鍵記憶部 l lOdから必要なラウンド鍵を読み出して、排他的論理和演算を行う処 理部である。テーブル保管部 110fは、上述した 8bit X 256個のデータ力もなる変換 テーブルを配列 Tab [256]として記憶して ヽる記憶装置である。テーブル変換部 11 Ogは、テーブル保管部 110はり配列 Tab[256]を読み出し、テーブル変換処理を 実行する処理部である。第 1線形変換部 110hおよび第 2線形変換部 110iは、それ ぞれ上述した線形変換 LIおよび線形変換 L2の処理を実行する処理部である。
[0019] 次に、暗号装置 110の動作について説明する。平文 Pが暗号装置 110に入力され ると、ー且、レジスタ 110aに記憶される。次に、排他的論理和部 l lOeがレジスタ 110 aに記憶されているデータを読み出して、ラウンド鍵との排他的論理和演算を行い、 演算結果をレジスタ 110aに上書き記憶する。次に、テーブル変換部 110gが、レジス タ 110aに記憶されているデータを読み出して、テーブル変換処理を行い、変換結果 をレジスタ 110aに上書き記憶する。そして、第 1線形変換部 110hが、レジスタ 110a に記憶されているデータを読み出して、線形変換 L1の処理を行い、変換結果をレジ スタ 110aに上書き記憶する。
[0020] 以下、先ほど述べた AES暗号の処理手順に従って、上記の処理を繰り返し行う。
但し、最後の繰り返しにおける線形変換処理は、第 1線形変換部 110hの代わりに、 第 2線形変換部 110iによる線形変換 L2の処理を行い、更に、排他的論理和部 110 eがラウンド K10との排他的論理和演算を行って、演算結果をレジスタ 110aに上書き 記憶する。そして、暗号装置 110は、レジスタ 110aに記憶されているデータを暗号文 Cとして出力する。
[0021] (暗号装置 110に対する電力解析攻撃)
暗号装置 110に対する、電力解析攻撃の概要について説明する。暗号装置 110で は、 AES暗号の処理が行われている途中のデータ(中間データ)は、レジスタ 110a に一時記憶されている。即ち、図 1において、ある処理ブロック力も他の処理ブロック に渡されるデータは、全てレジスタ 110aにー且記憶されてから、他の処理ブロックに よる処理が行われる。
[0022] 電力解析攻撃では、上記のように暗号処理の中間データがレジスタに一時記憶さ れることに着目する。データをレジスタに記憶する際の電力消費量は、記憶するデー タの内容に依存することがわ力つている。例えば、記憶するデータに" 1"が立つビット の数が多いほど、記憶時に消費する電力は大きい。また、レジスタへの上書き処理の 際に、レジスタに格納して 、るデータビットの反転が発生するビット (例えば、ビッド '1 "が記憶されて 、る状態でビッド '0"が上書きされるビット)が多 、ほど、記憶時に消費 する電力は大きい。これらのことを利用して、レジスタに記憶する際の電力消費量を 測定して、レジスタ内のデータを推測する。そして、推測したデータ値から、暗号処理 に使われている暗号鍵を特定する。例えば、図 3の排他的論理和部 l lOeがレジスタ 11 Oaに記憶する際の電力消費量を解析することにより、図 1の排他的論理和 1 Oaの 処理が行われた後のデータを解析することができたとする。このときのデータを Dとし 、平文 Pの値も解析者が知っているとすると、ラウンド鍵 KOは、
KO = D ( + ) P
によって求められる。ここで、 "( + ) "は"ビットごとの排他的論理和"を表す。 AES暗 号の場合、ラウンド鍵 KOは、暗号鍵と同一であることが知られているから、上記の解 析により、暗号鍵が求められたことになる。
[0023] 以上のように、暗号処理中の電力消費量から、レジスタに一時記憶される暗号処理 の中間値が推測され、そこから、暗号鍵が推測されることがわかる。
[0024] (電力解析攻撃に対する対策方法)
電力解析攻撃に対する対策方法として、マスキング法と呼ばれる方法が開示されて いる(例えば、特許文献 1参照)。図 3に示す暗号装置 110では、暗号処理の中間値 をそのままレジスタ 110aに一時記憶しているため、その値が解析される点に問題が あった。マスキング法では、暗号処理の中間値をレジスタに格納する前に、乱数によ つてランダム化するところに特徴がある。これにより、電力解析によってレジスタのデ ータが推測されても、その値は、乱数によってランダム化されているので、実際の暗 号処理の中間値はわ力もない。従って、ラウンド鍵の値は特定できない。
[0025] 図 4及び図 5は、 AES暗号に対するマスキング法を適用した場合の処理手順を説 明するブロック図である。暗号処理を行う前に、 128bitの乱数 R0〜R10を生成する 。そして、生成した乱数を用いた排他的論理和演算 20a、 20c、 20e、 21b、 · · ·、 29 b、 29d、 29hを、才リジナノレの AESB音号処理に図 4に示すように、追カロする。このとき 、排他的論理和演算 21b、 · · ·、 29bは、乱数に対して線形変換 L1を施した結果との 排他的論理和演算であり、排他的論理和演算 29hは、乱数に対して線形変換 L2を 施した結果との排他的論理和演算である。このとき、排他的論理和演算 20aによって 、暗号処理の中間値 Tは、乱数 R0の影響を受けてランダム化される。しかし、その後 に、排他的論理和演算 20cによって、乱数 R0との排他的論理和演算を再び行うこと で、その影響は相殺される。同様に、乱数 Rl、 R2、 · · ·、 RIOによるランダム化の影 響は相殺されるようになっているため、最終的に得られる暗号文 Cは、図 1で示したォ リジナルの AES暗号処理によって得られるものと、同一のものとなる。
[0026] また、実際に暗号装置として実装する際には、図 4ではなぐ図 5の構成として、暗 号処理が実装される。図 4と図 5との違いは、図 4における「乱数との排他的論理和演 算→テーブル変換→乱数との排他的論理和演算」と!、う一連の処理を、「ランダム化 された変換テーブルによるテーブル変換」に置き換えた点である。以下、この点につ いて説明する。
[0027] 図 6は、図 5におけるランダム化テーブル変換 30cの内部構成を説明するためのブ ロック図である。なお、他のランダム化テーブル変換 3 lb、 32b、 · · ·、 39bについても 、使われる乱数が異なるだけで、ランダム化テーブル変換 30cと同様である。 128bit の入力データ Xは、上位から 8bitずつ分割して、 x0、 xl、 · · ·、 xl5とする。また、乱 数 R0及び R1は、上位から 8bitずつ分割して、それぞれ、 R0a、 ROb, · · · , R0p、及 び Rla、 Rlb、 · · ·、 Ripとする。まず、 x0、 xl、 · · ·、 xl5は、それぞれ、 ROa, ROb, · · · , ROpとの排他的論理和演算を行う。次に、前記結果 (各 8bit)に対して、それぞ れ、 AES暗号の変換テーブル Tabを用いたテーブル変換を行う。そして、各テープ ル変換結果に対して、それぞれ Rla、 Rlb、 · · ·、 Ripとの排他的論理和演算を行い 、その結果を、それぞれ y0、 yl、 · · ·、 yl5とする。 y0、 yl、 · · ·、 yl5を、上位からこ の順序で連結した 128bitデータを、 Yとして出力する。
[0028] ここで、舌 L数 R0 (即ち、 R0a〜R0p)と舌 L数 R1 (即ち、 Rla〜Rlp)が決まれば、 χθ と yOとの対応関係、 xlと yOとの対応関係、 · · ·、 xl5と yl5との対応関係は、各々 8bi t X 256個のデータからなる変換テーブルとして表すことができる。即ち、図 6の処理 は、図 7で示すような、 16種類の変換テーブル TabOa、 TabOb、 · · ·、 TabOpによる、 テープノレ変換処理 303a、 303b, · · ·、 303p力らなる処理となる。
[0029] 以上をまとめると、マスキング法解読に対する対策を行った AES暗号の処理手順 は、図 5に示すようになる。即ち、以下のようになる。
[0030] (1) 128bit X 11個の乱数 RO、 Rl、 · · ·、 RIOを生成する。
(2)乱数 ROと R1を元に、ランダム化テーブル変換 SmO (30c)を構成する。具体的 には、図 7に示すように、 8bit X 256個のデータからなる変換テーブルを 16種類作 成する。同様に乱数 R1と R2、 R2と R3、 · · ·、 R9と RIOを元に、ランダム化テーブル 変換 Sml〜Sm9を構成する。具体的な構成方法は SmOと同様である。
(3)図 5に従って、暗号処理を行う。オリジナルの AES暗号処理と異なる点は、乱 数 ROとの排他的論理和演算 30aと乱数 R10に対する線形変換 L2 (39e)、及び前記 線形変換の結果との排他的論理和演算 39fの追加と、テーブル変換処理 30c、 31b 、 · · ·、 39b力 オリジナルの変換テーブル Tabの代わりに、乱数 RO〜R10を元に作 成したランダム化変換テーブルを用いる点である。
非特干文献 1: Federal Information Processing¾tandards Publication 19 7, rspecification for the ADVANCED ENCRYPTION STANDARD ( AES;)」, November 26, 2001
特許文献 1:米国特許第 6295606号明細書
発明の開示
発明が解決しょうとする課題
[0031] し力しながら、前記従来技術においては、電力解析攻撃対策によってもたらされる 暗号処理量の増加によって、暗号装置の処理速度が著しく低下するという課題を有 している。即ち、生成した乱数を元に生成する必要のあるランダム化変換テーブル (8 bit X 256個の要素を持つテーブル)は、 SmO、 Sml、 · · ·、 Sm9の各々に 16種類 含まれる(例えば、 SmOの場合は、 TabOa、 TabOb、 · · ·、 TabOpの 16種類)。即ち、 1回の暗号を行う際には、合計で 16 X 10= 160種類ものランダム化変換テーブルを 作成する必要がある。
[0032] また、ランダム化変換テーブルの生成に用いる乱数は、 1回の暗号ィ匕処理ごとに異 なるものである必要があり、上記のテーブル作成処理は、 1回の暗号化処理を行うた びに実行する必要がある。従って、この電力解析対策のための追加処理により、暗号 処理の処理速度が著しく低下してしまうと 、う課題を有して 、る。
[0033] また、上記 160種類ものランダム化変換テーブルを記憶するためのメモリが暗号モ ジュール内に必要となるため、メモリ量も著しく増加してしまうという課題も有している [0034] 本発明は、上述の課題を解決するためになされたものであり、電力解析攻撃を阻止 でき、かつ、暗号処理の速度低下及びメモリ量増加を、従来よりも削減可能なデータ 暗号ィ匕装置を提供することを目的とする。
課題を解決するための手段
[0035] 前記従来の課題を解決するために、本発明のデータ暗号ィ匕装置は、平文に対して 鍵に基づく所定の暗号処理を行い、暗号文を生成するデータ暗号化装置であって、 ラウンドごとにコア乱数を 1個生成し、前記コア乱数を所定の個数だけ連結して、第 1 乱数を生成する乱数生成部と、前記平文と前記第 1乱数とのデータ融合を行い、中 間データを生成する平文データ融合部と、ラウンドごとに前記中間データに対して、 前記第 1乱数と第 2乱数と前記鍵に基づいて、データ撹乱処理を行う、データ撹乱部 とを備える。
[0036] この構成によると、第 1乱数はコア乱数の繰返しになっている。このため、例えば、コ ァ乱数の個数が 16個であるとした場合には、データ撹乱処理を行なう場合に、従来 16個必要であったランダム化変換テーブルの個数を 1つにすることができる。よって 、暗号処理の速度低下を削減し、かつ暗号処理に必要なメモリ量を削減することがで きる。例えば、前記データ撹乱部は、ラウンドごとに、平文を前記所定の個数で等分 したデータを変換する 1つの変換テーブルを記憶する変換テーブル記憶部と、ラウン ドごとに、前記変換テーブルを、前記第 1乱数と前記第 2乱数とに基づいて変形する テーブル変換を行 ヽ、 1つの変形変換テーブルを生成する変換テーブル変形部と、 前記変形変換テーブルを記憶する変形変換テーブル記憶部と、ラウンドごとに、前 記中間データに対して、前記鍵と前記変形変換テーブルに記憶されている前記変形 変換テーブルとに基づいて、前記中間データを前記所定の個数で等分した各デー タに対して、データ変換処理を行うデータ変換部とを備えるような構成にすればよい
[0037] また、データ暗号化装置は、さらに、前記第 1乱数に対して所定の乱数変換を行い 、前記第 2乱数を生成する乱数変換部を備えていてもよいし、前記データ撹乱部は、 さらに、前記中間データに対して、所定の線形変換を行い、その結果を出力する線 形変換部を備え、前記乱数変換部は、前記線形変換の逆変換を前記乱数変換とし て行ってもよい。
[0038] さらに、前記所定の暗号処理は、 AES (Advanced Encryption Standard)暗号処理 であって、前記線形変換部は、 AES暗号処理における InvMixColumn処理と InvS hiftRow処理とからなり、前記乱数変換部は、前記第 1乱数を第 2乱数として出力す る構成であってもよい。
[0039] さらにまた、前記コア乱数は、すべてのラウンドにおいて同一の値であってもよい。
[0040] コア乱数をすベてのラウンドにおいて同一とすることにより、データ暗号化装置で使 用される変形変換テーブルを 1つにすることができる。このため、暗号処理の速度低 下を削減し、かつ暗号処理に必要なメモリ量を削減することができる。
[0041] なお、本発明は、このような特徴的な手段を備えるデータ暗号ィ匕装置として実現す ることができるだけでなぐデータ暗号ィヒ装置に含まれる特徴的な手段をステップとす るデータ暗号ィ匕方法として実現したり、データ暗号ィ匕方法に含まれる特徴的なステツ プをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そ のようなプログラムは、 CD-ROM (Compact Disc-Read Only Memory)等の記録媒 体やインターネット等の通信ネットワークを介して流通させることができるのは言うまで もない。
発明の効果
[0042] 本発明によると、電力解析攻撃を阻止でき、かつ、暗号処理の速度低下及びメモリ 量増加を、従来よりも削減可能なデータ暗号ィ匕装置を提供することができる。
[0043] 本発明の暗号装置によれば、暗号処理の中間データ及び変換テーブルをランダム 化するための乱数を、ある一定のフォーマットに従い、かつ、各テーブル変換処理の 前と後に排他的論理和演算される乱数それぞれが、全て同じ値になるように設定す ることで、電力解析攻撃のような、暗号処理中に暗号モジュール力 発生する副情報 を利用した解析方法を阻止しつつ、上記阻止のための対策による暗号処理の速度 低下とメモリ量の増加が従来よりも削減されるという効果がある。
図面の簡単な説明
[0044] [図 1]図 1は、 AES暗号の処理手順を示すブロック図である。
[図 2]図 2は、 AES暗号のテーブル変換処理 10bの構成を示すブロック図である。 [図 3]図 3は、 AES暗号の暗号装置 110の構成を示すブロック図である。
[図 4]図 4は、従来技術に係る AES暗号の処理手順を示すブロック図である。
[図 5]図 5は、従来技術に係る AES暗号の処理手順を示すブロック図である。
[図 6]図 6は、従来技術に係るランダム化テーブル変換処理 30cの構成を示すブロッ ク図である。
[図 7]図 7は、従来技術に係るランダム化テーブル変換処理 30cの構成の変形例を示 すブロック図である。
[図 8]図 8は、本発明の実施の形態に係る AES暗号処理手順を示すブロック図である
[図 9]図 9は、 AES暗号の処理手順を示したフローチャートである。
[図 10]図 10は、本発明の実施の形態に係る暗号装置 410の構成を示すブロック図 である。
[図 11]図 11は、本発明の実施の形態に係る乱数生成部 41 Oaの構成を示すブロック 図である。
[図 12]図 12は、本発明の実施の形態に係るランダム化テーブル変換処理の構成を 示すブロック図である。
[図 13]図 13は、本発明の実施の形態に係るランダム化テーブル変換処理の第 1の変 形例を示すブロック図である。
[図 14]図 14は、本発明の実施の形態に係るランダム化テーブル変換処理の第 2の変 形例を示すブロック図である。
[図 15]図 15は、 AES復号の処理手順を説明するブロック図である。
[図 16]図 16は、本発明の実施の形態に係る復号装置 510の構成を示すブロック図 である。
符号の説明
410 暗号装置
410a 乱数生成部
410b 排他的論理和部
410c 暗号鍵保管部 410d ラウンド鍵生成部
410e ラウンド鍵記憶部
410f 排他的論理和部
410g レジスタ
410h 第 1線形逆変換部
410i テーブルランダム化部
410j ランダムテーブル記憶部
410k テーブル変換部
4011 テーブル保管部
401m 第 1線形変換部
401n 第 2線形変換部
401o 第 2線形変換部
410p 排他的論理和部
510 復号装置
510a 乱数生成部
510b 排他的論理和部
510c 暗号鍵保管部
510d ラウンド鍵生成部
510e ラウンド鍵記憶部
510f 排他的論理和部
510g レジスタ
510h 第 1線形逆変換部
510i 逆テーブルランダム化部
510j 逆ランダムテーブル記憶部
510k 逆テーブル変換部
5011 逆テーブル保管部
501m 第 1線形逆変換部
501n 第 2線形逆変換部 501o 第 2線形変換部
510ρ 排他的論理和部
発明を実施するための最良の形態
[0046] 以下、本発明の実施の形態について、図面を参照しながら説明する。
[0047] (電力解析攻撃を阻止する AES暗号処理手順の概要)
図 8は、電力解析攻撃を阻止するための AES暗号の処理手順を説明するブロック 図である。また、図 9は、 AES暗号の処理手順を示したフローチャートである。以下、 図 8および図 9を用いて暗号処理手順を説明する。なお、 128bit X l l個のラウンド 鍵 ΚΟ、Κ1、 · ' ·、Κ10は、 128bitの暗号鍵から既に生成されているものとする。
[0048] (1) 128bitの乱数 Rを生成する(S2)。また、乱数 Rに線形変換 L1の逆変換 Lliを 施した値 R1を求める(S4)。更に、 R1に線形変換 L2を施した値 R2を求める(S6)。 ここで、線形変換 L1及び L2は、前述の Ll、 L2と同じ処理である。
(2) 128bitの平文 Pに対して、前記乱数 Rとの排他的論理和演算を行う(40a、 S8)
(3) 1=0, 1、 · ' ·、 9の順に、以下の処理((3— 1)〜(3— 5) )を繰り返し行う (ルー プ Α)。
(3— 1)ラウンド鍵 Kiとの排他的論理和演算を行う(40b、 41a、 42a、 · · ·、 49a、 S 10)。
(3— 2)乱数 Rとの排他的論理和演算を行う(40c、 41bゝ 42bゝ · · ·、 49bゝ S12)。 (3— 3)テーブル変換 Sを行う(40d、 41c、 42c、 · · ·、 49c、 S14)。ここで、テープ ル変換 Sは、既に述べたテーブル変換 Sと同一である。
(3— 4)舌 L数 R1との 他的餘理和演算を行う(40e、 41d、 42d、 · · ·、 49d、 S16)
(3— 5) i=0〜8の場合は(S18で YES)、線形変換 LIを行う(40f、 41e、 42e、 · · -、 48e、 S20)。 i= 9の場合は(S 18で NO)、線形変換 L2を行う(49e、 S22)。
(4)ラウンド鍵 K10との排他的論理和演算を行う(49g、 S24) 0
(5) R2との排他的論理和演算を行う(49h、 S26)。
[0049] 平文 Pに対して、上記(1)〜(5)の処理を行った結果を、暗号文 Cとして出力する。 このとき、(1)、(2)、(3— 2)及び(5)の処理力 オリジナルの AES暗号処理から追 カロされている処理である。このような処理を追加しても、オリジナルの AES暗号処理 で得られる暗号文と同一の暗号文が得られることは、以下のことからわかる。
[0050] (A)排他的論理和演算 40aで平文データ Pとの間で排他的論理和演算が行なわ れる乱数 Rの影響は、その後の、排他的論理和演算 40cによって除去される。即ち、 ラウンド鍵 KOとの排他的論理和演算 40bによる処理後の値は、 P ( + ) KO ( + ) Rであ る力 排他的論理和演算 40cによる処理後の値は、 P ( + )K0 ( + )R( + )R=P ( + ) KOとなり、 Rの影響は相殺される。
[0051] (B)テーブル変換 40d、 41c、 42c、 · · ·、 48cの後の排他的論理和演算 40e、 41d 、 42d、 · · ·、 48dによって排他的論理和される乱数 R1の影響は、それぞれ、その後 のテーブル変換 41c、 42c、 · · ·、 49cの前の排他的論理和演算 41b、 42b、 · · ·、 49 bによって除去される。例えば、排他的論理和演算 40e後の中間値は、 {オリジナル A ES暗号の中間値 } ( + )R1となり、排他的論理和演算 41bの入力値は、 {オリジナル AES暗号の中間値 } ( + ) L1 (R1)となる。ここで、 LI (R1)は、 R1に線形変換 L1を 施した結果を示すが、 R1自体が Lli(R)であることから、 LI (Rl) =Rである。即ち、 排他的論理和演算 40eの入力値は、 {オリジナル AES暗号の中間値 } ( + )Rとなり、 この Rの影響は、排他的論理和演算 41bにおいて、 Rと排他的論理和演算することに よって除去される。その他の場合についても同様である。
[0052] (C)テーブル変換 49cの後の排他的論理和演算 49dによって排他的論理和演算 が施される乱数 R1の影響は、その後の排他的論理和演算 49hによって除去される。 即ち、排他的論理和演算 49d後の暗号処理中間値は、 {オリジナル AES暗号の中 間値 } ( + )R1となり、排他的論理和演算 49hに入力される値は、 {オリジナル AES暗 号の中間値 } ( + ) L2 (R1)となる。ここで、 L2 (R1) =R2であるから、排他的論理和 演算 49hによる R2との排他的論理和によって、上記 L2 (R1)の影響は除去される。
[0053] (電力解析攻撃を阻止する AES暗号装置 410の構成)
図 10は、図 8の AES暗号処理手順を実現する暗号装置 410の構成の一例を示し たブロック図である。以下、暗号装置 410による処理手順について、図 9に示したフロ 一チャートを参照しながら説明する。 [0054] 暗号鍵保管部 410cは、 128bitの暗号鍵を保管する。ラウンド鍵生成部 410dは、 暗号処理時に、暗号鍵保管部 410cに保管する暗号鍵を元に、 AES暗号のラウンド 鍵生成手順に従って、 128bit X 11個のラウンド鍵 ΚΟ、 Κ1、 · · ·、 K10を生成する。 ラウンド鍵記憶部 410eは、前記ラウンド鍵 ΚΟ、 Κ1、 · · ·、 K10を記憶する。
[0055] 次に、乱数生成部 410aは、乱数 Rを生成する(図 9の S2)。乱数生成部 410aは、 図 11に示すように、コア乱数生成部 41 laと乱数拡大部 41 lbからなる。乱数 Rの生 成時には、まず、コア乱数生成部 41 laは、 8bitのコア乱数 rを生成し、乱数拡大部 4 l ibに転送する。乱数拡大部 41 lbは、前記乱数 rを 16個連結した値を乱数 Rとし、 乱数生成部 410aは、この乱数 Rを出力する。即ち、乱数 Rは、
R=r II r II · · · II r (rの個数は 16個)
となる。ここで" II "は、データの連結を表す。生成された 128bitの乱数 Rは、排他的 論理和部 410b、テーブルランダム化部 410i、第 1線形逆変換部 410hに転送する。
[0056] 第 1線形逆変換部 410hは、前記乱数 Rに対して線形変換 L1の逆変換を施して、 R 1を求め(図 9の S4)、テーブルランダム化部 410i及び第 2線形変換部 410οに転送 する。第 1線形逆変換部 410hの詳細手順は、以下の通りである。まず、入力データ Rを上位力ら 8bitずつ分害 ijして、 aO、 al、 a2、 · · ·、 al5とする。次に、 xO = aO、 xl = al、 x2 = a2、 x3 = a3とし、
[0057] [数 2]
Figure imgf000017_0001
で表される GF (2 "8)上の行列演算を行い、 b0、 bl、 b2、 b3を求める。これを、 y0 = b0、 yl =bl、 y2=b2、 y3 =b3とする。同様に、 x0 = a4、 xl = a5、 x2 = a6、 x3 = a 7として、前記行歹 IJ演算により、 b0、 bl、 b2、 b3を求めて、 y4=b0、 y5 =bl、 y6 =b 2、 y7=b3とする。更に、 x0 = a8、 xl = a9、 x2 = al0、 x3 = al lとして、 y8=b0、 y 9=bl、 yl0=b2、 yl l =b3を求め、 x0 = al2、 xl = al3、 x2 = al4、 x3 = al5とし て、 yl2=b0、 yl3=bl、 yl4=b2、 yl5=b3を求める。こうして求めた yO、 yl、… 、 yl5を、上位力も、 yO、 yl3、 ylO、 y7、 y4、 yl、 yl4、 yl l、 y8、 y5、 y2、 yl5、 yl 2、 y9、 y6、 y3の順序で連結した 128bitデータを第 1線形逆変換部 410hの出力と する。ここで、上記行歹 IJ演算式にお ヽて、 xO=xl =x2=x3=rとしたとき、 yO、 yl、 y2、 y3は、以下のように計算される。但し、乗算、加算は全て GF (2"8)上の演算で ある。
[0058] yO=yl =y2=y3 = OEh Xr + OBhXr + ODhXr + 09h Xr
= 01h Xr
=r
[0059] 同様にして y4〜y 15も全て rと等しいことが示されるので、第 1線形逆変換部 410h の出力 R1は、 Rl =R=r || r II · · · || rとなることが示された。即ち、第 1線形逆変換 部 410hは、実際には何も処理を行わなくてよい。
[0060] 次に、テーブルランダム化部 410iは、乱数 R及び R1を元にテーブル保管部 4101 に保管するオリジナル AES暗号の変換テーブル Tabに対してランダム化を行う。従 来技術であれば、図 6に示すとおり、各テーブル変換処理 300a〜300pの前と後に は、それぞれ異なる乱数による排他的論理和演算が施されていた。これによつて、図 7に示すようなそれぞれ異なったランダム化変換テーブル 303a〜303pを作成する 必要があった。しかし、本実施の形態においては、既に示したとおり、乱数 R及び R1 力^、ずれも Rl =R=r II r II · · · II rである。このことによって、図 12に示すように、各 テーブル変換処理 412a〜412pの前と後に、全て同じ乱数 rによる排他的論理和演 算が施されることになる。従って、これら一連の処理ほ L数による排他的論理和→テ 一ブル変換→乱数による排他的論理和)は図 13に示すとおり、全て同じランダム化 変換テーブル mTabに変形することになる。即ち、図 13は、図 14のように 1個のラン ダム化変換テーブル 416によって実現できる。具体的には、以下のようにしてランダ ム化変換テーブル mTabを生成する。まず、テーブルランダム化部 410iは、テープ ル保管部 4101に保管して!/、る、オリジナル AES暗号の変換テーブル Tabの配列デ ータ Tab[0]〜Tab[255]を読み出す。次に、上記配列データと乱数 R及び乱数 R1に 含まれるコア乱数 rを用いて以下のような配列データ mTab[0]〜mTab[255]を生成 する。
[0061] mTab[i] =Tab[i ( + ) r] ( + ) r
テーブルランダム化部 410iは、上記のようにして生成したランダム化変換テーブル mTabをランダムテーブル記憶部 410jに転送し、記憶する。
[0062] 更に、第 2線形変換部 410οは、乱数 R1に対して線形変換 L2を施して、 R2を求め
、排他的論理和部 410ρに転送する(図 9の S6)。ここで、線形変換 L2は、既に述べ たとおり、バイト単位の置換であり、かつ、乱数 R1は既に説明した通り、 Rl =R=r II r II · · · II r (rは 8bit)であることから、 L2 (R1) =R1 =Rである。即ち、実際には、第 2 線形変換部 410οは、何も処理を行わなくてよ!、。
[0063] 以上が、暗号処理を行うための前処理であり、以下では、上記前処理結果を元にし て、平文 Ρに対する暗号処理を行う手順を述べる。
[0064] 暗号装置 410に入力される平文 Ρに対して、排他的論理和部 410bは、前記乱数 R との排他的論理和演算を行い、その結果をレジスタ 410gに転送し、一時記憶する( 図 9の S8)。
[0065] 次に、排他的論理和部 410fは、レジスタ 410g内のデータを読み出して、ラウンド 鍵記憶部 41 Oeに記憶するラウンド鍵 K0との排他的論理和演算を行 、、結果をレジ スタ 410g〖こ書き込む(図 9の S10)。このとき、書き込む前にレジスタに記憶している データは上書きされて消去される。
[0066] 次に、テーブル変換部 410kは、レジスタ 410g内のデータを読み出して、ランダム テーブル記憶部 410jに記憶するランダム化変換テーブル mTabに基づ 、てテープ ル変換処理を行う(図 9の S12〜S16)。具体的には、レジスタ 410gから読み出した データを Xとすると、テーブル変換処理後のデータ Yは、
Y=mTab[X]
として求められる。変換処理後のデータは、レジスタ 410gに上書きする。上書き前の レジスタ 410g内のデータは消去される。
[0067] 次に、第 1線形変換部 410mは、レジスタ 410gのデータを読み出して、線形変換 L 1を施して、レジスタ 410gに上書きする(図 9の S18で YES、 S20)。
[0068] 上記処理の後、以上の排他的論理和部 410f、テーブル変換部 410k、第 1線形変 換部 410mの一連の処理を、ラウンド鍵 Kl、 Κ2、 Κ3、 · · ·、 Κ9を用いて繰り返し行う
(図 9のループ Α)。但し、ラウンド鍵 Κ9を用いて上記一連の処理を行う時に限り、第
1線形変換部 410mによる処理の代わりに、第 2線形変換部 410ηによる線形変換 L2 の処理を行う(図 9の S18で NO、 S22) 0
[0069] 更に、排他的論理和部 410fは、レジスタ 410g内のデータを読み出して、ラウンド 鍵記憶部 410eに記憶するラウンド鍵 K10との排他的論理和演算を行い、結果をレ ジスタ 410gに書き込む(図 9の S24)。
[0070] そして、排他的論理和部 410pは、レジスタ 410gに記憶するデータを読み出して、 乱数 R2との排他的論理和演算を行い、その結果を暗号文 Cとして暗号装置 410から 出力する(図 9の S26)。
[0071] (AES復号処理手順の概要)
以上、説明した電力解析攻撃を阻止する AES暗号処理で作成された暗号文 Cを 復号する処理手順にっ 、て説明する。
[0072] 図 15は、 AES復号の処理手順を説明するブロック図である。図 8に示した暗号処 理手順との違いは、暗号文 Cから平文 Pを生成するために、データの流れが逆になつ ている点である。
[0073] また、テーブル変換 Sの代わりにテーブル変換 Sの逆変換 Siを施し、線形変換 L1 の代わりに線形変換 L1の逆変換 Lliを施し、線形変換 L2の代わりに線形変換 L2の 逆変換 L2iを施す点が異なる。ただし、線形変換 L2 (48f)については、そのままであ る。
[0074] (復号装置 510の構成)
図 16は、暗号装置 410で暗号ィ匕された暗号文 Cを復号して平文 Pを求めるための 復号装置 510の構成を示すブロック図である。ここでは、暗号装置 410との差異部分 のみ説明する。
[0075] 逆テーブル保管部 5101は、テーブル保管部 4101に保管していた変換テーブル Ta bと逆変換の関係にある、逆変換テーブル ITabを保管する。具体的には、 ITabの配 列要素 ITab [0]〜 ab [255]は、以下のように定義される。
[0076] ITab [Tab [i] ] =i (i=0、 1、 · · ·、 255)
逆テーブルランダム化部 5 lOiは、逆変換テーブル ITabから、ランダム化逆変換テ 一ブル ImTabを求める方法は、テーブルランダム化部 410iで述べた方法と同じであ るから省略する。
[0077] 復号装置 510による復号処理では、最初に、排他的論理和部 5 ΙΟρの処理を行う。
これは、排他的論理和部 410pと同一の処理である。次に、排他的論理和部 410fと 同様にして、排他的論理和部 510fが、ラウンド鍵 K10を用いた排他的論理和演算を 行う。そして、第 1線形逆変換部 510m、逆テーブル変換部 510k、排他的論理和部 510fの順序からなる一連の処理を、ラウンド鍵 Κ9、 Κ8、 · · ·、 Κ1、 Κ0の順にラウン ド鍵を用いて繰り返し行う。このとき、ラウンド鍵 Κ9を用いた場合の一連の処理では、 第 1線形逆変換部 510mの代わりに、第 2線形逆変換部 510ηによる処理を行う。こ のとき、第 1線形逆変換部 510mは、既に述べた線形変換 L1の逆変換処理 Lliを行 い、第 2線形逆変換部 510ηは、線形変換 L2の逆変換処理 L2iを行う。上記処理の 後、排他的論理和部 510bが、排他的論理和演算を行い、その結果を平文 Pとして 出力する。
[0078] 以上のように、本実施の形態では、 8bit X 256個の配列要素力もなるランダム化変 換テーブルを 1個だけ作成して記憶しておけばよい。従来技術では、 8bit X 256個 の配列要素力もなるランダム化変換テーブルを、 160個も作成する必要があつたの で、ランダム化変換テーブルを作成するための処理量は、従来技術と比べると 160 分の 1に削減される。
[0079] なお、本実施の形態では、電力解析攻撃対策の対象とする暗号を、 AES暗号とし ているが、 AES暗号だけに限らず、ラウンド鍵とのデータ融合、テーブル変換、線形 変換という一連の処理力 なる繰り返し型の暗号方式であれば同様の方法により適 用可能である。そのような暗号方式の例としては、 Camellia暗号や、 Hierocrypt暗 号などがある。
[0080] また、本実施の形態にお!、て、二つのデータをデータ融合する方法として、排他的 論理和演算を用いている力 これは、算術加算であってもよい。 [0081] また、本実施の形態にお!、て、第 1線形逆変換部 410m及び第 2線形変換部 410η は、実際には何も処理をおこなわなくてよいので、これらは省略してもよい。
[0082] なお、本発明を上記実施の形態に基づいて説明してきた力 本発明は、上記の実 施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる
[0083] (1)上記の各装置は、具体的には、マイクロプロセッサ、 ROM, RAM,ハードディ スクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュー タシステムである。前記 RAMまたはハードディスクユニットには、コンピュータプロダラ ムが記憶されている。前記マイクロプロセッサ力 前記コンピュータプログラムにしたが つて動作することにより、各装置は、その機能を達成する。ここでコンピュータプロダラ ムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが 複数個組み合わされて構成されたものである。
[0084] (2)上記の各装置を構成する構成要素の一部または全部は、 1個のシステム LSI ( Large Scale Integration:大規模集積回路)から構成されているとしてもよい。シ ステム LSIは、複数の構成部を 1個のチップ上に集積して製造された超多機能 LSIで あり、具体的には、マイクロプロセッサ、 ROM、 RAMなどを含んで構成されるコンビ ユータシステムである。前記 RAMには、コンピュータプログラムが記憶されている。前 記マイクロプロセッサ力 S、前記コンピュータプログラムにしたがって動作することにより
、システム LSIは、その機能を達成する。
[0085] (3)上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能 な ICカードまたは単体のモジュール力も構成されて 、るとしてもよ 、。前記 ICカード または前記モジュールは、マイクロプロセッサ、 ROM, RAMなどから構成されるコン ピュータシステムである。前記 ICカードまたは前記モジュールは、上記の超多機能 L SIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動 作することにより、前記 ICカードまたは前記モジュールは、その機能を達成する。この ICカードまたはこのモジュールは、耐タンパ性を有するとしてもよ!/、。
[0086] (4)本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンビュ ータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプ ログラム力もなるデジタル信号であるとしてもよい。
[0087] また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンビユー タ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、 CD— R OM、 MO、 DVD, DVD-ROM, DVD -RAM, BD (Blu— ray Disc)、半導体 メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前 記デジタル信号であるとしてもよ 、。
[0088] また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信 回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放 送等を経由して伝送するものとしてもよい。
[0089] また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、 前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは 、前記コンピュータプログラムにしたがって動作するとしてもよい。
[0090] また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送する ことにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経 由して移送すること〖こより、独立した他のコンピュータシステムにより実施するとしても よい。
[0091] (5)上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよ!/、。
産業上の利用可能性
[0092] 本発明にかかる暗号装置は、電力解析攻撃を阻止しつつ、従来技術よりも、暗号 処理の処理量を削減するという特徴を有するので、本発明は、高速処理あるいは低 コストでの実現が求められる暗号装置等に適用できる。

Claims

請求の範囲
[1] 平文に対して鍵に基づく所定の暗号処理を行い、暗号文を生成するデータ暗号化 装置であって、
ラウンドごとにコア乱数を 1個生成し、前記コア乱数を所定の個数だけ連結して、第 1乱数を生成する乱数生成部と、
前記平文と前記第 1乱数とのデータ融合を行い、中間データを生成する平文デー タ融合部と、
ラウンドごとに前記中間データに対して、前記第 1乱数と第 2乱数と前記鍵に基づい て、データ撹乱処理を行う、データ撹乱部とを備えるデータ暗号化装置。
[2] 前記データ撹乱部は、
ラウンドごとに、平文を前記所定の個数で等分したデータを変換する 1つの変換テ 一ブルを記憶する変換テーブル記憶部と、
ラウンドごとに、前記変換テーブルを、前記第 1乱数と前記第 2乱数とに基づいて変 形するテーブル変換を行 ヽ、 1つの変形変換テーブルを生成する変換テーブル変 形部と、
前記変形変換テーブルを記憶する変形変換テーブル記憶部と、
ラウンドごとに、前記中間データに対して、前記鍵と前記変形変換テーブルに記憶 されている前記変形変換テーブルとに基づいて、前記中間データを前記所定の個 数で等分した各データに対して、データ変換処理を行うデータ変換部とを備える 請求項 1に記載のデータ暗号化装置。
[3] さらに、前記第 1乱数に対して所定の乱数変換を行い、前記第 2乱数を生成する乱 数変換部を備える
請求項 2に記載のデータ暗号化装置。
[4] 前記データ撹乱部は、さらに、前記中間データに対して、所定の線形変換を行い、 その結果を出力する線形変換部を備え、
前記乱数変換部は、前記線形変換の逆変換を前記乱数変換として行う 請求項 3に記載のデータ暗号化装置。
[5] 前記所定の暗号処理は、 AES (Advanced Encryption Standard)暗号処理であって 前記線形変換部は、 AES暗号処理における InvMixColumn処理と InvShiftRo w処理とからなり、
前記乱数変換部は、前記第 1乱数を第 2乱数として出力する
請求項 4に記載のデータ暗号化装置。
[6] 前記コア乱数は、すべてのラウンドにおいて同一の値である
請求項 5に記載のデータ暗号化装置。
[7] 平文に対して鍵に基づく所定の暗号処理を行い、暗号文を生成する集積回路であ つて、
ラウンドごとにコア乱数を 1個生成し、前記コア乱数を所定の個数だけ連結して、第 1乱数を生成する乱数生成部と、
前記平文と前記第 1乱数とのデータ融合を行い、中間データを生成する平文デー タ融合部と、
ラウンドごとに前記中間データに対して、前記第 1乱数と第 2乱数と前記鍵に基づい て、データ撹乱処理を行うデータ撹乱部とを備える集積回路。
[8] 平文に対して鍵に基づく所定の暗号処理を行い、暗号文を生成するデータ暗号化 方法であって、
ラウンドごとにコア乱数を 1個生成し、前記コア乱数を所定の個数だけ連結して、第 1乱数を生成し、
前記平文と前記第 1乱数とのデータ融合を行い、中間データを生成し、 ラウンドごとに前記中間データに対して、前記第 1乱数と第 2乱数と前記鍵に基づい て、データ撹乱処理を行うデータ暗号化方法。
[9] 平文に対して鍵に基づく所定の暗号処理を行い、暗号文を生成するプログラムで あって、
ラウンドごとにコア乱数を 1個生成し、前記コア乱数を所定の個数だけ連結して、第 1乱数を生成するステップと、
前記平文と前記第 1乱数とのデータ融合を行い、中間データを生成するステップと ラウンドごとに前記中間データに対して、前記第 1乱数と第 2乱数と前記鍵に基づい て、データ撹乱処理を行うステップとをコンピュータに実行させるプログラム。
PCT/JP2006/302364 2005-03-31 2006-02-10 データ暗号化装置及びデータ暗号化方法 WO2006112114A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US11/597,915 US8094811B2 (en) 2005-03-31 2006-02-10 Data encryption device and data encryption method
EP06713507A EP1865481A1 (en) 2005-03-31 2006-02-10 Data encryption device and data encryption method
JP2006521745A JP4823904B2 (ja) 2005-03-31 2006-02-10 データ暗号化装置及びデータ暗号化方法
CN2006800090961A CN101147182B (zh) 2005-03-31 2006-02-10 数据加密装置及数据加密方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005-102157 2005-03-31
JP2005102157 2005-03-31

Publications (1)

Publication Number Publication Date
WO2006112114A1 true WO2006112114A1 (ja) 2006-10-26

Family

ID=37114856

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/302364 WO2006112114A1 (ja) 2005-03-31 2006-02-10 データ暗号化装置及びデータ暗号化方法

Country Status (5)

Country Link
US (1) US8094811B2 (ja)
EP (1) EP1865481A1 (ja)
JP (1) JP4823904B2 (ja)
CN (1) CN101147182B (ja)
WO (1) WO2006112114A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011175039A (ja) * 2010-02-23 2011-09-08 Toshiba Corp 暗号化装置および復号装置
JP2012070048A (ja) * 2010-09-21 2012-04-05 Toshiba Corp 暗号化装置および復号装置
JP2012520589A (ja) * 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
CN102880836A (zh) * 2011-07-15 2013-01-16 富士通半导体股份有限公司 安全装置
US8600049B2 (en) 2008-02-27 2013-12-03 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
CN104573544A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
US9288040B2 (en) 2010-02-22 2016-03-15 Kabushiki Kaisha Toshiba Encryption device
KR102072335B1 (ko) * 2019-08-14 2020-01-31 동서대학교 산학협력단 스크램블러를 이용한 aes 암호 알고리즘에 대한 전력분석공격 방어기술 적용방법
CN112769557A (zh) * 2020-12-30 2021-05-07 北京宏思电子技术有限责任公司 嵌入式系统中加快sm9双线性对运算的实现方法及装置
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
EP4351080A1 (en) 2022-10-03 2024-04-10 Canon Kabushiki Kaisha Encryption processing apparatus, encryption processing method for encryption processing apparatus, and storage medium

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005340892A (ja) * 2004-05-24 2005-12-08 Matsushita Electric Ind Co Ltd 暗号回路
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
DE102007035738A1 (de) 2007-07-30 2009-02-05 Robert Bosch Gmbh Übermittlungsvorrichtung und Verfahren zum Übermitteln einer aktuellen Position eines Fahrzeugs an eine Auswertezentrale
KR20100094862A (ko) * 2009-02-19 2010-08-27 삼성전자주식회사 스토리지 장치 및 그것의 데이터 관리 방법
WO2011000177A1 (zh) * 2009-07-01 2011-01-06 慧帝科技(深圳)有限公司 数据储存装置以及数据存取方法
US8966285B2 (en) * 2011-01-10 2015-02-24 Apple Inc. Securing implementation of a cryptographic process having fixed or dynamic keys
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
US8924740B2 (en) * 2011-12-08 2014-12-30 Apple Inc. Encryption key transmission with power analysis attack resistance
JP5612007B2 (ja) * 2012-03-15 2014-10-22 株式会社東芝 暗号化鍵生成装置
EP2987267B1 (en) * 2013-04-18 2019-03-20 Risoftdev, Inc. System and methods for encrypting data
US20150130688A1 (en) * 2013-11-12 2015-05-14 Google Inc. Utilizing External Devices to Offload Text Entry on a Head Mountable Device
US9977852B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit interconnect
US10073939B2 (en) 2015-11-04 2018-09-11 Chronos Tech Llc System and method for application specific integrated circuit design
US9977853B2 (en) 2015-11-04 2018-05-22 Chronos Tech Llc Application specific integrated circuit link
US11550982B2 (en) 2015-11-04 2023-01-10 Chronos Tech Llc Application specific integrated circuit interconnect
US10789358B2 (en) 2015-12-17 2020-09-29 Cryptography Research, Inc. Enhancements to improve side channel resistance
CN105471894A (zh) * 2015-12-28 2016-04-06 国家电网公司 一种电力通信移动运维现场数据加密验证传输的方法
CN107547195A (zh) * 2016-06-28 2018-01-05 埃沙尔公司 免受侧信道分析的保护方法和设备
US10331835B2 (en) 2016-07-08 2019-06-25 Chronos Tech Llc ASIC design methodology for converting RTL HDL to a light netlist
US10181939B2 (en) 2016-07-08 2019-01-15 Chronos Tech Llc Systems and methods for the design and implementation of an input and output ports for circuit design
US10637592B2 (en) 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
US11863304B2 (en) * 2017-10-31 2024-01-02 Unm Rainforest Innovations System and methods directed to side-channel power resistance for encryption algorithms using dynamic partial reconfiguration
CN109413051B (zh) * 2018-10-09 2021-02-26 深圳南方德尔汽车电子有限公司 数据加密方法、装置、计算机设备及存储介质
US11087057B1 (en) 2019-03-22 2021-08-10 Chronos Tech Llc System and method for application specific integrated circuit design related application information including a double nature arc abstraction
CN110166239B (zh) * 2019-06-04 2023-01-06 成都卫士通信息产业股份有限公司 用户私钥生成方法、系统、可读存储介质及电子设备
CN113537913A (zh) * 2020-04-16 2021-10-22 上海利云网络科技有限公司 一种高安全性的企业信息管理系统及方法
CN112769552B (zh) * 2020-12-30 2022-08-23 北京宏思电子技术有限责任公司 一种在嵌入式系统中加快线性对运算的实现方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000502822A (ja) * 1996-08-16 2000-03-07 ベル コミュニケーションズ リサーチ,インコーポレイテッド 高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータ
JP2002366029A (ja) * 2001-06-13 2002-12-20 Fujitsu Ltd Dpaに対して安全な暗号化

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263081B1 (en) * 1997-07-17 2001-07-17 Matsushita Electric Industrial Co., Ltd. Elliptic curve calculation apparatus capable of calculating multiples at high speed
DE69930334T2 (de) * 1998-01-28 2006-11-09 Hitachi, Ltd. IC-Karte ausgerüstet mit einer Verarbeitungsanlage für Elliptische-Kurven-Verschlüsselung
JP2000305453A (ja) * 1999-04-21 2000-11-02 Nec Corp 暗号化装置,復号装置,および暗号化・復号装置
US6295606B1 (en) 1999-07-26 2001-09-25 Motorola, Inc. Method and apparatus for preventing information leakage attacks on a microelectronic assembly
US7068786B1 (en) * 1999-08-29 2006-06-27 Intel Corporation Dual use block/stream cipher
EP1252738A2 (en) * 2000-01-31 2002-10-30 VDG Inc. Block encryption method and schemes for data confidentiality and integrity protection
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
JP3851115B2 (ja) 2001-06-28 2006-11-29 富士通株式会社 暗号回路
US6838122B2 (en) * 2001-07-13 2005-01-04 Micron Technology, Inc. Chemical vapor deposition methods of forming barium strontium titanate comprising dielectric layers
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
JP3862074B2 (ja) * 2002-06-20 2006-12-27 ソニー株式会社 データ通信システム、情報処理装置および方法、並びにプログラム
JP4357815B2 (ja) * 2002-09-11 2009-11-04 株式会社東芝 暗号演算回路
JP3503638B1 (ja) * 2002-09-26 2004-03-08 日本電気株式会社 暗号装置及び暗号プログラム
KR100813954B1 (ko) * 2003-01-16 2008-03-14 삼성전자주식회사 암호화 장치 및 암호화 방법
EP1496641A3 (en) * 2003-07-07 2005-03-02 Sony Corporation Cryptographic processing apparatus, cryptographic processing method and computer program
US8229108B2 (en) * 2003-08-15 2012-07-24 Broadcom Corporation Pseudo-random number generation based on periodic sampling of one or more linear feedback shift registers
JP3998616B2 (ja) * 2003-09-10 2007-10-31 株式会社東芝 暗号化/復号モジュール
JP3803664B2 (ja) * 2003-09-30 2006-08-02 株式会社東芝 乱数生成回路、半導体集積回路、icカード及び情報端末機器
JP2005134478A (ja) 2003-10-28 2005-05-26 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR100564599B1 (ko) * 2003-12-24 2006-03-29 삼성전자주식회사 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
FR2867635B1 (fr) * 2004-03-11 2006-09-22 Oberthur Card Syst Sa Procede de traitement de donnees securise, base notamment sur un algorithme cryptographique
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
US8296577B2 (en) * 2004-06-08 2012-10-23 Hrl Laboratories, Llc Cryptographic bus architecture for the prevention of differential power analysis
US7715555B2 (en) * 2004-09-07 2010-05-11 Broadcom Corporation Method and system for extending advanced encryption standard (AES) operations for enhanced security
US7496616B2 (en) * 2004-11-12 2009-02-24 International Business Machines Corporation Method, apparatus and system for resistance to side channel attacks on random number generators
KR100967880B1 (ko) * 2004-11-26 2010-07-05 삼성전자주식회사 M6 블록암호시스템
DE602004013206T2 (de) * 2004-12-01 2009-05-14 Telecom Italia S.P.A. Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
KR20060081847A (ko) * 2005-01-10 2006-07-13 삼성전자주식회사 비밀키를 보호하는 스마트 카드 및 그것의 방법
US7831833B2 (en) * 2005-04-22 2010-11-09 Citrix Systems, Inc. System and method for key recovery
KR100891323B1 (ko) * 2005-05-11 2009-03-31 삼성전자주식회사 이진 필드 ecc에서 랜덤 포인트 표현을 이용하여 파워해독의 복잡도를 증가시키기 위한 암호화 방법 및 장치
US8019802B2 (en) * 2005-08-24 2011-09-13 Qualcomm Incorporated Cryptographically secure pseudo-random number generator

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000502822A (ja) * 1996-08-16 2000-03-07 ベル コミュニケーションズ リサーチ,インコーポレイテッド 高速で安全な暗号化のための改良された暗号的に安全な疑似ランダム・ビット・ジェネレータ
JP2002366029A (ja) * 2001-06-13 2002-12-20 Fujitsu Ltd Dpaに対して安全な暗号化

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8600049B2 (en) 2008-02-27 2013-12-03 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
US9654280B2 (en) 2009-03-10 2017-05-16 Irdeto B.V. White-box cryptographic system with input dependent encodings
JP2012520589A (ja) * 2009-03-10 2012-09-06 イルデト・コーポレート・ビー・ヴイ 入力に依存する符号化を用いたホワイトボックス暗号システム
US9288040B2 (en) 2010-02-22 2016-03-15 Kabushiki Kaisha Toshiba Encryption device
JP2011175039A (ja) * 2010-02-23 2011-09-08 Toshiba Corp 暗号化装置および復号装置
US9031234B2 (en) 2010-09-21 2015-05-12 Kabushiki Kaisha Toshiba Encryption device and decryption device
JP2012070048A (ja) * 2010-09-21 2012-04-05 Toshiba Corp 暗号化装置および復号装置
CN102880836A (zh) * 2011-07-15 2013-01-16 富士通半导体股份有限公司 安全装置
CN102880836B (zh) * 2011-07-15 2016-02-10 株式会社索思未来 安全装置
CN104573544A (zh) * 2013-10-28 2015-04-29 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
CN104573544B (zh) * 2013-10-28 2017-09-12 上海复旦微电子集团股份有限公司 数据的防攻击方法及装置、rsa模幂运算方法、装置和电路
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
KR102072335B1 (ko) * 2019-08-14 2020-01-31 동서대학교 산학협력단 스크램블러를 이용한 aes 암호 알고리즘에 대한 전력분석공격 방어기술 적용방법
CN112769557A (zh) * 2020-12-30 2021-05-07 北京宏思电子技术有限责任公司 嵌入式系统中加快sm9双线性对运算的实现方法及装置
CN112769557B (zh) * 2020-12-30 2022-10-18 北京宏思电子技术有限责任公司 嵌入式系统中加快sm9双线性对运算的实现方法及装置
EP4351080A1 (en) 2022-10-03 2024-04-10 Canon Kabushiki Kaisha Encryption processing apparatus, encryption processing method for encryption processing apparatus, and storage medium

Also Published As

Publication number Publication date
JP4823904B2 (ja) 2011-11-24
JPWO2006112114A1 (ja) 2008-12-04
US20080285743A1 (en) 2008-11-20
CN101147182B (zh) 2010-09-01
EP1865481A1 (en) 2007-12-12
US8094811B2 (en) 2012-01-10
CN101147182A (zh) 2008-03-19

Similar Documents

Publication Publication Date Title
WO2006112114A1 (ja) データ暗号化装置及びデータ暗号化方法
JP4961909B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP4905000B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5055993B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
DK1686722T3 (en) Block encryption device and block encryption method comprising rotation key programming
WO2010055658A1 (ja) コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路
JP5050454B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
EP2058780A1 (en) Encryption device, encryption method, and computer program
WO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
EP2058782A1 (en) Encryption device, encryption method, and computer program
JP2005505069A (ja) メモリ暗号化
JPWO2008078390A1 (ja) データ圧縮装置およびデータ復元装置
WO2007083528A1 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN107438065A (zh) 数据加密装置及方法、数据解密装置及方法
WO2012131856A1 (ja) 情報処理装置、改ざん検出装置、情報処理方法、改ざん検出方法、情報処理プログラムおよび改ざん検出プログラム
EP1351430B1 (en) Expansion key generating device, encryption device and encryption system
JP2007334016A (ja) データ暗号化装置及びデータ暗号化方法
JPH0697930A (ja) ブロック暗号処理装置
JP4515716B2 (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JPH05324485A (ja) ファイル圧縮暗号処理装置
Kim et al. A modified exhaustive search on a password system using SHA-1
JP4644053B2 (ja) 暗号化装置及び方法、復号化装置及び方法
JPH0744375A (ja) 暗号化データ処理装置
JP2007158967A (ja) 情報処理装置、耐タンパーデバイス、暗号処理方法及びコンピュータプログラム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2006521745

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 11597915

Country of ref document: US

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

Ref document number: 2006713507

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 200680009096.1

Country of ref document: CN

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

NENP Non-entry into the national phase

Ref country code: RU

WWW Wipo information: withdrawn in national office

Country of ref document: RU

WWP Wipo information: published in national office

Ref document number: 2006713507

Country of ref document: EP