The following relates generally to digital electronics.
Digital electronic circuitry is often integrated into a miniature electronic circuit, referred to as an integrated circuit or a “chip.” A chip generally has a number of input and output pins, which are respectively used to feed input signals into the chip and to access the corresponding output signals. A common input pin on a chip is a reset pin, which typically drives a system-wide reset signal for setting or resetting many or all of the flip flops and other circuit elements to an initial default state.
When a chip is first powered up, the flip flops are initially in an undetermined state. Therefore, the reset pin is typically asserted upon power up to set the flip flops to their initial designated state. Commonly, the reset is also used to set the minimum functionality or features of the chip. For example, a chip may include one or more features that are not intended to be available to the user. Therefore, the reset signal ensures such features are disabled by appropriately conditioning the associated circuitry.
Typically, the reset signal acts to initialize the availability of all features upon reset. Thereafter, only features meant to be accessed by a particular user can be enabled or “turned on” by the user by asserting signals on the input pins, or by other means. Therefore, if a user is not intended to have access to a particular feature, for example if the user did not purchase the particular feature, or if the feature is meant for testing only, the ability to enable that feature is disabled by the reset signal. In this way, a single circuit can be manufactured having a plurality of features, but only a subset of these features may be made available to and enabled by a particular user.
However, there exists attacks on a chip in which the reset signal is prevented from being asserted. For example, the attacker may try to lift the reset pin, overdrive the reset pin, or otherwise prevent the reset from occurring. Such an attack may be used to try and enable a feature that was not intended to be available to the user. As explained above, when a digital circuit is initially powered up, the flip flops are in an undetermined state. Such un-reset flip flops generally have a 50% chance of powering up in either the one or zero state, although the likelihood that a particular flip flop powers up in one particular state depends on factors such as the flip flop design, the parasitic capacitance, and the physical properties of the flip flop. Additionally, the speed at which the power-on voltage ramps up, as well as other physical attributes that may be controllable, can also affect the flip flop's power up state. Therefore, if the reset is not asserted, particular features may be enabled that are not intended to be available.
Representative embodiments will now be described by way of example only with reference to the accompanying drawings, in which:
In general terms, there is disclosed a dedicated system for monitoring whether a reset signal has been asserted and outputting a confirmatory signal indicating accordingly. In one embodiment, the confirmatory signal can be used to trigger a reset signal if the system determines that a reset condition has not occurred.
A specific embodiment will first be described with reference to
As shown in
The reset signal driven onto pin 106 is configured to set the contents of each flip flop 202a-n to a predetermined value, either to a one or a zero. Therefore, when the reset signal is asserted, the group 202 of flip flops 202a-n produces a string of data values in a predetermined pattern 204.
The reset signal can be asynchronous or synchronous. For example, in an embodiment in which the reset signal is asynchronous, during application of the reset signal, a signal is applied to produce a predetermined value, either a one or a zero, at the Q output of each flip flop 202a-n. In an embodiment in which the reset signal is synchronous, a predetermined value, either a zero or a one, is applied to the D input of each flip flop 202a-n with highest priority. When the synchronous reset signal is applied, a clock is also provided to cause the Q output of each flip flop 202a-n to obtain the predetermined value that is applied to the D input. When the synchronous reset signal is inactive, the Q output of each flip flop 202a-n is fed back into its D input in order to maintain its state.
Whether the reset signal is asynchronous or synchronous, when it is asserted, each flip flop 202a-n is loaded with a predetermined value and therefore the group 202 of flip flops 202a-n outputs the string of data values in a predetermined pattern 204. For example, in the embodiment shown in
It is preferred that the predetermined pattern 204 be chosen to include an approximately equal number of ones and zeros, and that all flip flops 202a-n are of the same library cell. This way, if each flip flop 202a-n has an equal likelihood of powering up to a one or a zero, the probability of the flip flops arbitrarily powering up to predetermined pattern 204 is only one in 2n (e.g., one in 2128, assuming 128 flip flops), which is extremely low when n is large. Alternatively, if the library cell has a “power on” affinity biased towards one or biased toward zero, it is even less probable that the arbitrary pattern will be equal to predetermined pattern 204.
Logic elements are placed at the output of the flip flops 202a-n to modify the string of data values and produce a set of signals that have a common digital value when the reset signal is asserted. Specifically, in the embodiment in
In use, if the reset signal on pin 106 is asserted as intended upon power up, flip flops 202a-n will be configured by the reset signal to output a string of data values in predetermined pattern 204. The output 210 of AND gate 208 will therefore be one, indicating a reset condition has been attained. However, if an attacker prevents a reset signal from being asserted during power up, each flip flop 202a-n will power up to an arbitrary value, which with large probability will produce a string having an arbitrary pattern that does not match predetermined pattern 204. Accordingly, the output 210 of AND gate 208 will therefore be zero, indicating that a reset condition has not been attained.
It will be appreciated that the specific circuit elements shown in
The string 303 of data values is fed to a comparator 308, which compares the pattern exhibited by the string 303 to predetermined pattern 304 and determines whether the string 303 matches the predetermined pattern 304. If the pattern exhibited by the string 303 matches predetermined pattern 304, comparator 308 determines that a reset condition has occurred and generates an output signal 310 that confirms attainment of a reset condition. Otherwise, if the pattern exhibited by the string 303 does not match predetermined pattern 304, comparator 308 determines that a reset condition has not occurred and generates an alternative output signal 310 accordingly.
It will be appreciated that many different arrangements of circuit elements may be utilized for achieving the detection circuitry of
Advantageously, output signal 310 may be utilized by logic circuitry in chip 100 to act appropriately if a reset condition has not occurred. For example, in the embodiment shown in
With the provision of circuitry such as that shown in
Alternatively, if desired, the system of
The system described in
Advantageously, the system of
Although the invention has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the spirit and scope of the invention as outlined in the claims appended hereto.
This application is a continuation of U.S. application Ser. No. 12/610,082 filed Oct. 30, 2009, the contents of which are incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4419596 | Kikuchi | Dec 1983 | A |
5661763 | Sands | Aug 1997 | A |
6097228 | Fujisawa | Aug 2000 | A |
6236249 | Choi | May 2001 | B1 |
6407597 | Ishiwaki | Jun 2002 | B1 |
6879193 | Okamoto | Apr 2005 | B2 |
7363561 | Dietrich | Apr 2008 | B2 |
7400179 | Lin | Jul 2008 | B2 |
20030202628 | Tester | Oct 2003 | A1 |
20050253638 | Dietrich et al. | Nov 2005 | A1 |
20080122512 | Lin | May 2008 | A1 |
20110074472 | Kawasaki | Mar 2011 | A1 |
20110241741 | Millendorf et al. | Oct 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
20110210770 A1 | Sep 2011 | US |
Number | Date | Country | |
---|---|---|---|
61193155 | Oct 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12610082 | Oct 2009 | US |
Child | 13106688 | US |