WO2012014291A1 - 耐タンパ性メモリ集積回路およびそれを利用した暗号回路 - Google Patents

耐タンパ性メモリ集積回路およびそれを利用した暗号回路 Download PDF

Info

Publication number
WO2012014291A1
WO2012014291A1 PCT/JP2010/062689 JP2010062689W WO2012014291A1 WO 2012014291 A1 WO2012014291 A1 WO 2012014291A1 JP 2010062689 W JP2010062689 W JP 2010062689W WO 2012014291 A1 WO2012014291 A1 WO 2012014291A1
Authority
WO
WIPO (PCT)
Prior art keywords
transistors
transistor
input
gate
series
Prior art date
Application number
PCT/JP2010/062689
Other languages
English (en)
French (fr)
Inventor
藤野 毅
Original Assignee
学校法人立命館
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 学校法人立命館 filed Critical 学校法人立命館
Priority to PCT/JP2010/062689 priority Critical patent/WO2012014291A1/ja
Priority to JP2012526239A priority patent/JP5544611B2/ja
Priority to US13/812,628 priority patent/US8861720B2/en
Publication of WO2012014291A1 publication Critical patent/WO2012014291A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/08Word line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, for word lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

Definitions

  • the present invention relates to a semiconductor device that realizes an encryption algorithm, and in particular, secret information (mainly an encryption key) processed in the semiconductor device, power consumption of the semiconductor device, and side channel information such as a radiation electromagnetic wave depending on the power consumption.
  • the present invention relates to a tamper-resistant memory integrated circuit having a countermeasure against a stealing attack and a cryptographic circuit using the same.
  • DPA differential power attack
  • P. Kocher is an attack technique announced by P. Kocher in 1999, and is described in Non-Patent Document 1 (Paul Kocher, Joshua Jaffe, and Benjamin). Jun, “Differential Power Analysis”, anceAdvances in Cryptography- Proceedings of CRYPTO'99, Springer-Verlag, August 1999, pp.388-397)). This utilizes the fact that there is a correlation between the signal value or signal transition frequency during operation of the cryptographic device and the power consumption. This will be described in detail using the 2-input AND gate shown in FIG.
  • the transition of the input of the 2-input AND gate has 16 combinations as shown in FIG. 1B, when A1 and B1 are written before transition and A2 and B2 are written after transition.
  • A1 0 (the upper eight rows of FIG. 1B)
  • a hatched portion in FIG. 1B shows a case where the output transitions.
  • the encryption key data which is confidential information
  • the encryption key can be specified by statistically processing the power consumption during operation of the encryption device.
  • an AND gate is shown in this example, the same DPA attack is possible in the case of an OR gate, a NAND gate, a NOR gate, or a non-linear gate.
  • Patent Document 1 Japanese Patent Laid-Open No. 2000-065585
  • S-Box substitution table different for each rule.
  • a method of performing an operation has been proposed. Since different S-Box operations are performed depending on the random number R, power consumption is different even for the same input value and the same encryption key, so that a correlation between the encryption key and power consumption can be obtained. Disappear.
  • Patent Document 2 Japanese Patent Publication No.
  • Patent Document 3 International Patent Application Publication No. WO2006-006199.
  • the S-Box table used for common key encryption includes a non-linear gate such as an AND gate and an OR gate and a negative logic. It can be realized using the combinational logic circuit used.
  • the non-linear gate is characterized in that the output transition probability varies depending on the input data value as described above, and thus the power consumption proportional to the output transition probability also depends on the input data value.
  • the output transition probability when the input A is 0 is 1/4
  • the output transition probability when the input A is 1 is 1/2. For this reason, it is possible to estimate whether the input A is 1 or 0 by measuring the power consumption of the device when the input A is fixed and the input B changes randomly. Therefore, when bit information related to confidential information is input to A, this can be estimated using power consumption.
  • Non-patent document 2 K. Tiri and Ingrid Verbauwhede, “A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation”, Design Automation and Test in Europe Conference, pp.246-251 (2004)
  • Fig. 2 (a) For signal propagation between logic gates, two-wire complementary signals are used, and by always initializing the output node before starting logical operation (set to logic 0), either of the complementary signals will always transition during the operation. Regardless of the calculation, the transition probability of the signal line is constant.
  • FIG. 3A shows a NAND gate using the RSL method disclosed in Patent Document 3.
  • the circuit of (a) functions as a NAND gate when the random number r is 0, and functions as a NOR gate when the random number r is 1.
  • the output transition probability of the NAND gate from the precharge state is 25% and the output transition probability of the NOR gate is 75%, if the random number r transitions between 1 and 0 with a probability of 50%, the output node has a probability of 50%. Transition. Therefore, regardless of the signal value of the encryption device, the device consumes a certain amount of power, which is a countermeasure for DPA. Further, in this state, there is a problem that a desired calculation result cannot be obtained.
  • the same random number r used in the RSL method is used in the preceding stage and the subsequent stage of the target combinational logic circuit. When the EXOR operation is performed, the positive logic and the negative logic are switched in the combinational logic circuit, and a desired operation can be executed. Since the EXOR operation unit is a linear circuit with a transition probability of 50%, it is not a target of the DPA attack.
  • Non-Patent Document 3 described below (Proposal of a Domino RSL circuit that is resistant to a power difference analysis attack on a cryptographic circuit, is described in the following Non-Patent Document 3 (Yoshiaki Toyoda, Kenta Kido, Yoshiaki Shimobayashi, Satoshi Fujino) "Domino RSL method proposed in IEICE Technical Report VLD2007-77).
  • FIG. 6A shows a domino RSL AND / OR gate. In this method, the DPA tolerance is guaranteed because the AND gate and the OR gate are switched using the random number r (see FIG. 6B), as in the RSL method.
  • Non-Patent Document 4 Korean Okuyama, Kenji Kojima, Katsuhiko Iwai, Satoshi Fujino, “A cryptographic circuit implemented with an FPGA using the Domino-RSL method” It has been reported in the "DPA tolerance verification against”, Symposium on Cryptography and Information Security (SCIS2010), January 2010).
  • FIG. 7 shows a circuit block diagram of a DES encryption circuit designed using the Domino RSL method.
  • the Domino RSL method must be applied only to S-Box circuits that require nonlinear gates.
  • the S-Box circuit in the DES encryption circuit is a 6-input 4-output table, and since 8 types of tables are used, 8 types of S-Boxes (S-Box 1 to S-Box 8) are shown.
  • S-Box describes a 6-input 4-output table in a hardware description language and uses a tool capable of logic synthesis that does not include negated logic (University of California, Berkeley: SIS logic synthesis tool distributed by UC Berkley) Can be converted to a netlist including a Domino RSL gate.
  • An EXOR gate described as RT in the circuit is introduced as a countermeasure against a random mask against a Hamming distance type DPA attack using a DFF transition.
  • the present invention relates to a tamper resistant memory integrated circuit that is resistant to DPA attacks, in particular, a tamper resistant memory that can solve the problems of the ASIC design flow using the above-described Domino RSL gate and can easily design an integrated circuit. It is an object of the present invention to provide an integrated circuit and an encryption circuit (for example, an encryption circuit in which S-Box is mounted on LSI) using the integrated circuit as a hardware core (hereinafter referred to as “secure memory”).
  • secure memory for example, an encryption circuit in which S-Box is mounted on LSI
  • the peripheral circuit portion of the memory is designed using, for example, the Domino RSL method in order to have DPA tolerance. For this reason, the feature is that the random number R corresponding to the Domino RSL circuit is provided as an input control line in addition to the six address lines and data lines and the clock (CLK) as a normal memory.
  • a first memory integrated circuit is a memory integrated circuit including a memory cell array, a row decoder, a column decoder, a sense amplifier, and an input / output driver, Reading or writing data to each memory cell in the memory cell array is performed via two complementary bit lines,
  • the row decoder, the column decoder, and the sense amplifier are configured by a circuit in which the transition probability of signal lines is made uniform by random number data input from the outside.
  • the row decoder, the column decoder, and the sense amplifier include a Domino RSL circuit.
  • a third memory integrated circuit is the above-mentioned second memory integrated circuit
  • the row decoder includes a first predecoder and a word line driver that drives a word line of a memory cell;
  • a plurality of first inverters (inverters in FIG. 12A) for inverting a part of the plurality of bit data constituting the address data;
  • a plurality of first domino RSL gates (RSL_AND).
  • the first domino RSL gate (RSL_AND) includes first to eighth transistors (Tr1 to Tr8) and a second inverter (Inv1).
  • the first and fifth transistors are PMOS transistors;
  • the second to fourth and sixth to eighth transistors are NMOS transistors,
  • the first to fourth transistors (Tr1 to Tr4) are connected in series in order with their sources or drains connected to each other,
  • a power supply voltage (Vdd) is applied to the source of the first transistor (Tr1) located at one end of the first to fourth transistors (Tr1 to Tr4) connected in series,
  • a ground voltage (Gnd) is applied to the source of the fourth transistor (Tr4) located at the other end of the first to fourth transistors (Tr1 to Tr4) connected in series,
  • a clock (CLK) is input to the gates of the first transistor (Tr1) and the fourth transistor (Tr4),
  • a power supply voltage is applied to the source of the fifth transistor (Tr5),
  • the sixth and seventh transistors (Tr6, Tr7) are connected in parallel;
  • the drain of the fifth transistor (Tr5) is connected to one of connection nodes of the sixth and seventh transistors (Tr6,
  • the address data different from the data input to the gates of the second transistor (Tr2) and the sixth transistor (Tr6) is configured at the gates of the third transistor (Tr3) and the seventh transistor (Tr7).
  • 1-bit data (A [2] to A [3]) or the output data of the first inverter is input,
  • the random number data (R) or the inverted data (/ R) of the random number data is input to the gate of the eighth transistor (Tr8).
  • the row decoder includes a first predecoder and a word line driver that drives a word line of a memory cell; A plurality of first inverters (inverters in FIG. 12A) for inverting a part of the plurality of bit data constituting the address data; and a plurality of first domino RSL gates (RSL_AND).
  • the first domino RSL gate includes first to eighth transistors (Tr1 ′ to Tr8 ′) and a second inverter (Inv1 ′),
  • the first and fifth transistors are NMOS transistors;
  • the second to fourth and sixth to eighth transistors are PMOS transistors,
  • the first to fourth transistors (Tr1 ′ to Tr4 ′) are connected in series in order with their sources or drains connected to each other,
  • a ground voltage (Gnd) is applied to the source of the first transistor (Tr1 ′) located at one end of the first to fourth transistors (Tr1 ′ to Tr4 ′) connected in series,
  • a power supply voltage (Vdd) is applied to the source of the fourth transistor (Tr4 ′) located at the other end of the first to fourth transistors (Tr1 ′ to Tr4 ′) connected in series,
  • a clock (CLK) is input to the gates of the first transistor (Tr1 ′) and the fourth transistor (Tr4 ′),
  • a fifth memory integrated circuit according to the present invention is the above third or fourth memory integrated circuit.
  • the word line driver comprises a plurality of second domino RSL gates (RSL_WDrive);
  • the second domino RSL gate (RSL_WDrive) includes ninth to seventeenth transistors (Tr9 to Tr17) and a third inverter (Inv2).
  • the ninth and fourteenth transistors are PMOS transistors;
  • the tenth to thirteenth and fifteenth to seventeenth transistors are NMOS transistors,
  • the ninth to thirteenth transistors (Tr9 to Tr13) are connected in series in order with their sources or drains connected to each other,
  • a power supply voltage is applied to the source of the ninth transistor (Tr9) located at one end of the ninth to thirteenth transistors (Tr9 to Tr13) connected in series;
  • a ground voltage is applied to the source of the thirteenth transistor (Tr13) located at the other end of the ninth to thirteenth transistors (Tr9 to Tr13) connected in series;
  • a clock (CLK) is input to the gates of the ninth transistor (Tr9) and the thirteenth transistor (Tr13),
  • the fourteenth to seventeenth transistors (Tr14 to Tr17) are connected in series in order with their sources or drains connected to each other,
  • a power supply voltage is applied to the source of the fourteenth transistor (Tr14) located at one end of the fourteenth
  • the output signals (a [0] to a [3], b [0] of the first domino RSL gate do not overlap each gate (IN3, IN4) of the tenth and eleventh transistors (Tr10, Tr11).
  • An inverted signal (/ IN3) of the signal (IN3) input to the gate of the tenth transistor (Tr10) is input to the gate of the fifteenth transistor (Tr15)
  • An inverted signal (/ IN4) of the signal (IN4) input to the gate of the eleventh transistor (Tr11) is input to the gate of the sixteenth transistor (Tr16)
  • the random number data (R) or the inverted data (/ R) of the random number data is input to each of the twelfth and seventeenth transistors (Tr12, Tr17) without overlapping.
  • a sixth memory integrated circuit is the above third or fourth memory integrated circuit,
  • the word line driver comprises a plurality of second domino RSL gates (RSL_WDrive);
  • the second domino RSL gate (RSL_WDrive) includes ninth to seventeenth transistors (Tr9 ′ to Tr17 ′) and a third inverter (Inv2 ′).
  • the ninth and fourteenth transistors are NMOS transistors;
  • the tenth to thirteenth and fifteenth to seventeenth transistors are PMOS transistors,
  • the ninth to thirteenth transistors (Tr9 ′ to Tr13 ′) are connected in series in order with their sources or drains connected to each other,
  • a ground voltage is applied to the source of the ninth transistor (Tr9 ′) located at one end of the ninth to thirteenth transistors (Tr9 ′ to Tr13 ′) connected in series;
  • a power supply voltage is applied to the source of the thirteenth transistor (Tr13 ′) located at the other end of the ninth to thirteenth transistors (Tr9 ′ to Tr13 ′) connected in series,
  • a clock (CLK) is input to the gates of the ninth transistor (Tr9 ′) and the thirteenth transistor (Tr13 ′),
  • the fourteenth to seventeenth transistors (Tr14 ′ to Tr17 ′) are connected in series in order with their sources or drains connected to each other,
  • a connection node of the ninth and tenth transistors (Tr9 ′, Tr10 ′) and a connection node of the fourteenth and fifteenth transistors (Tr14 ′, Tr15 ′) are connected to form a second output node;
  • the second output node is connected to the gate of the fourteenth transistor (Tr14 ′) via the third inverter (Inv2 ′);
  • An inverted signal (/ IN3) of the signal (IN3) input to the gate of the tenth transistor (Tr10 ′) is input to the gate of the fifteenth transistor (Tr15 ′)
  • An inverted signal (/ IN4) of a signal (IN4) input to the gate of the eleventh transistor (Tr11 ′) is input to the gate of the sixteenth transistor (Tr16 ′)
  • the random number data (R) or the inverted data (/ R) of the random number data is input to each of the twelfth and seventeenth transistors (Tr12 ′, Tr17 ′) without overlapping.
  • a seventh memory integrated circuit is any one of the third to sixth memory integrated circuits.
  • the sense amplifier includes a bit line precharge unit and a cross-coupled sense amplifier unit connected to the complementary bit lines (BL, / BL), and a Domino RSL multiplexer (RSL_MUX),
  • the Domino RSL multiplexer includes 18th to 24th transistors (Tr18 to Tr24) and a fourth inverter (Inv3 ′).
  • the 18th and 22nd transistors are PMOS transistors
  • the nineteenth to twenty-first, twenty-third, and twenty-fourth transistors are NMOS transistors
  • the 18th to 21st transistors (Tr18 to Tr21) are connected in series in order with their sources or drains connected to each other, A power supply voltage is applied to the source of the 18th transistor (Tr18) located at one end of the 18th to 21st transistors (Tr18 to Tr21) connected in series, A ground voltage is applied to the source of the 21st transistor (Tr21) located at the other end of the 18th to 21st transistors (Tr18 to Tr21) connected in series, A clock (CLK) is input to the gates of the 18th transistor (Tr18) and the 21st transistor (Tr21), The twenty-second to twenty-fourth transistors (Tr22 to Tr24) are connected in series in order with their sources or drains connected to each other, A power supply voltage is applied to the source of the 22nd transistor (Tr22) located
  • An eighth memory integrated circuit is any one of the third to sixth memory integrated circuits.
  • the sense amplifier includes a bit line precharge unit and a cross-coupled sense amplifier unit connected to the complementary bit lines (BL, / BL), and a Domino RSL multiplexer (RSL_MUX),
  • the Domino RSL multiplexer includes 18th to 24th transistors (Tr18 ′ to Tr24 ′) and a fourth inverter (Inv3 ′),
  • the 18th and 22nd transistors are NMOS transistors,
  • the 19th to 21st, 23rd, and 24th transistors are PMOS transistors,
  • the eighteenth to twenty-first transistors (Tr18 ′ to Tr21 ′) are connected in series in order with their sources or drains connected to each other,
  • a ground voltage is applied to the source of the eighteenth transistor (Tr18 ′) located at one end of the eighteenth to twenty-first transistors (Tr18 ′ to Tr21 ′) connected in series;
  • connection node of the 18th and 19th transistors (Tr18 ′, Tr19 ′) and a connection node of the 22nd and 23rd transistors (Tr22 ′, Tr23 ′) are connected to form a third output node,
  • the third output node is connected to the gate of the twenty-second transistor (Tr22 ′) through the fourth inverter (Inv3 ′);
  • Signals from the complementary bit lines (BL, / BL) are input to the gates of the 19th and 23rd transistors (Tr19 ′, Tr23 ′) without overlapping,
  • the random number data (R) or inverted data of the random number data is input to the gates of the twentieth and twenty-fourth transistors (Tr20 ′, Tr24 ′).
  • the column decoder includes a second predecoder and a column decode line driver for driving a column decode line of the memory cell
  • the second predecoder includes a fifth inverter for inverting bit data not input to the first predecoder among the plurality of bit data constituting the address data, and a third domino RSL gate (RSL_AND);
  • the third domino RSL gate comprises 25th to 32nd transistors and a sixth inverter;
  • the 25th and 29th transistors are PMOS transistors,
  • the 26th to 28th and 30th to 32nd transistors are NMOS transistors,
  • the twenty-fifth to thirty-second transistors are connected in series in order with their sources or drains connected to each other, A power supply voltage is applied to the source of the 25th transistor located at one end of the 25th to 28th transistors connected in series, A ground voltage is applied to the source of the 28th transistor located at the other end of the 25
  • a tenth memory integrated circuit is any one of the third to eighth memory integrated circuits described above.
  • the column decoder includes a second predecoder and a column decode line driver for driving a column decode line of the memory cell,
  • the second predecoder includes a fifth inverter for inverting bit data not input to the first predecoder among the plurality of bit data constituting the address data, and a third domino RSL gate (RSL_AND);
  • the third domino RSL gate comprises 25th to 32nd transistors and a sixth inverter;
  • the 25th and 29th transistors are NMOS transistors,
  • the 26th to 28th and 30th to 32nd transistors are PMOS transistors,
  • the twenty-fifth to thirty-second transistors are connected in series in order with their sources or drains connected to each other, A ground voltage is applied to the source of the 25th transistor located at one end of the 25th to 28th transistors connected in series, A power supply voltage is applied to the source of the 28th
  • An eleventh memory integrated circuit is the ninth or tenth memory integrated circuit
  • the column decode line driver comprises a fourth domino RSL gate (RSL_WDrive);
  • the fourth domino RSL gate (RSL_WDrive) includes thirty-third to forty-first transistors and a seventh inverter;
  • the 33rd and 38th transistors are PMOS transistors,
  • the 34th to 37th and 39th to 41st transistors are NMOS transistors,
  • the thirty-third to thirty-seventh transistors are connected in series in order with their sources or drains connected to each other,
  • a power supply voltage is applied to the source of the 33rd transistor located at one end of the 33rd to 37th transistors connected in series,
  • a ground voltage is applied to the source of the 37th transistor located at the other end of the 33rd to 37th transistors connected in series,
  • a clock (CLK) is input to the gates of the 33rd transistor and the 37th transistor,
  • the thirty-eighth to forty-first transistors
  • a twelfth memory integrated circuit is the ninth or tenth memory integrated circuit
  • the column decode line driver comprises a fourth domino RSL gate (RSL_WDrive);
  • the fourth domino RSL gate (RSL_WDrive) includes thirty-third to forty-first transistors and a seventh inverter;
  • the 33rd and 38th transistors are NMOS transistors,
  • the 34th to 37th and 39th to 41st transistors are PMOS transistors,
  • the thirty-third to thirty-seventh transistors are connected in series in order with their sources or drains connected to each other,
  • a ground voltage is applied to the source of the 33rd transistor located at one end of the 33rd to 37th transistors connected in series,
  • a power supply voltage is applied to the source of the 37th transistor located at the other end of the 33rd to 37th transistors connected in series
  • a clock (CLK) is input to the gates of the 33rd transistor and the 37th transistor,
  • a first encryption circuit according to the present invention includes the first to twelfth memory integrated circuits.
  • the random number generation circuit includes: Random numbers obtained by performing an exclusive OR operation on a linear feedback shift register, an N-stage selector circuit connected in cascade in two columns, an arbiter circuit, an output signal of the linear feedback shift register, and an output signal of the arbiter circuit And an arithmetic gate that outputs
  • the linear feedback shift register includes N shift registers connected in series and a plurality of exclusive OR operators;
  • the arbiter circuit is A cross-coupled sense amplifier connected in series between a ground voltage and a power supply voltage; and an enable gate composed of two transistors having sources connected to each other and drains connected to each other; The first input signal is input to one input terminal, the other input terminal is connected to the first sensing node of the cross-coupled sense amplifier, and the output terminal is connected to the gate of one transistor constituting the enable gate.
  • a first NAND gate The second input signal is input to one input terminal, the other input terminal is connected to the second sensing node of the cross-coupled sense amplifier, and the output terminal is connected to the gate of the other transistor constituting the enable gate.
  • a second NAND gate The output of the shift register is input to the selector circuit as a challenge that is a selection signal, The output signals of the last two selector circuits are input to the arbiter circuit as the first and second input signals, One of the outputs of the first and second NAND gates is output as the random number from the arbiter circuit.
  • the second cryptographic circuit is: Any one of the first to twelfth memory integrated circuits and the random number generating circuit;
  • the output of the random number generation circuit is the random number data input to the memory integrated circuit.
  • the third cryptographic circuit according to the present invention is: The above-described first or second encryption circuit which is an encryption circuit for DES encryption or AES encryption,
  • the S-Box is composed of the memory integrated circuit.
  • the memory integrated circuit and the encryption circuit using the memory integrated circuit according to the present invention it is possible to realize an encryption means that is tamper resistant, resistant to DPA attacks, and highly reliable.
  • the S-Box is realized using a hardware core that uses the Domino RSL method called secure memory, so that the designer of the cryptographic circuit has DPA tolerance without being aware of the Domino RSL gate.
  • secure memory a hardware core that uses the Domino RSL method
  • a cryptographic circuit layout can be created by designing a block excluding the S-Box portion of the cryptographic circuit, and automatically routing the entire cryptographic circuit by arranging the secure memory core as a hardware macro during automatic placement and routing. . Therefore, it is not necessary to prepare a logic synthesis tool for a domino circuit or a special cell library called a domino RSL gate. Furthermore, it is not necessary to consider the load on the / CLK line required for the Domino RSL gate.
  • the DES encryption circuit requires eight types of S-Boxes. However, it is possible to use the same hardware core for all S-Boxes by simply changing the data in the secure memory. to be born. Even in the new standard AES encryption circuit that replaces the previous generation DES encryption circuit, the non-linear gate is used only in the S-Box section, which corresponds to the S-Box used in AES. If a secure memory (capacity is 2K bits) with a bit input of 8 bits is prepared, this can be handled easily.
  • FIG. 13 is a timing chart showing operation waveforms of the predecoder shown in FIG. 12.
  • FIG. 13 is a timing chart showing operation waveforms of the predecoder shown in FIG. 12.
  • FIG. 16 is a timing chart showing operation waveforms of the word line driver shown in FIG.
  • FIG. 20 is a circuit diagram which shows the conventional sense amplifier circuit.
  • 20 is a timing chart showing the operation and power consumption of the sense amplifier circuit shown in FIG. 19.
  • FIG. 1 is a circuit diagram showing a sense amplifier circuit according to an embodiment of the present invention.
  • FIG. 22 is a timing chart showing the operation and power consumption of the circuit shown in FIG. 21. It is a circuit diagram which shows an example of the Domino RSL gate which can be substituted with FIG.12 (b).
  • FIG. 16 is a circuit diagram showing an example of a Domino RSL gate that can be replaced with FIG. It is a circuit diagram which shows an example of the Domino RSL multiplexer which can be substituted with FIG.21 (b).
  • It is a circuit diagram which shows the conventional pseudorandom number generator. It is a block diagram which shows the PUF circuit using the manufacture variation of a chip
  • FIG. 8 shows a functional block diagram of the tamper resistant memory integrated circuit (secure memory) according to the embodiment of the present invention.
  • the secure memory includes a memory array, a row decoder including an address predecoder and a word line driver, a column decoder, a sense amplifier, and an input / output driver.
  • a clock CLK, address data A, and a control signal / Write are input from the outside, and data is written / read to / from corresponding memory cells in the memory array.
  • This secure memory differs from a normal memory in that a random number R is input from an external random number generator (not shown). Address A is an input, data D is an input / output, and when this secure memory is used as an S-Box of a DES encryption circuit, as shown in FIG. This is a 4-bit output.
  • a static RAM type (a) or a mask ROM type (b) as shown in FIG. 9 is used as a memory cell in the memory array.
  • the static RAM shown in FIG. 9 has a general circuit structure, and reads and writes complementary bit line data by setting the word line to Hi.
  • the ROM data is written by changing the photomask layout at the time of LSI manufacture depending on whether the S-Box table value is 1 or 0.
  • a contact layer or via array is often used.
  • the bit lines do not have a complementary structure, but the mask ROM (b) according to the present invention must take a structure in which two cells are arranged with respect to the complementary bit lines.
  • any memory cell can be used as long as it can read the bit line in a complementary format.
  • a dynamic RAM a ferroelectric memory, a magnetic material, and the like can be used. It may be a memory using When used for an DES S-Box, a 256-bit memory array with 6-bit address and 4-bit output is obtained.
  • 16 word lines W and 16 bit line pairs (BL and / BL) are provided. There is a structure with 32 pairs. Each memory cell is connected to one word line and a pair of bit lines.
  • the row decoder is a circuit that decodes a 4-bit address and selects and drives one of 16 word lines.
  • An address predecoder hereinafter also simply referred to as a predecoder
  • a word line driver And can be broadly classified.
  • the predecoder in the conventional general circuit is a circuit as shown in FIG. 11A, and generates a signal in the pattern shown in the table of FIG. That is, the four states of the address signals A [2] and A [3] are decoded, and only one of the signal lines a [0], a [1], a [2], and a [3] is logically operated. 1 is a combinational logic circuit. Similarly, the signals b [0], b [1], b [2], b [3] are predecoded from the address signals A [4] and A [5].
  • the conventional circuit shown in FIG. 11A uses a NAND gate. Since the NAND gate is a non-linear gate similar to the AND gate of FIG. 1 described in the DPA principle, it can be a target of a DPA attack.
  • the predecoder is realized by using a Domino RSL gate RSL_AND as shown in FIG. FIG. 12B shows a specific circuit of the Domino RSL gate RSL_AND.
  • the Domino RSL gate RSL_AND is an equivalent circuit to the circuit of FIG. 6A, although an inverter for driving the output is added to the circuit shown in FIG. Invx1 and invx8 shown inside the inverter indicate the difference in the size (gate width) of the NMOS and PMOS transistors that make up the inverter. The larger the value following invx, the larger the size and the greater the load capacity can be driven. (Same for circuit diagrams other than FIG. 12).
  • the clock CLK is input to the first input terminal, and the inputs A [2], A [3] or the inversion thereof are input to the second and third input terminals IN1 and IN2.
  • Signal is input.
  • R is displayed at the fourth input terminal, but a random number R or its inverted signal / R is input.
  • output signals a [0] to a [3] and / a [0] to / a [3], which are complementary signals, are generated from the inputs A [2] and A [3].
  • FIG. 12 shows only the circuits related to the inputs A [2] and A [3], but the circuits related to the inputs A [4] and A [5] are similarly configured.
  • Output signals b [0] to b [3] and / b [0] to / b [3] corresponding to the output signals a [0] to a [3] and / a [0] to / a [3] Generated.
  • a conventional word line driver is constituted by a circuit shown in FIG. That is, for the 16 word lines, one signal line is selected from each of the two types of predecode signals a [0] to a [3] and b [0] to b [3]. Is driven using a three-input AND gate wd3 obtained by adding a CLK signal to the signal line. The CLK signal is input in order to control the timing at which the word line is raised.
  • FIG. 12B is a table showing selection of the word line W by the predecode signals a [0] to a [3] and b [0] to b [3]. In (a), a part of the circuit is omitted, and only five of the sixteen three-input AND gates wd3 and five of the sixteen word lines W are shown. Similarly, the table of (b) is also omitted.
  • FIG. 15A the circuit shown in FIG. 15A is used for the word line driver of the present invention.
  • a specific circuit of the Domino RSL gate RSL_WDriv is shown in FIG.
  • the word line driver according to the present invention is configured to include 16 domino RSL gates RSL_WDlive.
  • FIG. 15A only the domino RSL gate RSL_WDdrive for driving the word lines w [0] to w [4] is included. Show. Further, the symbol b shown in the Domino RSL gate RSL_WDdrive in FIG. 15A indicates that an inverted signal is input.
  • FIG. 16 shows operation waveforms of the circuit shown in FIG.
  • w [0] Hi.
  • FIG. 17 is a circuit diagram for confirming the operation of the row decoder including the predecoder and the word line driver.
  • the path from the memory array to the output includes a column decoder and a sense amplifier circuit that reads data from the memory array.
  • the column decoder is a circuit that selects data necessary for output from the data read from the memory array.
  • the address decoder A [0] to A [1] is decoded to obtain the memory array. 4 are selected from the 16 data output from.
  • the column decoder of the present invention is configured in the same manner as the above-described row decoder of the present invention using a Domino RSL gate. That is, the column decoder according to the present invention includes a predecoder (see FIG.
  • the output signal of the column decode line driver (corresponding to OUT2 in FIG. 15B) becomes a column data selection signal, that is, a column decode signal (see FIG. 21 described later).
  • FIG. 19 shows a conventional sense amplifier circuit.
  • the bit line precharge unit is used to set the bit line signal pair (BL and / BL) to the Vdd potential before reading.
  • the same precharge portion also exists in the memory array.
  • the CLK signal becomes Hi
  • the precharge unit is inactivated, and at the same time, the word line (w [0] or w [1]) in the memory array is activated and the bit line signal pair (BL And / BL), data is output (data reading from the memory cell).
  • the potential of the bit line signal pair reaches the cross-coupled sense amplifier unit (cross-coupled sense amplifier unit) via the NMOS transmission gate to which the column decode signal is input, and data is amplified here.
  • FIG. 20 shows operation waveforms (lower stage) and power consumption (upper stage) of a conventional sense amplifier circuit.
  • the sense amplifier circuit of the invention is configured as shown in FIG.
  • the operation from the memory array to the cross-coupled sense amplifier unit is the same as the conventional one, but a Domino RSL multiplexer RSL_MUX is used instead of the RS flip-flop.
  • 0 and 1 described in the Domino RSL multiplexer RSL_MUX shown in FIG. 21A indicate input terminals.
  • Bit lines BL and / BL are connected to input terminals 1 and 0 through inverters, respectively.
  • the inverted signal of BL (the / BL signal, that is, the inverted data of cell data) is used.
  • Logic is propagated to the output buffer and output to DOUT. Note that this circuit is designed completely symmetrically on the BL side and / BL side from the memory array to DOUT.
  • a feature of the present invention is that a memory cell uses cells having complementary input / output lines BL and / BL lines, and row and column decoders use two types of domino RSLs in place of AND gates in the address decoding circuit.
  • FIGS. 12, 15, and 21 are examples of an address predecoder, word line driver, and sense amplifier circuit to which a Domino RSL circuit is applied, and are not limited to these.
  • a circuit having a similar function can be configured by replacing an NMOS transistor and a PMOS transistor with each other.
  • 23 to 25 are circuit diagrams showing examples of domino RSL circuits in which the NMOS transistor and the PMOS transistor are replaced in FIGS. 12B, 15B, and 21B, respectively.
  • FIGS. 23 to 25 are circuits having the same functions as those of the circuits of FIGS. 12B, 15B, and 21B, but having the same functions as those of FIGS. 12B, 15B, and 21B. It can be used in place of each circuit of (b) and FIG. 21 (b).
  • 23 to 25 the reference numerals corresponding to the elements in FIG. 12B, FIG. 15B, and FIG. 21B are denoted by “′”. Yes.
  • circuits other than the memory array and the input / output driver can be implemented other than the Domino RSL as long as the circuit system can uniformize the transition probability of the signal line using random numbers.
  • a scheme is also possible.
  • the random number R may be generated using a known random number generation circuit, but in order to further improve tamper resistance, it is desirable to employ a random number generation circuit described below.
  • the most commonly used random number generating circuit is a linear feedback shift register (LFSR) type pseudo random number generator shown in FIG.
  • LFSR linear feedback shift register
  • This random number generator is composed of 16 shift registers SR and 3 EXOR gates, and the operation thereof is well known, so that the description thereof is omitted.
  • the linear feedback shift register type pseudo-random number generator (16-bit LFSR) shown in FIG. 26 the same data string having 65535 data strings as one cycle is generated. If this data string has the same initial value of 16-bit data, the same random number sequence is generated in all chips. In the unlikely event that a cryptographic circuit with the same design is investigated and the random number generation circuit information of this secure memory is stolen, it is not impossible to correct the power consumption value based on the random number value and perform a DPA attack. .
  • FIG. 27 is called a PUF (Physically Unclonable ⁇ Function) circuit that uses the performance variation of the transistor at the time of chip manufacture.
  • the principle of this circuit is described in Non-Patent Document 5 (Jae W Lee, et. Al. “A Technique to Build a). Secret Key in Integrated Circuits for Identification and Authentication Applications ”, 2004 Symposium on VLSI Circuits, pp.176-179).
  • N-stage selector circuits are cascaded in two columns, and a rising edge signal is propagated using two types of paths according to a challenge (selection signal) given from the outside.
  • the same 1-bit challenge signal is input to two selectors corresponding to the upper and lower sides. Therefore, signals propagated to the end without interruption in the middle take two paths that do not overlap each other.
  • the signals of these two types of paths should be output at the same timing, but an arrival time difference ⁇ t is generated due to manufacturing variations of the transistors constituting each selector.
  • the arrival time difference of the rising edge is detected, and when the upper output signal arrives early ( ⁇ t> 0), data 1 is obtained, and when the lower output signal arrives early ( ⁇ t ⁇ 0). Outputs data 0 as a response.
  • the output of the arbiter circuit changes randomly reflecting manufacturing variations by switching the upper and lower paths by changing the input value of the multiplexer.
  • This arbiter circuit is an important circuit for detecting a minute time difference, but non-patent document 5 does not disclose an internal circuit.
  • This circuit is characterized in that, as an arbiter circuit, the sense amplifier is operated using the rising edge on the side that has arrived first as a trigger signal.
  • As an output (response) of the arbiter circuit either OUT1 or OUT2 in FIG. 28A may be used.
  • the inverter may not be provided. However, since it is desirable that the PMOS gate node for operating the sense amplifier is set to Lo as soon as either IN1 or IN2 becomes Hi, the capacitive load needs to be minimized. Therefore, it is desirable that the external outputs OUT1 and OUT2 are output via an inverter.
  • FIG. 29 shows an example of a circuit that can generate different random numbers for each chip using such a PUF circuit.
  • the PUF circuit circuit of FIG. 27
  • the outputs of the shift registers constituting the 16-bit LFSR pseudo random number generation circuit are connected.
  • the exclusive OR of the response of the PUF circuit obtained as a result and the output of the LFSR pseudo random number generation circuit is calculated, and the result is set as a random number R used in the secure memory. Reflecting the fact that the number of 1 and 0 is almost the same, the output of the LFSR pseudorandom number generator is almost the same as 1 and 0, and the bias of the power consumption is eliminated, and the output of the PUF circuit is the chip. Different for each.
  • the random number generation circuit using the manufacturing variation for each chip according to the present invention, it is possible to invalidate the DPA attack performed by estimating the regular pseudorandom number data.
  • the output of the PUF may be directly used as the random number R.
  • the 1/0 appearance rate of PUF tends to be biased depending on the layout of the arbiter circuit (parasitic capacitance of the node), but in order to design it to be 50%, an additional circuit for tuning is used as shown in FIG. It is possible to cope with this by providing it in the circuit.
  • random number generation circuit described above is not limited to the application to the encryption circuit, but can be used for all applications (such as Monte Carlo simulation) that require irregular random numbers as much as possible in LSI circuit applications.
  • a tamper-resistant memory integrated circuit that is resistant to DPA attacks, in particular, a tamper-resistant memory integrated circuit that can solve the problems of an ASIC design flow using a Domino RSL gate and can easily design an integrated circuit.
  • an encryption circuit using the same as a secure memory for example, an encryption circuit in which an S-Box is mounted on an LSI
  • Tr1 to Tr24, Tr1 ′ to Tr24 ′ Transistors Inv1 to Inv3, Inv1 ′ to Inv3 ′ Inverter BL, / BL Bit line w Word lines OUT1 to OUT3, DOUT Output terminals (output signals)
  • Address data a [0] to a [3], / a [0] to / a [3], b [0] to b [3], / b [0] to / b [3]

Abstract

 ロウデコーダ、コラムデコーダ、及びセンスアンプをドミノRSL回路によって構成し、メモリセルアレイ内の各メモリセルに対するデータの読み出し又は書き込みが2本の相補ビット線を介して行われる、暗号回路のS-Boxに使用可能なメモリ集積回路に、アービター回路を用いた乱数発生回路から出力された乱数データを入力することによって、信号線の遷移確率が均一化される回路を構成する。

Description

耐タンパ性メモリ集積回路およびそれを利用した暗号回路
 本発明は、暗号アルゴリズムを実現する半導体デバイスに関し、特に、半導体デバイス内で処理される秘密情報(主として暗号鍵)を、半導体デバイスの消費電力、および消費電力に依存する輻射電磁波などのサイドチャネル情報を用いて、窃取する攻撃に対しての対抗措置を備えた耐タンパ性メモリ集積回路およびそれを利用した暗号回路に関する。
 近年、ICカードのように、LSIを利用して金銭情報や個人情報を保管するシステムが社会基盤として広く普及しており、このようなセキュリティLSIの信頼性・安全性保証の重要性はきわめて高い。セキュリティLSIにおいては、内部に搭載する暗号回路を用いて機密情報を守秘しており、暗号回路鍵の情報を外部に漏えいさせないことが必須となる。3DES(Triple Data Encryption Standard)やAES(Advanced Encryption Standard)といった現代暗号では、入出力となっている平文―暗号文のペアを入手し、最高速のコンピュータを駆使しても、現実的な時間内では暗号鍵を特定できないような暗号アルゴリズムが採用されており、安全性が確認されている。
 これ以外の暗号鍵の窃取方法として、暗号アルゴリズム実行時の半導体デバイスの消費電力、および消費電力に依存する輻射電磁波などのサイドチャネル情報を用いて、暗号鍵を特定する手法が、脅威とされている。このようなサイドチャネル攻撃の中で、差分電力攻撃(DPA:Differential Power Analysis)は1999年にP. Kocherによって発表された攻撃手法であり、下記非特許文献1(Paul Kocher, Joshua Jaffe, and Benjamin Jun,“Differential Power Analysis”, Advances in Cryptography- Proceedings of CRYPTO’99, Springer-Verlag, August 1999, pp.388-397、)に開示された方法が最も強力な攻撃であるとされている。これは、暗号デバイス動作時の信号値または信号遷移頻度と、消費電力との間には相関関係があることを利用している。このことを、図1の(a)に示した2入力ANDゲートを用いて具体的に説明する。2入力ANDゲートの入力の遷移は、遷移前をA1、B1、遷移後をA2、B2と書くと、図1の(b)に示すように16通りの組み合わせが存在する。遷移前のA端子の入力(A1)の状態が機密情報(「注目ビット」で示す)であり、B端子はランダムに遷移すると仮定すると、A1=0(図1(b)の上側8行を参照)の時の出力遷移確率は2/8=1/4であるのに対して、A1=1(図1(b)の下側8行を参照)の時の出力遷移確率は4/8=1/2である。図1(b)における斜線部分が、出力が遷移する場合を示す。従って遷移前のA端子の入力すなわちA1のデータと消費電力とには相関がある。暗号デバイスにおいて、機密情報である暗号鍵データはデバイス内部の電気信号として伝搬されることから、暗号デバイス動作時の消費電力を統計処理することで、機密情報である暗号鍵を特定することができる。本例ではANDゲートの例を示したが、ORゲートでも、NAND、NORゲートでも非線形ゲートの場合には同じDPA攻撃が可能である。
 このDPA攻撃に対する対抗措置としては、第1に暗号デバイスの電気信号値と暗号情報に相関を無くす対策、第2に暗号デバイスの信号値に関わらずデバイスが一定の電力を消費するような対策が提案されている。
 前者の対策例としては、下記特許文献1(特開2000-066585号公報)に開示されているように、共通鍵ブロック暗号DESに対して、そのアルゴリズムで使用されるS-Boxと呼ばれる置換テーブルの入力値を、乱数パラメータRによって一定の規則の下に変化させ、変化させた入力に対して、正規アルゴリズムと同じ出力演算結果を得るために規則ごとに異なったS-Box置換テーブルを用いて演算を行う方法が提案されている。乱数Rに依存して異なったS-Box演算が行われるため、同一の入力値、同一の暗号鍵に対しても異なった消費電力となるので、暗号鍵と消費電力との相関関係が得られなくなる。この他に、下記特許文献2(特表2002-519722号公報)に開示された方法も類似の対抗措置であり、乱数パラメータRを利用して、演算前に通常のS-Box置換テーブルと異なるテーブルを用意して処理を行う点は共通である。これらの暗号演算処理はCPU(Central Processing Unit)とCPUから参照できるメモリとから構成されたハードウエアを用いてソフトウエアで処理することが一般的であり、後述のハードウエアを用いた手法と比較して暗号処理演算時間が長く、処理速度が遅くなるという欠点がある。
 後者の対策例としては、下記特許文献3(国際特許出願公開WO2006-006199号パンフレット)に開示されている手法がある。特許文献3中の図12、13のDES暗号用S-Boxの構成例で示されるように、共通鍵暗号に用いられるS-Boxテーブルは、ANDゲートやORゲートなどの非線形ゲートと否定論理を用いた組み合わせ論理回路を用いて実現することが可能である。
 このうち、非線形ゲートは、上記したように入力データ値に依存して出力の遷移確率が異なるため、出力の遷移確率に比例する消費電力も入力データ値に依存するという特徴を持つ。図1に示した2入力ANDゲートの例では、入力Aが0の時の出力遷移確率は1/4であり、入力Aが1の時の出力遷移確率は1/2となる。このため入力Aが固定され、入力Bがランダムに変化しているときのデバイスの消費電力を計測すれば入力Aが1か0かを推定することが可能となる。したがってAに機密情報に関連したビット情報が入力されている場合には、消費電力を用いてこれを推定することが可能となる。
 このような、非線形ゲートに内在する消費電力の均一化対策としては、下記非特許文献2(K.Tiri and Ingrid Verbauwhede,“A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation”, Design Automation and Test in Europe Conference, pp.246-251 (2004))に開示されている、図2の(a)に示すような相補的な動作を行うゲートを使用したプリチャージ付き2線相補ロジックがある。論理ゲート間の信号伝搬は2線の相補信号を用い、出力ノードを論理演算開始前に必ず初期化(論理0とする)ことにより、演算時は相補信号のどちらかが必ず遷移することとなり、どのような演算を行ったとしても信号線の遷移確率は一定となる。図2の(b)に示す遷移テーブルでは、最下行が初期化(/prch=0即ちprch=1)を表しており、このとき出力Z、/Zは共に0である。その後、どのような入力パターンであっても、出力Z、/Zのどちらかが必ず遷移することが分かる。
 しかしながら、一定の消費電力を保証するためには、Aと/A、Zと/Zといった相補信号を伝搬する信号線の寄生容量を完全に同一にする必要があり、LSIレイアウト設計上の観点からは極めて難しく、またゲートおよび配線が増加するため実装面積が3倍以上になる点が実用上の問題点となっている。
 これに対して、特許文献3に示されている「RSL(Random Switching Logic)ゲート」は、乱数を用いてゲートの遷移確率を均一化する手法を採用することにより1線式で消費電力の均一化を達成している。図3の(a)は特許文献3に示されているRSL方式を用いたNANDゲートである。(a)の回路は、(b)に示すように、乱数rが0の場合はNANDゲートとして、乱数rが1の場合はNORゲートとして機能する。演算前には/en信号は1とされ、出力z=0となり、前述の2線相補ロジックと同様のプリチャージが行われる。プリチャージ状態からのNANDゲートの出力遷移確率は25%、NORゲートの出力遷移確率は75%なので、乱数rが確率50%で1と0の間を遷移すれば、出力ノードは確率50%で遷移する。したがって、暗号デバイスの信号値に関わらずデバイスが一定の電力を消費することとなり、DPA対策となる。また、この状態では所望の演算結果が得られないという問題があるが、図4に示すように目的とする組合せ論理回路の前段および後段において、RSL方式で使用するのと同じ乱数rを用いてEXOR演算を行うと、組合せ論理回路内で正論理と負論理を切り替えることとなり、所望の演算を実行することができる。EXOR演算部は遷移確率50%の線形回路であるため、DPA攻撃の対象とはならない。
 DPA攻撃に対する完全な耐性を得るためには、論理回路においてハザード(配線遅延や素子遅延のために瞬間的に生じる信号値の変化)が発生しないことを保証しなければならない。このため/en端子は入力信号x、yの値の入力決定後に1から0に遷移しなければならない(図5の(a)参照。図5の(a)は図3の(a)と同じ回路である)。また、/en端子は0から1に遷移する際には、前段から0にリセットされたデータが到達する前に実行しなければならない。このために図5の(b)に示すような非同期信号回路(破線領域)の実装と制御が必要とされている。なお、図5(b)において、TGはタイミングジェネレータ、TCはタイミングコントローラである。LSIにおいては、トランジスタは電源電圧や環境温度によって駆動能力が大きく変化するため、正確に時間を制御しなければならない非同期信号回路の実装は困難である。
 上記の問題点を解決したものが、下記非特許文献3(豊田善靖、木戸健太、下林義明、藤野毅、「暗号回路の電力差分解析攻撃に対して耐性があるドミノ型RSL回路の提案」、電子情報通信学会技術報告VLD2007-77)で提案されたドミノRSL方式である。図6の(a)にドミノ型RSL方式AND/ORゲートを示す。本方式は、RSL方式と同様に乱数rを用いてANDゲートとORゲートが切り替わる(図6の(b)参照)ことからDPA耐性が保証される。かつ、入力X、Yが0であるとき出力Zが0になる論理を使用するドミノ方式を使用しているために、出力は1回しか変化することなく本質的にハザードが発生しない。このため、RSL方式で実装が困難であった/en信号の非同期タイミング制御が不要となる特長がある。また、RSL回路と比較するとトランジスタ数が少なく1ゲートあたりの面積が小さいという特長もある。本ドミノRSL回路を用いたDES暗号回路がDPA耐性を持つことは、下記非特許文献4(奥山一樹、小島憲司、岩井克彦、藤野毅、「Domino-RSL方式を用いてFPGA実装された暗号回路に対するDPA耐性検証」、暗号と情報セキュリティーシンポジウム(SCIS2010)、2010年1月)にて報告されている。
 図7にドミノRSL方式を用いて設計したDES暗号回路の回路ブロック図を示す。ドミノRSL方式を適用しなければならないのは、非線形ゲートが必要なS-Box回路だけである。DES暗号回路におけるS-Box回路は6入力4出力のテーブルであり、8種類のテーブルが使われるため、8種類のS-Box(S-Box1~S-Box8)を示している。S-Boxは6入力4出力のテーブルをハードウエア記述言語で記載し、否定論理を含まない論理合成が可能なツール(カリフォルニア大学バークレー校:UC Berkleyが配布しているSIS論理合成ツール)を用いてドミノRSLゲートを含むネットリストに変換できる。なお、回路中にRと記載されたEXORゲートは、DFFの遷移を利用したハミングディスタンス型のDPA攻撃に対するランダムマスク対策として導入されている。
特開2000-066585号公報 特表2002-519722号公報 国際特許出願公開WO2006-006199号パンフレット
Paul Kocher, Joshua Jaffe, and Benjamin Jun,"Differential Power Analysis", Advances in Cryptography- Proceedings of CRYPTO’99, Springer-Verlag, August 1999, pp.388-397 K.Tiri and Ingrid Verbauwhede,"A Logic Level Design Methodology for a Secure DPA Resistant ASIC or FPGA Implementation", Design Automation and Test in Europe Conference, pp.246-251 (2004) 豊田善靖、木戸健太、下林義明、藤野毅、「暗号回路の電力差分解析攻撃に対して耐性があるドミノ型RSL回路の提案」、電子情報通信学会技術報告VLD2007-77 奥山一樹、小島憲司、岩井克彦、藤野毅、「Domino-RSL方式を用いてFPGA実装された暗号回路に対するDPA耐性検証」、暗号と情報セキュリティーシンポジウム(SCIS2010)、2010年1月 Jae W Lee, et. al. "A Technique to Build a Secret Key in Integrated Circuits for Identification and Authentication Applications", 2004 Symposium on VLSI Circuits, pp.176-179
 ドミノRSL回路を用いたS-BoxのLSI実装における現実的な問題点は、以下の3点である。
(1)ドミノ方式に対応するためには入力初段以外では否定論理を使用しないようにする論理合成ツールを使用しなければならないが、実用LSI設計において一般的に普及している論理合成ツールであるシノプシス社のデザインコンパイラでは、そのような論理合成をすることができない。
(2)ドミノRSLゲートという一般的なLSI設計ライブラリに含まれないセルを用意して自動配置配線を行わなければならず、本セル用のツールライブラリを作成しなければならない。
(3)ドミノRSLゲートごとに/CLK信号を配線しなければならないため、/CLK信号線負荷が大きくクロック設計が困難である。
 本発明は、DPA攻撃に強い耐タンパ性メモリ集積回路、特に、上記のようなドミノRSLゲートを用いたASIC設計フローの問題点を解決でき、容易に集積回路設計を可能にできる耐タンパ性メモリ集積回路、及び、それをハードウエアコア(以降「セキュアメモリ」と呼ぶ)として用いた暗号回路(例えばS-BoxをLSI実装した暗号回路)を提供することを目的とする。
 例えば、DES暗号回路のS-BOX1個を実装するのに必要な6入力4出力のテーブルは6ビットのアドレス線と4ビットのデータ線を持つ2×4=256ビットのセキュアメモリとして実現できる。本発明のセキュアメモリでは、DPA耐性を持たせるために、メモリの周辺回路部は、例えばドミノRSL方式を用いて設計を行う。このため、通常のメモリとしての6本のアドレス線およびデータ線およびクロック(CLK)以外に、ドミノRSL回路に対応した乱数Rを入力制御線として備える点が大きく異なる特徴点である。
 以下において、括弧を付して符号を記載するが、これは、発明の理解を容易にするためであり、発明を限定することを意図していない。
 上記した課題を解決するために、本発明に係る第1のメモリ集積回路は、メモリセルアレイ、ロウデコーダ、コラムデコーダ、センスアンプ、及び入出力ドライバを備えたメモリ集積回路であって、
 前記メモリセルアレイ内の各メモリセルに対するデータの読み出し又は書き込みが2本の相補ビット線を介して行われ、
 前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、外部から入力される乱数データによって信号線の遷移確率が均一化される回路で構成されている。
 本発明に係る第2のメモリ集積回路は、上記の第1のメモリ集積回路において、前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、ドミノRSL回路を備えて構成されている。
 本発明に係る第3のメモリ集積回路は、上記の第2のメモリ集積回路において、
 前記ロウデコーダが、第1プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
 前記第1プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第1インバータ(図12(a)のインバータ)と、複数の第1ドミノRSLゲート(RSL_AND)とを備え、
 前記第1ドミノRSLゲート(RSL_AND)が、第1~第8トランジスタ(Tr1~Tr8)及び第2インバータ(Inv1)を備え、
 第1及び第5トランジスタがPMOSトランジスタであり、
 第2~第4及び第6~第8トランジスタがNMOSトランジスタであり、
 前記第1~第4トランジスタ(Tr1~Tr4)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第1~第4トランジスタ(Tr1~Tr4)の一方の端部に位置する前記第1トランジスタ(Tr1)のソースに電源電圧(Vdd)が印加され、
 直列に接続された前記第1~第4トランジスタ(Tr1~Tr4)の他方の端部に位置する前記第4トランジスタ(Tr4)のソースに接地電圧(Gnd)が印加され、
 前記第1トランジスタ(Tr1)及び前記第4トランジスタ(Tr4)のゲートにクロック(CLK)が入力され、
 前記第5トランジスタ(Tr5)のソースに電源電圧が印加され、
 前記第6及び第7トランジスタ(Tr6、Tr7)が並列に接続され、
 前記第6及び第7トランジスタ(Tr6、Tr7)の接続ノードの一方に、前記第5トランジスタ(Tr5)のドレインが接続され、
 前記第6及び第7トランジスタ(Tr6、Tr7)の接続ノードの他方に、前記第8トランジスタ(Tr8)のドレインが接続され、
 前記第8トランジスタ(Tr8)のソースが、前記第3及び第4トランジスタ(Tr3、Tr4)の接続ノードに接続され、
 前記第1及び第2トランジスタ(Tr1、Tr2)の接続ノードと前記第5~第7トランジスタ(Tr5~Tr7)の接続ノードとが接続されて、第1出力ノードを形成し、
 前記第1出力ノードが、前記第2インバータ(Inv1)を介して前記第5トランジスタ(Tr5)のゲートに接続され、
 前記第2トランジスタ(Tr2)及び前記第6トランジスタ(Tr6)のゲートに、前記アドレスデータを構成する1ビットデータ(A[2]~A[3])又は前記第1インバータの出力データが入力され、
 前記第3トランジスタ(Tr3)及び前記第7トランジスタ(Tr7)のゲートに、前記第2トランジスタ(Tr2)及び前記第6トランジスタ(Tr6)のゲートに入力されるデータとは異なる、前記アドレスデータを構成する1ビットデータ(A[2]~A[3])又は前記第1インバータの出力データが入力され、
 前記第8トランジスタ(Tr8)のゲートに、前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第4のメモリ集積回路は、上記の第2のメモリ集積回路において、
 前記ロウデコーダが、第1プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
 前記第1プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第1インバータ(図12(a)のインバータ)と、複数の第1ドミノRSLゲート(RSL_AND)とを備え、
 前記第1ドミノRSLゲート(RSL_AND)が、第1~第8トランジスタ(Tr1’~Tr8’)及び第2インバータ(Inv1’)を備え、
 第1及び第5トランジスタがNMOSトランジスタであり、
 第2~第4及び第6~第8トランジスタがPMOSトランジスタであり、
 前記第1~第4トランジスタ(Tr1’~Tr4’)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第1~第4トランジスタ(Tr1’~Tr4’)の一方の端部に位置する前記第1トランジスタ(Tr1’)のソースに接地電圧(Gnd)が印加され、
 直列に接続された前記第1~第4トランジスタ(Tr1’~Tr4’)の他方の端部に位置する前記第4トランジスタ(Tr4’)のソースに電源電圧(Vdd)が印加され、
 前記第1トランジスタ(Tr1’)及び前記第4トランジスタ(Tr4’)のゲートにクロック(CLK)が入力され、
 前記第5トランジスタ(Tr5’)のソースに接地電圧が印加され、
 前記第6及び第7トランジスタ(Tr6’、Tr7’)が並列に接続され、
 前記第6及び第7トランジスタ(Tr6’、Tr7’)の接続ノードの一方に、前記第5トランジスタ(Tr5’)のドレインが接続され、
 前記第6及び第7トランジスタ(Tr6’、Tr7’)の接続ノードの他方に、前記第8トランジスタ(Tr8’)のドレインが接続され、
 前記第8トランジスタ(Tr8’)のソースが、前記第3及び第4トランジスタ(Tr3’、Tr4’)の接続ノードに接続され、
 前記第1及び第2トランジスタ(Tr1’、Tr2’)の接続ノードと前記第5~第7トランジスタ(Tr5’~Tr7’)の接続ノードとが接続されて、第1出力ノードを形成し、
 前記第1出力ノードが、前記第2インバータ(Inv1’)を介して前記第5トランジスタ(Tr5’)のゲートに接続され、
 前記第2トランジスタ(Tr2’)及び前記第6トランジスタ(Tr6’)のゲートに、前記アドレスデータを構成する1ビットデータ(A[2]~A[3])又は前記第1インバータの出力データが入力され、
 前記第3トランジスタ(Tr3’)及び前記第7トランジスタ(Tr7’)のゲートに、前記第2トランジスタ(Tr2’)及び前記第6トランジスタ(Tr6’)のゲートに入力されるデータとは異なる、前記アドレスデータを構成する1ビットデータ(A[2]~A[3])又は前記第1インバータの出力データが入力され、
 前記第8トランジスタ(Tr8’)のゲートに、前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第5のメモリ集積回路は、上記の第3又は第4のメモリ集積回路において、
 前記ワード線ドライバが複数の第2ドミノRSLゲート(RSL_WDrive)を備え、
 前記第2ドミノRSLゲート(RSL_WDrive)が、第9~第17トランジスタ(Tr9~Tr17)及び第3インバータ(Inv2)を備え、
 第9及び第14トランジスタがPMOSトランジスタであり、
 第10~第13及び第15~第17トランジスタがNMOSトランジスタであり、
 前記第9~第13トランジスタ(Tr9~Tr13)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第9~第13トランジスタ(Tr9~Tr13)の一方の端部に位置する前記第9トランジスタ(Tr9)のソースに電源電圧が印加され、
 直列に接続された前記第9~第13トランジスタ(Tr9~Tr13)の他方の端部に位置する前記第13トランジスタ(Tr13)のソースに接地電圧が印加され、
 前記第9トランジスタ(Tr9)及び前記第13トランジスタ(Tr13)のゲートにクロック(CLK)が入力され、
 前記第14~第17トランジスタ(Tr14~Tr17)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第14~第17トランジスタ(Tr14~Tr17)の一方の端部に位置する前記第14トランジスタ(Tr14)のソースに電源電圧が印加され、
 直列に接続された前記第14~第17トランジスタ(Tr14~Tr17)の他方の端部に位置する前記第17トランジスタ(Tr17)のソースが、前記第13トランジスタ(Tr13)のドレインに接続され、
 前記第9及び第10トランジスタ(Tr9、Tr10)の接続ノードと前記第14及び第15トランジスタ(Tr14、Tr15)の接続ノードとが接続されて第2出力ノードを形成し、
 前記第2出力ノードが、前記第3インバータ(Inv2)を介して前記第14トランジスタ(Tr14)のゲートに接続され、
 前記第10及び第11トランジスタ(Tr10、Tr11)の各々のゲート(IN3、IN4)に、重複すること無く前記第1ドミノRSLゲートの出力信号(a[0]~a[3]、b[0]~b[3])が入力され、
 前記第15トランジスタ(Tr15)のゲートに、前記第10トランジスタ(Tr10)のゲートに入力される信号(IN3)の反転信号(/IN3)が入力され、
 前記第16トランジスタ(Tr16)のゲートに、前記第11トランジスタ(Tr11)のゲートに入力される信号(IN4)の反転信号(/IN4)が入力され、
 前記第12及び第17トランジスタ(Tr12、Tr17)の各々に、重複すること無く前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第6のメモリ集積回路は、上記の第3又は第4のメモリ集積回路において、
 前記ワード線ドライバが複数の第2ドミノRSLゲート(RSL_WDrive)を備え、
 前記第2ドミノRSLゲート(RSL_WDrive)が、第9~第17トランジスタ(Tr9’~Tr17’)及び第3インバータ(Inv2’)を備え、
 第9及び第14トランジスタがNMOSトランジスタであり、
 第10~第13及び第15~第17トランジスタがPMOSトランジスタであり、
 前記第9~第13トランジスタ(Tr9’~Tr13’)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第9~第13トランジスタ(Tr9’~Tr13’)の一方の端部に位置する前記第9トランジスタ(Tr9’)のソースに接地電圧が印加され、
 直列に接続された前記第9~第13トランジスタ(Tr9’~Tr13’)の他方の端部に位置する前記第13トランジスタ(Tr13’)のソースに電源電圧が印加され、
 前記第9トランジスタ(Tr9’)及び前記第13トランジスタ(Tr13’)のゲートにクロック(CLK)が入力され、
 前記第14~第17トランジスタ(Tr14’~Tr17’)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第14~第17トランジスタ(Tr14’~Tr17’)の一方の端部に位置する前記第14トランジスタ(Tr14’)のソースに接地電圧が印加され、
 直列に接続された前記第14~第17トランジスタ(Tr14’~Tr17’)の他方の端部に位置する前記第17トランジスタ(Tr17’)のソースが、前記第13トランジスタ(Tr13’)のドレインに接続され、
 前記第9及び第10トランジスタ(Tr9’、Tr10’)の接続ノードと前記第14及び第15トランジスタ(Tr14’、Tr15’)の接続ノードとが接続されて第2出力ノードを形成し、
 前記第2出力ノードが、前記第3インバータ(Inv2’)を介して前記第14トランジスタ(Tr14’)のゲートに接続され、
 前記第10及び第11トランジスタ(Tr10’、Tr11’)の各々のゲート(IN3、IN4)に、重複すること無く前記第1ドミノRSLゲートの出力信号(a[0]~a[3]、b[0]~b[3])が入力され、
 前記第15トランジスタ(Tr15’)のゲートに、前記第10トランジスタ(Tr10’)のゲートに入力される信号(IN3)の反転信号(/IN3)が入力され、
 前記第16トランジスタ(Tr16’)のゲートに、前記第11トランジスタ(Tr11’)のゲートに入力される信号(IN4)の反転信号(/IN4)が入力され、
 前記第12及び第17トランジスタ(Tr12’、Tr17’)の各々に、重複すること無く前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第7のメモリ集積回路は、上記の第3~第6のメモリ集積回路の何れかにおいて、
 前記センスアンプが、前記相補ビット線(BL、/BL)に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノRSLマルチプレクサ(RSL_MUX)とを備え、
 前記ドミノRSLマルチプレクサが、第18~第24トランジスタ(Tr18~Tr24)及び第4インバータ(Inv3’)を備え、
 第18及び第22トランジスタがPMOSトランジスタであり、
 第19~第21、第23、及び第24トランジスタがNMOSトランジスタであり、
 前記第18~第21トランジスタ(Tr18~Tr21)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第18~第21トランジスタ(Tr18~Tr21)の一方の端部に位置する前記第18トランジスタ(Tr18)のソースに電源電圧が印加され、
 直列に接続された前記第18~第21トランジスタ(Tr18~Tr21)の他方の端部に位置する前記第21トランジスタ(Tr21)のソースに接地電圧が印加され、
 前記第18トランジスタ(Tr18)及び前記第21トランジスタ(Tr21)のゲートにクロック(CLK)が入力され、
 前記第22~第24トランジスタ(Tr22~Tr24)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第22~第24トランジスタ(Tr22~Tr24)の一方の端部に位置する前記第22トランジスタ(Tr22)のソースに電源電圧が印加され、
 直列に接続された前記第22~第24トランジスタ(Tr22~Tr24)の他方の端部に位置する前記第24トランジスタ(Tr24)のソースが、前記第21トランジスタ(Tr21)のドレインに接続され、
 前記第18及び第19トランジスタ(Tr18、Tr19)の接続ノードと前記第22及び第23トランジスタ(Tr22、Tr23)の接続ノードとが接続されて第3出力ノードを形成し、
 前記第3出力ノードが、前記第4インバータ(Inv3)を介して前記第22トランジスタ(Tr22)のゲートに接続され、
 前記第19及び第23トランジスタ(Tr19、Tr23)の各々のゲートに、重複すること無く前記相補ビット線(BL、/BL)からの信号が入力され、
 前記第20及び第24トランジスタ(Tr20、Tr24)の各々のゲートに、前記乱数データ(R)又は前記乱数データの反転データが入力される。
 本発明に係る第8のメモリ集積回路は、上記の第3~第6のメモリ集積回路の何れかにおいて、
 前記センスアンプが、前記相補ビット線(BL、/BL)に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノRSLマルチプレクサ(RSL_MUX)とを備え、
 前記ドミノRSLマルチプレクサが、第18~第24トランジスタ(Tr18’~Tr24’)及び第4インバータ(Inv3’)を備え、
 第18及び第22トランジスタがNMOSトランジスタであり、
 第19~第21、第23、及び第24トランジスタがPMOSトランジスタであり、
 前記第18~第21トランジスタ(Tr18’~Tr21’)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第18~第21トランジスタ(Tr18’~Tr21’)の一方の端部に位置する前記第18トランジスタ(Tr18’)のソースに接地電圧が印加され、
 直列に接続された前記第18~第21トランジスタ(Tr18’~Tr21’)の他方の端部に位置する前記第21トランジスタ(Tr21’)のソースに電源電圧が印加され、
 前記第18トランジスタ(Tr18’)及び前記第21トランジスタ(Tr21’)のゲートにクロック(CLK)が入力され、
 前記第22~第24トランジスタ(Tr22’~Tr24’)が、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第22~第24トランジスタ(Tr22’~Tr24’)の一方の端部に位置する前記第22トランジスタ(Tr22’)のソースに接地電圧が印加され、
 直列に接続された前記第22~第24トランジスタ(Tr22’~Tr24’)の他方の端部に位置する前記第24トランジスタ(Tr24’)のソースが、前記第21トランジスタ(Tr21’)のドレインに接続され、
 前記第18及び第19トランジスタ(Tr18’、Tr19’)の接続ノードと前記第22及び第23トランジスタ(Tr22’、Tr23’)の接続ノードとが接続されて第3出力ノードを形成し、
 前記第3出力ノードが、前記第4インバータ(Inv3’)を介して前記第22トランジスタ(Tr22’)のゲートに接続され、
 前記第19及び第23トランジスタ(Tr19’、Tr23’)の各々のゲートに、重複すること無く前記相補ビット線(BL、/BL)からの信号が入力され、
 前記第20及び第24トランジスタ(Tr20’、Tr24’)の各々のゲートに、前記乱数データ(R)又は前記乱数データの反転データが入力される。
 本発明に係る第9のメモリ集積回路は、上記の第3~第8のメモリ集積回路の何れかにおいて、
 前記コラムデコーダが、第2プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
 前記第2プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第1プリデコーダに入力されないビットデータを反転させる第5インバータと、第3ドミノRSLゲート(RSL_AND)とを備え、
 前記第3ドミノRSLゲートが、第25~第32トランジスタ及び第6インバータを備え、
 第25及び第29トランジスタがPMOSトランジスタであり、
 第26~第28及び第30~第32トランジスタがNMOSトランジスタであり、
 前記第25~第32トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第25~第28トランジスタの一方の端部に位置する前記第25トランジスタのソースに電源電圧が印加され、
 直列に接続された前記第25~第28トランジスタの他方の端部に位置する前記第28トランジスタのソースに接地電圧が印加され、
 前記第25トランジスタ及び前記第28トランジスタのゲートにクロックが入力され、
 前記第29トランジスタのソースに電源電圧が印加され、
 前記第30及び第31トランジスタが並列に接続され、
 前記第30及び第31トランジスタの接続ノードの一方に、前記第29トランジスタのドレインが接続され、
 前記第30及び第31トランジスタの接続ノードの他方に、前記第32トランジスタのドレインが接続され、
 前記第32トランジスタのソースが、前記第27及び第28トランジスタの接続ノードに接続され、
 前記第25及び第26トランジスタの接続ノードと前記第29~第31トランジスタの接続ノードとが接続されて、第4出力ノードを形成し、
 前記第4出力ノードが、前記第6インバータを介して前記第29トランジスタのゲートに接続され、
 前記第26トランジスタ及び第30トランジスタのゲートに、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
 前記第27トランジスタ及び前記第31トランジスタのゲートに、前記第26トランジスタ及び前記第30トランジスタのゲートに入力されるデータとは異なる、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
 前記第32トランジスタのゲートに、前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第10のメモリ集積回路は、上記の第3~第8のメモリ集積回路の何れかにおいて、
 前記コラムデコーダが、第2プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
 前記第2プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第1プリデコーダに入力されないビットデータを反転させる第5インバータと、第3ドミノRSLゲート(RSL_AND)とを備え、
 前記第3ドミノRSLゲートが、第25~第32トランジスタ及び第6インバータを備え、
 第25及び第29トランジスタがNMOSトランジスタであり、
 第26~第28及び第30~第32トランジスタがPMOSトランジスタであり、
 前記第25~第32トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第25~第28トランジスタの一方の端部に位置する前記第25トランジスタのソースに接地電圧が印加され、
 直列に接続された前記第25~第28トランジスタの他方の端部に位置する前記第28トランジスタのソースに電源電圧が印加され、
 前記第25トランジスタ及び前記第28トランジスタのゲートにクロックが入力され、
 前記第29トランジスタのソースに接地電圧が印加され、
 前記第30及び第31トランジスタが並列に接続され、
 前記第30及び第31トランジスタの接続ノードの一方に、前記第29トランジスタのドレインが接続され、
 前記第30及び第31トランジスタの接続ノードの他方に、前記第32トランジスタのドレインが接続され、
 前記第32トランジスタのソースが、前記第27及び第28トランジスタの接続ノードに接続され、
 前記第25及び第26トランジスタの接続ノードと前記第29~第31トランジスタの接続ノードとが接続されて、第4出力ノードを形成し、
 前記第4出力ノードが、前記第6インバータを介して前記第29トランジスタのゲートに接続され、
 前記第26トランジスタ及び第30トランジスタのゲートに、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
 前記第27トランジスタ及び前記第31トランジスタのゲートに、前記第26トランジスタ及び前記第30トランジスタのゲートに入力されるデータとは異なる、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
 前記第32トランジスタのゲートに、前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第11のメモリ集積回路は、上記の第9又は第10のメモリ集積回路において、
 前記コラムデコード線ドライバが第4ドミノRSLゲート(RSL_WDrive)を備え、
 前記第4ドミノRSLゲート(RSL_WDrive)が、第33~第41トランジスタ及び第7インバータを備え、
 第33及び第38トランジスタがPMOSトランジスタであり、
 第34~第37及び第39~第41トランジスタがNMOSトランジスタであり、
 前記第33~第37トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第33~第37トランジスタの一方の端部に位置する前記第33トランジスタのソースに電源電圧が印加され、
 直列に接続された前記第33~第37トランジスタの他方の端部に位置する前記第37トランジスタのソースに接地電圧が印加され、
 前記第33トランジスタ及び前記第37トランジスタのゲートにクロック(CLK)が入力され、
 前記第38~第41トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第38~第41トランジスタの一方の端部に位置する前記第38トランジスタのソースに電源電圧が印加され、
 直列に接続された前記第38~第41トランジスタの他方の端部に位置する前記第41トランジスタのソースが、前記第37トランジスタのドレインに接続され、
 前記第33及び第34トランジスタの接続ノードと前記第38及び第39トランジスタの接続ノードとが接続されて、前記第5出力ノードを形成し、
 前記第5出力ノードが、前記第7インバータを介して前記第38トランジスタのゲートに接続され、
 前記第34及び第35トランジスタの各々のゲート(IN3、IN4)に、重複すること無く前記第3ドミノRSLゲートの出力信号が入力され、
 前記第39トランジスタのゲートに、前記第34トランジスタのゲートに入力される信号(IN3)の反転信号(/IN3)が入力され、
 前記第40トランジスタのゲートに、前記第35トランジスタのゲートに入力される信号(IN4)の反転信号(/IN4)が入力され、
 前記第36及び第41トランジスタの各々に、重複すること無く前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第12のメモリ集積回路は、上記の第9又は第10のメモリ集積回路において、
 前記コラムデコード線ドライバが第4ドミノRSLゲート(RSL_WDrive)を備え、
 前記第4ドミノRSLゲート(RSL_WDrive)が、第33~第41トランジスタ及び第7インバータを備え、
 第33及び第38トランジスタがNMOSトランジスタであり、
 第34~第37及び第39~第41トランジスタがPMOSトランジスタであり、
 前記第33~第37トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第33~第37トランジスタの一方の端部に位置する前記第33トランジスタのソースに接地電圧が印加され、
 直列に接続された前記第33~第37トランジスタの他方の端部に位置する前記第37トランジスタのソースに電源電圧が印加され、
 前記第33トランジスタ及び前記第37トランジスタのゲートにクロック(CLK)が入力され、
 前記第38~第41トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
 直列に接続された前記第38~第41トランジスタの一方の端部に位置する前記第38トランジスタのソースに接地電圧が印加され、
 直列に接続された前記第38~第41トランジスタの他方の端部に位置する前記第41トランジスタのソースが、前記第37トランジスタのドレインに接続され、
 前記第33及び第34トランジスタの接続ノードと前記第38及び第39トランジスタの接続ノードとが接続されて、前記第5出力ノードを形成し、
 前記第5出力ノードが、前記第7インバータを介して前記第38トランジスタのゲートに接続され、
 前記第34及び第35トランジスタの各々のゲート(IN3、IN4)に、重複すること無く前記第3ドミノRSLゲートの出力信号が入力され、
 前記第39トランジスタのゲートに、前記第34トランジスタのゲートに入力される信号(IN3)の反転信号(/IN3)が入力され、
 前記第40トランジスタのゲートに、前記第35トランジスタのゲートに入力される信号(IN4)の反転信号(/IN4)が入力され、
 前記第36及び第41トランジスタの各々に、重複すること無く前記乱数データ(R)又は前記乱数データの反転データ(/R)が入力される。
 本発明に係る第1の暗号回路は、上記の第1~第12のメモリ集積回路を備えている。
 本発明に係る乱数発生回路は、
 線形帰還形シフトレジスタと、2列に縦列接続されたN段のセレクタ回路と、アービター回路と、前記線形帰還形シフトレジスタの出力信号及び前記アービター回路の出力信号を排他的論理和演算して乱数を出力する演算ゲートとを備え、
 前記線形帰還形シフトレジスタが、直列に接続されたN個のシフトレジスタと複数の排他的論理和演算子とを備え、
 前記アービター回路が、
 接地電圧と電源電圧との間に直列接続されたクロスカップルセンスアンプ、及び、ソースが相互接続され且つドレインが相互接続された2つのトランジスタで構成されたイネーブルゲートと、
 一方の入力端に第1入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第1センシングノードに接続され、出力端が、前記イネーブルゲートを構成する一方のトランジスタのゲートに接続された第1NANDゲートと、
 一方の入力端に第2入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第2センシングノードに接続され、出力端が、前記イネーブルゲートを構成する他方のトランジスタのゲートに接続された第2NANDゲートとを備え、
 前記シフトレジスタの出力が、選択信号であるチャレンジとして前記セレクタ回路に入力され、
 最終段の2つのセレクタ回路の出力信号が前記第1及び第2入力信号として前記アービター回路に入力され、
 前記第1および第2NANDゲートの出力の一方が、前記アービター回路から前記乱数として出力される。
 本発明に係る第2の暗号回路は、
 上記の第1~第12のメモリ集積回路の何れかと、上記の乱数発生回路とを備え、
 前記乱数発生回路の出力が、前記メモリ集積回路に入力される前記乱数データである。
 本発明に係る第3の暗号回路は、
 DES暗号又はAES暗号用の暗号回路である上記の第1又は第2の暗号回路であって、
 S-Boxが前記メモリ集積回路で構成されている。
 本発明のメモリ集積回路およびそれを利用した暗号回路によれば、耐タンパ性があり、DPA攻撃に強く、信頼性が高い暗号手段を実現することができる。
 また、上記のように、セキュアメモリというドミノRSL方式を用いたハードウエアコアを用いてS-Boxを実現することにより、暗号回路の設計者はドミノRSLゲートを意識することなく、DPA耐性を持った暗号回路を設計することが可能となる。具体的には、暗号回路のS-Box部を除いたブロックを設計し、自動配置配線時にセキュアメモリコアをハードウエアマクロとして配置して暗号回路全体を自動配線することで暗号回路レイアウトが作成できる。したがって、ドミノ回路向けの論理合成ツールやドミノRSLゲートという特殊なセルライブラリを用意する必要がなくなる。さらに、ドミノRSLゲートに必要な/CLK線の負荷も考慮する必要がなくなる。
 また、DES暗号回路では8種類のS-Boxが必要であるが、セキュアメモリ内部のデータを変更するだけで、すべてのS-Boxに対して同一のハードウエアコアを用いることができるという利点も生まれる。旧世代のDES暗号回路に代わる、新しい標準となっているAES暗号回路でも非線形ゲートが使用されているのは、S-Box部だけであり、AESで使用されているS-Boxに対応した8ビット入力8ビット出力のセキュアメモリ(容量は2Kビット)を用意すれば簡単に対応できる。
DPA攻撃の原理を説明する図である。 プリチャージ付相補ロジックを示す図である。 RSL方式NANDゲートを示す回路図である。 RSL方式を用いた演算を示すブロック図である。 RSL方式におけるen信号の非同期制御を説明する回路図である。 ドミノ型RSL方式のAND/ORゲートを示す回路図である。 ドミノRSL回路を用いて実装したDES暗号回路を示す図である。 本発明の実施の形態に係るセキュアメモリの概略構成を示すブロック図である。 メモリセルの例を示す回路図である。 メモリセルアレイの概略構造を示す図である。 従来のプリデコーダを示す図である。 本発明の実施の形態に係るプリデコーダを示す回路図である。 図12に示したプリデコーダの動作波形を示すタイミングチャートである。 従来のワード線ドライバを示す図である。 本発明の実施の形態に係るワード線ドライバを示す回路図である。 図15に示したワード線ドライバの動作波形を示すタイミングチャートである。 アドレスとワード線確認回路を示す回路図である。 図17に示した回路の動作波形を示すタイミングチャートである。 従来のセンスアンプ回路を示す回路図である。 図19に示したセンスアンプ回路の動作及び消費電力を示すタイミングチャートである。 本発明の実施の形態に係るセンスアンプ回路を示す回路図である。 図21に示した回路の動作及び消費電力を示すタイミングチャートである。 図12(b)と置換可能なドミノRSLゲートの一例を示す回路図である。 図15(b)と置換可能なドミノRSLゲートの一例を示す回路図である。 図21(b)と置換可能なドミノRSLマルチプレクサの一例を示す回路図である。 従来の擬似乱数発生器を示す回路図である。 チップの製造ばらつきを使用したPUF回路を示すブロック図である。 アービター回路及びセレクタの一例を示す回路図である。 本発明の実施の形態に係る乱数発生回路を示す回路図である。
 以下、本発明に係る実施の形態を、添付した図面に基づいて説明する。
図8に、本発明の実施の形態に係る耐タンパ性メモリ集積回路(セキュアメモリ)の機能ブロック図を示す。本セキュアメモリは、メモリアレイと、アドレスプリデコーダ及びワード線ドライバから構成されるロウデコーダと、コラムデコーダと、センスアンプと、入出力ドライバとから構成されている。本セキュアメモリは、外部からクロックCLK、アドレスデータA、制御信号/Writeが入力され、メモリアレイ中の対応するメモリセルに対してデータの書込み/読み出しを行う。本セキュアメモリが、通常のメモリと異なる点は、外部の乱数発生器(図示せず)から乱数Rが入力される点である。アドレスAは入力、データDは入出力であり、本セキュアメモリをDES暗号回路のS-Boxとして使用する場合には、図8に示したように、アドレスAが6ビットの入力、データDが4ビットの出力となる。Read/Writeの制御信号/Writeは、メモリがROM(リードオンリーメモリ)の場合には不必要であるが、RAM(ランダムアクセスメモリ)の場合には、S-Boxのテーブルデータを初期値として書き込むために使用するために必要であり、書き込み時のみ/Write=0とする。
 以下に、本セキュアメモリの構成要素に関して具体的に説明する。なお、以下の説明において、本発明の理解を容易にするために、適宜従来技術と対比して説明する。また、セキュアメモリを主としてDES暗号回路のS-Boxとして使用することを想定して説明するが、これに限定されるものではない。
 <メモリアレイ>
 メモリアレイ内部のメモリセルとしては、図9に示すような、スタティックRAM型(a)またはマスクROM型(b)を使用する。図9に示したスタティックRAMは一般的な回路構造であり、ワード線をHiにすることで、相補ビット線データの読み出し、書き込みを行う。マスクROMの場合はS-Boxのテーブル値が1か0であるかによって、LSI製造時のフォトマスクのレイアウトを変化させて、ROMデータを書き込む。一般的にはコンタクトレイアやビアレイアを使用することが多い。一般的なマスクROM(c)では、ビット線は相補構造をしていないが、本発明に係るマスクROM(b)は相補ビット線に対して2つのセルを配置する構造をとらなければならない。これは、ビット線が相補でないと、セルから読み出した値が0か1かによって消費電力に差が生じてしまうためである。逆にビット線を相補形式で読みだすことができるメモリセルであれば、任意のメモリセルを使用することができ、例えば、ダイナミックRAMであっても、強誘電体メモリであっても、磁性体を用いたメモリであってもかまわない。DES用のS-Boxに使用する場合は、6ビットアドレス、4ビット出力の256ビットメモリアレイとなり、図10に示すようにワード線Wが16本、ビット線対(BLと/BL)が16対(32本)ある構造となる。各メモリセルは1本のワード線と1対のビット線に接続される。
 <ロウデコーダ>
 ロウデコーダは4ビットのアドレスをデコードして16本のワード線のうち、1本のワード線を選択して駆動する回路であり、アドレスプリデコーダ(以下、単にプリデコーダとも記す)とワード線ドライバとに大きく分類することができる。
 <プリデコーダ>
 従来の一般的な回路におけるプリデコーダは図11の(a)に示すような回路であり、(b)のテーブルに示したパターンで信号を発生させる。すなわちA[2]、A[3]のアドレス信号の4つの状態をデコードしてa[0]、a[1]、a[2]、a[3]のどれか1つの信号線だけを論理1とする組み合わせ論理回路である。同様に、A[4]、A[5]のアドレス信号からb[0]、b[1]、b[2]、b[3]の信号をプリデコードする。図11(a)に示す従来の回路はNANDゲートを用いており、DPAの原理で説明した図1のANDゲートと同じくNANDゲートは非線形ゲートであるため、DPA攻撃の対象となり得る。
 これに対して本発明では、プリデコーダを図12の(a)に示すようにドミノRSLゲートRSL_ANDを用いて実現する。図12の(b)に、ドミノRSLゲートRSL_ANDの具体的な回路を示す。ドミノRSLゲートRSL_ANDは、図6(a)に示した回路に対して出力駆動用のインバータを付加しているが、図6(a)の回路と等価な回路である。なお、インバータの内部に示すinvx1、invx8は、インバータを構成するNMOS及びPMOSトランジスタのサイズ(ゲート幅)の違いを示しており、invxに続く数値が大きい程サイズが大きく、大きな負荷容量を駆動できることを意味する(図12以外の回路図においても同様)。
 ドミノRSLゲートRSL_ANDの入力のうち、第1の入力端子にはクロックCLKが入力され、第2及び第3の入力端子IN1、IN2には、入力A[2]、A[3]又はそれらを反転した信号が入力される。また、(b)では第4の入力端子にはRのみ表示しているが、乱数R又はその反転信号/Rが入力される。
 図12から分かるように、入力A[2]、A[3]から、相補信号である出力信号a[0]~a[3]及び/a[0]~/a[3]が生成される。なお、図12には入力A[2]、A[3]に関する回路のみ示しているが、入力A[4]、A[5]に関する回路も同様に構成され、その回路からは、図12の出力信号a[0]~a[3]及び/a[0]~/a[3]に対応する出力信号b[0]~b[3]及び/b[0]~/b[3]が生成される。
 図12(a)に示したプリデコーダの動作波形を図13に示す。ドミノRSLゲートはダイナミック回路であるので、CLK=0のプリチャージ期間中はすべての入出力が0にリセットされている。CLK=1となると、入力信号に応じて出力値が決定されるが、乱数R=0の正論理で演算しているときには、a[0]、a[1]、a[2]、a[3]には図11(b)で示したのと同じ論理が出力されている。ただし、本発明のプリデコーダにおいてはa[0]、a[1]、a[2]、a[3]だけでなく、その反転信号(但しCLK=1の期間のみ)である/a[0]、/a[1]、/a[2]、/a[3]もドミノRSLゲートを用いて出力していることに注意されたい。R=1の負論理の演算も同様に行われている。一つの信号線たとえばa[0]に注目すると正論理においてはHiデータが出力される確率は1/4であるが、負論理においては3/4の確率でHiデータが出力されるため、乱数Rが1と0を1/2の確率で入力されるならば、a[0]ノードがHiに遷移する確率はどのような入力データに対しても1/2となる。同様にしてすべての信号線a[0]~a[3]、/a[0]~/a[3]がHiデータを出力する確率はすべて1/2となり、アドレスの入力値にかかわらず消費電力は一定となる。
 <ワード線ドライバ>
 従来のワード線ドライバは図14の(a)に示す回路で構成されている。すなわち、16本のワード線は、2種類のプリデコード信号a[0]~a[3]、b[0]~b[3]のうちから1本ずつの信号線が選ばれ、それら2本の信号線にCLK信号を加えた3入力ANDゲートwd3を用いて駆動されている。CLK信号を入れるのはワード線を立ち上げるタイミングをコントロールするためである。図12の(b)は、プリデコード信号a[0]~a[3]、b[0]~b[3]によるワード線Wの選択を示すテーブルである。なお、(a)においては回路の一部が省略されており、16個の3入力ANDゲートwd3のうちの5個と、16本のワード線Wのうちの5本のみを示している。(b)のテーブルに関しても同様に省略されている。
 これに対して、本発明のワード線ドライバには、図15の(a)に示す回路を使用する。ドミノRSLゲートRSL_WDrivの具体的な回路を図15の(b)に示す。本発明のワード線ドライバは16個のドミノRSLゲートRSL_WDriveを備えて構成されるが、図15(a)では、そのうちワード線w[0]~w[4]をドライブするドミノRSLゲートRSL_WDriveのみを示している。また、図15(a)のドミノRSLゲートRSL_WDriveの内部に示した符号bは、反転信号が入力されることを示す。
 ドミノRSLゲートRSL_WDriveには、2系統のプリデコード信号a、bとその相補信号/a、/bが入力IN3、IN4および/IN3、/IN4に入力されている。即ち、1つのドミノRSLゲートRSL_WDrivには、例えば、IN3、/IN3にa[i]、/a[i](i=0~3)が入力され、IN4、/IN4にb[j]、/b[j](j=0~3)が入力される。ドミノRSLゲートRSL_WDriveでは、CLK=1の期間において、R=0(正論理)の時はIN3、IN4の両方がHiデータとなり、R=1(負論理)の時は/IN3、/IN4の両方がHiデータの時OUT2=Hiとなって、ワード線が活性化される。
 図15の(a)に示した回路の動作波形を図16に示す。R=0の時はa[0]=b[0]=Hiの時にw[0]=Hiに、R=0の時はa[0]=b[0]=Lo(波形には示していないが、このとき/a[0]=/b[0]=Hi)の時に、w[0]=Hiとなっている。
 <ロウデコーダの動作確認>
 図17にプリデコーダとワード線ドライバを含むロウデコーダの動作確認用の回路図を示す。図17のRowDecoder_RSLが、図12及び図15に示した回路で構成されているシミュレーション用ロウデコーダである。アドレスinA[5:2]を0から15までインクリメントしたとき、乱数R=0の場合(正論理)には、アドレスA[5:2]=inA[5:2]として、シミュレーション用ロウデコーダRowDecoder_RSLに入力される。一方、乱数R=1の場合(負論理)には、アドレスinA[5:2]はEXORゲートxorで反転されて、A[5:2]=/inA[5:2]としてシミュレーション用ロウデコーダRowDecoder_RSLに入力される。図17の回路でシミュレーションした結果の動作波形を図18に示す。これから、R=0、R=1のどちらの場合でもワード線がw[0]からw[15]まで順に活性化されていることが確認できる。
 <コラムデコーダおよびセンスアンプ回路>
 メモリアレイから出力に至る経路には、図8に示すようにコラムデコーダとメモリアレイのデータを読み出すセンスアンプ回路とがある。コラムデコーダはメモリアレイから読み出されたデータの内、出力に必要なデータを選択する回路であり、DES暗号回路の例では、アドレスA[0]~A[1]をデコードして、メモリアレイから出力された16個のデータから4個を選択する。本発明のコラムデコーダは、ドミノRSLゲートを用いて、上記した本発明のロウデコーダと同様に構成される。即ち、本発明のコラムデコーダは、プリデコーダ(図12参照)と、コラムデコード線ドライバ(図15のワード線ドライバに対応)から構成される。その動作において、コラムデコード線ドライバの出力信号(図15(b)のOUT2に対応)がコラムデータの選択信号すなわちコラムデコード信号(後述の図21参照)となる。
 図19に従来のセンスアンプ回路を示す。ビット線プリチャージ部は読み出し前に、ビット線信号ペア(BLと/BL)をVdd電位にしておくために使用される。この図には示していないが、メモリアレイ内にも同じプリチャージ部が存在する。ビット線読み出し時にはCLK信号はHiとなり、プリチャージ部が不活性になると同時に、メモリアレイ内のワード線(w[0]またはw[1])が活性化されメモリセルによってビット線信号ペア(BLと/BL)にデータが出力される(メモリセルからのデータ読み出し)。ビット線信号ペアの電位は、コラムデコード信号が入力されたNMOSトランスミッションゲートを経由してクロスカップル型のセンスアンプ部(クロスカップルセンスアンプ部)に到達し、ここでデータが増幅される。増幅された相補データは、2個のNANDゲートwd1で構成されるRSフリップフロップでラッチされ出力バッファを経て出力DOUTとして出力される。図20に従来のセンスアンプ回路の動作波形(下段)と消費電力(上段)を示す。アドレスA[0]=0の時はメモリアレイからはデータ1(BL=Hiかつ/BL=Lo)が、アドレスA[0]=1の時はメモリアレイからはデータ1(BL=Loかつ/BL=Hi)が読み出される。このとき、それぞれDOUT=LoおよびHiとなり、DOUTに付随している1pFの寄生容量が充電されることに伴ってDOUT=1の時だけ大きな消費電力が消費される。従って、図20において白抜きの矢印で示したように、出力論理データと消費電力とに相関が生まれるためDPA攻撃の対象となる。
 これに対して、発明のセンスアンプ回路は図21のように構成されている。メモリアレイからクロスカップルセンスアンプユニットまでの動作は従来と同じであるが、RSフリップフロップに代えてドミノRSLマルチプレクサRSL_MUXが使用されている。図21(a)に示されたドミノRSLマルチプレクサRSL_MUX内に記載された0、1は、入力端子を表す。ビット線BL、/BLはそれぞれ、インバータを介して入力端子1、0に接続されている。ドミノRSLマルチプレクサRSL_MUXの具体的な回路図を、図21の(b)に示す。ドミノRSLマルチプレクサRSL_MUXでは、R=0の場合には/BLの反転信号(BL信号すなわちセルデータと同じ論理)が、R=1の場合にはBLの反転信号(/BL信号すなわちセルデータの反転論理)が、出力バッファに伝搬されDOUTに出力される。本回路はメモリアレイからDOUTに至るまで、BL側と/BL側とで回路が全く対称に設計されていることに注意されたい。
 図22に、図21に示したセンスアンプ回路の動作波形(下段)と消費電力(上段)を示す。DOUTには乱数R=0の時には正論理、乱数R=1の時には負論理のデータが出力され、消費電力はDOUTがHiになるとき大きくなる。従って、図22において白抜きの矢印で示したように、出力論理データと消費電力に相関がなくなるためDPA攻撃の対象となることは無くなる。
 以上、本発明に係る耐タンパ性メモリ集積回路(セキュアメモリ)を構成する各要素、即ちメモリアレイ、ロウデコーダ、コラムデコーダ、及びセンスアンプ回路について、従来と比較しながら説明した。本発明の特徴は、メモリセルにおいてはBLと/BL線という相補入出力線を持つセルを用いていること、ロウおよびコラムデコーダにおいてはアドレスのデコード回路にANDゲートに代えて2種類のドミノRSLゲートRSL_AND及びRSL_WDrivを用いていること、また、センスアンプ回路においては出力DOUTに対して、BLと/BL信号から全く対称な信号経路を用いて信号を伝搬するために、ドミノRSLマルチプレクサを用いて相補データの片側を選択して出力している点である。
 図12、図15、図21は、ドミノRSL回路を適用したアドレスプリデコーダ、ワード線ドライバ、センスアンプ回路の一例であり、これらに限定されない。例えば、NMOSトランジスタとPMOSトランジスタとを相互に置き換えて同様の機能の回路を構成することができる。図23~25は、それぞれ図12(b)、図15(b)、図21(b)において、NMOSトランジスタとPMOSトランジスタとを置き換えたドミノRSL回路の一例を示す回路図である。図23~25は、図12(b)、図15(b)、図21(b)の各回路と論理は反転するが、同様の機能を有する回路であり、図12(b)、図15(b)、図21(b)の各回路の代わりに使用することができる。なお、図23~25の各要素(トランジスタなど)を表す符合には、図12(b)、図15(b)、図21(b)における対応する要素の符号に「’」を付している。
 また、上記ではドミノRSL回路で構成する場合を説明したが、メモリアレイ及び入出力ドライバ以外の回路は、乱数を用いて信号線の遷移確率を均一化できる回路方式であればドミノRSL以外の実装方式も可能である。
 <乱数発生回路>
 乱数Rは、公知の乱数発生回路を用いて発生させればよいが、より耐タンパ性を向上させるには、以下に説明する乱数発生回路を採用することが望ましい。
乱数発生回路でもっとも一般的に使用されているのは図26に示す線形帰還型シフトレジスタ(LFSR:Linear Feedback Shift Resister)型疑似乱数発生器である。この乱数発生器は、16個のシフトレジスタSRと、3個のEXORゲートで構成されており、その動作は公知であるので説明は省略する。図26に示した線形帰還型シフトレジスタ型疑似乱数発生器(16ビットLFSR)では、65535個のデータ列を一周期とする同じデータ列が発生する。このデータ列は、16ビットデータの初期値が同じであれば、すべてのチップで同じ乱数系列が発生される。万が一、同じ設計の暗号回路が調査されて本セキュアメモリの乱数発生回路情報が窃取された場合には、その乱数値に基づいて消費電力値を補正し、DPA攻撃を行うことも不可能ではない。
 このような疑似乱数データを推定したDPA攻撃を無効化するため、同じ回路であってもチップごとに異なる乱数を発生する回路を採用することが望ましい。図27はチップ製造時のトランジスタの性能バラツキを利用したPUF(Physically Unclonable Function)回路と呼ばれ、この回路の原理は上記非特許文献5(Jae W Lee, et. al. “A Technique to Build a Secret Key in Integrated Circuits for Identification and Authentication Applications”, 2004 Symposium on VLSI Circuits, pp.176-179)に開示されている。N段のセレクタ回路が2列に縦列接続されており、外部から与えられたチャレンジ(選択信号)に従って2種類の経路を使用して立ち上がりエッジの信号が伝搬される。図27では略記しているが、上下に対応する2つのセレクタには、同じ1ビットのチャレンジ信号が入力される。従って、途中で中断することなく最後まで伝播される信号は、相互に重複しない2つの経路を通る。これら2種類の経路の信号は同じタイミングで出力されるはずであるが、各セレクタを構成するトランジスタの製造ばらつきによって到達時間差Δtが発生する。アービター回路においては、立ち上がりエッジの到達時間差を検出して、上段の出力信号が早く到達した場合(Δt>0)にはデータ1を、下段の出力信号が早く到達した場合(Δt<0)にはデータ0を、レスポンスとして出力する。アービター回路の出力は、上段と下段の経路をマルチプレクサの入力値を変化させて切り替えることで、製造ばらつきを反映してランダムに変化する。
 このアービター回路は、微少な時間差を検出するために重要な回路であるが、非特許文献5には内部回路が開示されていない。本発明では、例えば図28(a)に示す回路を採用する。初期状態としては/RESET=0となっているため、クロスカップルセンスアンプと電源の間に位置するイネーブルゲート(2つのトランジスタのソース同士及びドレイン同士が接続されて形成されたゲート)はOFF状態にある。/RESET=1として、IN1、IN2のどちらかにHiデータが入るとイネーブルゲートはONし、クロスカップル型のセンスアンプが動作を始め、IN1とIN2との電位差(センシングノードN1、N2の電位差)を検出して先に立ち上がりエッジが到達した側のOUT端子が1に反対側のOUT端子が0に変化する。本回路は、アービター回路として、先に到達した側のライズエッジをトリガ信号としてセンスアンプを動作させている点が特徴である。アービター回路の出力(レスポンス)としては、図28(a)のOUT1、OUT2のどちらか一方を使用すればよい。なお、図28の(a)において、インバータは無くてもよい。しかし、センスアンプを動作させるPMOSのゲートノードは、IN1、IN2のどちらかがHiになった後はできるだけ早くLoにすることが望ましいので、容量負荷は最小限にする必要がある。従って、外部出力OUT1、OUT2はインバータを介して出力することが望ましい。
 このようなPUF回路を用いた、チップごとに異なる乱数を発生させることが可能な回路の例を図29に示す。セレクタ回路が16段(32個)接続されて形成されたPUF回路(図27の回路)のチャレンジとして、16ビットのLFSR疑似乱数発生回路を構成する各シフトレジスタの出力を接続する。この結果得られたPUF回路のレスポンスと、LFSR疑似乱数発生回路の出力との排他的論理和を演算し、その結果をセキュアメモリで使用する乱数Rとする。LFSR疑似乱数発生回路の出力は1、0の個数がほぼ同数であることを反映して、この乱数Rは1と0がほぼ同数となり、消費電力の偏りが無くなるとともに、PUF回路の出力はチップごとに異なる。
 このように、本発明に係るチップごとの製造ばらつきを利用した乱数発生回路を使用することにより、規則的な疑似乱数データを推定して行うDPA攻撃を無効化することができる。なお、PUFの出力である1/0の出現率が50%になるように設計する場合PUFの出力を直接乱数Rとして使用しても良い。PUFの1/0出現率は、アービター回路のレイアウト(ノードの寄生容量)に依存して偏りが出やすいが、50%になるように設計するには、チューニング用の付加回路を図28(a)の回路に設けることで対応可能である。
 なお、上記した乱数発生回路は、暗号回路への応用に限定されず、LSIの回路応用において、できるだけ不規則な乱数を必要とするアプリケーション(モンテカルロシミュレーションなど)全般に使用できる。
 本発明によれば、DPA攻撃に強い耐タンパ性メモリ集積回路、特に、ドミノRSLゲートを用いたASIC設計フローの問題点を解決でき、容易に集積回路設計を可能にできる耐タンパ性メモリ集積回路、及び、それをセキュアメモリとして用いた暗号回路(例えばS-BoxをLSI実装した暗号回路)を提供することができる。
Tr1~Tr24、Tr1’~Tr24’  トランジスタ
Inv1~Inv3、Inv1’~Inv3’  インバータ
BL、/BL  ビット線
w  ワード線
OUT1~OUT3、DOUT  出力端子(出力信号)
A[0]~A[5]  アドレスデータ
a[0]~a[3]、/a[0]~/a[3]、b[0]~b[3]、/b[0]~/b[3]  プリデコード信号
CLK  クロック
R、r  乱数

Claims (16)

  1.  メモリセルアレイ、ロウデコーダ、コラムデコーダ、センスアンプ、及び入出力ドライバを備えたメモリ集積回路であって、
     前記メモリセルアレイ内の各メモリセルに対するデータの読み出し又は書き込みが2本の相補ビット線を介して行われ、
     前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、外部から入力される乱数データによって信号線の遷移確率が均一化される回路で構成されているメモリ集積回路。
  2.  前記ロウデコーダ、前記コラムデコーダ、及び前記センスアンプが、ドミノRSL回路を備えて構成されている請求項1に記載のメモリ集積回路。
  3.  前記ロウデコーダが、第1プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
     前記第1プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第1インバータと、複数の第1ドミノRSLゲートとを備え、
     前記第1ドミノRSLゲートが、第1~第8トランジスタ及び第2インバータを備え、
     第1及び第5トランジスタがPMOSトランジスタであり、
     第2~第4及び第6~第8トランジスタがNMOSトランジスタであり、
     前記第1~第4トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第1~第4トランジスタの一方の端部に位置する前記第1トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第1~第4トランジスタの他方の端部に位置する前記第4トランジスタのソースに接地電圧が印加され、
     前記第1トランジスタ及び前記第4トランジスタのゲートにクロックが入力され、
     前記第5トランジスタのソースに電源電圧が印加され、
     前記第6及び第7トランジスタが並列に接続され、
     前記第6及び第7トランジスタの接続ノードの一方に、前記第5トランジスタのドレインが接続され、
     前記第6及び第7トランジスタの接続ノードの他方に、前記第8トランジスタのドレインが接続され、
     前記第8トランジスタのソースが、前記第3及び第4トランジスタの接続ノードに接続され、
     前記第1及び第2トランジスタの接続ノードと前記第5~第7トランジスタの接続ノードとが接続されて、第1出力ノードを形成し、
     前記第1出力ノードが、前記第2インバータを介して前記第5トランジスタのゲートに接続され、
     前記第2トランジスタ及び前記第6トランジスタのゲートに、前記アドレスデータを構成する1ビットデータ又は前記第1インバータの出力データが入力され、
     前記第3トランジスタ及び前記第7トランジスタのゲートに、前記第2トランジスタ及び前記第6トランジスタのゲートに入力されるデータとは異なる、前記アドレスデータを構成する1ビットデータ又は前記第1インバータの出力データが入力され、
     前記第8トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
     請求項2に記載のメモリ集積回路。
  4.  前記ロウデコーダが、第1プリデコーダと、メモリセルのワード線をドライブするワード線ドライバとを備えて構成され、
     前記第1プリデコーダが、前記アドレスデータを構成する複数のビットデータの一部を反転させる複数の第1インバータと、複数の第1ドミノRSLゲートとを備え、
     前記第1ドミノRSLゲートが、第1~第8トランジスタ及び第2インバータを備え、
     第1及び第5トランジスタがNMOSトランジスタであり、
     第2~第4及び第6~第8トランジスタがPMOSトランジスタであり、
     前記第1~第4トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第1~第4トランジスタの一方の端部に位置する前記第1トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第1~第4トランジスタの他方の端部に位置する前記第4トランジスタのソースに電源電圧が印加され、
     前記第1トランジスタ及び前記第4トランジスタのゲートにクロックが入力され、
     前記第5トランジスタのソースに接地電圧が印加され、
     前記第6及び第7トランジスタが並列に接続され、
     前記第6及び第7トランジスタの接続ノードの一方に、前記第5トランジスタのドレインが接続され、
     前記第6及び第7トランジスタの接続ノードの他方に、前記第8トランジスタのドレインが接続され、
     前記第8トランジスタのソースが、前記第3及び第4トランジスタの接続ノードに接続され、
     前記第1及び第2トランジスタの接続ノードと前記第5~第7トランジスタの接続ノードとが接続されて、第1出力ノードを形成し、
     前記第1出力ノードが、前記第2インバータを介して前記第5トランジスタのゲートに接続され、
     前記第2トランジスタ及び前記第6トランジスタのゲートに、前記アドレスデータを構成する1ビットデータ又は前記第1インバータの出力データが入力され、
     前記第3トランジスタ及び前記第7トランジスタのゲートに、前記第2トランジスタ及び前記第6トランジスタのゲートに入力されるデータとは異なる、前記アドレスデータを構成する1ビットデータ又は前記第1インバータの出力データが入力され、
     前記第8トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
     請求項2に記載のメモリ集積回路。
  5.  前記ワード線ドライバが複数の第2ドミノRSLゲートを備え、
     前記第2ドミノRSLゲートが、第9~第17トランジスタ及び第3インバータを備え、
     第9及び第14トランジスタがPMOSトランジスタであり、
     第10~第13及び第15~第17トランジスタがNMOSトランジスタであり、
     前記第9~第13トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第9~第13トランジスタの一方の端部に位置する前記第9トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第9~第13トランジスタの他方の端部に位置する前記第13トランジスタのソースに接地電圧が印加され、
     前記第9トランジスタ及び前記第13トランジスタのゲートにクロックが入力され、
     前記第14~第17トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第14~第17トランジスタの一方の端部に位置する前記第14トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第14~第17トランジスタの他方の端部に位置する前記第17トランジスタのソースが、前記第13トランジスタのドレインに接続され、
     前記第9及び第10トランジスタの接続ノードと前記第14及び第15トランジスタの接続ノードとが接続されて第2出力ノードを形成し、
     前記第2出力ノードが、前記第3インバータを介して前記第14トランジスタのゲートに接続され、
     前記第10及び第11トランジスタの各々のゲートに、重複すること無く前記第1ドミノRSLゲートの出力信号が入力され、
     前記第15トランジスタのゲートに、前記第10トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第16トランジスタのゲートに、前記第11トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第12及び第17トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
     請求項3又は4に記載のメモリ集積回路。
  6.  前記ワード線ドライバが複数の第2ドミノRSLゲートを備え、
     前記第2ドミノRSLゲートが、第9~第17トランジスタ及び第3インバータを備え、
     第9及び第14トランジスタがNMOSトランジスタであり、
     第10~第13及び第15~第17トランジスタがPMOSトランジスタであり、
     前記第9~第13トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第9~第13トランジスタの一方の端部に位置する前記第9トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第9~第13トランジスタの他方の端部に位置する前記第13トランジスタのソースに電源電圧が印加され、
     前記第9トランジスタ及び前記第13トランジスタのゲートにクロックが入力され、
     前記第14~第17トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第14~第17トランジスタの一方の端部に位置する前記第14トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第14~第17トランジスタの他方の端部に位置する前記第17トランジスタのソースが、前記第13トランジスタのドレインに接続され、
     前記第9及び第10トランジスタの接続ノードと前記第14及び第15トランジスタの接続ノードとが接続されて第2出力ノードを形成し、
     前記第2出力ノードが、前記第3インバータを介して前記第14トランジスタのゲートに接続され、
     前記第10及び第11トランジスタの各々のゲートに、重複すること無く前記第1ドミノRSLゲートの出力信号が入力され、
     前記第15トランジスタのゲートに、前記第10トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第16トランジスタのゲートに、前記第11トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第12及び第17トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
     請求項3又は4に記載のメモリ集積回路。
  7.  前記センスアンプが、前記相補ビット線に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノRSLマルチプレクサとを備え、
     前記ドミノRSLマルチプレクサが、第18~第24トランジスタ及び第4インバータを備え、
     第18及び第22トランジスタがPMOSトランジスタであり、
     第19~第21、第23、及び第24トランジスタがNMOSトランジスタであり、
     前記第18~第21トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第18~第21トランジスタの一方の端部に位置する前記第18トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第18~第21トランジスタの他方の端部に位置する前記第21トランジスタのソースに接地電圧が印加され、
     前記第18トランジスタ及び前記第21トランジスタのゲートにクロックが入力され、
     前記第22~第24トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第22~第24トランジスタの一方の端部に位置する前記第22トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第22~第24トランジスタの他方の端部に位置する前記第24トランジスタのソースが、前記第21トランジスタのドレインに接続され、
     前記第18及び第19トランジスタの接続ノードと前記第22及び第23トランジスタの接続ノードとが接続されて第3出力ノードを形成し、
     前記第3出力ノードが、前記第4インバータを介して前記第22トランジスタのゲートに接続され、
     前記第19及び第23トランジスタの各々のゲートに、重複すること無く前記相補ビット線からの信号が入力され、
     前記第20及び第24トランジスタの各々のゲートに、前記乱数データ又は前記乱数データの反転データが入力される
     請求項3~6の何れか1項に記載のメモリ集積回路。
  8.  前記センスアンプが、前記相補ビット線に接続されたビット線プリチャージユニット及びクロスカップルセンスアンプユニットと、ドミノRSLマルチプレクサとを備え、
     前記ドミノRSLマルチプレクサが、第18~第24トランジスタ及び第4インバータを備え、
     第18及び第22トランジスタがNMOSトランジスタであり、
     第19~第21、第23、及び第24トランジスタがPMOSトランジスタであり、
     前記第18~第21トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第18~第21トランジスタの一方の端部に位置する前記第18トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第18~第21トランジスタの他方の端部に位置する前記第21トランジスタのソースに電源電圧が印加され、
     前記第18トランジスタ及び前記第21トランジスタのゲートにクロックが入力され、
     前記第22~第24トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第22~第24トランジスタの一方の端部に位置する前記第22トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第22~第24トランジスタの他方の端部に位置する前記第24トランジスタのソースが、前記第21トランジスタのドレインに接続され、
     前記第18及び第19トランジスタの接続ノードと前記第22及び第23トランジスタの接続ノードとが接続されて第3出力ノードを形成し、
     前記第3出力ノードが、前記第4インバータを介して前記第22トランジスタのゲートに接続され、
     前記第19及び第23トランジスタの各々のゲートに、重複すること無く前記相補ビット線からの信号が入力され、
     前記第20及び第24トランジスタの各々のゲートに、前記乱数データ又は前記乱数データの反転データが入力される
     請求項3~6の何れか1項に記載のメモリ集積回路。
  9.  前記コラムデコーダが、第2プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
     前記第2プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第1プリデコーダに入力されないビットデータを反転させる第5インバータと、第3ドミノRSLゲートとを備え、
     前記第3ドミノRSLゲートが、第25~第32トランジスタ及び第6インバータを備え、
     第25及び第29トランジスタがPMOSトランジスタであり、
     第26~第28及び第30~第32トランジスタがNMOSトランジスタであり、
     前記第25~第32トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第25~第28トランジスタの一方の端部に位置する前記第25トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第25~第28トランジスタの他方の端部に位置する前記第28トランジスタのソースに接地電圧が印加され、
     前記第25トランジスタ及び前記第28トランジスタのゲートにクロックが入力され、
     前記第29トランジスタのソースに電源電圧が印加され、
     前記第30及び第31トランジスタが並列に接続され、
     前記第30及び第31トランジスタの接続ノードの一方に、前記第29トランジスタのドレインが接続され、
     前記第30及び第31トランジスタの接続ノードの他方に、前記第32トランジスタのドレインが接続され、
     前記第32トランジスタのソースが、前記第27及び第28トランジスタの接続ノードに接続され、
     前記第25及び第26トランジスタの接続ノードと前記第29~第31トランジスタの接続ノードとが接続されて、第4出力ノードを形成し、
     前記第4出力ノードが、前記第6インバータを介して前記第29トランジスタのゲートに接続され、
     前記第26トランジスタ及び第30トランジスタのゲートに、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
     前記第27トランジスタ及び前記第31トランジスタのゲートに、前記第26トランジスタ及び前記第30トランジスタのゲートに入力されるデータとは異なる、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
     前記第32トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
     請求項3~8の何れか1項に記載のメモリ集積回路。
  10.  前記コラムデコーダが、第2プリデコーダと、メモリセルのコラムデコード線をドライブするコラムデコード線ドライバとを備えて構成され、
     前記第2プリデコーダが、前記アドレスデータを構成する複数の前記ビットデータのうち前記第1プリデコーダに入力されないビットデータを反転させる第5インバータと、第3ドミノRSLゲートとを備え、
     前記第3ドミノRSLゲートが、第25~第32トランジスタ及び第6インバータを備え、
     第25及び第29トランジスタがNMOSトランジスタであり、
     第26~第28及び第30~第32トランジスタがPMOSトランジスタであり、
     前記第25~第32トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第25~第28トランジスタの一方の端部に位置する前記第25トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第25~第28トランジスタの他方の端部に位置する前記第28トランジスタのソースに電源電圧が印加され、
     前記第25トランジスタ及び前記第28トランジスタのゲートにクロックが入力され、
     前記第29トランジスタのソースに接地電圧が印加され、
     前記第30及び第31トランジスタが並列に接続され、
     前記第30及び第31トランジスタの接続ノードの一方に、前記第29トランジスタのドレインが接続され、
     前記第30及び第31トランジスタの接続ノードの他方に、前記第32トランジスタのドレインが接続され、
     前記第32トランジスタのソースが、前記第27及び第28トランジスタの接続ノードに接続され、
     前記第25及び第26トランジスタの接続ノードと前記第29~第31トランジスタの接続ノードとが接続されて、第4出力ノードを形成し、
     前記第4出力ノードが、前記第6インバータを介して前記第29トランジスタのゲートに接続され、
     前記第26トランジスタ及び第30トランジスタのゲートに、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
     前記第27トランジスタ及び前記第31トランジスタのゲートに、前記第26トランジスタ及び前記第30トランジスタのゲートに入力されるデータとは異なる、前記第1プリデコーダに入力されない、前記アドレスデータを構成する1ビットデータ又は前記第5インバータの出力データが入力され、
     前記第32トランジスタのゲートに、前記乱数データ又は前記乱数データの反転データが入力される
     請求項3~8の何れか1項に記載のメモリ集積回路。
  11.  前記コラムデコード線ドライバが第4ドミノRSLゲートを備え、
     前記第4ドミノRSLゲートが、第33~第41トランジスタ及び第7インバータを備え、
     第33及び第38トランジスタがPMOSトランジスタであり、
     第34~第37及び第39~第41トランジスタがNMOSトランジスタであり、
     前記第33~第37トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第33~第37トランジスタの一方の端部に位置する前記第33トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第33~第37トランジスタの他方の端部に位置する前記第37トランジスタのソースに接地電圧が印加され、
     前記第33トランジスタ及び前記第37トランジスタのゲートにクロックが入力され、
     前記第38~第41トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第38~第41トランジスタの一方の端部に位置する前記第38トランジスタのソースに電源電圧が印加され、
     直列に接続された前記第38~第41トランジスタの他方の端部に位置する前記第41トランジスタのソースが、前記第37トランジスタのドレインに接続され、
     前記第33及び第34トランジスタの接続ノードと前記第38及び第39トランジスタの接続ノードとが接続されて、前記第5出力ノードを形成し、
     前記第5出力ノードが、前記第7インバータを介して前記第38トランジスタのゲートに接続され、
     前記第34及び第35トランジスタの各々のゲートに、重複すること無く前記第3ドミノRSLゲートの出力信号が入力され、
     前記第39トランジスタのゲートに、前記第34トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第40トランジスタのゲートに、前記第35トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第36及び第41トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
     請求項9又は10に記載のメモリ集積回路。
  12.  前記コラムデコード線ドライバが第4ドミノRSLゲートを備え、
     前記第4ドミノRSLゲートが、第33~第41トランジスタ及び第7インバータを備え、
     第33及び第38トランジスタがNMOSトランジスタであり、
     第34~第37及び第39~第41トランジスタがPMOSトランジスタであり、
     前記第33~第37トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第33~第37トランジスタの一方の端部に位置する前記第33トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第33~第37トランジスタの他方の端部に位置する前記第37トランジスタのソースに電源電圧が印加され、
     前記第33トランジスタ及び前記第37トランジスタのゲートにクロックが入力され、
     前記第38~第41トランジスタが、ソース又はドレインが相互に接続されて、順に直列に接続され、
     直列に接続された前記第38~第41トランジスタの一方の端部に位置する前記第38トランジスタのソースに接地電圧が印加され、
     直列に接続された前記第38~第41トランジスタの他方の端部に位置する前記第41トランジスタのソースが、前記第37トランジスタのドレインに接続され、
     前記第33及び第34トランジスタの接続ノードと前記第38及び第39トランジスタの接続ノードとが接続されて、前記第5出力ノードを形成し、
     前記第5出力ノードが、前記第7インバータを介して前記第38トランジスタのゲートに接続され、
     前記第34及び第35トランジスタの各々のゲートに、重複すること無く前記第3ドミノRSLゲートの出力信号が入力され、
     前記第39トランジスタのゲートに、前記第34トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第40トランジスタのゲートに、前記第35トランジスタのゲートに入力される信号の反転信号が入力され、
     前記第36及び第41トランジスタの各々に、重複すること無く前記乱数データ又は前記乱数データの反転データが入力される
     請求項9又は10に記載のメモリ集積回路。
  13.  請求項1~12の何れか1項に記載のメモリ集積回路を備えている暗号回路。
  14.  線形帰還形シフトレジスタと、2列に縦列接続されたN段のセレクタ回路と、アービター回路と、前記線形帰還形シフトレジスタの出力信号及び前記アービター回路の出力信号を排他的論理和演算して乱数を出力する演算ゲートとを備え、
     前記線形帰還形シフトレジスタが、直列に接続されたN個のシフトレジスタと複数の排他的論理和演算子とを備え、
     前記アービター回路が、
     接地電圧と電源電圧との間に直列接続されたクロスカップルセンスアンプ、及び、ソースが相互接続され且つドレインが相互接続された2つのトランジスタで構成されたイネーブルゲートと、
     一方の入力端に第1入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第1センシングノードに接続され、出力端が、前記イネーブルゲートを構成する一方のトランジスタのゲートに接続された第1NANDゲートと、
     一方の入力端に第2入力信号が入力され、他方の入力端が前記クロスカップルセンスアンプの第2センシングノードに接続され、出力端が、前記イネーブルゲートを構成する他方のトランジスタのゲートに接続された第2NANDゲートとを備え、
     前記シフトレジスタの出力が、選択信号であるチャレンジとして前記セレクタ回路に入力され、
     最終段の2つのセレクタ回路の出力信号が前記第1及び第2入力信号として前記アービター回路に入力され、
     前記第1および第2NANDゲートの出力の一方が、前記アービター回路から前記乱数として出力される
     乱数発生回路。
  15.  請求項1~12の何れか1項に記載のメモリ集積回路と、請求項14に記載の乱数発生回路とを備え、
     前記乱数発生回路の出力が、前記メモリ集積回路に入力される前記乱数データである暗号回路。
  16.  DES暗号又はAES暗号用の暗号回路であって、
     S-Boxが前記メモリ集積回路で構成されている請求項13又は15に記載の暗号回路。
PCT/JP2010/062689 2010-07-28 2010-07-28 耐タンパ性メモリ集積回路およびそれを利用した暗号回路 WO2012014291A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2010/062689 WO2012014291A1 (ja) 2010-07-28 2010-07-28 耐タンパ性メモリ集積回路およびそれを利用した暗号回路
JP2012526239A JP5544611B2 (ja) 2010-07-28 2010-07-28 耐タンパ性メモリ集積回路およびそれを利用した暗号回路
US13/812,628 US8861720B2 (en) 2010-07-28 2010-07-28 Tamper-resistant memory integrated circuit and encryption circuit using same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/062689 WO2012014291A1 (ja) 2010-07-28 2010-07-28 耐タンパ性メモリ集積回路およびそれを利用した暗号回路

Publications (1)

Publication Number Publication Date
WO2012014291A1 true WO2012014291A1 (ja) 2012-02-02

Family

ID=45529537

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/062689 WO2012014291A1 (ja) 2010-07-28 2010-07-28 耐タンパ性メモリ集積回路およびそれを利用した暗号回路

Country Status (3)

Country Link
US (1) US8861720B2 (ja)
JP (1) JP5544611B2 (ja)
WO (1) WO2012014291A1 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014072827A (ja) * 2012-10-01 2014-04-21 Fujitsu Semiconductor Ltd 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法
EP3026672A1 (en) 2014-11-21 2016-06-01 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
JP2016181933A (ja) * 2012-11-12 2016-10-13 ケイオロジクス インク セキュアデジタル論理セル
US9548113B2 (en) 2014-11-21 2017-01-17 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
US9653161B2 (en) 2014-11-21 2017-05-16 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device comprising an arithmetic circuit that, in operation, calculates a binary reference value based on at least a part of the pieces of resistance value information, a read circuit that, in operation, selectively assigns, based on the binary reference value, one of two values to each of the pieces of resistance value information, and a write circuit that, in operation, performs a write operation corresponding to one of the two values among memory cells
US9823899B2 (en) 2015-06-18 2017-11-21 Panasonic Intellectual Property Management Co., Ltd. Random number processing device generating random numbers by using data read from non-volatile memory cells, and integrated circuit card
US9892783B2 (en) 2016-05-26 2018-02-13 Panasonic Intellectual Property Management Co., Ltd. Non-volatile memory device including memory cells having variable resistance values
US9948471B2 (en) 2015-06-18 2018-04-17 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device and integrated circuit card
US10096359B2 (en) 2016-05-27 2018-10-09 Panasonic Intellectual Property Management Co., Ltd. Nonvolatile memory device having resistive memory cells including at least one resistive memory cell initial state
US10574639B2 (en) 2016-05-25 2020-02-25 Panasonic Intellectual Property Management Co., Ltd. Authentication apparatus utilizing physical characteristic
JP2021021937A (ja) * 2019-07-25 2021-02-18 ▲しゃーん▼碼科技股▲ふん▼有限公司 真にランダムな静的エントロピーを使って向上したエントロピーを生成するエントロピー生成器および方法
JP2022082405A (ja) * 2020-11-20 2022-06-01 株式会社東芝 バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2487723A (en) * 2011-01-26 2012-08-08 Nds Ltd Protection device for stored data values comprising a switching circuit
US9911470B2 (en) 2011-12-15 2018-03-06 Nvidia Corporation Fast-bypass memory circuit
CN103632712A (zh) 2012-08-27 2014-03-12 辉达公司 存储单元和存储器
US9685207B2 (en) 2012-12-04 2017-06-20 Nvidia Corporation Sequential access memory with master-slave latch pairs and method of operating
US20140355362A1 (en) * 2013-06-04 2014-12-04 Nvidia Corporation Pipelined one cycle throughput for single-port 6t ram
US9418730B2 (en) 2013-06-04 2016-08-16 Nvidia Corporation Handshaking sense amplifier
US10141930B2 (en) 2013-06-04 2018-11-27 Nvidia Corporation Three state latch
US9755822B2 (en) * 2013-06-19 2017-09-05 Cryptography Research, Inc. Countermeasure to power analysis attacks through time-varying impedance of power delivery networks
US9563729B2 (en) 2013-06-21 2017-02-07 Cryptography Research, Inc. Signal transition analysis of a circuit
US9418714B2 (en) 2013-07-12 2016-08-16 Nvidia Corporation Sense amplifier with transistor threshold compensation
US9230630B2 (en) 2013-09-09 2016-01-05 Qualcomm Incorporated Physically unclonable function based on the initial logical state of magnetoresistive random-access memory
JP6354172B2 (ja) * 2014-01-20 2018-07-11 富士通株式会社 半導体集積回路及び認証システム
US9712330B2 (en) 2014-12-15 2017-07-18 Honeywell International Inc. Physically uncloneable function device using MRAM
US9515835B2 (en) * 2015-03-24 2016-12-06 Intel Corporation Stable probing-resilient physically unclonable function (PUF) circuit
US10489611B2 (en) * 2015-08-26 2019-11-26 Rambus Inc. Low overhead random pre-charge countermeasure for side-channel attacks
WO2017105606A1 (en) 2015-12-17 2017-06-22 Cryptography Research, Inc. Enhancements to improve side channel resistance
US10031723B1 (en) * 2016-03-08 2018-07-24 Secturion Systems, Inc. Systolic random number generator
US20180089426A1 (en) * 2016-09-29 2018-03-29 Government Of The United States As Represented By The Secretary Of The Air Force System, method, and apparatus for resisting hardware trojan induced leakage in combinational logics
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
US10389519B2 (en) * 2016-09-30 2019-08-20 International Business Machines Corporation Hardware based cryptographic side-channel attack prevention
US10038445B1 (en) * 2017-01-12 2018-07-31 Semiconductor Components Industries, Llc Component authentication utilizing multi-level arbiter
CN109241782B (zh) * 2018-10-17 2021-04-23 宁波大学 一种利用pmos工艺偏差的弱物理不可克隆函数电路
US10924112B2 (en) * 2019-04-11 2021-02-16 Ememory Technology Inc. Bandgap reference circuit
US10613575B1 (en) * 2019-05-03 2020-04-07 Realtek Semiconductor Corp. Method and apparatus for generating high-speed quadrature clock
CN110532815B (zh) * 2019-07-18 2023-02-28 宁波大学 一种基于cnfet的三值sram-puf电路
CN113783701A (zh) * 2021-09-18 2021-12-10 澳门大学 一种强物理不可克隆函数结构
CN115379065B (zh) * 2022-07-26 2023-07-28 电子科技大学 一种实现信息隐藏的自激发热的电路架构

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0250396A (ja) * 1988-08-12 1990-02-20 Hitachi Ltd 半導体記憶装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5053652A (en) 1988-01-28 1991-10-01 Hitachi, Ltd. High speed sensor system using a level shift circuit
KR0141494B1 (ko) 1988-01-28 1998-07-15 미다 가쓰시게 레벨시프트회로를 사용한 고속센스 방식의 반도체장치
EP1090480B1 (en) 1998-06-03 2019-01-09 Cryptography Research, Inc. Improved des and other cryptographic processes with leak minimization for smartcards and other cryptosystems
JP3600454B2 (ja) 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
US8577942B2 (en) 2004-07-07 2013-11-05 Mitsubishi Electric Corporation Electronic device and data processing device for implementing cryptographic algorithms
US8154918B2 (en) * 2008-06-30 2012-04-10 Sandisk Il Ltd. Method for page- and block based scrambling in non-volatile memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0250396A (ja) * 1988-08-12 1990-02-20 Hitachi Ltd 半導体記憶装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
DAISUKE SUZUKI ET AL.: "Countermeasure against DPA Considering Transition Probabilities", IPSJ SIG NOTES, vol. 2004, no. 75, 21 July 2004 (2004-07-21), pages 321 - 328 *
G. EDWARD SUH ET AL.: "Physical unclonable functions for device authentication and secret key generation", PROCEEDINGS OF THE 44TH IEEE ANNUAL DESIGN AUTOMATION CONFERENCE, June 2007 (2007-06-01), pages 9 - 14 *
KENJI KOJIMA ET AL.: "The implementation of DES cryptographic circuit and the evaluation of DPA attack resistance using Domino-RSL technique", IEICE TECHNICAL REPORT, vol. 108, no. 478, 4 March 2009 (2009-03-04), pages 83 - 88 *
RITSUMEIKAN UNIVERSITY ET AL.: "Tai Temper Dependable VLSI System no Kaihatsu Hyoka -Jin'iteki Kogeki ni yoru Naibu Kimitsu Joho no Roei Fukusei o Boshi suru VLSI no Jitsugen", HEISEI 22 NENDO DAI 1 KAI RYOIKI KAIGI SHIRYO, June 2010 (2010-06-01) *
YASUYUKI SAKAI ET AL.: "Kiki Sekkei no Otoshiana Genjitsu no Kyoi 'Side Channel Kaiseki', (Shu) Kaiseki no Mechanism o Model-ka shi, Himitsu Joho no More o Fusegu", NIKKEI ELECTRONICS, vol. 906, 15 August 2005 (2005-08-15), pages 131 - 139 *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014072827A (ja) * 2012-10-01 2014-04-21 Fujitsu Semiconductor Ltd 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法
JP2016181933A (ja) * 2012-11-12 2016-10-13 ケイオロジクス インク セキュアデジタル論理セル
EP3026672A1 (en) 2014-11-21 2016-06-01 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
US9536581B2 (en) 2014-11-21 2017-01-03 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
US9548113B2 (en) 2014-11-21 2017-01-17 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device
US9653161B2 (en) 2014-11-21 2017-05-16 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device comprising an arithmetic circuit that, in operation, calculates a binary reference value based on at least a part of the pieces of resistance value information, a read circuit that, in operation, selectively assigns, based on the binary reference value, one of two values to each of the pieces of resistance value information, and a write circuit that, in operation, performs a write operation corresponding to one of the two values among memory cells
US9823899B2 (en) 2015-06-18 2017-11-21 Panasonic Intellectual Property Management Co., Ltd. Random number processing device generating random numbers by using data read from non-volatile memory cells, and integrated circuit card
US9948471B2 (en) 2015-06-18 2018-04-17 Panasonic Intellectual Property Management Co., Ltd. Tamper-resistant non-volatile memory device and integrated circuit card
US10574639B2 (en) 2016-05-25 2020-02-25 Panasonic Intellectual Property Management Co., Ltd. Authentication apparatus utilizing physical characteristic
US9892783B2 (en) 2016-05-26 2018-02-13 Panasonic Intellectual Property Management Co., Ltd. Non-volatile memory device including memory cells having variable resistance values
US10096359B2 (en) 2016-05-27 2018-10-09 Panasonic Intellectual Property Management Co., Ltd. Nonvolatile memory device having resistive memory cells including at least one resistive memory cell initial state
JP2021021937A (ja) * 2019-07-25 2021-02-18 ▲しゃーん▼碼科技股▲ふん▼有限公司 真にランダムな静的エントロピーを使って向上したエントロピーを生成するエントロピー生成器および方法
TWI801742B (zh) * 2019-07-25 2023-05-11 熵碼科技股份有限公司 熵產生器及產生增強熵的方法
JP2022082405A (ja) * 2020-11-20 2022-06-01 株式会社東芝 バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法
JP7214772B2 (ja) 2020-11-20 2023-01-30 株式会社東芝 バイアスされたランダムビットストリームを生成するためのシステム及び方法並びに量子通信システム及び方法

Also Published As

Publication number Publication date
US8861720B2 (en) 2014-10-14
JPWO2012014291A1 (ja) 2013-09-09
US20130129083A1 (en) 2013-05-23
JP5544611B2 (ja) 2014-07-09

Similar Documents

Publication Publication Date Title
JP5544611B2 (ja) 耐タンパ性メモリ集積回路およびそれを利用した暗号回路
Sokolov et al. Design and analysis of dual-rail circuits for security applications
Kumar et al. EE-SPFAL: A novel energy-efficient secure positive feedback adiabatic logic for DPA resistant RFID and smart card
JP4687775B2 (ja) 暗号処理装置
Maistri et al. Double-data-rate computation as a countermeasure against fault analysis
US9325494B2 (en) Method for generating a bit vector
US20110050279A1 (en) Lightweight secure physically unclonable functions
Cilio et al. Mitigating power-and timing-based side-channel attacks using dual-spacer dual-rail delay-insensitive asynchronous logic
TW201839603A (zh) 用於產生真隨機亞穩態正反器鏈的模型的電腦系統
WO2015145487A1 (ja) クロック位相制御回路
CN111008407A (zh) 用于执行虚拟加密操作的加密电路
Khan et al. A symmetric D flip-flop based PUF with improved uniqueness
Rashidi Efficient and high‐throughput application‐specific integrated circuit implementations of HIGHT and PRESENT block ciphers
Dodo et al. Secure STT-MRAM bit-cell design resilient to differential power analysis attacks
KR101666974B1 (ko) 소수 생성
US20140292371A1 (en) Multi-threshold dual-spacer dual-rail delay-insensitive logic (mtd3l) circuit design
JP5231079B2 (ja) 疑似乱数発生器及びデータ通信装置
Teegarden et al. Side-channel attack resistant ROM-based AES S-Box
Gupta et al. Improved VLSI architecture of dual-CLCG for Pseudo-Random bit generator
Anchana et al. Design of PUF Based Chaotic Random Number Generator
Bousselam et al. On countermeasures against fault attacks on the advanced encryption standard
KR101406941B1 (ko) Fpga 기반된 진정한 난수 생성기의 성능 향상을 위한 장치 및 방법
JP2004157168A (ja) 乱数生成装置
Kareem et al. A robust architecture of ring oscillator PUF: Enhancing cryptographic security with configurability
Hossain et al. A dependable and resource-frugal ring oscillator physically unclonable function

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012526239

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13812628

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 10855301

Country of ref document: EP

Kind code of ref document: A1