US8384415B2 - Method and system for identifying counterfeit programmable logic devices - Google Patents
Method and system for identifying counterfeit programmable logic devices Download PDFInfo
- Publication number
- US8384415B2 US8384415B2 US13/397,232 US201213397232A US8384415B2 US 8384415 B2 US8384415 B2 US 8384415B2 US 201213397232 A US201213397232 A US 201213397232A US 8384415 B2 US8384415 B2 US 8384415B2
- Authority
- US
- United States
- Prior art keywords
- multiplier
- binary
- bit
- feedback
- oscillator
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000012544 monitoring process Methods 0.000 claims abstract description 7
- 239000000758 substrate Substances 0.000 claims abstract description 6
- 238000012360 testing method Methods 0.000 claims description 14
- 230000000295 complement effect Effects 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 6
- 230000010355 oscillation Effects 0.000 description 34
- 230000006870 function Effects 0.000 description 26
- 238000011156 evaluation Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 5
- 229910052710 silicon Inorganic materials 0.000 description 5
- 239000010703 silicon Substances 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000003491 array Methods 0.000 description 3
- 238000011157 data evaluation Methods 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004549 pulsed laser deposition Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17758—Structural details of configuration resources for speeding up configuration or reconfiguration
Definitions
- the present invention relates to the implementation of a family of arithmetic feedback oscillators in a programmable logic device (PLD) for the purpose of combating counterfeiting and tampering.
- PLD programmable logic device
- the present invention assists security personnel to ensure (that is, authenticate) that the specific integrated circuit(s) that was originally installed (or intended for installation) in a sensitive system is, in fact, installed.
- Counterfeit programmable logic devices pose major problems with regard to the potential for electronic hacking and terrorism.
- Counterfeit integrated circuits contain a multitude of functionalities which may not be readily determined through simple assessment of the integrated circuit. Some of these functionalities may lie dormant until accessed or activated by an operator aware of the hidden functionality.
- counterfeit programmable logic devices are integrated into a hardware component and the problems associated therewith may not commonly be fixed with a simple patch or other software based repair. Rather, each counterfeit integrated circuit must be removed and replaced.
- the present invention provides such a method and system.
- the method includes the steps of providing a programmable logic device, the programmable logic device including a multiplier implemented into the substrate and constructing a multiplier feedback oscillator using the multiplier.
- the step of constructing the multiplier feedback oscillator includes incorporating a feedback loop into the multiplier and feeding least significant product bits back into one of operand inputs.
- the method further includes selecting input values producing repeating values in a lesser order bit of a product of the multiplier when first and second operands are applied to the multiplier and monitoring the lesser order bit and determining a predicted pattern.
- each binary counter receives output bits of the multiplier feedback oscillator for evaluating the frequency of change of the output bits of the multiplier.
- the method includes providing a programmable logic device, the programmable logic device including an arithmetic circuit implemented into the substrate; constructing an arithmetic feedback oscillator using the arithmetic circuit wherein the step of constructing the arithmetic feedback oscillator includes incorporating a feedback loop into the arithmetic circuit and feeding output bits back into an input of the arithmetic circuit; selecting input values producing repeating values in a lesser order bit of a product of the arithmetic circuit when first and second input are applied to the arithmetic circuit; monitoring the lesser order bit and determining a predicted pattern.
- FIG. 1 is a schematic showing a binary multiplier implementation.
- FIG. 2 is a schematic showing a ring oscillator.
- FIG. 3 is a schematic showing implementation of a ring oscillator using a binary multiplier (that is, a binary multiplier ring oscillator or multiplier oscillator or multiplier feedback oscillator) in accordance with the present invention.
- a binary multiplier that is, a binary multiplier ring oscillator or multiplier oscillator or multiplier feedback oscillator
- FIG. 4 is a binary multiplier feedback oscillator with a feedback multiplexer in accordance with the present invention.
- FIGS. 5 , 6 and 7 are graphical representations of results generated through the implementation of the present invention.
- FIG. 8 is a schematic showing an implementation of the present invention with input registers and a feedback multiplexer.
- FIG. 9 is a schematic showing the implementation of the “Sham” (or evaluation) counters and registers to store the output count values.
- FIG. 10 is a schematic of the multiplier feedback oscillator shown with reference to FIG. 4 including binary counters.
- FIG. 11 is a schematic of the multiplier feedback oscillator shown with reference to FIG. 4 including an output register for data evaluation.
- FIG. 12 is a schematic of the multiplier feedback oscillator shown with reference to FIG. 4 including binary counters and an output register for data evaluation.
- FIG. 13 is a schematic of a arithmetic feedback oscillator implemented using a binary adder (that is, an adder feedback oscillator) in accordance with the present invention.
- FIG. 14 is a schematic of an adder feedback oscillator in accordance with the present invention.
- FIG. 15 is a schematic of an implementation of an adder feedback oscillator in accordance with the present invention.
- FIGS. 16 and 17 are graphical representations of results generated through the implementation of the adder feedback oscillator of FIG. 15 .
- FIG. 18 is a schematic of a divider feedback oscillator in accordance with the present invention.
- FIG. 19 is a schematic of an implementation of a divider feedback oscillator in accordance with the present invention.
- FIGS. 20-33 are graphical representations of results generated through the implementation of the divider feedback oscillator of FIG. 18 .
- FIG. 34 is a schematic of an alternate divider feedback oscillator in accordance with the present invention.
- FIG. 35 is a schematic of a feedback oscillator in accordance with the present invention implemented using an arithmetic logic unit.
- the present invention provides a method and system for combating counterfeiting and tampering in the field of integrated circuits.
- Current programmable logic devices include arithmetic circuitry already implemented into the silicon substrate.
- the present invention utilizes a family of arithmetic feedback oscillators, for example, a multiplier feedback oscillator, an adder feedback oscillator, and a divider feedback oscillator in a programmable logic device (PLD) to implement a test circuit or sensor for the purpose of combating counterfeiting and tampering.
- PLD programmable logic device
- the implementation of the present invention assists security analysts to ensure the specific integrated circuit that was originally installed (or intended for installation) in a sensitive system is, in fact, installed.
- the present invention allows for authentication of digital devices such as PLD, FPGA (field programmable gate arrays), and microprocessors. That is, the present invention provides for the unique identification of seemingly identical digital components. Also the present invention is capable of distinguishing similarities (as well as differences) in related components such as components processed from the same foundry, with the same process, components of similar age, components manufactured (created) by the same manufacturer.
- the typical binary multiplier 10 implementation includes two input values, Operands A and B 14 , 16 , and an output result, the product 18 .
- the operands 14 , 16 may be any arbitrary bit width.
- the operands 14 , 16 need not be the same bit width, but may be depending on the application.
- the bit width of the product output 18 is sum of the bit widths of the input operands 14 , 16 , that is, a multiplier with two 8-bit inputs produces a 16-bit result.
- multipliers primarily focuses upon unsigned binary integers. That is, values that are positive whole numbers represented in the traditional binary nomenclature. Negative numbers are discussed later.
- a ring oscillator 100 in its simplest implementation, is a binary inverter 102 with some time delay 104 as shown in FIG. 2 .
- a ring oscillator is created within the inherent structure of a PLD using a multiplier integrated into the PLD (which generically results what is referred to herein as an arithmetic feedback oscillator or, in the case of a multiplier, a multiplier feedback oscillator).
- a multiplier integrated into the PLD
- the system designer or user of the PLD is able to incorporate circuitry providing a digital “fingerprint” that may be used for confirmation that the proper PLD is actually being used. It is appreciated the underlying concepts of the present invention can be implemented after the manufacturing process is complete by using the programmable nature (and intention) of the PLD.
- a predetermined, controlled oscillating signal is generated for identification of the PLD.
- This added circuitry does not affect the functionality of the PLD, but produces a signal only known to the system designer or user which may be used in identifying the counterfeit circuitry.
- a ring oscillator (or a multiplier feedback oscillator as referred to herein) 100 using a multiplier 10 is achieved, in its most basic form, by incorporating a feedback loop 200 into the multiplier 10 and feeding the least significant product bits 202 back into one of the operand inputs, for example, Operand A 14 , as shown in FIG. 3 .
- the diagram shown in FIG. 3 is technically correct but requires some additional detail to ensure reliability and predictable operation.
- initial operand values In order to ensure oscillation, initial operand values must be selected that produce the desired effect (the details of which are discussed below) and a method of providing the appropriate initial values to both operand inputs is required.
- the provision of the initial inputs is achieved by inserting a binary multiplexer 300 into the feedback loop 200 so that Operand A 14 may be input externally (via initial input conditions 302 ) or switched to receive the Product feedback (that is, the least significant product bits 202 ) provided by the feedback loop 200 (as shown in FIG. 4 ).
- the multiplexer 300 thereby provides an initial input 302 for initial conditions and provides additional delay so the multiplier feedback oscillator 100 implemented through the application of a multiplier (referred to below as a “multiplier feedback oscillator”) is functional for the purposes of the present invention.
- a multiplier referred to below as a “multiplier feedback oscillator”
- two's complement signed multiplication is employed. It is appreciated the two's complement is a methodology for signifying negative integers in computer application, by encoding both positive and negative numbers in a binary number representation.
- two's complement is disclosed for use in accordance with an embodiment of the present invention, two's complement is not required for operation of the present invention.
- Table 1 (3 ⁇ 3) does not use two's complement.
- Two's complement multiplication is just like multiplication of signed integers in that the basic rule of (1) a negative number times a negative equals a positive number, (2) positive time positive equals positive, and (3) positive time negative equals negative. The only difference is how many digits change value.
- ( ⁇ 1) ⁇ ( ⁇ 1) 1.
- (1 1111 1111) ⁇ (1 1111 1111) 0 0000 0001.
- the system initial conditions are set by setting Operand B 16 to ⁇ 1 and Input I 302 to ⁇ 1 and using the multiplexer select 304 to pass Input I 302 to Operand A 14 of the multiplier oscillator 100 .
- the multiplexer select 304 is changed to provide feedback (that is, the least significant product bits 202 ) via the feedback loop 200 from the multiplier result (product) 18 back to Operand A 14 resulting in an oscillating system.
- This set of initial conditions works, producing an oscillation but producing only limited information about the specific multiplier feedback oscillator 100 circuit.
- FIG. 7 show the waveform produced by a ⁇ 1 ⁇ 1 multiplication.
- the two inputs are ⁇ 1 (hexadecimal 1FF) and produce an output of 1 (hexadecimal 001) until the multiplexor select signal (“Mux_Sel”) changes from zero (low) to one (high), at which point the system begins oscillation on every output bit except bit 0 providing good inputs for the “Sham” (or evaluation) counters in the form of binary counters as described below in greater detail.
- Mux_Sel multiplexor select signal
- multipliers In all multipliers (binary or other counting systems) each bit is a function of the lesser order bits (that is, bits representing smaller values of the resulting product) but no bit is a function of higher order bits (that is, bits representing higher values of the resulting product). That mathematical fact is used in accordance with the present invention to produce pairs of numbers that generate a circular pattern of results.
- Table 1 illustrates this process by showing the decimal results and the 8 least significant bits of binary result (Least Significant Byte, LSB).
- the last digit in the decimal result repeats in a pattern of 9, 7, 1, 3.
- the least significant hexadecimal digit repeats in a hexadecimal pattern of 1, 3, 9, B.
- the least significant binary bit is always a 1 (multiplying two odd numbers always produces an odd result) and the second binary bit (representing 2) oscillates between a zero and a 1.
- P 0 and P 1 bits are no information about the state of the higher order input bits so one can actually say that the lower order bits don't know and don't care about the information in the higher order bits. This fact allows the information in the higher order bits to be discarded or truncated and the lower order multiplication still continues in the same manner. Higher order information is discussed later.
- the multiplier 10 may be of any input bit width greater than or equal to 2 and the oscillation will occur. For larger multipliers (wider bit width), the higher order bits actually become “noisy” since the multiplier 10 is constantly changing state before the outputs can settle. (These noisy bits still create a consistent pattern that is recorded by the evaluation counters or may be analyzed using some other method.)
- any initial condition set that includes (1) at least one odd number, or (2) two negative numbers results in an oscillation result.
- Another useful technique is setting the initial conditions to ⁇ 1 in two's complement and allowing all of the output bits to oscillate.
- the bits do not all oscillate together, but loose synchronization due to propagation delays in deriving each term.
- the oscillation frequency (and the relationship among the frequencies) of each output bit is unique based on the manufacturing tolerances of the silicon.
- the system disclosed with reference to FIG. 4 is improved through the addition of binary counters (that is, Sham or evaluation counters) 400 , 402 , 404 .
- the multiplier oscillator 100 is provided with binary counters 400 , 402 , 404 monitoring the various output bits of the multiplier oscillator 100 .
- the outputs of the binary counters 400 , 402 , 404 may then be evaluated for the purpose of evaluating the resulting patterns.
- the clock input of the first binary counter 400 receives the output bits generated as the zeroth bit product of the multiplier oscillator 100
- the clock input of the second binary counter 402 receives the output bits generated as the 1 st bit product of the multiplier oscillator 100
- the clock input of the M binary counter 404 receives the output bits generated as the M ⁇ 1 bit product of the multiplier oscillator 100 .
- the received output bits are monitored and evaluated in accordance with the principles of the invention discussed herein.
- the binary counters 400 , 402 , 404 receiving distinct output bits of the multiplier oscillator 100 are used in the evaluation of the frequency of change of the output bits of the multiplier oscillator 100 .
- a reference counter 600 associated with each of the binary counters 400 , 402 , 404 produces a time interval over which the binary counters 400 , 402 , 404 of the output bit are allowed to operate (or to count over a frequency).
- a reference oscillator 601 drives a binary counter referred to as the reference counter 600 .
- the reference counter 600 is used to measure a specific interval of time (or a time reference) for the purpose of monitoring count rate of the binary counters 400 , 402 , 404 , which is ultimately used to determine whether the integrate circuit at issue is what it purports to be.
- the reference counter 600 When the specific interval of time has elapsed, the reference counter 600 generates control signals for the binary counters 400 , 402 , 404 .
- control signals cause the following events to occur: (1) the binary counters 400 , 402 , 404 are temporarily disabled (that is, the binary counters 400 , 402 , 404 stops counting), (2) the data value (that is, the count value generated by the binary counters 400 , 402 , 404 ) is transferred to a register via the signal bus, and (3) the binary counters 400 , 402 , 404 are cleared (zeroed) and allowed to restart their counting process.
- the time interval is set sufficiently long enough that changes in the count value generated by the binary counters 400 , 402 , 404 are detectable and significant. One millisecond is a sufficient time interval for some applications. Longer or shorter increments may be applicable in other applications.
- the register 500 is connected to the outputs of the multiplier oscillator 100 and monitors a time interval generated by a clock or a binary counter to control the rate at which data is latched into the register described.
- a reference counter 602 and reference oscillator 603 are employed with the output register 500 for controlling the time periods for latching data.
- the data produced by the multiplier oscillator is random since each part of the multiplier oscillator is operating based on the intrinsic delays inherent in the implementation of the present multiplier oscillator.
- the rate of the change of the output of the multiplier oscillator is also random. Sampling this random data at a regular rate, therefore, produces a random output and the present multiplier oscillator may be used as a random number generator.
- the multiplier oscillator is used as a random number generator keys for encryption processes are available. This furthers the challenge of those wishing to cause harm as discussed below.
- the output register 500 and the binary counters 400 , 402 , 404 may be employed in a single system enhancing the operational efficiency thereof.
- the output register 500 and the binary counters 400 , 402 , 404 are simultaneously linked to the output pins of the multiplier oscillator and function in the same manner as described above.
- similar reference numerals are used in the disclosure of FIG. 12 .
- reference counters 600 , 602 and reference oscillators 601 , 603 are employed in control time periods. While distinct reference counters and reference oscillators are disclosed in the embodiment shown in FIG. 12 , a single reference counter/reference oscillator could be linked to both the output register and binary counters.
- the basic feedback multiplier oscillator 100 in accordance with the present invention is incorporated into a system capable of setting various inputs and the bit results are evaluated.
- the beginning oscillation on the Result[1] output pin (that would be P 1 , in the example presented above) is shown with reference numeral “ 5000 ”.
- the input registers are both set to 3 and the output stabilizes at 9 (just after the first rising edge on the Clk signal which loaded the input registers).
- the Mux 13 Sel signal is changed to 1 and the multiplier output starts oscillating on output Result[1] (designated by reference numeral “ 5000 ”) while the other outputs (that is, the outputs for the higher order bits of the product; see Result[2] to Result[17] positioned directly above Result[[1] and designated by reference numeral “ 5002 ”)) start producing noise outputs.
- Each Sham value is the results of a binary counter operating on a respective Result bit (One_Sham counter counts the oscillations on Result[1] (see reference numeral “ 6002 ”), Two 13 Sham counter counts Result[2] (see reference numeral “ 6004 ”) and so on).
- This simulation is of an 18-bit output Multiplier with two 9-bit inputs (also referred to as a 9 ⁇ 9 multiplier).
- the lower 9 bits are primarily a function of the input values as discussed earlier.
- the 9 higher bits are based on the carry of the 9 lower bits.
- FIG. 8 shows an implementation with input registers 700 , 702 for Input I 302 and Operand B 16 and a feedback multiplexer 300 .
- This is the actual implementation used in the referenced simulations and includes a clock 800 linked to both input registers 700 , 702 .
- This implementation may be set up to allow setting all the input registers from a single data bus.
- FIG. 9 shows the implementation of the binary counters 400 - 432 and registers 500 - 532 to store the output count values.
- the mechanism to control the loading of the input registers 700 , 702 the control of the feedback multiplexer 300 , and the control of the enable and transfer signals for the binary counters 400 - 432 and Sham (or evaluation) registers in the form of output registers 500 - 532 is not shown.
- a number of multiplier oscillators 100 would binary counters 400 - 432 and output registers 500 - 532 and only one multiplier oscillator 100 would be allowed to oscillate at a time from the group sharing registers.
- the potential for someone to reverse engineer the multiplier oscillator and reproduce the “fingerprint” is highly unlikely.
- the numeric values loaded into the registers (shown in FIG. 8 and identified as Input I and Operand B in FIG. 4 ) are used to generate a specific oscillation pattern and are known as the challenge.
- the challenge values are “3” and “3”, while in another example in this application the challenge values are both “ ⁇ 1”.
- the numeric values returned by the output of the evaluation counters is referred to as the response. It can be shown that each valid challenge set produces a unique response for each multiplier feedback oscillator implemented. In fact, it has been found the only value that will not create oscillations required in accordance with the present invention is “0”.
- the multiplier feedback oscillators also operate slightly differently each time a challenge is processed (variance). If the variance of this operation is characterized and understood, a counterfeit with no variance or incorrect variance is also detected.
- the master system needs to keep a database of a few key values, much like an encryption key. If the authentication system keeps results on a few challenge response sets and encrypts the challenge response process, the counterfeiting challenge becomes even greater.
- the authentication system can randomly select one of some number of stored challenge/response sets and encrypt the exchange process. In this manner, an adversary must defeat the encryption system and capture all of the stored challenge response sets in order to falsify the authentication process. Since a system with 100's of multipliers is possible, the counterfeiting challenge is even greater.
- the present invention provides for a family of arithmetic feedback oscillators allowing for the authentication and identification of Programmable Logic Devices (PLD) such as Field Programmable Gate Arrays (FPGA) and Application Specific Integrated Circuits (ASIC).
- PLD Programmable Logic Devices
- FPGA Field Programmable Gate Arrays
- ASIC Application Specific Integrated Circuits
- the arithmetic feedback oscillators also provide a method for designing a processor with built in authentication capabilities.
- a binary multiplier circuit may be used to implement an inverter function, so may an arithmetic adder or an arithmetic divider be used to implement an inverter function.
- FIG. 13 shows a binary adder 1010 configured as an inverter and implemented into a ring oscillator (referred to herein as “adder feedback oscillator”) 1100 in accordance with the present invention.
- the binary adder 1010 contains 2 5-bit input operands, Operand A 1014 and Operand B 1016 , which are mathematically added to each other to produce the Sum 1018 output by the binary adder 1010 .
- the numbers 15 (binary 0,1111) and 1 (binary 0,0001) are selected for Operand A 1014 and Operand B 1016 so that a carry operation produces a sum output 1018 of 16 (binary 1,0000).
- a feedback loop 1200 is implemented using a multiplexer 1300 that returns the value of one of the output bits 1202 of the sum output 1018 to the least significant input bit of one operand input to the binary adder.
- the one output bit 1202 is supplied via the return to the least significant input bit of the Operand B 1016 .
- the system operates as a ring oscillator.
- the multiplexer select 1304 may be designated to transmit, via the multiplexer 1300 , an output bit equal to one back to the least significant input bit of the operand input bit 1016 . Such an operation would maintain the input bit 1016 in its initial input condition and delay oscillation of the system.
- 16 (1,0000 in unsigned binary) is the inverse of 15 (0,1111 in unsigned binary) when the initial Operand A & B input values of 15 and 1 are used in accordance with the disclosed exemplary embodiment.
- the feedback loop 1200 of the adder feedback oscillator 110 may loop back to the binary adder 1010 the entire Sum output 1018 (that is, the whole operand) of the output of the binary adder 1010 .
- the binary adder 1010 operates as multiple inverters in a similar manner to the multiplier version described above with the multiplexer 1300 supplying the Operand A 1014 input with the initial input 1302 from an external source and the multiplexer select 1304 switching to provide Operand A 1014 input of the binary adder 1010 with the output bits 1202 , that is, the sum output 1018 of the output, via the feedback loop 1200 .
- Each bit of the Sum output 1018 of the binary adder 1010 oscillates at a different frequency and the oscillations are not regular due to the combinational delays of the binary adder 1010 circuitry. Additionally, there are numerous initial values (numerical terms applied to the inputs of Operand A 1014 and Operand B 1016 ) that result in different oscillation characteristics.
- the outputs 1018 of the adder feedback oscillator 1100 may be evaluated by binary counters as disclosed with reference to FIGS. 9 through 12 in order to determine the unique identity of the circuit.
- FIG. 15 shows the actual circuit implementation of an exemplary adder feedback oscillator 1100 in accordance with this embodiment.
- the adder feedback oscillator 1100 includes a standard binary adder 1010 and a multiplexer 1300 .
- the multiplexer 1300 allows the control system to select, via the multiplexer select 1304 , one of the adder inputs, that is, Operand A 1014 , from either an external input 1302 or the whole operand output bits 1202 based upon feedback of the adder sum output 1018 .
- FIGS. 16 and 17 show the output of the adder feedback oscillator 1100 shown in FIG. 15 when the input operands 1014 , 1016 are set to the various initial values.
- the “Multiplexer Select” 1304 input changes, each of the output values oscillates and each output oscillates at a different frequency.
- these adder sum outputs would each be connected to an evaluation counter in the same manner that that was implemented with the multiplier feedback oscillator.
- the least significant bits oscillate in spurts which are easily identified.
- FIG. 18 shows the basic block diagram of the divider feedback oscillator 2100 in accordance with the present invention.
- the binary divider 2010 operates on two inputs, that is, the dividend input 2014 and the divisor input 2016 .
- the dividend input 2014 will be divided by the divisor input 2016 and the quotient result 2018 is the output of the binary divider 2010 .
- the bit-width of the inputs and outputs are related but not critical for this application.
- the number of bits of the quotient result 2018 plus the number of bits of the divisor input 2016 equals the number of bits (bit width) of the dividend input 2014 .
- a quotient result 2018 with less bits than the dividend input 2014 it is understood that zeros will be used for higher order bits for the logical eXclusive OR (XOR) 2700 .
- each bit of the quotient result 2018 is Exclusively ORed with the corresponding bit of the dividend input 2014 to produce the feedback value that may be selected.
- the multiplexer 2300 allows the divider feedback oscillator 2100 to be preset by the initial conditions. When the oscillation is desired for testing, the multiplexer 2300 is switched to allow the feedback of the XOR result (of the dividend and the quotient) into the divider's dividend input.
- FIG. 19 shows an actual implementation of a sample divider feedback oscillator 2100 .
- the binary divider 2010 operates on the dividend input 2014 and the divisor input 2016 .
- the dividend input 2014 will be divided by the divisor input 2016 and the quotient result 2018 is the output of the binary divider 2010 .
- Each bit of the quotient result 2018 is Exclusively ORed 2250 with the corresponding bit of the initial dividend input 2302 to produce the feedback value 2303 that may be selected by the multiplexer 2300 based upon the multiplexer select 2304 setting.
- the multiplexer 2300 allows the divider feedback oscillator 2100 to be preset by the initial conditions. When the oscillation is desired for testing, the multiplexer 2300 is switched to allow the feedback of the XOR result 2303 (of the initial dividend input 2302 and the quotient result 2018 ) into the divider's dividend input 2014 .
- the outputs of the divider feedback oscillator 2100 may be routed to binary counters for evaluation in the same manner as described above for the multiplier feedback oscillator with reference to FIG. 9 through 12 .
- FIGS. 20 through 33 show the output of a divider feedback oscillator complete with the results of the evaluation counters. These examples use various divisor (or denominator) and dividend (or numerator) inputs. The resulting oscillations and Sham values are a function of both the dividend and divisor inputs and the unique identity of the multiplier silicon on which the test was performed. In each timing diagram, the divider feedback oscillators are allowed to operate for about one micro second and the evaluation counters are allowed to count for about 0.95 micro seconds. Note that the Sham values are different for each example and for each output indicating that the oscillation frequencies are different.
- FIG. 34 shows a divider feedback oscillator 2100 implemented using a binary adder 2250 in the feedback loop 2200 .
- U.S. Pat. No. 7,742,597 B2 (Exclusive Encryption, James M. Lewis) describes the development of pseudo adders. These pseudo adders or any other binary function may be used in the feedback loop of the divider feedback oscillator system in accordance with the present invention.
- the multiplier feedback oscillator, adder feedback oscillator, and the divider feedback oscillators are members of the arithmetic feedback oscillator family. These devices allow for the authentication and identification of programmable logic devices (PLD) such as field programmable gate arrays (FPGA) and application specific integrated circuits (ASIC).
- PLD programmable logic devices
- FPGA field programmable gate arrays
- ASIC application specific integrated circuits
- the arithmetic feedback oscillators also provide a method for designing a processor with built in authentication capabilities.
- processors contain an Arithmetic Logic Unit (ALU) that is used to perform mathematical manipulations of the data based on the processor instruction set.
- ALUs include, as a minimum, Addition, Multiplication, and Division functions. Since the processor already includes an ALU, the only additional circuitry required would be the implementation of the feedback loop and the evaluation counters.
- FIG. 35 illustrates a processor ALU system 4100 with built in arithmetic feedback oscillation capability in accordance with the present invention.
- FIG. 24 is not meant to be an exhaustive illustration of processor design, only to illustrate the arithmetic feedback function achieved in accordance with the concepts underlying the present invention.
- data is multiplexed 4300 into the ALU 4010 from memory locations, special purpose registers, or the Accumulator by multiplexers 4300 a , 4300 b that are controlled by the instruction decode logic.
- an instruction to evaluate two operands and store the result in the Accumulator 4800 is implemented by using the multiplexers 4300 a , 4300 b to route the appropriate data into the ALU 4010 while the ALU Control inputs 4011 are also set by the instruction decode logic.
- An additional input has been provided to the ALU Multiplexer 4300 a , 4300 b which allows the ALU output 4018 to rout through Feedback Logic 4200 , back into the one of the ALU inputs 4014 , 4016 .
- the resulting oscillations are evaluated by evaluation counters connected to the ALU outputs 4018 .
- the ALU system 4100 By instructing the ALU 4010 to multiply while the Feedback Loop 4200 is routed (through the appropriate multiplexer 4300 a , 4300 b ) back into the ALU 4010 , the ALU system 4100 becomes a multiplier feedback oscillator. Similarly, by instructing the ALU 4010 to divide and setting the appropriate feedback function as described previously, the ALU system 4100 becomes a divider feedback oscillator 2100 .
- Many processor ALU also include logic functions such as logical AND, Logic OR, and XOR. These functions may also be employed (with the appropriate input conditions and Feedback Functions) so that the ALU becomes a Logical Feedback Oscillator. Complex functions such as trigonometric functions (sine, cosine, and others), exponential functions (root and exponent generators), and statistical functions may also be utilized to implement Arithmetic Feedback Oscillators.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Manipulation Of Pulses (AREA)
Abstract
Description
(1 1111 1111)×(1 1111 1111)=0 0000 0001.
In this manner, if the eight least significant bits of the product are fed back to the eight least significant bits of one operand and the most significant product bit is fed back to the most significant bit of the same operand, a number of oscillating bits are produced in parallel. This positive to negative inversion process is a powerful tool for this test.
TABLE 1 |
Multiplication Examples with Repeating Characteristics |
Binary | Least Significant | ||||
Operand | Operand | Decimal | Result Least | Hexadecimal | |
A | B | Result | | Digit | |
3 | 3 | 9 | 0000, 1001 | 9 |
3 | 9 | 27 | 0001, 1011 | |
3 | 27 | 81 | 0101, 0001 | 1 |
3 | 81 | 243 | 1111, 0011 | 3 |
3 | 243 | 729 | 1101, 1001 | 9 |
3 | 729 | 2,187 | 1000, 1011 | |
3 | 2,187 | 6,561 | 1010, 0001 | 1 |
3 | 6,561 | 19,683 | 1110, 0011 | 3 |
3 | 19,683 | 59,049 | 1010, 1001 | 9 |
3 | 59,049 | 177,147 | 1111, 1011 | B |
Claims (24)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/397,232 US8384415B2 (en) | 2011-02-15 | 2012-02-15 | Method and system for identifying counterfeit programmable logic devices |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161442955P | 2011-02-15 | 2011-02-15 | |
US13/397,232 US8384415B2 (en) | 2011-02-15 | 2012-02-15 | Method and system for identifying counterfeit programmable logic devices |
Publications (2)
Publication Number | Publication Date |
---|---|
US20120212253A1 US20120212253A1 (en) | 2012-08-23 |
US8384415B2 true US8384415B2 (en) | 2013-02-26 |
Family
ID=46652234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/397,232 Active US8384415B2 (en) | 2011-02-15 | 2012-02-15 | Method and system for identifying counterfeit programmable logic devices |
Country Status (2)
Country | Link |
---|---|
US (1) | US8384415B2 (en) |
WO (1) | WO2012161763A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9759757B2 (en) | 2013-12-13 | 2017-09-12 | Battelle Memorial Institute | Electronic component classification |
US10789550B2 (en) | 2017-04-13 | 2020-09-29 | Battelle Memorial Institute | System and method for generating test vectors |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6972562B2 (en) | 2017-01-24 | 2021-11-24 | セイコーエプソン株式会社 | Circuit devices, oscillation devices, physical quantity measuring devices, electronic devices and mobile objects |
CN108345352B (en) * | 2017-01-24 | 2024-03-05 | 精工爱普生株式会社 | Circuit device, oscillation device, physical quantity measuring device, electronic apparatus, and moving object |
IL256108B (en) | 2017-12-04 | 2021-02-28 | Elbit Systems Ltd | System and method for detecting usage condition and authentication of an article of manufacture |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020154767A1 (en) | 2001-02-22 | 2002-10-24 | Takashi Endo | Tamper resistance device |
US20020166057A1 (en) | 2001-03-06 | 2002-11-07 | Masahiro Kaminaga | Temper-resistant processing method |
US20030009503A1 (en) | 1998-12-18 | 2003-01-09 | Philipp Michael Glaser | Multiplier cell and method of computing |
US20080216051A1 (en) | 2007-02-23 | 2008-09-04 | Harold Joseph Johnson | System and method of interlocking to protect software-mediated program and device behaviours |
US20100213951A1 (en) | 2009-02-23 | 2010-08-26 | Lewis James M | Method and system for detection of tampering related to reverse engineering |
US20110148457A1 (en) * | 2009-10-13 | 2011-06-23 | Miron Abramovici | Protecting electronic systems from counterfeiting and reverse-engineering |
-
2012
- 2012-02-15 US US13/397,232 patent/US8384415B2/en active Active
- 2012-02-15 WO PCT/US2012/025236 patent/WO2012161763A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030009503A1 (en) | 1998-12-18 | 2003-01-09 | Philipp Michael Glaser | Multiplier cell and method of computing |
US20020154767A1 (en) | 2001-02-22 | 2002-10-24 | Takashi Endo | Tamper resistance device |
US20020166057A1 (en) | 2001-03-06 | 2002-11-07 | Masahiro Kaminaga | Temper-resistant processing method |
US20080216051A1 (en) | 2007-02-23 | 2008-09-04 | Harold Joseph Johnson | System and method of interlocking to protect software-mediated program and device behaviours |
US20100213951A1 (en) | 2009-02-23 | 2010-08-26 | Lewis James M | Method and system for detection of tampering related to reverse engineering |
US20110148457A1 (en) * | 2009-10-13 | 2011-06-23 | Miron Abramovici | Protecting electronic systems from counterfeiting and reverse-engineering |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9759757B2 (en) | 2013-12-13 | 2017-09-12 | Battelle Memorial Institute | Electronic component classification |
US10054624B2 (en) | 2013-12-13 | 2018-08-21 | Battelle Memorial Institute | Electronic component classification |
US10416219B2 (en) | 2013-12-13 | 2019-09-17 | Battelle Memorial Institute | Electronic component classification |
US10761127B2 (en) | 2013-12-13 | 2020-09-01 | Battelle Memorial Institute | Electronic component classification |
US10789550B2 (en) | 2017-04-13 | 2020-09-29 | Battelle Memorial Institute | System and method for generating test vectors |
Also Published As
Publication number | Publication date |
---|---|
WO2012161763A1 (en) | 2012-11-29 |
US20120212253A1 (en) | 2012-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bakiri et al. | Survey on hardware implementation of random number generators on FPGA: Theory and experimental analyses | |
Avaroğlu et al. | A novel chaos-based post-processing for TRNG | |
Schellekens et al. | FPGA vendor agnostic true random number generator | |
US8468186B2 (en) | Combination of values from a pseudo-random source | |
US8384415B2 (en) | Method and system for identifying counterfeit programmable logic devices | |
US9465585B2 (en) | Method for detecting a correlation | |
Suresh et al. | On-chip lightweight implementation of reduced NIST randomness test suite | |
Balasch et al. | Design and testing methodologies for true random number generators towards industry certification | |
Ardakani et al. | Improving performance of FPGA-based SR-latch PUF using Transient Effect Ring Oscillator and programmable delay lines | |
CN107797788B (en) | Random number generating device, true random number generator and system-on-chip | |
Vivek et al. | Design and implementation of physical unclonable function in field programmable gate array | |
Galli et al. | On the effectiveness of true random number generators implemented on FPGAs | |
Fischer et al. | Modern random number generator design–Case study on a secured PLL-based TRNG | |
Boke et al. | FPGA implementation of PUF based key generator for secure communication in IoT | |
Yang | True random number generators for FPGAs | |
WO2011047064A1 (en) | Protecting electronic systems from unauthorized access and hardware piracy | |
Tebelmann et al. | On-chip side-channel analysis of the loop PUF | |
Souza et al. | Pseudo-chaotic sequences generated by the discrete Arnold’s map over Z 2 m: Period analysis and FPGA implementation | |
Garipcan et al. | A gigabit TRNG with novel lightweight post-processing method for cryptographic applications | |
Fischer et al. | Enhancing Quality and Security of the PLL-TRNG | |
US11151287B2 (en) | System and method for managing requests in an asynchronous pipeline | |
Gupta et al. | Improved VLSI architecture of dual-CLCG for Pseudo-Random bit generator | |
Kitsos et al. | A comparison of TERO and RO timing sensitivity for hardware Trojan detection applications | |
Devi et al. | Design of Hybrid True Random Number Generator for Cryptographic Applications. | |
Garipcan et al. | FPGA modeling of a novel fully-synthesizable and secure TRNG based on key-dependent s-box |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: LEWIS INNOVATIVE TECHNOLOGIES, ALABAMA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LEWIS, JAMES M;REEL/FRAME:031622/0909 Effective date: 20131111 |
|
FEPP | Fee payment procedure |
Free format text: PAT HOLDER NO LONGER CLAIMS SMALL ENTITY STATUS, ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: STOL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: MERCURY DEFENSE SYSTEMS, INC., CALIFORNIA Free format text: MERGER;ASSIGNOR:LEWIS INNOVATIVE TECHNOLOGIES, INC.;REEL/FRAME:038427/0581 Effective date: 20160401 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, TEXAS Free format text: SECURITY AGREEMENT;ASSIGNORS:MERCURY SYSTEMS, INC.;MERCURY DEFENSE SYSTEMS, INC.;MICROSEMI CORP.-SECURITY SOLUTIONS;AND OTHERS;REEL/FRAME:038589/0305 Effective date: 20160502 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: MERCURY SYSTEMS, INC., MASSACHUSETTS Free format text: MERGER;ASSIGNOR:MERCURY DEFENSE SYSTEMS;REEL/FRAME:068713/0347 Effective date: 20200826 |