Embodiments described herein relate generally to a detection method of algorithm in an integrated circuit.
In recent years, many algorithms have been invented and patent rights thereof are achieved. However, even if an algorithm which is a patented invention is executed on integrated circuits of third party, in some cases, confirmation of an algorithm is difficult and enforcement of patent rights therefor is difficult. Accordingly, there is a problem in that even if an inventor invents a new algorithm, it is inevitably made confidential as a patent thereof is not filed, and thus the invention is not effectively utilized by public.
A detection method of an algorithm in an integrated circuit according to an embodiment includes: acquiring time waveforms of physical information from the integrated circuit in respective operations, by causing the integrated circuit to operate with different input values a plurality of times; calculating intermediate values corresponding to the input values or output values of the integrated circuit, based on a known algorithm; grouping the time waveforms of the physical information based on the intermediate values; and evaluating whether or not the time waveforms of the physical information depend on the intermediate value, and if the time waveforms depend on the intermediate value, determining that the integrated circuit executes the algorithm.
Hereinafter, an embodiment of the invention will be described with reference to the drawings.
First, an algorithm to be detected and an integrated circuit will be described.
The embodiment is a method of determining whether or not a certain integrated circuit 100 executes a specific algorithm (hereinafter, referred to as “target algorithm”) A.
The target algorithm A is known to a practitioner of the embodiment. As shown in
On the other hand, the integrated circuit 100 is produced by another manufacturer, and the circuit configuration and the algorithm thereof are not known to the practitioner. If an input value Vin is input, the integrated circuit 100 outputs an output value Vout. Therefore, the integrated circuit 100 may execute the target algorithm A. If the integrated circuit 100 executes the target algorithm A, the intermediate value Vm corresponding to the input value Vin is supposed to be generated within the integrated circuit 100. However, the intermediate value Vm is not output to the outside of the integrated circuit 100.
Then, a detection method of an algorithm in an integrated circuit according to the embodiment will be described.
First, as shown in
On the other hand, as shown in step S2 of
Next, as shown in step S3, the time waveforms P(t) of the power consumption are grouped based on the intermediate values at a certain time. In a case where respective time waveforms P(t) are obtained through a first calculation process of the intermediate value and a second calculation process of the intermediate value, the time waveforms P(t) are grouped based on the first calculated intermediate value, for example. For example, the time waveforms P(t) are grouped into a group corresponding to one intermediate value and a group corresponding to all intermediate values other than the one intermediate value. In addition, the first calculated intermediate value and the second calculated intermediate value are independent of each other. Hereinafter, this and subsequent processes will be described with reference to a specific example. As shown in
Next, as shown in step S4, after the time waveforms P(t) are normalized by time, a representative waveform of the time waveforms P(t) of the power consumption of the respective groups, for example, an average waveform is calculated.
As shown in step S5, the difference waveform between the average waveform of the group 1 and the average waveform of the group 2 is calculated. As shown in step S6, whether or not a peak is present in the difference waveform is evaluated.
As shown in
Then, in the integrated circuit 100, when the intermediate value transits, it is necessary to switch a transistor or to rewrite a value of a register, so that power is consumed. Therefore, from a statistical view point, the time waveforms P(t) of the group 1 have greater power consumption as compared to the time waveforms P(t) of the group 2, at a timing when the second intermediate value is calculated. Accordingly, as shown in
In other words, if the peak is present in the difference waveform, it means that a significant difference is present between the time waveform P(t) of the group 1 and the time waveform P (t) of the group 2. If the significant difference is present, it can be determined that the time waveform P(t) of the power consumption depends on the intermediate value Vm. Then, if the time waveform P(t) depends on the intermediate value Vm, the intermediate value Vm is generated in the integrated circuit 100, and thus it represents that the calculations C1 and C2, that is, the target algorithm A is executed.
On the other hand, as shown in
Accordingly, if the peak is present in the difference waveform, as shown in step S7 of
Next, an effect of the embodiment will be described.
According to the embodiment, it is possible to determine whether or not the integrated circuit 100 executes the target algorithm A using a simple method, without damaging the integrated circuit 100.
Note that, in principle, even if a reverse engineering of the integrated circuit 100 is performed, it is possible to determine whether or not the integrated circuit 100 executes the target algorithm A. The reverse engineering is a method of estimating which algorithm is being executed by opening the package of the integrated circuit 100, analyzing a wiring pattern, and reproducing a circuit diagram. However, since the reverse engineering requires a great amount of cost and time and is a destructive inspection, there is a problem in that re-examination is difficult when the inspection fails. In addition, when the reverse engineering is prohibited by a contract, even if it is confirmed that the target algorithm A is executed, there is a probability of lack of admissibility of evidence.
In contrast, according to the embodiment, a determination as to whether the target algorithm A is executed can be promptly implemented at a low cost. Further, even when the target algorithm A is implemented by software or hardware in the integrated circuit 100, the determination is possible in either case. Further, even when the integrated circuit 100 is formed on a large scale integrated circuit (LSI) chip which is distributed as a single unit, or even when the integrated circuit 100 is mounted on electronic devices such as mobile phones, home appliances such as television receivers and refrigerators, and transportation machinery such as vehicles, the determination can be performed. Further, it is possible to determine the algorithm for a system including the integrated circuit.
Hereinafter, some variations of the embodiment will be illustrated.
Although an example is shown in which the intermediate value Vm is calculated from the input value Vin in a process shown in step S2 of
Further, in the embodiment, a case is shown in which the target algorithm A is configured with the calculations C1 and C2 and the intermediate value Vm is generated, but it is not limited thereto. The number of calculations included in the target algorithm may not be two, but may be one or three or more. Further, the calculations may not be continuously executed, may branch on its way, may be repeated, and parallel calculations may be performed.
Further, although an example is shown in which power consumption is used as the physical information in the embodiment, without being limited thereto, the physical information includes all information that is output along with the operation of the integrated circuit. For example, when the intermediate value transits between “0” and “1”, currents flow to a resistor and the like, and thus electromagnetic waves are radiated. Accordingly, even if the electromagnetic waves are measured as the physical information, it is possible to detect transition of the intermediate value. In addition, since it is possible to specify which part of the integrated circuit operates by measuring the electromagnetic waves, it is possible to more accurately estimate the operation of the integrated circuit. Further, heat radiated from the integrated circuit may be used as the physical information. Furthermore, when the integrated circuit is provided within a case including a cooling fan such as a personal computer use of an operating noise of the cooling fan is considered.
Furthermore, although an example is shown in which the average waveform is used as the representative waveform of the time waveforms belonging to the respective groups in the embodiment, without being limited thereto, the representative waveform may be determined by a statistical method other than an averaging method.
Furthermore, although an example is shown in which the time waveform is classified into the group 1 and the group 2 as a method of evaluating whether or not the time waveform of power consumption depends on the intermediate value in the embodiment, it is determined whether or not the significant difference is present between the time waveforms belonging to the group 1 and the time waveforms belonging to the group 2; and if the significant difference is present, it is determined that the time waveform depends on the intermediate value, but the method is not limited thereto. For example, the time waveforms are classified into three or more groups according to the intermediate values, a correlation between the time waveforms and the intermediate values is evaluated by a correlation analysis, when the correlation is observed, it may be determined that the time waveform of the power consumption depends on the intermediate value.
According to the embodiments described above, it is possible to realize a simple detection method of an algorithm in an integrated circuit at a low cost.
While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the invention.
This application is based upon and claims the benefit of priority from U.S Provisional Patent Application 61/952,227, filed on Mar. 13, 2014; the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61952227 | Mar 2014 | US |