This application relates to an electronic system that can be protected from counterfeiting and reverse-engineering. This application also relates to a method and an apparatus for designing an electronic system that can be protected from counterfeiting and reverse-engineering.
Electronic systems, which include hardware and/or software components, may be implemented on one or more monolithic devices that realize processing or control functions. The monolithic devices are referred to as “chips.” These chips may include processors, Programmable Logic Devices (PLDs), Integrated Circuits (ICs), Application Specific Integrated Circuits (ASICs), Application Specific Standard Products (ASSPs) and other off-the-shelf (OTS) components. Examples of the PLDs are Field Programmable Gate Array (FPGA), Complex Programmable Logic Device (CPLD), Programmable Array Logic (PAL), etc.
The chips may be designed in a design house and sent to silicon foundries for fabrication. The fabricated chips are assembled with other components and deployed to a target product. During these processes, individuals or organizations may have access to “soft” or “hard” intellectual property (IP) of the chips. The soft IP is represented by computer code, such as hardware description language, to describe abstract behavior or structure of the chips. This code is used to synthesize a real or hard IP of the chips. The individuals or organizations may include, but not limited to, chip foundries, integrated device manufacturers, contract manufacturers, parts distributors, and system integrators.
The protection of chip designs for critical applications is an essential security requirement. However, the security is difficult to achieve because a majority of System-on-Chip (SoC) fabrication occurs in silicon foundries where protection is not guaranteed. The layout masks used at the foundries may be reverse-engineered. Although the design is protected during fabrication, adversaries can obtain and reverse-engineer a fabricated chip. The production of counterfeit chips is a problem with significant implications, both in the commercial market and in the area of national security. Counterfeiting can be done easily through overproduction at the foundry (making additional copies of the device) or subsequently by using reverse-engineered masks.
One of the conventional protection solutions is a Physically Unclonable Function (PUF) technique. The PUF technique attaches an identifier depending on physical characteristics of the chip to provide an anti-counterfeiting capability. However, the identifier attached by the PUF technique is breakable with a moderate computational effort. Also, the identifiers attached by the PUF technique do not protect against reverse-engineering. Therefore, more efficient protection solution is needed to protect electronic systems from counterfeiting and reverse-engineering.
An exemplary embodiment provides an efficient protection of electronic systems from counterfeiting and reverse-engineering. In the exemplary embodiment, an electronic system may include control logic and data-path logic implemented on a single chip. The exemplary embodiment may determine the operation of the electronic system by control logic. The control logic may be implemented by one or more finite state machines (FSMs) that direct communication protocols and the behavior of the data-path logic, such as registers, arithmetic logic units (ALUs), multipliers, etc. The exemplary embodiment protects the electronic system from counterfeiting and reverse-engineering by securing the FSM functionality of the control logic.
An exemplary embodiment makes the behavior of FSMs partially reconfigurable and hides configuration data in a secure memory device. The configuration data is loaded from the memory device and used to configure the FSMs when an electronic system is turned on. The original FSM configured with correct configuration data can be obfuscated by “fake” FSMs having incorrect configuration data. The exemplary embodiment obfuscates the behavior of the FSMs both from the standpoint of the foundry as well as from adversaries. A user may control the level of obfuscation.
In one aspect, a method is provided for designing an electronic system that can be protected from counterfeiting and reverse-engineering. The method includes describing the electronic system by one or more finite state machines (FSMs), and inserting a reconfigurable module in at least one of the FSMs. The reconfigurable module is configured by configuration data. The method also includes saving the configuration data separately from the reconfigurable module.
In another aspect, an electronic system is provided that is protected from counterfeiting and reverse-engineering. The electronic system includes one or more finite state machines (FSMs) describing behavior of at least a portion of the electronic system, and a reconfigurable module inserted in at least one of the FSMs. The reconfigurable module is configured when configuration bits are loaded in the reconfigurable module. The electronic system includes a non-volatile memory device storing the configuration data separately from the reconfigurable module. The configuration data may be the configuration bits themselves or other data used to generate the configuration bits.
The above and other aspects, features and other advantages will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings, in which:
An exemplary embodiment provides an efficient method and apparatus for preventing electronic systems from counterfeiting and reverse-engineering. In the exemplary embodiment, an electronic system may be implemented on a chip. A system designer may design the control logic of the electronic system with one or more finite state machines (FSMs). The system designer may insert in at least one of the FSMs a reconfigurable module to obfuscate the FSM. The reconfigurable module can be configured differently depending on the configuration data, and only one of the configuration data is correct for the electronic system. Therefore, the exemplary embodiment can protect the electronic device from counterfeiting and reverse-engineering by securing the functionality of the FSM with the configuration data.
An exemplary embodiment may assign a unique key to the reconfigurable module so that the configuration data is encrypted with the key. Furthermore, the configuration data is separately stored in a secure memory device and loaded in the reconfigurable module when the electronic system is turned on. As such, the combination of the configuration data stored in a secure memory device and the reconfigurable module inserted in the FSM of the electronic system creates an efficient defense against counterfeiting and reverse-engineering.
The storage device 124 may be, for example, a hard-drive, CD-ROM or DVD, for storing an operating system (OS) 126 and for storing application software programs, such as design tool 128. Design application or tool 128 may enable system designers (“users”) to design an electronic system, such as an integrated circuit (IC). Using design tool 128, the users can design an electronic system that is protected from counterfeiting and reverse-engineering. Design tool 128 may generate a design 130 of the electronic system in different levels. For example, the design 130 may describe the electronic system in computer readable code, such as hardware description language. The design 130 may also describe the electronic system in a netlist level. An exemplary design flow using design application or tool 128 will be described below with reference to
The computer code is converted into a structural netlist including Boolean primitive functions (OR, NOR, XOR, AND, and others) interconnected by wires (step 206). Design application or tool 128 interprets the computer readable code and performs optimizations to convert the design as specified in the computer code into the structural netlist. This design is now timing-optimized, in that a system built in the way specified in the structural netlist will likely operate at the target design frequency. The structural netlist is used to implement the design through either the ASSP/ASIC (step 208) or FPGA (step 210).
An exemplary embodiment may determine the operation of an electronic system by control logic. The electronic system may include control logic and data-path logic. The control logic may be implemented by finite state machines (FSMs) that direct communication protocols and the behavior of data-path logic.
An FSM is a behavior model sometimes used to design digital logic or computer program. An FSM has finite internal memory. An FSM includes a finite number of states, transitions between the states, and actions so that the operation of an FSM begins from one of the states, goes through transitions depending on input to different states and can end in any of the states available.
The exemplary embodiment protects the electronic system from counterfeiting and reverse-engineering by making the behavior of the FSMs partially reconfigurable. The reconfigurable portion of the FSMs is configured by configuration bits. The configuration bits are loaded when the electronic system is turned on. They may be stored in a secure memory device or may be generated based on other data stored in a secure memory device.
An exemplary embodiment constructs a fake FSM by modifying the design of the original FSM. The exemplary embodiment inserts in the original FSM a reconfigurable module that can be configured by configuration bits. The reconfigurable module may change states, state transitions, inputs, and outputs. The reconfigurable module may add new states and new inputs.
In the exemplary embodiment, the state replacement modifies the original FSM by changing the transitions from state Sj and the outputs depending on state Sj. If replacement state R is a state from a different FSM not connected to the original FSM, the two FSMs become interconnected in the modified design. One of ordinary skill in the art will appreciate that one-hot encoding is an illustrative example and fake FSMs are not constrained to the one-hot encoding. Rather, the fake FSM concept may apply to other types of encoding, such as binary encoding.
A replacement MUX controlled by a configuration bit can be directly used to replace an FSM output signal without any state substitution. However, such a signal replacement may be more visible than a modification of the state transition graph of a FSM. The most useful modifications are those that cause the greatest number of changes in the behavior of the original FSM. The states to be replaced can be determined such that the replaced states affect the largest number of state transitions and outputs.
Replacement signal R may be the output of a gate implementing a different transition in the original FSM or in a different FSM. Alternatively replacement signal R may be a fake, or an existing state in the original FSM or in a different FSM. When R is a state, the replacement introduces an unconditional transition from R to Sj. If R=Sj, then once the FSM enters Sj, it remains locked in this state.
The resulting FSMs are significantly more complex than the original FSMs. All the FSMs that are separated in the original design may be linked into one FSM in the modified design. The state space may increase exponentially, since any configuration bit doubles the number of states. If the modified design has n configuration bits, the original design can be obtained by only one of the 2n possible configurations. Reverse-engineering of the device without knowing the configuration bits needed for its correct functional operation is useless since any other configuration generates a circuit whose behavior is very different from the normal operation. Using a large n (for example, n≧64) makes exhaustive analysis practically infeasible.
In an exemplary embodiment, the configuration bits for correct configuration of an electronic system are stored separate from the reconfigurable modules inserted into the FSMs. The configuration bits may be stored in a non-volatile memory device, such as a flash memory device. The configuration bits may be stored on the same chip where the electronic system is implemented. Alternatively, the configuration bits may be stored on a different chip than the electronic system and assembled in the same circuit board so that the configuration bits are loaded in the electronic system when the circuit is turned on.
The chip designer knows the correct configuration bits, and saves their correct values in a secure memory device. The configuration occurs automatically each time power is turned on. This feature prevents counterfeiting by overproduction since all the chips produced by the manufacturer are inoperable without the correct configuration data.
The chip designer may control the level of obfuscation. The first option is to have the n configuration bits stored in a secure memory. The level of obfuscation may differ depending on the number of configuration bits. The chip manufacturer may be given a non-functional configuration that is different from the correct configuration required for the normal operation of the chip. Manufacturing tests may not require the device to work in its full functional mode.
The second option is to have a configuration FSM 804 that receives its initial state from a non-volatile memory device 802 and generates configuration bits for obfuscated functional FSMs 806, as shown in
In addition to the configuration bits, configuration FSM 804 can also provide obfuscated functional FSMs 806 with fake inputs and/or fake states for obfuscation. For example, one of the state bits that is not a configuration bit in the configuration FSM can be used to supply the replacement state or signal R in
The number of legal initial states is much smaller than the number of illegal initial states to reduce the probability of an adversary finding a legal initial state by experimenting with different initial states. The chance of identifying a legal initial state may be further reduced because realizing that the operation of the chip is incorrect may take a long time, and each illegal configuration creates a different incorrect behavior. Although the adversary may have a structural model of the electronic system, the operation of the configuration FSM is difficult to understand since it depends on an initial state that is invisible (hidden in a secure memory device) and on inputs who are actually “don't care”.
Unlike the first option, where the configuration bits are constant after loading from the secure memory, in this scheme the configuration bits are changing during the first k cycles.
An additional degree of obfuscation can be obtained by making the behavior of the chip pseudo-deterministic. The normal operation can start any time after the configuration bits have reached their correct values, so we can start after the first k+r cycles, where r is a random parameter that varies from run to run (for example, r can be produced by a random number generator). Reverse engineering relying on analyzing the chip behavior in different runs becomes more complicated if signal values in different runs are difficult to correlate since the legal operation has a different starting point in each run.
The different legal initial states can serve as chip identifiers in an exemplary embodiment. Since there may be several legal initial states, it is possible to load each chip with a different legal initial state. Therefore, the different legal initial state loaded in each chip can serve as the identifier of the chip. With this feature, the exemplary embodiment can create unique identifiers to keep track of the legally manufactured chips. An adversary does not have knowledge of the legal initial states.
In an exemplary embodiment, the degree of obfuscation can be increased by making the configuration FSM partially reconfigurable as well, using the same techniques as those used for the functional FSMs. The configuration data of the configuration FSM may be stored in a non-volatile memory device along with the initial state. The degree of obfuscation can also be increased by encrypting the configuration data or the initial state stored in a non-volatile memory device. The configuration data or the initial state may be encrypted with a key assigned to the chip. The encryption key may be derived from a Physically Unclonable Function (PUF) technique. The key may be generated on demand and does not need to be stored inside the chip.
The degree of obfuscation can be further increased by replacing selected data-path blocks with reconfigurable hardware. The reconfigurable hardware is configured by the same configuration mechanism described above. The techniques for replacing selected data-path logic with reconfigurable hardware are described in more detail in co-pending application (Attorney Docket No. DAW-020) filed on Oct. 13, 2010 and entitled “PROTECTING ELECTRONIC SYSTEMS FROM UNAUTHORIZED ACCESS AND HARDWARE PIRACY.” The content of the aforementioned application is incorporated by reference.
Exemplary embodiments are described above. It is, however, expressly noted that these exemplary embodiments are not limiting, but rather the intention is that additions and modifications to what is expressly described herein also are included within the scope of the present implementation. Moreover, it is to be understood that the features of the various embodiments described herein are not mutually exclusive and can exist in various combinations and permutations, even if such combinations or permutations are not made express herein, without departing from the spirit and scope of the present implementation.
Since certain changes may be made without departing from the scope of the present implementation, it is intended that all matter contained in the above description or shown in the accompanying drawings be interpreted as illustrative and not in a literal sense. Practitioners of the art will realize that the sequence of steps and architectures depicted in the figures may be altered without departing from the scope of the present implementation and that the illustrations contained herein are singular examples of a multitude of possible depictions of the present implementation.
This application claims priority to provisional U.S. patent application No. 61/251,251 filed Oct. 13, 2009. The content of the aforementioned application is hereby incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61251251 | Oct 2009 | US |