The invention includes a system for smoothing current consumption in a digital logic module. A processing circuit is configured to receive an input and manipulate the input during a processing time period to produce an output. A non-processing time period follows production of the output. The processing circuit is further configured to draw an active range of current during the processing time period and an inactive range of current during the non-processing time period. The system comprises a smoothing circuit coupled to the processing circuit and configured to engage the processing circuit during the non-processing time period. The smoothing circuit is also configured to cause the processing circuit to draw an active range of current during the non-processing time period.
|
8. A method of smoothing current consumption in a digital logic module having a processing circuit configured to receive an input and manipulate the input during a processing time period to produce an output, production of the output being followed by a non-processing time period, wherein the processing circuit is further configured to draw an active range of current during the processing time period, and an inactive range of current during a non-processing time period, the method comprising:
driving the processing circuit during the non-processing time period;
generating an active range of current during the non-processing time period;
tracking the processing time period;
generating a last-cycle signal at the end of the processing time period;
triggering the beginning of the processing period with a start signal; and
generating a store signal at the end of the processing time period.
6. A method of smoothing current consumption in a digital logic module having a processing circuit coupled to an output port, the method comprising:
receiving an input;
driving the processing circuit to manipulate the input during a processing time period;
deriving an output from the input manipulated during the processing time period;
making the output available to the output port;
driving the processing circuit to manipulate the input during a non-processing time period;
tracking the processing time period with a counter;
receiving a start signal when the input is available;
triggering the beginning of the processing time period;
transmitting an interrupt signal when the output is available, wherein the interrupt signal coincides with the end of the processing time period and the beginning of the non-processing time period; generating a last-cycle signal indicating the end of the processing time period;
combining the last-cycle signal and the start signal into a store signal;
receiving the store signal at the end of the processing period; and
storing the output upon receiving the store signal.
1. A system for smoothing current consumption in a digital logic module comprising:
a processing circuit configured to receive an input and manipulate the input;
a counter coupled to the processing circuit and configured to track a processing time period during which the processing circuit manipulates the input in order to create an output wherein the counter is further configured to generate a last-cycle signal indicating the end of the processing time period, the last-cycle signal and the start signal combining to form a store signal;
an output port coupled to the processing circuit and configured to convey the output while the processing circuit continues to operate during a non-processing time period, wherein the processing time period is followed by the non-processing time period, which ends as soon as a new processing time period begins;
a start line coupled to the counter and configured to convey a start signal to the counter when the input is available to the processing circuit, wherein the start signal triggers the beginning of the processing time period; and
an interrupt line coupled to the counter and configured to convey an interrupt signal from the counter when the output is available at the output port, wherein the interrupt signal coincides with the end of the processing time period and the beginning of the non-processing time period; and
a storage circuit coupled to the output port and configured to store the output upon receipt of the store signal, and during the non-processing time period transmit the output to the output port.
4. A system for smoothing current consumption in a digital logic module having a processing circuit configured to receive an input and manipulate the input during a processing time period to produce an output, a non-processing time period following production of the output, the processing circuit further configured to draw an active range of current during the processing time period and an inactive range of current during the non-processing time period, the active range of not less than the inactive range of current, the system comprising:
a smoothing circuit coupled to the processing circuit and configured to engage the processing circuit during the non-processing time period and to cause the processing circuit to draw an active range of current during the non-processing time period;
a counter in said smoothing circuit coupled to the processing circuit and configured to track the processing time period wherein the counter is further configured to generate a last-cycle signal indicating the end of the processing time period, the last-cycle signal and the start signal combining to form a store signal;
a first storage circuit coupled to the processing circuit and configured to store the output during the non-processing time period;
a start line coupled to the counter and configured to convey a start signal to the counter when the input is available to the processing circuit, wherein the start signal triggers the beginning of the processing time period; and
an interrupt line coupled to the counter and configured to convey an interrupt signal from the counter when the output is available, wherein the interrupt signal coincides with the end of the processing time period and the beginning of the non-processing time period; and
a second storage circuit coupled to the processing circuit and configured to receive an intermediate result from the processing circuit during the processing time period, to receive the store signal and to store the intermediate result as the output, wherein during the non-processing time period the processing circuit continues to manipulate the input and generates the active range of current.
2. The system of
3. The system of
a flip-flop coupled to the output port and configured to transmit the output to the output port during the non-processing time period; and
a multiplexer coupled to the counter, the processing circuit, and the flip-flop and configured to transmit the output to the flip-flop and to retransmit the output to the flip-flop upon receiving the store signal.
5. The system of
7. The method of
receiving, during the non-processing time period, an intermediate result from the processing circuit; and
maintaining, during the non-processing time period, storage of the output.
9. The method of
storing the output at the end of the processing time period.
10. The method of
manipulating the input during the non-processing time period.
11. The method of
saving the output during the non-processing time period.
|
This application claims priority to French Patent Application Ser. No. 03 08735, filed Jul. 17, 2003.
1. Field of Invention
The present invention relates to smoothing current consumption in digital logic modules and more particularly to reshaping current in processors in order to make current analysis more difficult.
2. Prior Art
Peripherals 108 may be functional logic, for example UART, crypto-processing, digital signal processing (DSP), and digital filtering.
As the algorithm used by the crypto-processor is executed, current consumption due to digital cell switching increases when the processing starts and decreases when processing ends. The current increases due to operation of the combinatorial (for example AND, OR, INVERT, MUX, and XOR) and sequential (D flip flops, or DFFs) cells in the digital module that execute the algorithm. During a non-processing time period, typically the only toggling is on the clock pins of DFFs. This value, together with a static leakage current, is not significant compared to the current consumed when processing is active.
User interface module 200 processes system data, for example address, data, read/write, and select signals, in order to generate commands and data for algorithm module 202. Algorithm module 202 performs cipher/decipher according to control command, data and a cipher/decipher key provided by user interface module 200. Counter 108 receives a start signal from user interface 200 and organizes the data path into algorithm module 202.
A crypto algorithm may be represented as a basic combinatorial function concatenated several times to obtain the result. For example, a basic combinatorial function is implemented once and connected to storing means (DFFs or others). A multiplexer is required to select the input of the algorithm function (data input or intermediate result) depending on a counter module n value (n being the number of iteration to perform to obtain the result, 16 for example in the Data Encryption Standard (DES)). The Triple Data Encryption Standard (TDES) uses three, 16 iteration periods.
Counter 204 receives a start signal on start line 206. The start signal triggers a first-cycle signal from counter 204 to multiplexer 208 in algorithm module 202. Multiplexer 208 receives first-cycle signal and selects input from in-data line 210. Input data then goes to combinatorial circuit 212, which, in combination with a key and a cipher, manipulates the input data. Combinatorial circuit 212 begins processing upon receipt of the first-cycle signal and the input data, thus beginning the processing period. Combinatorial circuit 212 transmits the manipulated input data to multiplexer 213. During processing time period, multiplexer 213 receives processing period signal from counter 204 and therefore selects data from combinatorial circuit 212. Multiplexer 213 transmits the manipulated input data to DFF 214, which then sends the manipulated data to output 216, multiplexers 208 and 213. For subsequent iterations, no first-cycle signal is transmitted to multiplexer 208, so multiplexer 208 selects the manipulated input data from DFFs 214 and sends it to combinatorial circuit 214, which again manipulates the input data. Counter 204 keeps track of each iteration and counts down until the last iteration. At the last iteration, counter 204 sends a last-cycle signal to combinatorial circuit 212, indicating the end of the processing time period. Processing period signal from counter 108 triggers multiplexer 213 to select input from DFF 214 rather than combinatorial circuit 212. DFF 214 receives recycled data, which at this point in the cycle is desired output data. An interrupt signal is sent from counter 204 indicating that data available at output 216 is a desired output, so user interface module 200 retrieves the output data from output 216 on the appropriate clock cycle.
At the end of processing time period counter 204 is reset and waits for a new sequence to be started.
When a buffer of data is processed, current consumption can be seen as a series of pulses. The low level period of this waveform represents the current consumption of the clock tree and the clock pin of the DFFs of the peripheral module. The high level period represents combinational circuit 212 switching current. By synchronizing external digital analyzer equipment on the rising edge of the pulses, it is possible to store a digital representation of the current. This model can be processed to extract the “key” value of the algorithm without destroying the integrated circuit with an intrusive attack (processing the model is often referred to as a non-intrusive attack). It is based on the difference in current consumption when different data are processed.
If a clock period is used to schedule the different steps of data processing, processing time period 315 may be detected or observed by non-intrusive methods like current consumption shape analysis. Each time data is processed the current increases to an active range of current, and then decreases to an inactive range of current during non-processing time period 335. Consequently, it is possible to determine data processed inside an integrated circuit.
What is needed is a system and method of making the analysis of current consumption more difficult.
The invention consists of filling the non-processing time period with a current value close to the value (and shape) of the current during the processing time period. The invention may be used in any circuit where digital logic modules are embodied. The invention takes place in the digital part of an integrated circuit. When data is processed in a digital module, combinatorial logic operates and causes an increase in power consumption. The increase in current is primarily due to cell switching, considering only the digital logic. The total cell leakage current is low compared to this switching current.
The system and method reshapes current consumption in order to make current analysis more difficult. Current reshaping is performed during the non-processing time period by the same digital logic that created the current shape during the processing time period, leading in a similar current waveform whether data is processed or not.
The end of the processing time period is the beginning of the non-processing time period. Smoothing circuit 406 engages processing circuit 400 during the non-processing time period in order that processing circuit 400 draws the same range of current during the non-processing time period as during the processing time period. In one embodiment, operation of processing circuit 400 during the non-processing time period does not alter the output available at output port 410.
DFFs 520 send the manipulated input to storage circuit 530 and to multiplexer 510. Now in the second cycle, multiplexer 510 does not receive a first-cycle signal so it transmits the manipulated input from DFFs 520 to combinatorial circuit 500. Smoothing circuit 406 keeps track of the number of iterations necessary for the input to pass through combinatorial circuit 500.
During each iteration, DFFs 520 transmit each cycle of manipulated input to storage circuit 530. Throughout the processing time period storage circuit 530 receives an intermediate result that is not the desired output. At the end of the processing time period, after the input has been sufficiently manipulated to produce the desired output, smoothing circuit 406 transmits a store signal to storage circuit 530. After storage circuit 530 receives the store signal it stores the desired output and makes it available at output port 410 throughout the non-processing time period. At the beginning of the next processing time period, storage circuit 530 continues to make the previously desired output available at output port 410 until the next store signal.
During the non-processing time period, combinatorial circuit 500 continues to manipulate input supplied from multiplexer 510, despite having produced the desired output. The desired output is stored in storage circuit 530, made available to output port 410 and not affected by the continued manipulation of combinatorial circuit 500 during the non-processing time period. At the end of the non-processing time period and the beginning of the next processing time period, smoothing circuit 406 receives a start signal and sends a first-cycle signal to multiplexer 510, which then selects the input available on input line 404. The remainder of the next processing time period proceeds as described above.
In one embodiment, storage circuit 530 comprises multiplexer 540 and DFFs 550. Multiplexer 540 receives manipulated input from DFFs 520 and input from DFFs 550 during the processing time period. Until multiplexer 540 receives a store signal from smoothing circuit 406, multiplexer 540 selects input from DFFs 550 to output to DFFs 550. DFFs 550 make the input from multiplexer 540 available to output port 410 and multiplexer 540. The same value cycles between multiplexer 540 and DFFs 550 until the store signal toggles multiplexer 540 to select the desired output, available at the end of the processing time period.
In one embodiment, assertion of first-cycle signal is removed during the non-processing time period. DFF 625 may output to an AND gate (not shown) that receives the first-cycle signal, so that only when the start signal has been transmitted and not yet reset does the first-cycle signal trigger. This embodiment could make it more difficult to analyze a TDES algorithm, where special processing is performed during the first cycle of each DES period. This special processing leads to a different current value due to the fact that it reproduces exactly the differences in consumption that occur during the first and last processing cycles. A similar idea applies to the last-cycle of each DES period.
Start signal toggles multiplexer 620 to select the assert, in this example a high input value of “one”. Multiplexer 620 passes the high input value to DFF 625, which transmits it to AND gate 630 and multiplexer 635. Multiplexer 635 has a default select of the input from DFF 625, so multiplexer 635 transmits the high value to multiplexer 620. On the next clock cycle, the start signal is no longer asserted, so multiplexer 620 defaults to the input from multiplexer 635. The high value continues cycling during the processing time period.
At the end of the processing time period, last-cycle signal toggles multiplexer 635, causing multiplexer 635 to select the deassert, or low input value of zero in this example. Multiplexer 620 defaults to select the output of multiplexer 635 and will pass along the zero. Last-cycle signal is high on AND gate 630. DFF 625 has not received the results of the zero yet, so DFF 625 has a high output to AND gate 630. The combined high signals to AND gate 630 cause AND gate 630 to assert the store signal, triggered by the end of the processing time period.
Because counter 600 continues counting during the non-processing time period, counter 600 should not issue a store signal, which would change the stored output value at output port 410. Multiplexer 620, driven by the start signal, prevents assertion of the store signal during the non-processing time period.
As any person skilled in the art will recognize from the previous description and from the figures and claims that modifications and changes can be made to the invention without departing from the scope of the invention defined in the following claims.
Patent | Priority | Assignee | Title |
7433262, | Aug 22 2006 | Atmel Corporation | Circuits to delay a signal from DDR-SDRAM memory device including an automatic phase error correction |
7539078, | Aug 22 2006 | Atmel Corporation | Circuits to delay a signal from a memory device |
7701802, | Aug 22 2006 | Atmel Corporation | Circuits to delay a signal from a memory device |
7986781, | Jul 07 2005 | NAGRAVISION S A | Method for controlling access to encrypted data |
Patent | Priority | Assignee | Title |
5086467, | May 30 1989 | Motorola, Inc. | Dummy traffic generation |
5995629, | Feb 15 1995 | Infineon Technologies AG | Encoding device |
6320770, | Sep 30 1998 | NXP B V | Data processing device and method for the voltage supply of same |
6490646, | Jun 15 1998 | GEMALTO SA | Integrated circuit device made secure by means of additional bus lines |
WO23866, |
Date | Maintenance Fee Events |
Oct 06 2008 | ASPN: Payor Number Assigned. |
Apr 13 2009 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Mar 06 2013 | M1552: Payment of Maintenance Fee, 8th Year, Large Entity. |
May 19 2017 | REM: Maintenance Fee Reminder Mailed. |
Nov 06 2017 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Oct 11 2008 | 4 years fee payment window open |
Apr 11 2009 | 6 months grace period start (w surcharge) |
Oct 11 2009 | patent expiry (for year 4) |
Oct 11 2011 | 2 years to revive unintentionally abandoned end. (for year 4) |
Oct 11 2012 | 8 years fee payment window open |
Apr 11 2013 | 6 months grace period start (w surcharge) |
Oct 11 2013 | patent expiry (for year 8) |
Oct 11 2015 | 2 years to revive unintentionally abandoned end. (for year 8) |
Oct 11 2016 | 12 years fee payment window open |
Apr 11 2017 | 6 months grace period start (w surcharge) |
Oct 11 2017 | patent expiry (for year 12) |
Oct 11 2019 | 2 years to revive unintentionally abandoned end. (for year 12) |