WO2012070478A1 - 暗号処理装置 - Google Patents

暗号処理装置 Download PDF

Info

Publication number
WO2012070478A1
WO2012070478A1 PCT/JP2011/076622 JP2011076622W WO2012070478A1 WO 2012070478 A1 WO2012070478 A1 WO 2012070478A1 JP 2011076622 W JP2011076622 W JP 2011076622W WO 2012070478 A1 WO2012070478 A1 WO 2012070478A1
Authority
WO
WIPO (PCT)
Prior art keywords
cryptographic processing
arithmetic
arithmetic circuit
arithmetic circuits
data
Prior art date
Application number
PCT/JP2011/076622
Other languages
English (en)
French (fr)
Inventor
武伸 西口
Original Assignee
シャープ株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by シャープ株式会社 filed Critical シャープ株式会社
Publication of WO2012070478A1 publication Critical patent/WO2012070478A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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 cryptographic processing device, and more particularly to a cryptographic processing device with improved resistance to power analysis.
  • a cryptographic processing device that performs a predetermined cryptographic process on input data using a key held in a secret state (hereinafter referred to as a secret key) is used.
  • the cryptographic processing apparatus may hold a secret key inside a semiconductor integrated circuit or an IC card.
  • CMOS circuits Semiconductor integrated circuits and IC cards are often composed of CMOS circuits.
  • CMOS circuit a current flows when the output changes, so that a difference occurs in the consumption current waveform depending on the output change mode. For example, consider a case where the value of a 16-bit signal in the circuit changes from 0000h (hexadecimal notation) to FFFFh and a case where the value changes from 0000h to 1111h. In the former case, the signal changes by 16 bits, whereas in the latter case, the signal changes by only 4 bits. For this reason, a difference occurs in the consumption current waveform in these two cases.
  • a method for estimating the secret key by observing the current consumption waveform of the circuit using this property, and estimating the value of the signal in the circuit and the content of the process being executed in the circuit has been devised.
  • differential power analysis Differential Analysis: DPA
  • DPA Data Encryption Standard
  • the contents of encryption processing are disclosed. For this reason, if the start timing of encryption processing can be specified, the secret key can be estimated relatively easily by differential power analysis.
  • Patent Document 1 discloses a first register that stores data for round calculation, a second register that stores an exclusive OR of data input to the first register and a divided signal, A cryptographic processing apparatus is described that includes a determination unit that determines whether data stored in two registers is all-bits coincidence or all-bits disagreement.
  • an object of the present invention is to provide a cryptographic processing apparatus having improved resistance to power analysis by a method different from the conventional one.
  • a first aspect of the present invention is an encryption processing apparatus that divides and executes encryption processing into a plurality of processes, A plurality of arithmetic circuits that execute the same cryptographic process by executing a plurality of processes in stages, and A clock control unit that selects one arithmetic circuit from the plurality of arithmetic circuits and supplies a clock signal for causing the selected arithmetic circuit to execute one stage of cryptographic processing;
  • the plurality of arithmetic circuits execute encryption processing using secret data and encryption processing using invalid data in a time-sharing manner with a one-stage processing as a switching unit according to control by the clock control unit.
  • the plurality of arithmetic circuits have the same circuit configuration and execute the same cryptographic processing independently of each other,
  • the plurality of arithmetic circuits include an arithmetic circuit that executes cryptographic processing using the confidential data and an arithmetic circuit that executes cryptographic processing using the invalid data.
  • An input selection unit that switches which of the secret data and the invalid data is supplied to the plurality of arithmetic circuits; And an output selection unit that selects a result of encryption processing using the secret data from results obtained by the plurality of arithmetic circuits.
  • the clock controller supplies a clock signal selected from a plurality of clock signals having different frequencies to the plurality of arithmetic circuits.
  • the clock control unit supplies the same clock signal to the plurality of arithmetic circuits.
  • the clock controller may randomly select an arithmetic circuit that supplies the clock signal during operation.
  • the clock control unit selects an arithmetic circuit that supplies the clock signal in a predetermined order.
  • One arithmetic circuit among the plurality of arithmetic circuits executes cryptographic processing using the secret data, and the remaining arithmetic circuits execute cryptographic processing using the invalid data.
  • arithmetic circuit selection unit is further provided for selecting which arithmetic circuit is to execute each stage of the encryption process using the confidential data and the encryption process using the invalid data.
  • the arithmetic circuit selection unit randomly selects an arithmetic circuit that executes processing of each stage during operation.
  • An eleventh aspect of the present invention is the ninth aspect of the present invention,
  • the clock controller supplies a clock signal selected from a plurality of clock signals having different frequencies to the plurality of arithmetic circuits.
  • a twelfth aspect of the present invention is the ninth aspect of the present invention,
  • the clock control unit supplies the same clock signal to the plurality of arithmetic circuits.
  • a thirteenth aspect of the present invention is the ninth aspect of the present invention.
  • An output selection unit is further provided for selecting a result of encryption processing using the confidential data from results obtained by the plurality of arithmetic circuits.
  • a fourteenth aspect of the present invention is a cryptographic processing method for executing a cryptographic process by dividing it into a plurality of processes, By executing a plurality of processes step by step, one arithmetic circuit is selected from a plurality of arithmetic circuits that execute the same cryptographic process, and one stage of cryptographic processing is executed on the selected arithmetic circuit Supplying a clock signal for causing Based on the supplied clock signal, using the plurality of arithmetic circuits, executing encryption processing using secret data and encryption processing using invalid data in a time-sharing manner with one-stage processing as a switching unit. Prepare.
  • encryption processing using secret data and encryption processing using invalid data can be performed in a time-sharing manner with one-stage processing as a switching unit. By executing this, it is possible to make it difficult to acquire data necessary for power analysis without increasing power consumption, and to improve resistance to power analysis.
  • an input selection unit and an output selection unit are used to switch between an arithmetic circuit that executes cryptographic processing using confidential data and an arithmetic circuit that executes cryptographic processing using invalid data.
  • the fourth or eleventh aspect of the present invention by switching the clock signal supplied to the arithmetic circuit, acquisition of data necessary for power analysis can be made more difficult, and resistance to power analysis can be further improved. Further, by using a clock signal having a low frequency, current consumption can be reduced as compared with a case where only a clock signal having the same frequency is used.
  • the configuration of the clock control unit can be simplified by supplying the same clock signal to a plurality of arithmetic circuits.
  • the configuration of the clock control unit can be simplified by selecting the arithmetic circuit that supplies the clock signal in a predetermined order.
  • the eighth aspect of the present invention it is necessary for power analysis when encryption processing using secret data is executed by one arithmetic circuit and invalid processing is executed using invalid data by the remaining arithmetic circuit. It is difficult to obtain accurate data, and resistance to power analysis can be improved.
  • a plurality of arithmetic circuits having different circuit configurations are used, and by selecting which of the plurality of arithmetic circuits to execute each stage of the cryptographic process, power analysis is performed. Acquisition of necessary data can be made more difficult, and resistance to power analysis can be further improved.
  • the result of the cryptographic process using the secret data is output using the output selection unit even when the arithmetic circuit that executes the processing of each stage is switched in the arithmetic circuit selection unit. Can do.
  • It is a block diagram which shows the structure of the encryption processing apparatus which concerns on the 2nd Embodiment of this invention. It is a block diagram which shows the structure of the encryption processing apparatus which concerns on the 3rd Embodiment of this invention. It is a block diagram which shows the structure in the case of m 2 of the apparatus shown in FIG. It is a figure which shows the consumption current waveform of one arithmetic circuit of the apparatus shown in FIG. It is a figure which shows the consumption current waveform of the other arithmetic circuit of the apparatus shown in FIG. It is a figure which shows the consumption current waveform of the apparatus shown in FIG. It is a block diagram which shows the structure of the encryption processing apparatus which concerns on the 4th Embodiment of this invention.
  • m, n, and q are integers of 2 or more.
  • the same constituent elements as those of the above-described embodiment are designated by the same reference numerals and description thereof is omitted.
  • FIG. 1 is a block diagram showing the configuration of the cryptographic processing apparatus according to the first embodiment of the present invention.
  • the cryptographic processing apparatus 10 shown in FIG. 1 includes m arithmetic circuits C1 to Cm and a clock control unit 11.
  • the cryptographic processing device 10 executes predetermined cryptographic processing on the input data X input from the outside, and outputs the obtained result as output data Y.
  • input data X is data to be subjected to encryption processing.
  • the secret data K is a real key (secret key) used in encryption processing.
  • the invalid data D2 to Dm are fake keys (dummy keys) having the same format as the secret data K and different values from the secret data K.
  • the input data X is input to all the arithmetic circuits C1 to Cm.
  • the secret data K is input to the arithmetic circuit C1.
  • the invalid data D2 to Dm are input to the arithmetic circuits C2 to Cm, respectively.
  • the secret data K and the invalid data D2 to Dm are held in a secret state inside the cryptographic processing apparatus 10.
  • the arithmetic circuits C1 to Cm have the same circuit configuration and execute the same encryption process independently of each other.
  • the arithmetic circuit C1 performs encryption processing on the input data X using the secret data K.
  • the arithmetic circuits C2 to Cm perform encryption processing on the input data X using invalid data D2 to Dm, respectively.
  • the result obtained by the arithmetic circuit C1 is output as output data Y from the cryptographic processing device 10.
  • the results obtained by the arithmetic circuits C2 to Cm are discarded without being used.
  • the arithmetic circuits C1 to Cm divide the encryption process into n stages of processes P1 to Pn, and execute the processes P1 to Pn in stages.
  • the execution of the processes P1 to Pn in the arithmetic circuits C1 to Cm is controlled by the clock control unit 11.
  • the clock control unit 11 is supplied with one clock signal SCLK.
  • the clock control unit 11 outputs the clock signals CLK1 to CLKm to the arithmetic circuits C1 to Cm based on the clock signal SCLK.
  • the clock control unit 11 selects one arithmetic circuit from the arithmetic circuits C1 to Cm, and outputs the clock signal SCLK to the selected arithmetic circuit for one cycle.
  • the clock controller 11 repeats this operation.
  • the arithmetic circuits C1 to Cm execute one-stage processing included in the cryptographic processing when receiving the supply of the clock signal SCLK.
  • execution of the process Pj by the arithmetic circuit Ci is represented as Ci
  • the clock control unit 11 randomly selects an arithmetic circuit that supplies the clock signal SCLK from among the arithmetic circuits C1 to Cm that have not yet executed the process Pj (j is an integer of 1 to n). May be.
  • the clock control unit 11 includes a random number generator, and selects an arithmetic circuit that supplies the clock signal SCLK based on the random number generated by the random number generator.
  • the clock control unit 11 may select the arithmetic circuit that supplies the clock signal SCLK from the arithmetic circuits C1 to Cm in a predetermined order. For example, the clock control unit 11 may repeat the operation of selecting the arithmetic circuits C1 to Cm in ascending order n times. In this case, the processing execution order is C1P1 ⁇ C2P1 ⁇ ... ⁇ CmP1 ⁇ C1P2 ⁇ C2P2 ⁇ ... ⁇ CmP2 ⁇ ... ⁇ C1Pn ⁇ C2Pn ⁇ .
  • the clock control unit 11 may alternately repeat the operation of selecting the arithmetic circuits C1 to Cm in ascending order and the operation of selecting the arithmetic circuits C1 to Cm in descending order.
  • the clock control unit 11 selects one arithmetic circuit from the arithmetic circuits C1 to Cm, and supplies the selected arithmetic circuit with the clock signal SCLK for causing the selected arithmetic circuit to execute one stage of the cryptographic process.
  • the arithmetic circuits C1 to Cm execute the encryption process using the secret data K and the encryption process using the invalid data D2 to Dm in a time-sharing manner with a one-stage process as a switching unit according to the control by the clock control unit 11.
  • FIG. 2 is a diagram illustrating DES encryption processing.
  • the initial replacement process the first to sixteenth round processes, and the reverse replacement process are executed in order.
  • the cryptographic processing apparatus 10 divides and executes the DES cryptographic processing into, for example, 18 stages of processing.
  • the arithmetic circuits C1 to Cm perform initial replacement processing as processing P1, perform first to sixteenth round processing as processing P2 to P17, and perform reverse replacement processing as processing P18.
  • the cryptographic processing apparatus 10 may divide and execute the DES encryption processing into 17 steps or less, for example, by executing a plurality of round processes as a single step. Alternatively, the cryptographic processing apparatus 10 may divide and execute the DES cryptographic processing into 19 or more stages by executing one round process as a plurality of stages. In general, the arithmetic circuits C1 to Cm may execute the encryption process by dividing it into n stages (n is an integer of 2 or more).
  • the cryptographic processing device 15 illustrated in FIG. 3 includes two arithmetic circuits C1 and C2 and a clock control unit 16.
  • the arithmetic circuit C1 performs encryption processing on the input data X using the secret data K.
  • the arithmetic circuit C2 performs encryption processing on the input data X using the invalid data D2.
  • the result obtained by the arithmetic circuit C1 is output from the cryptographic processing device 15 as output data Y.
  • the clock control unit 16 alternately selects one arithmetic circuit from the arithmetic circuits C1 and C2, and supplies a clock signal SCLK to the selected arithmetic circuit.
  • the execution order of the processes in the cryptographic processing device 15 is C1P1 ⁇ C2P1 ⁇ C1P2 ⁇ C2P2 ⁇ . Since the arithmetic circuits C1 and C2 perform cryptographic processing independently of each other, the same results as when the arithmetic circuits C1 and C2 are operated independently can be obtained even if the processes are executed in the above order.
  • FIG. 4 is a diagram showing a current consumption waveform when only the arithmetic circuit C1 is operated continuously.
  • the signal in the arithmetic circuit C1 changes at the rising edge of the clock signal SCLK, and the current consumption of the arithmetic circuit C1 becomes maximum at the rising edge of the clock signal SCLK.
  • the cryptographic processor that operates only the arithmetic circuit C1 continuously has a problem that the secret data K can be estimated by performing power analysis on the current consumption waveform shown in FIG.
  • a method of operating the arithmetic circuits C1 and C2 in parallel can be considered.
  • the current consumption waveform of the cryptographic processing device is obtained by adding the current consumption waveform of the arithmetic circuit C2 (the same waveform as FIG. 4) to the current consumption waveform of the arithmetic circuit C1 (FIG. 4).
  • the consumption current waveform of the arithmetic circuit C1 can be obtained by invalidating the current consumption of the arithmetic circuit C2. For this reason, the first method is not sufficiently resistant to power analysis.
  • FIG. 5A to 5C are diagrams showing current consumption waveforms of the cryptographic processing device 15.
  • FIG. 5A is a diagram illustrating a consumption current waveform of the arithmetic circuit C1
  • FIG. 5B is a diagram illustrating a consumption current waveform of the arithmetic circuit C2.
  • the consumption current (FIG. 5A) of the arithmetic circuit C1 is 0 or more in a cycle including the rising edge of the clock signal CLK1, and is almost 0 in other cycles.
  • the consumption current (FIG. 5B) of the arithmetic circuit C2 becomes 0 or more in the cycle including the rising edge of the clock signal CLK2, and becomes almost 0 in other cycles.
  • the clock signals CLK1 and CLK2 rise alternately and do not rise together in the same cycle.
  • the consumption current waveform of the cryptographic processing device 15 is as shown in FIG. 5C by adding the two waveforms shown in FIGS. 5A and 5B.
  • the execution order of processing in the cryptographic processing device 15 is C1P1-> C2P1-> C1P2-> C2P2-> ...-> C1Pn-> C2Pn.
  • the consumption current waveform shown in FIG. 5C is also a consumption current waveform (a waveform in a rectangle without a dotted pattern) when one-stage processing of encryption processing is performed using the secret data K, and A consumption current waveform (a waveform in a rectangle with a dotted pattern) when the one-stage encryption process is executed using the invalid data D2 appears alternately. Therefore, it becomes considerably difficult to specify the execution period of the encryption process based on the consumption current waveform shown in FIG. 5C. Therefore, according to the cryptographic processing device 15, it is difficult to acquire data necessary for power analysis, and resistance to power analysis can be improved.
  • the clock control unit 16 does not supply the clock signal SCLK to the arithmetic circuit that is not selected from the arithmetic circuits C1 and C2. For this reason, the arithmetic circuits C1 and C2 do not operate at the same time, and the current consumption observed outside the cryptographic processing device 15 is equivalent to one arithmetic circuit. Therefore, even if two arithmetic circuits are provided, the power consumption does not increase compared to the case where one arithmetic circuit is provided.
  • the cryptographic processing device 10 shown in FIG. 1 has the same effect as the cryptographic processing device 15 shown in FIG.
  • the cryptographic processing apparatus 10 using a plurality of arithmetic circuits C1 to Cm, the cryptographic processing using the secret data K and the cryptographic processing using the invalid data D2 to Dm are time-divided using one-stage processing as a switching unit.
  • the cryptographic processing apparatus 10 includes a plurality of arithmetic circuits C1 to Cm that execute the same cryptographic processing by executing a plurality of processes P1 to Pn stepwise, A clock control unit 11 that selects one arithmetic circuit from among the arithmetic circuits C1 to Cm and supplies a clock signal SCLK for causing the selected arithmetic circuit to execute one stage of encryption processing.
  • the arithmetic circuits C1 to Cm execute the encryption process using the secret data K and the encryption process using the invalid data D2 to Dm in a time-sharing manner with a one-stage process as a switching unit according to control by the clock control unit 11. . According to such a cryptographic processing apparatus 10, it is difficult to obtain data necessary for power analysis without increasing power consumption, and resistance to power analysis can be improved.
  • the plurality of arithmetic circuits C1 to Cm have the same circuit configuration, execute the same encryption process independently of each other, and execute the encryption process using the secret data K in the plurality of arithmetic circuits C1 to Cm.
  • An arithmetic circuit and an arithmetic circuit that executes cryptographic processing using invalid data D2 to Dm are included.
  • one arithmetic circuit C1 among the plurality of arithmetic circuits C1 to Cm executes encryption processing using the secret data K, and the remaining arithmetic circuits C2 to Cm perform encryption processing using invalid data D2 to Dm, respectively. Execute. In such a case, it is difficult to acquire data necessary for power analysis, and resistance to power analysis can be improved.
  • the clock control unit 11 supplies the same clock signal SCLK to the plurality of arithmetic circuits C1 to Cm. Thereby, the configuration of the clock control unit 11 can be simplified.
  • the clock control unit 11 randomly selects an arithmetic circuit that supplies the clock signal SCLK during operation. Thereby, acquisition of data required for power analysis can be made more difficult, and resistance to power analysis can be further improved.
  • the clock control unit 11 selects an arithmetic circuit that supplies the clock signal SCLK in a predetermined order. Thereby, the configuration of the clock control unit 11 can be simplified.
  • FIG. 6 is a block diagram showing the configuration of the cryptographic processing apparatus according to the second embodiment of the present invention.
  • the cryptographic processing device 20 shown in FIG. 6 is obtained by adding an input selection unit 22 and an output selection unit 23 to the cryptographic processing device 10 (FIG. 1) according to the first embodiment.
  • the secret data K and invalid data D2 to Dm are input to the input selection unit 22.
  • the input selection unit 22 rearranges the secret data K and the invalid data D2 to Dm at random during operation, and outputs them as selection data J1 to Jm to the arithmetic circuits C1 to Cm, respectively. In this way, the input selection unit 22 switches whether to supply the secret data K or the invalid data D2 to Dm to the arithmetic circuits C1 to Cm.
  • the clock control unit 11 and the arithmetic circuits C1 to Cm have the same configuration as in the first embodiment and operate in the same manner as in the first embodiment.
  • the arithmetic circuits C1 to Cm execute encryption processing on the input data X using the selection data J1 to Jm, respectively.
  • the arithmetic circuits C1 to Cm execute the processes P1 to Pn in stages, and the execution of the processes P1 to Pn in the arithmetic circuits C1 to Cm is controlled by the clock control unit 11.
  • the output selection unit 23 selects the result of the encryption process using the secret data K from the results obtained by the arithmetic circuits C1 to Cm, and outputs it as output data Y.
  • the cryptographic processing device 20 includes the input selection unit 22 that switches whether to supply the secret data K or the invalid data D2 to Dm to the plurality of arithmetic circuits C1 to Cm. And an output selection unit 23 for selecting the result of the cryptographic process using the secret data K from the results obtained by the plurality of arithmetic circuits C1 to Cm.
  • the cryptographic processing device 20 As in the first embodiment, it is difficult to obtain data necessary for power analysis without increasing power consumption, and resistance to power analysis is improved. Can be made.
  • the input selection unit 22 and the output selection unit 23 are used to switch between an arithmetic circuit that performs cryptographic processing using the secret data K and an arithmetic circuit that performs cryptographic processing using the invalid data D2 to Dm. As a result, acquisition of data necessary for power analysis can be made more difficult, and resistance to power analysis can be further improved.
  • FIG. 7 is a block diagram showing the configuration of the cryptographic processing apparatus according to the third embodiment of the present invention.
  • the cryptographic processing device 30 shown in FIG. 7 is obtained by replacing the clock control unit 11 with a clock control unit 31 in the cryptographic processing device (FIG. 1) according to the first embodiment.
  • the clock controller 31 is supplied with q clock signals SCLK1 to SCLKq having different frequencies.
  • the clock control unit 31 outputs the clock signals CLK1 to CLKm to the arithmetic circuits C1 to Cm based on the clock signals SCLK1 to SCLKq, respectively.
  • the selection method of the arithmetic circuit in the clock control unit 31 is the same as that of the clock control unit 11 according to the first embodiment.
  • the clock control unit 31 may randomly select an arithmetic circuit that supplies the clock signals SCLK1 to SCLKq from among the arithmetic circuits C1 to Cm during operation, or an arithmetic circuit that supplies the clock signals SCLK1 to SCLKq. You may select in a predetermined order.
  • the clock control unit 31 selects one arithmetic circuit from the arithmetic circuits C1 to Cm, and outputs a clock signal (any one of the clock signals SCLK1 to SCLKq) corresponding to the arithmetic circuit to the selected arithmetic circuit. To do. As described above, the clock control unit 31 supplies the clock signals selected from the q clock signals SCLK1 to SCLKq having different frequencies to the arithmetic circuits C1 to Cm.
  • the arithmetic circuits C1 to Cm have the same configuration as in the first embodiment and operate in the same manner as in the first embodiment.
  • the arithmetic circuit C1 performs encryption processing on the input data X using the secret data K.
  • the arithmetic circuits C2 to Cm perform encryption processing on the input data X using invalid data D2 to Dm, respectively.
  • the arithmetic circuits C1 to Cm execute the processes P1 to Pn in stages, and the execution of the processes P1 to Pn in the arithmetic circuits C1 to Cm is controlled by the clock control unit 31.
  • the clock signals CLK1 to CLKm output from the clock control unit 31 include those having different frequencies.
  • the cryptographic processing device 35 shown in FIG. 8 includes two arithmetic circuits C1 and C2 and a clock control unit 36.
  • the arithmetic circuit C1 performs encryption processing on the input data X using the secret data K.
  • the arithmetic circuit C2 performs encryption processing on the input data X using the invalid data D2.
  • the result obtained by the arithmetic circuit C1 is output from the cryptographic processing device 35 as output data Y.
  • the clock controller 36 is supplied with two clock signals SCLK1 and SCLK2 having different frequencies.
  • the clock control unit 36 alternately selects one arithmetic circuit from the arithmetic circuits C1 and C2.
  • the clock control unit 36 outputs the clock signal SCLK1 to the arithmetic circuit C1 when the arithmetic circuit C1 is selected, and outputs the clock signal SCLK2 to the arithmetic circuit C2 when the arithmetic circuit C2 is selected.
  • the execution order of processing in the cryptographic processing device 35 is C1P1-> C2P1-> C1P2-> C2P2-> ...-> C1Pn-> C2Pn, as in the cryptographic processing device 15 according to the first embodiment.
  • the arithmetic circuits C1 and C2 perform cryptographic processing independently of each other, even if the processing is executed in the above order using two clock signals having different frequencies, the arithmetic circuits C1 and C2 are operated independently. The same result is obtained.
  • FIG. 9A to 9C are diagrams showing current consumption waveforms of the cryptographic processing device 35.
  • FIG. FIG. 9A is a diagram illustrating a consumption current waveform of the arithmetic circuit C1
  • FIG. 9B is a diagram illustrating a consumption current waveform of the arithmetic circuit C2.
  • the current consumption of the arithmetic circuits C1 and C2 changes as in the case of the cryptographic processing apparatus 15 according to the first embodiment. However, the frequency of the clock signal SCLK1 is higher than the frequency of the clock signal SCLK2.
  • the consumption current waveform of the cryptographic processing device 35 is as shown in FIG. 9C by adding the two waveforms shown in FIGS. 9A and 9B.
  • the cryptographic processing device 35 similarly to the cryptographic processing device 15 according to the first embodiment, it is difficult to obtain data necessary for power analysis without increasing power consumption, and resistance to power analysis is improved. be able to.
  • the arithmetic circuits C1 and C2 operate based on two clock signals SCLK1 and SCLK2 having different frequencies, respectively. For this reason, even if the arithmetic circuits C1 and C2 have the same circuit configuration, a difference occurs between the current consumption waveform when the arithmetic circuit C1 operates and the current consumption waveform when the arithmetic circuit C2 operates. Further, since the timing of changing the consumption current differs between these two consumption current waveforms, it is considerably difficult to specify the execution period of the encryption process based on the consumption current waveform shown in FIG. 9C. Therefore, according to the cryptographic processing device 35, acquisition of data necessary for power analysis can be made more difficult, and resistance to power analysis can be further improved.
  • the frequency of the clock signal SCLK2 lower than the frequency of the clock signal SCLK1, it is possible to reduce the current consumption of the cryptographic processing device 35 as compared to using two clock signals having the same frequency.
  • the cryptographic processing device 30 shown in FIG. 7 has the same effect as the cryptographic processing device 35 shown in FIG. According to the cryptographic processing device 30, as with the cryptographic processing device 10 according to the first embodiment, it is difficult to obtain data necessary for power analysis without increasing power consumption, and resistance to power analysis is improved. be able to. In addition to this, by switching the clock signal supplied to the arithmetic circuit, it is possible to further make it difficult to acquire data necessary for power analysis, and to further improve resistance to power analysis. Further, by using a clock signal having a low frequency, it is possible to reduce current consumption of the cryptographic processing device 30 as compared with a case where only a clock signal having the same frequency is used.
  • the clock control unit 31 selects the plurality of arithmetic circuits C1 to Cm from the plurality of clock signals SCLK1 to SCLKm having different frequencies. Supply a clock signal.
  • the clock signal applied to the arithmetic circuit By switching the clock signal applied to the arithmetic circuit in this way, it is possible to make it more difficult to acquire data necessary for power analysis, and to further improve resistance to power analysis. Further, by using a clock signal having a low frequency, current consumption can be reduced as compared with a case where only a clock signal having the same frequency is used.
  • FIG. 10 is a block diagram showing the configuration of the cryptographic processing apparatus according to the fourth embodiment of the present invention.
  • the cryptographic processing device 45 shown in FIG. 10 includes two arithmetic circuits C1, C2, a clock control unit 46, an output selection unit 48, and an arithmetic circuit selection unit 49.
  • the arithmetic circuits C1 and C2 divide the cryptographic processing into n stages of processes P1 to Pn, and execute the processes P1 to Pn step by step.
  • the arithmetic circuits C1 and C2 included in the cryptographic processing device 45 have different circuit configurations.
  • the carry look-ahead adder and the sequential carry adder have different circuit configurations. Therefore, for example, a carry look-ahead adder is used for the arithmetic circuit C1, and a carry adder is sequentially used for the arithmetic circuit C2.
  • the arithmetic circuits C1 and C2 may have different circuit configurations for all stages of processing, or may have different circuit configurations for some stages of processing.
  • the clock controller 46 is supplied with two clock signals SCLK1 and SCLK2 having different frequencies. Based on the clock signals SCLK1 and SCLK2, the clock control unit 46 outputs the clock signals CLK1 and CLK2 to the arithmetic circuits C1 and C2, respectively. The clock control unit 46 selects one arithmetic circuit from the arithmetic circuits C1 and C2, and when the arithmetic circuit C1 is selected, outputs the clock signal SCLK1 to the arithmetic circuit C1 and selects the arithmetic circuit C2. Sometimes, the clock signal SCLK2 is output to the arithmetic circuit C2.
  • the arithmetic circuit selection unit 49 performs a selection process for switching which arithmetic circuit is to execute each stage of the encryption process using the secret data K and the encryption process using the invalid data D2. More specifically, the arithmetic circuit selection unit 49 performs n selection processes S1 to Sn. Input data X, secret data K, and invalid data D2 are input to the selection process S1. In the selection process Sj (j is an integer not less than 2 and not more than n), an execution result of the process Pj ⁇ 1 by the arithmetic circuits C1, C2 is input.
  • the arithmetic circuit selection unit 49 determines whether the arithmetic circuit C1 or the arithmetic circuit C2 executes the encryption process Pj using the secret data K. Select at random during operation.
  • the arithmetic circuit selection unit 49 includes a random number generator, and selects an arithmetic circuit that executes the encryption processing Pj using the secret data K based on the random number generated by the random number generator.
  • the arithmetic circuit selection unit 49 selects the arithmetic circuit C1
  • the arithmetic circuit selects data necessary for executing the encryption process Pj using the secret data K from the data input to the selection process Sj.
  • the data necessary for executing the encryption processing Pj using the invalid data D2 is output to the arithmetic circuit C2.
  • the clock control unit 46 selects the arithmetic circuits C1 and C2, for example, in ascending order, first outputs the clock signal SCLK1 to the arithmetic circuit C1 for one cycle, and then outputs the clock signal SCLK2 to the arithmetic circuit C2 for one cycle. To do. In this case, the arithmetic circuit C1 executes encryption processing Pj using the secret data K, and the arithmetic circuit C2 executes encryption processing Pj using the invalid data D2.
  • the arithmetic circuit selector 49 When the arithmetic circuit C2 is selected, the arithmetic circuit selector 49 outputs data opposite to the case where the arithmetic circuit C1 is selected to the arithmetic circuits C1 and C2.
  • the clock control unit 46 selects the arithmetic circuits C1 and C2, for example, in ascending order, first outputs the clock signal SCLK1 to the arithmetic circuit C1 for one cycle, and then outputs the clock signal SCLK2 to the arithmetic circuit C2 for one cycle. To do. In this case, the arithmetic circuit C1 executes encryption processing Pj using the invalid data D2, and the arithmetic circuit C2 executes encryption processing Pj using the secret data K.
  • the execution result of the process Pn by the arithmetic circuits C1 and C2 is input to the output selection unit 48.
  • the execution result of the process Pn includes the result of the encryption process using the secret data K and the result of the encryption process using the invalid data D2.
  • the output selection unit 48 selects the former and outputs it as output data Y.
  • the arithmetic circuits C1 and C2 have different circuit configurations, but both execute the same encryption process by dividing it into the same n stages of processes P1 to Pn. Therefore, regardless of which arithmetic circuit the arithmetic circuit selector 49 selects, the same result as that obtained when the arithmetic circuits C1 and C2 are operated independently can be obtained.
  • the arithmetic circuits C1 and C2 included in the cryptographic processing device 45 have different circuit configurations. For this reason, there is a difference between the consumption current waveform when the arithmetic circuit C1 executes one stage of processing and the consumption current waveform when the arithmetic circuit C2 executes one stage of processing. Therefore, according to the cryptographic processing device 45, acquisition of data necessary for power analysis can be made more difficult, and resistance to power analysis can be improved.
  • the arithmetic circuit selection unit 49 performs n selection processes S1 to Sn, but the arithmetic circuit selection unit 49 may perform a selection process a smaller number of times. In general, the arithmetic circuit selection unit may perform at least one selection process.
  • Cryptographic processing apparatus comprising m arithmetic circuits and an arithmetic circuit selection unit for selecting which of m arithmetic circuits to execute each stage of cryptographic processing in the same manner as the cryptographic processing apparatus 45 (Not shown) can be configured.
  • This cryptographic processing device has the same effects as the cryptographic processing device 45. That is, according to this cryptographic processing device, similarly to the cryptographic processing device 10 according to the first embodiment, it is difficult to obtain data necessary for power analysis without increasing power consumption, and resistance to power analysis is increased. Can be improved. In addition to this, by selecting which of the m arithmetic circuits to execute the processing of each stage of encryption processing, it becomes more difficult to acquire data necessary for power analysis, and the resistance to power analysis is further improved. Can be made.
  • the cryptographic processing device 45 includes arithmetic circuits having different configurations in the plurality of arithmetic circuits C1 and C2.
  • the cryptographic processing device 45 includes an arithmetic circuit selection unit 49 that selects which arithmetic circuit to execute the processing of each stage for the cryptographic processing using the secret data K and the cryptographic processing using the invalid data D2. I have. Therefore, according to the cryptographic processing device 45 according to the present embodiment, a plurality of arithmetic circuits C1 and C2 having different circuit configurations are used, and it is selected which of the plurality of arithmetic circuits executes each stage of the cryptographic processing. By doing so, acquisition of data required for power analysis can be made more difficult, and resistance to power analysis can be further improved.
  • the arithmetic circuit selection unit 49 randomly selects an arithmetic circuit that executes the processing of each stage during operation. Thereby, acquisition of data required for power analysis can be made more difficult, and resistance to power analysis can be further improved.
  • the cryptographic processing device 45 includes an output selection unit 48 that selects a result of cryptographic processing using the confidential data K from results obtained by the plurality of arithmetic circuits C1 and C2. As a result, even when the arithmetic circuit selection unit 49 switches the arithmetic circuit that executes the processing of each stage, the output selection unit 48 can be used to output the result of the encryption processing using the secret data K.
  • the number m of arithmetic circuits and the number n of processes may be arbitrary as long as they are two or more.
  • the number q of clock signals when using a plurality of clock signals may be arbitrary as long as it is 2 or more.
  • the cryptographic processing apparatus may start the cryptographic process for the next input data X after completing the cryptographic process for the previous input data X, or execute the cryptographic process for the input data X by pipeline processing. May be.
  • the cryptographic processing apparatus may execute cryptographic processing including round processing, such as DES cryptographic processing, or may perform cryptographic processing not including round processing.
  • various cryptographic processing apparatuses can be configured by arbitrarily combining the characteristics of the cryptographic processing apparatuses according to the first to fourth embodiments as long as they do not contradict their properties.
  • the clock control unit 31 according to the third embodiment may be provided in the cryptographic processing device 20 according to the second embodiment. Accordingly, it is possible to configure a cryptographic processing device that switches both data supplied to the arithmetic circuit and the clock signal. Further, in the cryptographic processing device 45 according to the fourth embodiment, one clock signal may be supplied to the clock control unit. Thus, it is possible to configure a cryptographic processing device that supplies the same clock signal to a plurality of arithmetic circuits.
  • the cryptographic processing using the confidential data and the cryptographic processing using the invalid data can be performed by using one step as a switching unit.
  • the cryptographic processing using the confidential data and the cryptographic processing using the invalid data can be performed by using one step as a switching unit.
  • the cryptographic processing apparatus of the present invention has a feature of high resistance to power analysis, it can be used in various information processing apparatuses that perform cryptographic processing.

Landscapes

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

Abstract

 暗号処理装置10の演算回路C1~Cmは、n段の処理P1~Pnを実行することにより、同じ暗号処理を実行する。クロック制御部11は、演算回路C1~Cmの中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号SCLKを供給する。演算回路C1~Cmは、クロック制御部11による制御に従い、秘匿データKを用いた暗号処理と無効データD2~Dmを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行する。これにより、電力解析のために必要なデータの取得を困難にし、電力解析に対する耐性を向上させる。

Description

暗号処理装置
 本発明は、暗号処理装置に関し、より詳細には、電力解析に対する耐性を向上させた暗号処理装置に関する。
 情報通信技術の進歩に伴い、暗号技術が様々な分野で利用されている。暗号技術では、秘密状態に保持された鍵(以下、秘密鍵という)を用いて、入力データに対して予め定められた暗号処理を実行する暗号処理装置が用いられる。暗号処理装置は、秘密鍵を半導体集積回路やICカードの内部に保持することがある。
 半導体集積回路やICカードは、多くの場合、CMOS回路で構成される。CMOS回路では、出力が変化したときに電流が流れるので、出力変化の態様に応じて消費電流波形に差が生じる。例えば、回路内の16ビット信号の値が0000h(16進表記)からFFFFhに変化する場合と、0000hから1111hに変化する場合とを考える。前者の場合には信号は16ビット変化するのに対して、後者の場合には信号は4ビットしか変化しない。このため、これら2つの場合で消費電流波形に差が生じる。
 この性質を用いて回路の消費電流波形を観測することにより、回路内の信号の値や回路内で実行されている処理の内容を推測して、秘密鍵を推測する方法(電力解析と呼ばれる)が考案されている。具体的には、2個の消費電流波形を比較して解析する差分電力解析(Differential Power Analysis :DPA)などが知られている。例えばDES(Data Encryption Standard)方式については、暗号処理の内容が公開されている。このため、暗号処理の開始タイミングを特定できれば、差分電力解析によって秘密鍵を比較的容易に推測することができる。
 本願発明に関連して、特許文献1には、ラウンド演算用データを格納する第1レジスタと、第1レジスタに入力するデータと分周信号との排他的論理和を格納する第2レジスタと、2個のレジスタに格納されたデータが全ビット一致または全ビット不一致か否かを判定する判定部とを備えた暗号処理装置が記載されている。
日本国特開2007-323019号公報
 特許文献1に記載された暗号処理装置によれば、第2レジスタを設けることにより、差分電力解析に対する耐性をある程度向上させることができる。しかしながら、暗号処理の実行期間を容易に特定できるので、差分電力解析に必要なデータを容易に取得することができる。このため、差分電力解析によって秘密鍵を推測される可能性がある。
 それ故に、本発明は、従来とは異なる方法で電力解析に対する耐性を向上させた暗号処理装置を提供することを目的とする。
 本発明の第1の局面は、暗号処理を複数の処理に分割して実行する暗号処理装置であって、
 それぞれが複数の処理を段階的に実行することにより、同じ暗号処理を実行する複数の演算回路と、
 前記複数の演算回路の中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号を供給するクロック制御部とを備え、
 前記複数の演算回路は、前記クロック制御部による制御に従い、秘匿データを用いた暗号処理と無効データを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行することを特徴とする。
 本発明の第2の局面は、本発明の第1の局面において、
 前記複数の演算回路は、同じ回路構成を有し、同じ暗号処理を互いに独立に実行し、
 前記複数の演算回路の中に、前記秘匿データを用いた暗号処理を実行する演算回路と、前記無効データを用いた暗号処理を実行する演算回路とが含まれていることを特徴とする。
 本発明の第3の局面は、本発明の第2の局面において、
 前記複数の演算回路に対して、前記秘匿データおよび前記無効データのいずれを供給するかを切り替える入力選択部と、
 前記複数の演算回路で求めた結果の中から、前記秘匿データを用いた暗号処理の結果を選択する出力選択部とをさらに備える。
 本発明の第4の局面は、本発明の第2の局面において、
 前記クロック制御部は、前記複数の演算回路に対して、異なる周波数を有する複数のクロック信号の中から選択したクロック信号を供給することを特徴とする。
 本発明の第5の局面は、本発明の第2の局面において、
 前記クロック制御部は、前記複数の演算回路に対して同じクロック信号を供給することを特徴とする。
 本発明の第6の局面は、本発明の第2の局面において、
 前記クロック制御部は、前記クロック信号を供給する演算回路を動作中にランダムに選択することを特徴とする。
 本発明の第7の局面は、本発明の第2の局面において、
 前記クロック制御部は、前記クロック信号を供給する演算回路を予め定めた順序で選択することを特徴とする。
 本発明の第8の局面は、本発明の第2の局面において、
 前記複数の演算回路のうち1個の演算回路は前記秘匿データを用いた暗号処理を実行し、残余の演算回路は前記無効データを用いた暗号処理を実行することを特徴とする。
 本発明の第9の局面は、本発明の第1の局面において、
 前記複数の演算回路の中に、異なる回路構成を有する演算回路が含まれており、
 前記秘匿データを用いた暗号処理と前記無効データを用いた暗号処理とについて、各段の処理をいずれの演算回路で実行するかを選択する演算回路選択部をさらに備える。
 本発明の第10の局面は、本発明の第9の局面において、
 前記演算回路選択部は、各段の処理を実行する演算回路を動作中にランダムに選択することを特徴とする。
 本発明の第11の局面は、本発明の第9の局面において、
 前記クロック制御部は、前記複数の演算回路に対して、異なる周波数を有する複数のクロック信号の中から選択したクロック信号を供給することを特徴とする。
 本発明の第12の局面は、本発明の第9の局面において、
 前記クロック制御部は、前記複数の演算回路に対して同じクロック信号を供給することを特徴とする。
 本発明の第13の局面は、本発明の第9の局面において、
 前記複数の演算回路で求めた結果の中から、前記秘匿データを用いた暗号処理の結果を選択する出力選択部をさらに備える。
 本発明の第14の局面は、暗号処理を複数の処理に分割して実行する暗号処理方法であって、
 それぞれが複数の処理を段階的に実行することにより、同じ暗号処理を実行する複数の演算回路の中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号を供給するステップと、
 供給されたクロック信号に基づき、前記複数の演算回路を用いて、秘匿データを用いた暗号処理と無効データを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行するステップとを備える。
 本発明の第1または第14の局面によれば、複数の演算回路を用いて、秘匿データを用いた暗号処理と無効データを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行することにより、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 本発明の第2の局面によれば、同じ回路構成を有する複数の演算回路を用いることにより、演算回路の設計を工夫しなくても、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 本発明の第3の局面によれば、入力選択部と出力選択部を用いて、秘匿データを用いた暗号処理を実行する演算回路と無効データを用いた暗号処理を実行する演算回路とを切り替えることにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 本発明の第4または第11の局面によれば、演算回路に供給するクロック信号を切り替えることにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。また、低い周波数を有するクロック信号を用いることにより、同じ周波数を有するクロック信号だけを用いる場合よりも、消費電流を削減することができる。
 本発明の第5または第12の局面によれば、複数の演算回路に対して同じクロック信号を供給することにより、クロック制御部の構成を簡単にすることができる。
 本発明の第6の局面によれば、クロック信号を供給する演算回路を動作中にランダムに選択することにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 本発明の第7の局面によれば、クロック信号を供給する演算回路を予め定めた順序で選択することにより、クロック制御部の構成を簡単にすることができる。
 本発明の第8の局面によれば、1個の演算回路で秘匿データを用いた暗号処理を実行し、残余の演算回路で無効データを用いた暗号処理を実行した場合に、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 本発明の第9の局面によれば、異なる回路構成を有する複数の演算回路を用い、暗号処理の各段の処理を複数の演算回路のいずれで実行するかを選択することにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 本発明の第10の局面によれば、各段の処理を実行する演算回路を動作中にランダムに選択することにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 本発明の第13の局面によれば、演算回路選択部において各段の処理を実行する演算回路を切り替えた場合でも、出力選択部を用いて秘匿データを用いた暗号処理の結果を出力することができる。
本発明の第1の実施形態に係る暗号処理装置の構成を示すブロック図である。 DES方式の暗号処理を示す図である。 図1に示す装置のm=2の場合の構成を示すブロック図である。 1個の演算回路を連続して動作させたときの消費電流波形を示す図である。 図3に示す装置の一方の演算回路の消費電流波形を示す図である。 図3に示す装置の他方の演算回路の消費電流波形を示す図である。 図3に示す装置の消費電流波形を示す図である。 本発明の第2の実施形態に係る暗号処理装置の構成を示すブロック図である。 本発明の第3の実施形態に係る暗号処理装置の構成を示すブロック図である。 図7に示す装置のm=2の場合の構成を示すブロック図である。 図8に示す装置の一方の演算回路の消費電流波形を示す図である。 図8に示す装置の他方の演算回路の消費電流波形を示す図である。 図8に示す装置の消費電流波形を示す図である。 本発明の第4の実施形態に係る暗号処理装置の構成を示すブロック図である。
 以下、図面を参照して、本発明の第1~第4の実施形態に係る暗号処理装置について説明する。以下の説明では、m、nおよびqは2以上の整数であるとする。第2~第4の実施形態の構成要素のうち、先に説明した実施形態の構成要素と同じものについては、同一の参照符号を付して説明を省略する。
 (第1の実施形態)
 図1は、本発明の第1の実施形態に係る暗号処理装置の構成を示すブロック図である。図1に示す暗号処理装置10は、m個の演算回路C1~Cm、および、クロック制御部11を備えている。暗号処理装置10は、外部から入力された入力データXに対して所定の暗号処理を実行し、得られた結果を出力データYとして出力する。
 図1において、入力データXは、暗号処理の対象となるデータである。秘匿データKは、暗号処理で用いられる本物の鍵(秘密鍵)である。無効データD2~Dmは、秘匿データKと同じ形式を有し、秘匿データKとは異なる値を有する偽物の鍵(ダミー鍵)である。入力データXは、すべての演算回路C1~Cmに入力される。秘匿データKは、演算回路C1に入力される。無効データD2~Dmは、それぞれ、演算回路C2~Cmに入力される。秘匿データKと無効データD2~Dmは、暗号処理装置10の内部で秘密状態に保持される。
 演算回路C1~Cmは、同じ回路構成を有し、同じ暗号処理を互いに独立に実行する。演算回路C1は、秘匿データKを用いて入力データXに対する暗号処理を実行する。演算回路C2~Cmは、それぞれ、無効データD2~Dmを用いて入力データXに対する暗号処理を実行する。暗号処理装置10からは、演算回路C1で求めた結果が出力データYとして出力される。演算回路C2~Cmで求めた結果は、利用されずに破棄される。
 演算回路C1~Cmは、暗号処理をn段の処理P1~Pnに分割し、処理P1~Pnを段階的に実行する。演算回路C1~Cmにおける処理P1~Pnの実行は、クロック制御部11によって制御される。クロック制御部11には、1個のクロック信号SCLKが供給される。クロック制御部11は、クロック信号SCLKに基づき、演算回路C1~Cmに対してそれぞれクロック信号CLK1~CLKmを出力する。クロック制御部11は、演算回路C1~Cmの中から1個の演算回路を選択し、選択した演算回路にクロック信号SCLKを1サイクル出力する。クロック制御部11は、この動作を繰り返し行う。演算回路C1~Cmは、クロック信号SCLKの供給を受けたときに、暗号処理に含まれる1段の処理を実行する。以下、演算回路Ciによる処理Pjの実行をCiPjと表す。
 クロック制御部11における演算回路の選択方法には、各種の方法がある。例えば、クロック制御部11は、処理Pj(jは1以上n以下の整数)をまだ実行していない演算回路C1~Cmの中から、クロック信号SCLKを供給する演算回路を動作中にランダムに選択してもよい。この場合、クロック制御部11は、乱数発生器を有し、乱数発生器で発生させた乱数に基づき、クロック信号SCLKを供給する演算回路を選択する。
 あるいは、クロック制御部11は、演算回路C1~Cmの中から、クロック信号SCLKを供給する演算回路を予め定めた順序で選択してもよい。例えば、クロック制御部11は、演算回路C1~Cmを昇順に選択する動作をn回繰り返してもよい。この場合、処理の実行順序は、C1P1→C2P1→…→CmP1→C1P2→C2P2→…→CmP2→…→C1Pn→C2Pn→…→CmPnとなる。また、クロック制御部11は、演算回路C1~Cmを昇順に選択する動作と、演算回路C1~Cmを降順に選択する動作とを交互に繰り返してもよい。
 このようにクロック制御部11は、演算回路C1~Cmの中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号SCLKを供給する。演算回路C1~Cmは、クロック制御部11による制御に従い、秘匿データKを用いた暗号処理と無効データD2~Dmを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行する。演算回路C1~Cmは暗号処理を互いに独立に実行するので、クロック制御部11がいかなる順序で演算回路C1~Cmを選択しても、演算回路C1~Cmをそれぞれ単独で動作させたときと同じ結果が得られる。
 ここで、演算回路C1~Cmの具体例を説明する。図2は、DES方式の暗号処理を示す図である。図2に示すように、DES方式の暗号処理では、初期置換処理、第1~第16ラウンド処理、および、逆置換処理が順に実行される。これに対応して、暗号処理装置10は、DES方式の暗号処理を例えば18段の処理に分割して実行する。演算回路C1~Cmは、処理P1として初期置換処理を行い、処理P2~P17として第1~第16ラウンド処理をそれぞれ行い、処理P18として逆置換処理を行う。
 暗号処理装置10は、複数のラウンド処理を1段の処理として実行するなどして、DES方式の暗号処理を17段以下の処理に分割して実行してもよい。あるいは、暗号処理装置10は、1個のラウンド処理を複数段の処理として実行するなどして、DES方式の暗号処理を19段以上の処理に分割して実行してもよい。一般に、演算回路C1~Cmは、暗号処理をn段(nは2以上の整数)の処理に分割して実行すればよい。
 以下、本実施形態に係る暗号処理装置の具体例として、2個の演算回路にクロック信号を交互に供給する暗号処理装置について説明する。図3に示す暗号処理装置15は、2個の演算回路C1、C2、および、クロック制御部16を備えている。演算回路C1は、秘匿データKを用いて入力データXに対する暗号処理を実行する。演算回路C2は、無効データD2を用いて入力データXに対する暗号処理を実行する。暗号処理装置15からは、演算回路C1で求めた結果が出力データYとして出力される。
 クロック制御部16は、演算回路C1、C2の中から1個の演算回路を交互に選択し、選択した演算回路にクロック信号SCLKを供給する。暗号処理装置15における処理の実行順序は、C1P1→C2P1→C1P2→C2P2→…→C1Pn→C2Pnとなる。演算回路C1、C2は暗号処理を互いに独立に実行するので、上記の順序で処理を実行しても、演算回路C1、C2をそれぞれ単独で動作させたときと同じ結果が得られる。
 図4は、演算回路C1だけを連続して動作させたときの消費電流波形を示す図である。図4に示すように、演算回路C1内の信号はクロック信号SCLKの立ち上がりで変化し、演算回路C1の消費電流はクロック信号SCLKの立ち上がりで最大となる。演算回路C1だけを連続して動作させる暗号処理装置には、図4に示す消費電流波形に対して電力解析を行えば、秘匿データKを推測することができるという問題がある。
 この問題を解決する方法として、演算回路C1、C2を並列に動作させる方法(第1の方法)が考えられる。第1の方法を採用した場合、暗号処理装置の消費電流波形は、演算回路C1の消費電流波形(図4)に演算回路C2の消費電流波形(図4と同様の波形)を加算したものになる。このため、演算回路C1だけを動作させた場合よりも、電力解析は困難になる。しかしながら、電力解析の計算量を増やせば、演算回路C2の消費電流分を無効化して、演算回路C1の消費電流波形を求めることができる。このため、第1の方法では電力解析に対する耐性は十分ではない。
 別の方法として、秘匿データKを用いて暗号処理を実行したときと比べて、演算回路内の信号が逆方向に変化するようなデータを無効データD2として用いる方法(第2の方法)が考えられる。第2の方法を採用した場合にも、電力解析は困難になる。しかしながら、暗号処理の開始タイミングや終了タイミングを容易に特定できるので、電力解析に必要なデータを比較的容易に取得することができる。このため、第2の方法でも電力解析に対する耐性は十分ではない。
 図5A~図5Cは、暗号処理装置15の消費電流波形を示す図である。図5Aは演算回路C1の消費電流波形を示す図であり、図5Bは演算回路C2の消費電流波形を示す図である。演算回路C1の消費電流(図5A)は、クロック信号CLK1の立ち上がりを含むサイクルでは0以上となり、それ以外のサイクルではほぼ0となる。演算回路C2の消費電流(図5B)は、クロック信号CLK2の立ち上がりを含むサイクルでは0以上となり、それ以外のサイクルではほぼ0となる。クロック信号CLK1、CLK2は、交互に立ち上がり、同じサイクルで一緒に立ち上がることはない。暗号処理装置15の消費電流波形は、図5Aおよび図5Bに示す2つの波形を加算して、図5Cに示すようになる。
 上述したように、暗号処理装置15における処理の実行順序は、C1P1→C2P1→C1P2→C2P2→…→C1Pn→C2Pnである。このため、図5Cに示す消費電流波形にも、秘匿データKを用いて暗号処理の1段の処理を実行したときの消費電流波形(点状模様を付していない長方形内の波形)と、無効データD2を用いて暗号処理の1段の処理を実行したときの消費電流波形(点状模様を付した長方形内の波形)とが交互に現れる。したがって、図5Cに示す消費電流波形に基づき、暗号処理の実行期間を特定することは相当困難になる。よって、暗号処理装置15によれば、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 また、クロック制御部16は、演算回路C1、C2のうちで選択しなかった演算回路にはクロック信号SCLKを供給しない。このため、演算回路C1、C2は同時に動作せず、暗号処理装置15の外部で観測される消費電流は、演算回路1個分になる。したがって、演算回路を2個備えても、演算回路を1個備える場合と比べて消費電力は増加しない。
 図1に示す暗号処理装置10は、図3に示す暗号処理装置15と同様の効果を奏する。暗号処理装置10によれば、複数の演算回路C1~Cmを用いて、秘匿データKを用いた暗号処理と無効データD2~Dmを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行することにより、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 以上に示すように、本実施形態に係る暗号処理装置10は、それぞれが複数の処理P1~Pnを段階的に実行することにより、同じ暗号処理を実行する複数の演算回路C1~Cmと、複数の演算回路C1~Cmの中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号SCLKを供給するクロック制御部11とを備え、複数の演算回路C1~Cmは、クロック制御部11による制御に従い、秘匿データKを用いた暗号処理と無効データD2~Dmを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行する。このような暗号処理装置10によれば、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 また、複数の演算回路C1~Cmは、同じ回路構成を有し、同じ暗号処理を互いに独立に実行し、複数の演算回路C1~Cmの中に、秘匿データKを用いた暗号処理を実行する演算回路と、無効データD2~Dmを用いた暗号処理を実行する演算回路とが含まれている。このように同じ回路構成を有する複数の演算回路C1~Cmを用いることにより、演算回路の設計を工夫しなくても、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。また、複数の演算回路C1~Cmのうち1個の演算回路C1は秘匿データKを用いた暗号処理を実行し、残余の演算回路C2~Cmはそれぞれ無効データD2~Dmを用いた暗号処理を実行する。このような場合に、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 また、クロック制御部11は、複数の演算回路C1~Cmに対して同じクロック信号SCLKを供給する。これにより、クロック制御部11の構成を簡単にすることができる。また、クロック制御部11は、クロック信号SCLKを供給する演算回路を動作中にランダムに選択する。これにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。あるいは、クロック制御部11は、クロック信号SCLKを供給する演算回路を予め定めた順序で選択する。これにより、クロック制御部11の構成を簡単にすることができる。
 (第2の実施形態)
 図6は、本発明の第2の実施形態に係る暗号処理装置の構成を示すブロック図である。図6に示す暗号処理装置20は、第1の実施形態に係る暗号処理装置10(図1)に入力選択部22と出力選択部23を追加したものである。
 入力選択部22には、秘匿データKと無効データD2~Dmが入力される。入力選択部22は、秘匿データKと無効データD2~Dmを動作中にランダムに並べ替えて、選択データJ1~Jmとして演算回路C1~Cmにそれぞれ出力する。このように入力選択部22は、演算回路C1~Cmに対して、秘匿データKおよび無効データD2~Dmのいずれを供給するかを切り替える。
 クロック制御部11と演算回路C1~Cmは、第1の実施形態と同じ構成を有し、第1の実施形態と同様に動作する。演算回路C1~Cmは、それぞれ、選択データJ1~Jmを用いて入力データXに対する暗号処理を実行する。演算回路C1~Cmは処理P1~Pnを段階的に実行し、演算回路C1~Cmにおける処理P1~Pnの実行はクロック制御部11によって制御される。出力選択部23は、演算回路C1~Cmで求めた結果の中から、秘匿データKを用いた暗号処理の結果を選択して出力データYとして出力する。
 以上に示すように、本実施形態に係る暗号処理装置20は、複数の演算回路C1~Cmに対して、秘匿データKおよび無効データD2~Dmのいずれを供給するかを切り替える入力選択部22と、複数の演算回路C1~Cmで求めた結果の中から、秘匿データKを用いた暗号処理の結果を選択する出力選択部23とをさらに備えている。
 したがって、本実施形態に係る暗号処理装置20によれば、第1の実施形態と同様に、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。これに加えて、入力選択部22と出力選択部23を用いて、秘匿データKを用いた暗号処理を実行する演算回路と無効データD2~Dmを用いた暗号処理を実行する演算回路とを切り替えることにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 (第3の実施形態)
 図7は、本発明の第3の実施形態に係る暗号処理装置の構成を示すブロック図である。図7に示す暗号処理装置30は、第1の実施形態に係る暗号処理装置(図1)において、クロック制御部11をクロック制御部31に置換したものである。
 クロック制御部31には、異なる周波数を有するq個のクロック信号SCLK1~SCLKqが供給される。クロック制御部31は、クロック信号SCLK1~SCLKqに基づき、演算回路C1~Cmに対してそれぞれクロック信号CLK1~CLKmを出力する。クロック制御部31における演算回路の選択方法は、第1の実施形態に係るクロック制御部11と同じである。例えば、クロック制御部31は、演算回路C1~Cmの中から、クロック信号SCLK1~SCLKqを供給する演算回路を動作中にランダムに選択してもよく、クロック信号SCLK1~SCLKqを供給する演算回路を予め定めた順序で選択してもよい。
 クロック信号SCLK1~SCLKqのうちでいずれのクロック信号を出力するかは、演算回路C1~Cmごとに予め決定されている。クロック制御部31は、演算回路C1~Cmの中から1個の演算回路を選択し、選択した演算回路に当該演算回路に対応したクロック信号(クロック信号SCLK1~SCLKqのうちのいずれか)を出力する。このようにクロック制御部31は、演算回路C1~Cmに対して、異なる周波数を有するq個のクロック信号SCLK1~SCLKqの中から選択したクロック信号を供給する。
 演算回路C1~Cmは、第1の実施形態と同じ構成を有し、第1の実施形態と同様に動作する。演算回路C1は、秘匿データKを用いて入力データXに対する暗号処理を実行する。演算回路C2~Cmは、それぞれ、無効データD2~Dmを用いて入力データXに対する暗号処理を実行する。演算回路C1~Cmは処理P1~Pnを段階的に実行し、演算回路C1~Cmにおける処理P1~Pnの実行はクロック制御部31によって制御される。ただし、本実施形態では、クロック制御部31から出力されるクロック信号CLK1~CLKmの中に、異なる周波数を有するものが含まれる。
 以下、本実施形態に係る暗号処理装置の具体例として、2個の演算回路に互いに異なる周波数を有する2個のクロック信号を交互に供給する暗号処理装置について説明する。図8に示す暗号処理装置35は、2個の演算回路C1、C2、および、クロック制御部36を備えている。演算回路C1は、秘匿データKを用いて入力データXに対する暗号処理を実行する。演算回路C2は、無効データD2を用いて入力データXに対する暗号処理を実行する。暗号処理装置35からは、演算回路C1で求めた結果が出力データYとして出力される。
 クロック制御部36には、異なる周波数を有する2個のクロック信号SCLK1、SCLK2が供給される。クロック制御部36は、演算回路C1、C2の中から1個の演算回路を交互に選択する。クロック制御部36は、演算回路C1を選択したときには、演算回路C1に対してクロック信号SCLK1を出力し、演算回路C2を選択したときには、演算回路C2に対してクロック信号SCLK2を出力する。暗号処理装置35における処理の実行順序は、第1の実施形態に係る暗号処理装置15と同様に、C1P1→C2P1→C1P2→C2P2→…→C1Pn→C2Pnとなる。演算回路C1、C2は暗号処理を互いに独立に実行するので、異なる周波数を有する2個のクロック信号を用いて上記の順序で処理を実行しても、演算回路C1、C2をそれぞれ単独で動作させたときと同じ結果が得られる。
 図9A~図9Cは、暗号処理装置35の消費電流波形を示す図である。図9Aは演算回路C1の消費電流波形を示す図であり、図9Bは演算回路C2の消費電流波形を示す図である。演算回路C1、C2の消費電流は、第1の実施形態に係る暗号処理装置15の場合と同様に変化する。ただし、クロック信号SCLK1の周波数は、クロック信号SCLK2の周波数よりも高い。暗号処理装置35の消費電流波形は、図9Aおよび図9Bに示す2つの波形を加算して、図9Cに示すようになる。
 暗号処理装置35によれば、第1の実施形態に係る暗号処理装置15と同様に、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 これに加えて、暗号処理装置35では、演算回路C1、C2は、それぞれ、互いに異なる周波数を有する2個のクロック信号SCLK1、SCLK2に基づき動作する。このため、演算回路C1、C2が同じ回路構成を有していても、演算回路C1が動作したときの消費電流波形と演算回路C2が動作したときの消費電流波形には差が生じる。また、これら2個の消費電流波形では消費電流が変化するタイミングが異なるので、図9Cに示す消費電流波形に基づき暗号処理の実行期間を特定することは相当困難になる。したがって、暗号処理装置35によれば、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 また、クロック信号SCLK2の周波数をクロック信号SCLK1の周波数よりも低くすることにより、同じ周波数を有するクロック信号を2個用いるよりも、暗号処理装置35の消費電流を削減することができる。
 図7に示す暗号処理装置30は、図8に示す暗号処理装置35と同様の効果を奏する。暗号処理装置30によれば、第1の実施形態に係る暗号処理装置10と同様に、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。これに加えて、演算回路に供給するクロック信号を切り替えることにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。また、低い周波数を有するクロック信号を用いることにより、同じ周波数を有するクロック信号だけを用いる場合よりも、暗号処理装置30の消費電流を削減することができる。
 以上に示すように、本実施形態に係る暗号処理装置30では、クロック制御部31は、複数の演算回路C1~Cmに対して、異なる周波数を有する複数のクロック信号SCLK1~SCLKmの中から選択したクロック信号を供給する。このように演算回路に与えるクロック信号を切り替えることにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。また、低い周波数を有するクロック信号を用いることにより、同じ周波数を有するクロック信号だけを用いる場合よりも、消費電流を削減することができる。
 (第4の実施形態)
 図10は、本発明の第4の実施形態に係る暗号処理装置の構成を示すブロック図である。図10に示す暗号処理装置45は、2個の演算回路C1、C2、クロック制御部46、出力選択部48、および、演算回路選択部49を備えている。
 第1の実施形態に係る暗号処理装置15と同様に、演算回路C1、C2は、暗号処理をn段の処理P1~Pnに分割し、処理P1~Pnを段階的に実行する。ただし、暗号処理装置45に含まれる演算回路C1、C2は、互いに異なる回路構成を有する。例えば、桁上げ先見加算器と順次桁上げ加算器は、異なる回路構成を有する。そこで、例えば演算回路C1には桁上げ先見加算器を用い、演算回路C2には順次桁上げ加算器を用いる。演算回路C1、C2は、すべての段の処理について異なる回路構成を有していてもよく、一部の段の処理について異なる回路構成を有していてもよい。
 クロック制御部46には、異なる周波数を有する2個のクロック信号SCLK1、SCLK2が供給される。クロック制御部46は、クロック信号SCLK1、SCLK2に基づき、演算回路C1、C2に対してそれぞれクロック信号CLK1、CLK2を出力する。クロック制御部46は、演算回路C1、C2の中から1個の演算回路を選択し、演算回路C1を選択したときには、演算回路C1に対してクロック信号SCLK1を出力し、演算回路C2を選択したときには、演算回路C2に対してクロック信号SCLK2を出力する。
 演算回路選択部49は、秘匿データKを用いた暗号処理と無効データD2を用いた暗号処理について、各段の処理をいずれの演算回路で実行するかを切り替える選択処理を行う。より詳細には、演算回路選択部49は、n回の選択処理S1~Snを行う。選択処理S1には、入力データX、秘匿データKおよび無効データD2が入力される。選択処理Sj(jは2以上n以下の整数)には、演算回路C1、C2による処理Pj-1の実行結果が入力される。
 演算回路選択部49は、選択処理Sj(jは1以上n以下の整数)において、秘匿データKを用いた暗号処理の処理Pjを演算回路C1で実行するか、演算回路C2で実行するかを動作中にランダムに選択する。演算回路選択部49は、乱数発生器を有し、乱数発生器で発生させた乱数に基づき、秘匿データKを用いた暗号処理の処理Pjを実行する演算回路を選択する。
 演算回路選択部49は、演算回路C1を選択した場合には、選択処理Sjに入力されたデータのうち、秘匿データKを用いた暗号処理の処理Pjを実行するために必要なデータを演算回路C1に対して出力し、無効データD2を用いた暗号処理の処理Pjを実行するために必要なデータを演算回路C2に対して出力する。クロック制御部46は、演算回路C1、C2を例えば昇順に選択し、先に演算回路C1に対してクロック信号SCLK1を1サイクル出力し、次に演算回路C2に対してクロック信号SCLK2を1サイクル出力する。この場合、演算回路C1は秘匿データKを用いた暗号処理の処理Pjを実行し、演算回路C2は無効データD2を用いた暗号処理の処理Pjを実行する。
 演算回路選択部49は、演算回路C2を選択した場合には、演算回路C1を選択した場合と逆のデータを演算回路C1、C2に対して出力する。クロック制御部46は、演算回路C1、C2を例えば昇順に選択し、先に演算回路C1に対してクロック信号SCLK1を1サイクル出力し、次に演算回路C2に対してクロック信号SCLK2を1サイクル出力する。この場合、演算回路C1は無効データD2を用いた暗号処理の処理Pjを実行し、演算回路C2は秘匿データKを用いた暗号処理の処理Pjを実行する。
 出力選択部48には、演算回路C1、C2による処理Pnの実行結果が入力される。処理Pnの実行結果には、秘匿データKを用いた暗号処理の結果と、無効データD2を用いた暗号処理の結果とが含まれる。出力選択部48は、前者を選択して出力データYとして出力する。演算回路C1、C2は、互いに異なる回路構成を有するが、どちらも同じ暗号処理を同じn段の処理P1~Pnに分割して実行する。したがって、演算回路選択部49がいずれの演算回路を選択しても、演算回路C1、C2をそれぞれ単独で動作させたときと同じ結果が得られる。
 暗号処理装置45に含まれる演算回路C1、C2は、互いに異なる回路構成を有する。このため、演算回路C1で1段の処理を実行したときの消費電流波形と演算回路C2で1段の処理を実行したときの消費電流波形には差が生じる。したがって、暗号処理装置45によれば、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性を向上させることができる。
 なお、以上の説明では、演算回路選択部49はn回の選択処理S1~Snを行うこととしたが、演算回路選択部49はより少ない回数の選択処理を行ってもよい。一般に、演算回路選択部は、少なくとも1回の選択処理を行えばよい。
 暗号処理装置45と同様の方法で、m個の演算回路と、暗号処理の各段の処理をm個の演算回路のいずれで実行するかを選択する演算回路選択部とを備えた暗号処理装置(図示せず)を構成することができる。この暗号処理装置は、暗号処理装置45と同様の効果を奏する。すなわち、この暗号処理装置によれば、第1の実施形態に係る暗号処理装置10と同様に、消費電力を増加させることなく、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。これに加えて、暗号処理の各段の処理をm個の演算回路のいずれで実行するかを選択することにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 以上に示すように、本実施形態に係る暗号処理装置45では、複数の演算回路C1、C2の中に異なる構成を有する演算回路が含まれている。また、暗号処理装置45は、秘匿データKを用いた暗号処理と無効データD2を用いた暗号処理とについて、各段の処理をいずれの演算回路で実行するかを選択する演算回路選択部49を備えている。したがって、本実施形態に係る暗号処理装置45によれば、異なる回路構成を有する複数の演算回路C1、C2を用い、暗号処理の各段の処理を複数の演算回路のいずれで実行するかを選択することにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。
 また、演算回路選択部49は、各段の処理を実行する演算回路を動作中にランダムに選択する。これにより、電力解析に必要なデータの取得をさらに困難にし、電力解析に対する耐性をさらに向上させることができる。また、暗号処理装置45は、複数の演算回路C1、C2で求めた結果の中から、秘匿データKを用いた暗号処理の結果を選択する出力選択部48を備えている。これにより、演算回路選択部49において各段の処理を実行する演算回路を切り替えた場合でも、出力選択部48を用いて秘匿データKを用いた暗号処理の結果を出力することができる。
 なお、本発明の実施形態に係る暗号処理装置については、各種の変形例を構成することができる。例えば、演算回路の個数mおよび処理の個数nは、2以上であれば任意でよい。また、複数のクロック信号を用いる場合のクロック信号の個数qも、2以上であれば任意でよい。また、暗号処理装置は、先の入力データXに対する暗号処理を完了してから、次の入力データXに対する暗号処理を開始してもよく、あるいは、入力データXに対する暗号処理をパイプライン処理で実行してもよい。また、暗号処理装置は、DES方式の暗号処理のように、ラウンド処理を含む暗号処理を実行してもよく、あるいは、ラウンド処理を含まない暗号処理を実行してもよい。
 また、第1~第4の実施形態に係る暗号処理装置の特徴をその性質に反しない限りに任意に組み合わせて、各種の暗号処理装置を構成することができる。例えば、第2の実施形態に係る暗号処理装置20にクロック制御部11に代えて、第3の実施形態に係るクロック制御部31を設けてもよい。これにより、演算回路に供給するデータとクロック信号の両方を切り替える暗号処理装置を構成することができる。また、第4の実施形態に係る暗号処理装置45において、クロック制御部に1個のクロック信号を供給してもよい。これにより、複数の演算回路に対して同じクロック信号を供給する暗号処理装置を構成することができる。
 以上に示すように、本発明の暗号処理装置によれば、複数の演算回路を用いて、秘匿データを用いた暗号処理と無効データを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行することにより、電力解析に必要なデータの取得を困難にし、電力解析に対する耐性を向上させることができる。
 本発明の暗号処理装置は、電力解析に対する耐性が高いという特徴を有するので、暗号処理を行う各種の情報処理装置で利用することができる。
 10、15、20、30、35、45…暗号処理装置
 11、16、31、36、46…クロック制御部
 22…入力選択部
 23、48…出力選択部
 49…演算回路選択部
 C1~Cm…演算回路
 K…秘匿データ
 D2~Dm…無効データ
 X…入力データ
 Y…出力データ

Claims (14)

  1.  暗号処理を複数の処理に分割して実行する暗号処理装置であって、
     それぞれが複数の処理を段階的に実行することにより、同じ暗号処理を実行する複数の演算回路と、
     前記複数の演算回路の中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号を供給するクロック制御部とを備え、
     前記複数の演算回路は、前記クロック制御部による制御に従い、秘匿データを用いた暗号処理と無効データを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行することを特徴とする、暗号処理装置。
  2.  前記複数の演算回路は、同じ回路構成を有し、同じ暗号処理を互いに独立に実行し、
     前記複数の演算回路の中に、前記秘匿データを用いた暗号処理を実行する演算回路と、前記無効データを用いた暗号処理を実行する演算回路とが含まれていることを特徴とする、請求項1に記載の暗号処理装置。
  3.  前記複数の演算回路に対して、前記秘匿データおよび前記無効データのいずれを供給するかを切り替える入力選択部と、
     前記複数の演算回路で求めた結果の中から、前記秘匿データを用いた暗号処理の結果を選択する出力選択部とをさらに備えた、請求項2に記載の暗号処理装置。
  4.  前記クロック制御部は、前記複数の演算回路に対して、異なる周波数を有する複数のクロック信号の中から選択したクロック信号を供給することを特徴とする、請求項2に記載の暗号処理装置。
  5.  前記クロック制御部は、前記複数の演算回路に対して同じクロック信号を供給することを特徴とする、請求項2に記載の暗号処理装置。
  6.  前記クロック制御部は、前記クロック信号を供給する演算回路を動作中にランダムに選択することを特徴とする、請求項2に記載の暗号処理装置。
  7.  前記クロック制御部は、前記クロック信号を供給する演算回路を予め定めた順序で選択することを特徴とする、請求項2に記載の暗号処理装置。
  8.  前記複数の演算回路のうち1個の演算回路は前記秘匿データを用いた暗号処理を実行し、残余の演算回路は前記無効データを用いた暗号処理を実行することを特徴とする、請求項2に記載の暗号処理装置。
  9.  前記複数の演算回路の中に、異なる回路構成を有する演算回路が含まれており、
     前記秘匿データを用いた暗号処理と前記無効データを用いた暗号処理とについて、各段の処理をいずれの演算回路で実行するかを選択する演算回路選択部をさらに備えた、請求項1に記載の暗号処理装置。
  10.  前記演算回路選択部は、各段の処理を実行する演算回路を動作中にランダムに選択することを特徴とする、請求項9に記載の暗号処理装置。
  11.  前記クロック制御部は、前記複数の演算回路に対して、異なる周波数を有する複数のクロック信号の中から選択したクロック信号を供給することを特徴とする、請求項9に記載の暗号処理装置。
  12.  前記クロック制御部は、前記複数の演算回路に対して同じクロック信号を供給することを特徴とする、請求項9に記載の暗号処理装置。
  13.  前記複数の演算回路で求めた結果の中から、前記秘匿データを用いた暗号処理の結果を選択する出力選択部をさらに備えた、請求項9に記載の暗号処理装置。
  14.  暗号処理を複数の処理に分割して実行する暗号処理方法であって、
     それぞれが複数の処理を段階的に実行することにより、同じ暗号処理を実行する複数の演算回路の中から1個の演算回路を選択し、選択した演算回路に暗号処理の1段の処理を実行させるためのクロック信号を供給するステップと、
     供給されたクロック信号に基づき、前記複数の演算回路を用いて、秘匿データを用いた暗号処理と無効データを用いた暗号処理とを1段の処理を切り替え単位として時分割で実行するステップとを備えた、暗号処理方法。
PCT/JP2011/076622 2010-11-26 2011-11-18 暗号処理装置 WO2012070478A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-263109 2010-11-26
JP2010263109 2010-11-26

Publications (1)

Publication Number Publication Date
WO2012070478A1 true WO2012070478A1 (ja) 2012-05-31

Family

ID=46145822

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/076622 WO2012070478A1 (ja) 2010-11-26 2011-11-18 暗号処理装置

Country Status (1)

Country Link
WO (1) WO2012070478A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526840A (ja) * 1998-09-30 2002-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 差動電流消費分析を防止するためのデータ処理装置および作動方法
JP2006081059A (ja) * 2004-09-13 2006-03-23 Matsushita Electric Ind Co Ltd 暗号回路および集積回路
JP2007195132A (ja) * 2005-12-20 2007-08-02 Sony Corp 暗号処理装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526840A (ja) * 1998-09-30 2002-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 差動電流消費分析を防止するためのデータ処理装置および作動方法
JP2006081059A (ja) * 2004-09-13 2006-03-23 Matsushita Electric Ind Co Ltd 暗号回路および集積回路
JP2007195132A (ja) * 2005-12-20 2007-08-02 Sony Corp 暗号処理装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YOSHINOBU TOYODA ET AL.: "Proposal of domino-RSL circuit which is resistant to Differential Power Analysis attack on cryptographic circuit", IPSJ SIG NOTES, vol. 2007, no. 114, 20 November 2007 (2007-11-20), pages 43 - 48 *

Similar Documents

Publication Publication Date Title
Luo et al. Side-channel power analysis of a GPU AES implementation
Ors et al. Power-analysis attack on an ASIC AES implementation
US7907722B2 (en) Protection against power analysis attacks
Bayrak et al. An architecture-independent instruction shuffler to protect against side-channel attacks
EP2273472A1 (en) Coder equipped with common key code function and built-in equipment
JP2010288233A (ja) 暗号処理装置
GB2487901A (en) Power signature obfuscation by applying variable delay to signal propagation in data processing operation
US9176707B2 (en) Arithmetic apparatus, elliptic scalar multiplication method of arithmetic apparatus, elliptic scalar multiplication program, residue operation method of arithmetic apparatus, and residue operation program
Homsirikamol et al. Toward a new HLS-based methodology for FPGA benchmarking of candidates in cryptographic competitions: The CAESAR contest case study
CN100594388C (zh) 用于带有扫描通道选择的高级逻辑内建自测试的系统和方法
EP3264221A1 (en) Method and circuit for dynamic power control
EP2056275A1 (en) Pseudo random number generator, stream encrypting device, and program
US9509497B2 (en) Method for generating a random output bit sequence
JP3940714B2 (ja) 演算装置、および、暗号・復号演算装置
Loiseau et al. Template Attacks against ECC: practical implementation against Curve25519
Huss et al. Amasive: an adaptable and modular autonomous side-channel vulnerability evaluation framework
JP7061207B2 (ja) セキュア集積回路及びその方法
WO2012070478A1 (ja) 暗号処理装置
IL147359A (en) High speed PRBS creation technique
US20160119132A1 (en) Method and device for generating a hash value
Huss et al. A novel mutating runtime architecture for embedding multiple countermeasures against side-channel attacks
Caffarena et al. High-level synthesis of multiple word-length DSP algorithms using heterogeneous-resource FPGAs
Ramesh et al. Side channel analysis of sparx-64/128: Cryptanalysis and countermeasures
Yli-Mäyry et al. Chosen-input side-channel analysis on unrolled light-weight cryptographic hardware
CN116210198A (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: 11842942

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11842942

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP