WO2016080380A1 - ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置 - Google Patents

ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置 Download PDF

Info

Publication number
WO2016080380A1
WO2016080380A1 PCT/JP2015/082223 JP2015082223W WO2016080380A1 WO 2016080380 A1 WO2016080380 A1 WO 2016080380A1 JP 2015082223 W JP2015082223 W JP 2015082223W WO 2016080380 A1 WO2016080380 A1 WO 2016080380A1
Authority
WO
WIPO (PCT)
Prior art keywords
net
score
maximum score
trojan
test
Prior art date
Application number
PCT/JP2015/082223
Other languages
English (en)
French (fr)
Inventor
望 戸川
優 大屋
Original Assignee
学校法人早稲田大学
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 学校法人早稲田大学 filed Critical 学校法人早稲田大学
Priority to JP2016560230A priority Critical patent/JP6566576B2/ja
Publication of WO2016080380A1 publication Critical patent/WO2016080380A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
    • H01L21/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
    • H01L21/82Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components

Definitions

  • the present invention relates to a hardware trojan detection method, a hardware trojan detection program, and a hardware trojan detection device.
  • Non-Patent Document 1 A method for detecting a hardware trojan using sound design data not including a hardware trojan has been proposed (for example, see Non-Patent Document 1).
  • the presence / absence of a trojan inserted at the manufacturing stage is the difference between a healthy chip without a trojan inserted and a chip with a trojan inserted in terms of physical weight, power, or electromagnetic waves. It can be judged by taking.
  • the hardware trojan may be inserted not only at the manufacturing stage of the integrated circuit but also at the design stage. At the design stage, it is not possible to take a difference as in the manufacturing stage, and there is currently no technology for detecting a trojan without information about the hardware trojan.
  • a trigger circuit 46 b is connected to a part 48 of the normal net 44 that connects the normal circuit 42, and A payload circuit 46a is connected to a portion 49 of the.
  • the payload circuit 46a has a function that is not originally intended, and the trigger circuit 46b activates the payload circuit 46a.
  • the payload circuit 46a and the trigger circuit 46b constitute an HT circuit 46.
  • the risk of hardware trojan can be completely removed.
  • the HT circuit 46 does not necessarily exist clearly and is usually fused to the net 44, and it is extremely difficult to distinguish the HT circuit 46 from the circuit 40 completely.
  • the present invention has been made in consideration of the above points, and a detection method, a detection program for detecting a hardware trojan, and a detection of a hardware trojan, without using information regarding the hardware trojan of the integrated circuit.
  • An object is to provide an apparatus.
  • a hardware trojan detection method is a detection method for detecting a hardware trojan in a netlist of an integrated circuit, and includes a known netlist including a tronet indicating the presence of the hardware trojan, and the trojan Based on a plurality of known netlists including both a known netlist that does not include a net, a condition setting step for setting a condition for determining the presence or absence of the Trojannet, and based on the condition, as a test netlist And a determination step of evaluating the net list of the integrated circuit and determining the presence / absence of a Trojan net in the test net list from the obtained evaluation result.
  • each of the plurality of known netlists includes at least one set net including at least one constituent net composed of a group of circuits connected by a net between terminals.
  • the netlist has at least one set net including at least one constituent net composed of a group of circuits connected by a net between terminals, and the condition setting step includes each of the plurality of known netlists Is selected from the plurality of known net lists based on the configuration of the configuration net included in the collective net, and a configuration net that may include the Trojan net is selected from the plurality of known net lists.
  • the control net included only in the known netlist including a hardware trojan is also included in the known netlist including no hardware trojan.
  • the condition setting step for each of the plurality of known netlists, to obtain a total score by adding the score of the control net for each set net included, of the total score, the plurality of the plurality of nets
  • the determination step includes a condition setting that sets a maximum score in the known netlist as a maximum score of the plurality of known netlists and sets a maximum score threshold based on the maximum score of the known netlist including the hardware trojan. Adds the score of the control net for each set net included in the test net list.
  • a maximum score net number that is the number of aggregate nets having the maximum score is obtained for each of the plurality of known net lists, and the maximum score net of the known net list including the hardware Trojan is obtained.
  • the determination step includes: A maximum score net number that is a number, and the maximum score of the test net list is less than the maximum score threshold, and the maximum score net number of the test net list is greater than the maximum score net number threshold , It can be determined that there is no Trojan net in the test net list.
  • a clock of the known netlist including the hardware trojan is obtained by obtaining the number of clocks in which the aggregate net having the maximum score outputs a constant value within a predetermined time among the plurality of known netlists.
  • a condition setting for setting a maximum constant cycle number threshold based on the number and the clock number of a known net list that does not include the hardware trojan, and the determining step has the maximum score in the test net list
  • the set net further determines the number of clocks that output a constant value within a predetermined time, the maximum score of the test net list is less than the maximum score threshold, and the maximum score net number of the test net list is the maximum
  • the number of clocks is less than the score net number threshold and the number of clocks for the test net list is the maximum fixed number of cycles. If the above value, it is possible to determine the hardware Trojan exists.
  • a hardware trojan detection program is a detection program for causing a computer to execute a process for detecting a hardware trojan in a net list of an integrated circuit, wherein a tronet indicating the presence of the hardware trojan is detected.
  • a condition setting step for setting a condition for determining the presence or absence of the Trojannet based on a plurality of known netlists including both a known netlist including and a known netlist not including the Trojannet; and Based on the evaluation result, the integrated circuit netlist is evaluated, and the computer is caused to execute a process including a determination step of determining the presence / absence of a Trojan net in the test netlist from the obtained evaluation result. It is characterized by.
  • a hardware trojan detection device is a detection device for detecting a hardware trojan in a net list of an integrated circuit, and includes a known net list including a trojan indicating the presence of the hardware trojan, and the trojan Based on a plurality of known netlists including both a known netlist not including a net, condition setting means for setting a condition for determining the presence or absence of the Trojannet, and based on the condition, as a test netlist And determining means for evaluating the net list of the integrated circuit and determining the presence / absence of a Trojan net in the test net list from the obtained evaluation result.
  • an accumulation having a netlist of a different type from the known netlist by determining the presence or absence of a trojan net in the test netlist based on conditions obtained based on the known information of the known netlist. It can be determined whether the circuit contains a hardware trojan. Therefore, according to the present invention, whether or not a hardware trojan is included in the integrated circuit without using a sound netlist in which the hardware trojan is not inserted or publicly known information about the hardware trojan of the target integrated circuit. Can be determined.
  • the information processing apparatus 10 is connected to a hardware trojan detection apparatus (hereinafter referred to as “detection apparatus”) 20.
  • a net list provided in the information processing apparatus 10 (hereinafter referred to as “test net list”) can be input to the detection apparatus 20.
  • the test net list is design data describing a list of wirings connecting various circuits included in the information processing apparatus 10.
  • the test net list has a hierarchy constructed in accordance with the hierarchy of circuits constituting the information processing apparatus, and includes an aggregate net that is the highest layer and a configuration net that is a lower layer of the aggregate net.
  • One or more aggregate nets and constituent nets are provided according to the scale of the information processing apparatus.
  • the configuration net is configured by a group of circuits connected by wiring (hereinafter referred to as “inter-terminal net”) connecting the terminals of the circuit.
  • the information processing apparatus 10 shown in the figure includes a normal circuit 42 connected by a normal net 44 that is a net between terminals.
  • an HT circuit 46 is further inserted.
  • the HT circuit 46 includes a payload circuit 46a and a trigger circuit 46b.
  • a Trojan net which is a specific inter-terminal net included in the hardware Trojan, exists between the payload circuit 46a, the trigger circuit 46b, or these two circuits.
  • the test net list of the information processing apparatus 10 includes a normal net 44 and a Trojan net as inter-terminal nets.
  • a control unit 24, a condition setting unit 26, and a determination unit 28 that collectively control various functions of the detection device 20 are connected via a control bus 22.
  • the control means 24 reads various programs such as basic programs stored in advance, and controls the entire detection apparatus 20 according to these various programs.
  • the condition setting means 26 includes a control net acquisition unit 26a, a first threshold setting unit 26b, a second threshold setting unit 26c, and a condition setting unit 26d.
  • the condition setting means 26 obtains a reference for determining the presence / absence of a Trojan net in the test net list from a known net list (hereinafter referred to as a “known net list”) in which the presence / absence of a Trojan net is known. Threshold values and conditions for determining the presence / absence of a Trojan net are set based on the obtained criteria.
  • a known netlist is used as the known netlist, but the known netlist is not necessarily known. As long as the presence or absence of the Trojan net is known, it may not be known.
  • Judgment means 28 includes a first evaluation data generation unit 28a, a second evaluation data generation unit 28b, and a comparison determination unit 28c.
  • the judging means 28 evaluates the test net list of the information processing apparatus 10 according to the criteria set by the condition setting means 26, and sets the obtained evaluation result (evaluation data) to the threshold value set by the condition setting means 26. Judgment is made according to the conditions including. Thus, the hardware trojan is detected by determining the presence or absence of the trojan net in the test net list of the information processing apparatus 10.
  • the control net acquisition unit 26a extracts the characteristics of the Trojan net based on the known net list at the gate level in which information on the inter-terminal net is disclosed.
  • the control net acquisition unit 26a is connected to the information recording server via, for example, a network, downloads a plurality of known netlists from the information recording server at random, and stores them in a storage unit (not shown).
  • a benchmark netlist published on a US site can be used. That is, a plurality of, for example, 10 may be selected at random from the publicly available benchmarks.
  • Benchmarks include benchmarks that are supposed to contain Trojannet (HT-inserted) and benchmarks that are supposed not to contain Trojannet (HT-free).
  • the gate-level netlist is available for the Trust-HUB benchmark.
  • the benchmark consists of several submodules including cells such as gates, flip-flops, adders, etc. connected by a net between terminals.
  • the control net acquisition unit 26a finds a terminal-to-terminal net (hereinafter referred to as “suspected Trojan net”) that may be a trojan net based on a known net list.
  • the suspicious Trojan net can be found from the form of the constituent net included in the set net of the known net list, that is, the combination and number of various circuits.
  • a component net including a suspicious Trojan net is called a control net.
  • nine control nets shown in FIGS. 3 to 11 can be found from the ten benchmarks shown in Table 1 above. 3 to 11, LSLG (little switching logic gate) means an AND circuit, NAND circuit, OR circuit, and NOR gate circuit. The bold line in the figure is the suspicious Trojan.
  • Case 1 (Fig. 3) includes 2nd LSLG output as 1st LSLG input. If the number of inputs of 2nd LSLG is 6 or more, the net between terminals of the output of 1st LSLG is a suspected Trojan.
  • the 2nd LSLG is not limited to two inputs with two inputs, but may have three inputs or four inputs.
  • Case 2 (Fig. 4) is a special case of Case 1 and is harder to operate than Case 1. If the number of 2nd LSLG inputs is 16 or more, or if the number of 2nd LSLG inputs is 16 or more, the number of 3rd LSLG inputs is 16 or more. In this case, the inter-terminal net of the output of the 1st LSLG including the output of the 2nd LSLG as an input is a suspected trojan net.
  • Case IV 4 a cell having the output of ADDER (half adder or full adder) as an input is called 2nd cell, and a cell having the output of 2nd cell is called 1st cell.
  • the input and output inter-terminal nets of the 1st any cell are all suspicious Trojan nets. It is not necessary for ADDER to be connected to all 2nd any ⁇ cells, and if ADDER is connected to one 2nd any cell as shown in the figure, this corresponds to Case-4.
  • Case 8 in the sub-module where the number of sub-module nets lower than the component net is 22000 or more, one of the nets between the terminals of the input of the arbitrary cell is the main input, and the other is the Case 2 It is a terminal-to-terminal network (a suspicion Trojannet) In this case, the Case 2 suspicious Trojan is more likely to be a true Trojan (hereinafter “true Trojan”).
  • control net is given a score adapted to the high possibility that the suspected Trojan net is a true Trojan net.
  • the score is set so as to reflect the high possibility that the suspicious Trojan is a true Trojan. That is, a control net that is included only in the “HT-inserted” public netlist is more true than a control net that is included in both the “HT-inserted” and “HT-free” public netlists. A high score is given because it is likely to include the net.
  • the score of the control net of Case 1 to 5 is set to 1
  • the score of the control net of Case 6 to 9 is set to 2.
  • control net acquisition unit 26a acquires a control net from the publicly known net list, and assigns a score of a predetermined size reflecting the high possibility of including a true Trojan net to the control net. Not stored in the storage unit.
  • the first threshold setting unit 26b selects a maximum score threshold (T score ) (T score is a positive number) and a maximum score net number threshold (T number ) (T number is a positive number ) as the first threshold.
  • the maximum score threshold (T score ) is selected from among the maximum scores (X score ).
  • the maximum score (X score ) is the highest score in the known net list among the total scores obtained by adding the scores of the control nets included in the aggregate net.
  • the maximum score net number threshold (T number ) is selected from the maximum score net number (X number ).
  • the maximum score net number (X number ) is the number of aggregate nets (hereinafter referred to as “maximum score net”) having the maximum score (X score ) in the public net list.
  • the first threshold setting unit 26b includes each of the constituent nets included in each set net in the “HT-inserted” public netlist and the “HT-free” public netlist received from the storage unit. Is compared to the control net. When the configuration net matches the control net, the first threshold setting unit 26b adds the score of the control net for each set net. The score added for each set net is called a total score. Among the total scores, the largest score in the known net list is the maximum score (X score ), and the set net having the maximum score (X score ) is the maximum score net. Further, the first threshold setting unit 26b sets the number of maximum score nets in the public net list as the maximum score net number (X number ).
  • the first threshold value setting unit 26b compares the maximum score net with information on the known Trojan net stored in the storage unit, and extracts a known net list including the known Trojan net in the maximum score net.
  • the first threshold setting unit 26b illustrates a value obtained by selecting the smallest value of the maximum score (X number ) and adding 1 from the known net list including the known Trojan net as the maximum score threshold (T score ). Not stored in the storage unit.
  • the total score is calculated for each set net of each benchmark, the maximum value is set as the maximum score (X score ), and the set net having the maximum score (X score ) is set as the maximum score net.
  • the score of Case 1 to 5 is 1, and the score of Case 6 to 9 is 2.
  • the total score of a set net that does not include any of the control nets of Case 1 to 9 is 0, and the total score of the set net that includes one control net of Case 1 is 1.
  • the total score of the collective net including one case 1 control net and one case 6 control net is 3.
  • the maximum score (X score ) is included in the maximum score net in benchmarks (Ethernet (registered trademark) MAC10GE-T700, s15858-T100, s38584-T200, wb_conmax-T100) of 3 or more. All of the control nets are Trojannets. As shown in the benchmarks (RS232-T1000, s38417-T100, vga_lcd-T100), the maximum score net with a maximum score (X score ) of 2 includes a known Trojan net. The maximum score value of the maximum score net including the known Trojan net is 2 at the minimum.
  • benchmarks Ethernet (registered trademark) MAC10GE-T700, s15858-T100, s38584-T200, wb_conmax-T100
  • All of the control nets are Trojannets.
  • the maximum score net with a maximum score (X score ) of 2 includes a known Trojan net.
  • a value obtained by adding 1 to the minimum value of the maximum score (minimum value + 1) is set as the maximum score threshold (T score ). That is, if the value of the maximum score (X score ) is equal to or greater than the maximum score threshold (T score ), it can be said that there is a high possibility that the maximum score net includes a Trojan net.
  • the maximum score threshold (T score ) is 3.
  • the maximum score threshold (T score ) is obtained by the above-described method, but the maximum score threshold (T score ) can also be obtained by other methods. For example, a method of setting the minimum value at which all the control nets included in the maximum score net are Trojan nets as the maximum score threshold (T score ) can be mentioned.
  • the maximum number of score nets (X number ) including known Trojan nets is relatively small, and the maximum value is 5.
  • the maximum number of score nets (X number ) including only normal nets is large, and the value is 55 at the minimum.
  • Maximum score (X score) the higher the maximum score net number (X number The) decreases, the maximum score (X score) The lower the maximum score net number (X number The) increases.
  • 5 which is the maximum score net number (X number ) of the benchmark (s38417-T100) is set as the maximum score net number threshold (T number ). That is, if the maximum number of score nets (X number ) is equal to or smaller than the maximum score net number threshold (T number ), it can be said that there is a high possibility that the maximum score net includes a trojan net. In this way, the maximum score net number threshold (T number ) is selected.
  • the first threshold setting unit 26b selects the maximum score threshold (T score ) and the maximum score net number threshold (T number ) by comparing the information of the control net and the known Trojan net. Is acquired as a threshold value of 1 and stored in a storage unit (not shown).
  • the second threshold setting unit 26c generates the maximum constant cycle number (X cycle ) for the maximum score net in the public netlist, and the maximum constant cycle number threshold (T cycle ) (T cycle is a positive number) as the second threshold. ) Is selected. Specifically, the second threshold setting unit 26c applies existing software called a logic simulator (for example, VCS (registered trademark)) to the maximum score net whose maximum score (X score ) is less than the maximum score threshold (T score ). )) To input random data and simulate the change in value between 1M clocks, obtain the longest number of clocks that output a constant value as the maximum constant cycle number (X cycle ), and store this in a storage unit (not shown) Remember.
  • VCS registered trademark
  • the second threshold setting unit 26c selects the minimum value as the maximum constant cycle number threshold (T cycle ) from the obtained maximum constant cycle number (X cycle ).
  • the longest clock number that outputs a constant value between 1M clocks is defined as the maximum constant cycle number (Max (constant cycles).
  • Max constant cycles
  • Table 4 summarizes the maximum constant number of cycles (X cycle ) along with the names of known Trojans for the benchmarks (RS232-T1000, s38417-T100, and vga_lcd-T100).
  • the three benchmarks shown in Table 4 below have a maximum score (X xvore ) of 2 as shown in Table 3 above, and a Trojan net is included in the maximum score net.
  • the benchmarks (RS232-T1000, s38417-T100, and vga_lcd-T100) all have a maximum constant cycle number (X cycle ) of 999,996 cycles or more. From this, it is determined that the maximum score net having the maximum constant cycle number (X cycle ) of 999,996 cycles or more includes a Trojan net, and the 999,996 cycle is set as the maximum constant cycle number threshold (T cycle ). That is, the maximum constant cycle number threshold (T cycle ) (999,996 cycles) is the minimum value of the maximum constant cycle number (X cycle ) for the maximum score net including the known Trojan net.
  • the benchmark (s35932) with a maximum score (X score ) of 1 does not have a maximum score net with a maximum constant cycle number (X cycle ) of 999,996 cycles or more.
  • the benchmarks (b19 and EthernetMAC10GE) both have a maximum score (X score ) of 2, and only the normal net is included in the maximum score net.
  • the benchmark (b19 and EthernetMAC10GE) has a maximum score net with a maximum constant cycle number (X cycle ) of 999,996 cycles or more. The number of such maximum score nets is 59 and 10, respectively.
  • the maximum score (X score ) and the maximum constant number of cycles (X cycle ) are used, the presence or absence of a known trojan net is not necessarily accurately determined. This is presumed to be related to the circuit scale (number of nets between terminals). As shown in Table 1 above, the number of nets between terminals of the benchmark (s35932) is 6,423, and the number of nets between terminals of the benchmark (b19 and EthernetMAC10GE) is 108,332 and 103,206, respectively. As can be seen from the number of nets between terminals, the benchmark (s35932) is a small circuit and the benchmarks (b19 and EthernetMAC10GE) are large circuits. By using the maximum score net number (X number ) in addition to the maximum score (X score ) and the maximum constant cycle number (X cycle ), it is accurate not only for small circuits but also for large circuits. Can detect Trojans.
  • the second threshold setting unit 26c acquires the maximum constant cycle number threshold (T cycle ) as the second threshold and stores it in a storage unit (not shown).
  • the condition setting unit 26d receives the maximum score threshold value (T score ), the maximum score net number threshold value (X number ), and the maximum constant cycle number threshold value (X cycle ) from the storage unit, and uses these threshold values to determine the Trojan network.
  • T score maximum score threshold value
  • X number maximum score net number threshold value
  • X cycle maximum constant cycle number threshold value
  • A the maximum score threshold value
  • B the maximum constant cycle number threshold value
  • the maximum score (X score ) is less than the maximum score threshold (T score ) (T score is a positive number).
  • the maximum score net number (X number ) is less than or equal to the maximum score net number threshold (T number ) (T number is a positive number), and the maximum constant cycle number (X cycle ) is the maximum constant cycle number threshold (T cycle ) (T cycle ) Is a positive number) or more
  • the Trojan net exists in any of the following cases.
  • the maximum score (X score ) is 3 or more
  • the maximum score (X score ) is less than 3
  • the maximum score net number (X number ) is 5 or less
  • the maximum constant cycle number (X cycle ) is 999,996 cycles or more
  • Table 10 summarizes the conditions (a) and (b) and the presence / absence of hardware trojan of known information (HT-free / HT-inserted) for each of the 10 benchmarks shown in Table 1 above. .
  • “ ⁇ ” is given if the condition (a) or the condition (b) is satisfied. Note that “condition (a) or condition (b)” is referred to as “condition (a / b)”.
  • the three benchmarks that are “HT-free” do not satisfy the condition (a / b).
  • the seven benchmarks “HT-inserted” satisfy the condition (a / b), and the determination based on the condition (a / b) is based on the presence / absence of a hardware trojan based on the known information of the benchmark (HT-free). / HT-inserted).
  • the detection apparatus 10 determines whether or not there is a trojan net based on the maximum score threshold (T score ), the maximum score net number threshold (T number ), and the maximum constant cycle number threshold (T cycle ) (a / By using b), it is possible to correctly identify whether the benchmark is “HT-free” or “HT-inserted”.
  • condition setting unit 26d uses the maximum score threshold (T score ), the maximum score net number threshold (T number ), and the maximum constant cycle number threshold (T cycle ) to determine whether or not there is a trojan net ( A) and condition (B) are set and stored in a storage unit (not shown).
  • condition setting means 26 acquires a plurality of control nets to which a score having a size reflecting the possibility of including a Trojan net is obtained, and a maximum score threshold (T score ) (T score ) as a first threshold Is a positive number) and a maximum score net number threshold (T number ) (T number is a positive number) and a maximum constant cycle number threshold (T cycle ) (T cycle is a positive number) as the second threshold.
  • T score maximum score threshold
  • T number T number is a positive number
  • T cycle T cycle is a positive number
  • the condition setting means 26 uses a control net as a reference as a threshold (maximum score threshold (T score ) (T score is a positive number), a maximum score net number threshold (T number ) (T number is a positive number), a maximum constant cycle.
  • a threshold value (T cycle ) (T cycle is a positive number)) and a condition set using the threshold value are stored in a storage unit (not shown). The stored criteria, threshold values, and conditions are sent to the determination means 28 in order to determine the presence / absence of a Trojan net in the net list.
  • the determination unit 28 acquires a test net list from the information processing apparatus 10 and evaluates the test net list based on a criterion received from the storage unit.
  • the determination unit 28 obtains the evaluation result as evaluation data, determines the evaluation data under the conditions received from the storage unit, and determines the presence or absence of the hardware trojan.
  • the judging means 28 uses a control net as a reference extracted from the known net list as a threshold (maximum score threshold (T score ) (T score is a positive number), maximum score net number threshold (T number ) (T number is A positive number), a maximum constant cycle number threshold (T cycle ) (T cycle is a positive number)) and conditions are received as appropriate from a storage unit (not shown).
  • a threshold maximum score threshold (T score ) (T score is a positive number)
  • maximum score net number threshold T number is A positive number
  • T cycle T cycle is a positive number
  • the first evaluation data generation unit 28a obtains information on the maximum score net (maximum score (X score ) and maximum score net number (X number )) for the test net list.
  • the maximum score (X score ) and the maximum score net number (X number ) for the test net list are obtained by the same procedure as that described for the first threshold value setting unit 26 b in the condition setting means 26.
  • the first evaluation data generation unit 28a obtains the maximum score (X score ) and the maximum score net number (X number ) for the test net list, and stores them in the storage unit (not shown) as the first evaluation data.
  • the stored first evaluation data is sent to the comparison determination unit 28c.
  • the first evaluation data is generated on the basis of the score of the searched control net by searching the control net from the test net list.
  • the second evaluation data generation unit 28b generates the maximum constant cycle number (X cycle ) for the maximum score net in the test net list.
  • the maximum constant cycle number (X cycle ) for the test net list is obtained by a procedure similar to the procedure described for the second threshold setting unit 26c in the condition setting means 26.
  • the second data generation unit 28b obtains the maximum constant cycle number (X cycle ) for the test net list, and stores this as second evaluation data in a storage unit (not shown). The stored second evaluation data is sent to the comparison determination unit 28c.
  • comparison determination unit 28c a comparison determination process is performed according to the comparison determination program. Specifically, the comparison / determination unit 28c compares the first evaluation data and the second evaluation data obtained from the test net list with the conditions obtained based on the first threshold value and the second threshold value. Then, it is determined whether or not a Trojan net is included in the test net list.
  • the comparison determination processing procedure will be described with reference to FIG.
  • the process proceeds from the start step of the comparison determination process procedure RT1 shown in FIG. 13 and proceeds to step SP1.
  • step SP1 the comparison / determination unit 28c determines whether or not the maximum score (X score ) of the test net list is equal to or greater than the maximum score threshold (T score ). If a positive result is obtained in step SP1, this indicates that the test net list includes the Trojan net and is “HT-inserted”. At this time, the comparison / determination unit 28c proceeds to step SP5.
  • step SP1 if a negative result is obtained in step SP1, the comparison / determination unit 28c proceeds to step SP2.
  • the comparison / determination unit 28c determines whether or not the maximum score net number (X number ) is equal to or smaller than the maximum score net number threshold (T number ). If a negative result is obtained in step SP2, this indicates that the test net list does not include a trojan net and is “HT-free”. At this time, the comparison / determination unit 28c performs step SP6. Move on.
  • step SP2 If a positive result is obtained in step SP2, the comparison / determination unit 28c proceeds to step SP3.
  • step SP3 the comparison / determination unit 28c determines whether or not the maximum constant cycle number (X cycle ) is equal to or greater than the maximum constant cycle number threshold (T cycle ). If a positive result is obtained in step SP3, this indicates that the test net list includes the Trojan net and is “HT-inserted”. At this time, the comparison / determination unit 28c proceeds to step SP5.
  • step SP3 If a negative result is obtained in step SP3, the comparison / determination unit 28c proceeds to step SP4. Comparison determination unit 28c in step SP4 for all the maximum score net, determines whether or not compared with the maximum constant cycle number (X cycle) the maximum constant cycle number threshold (T cycle).
  • step SP4 If a negative result is obtained in step SP4, this indicates that there remains a maximum score net in which the maximum constant cycle number (X cycle ) is not compared with the maximum constant cycle number threshold (T cycle ). At this time, the comparison determination unit 28c returns to step SP3.
  • step SP4 If an affirmative result is obtained in step SP4, this indicates that the test net list does not include the trojan net and is “HT-free”, and the process proceeds to step SP6.
  • step SP5 the comparison / determination unit 28c generates and outputs an output signal indicating that the test net list includes the Trojan net, moves to step SP7, and ends the comparison determination processing procedure RT1.
  • step SP6 the comparison / determination unit 28c generates and outputs an output signal indicating that the test net list does not include the trojan net, moves to step SP7, and ends the comparison determination processing procedure RT1.
  • the determination means 28 outputs the determination result to a display means (not shown) based on the output signal obtained from the comparison determination section.
  • the display means displays an output result based on the output signal.
  • the detection device 20 extracts a control net from the known net list, further selects a first threshold value and a second threshold value, and sets conditions in advance.
  • the detection device 20 acquires the test net list of the information processing device 10
  • the detection device 20 determines whether or not the control net is included in the test net list.
  • the detection device 20 generates first evaluation data and second evaluation data based on the control net.
  • the detection device 20 evaluates the generated first evaluation data and second evaluation data based on a preset condition, and thereby determines whether or not a Trojan net is included in the test net list.
  • the detection device 20 determines whether or not there is a Trojan net in the test net list based on the conditions obtained based on the known information of the known net list. It can be determined whether the information processing apparatus 10 having different types of netlists includes a hardware trojan. Accordingly, the detection device 20 includes the hardware trojan in the information processing device 10 without using the known information regarding the healthy netlist or hardware trojan in which the hardware trojan is not inserted of the target information processing device 10. It can be determined whether or not.
  • control nets of (Case 1 to 9) can be obtained from the ten benchmarks shown in Table 1 above, the maximum score threshold (T score ), and the maximum score net number threshold (T number ), and the maximum constant cycle number threshold (T cycle ) are 3, 5, and 999,996, respectively, and the conditions for determining the presence or absence of a trojan using the threshold are set as follows: It was.
  • the maximum score (X score ) is 3 or more
  • the maximum score (X score ) is less than 3
  • the maximum score net number (X number ) is 5 or less
  • the maximum constant cycle number (X cycle ) is 999,996 cycles or more
  • Table 9 above shows that for all 34 benchmarks, results consistent with the presence or absence of hardware trojan (HT-free / HT-inserted) based on known information were obtained.
  • the existing method 1 is a method by UCI
  • the existing method 2 is a method by Veri Trust.
  • the UCI detects a hardware trojan by specifying a signal that is not activated during circuit verification and inserting a multiplexer for the signal.
  • Veri Trust identifies a signal that is not activated during circuit verification, and detects a hardware trojan by enhancing the observability of the signal.
  • a gate level test netlist is used. Can be identified as “HT-free” or “HT-inserted”.
  • HT-free or “HT-inserted”.
  • the present invention is not limited to the present embodiment, and various modifications can be made within the scope of the gist of the present invention.
  • a known net list ten predetermined benchmarks downloaded from a predetermined site (Trust-HUB) are used, and nine control nets are selected from such a known net list as an example.
  • the number of known netlists and the number of control nets are not limited to this.
  • the number of known netlists can be set arbitrarily and selected randomly. Further, the number and type of control nets can vary depending on the number and type of public netlists.
  • the score of the control net is 1 or 2 as an example. However, when the type or number of public netlists is changed, the score of each control net can be changed.
  • the maximum score threshold value and the maximum score net number threshold value used for the determination of the presence or absence of the hardware trojan in the test net list are set to 3 and 5, respectively. It can change.
  • the maximum score threshold value and the maximum score net number threshold value can be set as appropriate based on comparison with a known net list, as described in the above-described embodiment. If necessary, a threshold value that is stricter than the threshold value obtained based on comparison with a known netlist may be set.
  • the maximum constant clock number (the longest number of clocks that outputs a constant value between 1M clocks) is used as one of the indexes for determining whether or not a trojan net is included.
  • the present invention is not limited to this. . Any parameter other than the maximum fixed number of cycles may be used as long as it indicates the possibility of a trojan net lurking in the test net list. Even in such a case, an appropriate threshold value can be set based on comparison with a known netlist as described in the above-described embodiment.
  • the information processing apparatus 10 is directly connected to the detection apparatus 20 and the test net list of the information processing apparatus 10 is input has been described. However, if the test net list can be obtained, the information processing apparatus 10 is detected by the detection apparatus 20. It is not limited to the form connected to.
  • the detection device 20 may acquire the net list from a storage medium storing the net list, a server on the network, or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Manufacturing & Machinery (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを備えることを特徴とする。

Description

ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置
 本発明は、ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置に関する。
 近年、半導体業界においては、外部業者が情報処理装置に用いられる集積回路の製造に関わるようになったことから、集積回路の安全性が問題視されるようになっている。本来意図されていない機能(ハードウェアトロイ、以下「HT」とも記す。)を集積回路に挿入することが、第三者である外部業者において容易になったためであり、こうしたハードウェアトロイを検出することが求められている。
 一般的には、ハードウェアトロイを検出するには、対象となる情報処理装置のハードウェアトロイに関する情報が必要とされてきた。ハードウェアトロイを含まない健全な設計データを利用して、ハードウェアトロイを検出する方法が提案されている(例えば、非特許文献1参照)。例えば、製造段階において挿入されたトロイの有無は、トロイが挿入されていない健全なチップと、トロイが挿入されたチップとの間で、物理的な重さや電力量、あるいは電磁波などについての差分をとることによって判断することができる。
 しかしながら、ハードウェアトロイは、集積回路の製造段階のみならず設計段階においても挿入される可能性がある。設計段階では、製造段階の場合のような差分をとることができず、ハードウェアトロイに関する情報なしにトロイを検出する技術は未だ得られていないのが現状である。
 図14に示すように、ハードウェアトロイ(HT)回路46が存在する回路40においては、例えば通常回路42を接続する通常ネット44の一部48にトリガー回路46bが接続され、通常ネット44の他の一部49にペイロード回路46aが接続されている。ペイロード回路46aは、本来意図されていない機能を有し、トリガー回路46bはペイロード回路46aを起動する。こうしたペイロード回路46aとトリガー回路46bとによって、HT回路46が構成される。
 回路40からHT回路46を完全に取り除くことができれば、ハードウェアトロイの危険性を完全に取り除くことが可能となる。
B. Cha and S. K. Gupta, "Trojan detection via delay measurements: a new approach to select paths and vectors to maximize effectiveness and minimize cost," in Proc. Design, Automation and Test in Europe (DATE), 2013, pp. 1265-1270
 しかしながら、HT回路46は必ずしも明確に存在せずに通常ネット44に融合していることもあり、HT回路46を区別して回路40から完全に区別することは極めて困難である。
 本発明は以上の点を考慮してなされたもので、集積回路のハードウェアトロイに関する情報を用いずに、ハードウェアトロイを検出する検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置を提供することを目的とする。
 本発明に係るハードウェアトロイの検出方法は、集積回路のネットリスト中のハードウェアトロイを検出する検出方法であって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを備えることを特徴とする。
 上記検出方法においては、前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、前記条件設定工程は、前記複数の既知ネットリスト中のそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、前記判断工程は、前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断することができる。
 前記スコアは、前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、前記条件設定工程は、前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、前記判断工程は、前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断することができる。
 また、前記条件設定工程は、前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、前記判断工程は、前記最大スコアが前記最大スコア閾値未満の場合、前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断することができる。
 さらに、前記条件設定工程は、前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、前記判断工程は、前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在する判断することができる。
 本発明に係るハードウェアトロイの検出プログラムは、集積回路のネットリスト中のハードウェアトロイを検出する処理をコンピュータに実行させるための検出プログラムであって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程とを含む処理をコンピュータに実行させることを特徴とする。
 本発明に係るハードウェアトロイの検出装置は、集積回路のネットリスト中のハードウェアトロイを検出する検出装置であって、前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定手段と、前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断手段とを備えることを特徴とする。
 本発明によれば、公知ネットリストの既知情報に基づいて得られた条件に基づき、被検ネットリスト中のトロイネットの有無を判断することにより、公知ネットリストと種類が異なるネットリストを有する集積回路にハードウェアトロイが含まれるか否かを判断することができる。したがって本発明によれば、対象となる集積回路の、ハードウェアトロイが挿入されていない健全なネットリストやハードウェアトロイに関する公知情報を用いずに、上記集積回路にハードウェアトロイが含まれるか否かを判断することができる。
本実施形態のハードウェアトロイ検出装置の使用状態を示す図である。 本実施形態のハードウェアトロイ検出装置の構成を示すブロック図である。 Case 1の対照ネットを示す説明図である。 Case 2の対照ネットを示す説明図である。 Case 3の対照ネットを示す説明図である。 Case 4の対照ネットを示す説明図である。 Case 5の対照ネットを示す説明図である。 Case 6の対照ネットを示す説明図である。 Case 7の対照ネットを示す説明図である。 Case 8の対照ネットを示す説明図である。 Case 9の対照ネットを示す説明図である。 最大一定サイクル数を説明する図である。 ネットリスト中のハードウェアトロイの有無を判断する比較判定の処理手順を示すフローチャートである。 ハードウェアトロイ(HT)回路を模式的に説明する図である。
1.全体構成
 以下、図面を参照して本発明の実施の形態を詳述する。図1に示すように情報処理装置10は、ハードウェアトロイ検出装置(以下、「検出装置」という。)20に接続される。これにより、情報処理装置10が備えるネットリスト(以下、「被検ネットリスト」という。)が検出装置20に入力され得る。被検ネットリストは、情報処理装置10に含まれる各種回路同士を接続する配線の一覧を記述した設計データである。被検ネットリストは、情報処理装置を構成する回路の階層に合わせて構築された階層を有し、最上位層である集合ネットと、当該集合ネットの下位層である構成ネットを備える。集合ネット及び構成ネットは、情報処理装置の規模に応じて1つ以上設けられる。構成ネットは、回路の端子間を繋ぐ配線(以下、「端子間ネット」という。)によって接続された一群の回路によって構成される。
 本図に示す情報処理装置10は、端子間ネットである通常ネット44で接続された通常回路42で構成される。情報処理装置10がハードウェアトロイを含む場合、さらにHT回路46が挿入される。HT回路46は、ペイロード回路46a、トリガー回路46bを含む。HT回路46は、ハードウェアトロイに含まれている特定の端子間ネットであるトロイネットが、ペイロード回路46a、トリガー回路46b、またはこれら2つの回路の間に存在する。情報処理装置10の被検ネットリストには、端子間ネットとして、通常ネット44と、トロイネットとが含まれる。
 図2に示すように、検出装置20は、検出装置20の各種機能を統括的に制御する制御手段24、条件設定手段26、および判断手段28が、制御バス22を介して接続されている。
 制御手段24は、予め格納されている基本プログラムなどの各種プログラムを読み出して、これら各種プログラムに従って、検出装置20全体を制御するようになされている。
 条件設定手段26は、対照ネット取得部26aと、第1の閾値設定部26bと、第2の閾値設定部26cと、条件設定部26dとから構成される。条件設定手段26は、被検ネットリスト中におけるトロイネットの有無を判断するための基準を、トロイネットの有無が既知である公知のネットリスト(以下、「公知ネットリスト」という。)から取得し、得られた基準に基づいてトロイネットの有無を判断するための閾値および条件を設定する。なお、実施の形態では、既知ネットリストとして公知ネットリストを使用しているが、必ずしも既知ネットリストが公知である必要はない。トロイネットの有無が既知であれば、公知でなくても構わない。
 判断手段28は、第1の評価データ生成部28aと第2の評価データ生成部28bと比較判定部28cとから構成される。判断手段28は、情報処理装置10の被検ネットリストを、条件設定手段26で設定された基準で評価して、得られた評価結果(評価データ)を条件設定手段26で設定された閾値を含む条件で判定する。こうして、情報処理装置10の被検ネットリスト中のトロイネットの有無を判断することによってハードウェアトロイを検出する。
(1)条件設定手段
 次に、条件設定手段26の各部について説明する。
 (対照ネット取得部)
 対照ネット取得部26aは、端子間ネットに関する情報が公開されているゲートレベルの公知ネットリストに基づき、トロイネットの特徴を抽出する。対照ネット取得部26aは、例えばネットワークを介して情報記録サーバーに接続し、公知ネットリストを、情報記録サーバーからランダムに複数個ダウンロードして、これらを図示しない記憶部に記憶する。
 公知ネットリストは、例えば米国のサイト(Trust-HUB)に公開されているベンチマークのネットリストを利用することができる。すなわち、公開されているベンチマークの中から、ランダムに複数、例えば10個選択してもよい。ベンチマークには、トロイネットを含むとされているベンチマーク(HT-inserted)とトロイネットを含まないとされているベンチマーク(HT-free)とが含まれる。
 Trust-HUBにおけるベンチマークは、ゲートレベルのネットリストが公開されている。ベンチマークは、端子間ネットで接続されたゲート、フリップフロップ、加算器などのセルを含むいくつかのサブモジュールからなる。
 下記表1に示されるように、これらのベンチマークは、ハードウェアトロイの有無(HT-inserted/HT-free)および端子間ネット数が既知である。下記表1に示す10個のベンチマークのうちでは、7個が“HT-inserted”であり、3個が“HT-free”である。ベンチマークには、ハードウェアトロイに含まれているトロイネット(以下、「公知トロイネット」という。)の名称、種類およびその存在箇所といった情報も、ネットリスト中に明らかにされている。
Figure JPOXMLDOC01-appb-T000001
 対照ネット取得部26aは、公知ネットリストに基づき、トロイネットである可能性がある端子間ネット(以下、「疑トロイネット」という。)を見出す。すなわち、疑トロイネットは、公知ネットリストの集合ネットに含まれる構成ネットの形態、すなわち各種回路の組み合わせや個数等から見出すことができる。疑トロイネットを含む構成ネットを対照ネットと呼ぶ。例えば、上記表1に示した10個のベンチマークから、図3~11に示す9個の対照ネットを見出すことができる。図3~11中、LSLG(little switching logic gate)は、AND回路, NAND回路, OR回路, NORゲート回路を意味する。図中の太線が疑トロイネットである。ハードウェアトロイは動作し難く制御性が高いため、特定の条件でのみ動作する。すなわち、ハードウェアトロイは、スイッチング確率が低い。図3~11に示したCase 1~9の対照ネットはいずれも、こうした特徴を含むものである。Case 1~9の各対照ネットについて以下に説明する。
 Case 1(図3)においては、1st LSLGの入力として2nd LSLGの出力が含まれている。2nd LSLGの入力の数が6以上であれば、1st LSLGの出力の端子間ネットが疑トロイネットである。2nd LSLGは、入力の数が2つの2入力のものに限定されず、3入力または4入力のものでもよい。
 Case 2(図4)は、Case 1の特別な場合であり、Case 1より動作し難い。1st LSLGの入力として2nd LSLGの出力を含み、この2nd LSLGの入力の数が16個以上の場合、または2nd LSLGの入力として3rd LSLGの出力を含み、この3rd LSLGの入力の数が16個以上の場合、2nd LSLGの出力を入力として含む1st LSLGの出力の端子間ネットが疑トロイネットである。
 Case 3(図5)は、MUX (multiplexer)の選択信号の端子間ネットが疑トロイネットである。
 Case 4(図6)においては、ADDER(半加算器または全加算器)の出力を入力としてもつセルを2nd any cellとし、2nd any cellの出力を入力としてもつセルを1st any cellとする。この場合、1st any cellの入力および出力の端子間ネットは、全て疑トロイネットである。全ての2nd any cellにADDERが接続されている必要はなく、図示するように1つの2nd any cellにADDERが接続されていれば、このCase 4に該当する。
 Case 5(図7)は、FF(フリップフロップ)を含むサブモジュールの主出力の端子間ネットが疑トロイネットである。
 Case 6(図8)においては、他のネットを介さずに、“0”または“1”がFFに直接入力されており、特殊なケースである。このようなFFの出力およびクロックの端子間ネットは、疑トロイネットである。
 Case 7(図9)においては、FFのクロックがCase 2の端子間ネット(疑トロイネット)である。Case 2のネットは極めて動き難いので、このようなFFの入力、出力、およびクロックの端子間ネットの全ては、疑トロイネットである。
 Case 8(図10)においては、構成ネットより下位のサブモジュールネットの数が22000以上のサブモジュールにおいて、任意セルの入力の端子間ネットの一つが主入力であり、もう一つはCase 2の端子間ネット(疑トロイネット)である。この場合、Case 2の疑トロイネットは、真のトロイネット(以下「真トロイネット」という。)である可能性がより高い。
 Case 9(図11)においては、スキャンモードとノーマルモードとを制御するTEST-SE信号の否定信号がセルに入力されている。こうしたセルの入力および出力の端子間ネットは、疑トロイネットである。
 上記対照ネットには、疑トロイネットが真トロイネットである可能性の高さに適応したスコアが付与される。スコアは、疑トロイネットが真トロイネットである可能性の高さを反映できるように設定する。すなわち、“HT-inserted”の公知ネットリストのみに含まれている対照ネットは、“HT-inserted”および“HT-free”の両方の公知ネットリストに含まれている対照ネットよりも、真トロイネットを含む可能性が高いので、大きなスコアが与えられる。
 例えば、上記表1に示した10個のベンチマークのネットリストと前述の9個の対照ネット(Case 1~9)とを比較したところ、Case 6~9の対照ネットは、7個の“HT-inserted”のベンチマークのみに存在することが確認された。残りのCase 1~5の対照ネットは、7個の“HT-inserted”のベンチマークおよび3個の“HT-free”のベンチマークの全てに確認された。Case 1~5の対照ネットは、疑トロイネットを有しているにもかかわらず、Case 1~5の対照ネットが含まれている公知ネットリストのうちの3個は“HT-free”である。すなわち、Case 6~9の対照ネットのほうが、Case 1~5の対照ネットよりも真トロイネットを含む可能性が高いといえる。このような真トロイネットを含む可能性の高さを反映して、Case 1~5の対照ネットのスコアを1と設定し、Case 6~9の対照ネットのスコアを2と設定する。真トロイネットを含む可能性の高さを反映した所定の大きさのスコアを付与することにより、対照ネットは、被検ネットリスト中のトロイネットの有無を判断するための基準となる。
 以上のとおり、対照ネット取得部26aは、公知ネットリストから対照ネットを取得し、真トロイネットを含む可能性の高さを反映した所定の大きさのスコアを対照ネットに付与し、これを図示しない記憶部に記憶する。
 (第1の閾値設定部)
 第1の閾値設定部26bは、第1の閾値としての最大スコア閾値(Tscore)(Tscoreは正数)および最大スコアネット数閾値(Tnumber)(Tnumberは正数)を選択する。
 最大スコア閾値(Tscore)は、最大スコア(Xscore)中から選択される。最大スコア(Xscore)は、集合ネットに含まれる対照ネットのスコアを加算した合計スコアのうち、公知ネットリスト中で最も大きいスコアとする。
 最大スコアネット数閾値(Tnumber)は、最大スコアネット数(Xnumber)の中から選択される。最大スコアネット数(Xnumber)は、公知ネットリスト中の最大スコア(Xscore)を有する集合ネット(以下、「最大スコアネット」という。)の数とする。
 具体的には、第1の閾値設定部26bは、記憶部から受け取った“HT-inserted”の公知ネットリストおよび“HT-free”の公知ネットリスト中の各集合ネットに含まれる構成ネットのそれぞれを、対照ネットと比較する。第1の閾値設定部26bは、構成ネットが対照ネットと一致する場合、当該対照ネットのスコアを集合ネット毎に加算する。この集合ネット毎に加算されたスコアを合計スコアと呼ぶ。合計スコアのうち、公知ネットリスト中、最も大きいスコアを最大スコア(Xscore)、最大スコア(Xscore)を有する集合ネットを最大スコアネットとする。また、第1の閾値設定部26bは、公知ネットリスト中の最大スコアネットの数を最大スコアネット数(Xnumber)とする。
 第1の閾値設定部26bは、最大スコアネットと、記憶部に記憶された公知トロイネットの情報を比較して、最大スコアネット中に公知トロイネットが含まれる公知ネットリストを抽出する。第1の閾値設定部26bは、公知トロイネットが含まれる公知ネットリストのうち、最大スコア(Xnumber)の最も小さい値を選択して1を加えた値を最大スコア閾値(Tscore)として図示しない記憶部に記憶する。
 例えば、上記表1に示した10個のベンチマークを前述の9個の対照ネット(Case 1~9)と比較し、各ベンチマークのネットリストについて確認された対照ネットの数を下記表2にまとめる。
Figure JPOXMLDOC01-appb-T000002
 各ベンチマークの集合ネット毎に合計スコアを算出し、その最大値を最大スコア(Xscore)とし、最大スコア(Xscore)を有する集合ネットを最大スコアネットとする。上述したとおり、Case 1~5のスコアは1であり、Case 6~9のスコアは2である。例えば、Case 1~9の対照ネットのうちの1つも含まない集合ネットは、合計スコアが0であり、Case 1の対照ネットを1つ含む集合ネットの合計スコアは1である。また、Case 1の対照ネットを1つとCase 6の対照ネットを1つ含む集合ネットの合計スコアは3である。
 得られた結果を、最大スコアネットの内容(通常ネット/トロイネット)とともに下記表3にまとめる。ここで、表3中の最大スコアネットの内容は、公知トロイネットの情報に基づくものである。
Figure JPOXMLDOC01-appb-T000003
 上記表3に示されるように、最大スコア(Xscore)が3以上のベンチマーク(Ethernet(登録商標)MAC10GE-T700、s15858-T100、s38584-T200、wb_conmax-T100)において、最大スコアネットに含まれている対照ネットは全てトロイネットである。ベンチマーク(RS232-T1000、s38417-T100、vga_lcd-T100)に示されているように、最大スコア(Xscore)が2の最大スコアネットにも公知トロイネットが含まれている。公知トロイネットを含む最大スコアネットの最大スコアの値は、2が最小である。最大スコアの最小値に1を加えた値(最小値+1)を、最大スコア閾値(Tscore)とする。すなわち、最大スコア(Xscore)の値が最大スコア閾値(Tscore)以上であれば、最大スコアネットにトロイネットが含まれる可能性が高いといえる。表3の例では、最大スコア閾値(Tscore)は3である。
 なお、本実施の形態では、上述のような手法で最大スコア閾値(Tscore)を求めたが、他の手法により最大スコア閾値(Tscore)を求めることも可能である。例えば、最大スコアネットに含まれている対照ネットが全てトロイネットとなる最小の値を、最大スコア閾値(Tscore)とするなどの手法が挙げられる。
 上記表3によれば、公知トロイネットを含む最大スコアネット数(Xnumber)は比較的小さく、その値は最大でも5である。これに対して、通常ネットのみを含む最大スコアネット数(Xnumber)は大きく、その値は最小でも55である。最大スコア(Xscore)が高いほど最大スコアネット数(Xnumber)は減少し、最大スコア(Xscore)が低いほど最大スコアネット数(Xnumber)は増加する。
 したがって、最大スコアネット数(Xnumber)が十分に大きなネットリストは、トロイネットを含まない“HT-free”である可能性が高いと判断する。上記表3によれば、公知トロイネットを含む最大スコアネットのうち、最大スコアネット数(Xnumber)の最も大きな値は、ベンチマーク(s38417-T100)の5である。
 この場合、ベンチマーク(s38417-T100)の最大スコアネット数(Xnumber)である5を、最大スコアネット数閾値(Tnumber)とする。すなわち、最大スコアネット数(Xnumber)が最大スコアネット数閾値(Tnumber)以下であれば、最大スコアネットにトロイネットが含まれる可能性が高いといえる。こうして、最大スコアネット数閾値(Tnumber)が選択される。
 以上のとおり、第1の閾値設定部26bは、対照ネットと公知トロイネットの情報を比較することにより、最大スコア閾値(Tscore)と最大スコアネット数閾値(Tnumber)とを選択して第1の閾値として取得し、これを図示しない記憶部に記憶する。
 (第2の閾値設定部)
 第2の閾値設定部26cは、公知ネットリストにおける最大スコアネットについて最大一定サイクル数(Xcycle)を生成し、第2の閾値としての最大一定サイクル数閾値(Tcycle)(Tcycleは正数)を選択する。具体的には、第2の閾値設定部26cは、最大スコア(Xscore)が最大スコア閾値(Tscore)未満の最大スコアネットに対して、論理シミュレータと呼ばれる既存のソフトウェア(例えばVCS(登録商標))でランダムデータを入力して1Mクロック間における値の変化をシミュレートし、一定値を出力する最長のクロック数を最大一定サイクル数(Xcycle)として得て、これを図示しない記憶部に記憶する。
 第2の閾値設定部26cは、得られた最大一定サイクル数(Xcycle)のなかから、最小の値を最大一定サイクル数閾値(Tcycle)として選択する。
 例えば、図12に示すように、1Mクロック間で一定値を出力する最長のクロック数を、最大一定サイクル数(Max constant cycles)として定義する。最大一定サイクル数が高いほど、最大スコアネットはトロイネットを含む可能性が高くなる。これは、次のように説明される。トロイネットは動作し難く制御性が高いため、トロイネットが存在する場合には、長期間にわたって一定値が出力されることが予測される。この点に着目し、所定のクロック間で一定値が出力されるサイクル数(最大一定サイクル数)によって、最大スコアネットにトロイネットが含まれるか否かを判断する。
 下記表4には、ベンチマーク(RS232-T1000、s38417-T100、およびvga_lcd-T100)について、最大一定サイクル数(Xcycle)を公知トロイネットの名称とともにまとめる。下記表4に示した3個のベンチマークは、上記表3に示したとおり最大スコア(Xxvore)が2で、最大スコアネットにトロイネットが含まれている。
Figure JPOXMLDOC01-appb-T000004
 上記表4によれば、ベンチマーク(RS232-T1000、s38417-T100、およびvga_lcd-T100)は全て、最大スコアネットの最大一定サイクル数(Xcycle)が999,996サイクル以上である。このことから、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットにはトロイネットが含まれていると判断して、999,996サイクルを最大一定サイクル数閾値(Tcycle)とする。すなわち最大一定サイクル数閾値(Tcycle)(999,996サイクル)は、公知トロイネットを含む最大スコアネットについての最大一定サイクル数(Xcycle)の最小値である。
 なお、上記表3,4からは、最大一定サイクル数(Xcycle)が999,996サイクル以上の場合には、最大スコアネットに公知トロイネットが含まれていることがわかる。その一方、下記表5に示すように、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットに通常ネットが含まれていることも確認された。
Figure JPOXMLDOC01-appb-T000005
 上記表5に示されるとおり、最大スコア(Xscore)が1のベンチマーク(s35932)には、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットは存在しない。ベンチマーク(b19およびEthernetMAC10GE)は、いずれも最大スコア(Xscore)が2で、最大スコアネットに含まれているのは通常ネットのみである。公知トロイネットが含まれていないにもかかわらず、ベンチマーク(b19およびEthernetMAC10GE)には、最大一定サイクル数(Xcycle)が999,996サイクル以上の最大スコアネットが存在している。そのような最大スコアネットの数は、それぞれ59および10である。
 最大スコア(Xscore)と最大一定サイクル数(Xcycle)とを用いても、公知トロイネットの有無は必ずしも正確に判断されていない。これは、回路の規模(端子間ネット数)が関連しているものと推測される。上記表1に示されるように、ベンチマーク(s35932)の端子間ネット数は6,423であり、ベンチマーク(b19およびEthernetMAC10GE)の端子間ネット数は、それぞれ108,332および103,206である。こうした端子間ネット数からわかるように、ベンチマーク(s35932)は小規模回路であり、ベンチマーク(b19およびEthernetMAC10GE)は大規模回路である。最大スコア(Xscore)および最大一定サイクル数(Xcycle)に加えて、最大スコアネット数(Xnumber)を用いることによって、小規模回路のみならず、大規模回路に対しても誤検出なく正確にトロイネットを検出できる。
 以上のとおり、第2の閾値設定部26cは、最大一定サイクル数閾値(Tcycle)を第2の閾値として取得して、これを図示しない記憶部に記憶する。
 (条件設定部)
 条件設定部26dは、最大スコア閾値(Tscore)、最大スコアネット数閾値(Xnumber)、および最大一定サイクル数閾値(Xcycle)を記憶部から受け取って、これらの閾値を用いて、トロイネットの有無について、記憶されている公知ネットリストのハードウェアトロイの有無(HT-inserted/HT-free)と一致した結果が得られる条件を設定する。トロイネットの有無を判断する条件は、以下の(A),(B)である。いずれかの条件を満たす場合には、トロイネットが存在する。
 (A)最大スコア(Xscore)が最大スコア閾値(Tscore)(Tscoreは正数)以上
 (B)最大スコア(Xscore)が最大スコア閾値(Tscore)(Tscoreは正数)未満、最大スコアネット数(Xnumber)が最大スコアネット数閾値(Tnumber)(Tnumberは正数)以下、かつ最大一定サイクル数(Xcycle)が最大一定サイクル数閾値(Tcycle)(Tcycleは正数)以上
 例えば、上記表1に示した10個のベンチマークについては、トロイネットが存在するのは、次のいずれかの場合である。
 (a)最大スコア(Xscore)が3以上
 (b)最大スコア(Xscore)が3未満、最大スコアネット数(Xnumber)が5以下、かつ最大一定サイクル数(Xcycle)が999,996サイクル以上
 上記表1に示した10個のベンチマークについて、条件(a),(b)と各ベンチマークについての既知情報のハードウェアトロイの有無(HT-free/HT-inserted)とを、下記表6にまとめる。下記表6においては、条件(a)または条件(b)を満たしていれば“○”としている。なお、「条件(a)または条件(b)」を、「条件(a/b)」と記載する。
Figure JPOXMLDOC01-appb-T000006
 “HT-free”である3個のベンチマークは、条件(a/b)を満たしていない。一方、“HT-inserted”である7個のベンチマークは、条件(a/b)を満たしており、条件(a/b)による判定はベンチマークの既知の情報によるハードウェアトロイの有無(HT-free/HT-inserted)と完全に一致している。このように検出装置10は、最大スコア閾値(Tscore)、最大スコアネット数閾値(Tnumber)、および最大一定サイクル数閾値(Tcycle)に基づいたトロイネットの有無を決定する条件(a/b)を用いて判定することによって、ベンチマークが“HT-free”および“HT-inserted”のいずれであるかを正しく識別できる。
 以上のとおり、条件設定部26dは、最大スコア閾値(Tscore)、最大スコアネット数閾値(Tnumber)、および最大一定サイクル数閾値(Tcycle)を用いてトロイネットの有無を判断する条件(A),条件(B)を設定し、これを図示しない記憶部に記憶する。
 こうして、条件設定手段26は、トロイネットを含む可能性を反映した大きさのスコアが付与された複数の対照ネットを取得するとともに、第1の閾値としての最大スコア閾値(Tscore)(Tscoreは正数)および最大スコアネット数閾値(Tnumber)(Tnumberは正数)と、第2の閾値としての最大一定サイクル数閾値(Tcycle)(Tcycleは正数)を設定し、第1および第2の閾値を用いてトロイネットの有無を判断する条件を設定する。
 条件設定手段26は、基準としての対照ネットを、閾値(最大スコア閾値(Tscore)(Tscoreは正数)、最大スコアネット数閾値(Tnumber)(Tnumberは正数)、最大一定サイクル数閾値(Tcycle)(Tcycleは正数))およびこれを用いて設定された条件とともに、図示しない記憶部に記憶する。記憶された基準、閾値および条件は、ネットリスト中のトロイネットの有無を判断するために判断手段28に送出される。
(2)判断手段
 次に、判断手段28について説明する。判断手段28は、情報処理装置10から被検ネットリストを取得し、当該被検ネットリストを記憶部から受け取った基準で評価する。判断手段28は、評価結果を評価データとして得、記憶部から受け取った条件で評価データを判定してハードウェアトロイの有無を判断する。
 また、判断手段28は、公知ネットリストから抽出した基準としての対照ネットを、閾値(最大スコア閾値(Tscore)(Tscoreは正数)、最大スコアネット数閾値(Tnumber)(Tnumberは正数)、最大一定サイクル数閾値(Tcycle)(Tcycleは正数))および条件とともに図示しない記憶部から適宜受け取る。
 (第1の評価データ生成部)
 第1の評価データ生成部28aは、被検ネットリストについて、最大スコアネットに関する情報(最大スコア(Xscore)および最大スコアネット数(Xnumber))を得る。被検ネットリストについての最大スコア(Xscore)および最大スコアネット数(Xnumber)は、条件設定手段26における第1の閾値設定部26bについて説明した手順と同様の手順で得られる。
 こうして、第1の評価データ生成部28aは、被検ネットリストについて最大スコア(Xscore)と最大スコアネット数(Xnumber)とを得て、これを第1の評価データとして図示しない記憶部に記憶する。記憶された第1の評価データは、比較判定部28cに送出される。第1の評価データは、被検ネットリストの中から対照ネットを検索し、検索された対照ネットのスコアを基に生成される。
 (第2の評価データ生成部)
 第2の評価データ生成部28bは、被検ネットリストにおける最大スコアネットについて、最大一定サイクル数(Xcycle)を生成する。被検ネットリストについての最大一定サイクル数(Xcycle)は、条件設定手段26における第2の閾値設定部26cについて説明した手順と同様の手順で得られる。
 こうして、第2のデータ生成部28bは、被検ネットリストについて最大一定サイクル数(Xcycle)を得て、これを第2の評価データとして図示しない記憶部に記憶する。記憶された第2の評価データは、比較判定部28cに送出される。
 (比較判定部)
 比較判定部28cにおいては、比較判定プログラムに従って比較判定処理が行われる。具体的には、比較判定部28cは、被検ネットリストから得た第1の評価データおよび第2の評価データを、第1の閾値および第2の閾値に基づいて得られた条件と比較し、被検ネットリストにトロイネットが含まれるか否かを判定する。以下、比較判定処理手順について図13を参照して説明する。
 比較判定処理にあたっては、図13に示す比較判定処理手順RT1の開始ステップから入って、ステップSP1に移る。
 比較判定部28cは、ステップSP1において、被検ネットリストの最大スコア(Xscore)が、最大スコア閾値(Tscore)以上であるか否かを判断する。ステップSP1において肯定結果が得られると、このことは、被検ネットリストがトロイネットを含み“HT-inserted”であることを表しており、このとき比較判定部28cはステップSP5へ移る。
 一方、ステップSP1において否定結果が得られると、比較判定部28cはステップSP2に移る。ステップSP2において比較判定部28cは最大スコアネット数(Xnumber)が最大スコアネット数閾値(Tnumber)以下であるか否かを判断する。ステップSP2において否定結果が得られると、このことは、被検ネットリストにはトロイネットは含まれておらず“HT-free”であることを表しており、このとき比較判定部28cはステップSP6へ移る。
 ステップSP2において肯定結果が得られると、比較判定部28cはステップSP3に移る。ステップSP3において比較判定部28cは最大一定サイクル数(Xcycle)が最大一定サイクル数閾値(Tcycle)以上であるか否かを判断する。ステップSP3において肯定結果が得られると、このことは、被検ネットリストがトロイネットを含み“HT-inserted”であることを表しており、このとき比較判定部28cはステップSP5へ移る。
 ステップSP3において否定結果が得られると、比較判定部28cはステップSP4へ移る。ステップSP4において比較判定部28cは、全ての最大スコアネットについて、最大一定サイクル数(Xcycle)を最大一定サイクル数閾値(Tcycle)と比較したか否かを判断する。
 ステップSP4において否定結果が得られると、このことは、最大一定サイクル数(Xcycle)が最大一定サイクル数閾値(Tcycle)と比較されていない最大スコアネットが残っていることを表しており、このとき比較判定部28cはステップSP3に戻る。
 ステップSP4において肯定結果を得ると、このことは被検ネットリストにはトロイネットは含まれておらず“HT-free”であることを表しており、ステップSP6へ移る。
 ステップSP5において比較判定部28cは、被検ネットリストがトロイネットを含むことを示す出力信号を生成して出力し、ステップSP7へ移り、比較判定処理手順RT1を終了する。
 またステップSP6において比較判定部28cは、被検ネットリストがトロイネットを含まないことを示す出力信号を生成して出力し、ステップSP7へ移り、比較判定処理手順RT1を終了する。
 判断手段28は、比較判定部から得られた出力信号に基づき、判定結果を図示しない表示手段に出力する。表示手段は、出力信号に基づいた出力結果を表示する。
2.効果
 上記構成において、検出装置20は、公知ネットリストから対照ネットを抽出し、さらに第1の閾値および第2の閾値を選択して、予め条件を設定する。そして検出装置20は、情報処理装置10の被検ネットリストを取得すると、当該被検ネットリストに対照ネットが含まれるか否かを判断する。被検ネットリストに対照ネットが含まれている場合、検出装置20は、当該対照ネットに基づき、第1の評価データおよび第2の評価データを生成する。検出装置20は、予め設定された条件に基づき、生成された第1の評価データおよび第2の評価データを評価し、これにより被検ネットリストにトロイネットが含まれるか否かを判断する。
 以上のとおり、本実施形態に係る検出装置20は、公知ネットリストの既知情報に基づいて得られた条件に基づき、被検ネットリスト中のトロイネットの有無を判断することにより、公知ネットリストと種類が異なるネットリストを有する情報処理装置10にハードウェアトロイが含まれるか否かを判断することができる。したがって検出装置20は、対象となる情報処理装置10の、ハードウェアトロイが挿入されていない健全なネットリストやハードウェアトロイに関する公知情報を用いずに、情報処理装置10にハードウェアトロイが含まれるか否かを判断することができる。
 一例として、上記表1に示した10個のベンチマークから、(Case 1~9)の9個の対照ネットが得られること、このときの最大スコア閾値(Tscore)、最大スコアネット数閾値(Tnumber)、および最大一定サイクル数閾値(Tcycle)は、それぞれ3、5、および999,996であること、さらに、閾値を用いてトロイネットの有無を判断する条件が以下のとおり設定されることを示した。
 (a)最大スコア(Xscore)が3以上
 (b)最大スコア(Xscore)が3未満、最大スコアネット数(Xnumber)が5以下、かつ最大一定サイクル数(Xcycle)が999,996サイクル以上
 こうしたハードウェアトロイの検出方法の一例を、被検ネットリストとして他の公知ネットリストに適用してトロイネットの有無を判断し、その結果を既知情報と比較することにより、本実施形態に係るハードウェアトロイの検出方法の正当性を確認した。
 他の公知ネットリストとしては、Trust-HUBで公開されている全ベンチマーク34個を用いた。Trust-HUBで公開されている全ベンチマーク34個のうち、“HT-inserted”のベンチマークは25個であり、“HT-free”のベンチマークは9個である。こうした34個のベンチマークを所定の基準で評価して、評価結果を所定の条件で判定した。
 まず、各ベンチマークに含まれている構成ネットを、上述の9個の対照ネット(Case 1~9)と比較した。各ベンチマークについて、含まれている対照ネットの数を求め、最大スコア(Xscore)および最大スコアネット数(Xnumber)を得た。その結果を、対照ネットの数とともに下記表7,8にまとめる。下記表7,8には、上記表1に示した10個のベンチマークについての結果も併せて示した。
Figure JPOXMLDOC01-appb-T000007
Figure JPOXMLDOC01-appb-T000008
 34個の全てのベンチマークの最大スコア(Xscore)および最大スコアネット数(Xnumber)について、上述の条件(a/b)を満たすか否かを調べ、その結果を既知情報によるハードウェアトロイの有無(HT-free/HT-inserted)とともに下記表9にまとめる。下記表9には、前述の10個のベンチマークについての結果も併せて示した。下記表9においては、条件(a/b)を満たしていれば、“○”としている。
Figure JPOXMLDOC01-appb-T000009
 上記表9には、34個のベンチマーク全てについて、既知情報によるハードウェアトロイの有無(HT-free/HT-inserted)と一致する結果が得られたことが示されている。上述のような基準および条件を用いることによって、“HT-inserted”の25個のベンチマーク全てにおいて、誤検出無しでトロイネットの一部を確実に検出することができた。
 既存手法を用いた場合には、“HT-inserted”の25個全てのベンチマークについて、ハードウェアトロイを正確に検出することはできない。検出に成功したハードウェアトロイの数は、下記表10に示すように、既存手法1では4個であり、既存手法2では8個にとどまっている。しかも、既存手法の場合には、ペイロード回路やトリガー回路などの回路におけるハードウェアトロイの情報を、事前に知る必要がある。ここで、既存方法1はUCIによる手法であり、既存方法2はVeri Trustによる方法である。UCIは、回路検証中に活性化しない信号を特定し、その信号に対してマルチプレクサを挿入することで、ハードウェアトロイを検出する。Veri Trustは、回路検証中に活性化しない信号を特定し、その信号に対して観測性を高めることによりハードウェアトロイを検出する。
Figure JPOXMLDOC01-appb-T000010
 以上のように、ハードウェアトロイの挿入されていないネットリストや、ハードウェアトロイに関する情報を用いずに、公知のネットリストから得られた基準および条件を用いることによって、ゲートレベルの被検ネットリストが“HT-free”および“HT-inserted”のいずれであるかを識別することが可能となった。しかも、上述の基準および条件を用いた場合には、既存手法を用いた場合よりも正確な識別結果が得られており、こうした点でも既存手法に対して優位性を有することが確認された。
3.他の実施の形態
 なお、本発明は、本実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、上述の実施形態においては、公知ネットリストとして所定のサイト(Trust-HUB)からダウンロードした所定の10個のベンチマークを用い、こうした公知ネットリストから9個の対照ネットを選択することを一例として説明したが、公知ネットリストの数および対照ネットの数はこれに限定されない。公知ネットリストの数は任意に設定して、ランダムに選択することができる。また、対照ネットの数や種類は、公知ネットリストの数や種類によって、変わり得るものである。
 また、実施形態においては、対照ネットのスコアとして1または2を例に挙げたが、公知ネットリストの種類や数が変更された場合には、各対照ネットのスコアの大きさも変わり得る。
 さらに、実施形態においては、被検ネットリスト中のハードウェアトロイの有無の判定に用いる最大スコア閾値および最大スコアネット数閾値の値は、それぞれ3および5に設定したが、これらの数値もまた、変わり得るものである。最大スコア閾値および最大スコアネット数閾値は、上述の実施形態に示したように、公知ネットリストとの比較に基づいて適宜設定することができる。必要に応じて、公知ネットリストとの比較に基づいて得られた閾値よりも、厳しい閾値を設定してもよい。
 また、トロイネットを含むか否かを判断する指標の一つとして、最大一定クロック数(1Mクロック間で一定値を出力する最長のクロック数)を用いたが、これに限定されるものではない。被検ネットリスト中に潜むトロイネットの可能性を示すものであれば、最大一定サイクル数以外の任意のパラメータを用いてもよい。そのような場合においても、上述した実施形態で説明したように、公知ネットリストとの比較に基づいて適切な閾値を設定することができる。
 公知ネットリストからトロイネットの有無を判断するための基準を得、この基準に基づいてトロイネットの有無を判断するための条件を設定し、得られた基準および条件を用いてゲートレベルの被検ネットリスト中のトロイネットの有無を判断することによってハードウェアトロイを検出することは、本発明の範囲内である。
 情報処理装置10を検出装置20に直接接続して、情報処理装置10の被検ネットリストを入力する場合について説明したが、被検ネットリストを得ることができれば、情報処理装置10を検出装置20に接続する形態に限定されない。
 また、上記実施形態の場合、ネットリストは情報処理装置10に含まれている場合について説明したが本発明はこれに限られない。情報処理装置10は、必ずしもネットリストを保持している必要はない。この場合、検出装置20はネットリストを記憶した記憶媒体や、ネットワーク上のサーバーなどからネットリストを取得してもよい。
 10 情報処理装置
 20 ハードウェアトロイ検出装置
 22 制御バス
 24 制御手段
 26 条件設定手段
 28 判断手段

Claims (15)

  1. 集積回路のネットリスト中のハードウェアトロイを検出する検出方法であって、
    前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、
    前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程と
    を備えることを特徴とする検出方法。
  2. 前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
    前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
    前記条件設定工程は、
    前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
    前記判断工程は、
    前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
    ことを特徴とする請求項1記載の検出方法。
  3. 前記スコアは、
    前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
    前記条件設定工程は、
    前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
    前記判断工程は、
    前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
    ことを特徴とする請求項2記載の検出方法。
  4. 前記条件設定工程は、
    前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
    前記判断工程は、
    前記最大スコアが前記最大スコア閾値未満の場合、
    前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
    ことを特徴とする請求項3記載の検出方法。
  5. 前記条件設定工程は、
    前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
    前記判断工程は、
    前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
    ことを特徴とする請求項4記載の検出方法。
  6. 集積回路のネットリスト中のハードウェアトロイを検出する処理をコンピュータに実行させるための検出プログラムであって、
    前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定工程と、
    前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断工程と
    を含む処理をコンピュータに実行させることを特徴とする検出プログラム。
  7. 前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
    前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
    前記条件設定工程は、
    前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
    前記判断工程は、
    前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
    ことを特徴とする請求項6記載の検出プログラム。
  8. 前記スコアは、
    前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
    前記条件設定工程は、
    前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
    前記判断工程は、
    前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
    ことを特徴とする請求項7記載の検出プログラム。
  9. 前記条件設定工程は、
    前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
    前記判断工程は、
    前記最大スコアが前記最大スコア閾値未満の場合、
    前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
    ことを特徴とする請求項8記載の検出プログラム。
  10. 前記条件設定工程は、
    前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
    前記判断工程は、
    前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
    ことを特徴とする請求項9記載の検出プログラム。
  11. 集積回路のネットリスト中のハードウェアトロイを検出する検出装置であって、
    前記ハードウェアトロイの存在を示すトロイネットを含む既知ネットリストと、前記トロイネットを含まない既知ネットリストとの両方を含む複数の既知ネットリストに基づき、前記トロイネットの有無を判断するための条件を設定する条件設定手段と、
    前記条件に基づき、被検ネットリストとしての前記集積回路のネットリストを評価し、得られた評価結果から前記被検ネットリスト中のトロイネットの有無を判断する判断手段と
    を備えることを特徴とする検出装置。
  12. 前記複数の既知ネットリストのそれぞれは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
    前記被検ネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを少なくとも一つ含む集合ネットを、少なくとも一つ有し、
    前記条件設定手段は、
    前記複数の既知ネットリストのそれぞれについて、前記集合ネットに含まれる前記構成ネットの形態を基に、前記トロイネットを含む可能性がある構成ネットを対照ネットとして、前記複数の既知ネットリストから選択し、前記対照ネットにそれぞれ付与されるスコアに基づく条件設定を含み、
    前記判断手段は、
    前記被検ネットリストの中から前記対照ネットを検索し、前記検索された対照ネットのスコアを基に前記被検ネットリストの評価データを生成し、前記評価データと、前記設定された条件とを比較して、前記被検ネットリスト中のトロイネットの有無を判断する
    ことを特徴とする請求項11記載の検出装置。
  13. 前記スコアは、
    前記複数の既知ネットリストの中で、ハードウェアトロイを含む前記既知ネットリストにのみ含まれる前記対照ネットの方が、ハードウェアトロイを含まない前記既知ネットリストにも含まれる前記対照ネットより大きく設定され、
    前記条件設定手段は、
    前記複数の既知ネットリストのそれぞれについて、含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記複数の既知ネットリスト中で最も大きいスコアを前記複数の既知ネットリストの最大スコアとし、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアを基に最大スコア閾値を設定する条件設定を含み、
    前記判断手段は、
    前記被検ネットリストに含まれる集合ネット毎に対照ネットのスコアを加算して合計スコアを得、前記合計スコアのうち、前記被検ネットリスト中で最も大きいスコアを前記被検ネットリストの最大スコアとし、前記被検ネットリストの前記最大スコアが前記最大スコア閾値以上のとき、前記被検ネットリストにトロイネットが存在すると判断する
    ことを特徴とする請求項12記載の検出装置。
  14. 前記条件設定手段は、
    前記複数の既知ネットリストのそれぞれについて、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記ハードウェアトロイを含む前記既知ネットリストの最大スコアネット数を基に最大スコアネット数閾値を設定する条件設定を含み、
    前記判断手段は、
    前記最大スコアが前記最大スコア閾値未満の場合、
    前記被検ネットリスト中で、前記最大スコアを有する集合ネットの数である最大スコアネット数を求め、前記被検ネットリストの前記最大スコアが前記最大スコア閾値未満であって、前記被検ネットリストの最大スコアネット数が、前記最大スコアネット数閾値より大きいとき、前記被検ネットリストにトロイネットが存在しないと判断する
    ことを特徴とする請求項13記載の検出装置。
  15. 前記条件設定手段は、
    前記複数の既知ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数を求め、前記ハードウェアトロイを含む既知ネットリストのクロック数と前記ハードウェアトロイを含まない既知ネットリストのクロック数とを基に最大一定サイクル数閾値を設定する条件設定をさらに含み、
    前記判断手段は、
    前記被検ネットリスト中、前記最大スコアを有する集合ネットが、所定時間内に一定値を出力するクロック数をさらに求め、前記被検ネットリストの最大スコアが前記最大スコア閾値未満であって、前記被検ネットリスト最大スコアネット数が、前記最大スコアネット数閾値以下であり、かつ、前記被検ネットリストについてのクロック数が前記最大一定サイクル数閾値以上の場合に、前記ハードウェアトロイが存在すると判断する
    ことを特徴とする請求項14記載の検出装置。
     
PCT/JP2015/082223 2014-11-18 2015-11-17 ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置 WO2016080380A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016560230A JP6566576B2 (ja) 2014-11-18 2015-11-17 ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014233953 2014-11-18
JP2014-233953 2014-11-18

Publications (1)

Publication Number Publication Date
WO2016080380A1 true WO2016080380A1 (ja) 2016-05-26

Family

ID=56013915

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/082223 WO2016080380A1 (ja) 2014-11-18 2015-11-17 ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置

Country Status (2)

Country Link
JP (1) JP6566576B2 (ja)
WO (1) WO2016080380A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106918773A (zh) * 2017-03-01 2017-07-04 中国电子产品可靠性与环境试验研究所 工艺型硬件木马监测方法与装置
CN108985058A (zh) * 2018-06-28 2018-12-11 中国人民解放军国防科技大学 基于红外图像细节增强的硬件木马检测方法
CN110414277A (zh) * 2018-04-27 2019-11-05 北京大学 基于多特征参数的门级硬件木马检测方法
CN111177713A (zh) * 2019-12-16 2020-05-19 上海电力大学 一种基于XGBoost的硬件木马检测方法及装置
WO2021261532A1 (ja) * 2020-06-25 2021-12-30 東芝情報システム株式会社 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
CN114692227A (zh) * 2022-03-29 2022-07-01 电子科技大学 一种规模化芯片网表级硬件木马检测方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012207993A (ja) * 2011-03-29 2012-10-25 Renesas Electronics Corp テストパタン生成システム、テストパタン生成方法、およびテストパタン生成プログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012207993A (ja) * 2011-03-29 2012-10-25 Renesas Electronics Corp テストパタン生成システム、テストパタン生成方法、およびテストパタン生成プログラム

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
EMI OGITA ET AL.: "An evaluation of Trojan Circuits on AES Encryption Circuits", IEICE TECHNICAL REPORT, vol. 112, no. 429, 6 February 2013 (2013-02-06), pages 37 - 42 *
MAINAK BANGA ET AL.: "Trusted RTL: Trojan Detection Methodology in Pre-Silicon Designs", IEEE INTERNATIONAL SYMPOSIUM ON HARDWARE-ORIENTED SECURITY AND TRUST (HOST, 13 June 2010 (2010-06-13), pages 56 - 59, XP031710168 *
TOMOHIRO BOYASHIKI ET AL.: "A Hardware Trojan Detection Method Based on Information of Nontransitional Lines", COLLEGE OF INDUSTRIAL TECHNOLOGY, NIHON UNIVERSITY DAI 47 KAI GAKUJUTSU KOENKAI KOEN GAIYO, vol. 2 - 58, 6 December 2014 (2014-12-06), pages 313 - 316, Retrieved from the Internet <URL:http://www.cit.nihon-u.ac.jp/laboratorydata/kenkyu/kouennkai/reference/No.47/pdf/2-58.pdf> [retrieved on 20160201] *
YIER JIN ET AL.: "Experiences in Hardware Trojan Dsign and Implementation", IEEE INTERNATIONAL WORKSHOP ON HARDWARE-ORIENTED SECURITY AND TRUST, 2009. HOST'09, 27 July 2009 (2009-07-27), pages 50 - 57, XP031520767 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106918773A (zh) * 2017-03-01 2017-07-04 中国电子产品可靠性与环境试验研究所 工艺型硬件木马监测方法与装置
CN106918773B (zh) * 2017-03-01 2019-07-05 中国电子产品可靠性与环境试验研究所 工艺型硬件木马监测方法与装置
CN110414277A (zh) * 2018-04-27 2019-11-05 北京大学 基于多特征参数的门级硬件木马检测方法
CN110414277B (zh) * 2018-04-27 2021-08-03 北京大学 基于多特征参数的门级硬件木马检测方法
CN108985058A (zh) * 2018-06-28 2018-12-11 中国人民解放军国防科技大学 基于红外图像细节增强的硬件木马检测方法
CN111177713A (zh) * 2019-12-16 2020-05-19 上海电力大学 一种基于XGBoost的硬件木马检测方法及装置
CN111177713B (zh) * 2019-12-16 2023-10-31 上海电力大学 一种基于XGBoost的硬件木马检测方法及装置
WO2021261532A1 (ja) * 2020-06-25 2021-12-30 東芝情報システム株式会社 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
JP2022007202A (ja) * 2020-06-25 2022-01-13 東芝情報システム株式会社 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
JP7410476B2 (ja) 2020-06-25 2024-01-10 東芝情報システム株式会社 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
CN114692227A (zh) * 2022-03-29 2022-07-01 电子科技大学 一种规模化芯片网表级硬件木马检测方法

Also Published As

Publication number Publication date
JPWO2016080380A1 (ja) 2017-08-31
JP6566576B2 (ja) 2019-08-28

Similar Documents

Publication Publication Date Title
JP6566576B2 (ja) ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置
US9626465B2 (en) Arbiter verification
US10552278B2 (en) Non-destructive analysis to determine use history of processor
JP2019204482A (ja) 並行脆弱性検出
US20060190873A1 (en) Exploiting suspected redundancy for enhanced design verification
US11321510B2 (en) Systems and methods for machine intelligence based malicious design alteration insertion
US8732642B2 (en) Method for achieving an efficient statistical optimization of integrated circuits
US20210224452A1 (en) Layout-based side-channel emission analysis
Pomeranz et al. A measure of quality for n-detection test sets
CN109643346A (zh) 控制流完整性
US20160154915A1 (en) Static timing analysis in circuit design
CN107145446B (zh) 一种应用程序app的测试方法、装置和介质
US10409994B1 (en) FPGA/ASIC framework and method for requirements-based trust assessment
US20190385081A1 (en) Anomaly detection model selection and validity for time series data
Kamhoua et al. Testing for hardware trojans: A game-theoretic approach
US7673288B1 (en) Bypassing execution of a software test using a file cache
KR20100138586A (ko) 다중 액세스 레벨을 갖는 반도체 장치 및 그것의 액세스 제어 방법
CN110032505A (zh) 软件质量确定装置、软件质量确定方法和软件质量确定程序
RU2012110523A (ru) Основанная на доменах система тестирования для обеспечения безопасности
Gowtham et al. Hardware trojan detection using supervised machine learning
US9418201B1 (en) Integration of functional analysis and common path pessimism removal in static timing analysis
US9514265B2 (en) Congestion aware layer promotion
US20140115217A1 (en) Formal verification of arbiters
KR20100019332A (ko) 온더플라이 칩 검증을 위한 방법 및 시스템
CN103984632A (zh) 一种基于错误传播分析的sdc脆弱指令识别方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15860077

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016560230

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15860077

Country of ref document: EP

Kind code of ref document: A1