WO2021261532A1 - ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム - Google Patents

ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム Download PDF

Info

Publication number
WO2021261532A1
WO2021261532A1 PCT/JP2021/023846 JP2021023846W WO2021261532A1 WO 2021261532 A1 WO2021261532 A1 WO 2021261532A1 JP 2021023846 W JP2021023846 W JP 2021023846W WO 2021261532 A1 WO2021261532 A1 WO 2021261532A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
output
netlist
hardware trojan
value
Prior art date
Application number
PCT/JP2021/023846
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 CN202180043134.XA priority Critical patent/CN115698993A/zh
Priority to US18/003,275 priority patent/US20230252192A1/en
Publication of WO2021261532A1 publication Critical patent/WO2021261532A1/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/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Definitions

  • the present invention relates to a hardware trojan detection method, a hardware trojan detection device, and a hardware trojan detection program.
  • the main components of the hardware trojan are a trigger circuit that controls activation so that it operates under certain conditions, and a payload circuit that outputs invalid data when activated by this trigger circuit.
  • Hardware trojans are generally configured to function very rarely in order to make them difficult to find by logic simulation.
  • Patent Document 1 discloses a system for calculating an operation rate by an RTL simulation means, a pattern creating means for calculating a gate operation rate, and a netlist simulation means. According to this system, the creation of the gate operation rate calculation pattern realizes a much larger reduction in the number of patterns than the original pattern, and the netlist simulation takes much less time than the simulation using the original test pattern. Is possible to execute.
  • Patent Document 1 is still a simulation, and there is a limit to the creation of a pattern for calculating the gate operation rate, even if it is said that the number of patterns is significantly reduced compared to the original pattern.
  • Patent Document 2 the netlist of the target electronic circuit, the operation rate given to the input terminal of each macrocell, the probability that the input terminal is at a high level, and the operation rate calculation using the database of the truth table of the macrocell.
  • the law is disclosed. Obtain the above operation rate and the probability that the input terminal is at a high level, the operation rate of the output terminal of each macrocell based on the truth table, and the probability that the output terminal is at a high level, and propagate this from the input stage to the final stage to net.
  • the one that obtains the operation rate of the macro cells in the list is disclosed.
  • Patent Document 2 can determine the operating rate of a macrocell, and even if it leads to risk avoidance due to heat generation, it does not remind us to detect a hardware trojan.
  • Patent Document 3 a score is given using a constituent net that may contain a trojan net as a control net in a known net list, the control net is searched for the net list to be inspected, and the score is obtained. It is disclosed that the hardware trojan is detected by this score.
  • An embodiment of the present invention makes the hardware trojan relatively short, for example, when a hardware trojan is inserted when using an IP (Intellectual Property) in a SoC (System on a Chip) design.
  • IP Intelligent Property
  • SoC System on a Chip
  • the hardware trojan detection method is updated with an input / output update step of updating the input / output values of all the logical cells by performing an operation by the logical formula of all the logical cells included in the netlist to be inspected. It is characterized by comprising a detection step of detecting a hardware trojan based on a comparison result between the input / output value and the threshold value.
  • the logical operation performed in the logical cell is generally an operation of a logical value having only two kinds of values such as 1 and 0 and true and false.
  • a numerical value other than the logical value (a decimal number such as 0.5 or 0.25) (a number such as an integer such as 5 or 10) other than the logical value having only the above two kinds of values is used, and the logical cell is used. It performs operations using logical expressions.
  • the figure of the configuration net which shows the case where the parameter is set to the configuration net shown in FIG. FIG.
  • FIG. 3 is a diagram showing a state in which a configuration net showing a case where parameters are set in the configuration net shown in FIG. 3 is updated by an operation using a logical formula of a logical cell.
  • FIG. 6 is a diagram showing a state in which a logical cell of a configuration net showing a case where parameters are set in the configuration net shown in FIG. 7 is updated by an operation using a logical formula.
  • FIG. 9 is a diagram showing a state in which a logical cell of a configuration net showing a case where parameters are set in the configuration net shown in FIG. 9 is updated by an operation using a logical formula.
  • FIG. 6 is a diagram showing a state in which a logical cell of a configuration net showing a case where parameters are set in the configuration net shown in FIG. 7 is updated by an operation using a logical formula.
  • FIG. 9 is a diagram showing a state
  • FIG. 10 is a diagram showing a state in which a logical cell of a configuration net showing a case where parameters are set in the configuration net shown in FIG. 10 is updated by an operation using a logical formula.
  • FIG. 11 is a diagram showing a state of the second course in which the logical cells of the configuration net showing the case where the parameters are set in the configuration net shown in FIG. 11 are updated by the calculation by the logical formula.
  • the block diagram of the computer system which realizes the hardware trojan detection apparatus which concerns on 2nd Embodiment of this invention.
  • the functional block diagram of the hardware trojan detection apparatus which concerns on 2nd Embodiment of this invention.
  • the figure which shows the conversion table of the 1st threshold value and the score used in the hardware trojan detection apparatus which concerns on the 2nd Embodiment of this invention.
  • a waveform diagram showing that a constant value is output over a long period of time when a trojanet is present.
  • the flowchart which shows the processing of the hardware trojan detection by this 2nd Embodiment.
  • the hardware trojan detection device 1 can be configured by, for example, a personal computer, a workstation, or another computer system as shown in FIG.
  • This computer system operates as a hardware trojan detection device 1 by controlling each part based on a program or data stored in the main memory 11 or read into the main memory 11 by the CPU 10 and executing necessary processing. It is a thing.
  • the external storage interface 13, the input interface 14, the display interface 15, and the network interface 16 are connected to the CPU 10 via the bus 12.
  • a program such as a hardware trojan detection program and an external storage device 23 in which necessary data and the like are stored are connected to the external storage interface 13.
  • An input device 24 such as a keyboard as an input device for inputting commands and data and a mouse 22 as a pointing device are connected to the input interface 14.
  • a display device 25 having a display screen such as an LED or an LCD is connected to the display interface 15.
  • a network 26 such as the Internet is connected to the network interface 16, and is configured to be accessible to an external server, cloud, or the like.
  • the network 26 is configured to obtain necessary data and the like, and may be a storage medium or an input device for inputting data.
  • the computer system may be provided with other configurations, and the configuration of FIG. 1 is only an example.
  • FIG. 2 is a functional block diagram of the hardware trojan detection device 1 according to the first embodiment of the present invention.
  • the hardware trojan detection program in the external storage device 23 That is, the input / output update means 31, the parameter setting means 32, and the detection means 33 are provided.
  • the input / output update means 31 updates the input / output values of all the logical cells by performing an operation by the logical formula of all the logical cells included in the netlist to be inspected. That is, if the inspection target is the constituent net, the input / output updating means 31 performs the above operation of all the logical cells in the range of the constituent net, and if the inspection target is the aggregate net, the all logical cells in the range of the aggregate net. If the inspection target is the entire LSI, the above calculation is performed for all the logical cells of the entire LSI. In the first embodiment and the second embodiment described later, the input / output update means 31 performs the above calculation of all the logical cells in the constituent net included in the netlist to be inspected to enter all the logical cells.
  • the output value shall be updated.
  • the parameter setting means 32 sets parameters as initial values in the input / output nets of all the logical cells.
  • the inspection target netlist is design data that describes a list of wirings that connect various circuits included in the LSI to be developed.
  • the inspection target net list has a layer constructed according to the layer of the circuit constituting the LSI to be developed, and includes a set net which is the uppermost layer and a configuration net which is a lower layer of the set net.
  • One or more collective nets and constituent nets are provided according to the scale of the information processing apparatus.
  • the configuration net is composed of a group of circuits connected by wiring connecting the terminals of the circuit (hereinafter referred to as "terminal-to-terminal net").
  • various circuits included in the LSI or the like to be developed include logic cells.
  • the input / output update means 31 performs the above calculation using the set parameters for all the logic cells a predetermined number of times to update the input value and the output value.
  • the logic cell includes a logic circuit and, if necessary, a buffer and a repeater other than the logic circuit.
  • the input / output updating means 31 is used until the input value is transmitted to the output of the buffer or the repeater in the case of updating the buffer and the repeater. Is updated a predetermined number of times. For example, when the above calculation of all logical cells in the configuration net is performed once, the input / output values corresponding to the updates by the above calculation 10 times are updated for the buffer or the repeater.
  • the detection means 33 detects the hardware trojan based on the comparison result of the updated input / output value with the threshold value.
  • the detection means 33 of the present embodiment detects the hardware trojan based on the output value of any of the logic cells obtained when the above calculation is performed a predetermined number of times.
  • the detection means 33 has a circuit scale correspondence threshold, which is a threshold corresponding to the circuit scale based on the netlist to be inspected, and any logic obtained when the calculation is performed a predetermined number of times.
  • the hardware trojan in the netlist to be inspected is detected based on the comparison of the input / output values of the cells.
  • the parameter value is 2.8e when the predetermined number of cools is set to 4 times. It becomes about -8, and the parameter can be compared by using the circuit scale correspondence threshold value of 1e-7 as the output value and 1- (1e-7) as the input value. That is, if the output value is 1e-7 or less, it can be determined that the hardware trojan exists, and if the input value is 1- (1e-7) or more, it can be determined that the hardware trojan exists.
  • the netlist including the netlist to be inspected, generally has a hierarchical structure corresponding to the hierarchy of circuits constituting devices such as LSIs created from the netlist.
  • the uppermost layer of this layer is referred to as a set net, and a constituent net is provided in a lower layer of the set net.
  • the constituent net is composed of a group of circuits connected by wiring called a terminal-to-terminal net provided between the terminals of the circuit.
  • the input / output values of all the logical cells are updated by performing the above operation of all the logical cells in the constituent net.
  • FIG. 3 shows an example of the configuration net.
  • This configuration net includes a suspected trojan circuit unit 41 in which a hardware trojan may exist, a non-trojan circuit unit 42 in which no hardware trojan exists, and a residual circuit unit 43 which is another part.
  • the suspicious trojan circuit unit 41 includes AND gates C1 to C11 which are logic cells, and the logic cells are connected by the inter-terminal nets s1i1 to s1i17, s2i1 to s2i8, s3i1 and s3i2.
  • Three vertically connected buffers B1 to B3 are provided between the AND gate C10 and the AND gate C11.
  • the non-trojan circuit unit 42 includes an AND gate C12, a D flip-flop F1, a part of the multiplexer M, and a buffer B4, and includes an inter-terminal net FB1, FB2, LP1, a non-trojan net AT1, an output net OUTPUT of the multiplexer M, and the like. Have.
  • the residual circuit unit 43 includes three vertically connected buffers B5 to B7 and a part of the multiplexer M, and as a terminal-to-terminal net, the output net TRG1 of the AND gate C11, the net connecting the buffers B5 to B7, and the multiplexer M. It has a net P1 of the trojan payload reaching one input, an output net OUTPUT of the multiplexer M, and the like.
  • the hardware trojan detection program in the CPU 10 external storage device 23 operates the configuration net as shown in the flowchart of FIG. 4, and the operation will be described based on this flowchart.
  • the CPU 10 reads the netlist to be inspected (S11).
  • the netlist to be inspected can be read from, for example, from the external storage device 23, or can be accessed by accessing an external server, cloud, or the like via the network interface 16 and the network 26.
  • the CPU 10 sets parameters as initial values in the input / output nets of all logical cells according to the read netlist (S12).
  • the signal input / output in the logic cell used for the device such as the LSI targeted by the present embodiment has either the H level or the L level, and at either level. be. Therefore, assuming that the H level and the L level change as shown in FIG. 5, the ratio of the H (L) level during the time T is 0.5. This 0.5 is set as an initial value in the input / output net of all logical cells as a parameter. This result is as shown in FIG.
  • FIG. 7 shows the results of operations performed on the output side for the AND gate C11 and the AND gate C12. The above operation in this case is performed by the formula shown in FIG.
  • FIG. 9 shows the result of performing the calculation from the AND gate C11 to the downstream side and performing the calculation for each output of the AND gate C9 and the AND gate C10. Further, FIG. 10 shows the result of performing an operation on each input of the AND gate C9 and the AND gate C10.
  • FIG. 11 shows an example of updating the buffer and the repeater a predetermined number of times until the input value is transmitted to the output of the buffer or the repeater.
  • FIG. 11 shows that the output 0.0625 of the AND gate C11 is sequentially transmitted in the three buffers B5 to B7.
  • the update of the input / output values of the three buffers B5 to B7 it is uncertain at what timing the output of the AND gate C11 changes. I do.
  • the input / output of the buffer is updated at the timing shown in FIG. 11, but it is also performed at other timings.
  • the predetermined-time cool (here, the update of the one-time cool is completed) is completed. It is detected whether the update (4 times cool) is completed (S14), and if NO, the process returns to step S13 and the process is continued.
  • step S13 When returning to step S13, it is the second course process. From the end of the first course shown in FIG. 11 above, in the process of the second course shown in FIG. 12, the output of the AND gate C11 is updated to 0.001935.
  • the input / output values of the logical cells on the downstream side of the AND gate C11 are updated, and further, the input / output values of the logical cells on the upstream side of the AND gate C11 are updated.
  • the order is also random in this second course update.
  • the operation proceeds in the same manner as described in the first course process. In this way, when the processing of the second course is completed, the processing of the third course is started and ended, and the processing of the fourth course is started and finished, the process branches to YES in step S14. Then, the process proceeds to step S15.
  • step S15 the CPU 10 compares the threshold value (output value 1e-7, input value 1- (1e-7)) with the input value and output value of each logical cell as described above (S15), and determines the determination condition. It is determined whether the output value is 1e-7 or less, or the input value is 1- (1e-7) or more (S16).
  • step S16 it is determined that the hardware trojan exists, and output processing such as displaying the fact on the display device 25 is performed (S17). If NO in the above step S16, the hardware trojan does not exist. Is determined, and output processing such as displaying that fact on the display device 25 is performed (S18).
  • the hardware trojan detection method and the hardware trojan detection device according to the second embodiment are also hardware by the computer system shown in FIG. 13, which is the same as the hardware trojan detection device 1 according to the first embodiment of the present invention.
  • the hardware detection device 1A is realized.
  • FIG. 14 shows a functional block diagram of the hardware trojan detection device 1A according to the second embodiment of the present invention.
  • the hardware trojan detection device 1A according to the second embodiment in the CPU 10, each means and the like shown in FIG. 14 are realized by the hardware trojan detection program in the external storage device 23. That is, the same input / output updating means 31 and parameter setting means 32 as in the first embodiment are provided.
  • the detection means 33A, the first threshold value acquisition means 34, the determination score threshold value acquisition means 35, and the second threshold value acquisition means 36 are provided.
  • the first threshold value acquisition means 34 uses the known netlist including the hardware trojan and the known netlist not including the hardware trojan to perform processing by the parameter setting means 32 and the input / output update means 31.
  • the first threshold value is obtained based on the input / output value in the configuration net obtained when the above calculation in the input / output update means 31 is performed a predetermined number of times.
  • the detection means 33A detects the hardware trojan using the first threshold value.
  • the known netlist and the netlist to be inspected include at least a set net including one or more constituent nets composed of a group of circuits connected by a terminal-to-terminal net.
  • the first threshold value acquisition means 34 acquires the first threshold value for each constituent net.
  • the determination score threshold value acquisition means 35 assigns a predetermined value score according to the magnitude relationship between the maximum and minimum input / output values and the first threshold value in each constituent net in the known net list, and is assigned to the constituent nets.
  • the maximum score of the score is summed for each set net of the known net list, the obtained set net-by scores are compared, and the judgment score threshold value is obtained based on the minimum set net-by score.
  • the set net having the maximum score when the determination score threshold value acquisition means 35 executes the above processing is referred to as a "maximum score net", and the number of the maximum score nets in the known net list is referred to as the "maximum score net”. Called "number”.
  • the detection means 33A assigns a predetermined value score to each netlist to be inspected according to the magnitude relationship with the first threshold value, and sets the maximum score of the score given to the constituent nets as a set net of the netlists to be inspected.
  • the test target score is obtained by totaling each time, and the test target score is evaluated based on the determination score threshold value to detect the hardware trojan in the test target netlist.
  • the second threshold acquisition means 36 includes a hardware trojan that meets the condition that the number of clocks that output a constant value within a predetermined time is equal to or greater than the predetermined value and the maximum number of scorenets is equal to or less than the maximum number of scorenets.
  • An expected known netlist is extracted from a plurality of known netlists, and processing is performed by the parameter setting means 32 and the input / output update means 31 using the extracted known netlist, and the input / output update means 31 is used.
  • the second threshold value is obtained based on the output value obtained when the above calculation is performed a predetermined number of times.
  • a benchmark netlist published on a US site can be used. If 10 benchmarks are selected from these and the ones containing the hardware trojan are shown as (HT-inserted) and the ones without the hardware trojan are shown as (HT-free), the following Table 1 become that way.
  • the publicly known net list of the benchmark in Table 1 includes one or more aggregate nets, and the aggregate net includes one or more constituent nets.
  • a terminal-to-terminal net that may be a trojan net called a "suspicious trojan net” can be found, and the configuration net including the suspicious trojan net is included in the publicly known net list.
  • a constituent net including this suspected trojan net is referred to as a control net, and nine types of control nets can be found from those of the benchmark in Table 1.
  • the parameter setting means 32 and the known netlist including the hardware trojan and the known netlist not including the hardware trojan (of the benchmark) are used without finding the nine types of control nets.
  • the input / output values in the configuration net obtained when the processing as described in the first embodiment by the input / output update means 31 is performed and the above calculation in the input / output update means 31 is performed a predetermined number of times are used. demand.
  • a value close to the numerical value TO (for example, 1e-7) having 0 of (referred to as a trojan output threshold value) or a numerical value TI (for example, 1- (1e-7)) obtained by subtracting TO from 1 as an input value (troy). (Called the input threshold), is obtained.
  • the first threshold value acquisition means 34 obtains the average values of the trojan output threshold value and the trojan input threshold value obtained from all the constituent nets and uses them as the first threshold value. Further, when the trojan output threshold values are separated by one digit or more such as 1e-7 and 1e-6, the above average values are set as 1 of the trojan output threshold value and 2 of the trojan output threshold value. Ask for each. Further, in this case, when the trojan input threshold value 1 and the trojan input threshold value 2 are obtained, the average value is also obtained for each of them. Then, a plurality of first threshold values are obtained, such as 1 of the first threshold value and 2 of the first threshold value.
  • the determination score threshold value acquisition means 35 assigns a score to each input / output value in the constituent net. As shown in FIG. 15, the score is 2 when the output value is 1 or less of the trojan output threshold value, 1 when the output value is larger than 1 of the trojan output threshold value and 2 or less of the trojan output threshold value, and 1 trojan is present. It is 0 when it is larger than the output threshold value of 2. Further, the score is 2, as shown in FIG. 15, when the input value is 1 or more of the trojan input threshold value, and 1 when the input value is smaller than 1 of the trojan input threshold value and 2 or more of the trojan input threshold value. It is 0 when it is smaller than the trojan input threshold value of 2.
  • Scores are given to all input values and all output values of the constituent net.
  • the maximum score given to the constituent nets is totaled for each set net of the known netlist. Therefore, the score corresponding to the output value smaller than the trojan output threshold value in the configuration net is the maximum score, or the score corresponding to the input value larger than the trojan input threshold value is the maximum score.
  • the total score is high in the known netlist containing many constituent nets and aggregate nets that are likely to contain hardware trojans.
  • the scores for each netlist thus obtained are compared, and the judgment score threshold value is obtained based on the minimum score for each netlist. For example, the value obtained by adding 1 to the minimum known netlist score is used as the determination score threshold. Using the known netlist of the benchmarks in Table 1, 3 is determined as the determination score threshold.
  • the detection means 33A assigns a score of a predetermined value according to the magnitude relationship between the input / output value and the first threshold value for each constituent net of the net list to be inspected.
  • the detection means 33A uses the first threshold value obtained by the first threshold value acquisition means 34 to determine the magnitude relationship between the input / output value and the first threshold value for each constituent net of the netlist to be inspected.
  • a predetermined score is given accordingly. The score is given using the data in the conversion table between the first threshold value and the score shown in FIG.
  • the score given by the detection means 33A Similar to the score given by the detection means 33A, it is given to all the input values and all the output values of the constituent net.
  • the maximum score given to the constituent nets is totaled for each set net of the known netlist. Therefore, the score corresponding to the output value smaller than the trojan output threshold value in the constituent net of the netlist to be inspected is the maximum score, or the score corresponding to the input value larger than the trojan input threshold value is the maximum score.
  • the maximum score is totaled for the entire set net of the inspection target net list, and the inspection target score is obtained.
  • the inspection target score and the judgment score threshold value (3 in the above example) are compared to detect the hardware trojan in the inspection target netlist. Specifically, when the test target score is equal to or higher than the determination score threshold value (3 in the above example), it is determined that a hardware trojan exists, and output processing such as displaying that fact on the display device 25 is performed. conduct.
  • a second threshold value acquisition means 36 is provided.
  • the second threshold value acquisition means 36 includes a hardware trojan that meets the condition that the number of clocks that output a constant value within a predetermined time is equal to or greater than the predetermined value and the maximum number of scorenets is equal to or less than the maximum number of scorenets. Extract the expected known netlist from multiple known netlists.
  • a predetermined value score is given according to the magnitude relationship between the input / output value and the first threshold value in each constituent net in the known net list, and the score given to the constituent net is given. Sum the maximum scores for all nets in the known netlist.
  • the maximum number of scorenets is relatively small when the known trojans are included, and the maximum number of scorenets (Xnumber). ) Is 5 in the benchmark (s38417-T100).
  • the maximum scorenet number (Xnumber) of a plurality of known netlists is examined, and the largest maximum scorenet number (Xnumber) among the examined is the maximum scorenet number threshold value. It can be (Tnumber).
  • the condition that the maximum scorenet number is equal to or less than the maximum scorenet number threshold value is a condition (referred to as a net number condition) that is a known net list including a known trojan net.
  • the longest number of clocks that output a constant value between 1M clocks is referred to as a maximum constant cycle number (Max constant cycles).
  • Max constant cycles the longest number of clocks that output a constant value between 1M clocks.
  • the benchmarks of known netlists satisfying the above-mentioned "constant cycle number condition” and the above-mentioned “net number condition” are benchmarks (RS232-T1000, s38417-T100, and vga_lcd-T100). Is shown in Patent Document 3.
  • the second threshold value acquisition means 36 extracts a known netlist that satisfies the above-mentioned "constant cycle number condition" and the above-mentioned “net number condition”, and uses the extracted known netlist to be used with the parameter setting means 32.
  • the processing by the input / output update means 31 is performed, and the second threshold value is obtained based on the output value obtained when the above calculation in the input / output update means 31 is performed a predetermined number of times.
  • the netlist to be processed is a benchmark (RS232-T1000, s38417).
  • -T100 and vga_lcd-T100) are the same except that they are netlists, and have been described in steps S11 to S15 in the flowchart of FIG. 4, so the description thereof will be omitted here.
  • the input / output value in the configuration net is obtained.
  • a value close to a numerical value TO for example, 1e-7) having, for example, 5 or more 0s after the decimal point (referred to as a trojan output threshold value) is obtained, and 1 to TO are used as input values.
  • a value close to the subtracted numerical value TI for example, 1- (1e-7) (referred to as a trojan input threshold value) is obtained.
  • the second threshold value acquisition means 36 obtains the average values of the trojan output threshold value and the trojan input threshold value obtained from all the constituent nets and uses them as the second threshold value. In this embodiment, since the netlist of three benchmarks is used, three second threshold values are generated. Finally, the average value is set as the second threshold value, or the smallest trojan output threshold value is set as the second threshold value, and the largest trojan input threshold value is set as the second threshold value.
  • the detection means 33A detects the hardware trojan in the netlist to be inspected by using the second threshold value.
  • the detection process by the detection means 33A is as shown by the flowchart of FIG. 4, and in this flowchart, the threshold value used in step S16 is the second threshold value.
  • the hardware trojan detection process according to the second embodiment is performed by the detection means 33A, the first threshold value acquisition means 34, the determination score threshold value acquisition means 35, and the second.
  • the threshold value acquisition means 36 As a processing procedure by the threshold value acquisition means 36, it is as shown in the flowchart of FIG.
  • a process for acquiring the first threshold value is performed (S51).
  • processing is performed by the input / output update means 31, the parameter setting means 32, and the first threshold value acquisition means 34.
  • a process for acquiring the determination score threshold value is performed (S52).
  • processing is performed by the determination score threshold value acquisition means 35.
  • the hardware trojan detection process using the determination score threshold value is performed on the netlist to be inspected (S53).
  • processing is performed by the input / output update means 31, the parameter setting means 32, and the detection means 33A.
  • a process for acquiring the second threshold value is performed (S54).
  • processing is performed by the input / output update means 31, the parameter setting means 32, and the second threshold value acquisition means 36.
  • the hardware trojan detection process using the second threshold value is performed on the netlist to be inspected (S55).
  • processing is performed by the input / output update means 31, the parameter setting means 32, and the detection means 33A.
  • parameters are set as initial values in the input / output nets of all logical cells, and the above operation using the set parameters is performed in the above logical cells. It is expected that the process of updating the input value and the output value by performing a predetermined cooling for all of them is the basic process, and it is possible to detect the hardware trojan with a simple process that does not require a lot of time.
  • the number of publicly known netlists and the number of control nets described in the embodiments are not limited to these.
  • the number of publicly known netlists is only an example.
  • the score of the control net is a variable numerical value.
  • the values of the maximum score threshold and the maximum scorenet number threshold are also variable.
  • the maximum score threshold and the maximum scorenet number threshold are just examples. Further, the maximum constant number of clocks (the longest number of clocks that output a constant value between 1M clocks) is used, but the present invention is not limited to this.
  • Hardware trojan detection device according to the first embodiment 1A Hardware trojan detection device according to the second embodiment 11 Main memory 12 Bus 13 External storage interface 14 Input interface 15 Display interface 16 Network interface 22 Mouse 23 External storage device 24 Input device 25 Display device 26 Network 31 Input / output update means 32 Parameter setting means 33, 33A Detection means 34 First threshold acquisition means 35 Judgment score threshold acquisition means 36 Second threshold acquisition means 41 Suspicious trojan circuit unit 42 Non-troy Circuit part 43 Residual circuit part

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行う入出力更新工程と、更新された入出力値が閾値との比較結果に基づきハードウエアトロイの検出を行う検出工程とを備える。

Description

ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
 この発明は、ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラムに関するものである。
 ハードウエアトロイは、ある条件で動作するように起動を制御するトリガ回路と、このトリガ回路により起動されたときに不正データを出力するペイロード回路とを主な構成要素とするものである。ハードウエアトロイは、論理シミュレーションによっては見つかり難くするために、極めて稀に機能するように構成されているのが一般的である。
 ハードウエアトロイを論理シミュレーションで行う場合には、テストパターンによるシミュレーションが通例である。前述の通り、ハードウエアトロイは極めて稀に機能するために、全てのテストパターンを用いて状態を観察する必要があり、シミュレーションに多大な時間を要することになる。また、遷移確率のシミュレーションを行う場合には、ライブラリなどの使用されている全セルの情報が必要である。そのため、設計者以外がハードウエアトロイの検出を行うことは困難であった。
 特許文献1には、RTLシミュレーション手段とゲート動作率算出用パターン作成手段とネットリストシミュレーション手段により動作率算出を行うシステムが開示されている。このシステムによると、ゲート動作率算出用パターンの作成は元のパターンよりもパターン数の非常に大きな低減を実現し、ネットリストシミュレーションによって元のテストパターンを用いたシミュレーションに比べて非常に小さな時間での実行を可能としている。
 しかしながら、特許文献1のシステムは、シミュレーションであることに変わりなく、ゲート動作率算出用パターンの作成は、元のパターンよりもパターン数の非常に大きな低減と言っても限界がある。
 また、特許文献2には、対象となる電子回路のネットリスト、各マクロセルの入力端子に与えられる動作率、入力端子がハイレベルである確率、該マクロセルの真理値表のデータベースを用いる動作率計算法が開示されている。上記動作率と入力端子がハイレベルである確率、真理値表に基づき各マクロセルの出力端子の動作率、出力端子がハイレベルである確率を求め、これを入力段から最終段まで伝播させてネットリスト中のマクロセルの動作率を求めるものが開示されている。
 上記特許文献2に開示の技術は、マクロセルの動作率を求めることができ、発熱によるリスク回避などにはつながっても、ハードウエアトロイの検出を行うことを想起させるものではない。
 また、特許文献3には、既知ネットリストにおいて、トロイネットを含んでいる可能性がある構成ネットを対照ネットとしてスコアを付与し、検査対象のネットリストについて上記対照ネットを検索して、上記スコアを与えて、このスコアによりハードウエアトロイの検出を行うことが開示されている。
特開2001-350815号公報 特開2005-141538号公報 特許第6566576号公報
 本発明の実施形態は、例えば、SoC(System on a Chip)設計において、IP(Intellectual Property)を利用する際などに、ハードウエアトロイが挿入されている場合などに、ハードウエアトロイを比較的短時間で適切に検出することができるハードウエアトロイ検出方法を提供する。
 本実施形態に係るハードウエアトロイ検出方法は、検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行う入出力更新工程と、更新された入出力値が閾値との比較結果に基づきハードウエアトロイの検出を行う検出工程とを備えることを特徴とする。なお、論理セルにおいて行われる論理演算は一般的には、1と0や真と偽のように2種の値しかない論理値の演算である。これに対し、本実施形態においては、上記2種の値しかない論理値以外の数値(0.5や0.25などの小数、5や10などの整数などの数)を用い、論理セルの論理式による演算を行うものである。
本発明の第1の実施形態に係るハードウエアトロイ検出装置を実現するコンピュータシステムの構成図。 本発明の第1の実施形態に係るハードウエアトロイ検出装置の機能ブロック図。 本発明の第1の実施形態に係るハードウエアトロイ検出装置によりハードウエアトロイを検出するネットリストの構成ネットの一例を示す図。 本発明の第1の実施形態に係るハードウエアトロイ検出装置の動作を示すフローチャート。 本発明の実施形態に係るハードウエアトロイ検出装置において設定するパラメータの説明図。 図3に示す構成ネットにパラメータを設定した場合を示す構成ネットの図。 図3に示す構成ネットにパラメータを設定した場合を示す構成ネットについて論理セルの論理式による演算によって更新を行った状態を示す図。 論理セルについての論理式による演算によって更新を行う場合の計算式を示す図。 図7に示す構成ネットにパラメータを設定した場合を示す構成ネットの論理セルについて、論理式による演算によって更新を行った状態を示す図。 図9に示す構成ネットにパラメータを設定した場合を示す構成ネットの論理セルについて、論理式による演算によって更新を行った状態を示す図。 図10に示す構成ネットにパラメータを設定した場合を示す構成ネットの論理セルについて、論理式による演算によって更新を行った状態を示す図。 図11に示す構成ネットにパラメータを設定した場合を示す構成ネットの論理セルについて、論理式による演算によって更新を行った第2クール目の状態を示す図。 本発明の第2の実施形態に係るハードウエアトロイ検出装置を実現するコンピュータシステムの構成図。 本発明の第2の実施形態に係るハードウエアトロイ検出装置の機能ブロック図。 本発明の第2の実施形態に係るハードウエアトロイ検出装置において用いる第1の閾値とスコアとの変換テーブルを示す図。 トロイネットが存在する場合には、長期間にわたって一定値が出力されることを示す波形図。 この第2の実施形態によるハードウエアトロイ検出の処理を示すフローチャート。
 以下添付図面を参照して、本発明の実施形態に係るハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラムを説明する。各図において同一の構成要素には、同一の符号を付して重複する説明を省略する。
 本発明の第1の実施形態に係るハードウエアトロイ検出装置1は、例えば図1に示されるようなパーソナルコンピュータやワークステーション、その他のコンピュータシステムにより構成することができる。このコンピュータシステムは、CPU10が主メモリ11に記憶されている或いは主メモリ11に読み込んだプログラムやデータに基づき各部を制御し、必要な処理を実行することによりハードウエアトロイ検出装置1として動作を行うものである。
 CPU10には、バス12を介して外部記憶インタフェース13、入力インタフェース14、表示インタフェース15、ネットワークインタフェース16が接続されている。外部記憶インタフェース13には、ハードウエアトロイ検出用プログラム等のプログラムと必要なデータ等が記憶されている外部記憶装置23が接続されている。入力インタフェース14には、コマンドやデータを入力するための入力装置としてのキーボードなどの入力装置24とポインティングデバイスとしてのマウス22が接続されている。
 表示インタフェース15には、LEDやLCDなどの表示画面を有する表示装置25が接続されている。ネットワークインタフェース16には、インターネット等のネットワーク26が接続され、外部のサーバやクラウドなどにアクセス可能に構成されている。ネットワーク26は、必要なデータ等を得るための構成であり、データ入力を行うための記憶媒体や入力装置であっても良い。更に、このコンピュータシステムには、他の構成が備えられていても良く、また、図1の構成は一例に過ぎない。
 図2は、本発明の第1の実施形態に係るハードウエアトロイ検出装置1の機能ブロック図である。上記において、CPU10では、外部記憶装置23内のハードウエアトロイ検出用プログラムによって図2に記載の各手段等が実現される。即ち、入出力更新手段31、パラメータ設定手段32、検出手段33を備える。
 入出力更新手段31は、検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行うものである。即ち入出力更新手段31は、検査対象が構成ネットであれば、構成ネットの範囲の全論理セルの上記演算を行い、また、検査対象が集合ネットであれば、集合ネットの範囲の全論理セルの上記演算を行い、更に、検査対象がLSI全体であれば、当該LSI全体の全論理セルの上記演算を行うものである。この第1の実施形態と後に説明する第2の実施形態においては、入出力更新手段31は、検査対象のネットリストに含まれる構成ネットにおける全論理セルの上記演算を行って全論理セルの入出力値の更新を行うものとする。パラメータ設定手段32は、上記全論理セルの入出力のネットに初期値としてパラメータを設定するものである。検査対象ネットリストは、開発するLSIなどに含まれる各種回路同士を接続する配線の一覧を記述した設計データである。検査対象ネットリストは、開発するLSIなどを構成する回路の階層に合わせて構築された階層を有し、最上位層である集合ネットと、当該集合ネットの下位層である構成ネットを備える。集合ネット及び構成ネットは、情報処理装置の規模に応じて1つ以上設けられる。構成ネットは、回路の端子間を繋ぐ配線(以下、「端子間ネット」という。)によって接続された一群の回路によって構成される。また、開発するLSIなどに含まれる各種回路には、論理セルが含まれている。
 本実施形態では、上記入出力更新手段31で、設定された上記パラメータを用いた上記演算を上記論理セルの全てについて所定回クール行って入力値と出力値の更新を行う。
 前記論理セルは、論理回路と、必要な場合に論理回路以外のバッファ、リピータを含むものである。上記入出力更新手段31は、1回毎のクールにおける入力値と出力値の更新の処理内において、バッファ及びリピータについての更新の場合には、入力値がバッファまたはリピータの出力へ伝達されるまでの所定回数更新を行う。例えば、構成ネットにおける全論理セルの上記演算を1回クール行うときに、バッファまたはリピータについては10回の上記演算による更新に相当する入出力値の更新を行う。
 検出手段33は、更新された入出力値が閾値との比較結果に基づきハードウエアトロイの検出を行う。本実施形態の検出手段33は、上記演算を所定回クール行ったときに得られたいずれかの論理セルの出力値に基づきハードウエアトロイの検出を行う。
 本実施形態では、上記検出手段33は、上記検査対象のネットリストに基づく回路規模に対応する閾値である回路規模対応閾値と、上記演算を所定回クール行ったときに得られたいずれかの論理セルの入出力値の比較に基づき上記検査対象のネットリスト中のハードウエアトロイの検出を行う。具体的には、検査対象のネットリストに含まれる構成ネットの回路規模を表す端子間ネット数が500程度の回路において、所定回クールを4回クールとしたとき、パラメータの値は、2.8e-8程度となり、パラメータは回路規模対応閾値を出力値で1e-7、入力値で1-(1e-7)を用いて比較を行うことができる。即ち、出力値が1e-7以下であればハードウエアトロイが存在すると判定することができ、入力値が1-(1e-7)以上であればハードウエアトロイが存在すると判定することができる。
 検査対象のネットリストを含め、ネットリストは、一般的にネットリストから作成されるLSIなどのデバイスを構成する回路の階層と対応する階層構造である。この階層の最上位層を集合ネットと称し、当該集合ネットの下位層に構成ネットを備える。LSIなどのデバイスの規模に応じて上記集合ネットと上記構成ネットは、それぞれ1つ以上存在する。この内、構成ネットは、回路の端子間に設けられる端子間ネットと称される配線によって接続された一群の回路によって構成されるものである。本実施形態では、構成ネットにおける全論理セルの上記演算を行って全論理セルの入出力値の更新を行う。
 構成ネットの一例を図3に示す。この構成ネットは、ハードウエアトロイが存在する可能性がある疑トロイ回路部41、ハードウエアトロイが存在しない非トロイ回路部42、その他の部分である残余回路部43を備えている。
 疑トロイ回路部41は、論理セルであるANDゲートC1~C11を備え、端子間ネットs1i1~s1i17、s2i1~s2i8、s3i1、s3i2によって論理セルが接続されている。ANDゲートC10とANDゲートC11との間には、縦続接続された3つのバッファB1~B3が設けられている。
 非トロイ回路部42は、ANDゲートC12、DフリップフロップF1、マルチプレクサMの一部、バッファB4を備え、端子間ネットFB1、FB2、LP1、非トロイのネットAT1、マルチプレクサMの出力ネットOUTPUT等を有している。
 残余回路部43は、縦続接続された3つのバッファB5~B7、マルチプレクサMの一部を備え、端子間ネットとして、ANDゲートC11の出力ネットTRG1、バッファB5~B7を接続するネット、マルチプレクサMの一方の入力へ到るトロイのペイロードのネットP1、マルチプレクサMの出力ネットOUTPUT等を有している。
 上記のような構成ネットに対し、CPU10外部記憶装置23内のハードウエアトロイ検出用プログラムによって図4のフローチャートに示すように動作を行うので、このフローチャートに基づき動作を説明する。CPU10は、検査対象のネットリストを読み込む(S11)。この検査対象のネットリストについての読み込みは、例えば、外部記憶装置23から行うことができ、また、ネットワークインタフェース16とネットワーク26を介して外部のサーバやクラウドなどにアクセスして行うことができる。
 次にCPU10は、読み込んだネットリストにより、全論理セルの入出力のネットに初期値としてパラメータを設定する(S12)。
 上記に用いるパラメータは、例えば次のように決定される。本実施形態が対象とするLSIなどのデバイスに用いられる論理セルにおいて入出力される信号は、図5に示されるようにHレベルとLレベルといずれかの値を有し、どちらかのレベルである。このため、図5のようにHレベルとLレベルが変化するとして、時間T中にH(L)レベルである割合は0.5である。この0.5をパラメータとして全論理セルの入出力のネットに初期値として設定する。この結果は、図6に示す通りである。
 次に、設定された上記パラメータを用いた上記演算を上記論理セルの全てについて入力値と出力値の更新を行う(S13)。この場合、上記演算による演算はどこから始めても良く、順不同である。図7には、ANDゲートC11とANDゲートC12について出力側において演算を行った結果が示されている。この場合の上記演算は、図8に示される式により行われる。
 図9には、ANDゲートC11から下流側へと演算を進め、ANDゲートC9とANDゲートC10のそれぞれの出力について演算を行った結果が示されている。更に、図10には、ANDゲートC9とANDゲートC10のそれぞれの入力について演算を行った結果が示されている。
 図11には、バッファ及びリピータについての更新の場合には、入力値がバッファまたはリピータの出力へ伝達されるまでの所定回数更新を行う例が示されている。構成ネットにおける全論理セルの上記演算を1回クール行うときに、バッファまたはリピータについては10回の上記演算による更新に相当する入出力値の更新を行う。この結果、3つのバッファB1~B3において、ANDゲートC10の出力0.0625が順に伝達される。ANDゲートC10の出力がどのタイミングで変化するか不定であるため、ここでは、10回の上記演算による更新に相当する入出力値の更新を行う。
 また、図11には、3つのバッファB5~B7において、ANDゲートC11の出力0.0625が順に伝達されることが示されている。3つのバッファB5~B7の入出力値の更新についても、ANDゲートC11の出力がどのタイミングで変化するか不定であるため、ここでは、10回の上記演算による更新に相当する入出力値の更新を行う。この例では、バッファの入出力の更新を、図11に示すタイミング行っているが、他のタイミングでも行われるものである。
 以上のようにして、設定された上記パラメータを用いた上記演算を上記論理セルの全てについて入力値と出力値の更新が完了(1回クールの更新が完了)すると、所定回クール(ここでは、4回クール)の更新が完了したのかを検出し(S14)、NOとなるとステップS13へ戻って処理が続けられる。
 ステップS13へ戻った場合には、2クール目の処理となる。上記の図11に示した1回クール目の終了から、図12に示す2クール目の処理では、ANDゲートC11の出力が0.001935に更新される。以下、ANDゲートC11の下流側の論理セルの入出力値の更新が行われ、更に、ANDゲートC11の上流側の論理セルの入出力値の更新が行われる。この第2クール目の更新においても順不同である。以下同様に第1クール目の処理で説明した通りの動作と同様に動作が進められる。このようにして、第2クール目の処理が終了し、次に第3クール目の処理が開始されて終了し、更に第4クール目の処理が開始されて終了すると、ステップS14においてYESへ分岐し、ステップS15へ進む。
 ステップS15では、CPU10は、前述の通りの閾値(出力値で1e-7、入力値で1-(1e-7))と各論理セルの入力値と出力値を比較し(S15)、判定条件である出力値が1e-7以下か、または入力値が1-(1e-7)以上であるかを判定する(S16)。
 上記ステップS16においてYESとなると、ハードウエアトロイが存在すると判定し、その旨を表示装置25に表示させるなどの出力処理を行い(S17)、上記ステップS16においてNOとなると、ハードウエアトロイが存在しないと判定し、その旨を表示装置25に表示させるなどの出力処理を行う(S18)。
 次に、本発明の第2の実施形態に係るハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラムについて説明する。第2の実施形態に係るハードウエアトロイ検出方法、ハードウエアトロイ検出装置の実施形態についても、本発明の第1の実施形態に係るハードウエアトロイ検出装置1と同じ図13に示すコンピュータシステムによってハードウエアトロイ検出装置1Aが実現される。
 図14に、本発明の第2の実施形態に係るハードウエアトロイ検出装置1Aの機能ブロック図を示す。第2の実施形態に係るハードウエアトロイ検出装置1Aにおいて、CPU10では、外部記憶装置23内のハードウエアトロイ検出用プログラムによって図14に記載の各手段等が実現される。即ち、第1の実施形態と同じ、入出力更新手段31、パラメータ設定手段32を備える。入出力更新手段31、パラメータ設定手段32以外に、検出手段33A、第1の閾値取得手段34、判定スコア閾値取得手段35、第2の閾値取得手段36を備える。
 第1の閾値取得手段34は、ハードウエアトロイを含む既知ネットリスト及びハードウエアトロイを含まない既知ネットリストを用いて、上記パラメータ設定手段32と上記入出力更新手段31とによる処理を行い、この入出力更新手段31における上記演算を所定回クール行ったときに得られた構成ネット内の入出力値に基づき第1の閾値を求めるものである。上記検出手段33Aは、上記第1の閾値を用いてハードウエアトロイの検出を行う。
 本実施形態では、既知ネットリスト及び検査対象のネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを1以上含む集合ネットを少なくとも含んで構成される。第1の閾値取得手段34は、構成ネット毎に第1の閾値を取得する。
 判定スコア閾値取得手段35は、既知ネットリスト内のそれぞれの構成ネットにおいて最大最小の入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを既知ネットリストの集合ネット毎に合計して、得られた集合ネット毎スコアを比較して、最小の集合ネット毎スコアに基づき判定スコア閾値を得るものである。ここに、判定スコア閾値取得手段35が上記処理を実行する場合における、最大スコアを有する集合ネットを、「最大スコアネット」と称し、既知ネットリスト内の最大スコアネットの数を、「最大スコアネット数」と称する。
 前記検出手段33Aは、検査対象のネットリスト毎に第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを検査対象ネットリストの集合ネット毎に合計して検査対象スコアを得て、検査対象スコアを前記判定スコア閾値に基づき評価して前記検査対象のネットリスト中のハードウエアトロイの検出を行う。
 第2の閾値取得手段36は、所定時間内に一定値を出力するクロック数が所定値以上であり、最大スコアネット数が最大スコアネット数閾値以下である条件に合致するハードウエアトロイを含むと予想される既知ネットリストを複数の既知ネットリスト中から抽出し、抽出した既知ネットリストを用いて、上記パラメータ設定手段32と上記入出力更新手段31とによる処理を行い、この入出力更新手段31における上記演算を所定回クール行ったときに得られた出力値に基づき第2の閾値を求めるものである。
 本実施形態では、例えば、米国のサイト(Trust-HUB)に公開されているベンチマークのネットリストを用いることができる。この内の10個のベンチマークを選択して、ハードウエアトロイが含まれているものを(HT-inserted)、ハードウエアトロイが含まれていないものを(HT-free)として示すと次の表1のようになる。
Figure JPOXMLDOC01-appb-T000001
 表1のベンチマークの公知ネットリストには、集合ネットが1つ以上含まれ、集合ネットには1以上の構成ネットが含まれている。この構成ネットには、「疑トロイネット」と称されるトロイネットである可能性がある端子間ネットを見出すことができ、疑トロイネットを含む構成ネットが公知ネットリストに含まれていることが知られている。この疑トロイネットを含む構成ネットを対照ネットと称し、表1のベンチマークのものから9種類の対照ネットを見出すことができることが特許文献3に開示されている。
 本実施形態では、上記9種類の対照ネットを見つけ出すことなく、ハードウエアトロイを含む既知ネットリスト及びハードウエアトロイを含まない既知ネットリスト(上記ベンチマークのもの)を用いて、上記パラメータ設定手段32と上記入出力更新手段31とによる第1の実施形態で説明した通りの処理を行い、この入出力更新手段31における上記演算を所定回クール行ったときに得られた構成ネット内の入出力値を求める。
 ハードウエアトロイを含む既知ネットリスト及びハードウエアトロイを含まない既知ネットリスト(上記ベンチマークのもの)の全ての構成ネットに対して上記の処理を行った結果、出力値で小数点以下に例えば5個以上の0を有する数値TO(例えば1e-7)に近い値(トロイ有出力閾値という)や、入力値で1からTOを引いた数値TI(例えば1-(1e-7))に近い値(トロイ有入力閾値という)、が得られる。
 第1の閾値取得手段34は、全ての構成ネットから得られたトロイ有出力閾値とトロイ有入力閾値についてそれぞれの平均値を得て、第1の閾値とする。また、トロイ有出力閾値が1e-7と1e-6のように1桁以上離れたものが得られた場合には、トロイ有出力閾値の1、トロイ有出力閾値の2として上記の平均値をそれぞれについて求める。また、この場合には、トロイ有入力閾値の1、トロイ有入力閾値の2が得られると、これについても平均値をそれぞれについて求める。そして、第1の閾値は、第1の閾値の1、第1の閾値の2のように複数得られる。
 判定スコア閾値取得手段35は、構成ネット内のそれぞれの入出力値においてスコア付与をする。スコアは、出力値が、図15に示すように、トロイ有出力閾値の1以下である場合に2、トロイ有出力閾値の1より大きくトロイ有出力閾値の2以下である場合に1、トロイ有出力閾値の2より大の場合に0である。また、スコアは、入力値が、図15に示すように、トロイ有入力閾値の1以上である場合に2、トロイ有入力閾値の1より小さくトロイ有入力閾値の2以上である場合に1、トロイ有入力閾値の2より小の場合に0である。
 スコアは、構成ネットの全ての入力値と全ての出力値に対し与えられる。構成ネットに付与されたスコアの最大スコアを既知ネットリストの集合ネット毎に合計する。従って、構成ネット中の、トロイ有出力閾値より小さな出力値に対応するスコアが最大スコアとなり、またはトロイ有入力閾値より大きな入力値に対応するスコアが最大スコアとなる。
 次に、最大スコアを既知ネットリストの全集合ネットについて合計する。従って、ハードウエアトロイが含まれている可能性が高い構成ネットと集合ネットを多く含む既知ネットリストにおいて、合計スコアが大きくなる。このようにして得られたネットリスト毎スコアを比較して、最小のネットリスト毎スコアに基づき判定スコア閾値を得る。例えば、最小の既知ネットリスト毎スコアに1を加えた値を判定スコア閾値とする。表1のベンチマークの既知ネットリストを用いると、3が判定スコア閾値として求められる。
 上記検出手段33Aは、検査対象のネットリストの構成ネット毎に入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与する。この動作では、第1の閾値取得手段34が求めた第1の閾値を用いて、検出手段33Aが、検査対象のネットリストの構成ネット毎に入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与する。スコアの付与は、図15に示した第1の閾値とスコアとの変換テーブルのデータを用いて行われる。
 検出手段33Aによるスコア付与と同様に、構成ネットの全ての入力値と全ての出力値に対し与えられる。構成ネットに付与されたスコアの最大スコアを既知ネットリストの集合ネット毎に合計される。従って、検査対象のネットリストの構成ネット中の、トロイ有出力閾値より小さな出力値に対応するスコアが最大スコアとなり、またはトロイ有入力閾値より大きな入力値に対応するスコアが最大スコアとなる。
 次に、最大スコアを検査対象ネットリストの全集合ネットについて合計し、検査対象スコアが得られる。この検査対象スコアと判定スコア閾値(前述の例では、3)とを比較し、上記検査対象のネットリスト中のハードウエアトロイの検出を行う。具体的には、検査対象スコアが判定スコア閾値(前述の例では、3)以上である場合には、ハードウエアトロイが存在すると判定し、その旨を表示装置25に表示させるなどの出力処理を行う。
 この第2の実施形態では、図14に示されるように、第2の閾値取得手段36を備える。第2の閾値取得手段36は、所定時間内に一定値を出力するクロック数が所定値以上であり、最大スコアネット数が最大スコアネット数閾値以下である条件に合致するハードウエアトロイを含むと予想される既知ネットリストを複数の既知ネットリスト中から抽出する。
 判定スコア閾値取得手段35においては、既知ネットリスト内のそれぞれの構成ネットにおいて入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを既知ネットリストの全集合ネットについて合計する。
 表1に示すベンチマークの既知ネットリストについて、上記最大スコアネット数とトロイネットの含有の関係を検討すると、公知トロイネットを含む場合には最大スコアネット数が比較的小さく、最大スコアネット数(Xnumber)の最も大きな値は、ベンチマーク(s38417-T100)の5である。このように、公知トロイネットを含む/含まないについては、複数の既知ネットリストの最大スコアネット数(Xnumber)を調べ、調べた中で最も大きい最大スコアネット数(Xnumber)を最大スコアネット数閾値(Tnumber)とすることができる。最大スコアネット数が最大スコアネット数閾値以下であるという条件が、公知トロイネットを含む既知ネットリストである条件(ネット数条件という)である。
 一方、例えば、図16に示すように、1Mクロック間で一定値を出力する最長のクロック数を、最大一定サイクル数(Max constant cycles)と称する。この最大一定サイクル数が高いほど、最大スコアネットはトロイネットを含む可能性が高くなる。トロイネットは動作し難いため、トロイネットが存在する場合には、長期間にわたって一定値が出力されることが予測される(一定サイクル数条件という)。
 表1に示したベンチマークの中で、上記「一定サイクル数条件」と上記「ネット数条件」を満たす既知ネットリストのベンチマークは、ベンチマーク(RS232-T1000、s38417-T100、およびvga_lcd-T100)であることが特許文献3に示されている。
 このように第2の閾値取得手段36は、上記「一定サイクル数条件」と上記「ネット数条件」を満たす既知ネットリストを抽出し、抽出した既知ネットリストを用いて、上記パラメータ設定手段32と上記入出力更新手段31とによる処理を行い、この入出力更新手段31における上記演算を所定回クール行ったときに得られた出力値に基づき第2の閾値を求める。
 上記の上記パラメータ設定手段32と上記入出力更新手段31とによる処理によって、上記演算を所定回クール行って、出力値を得る処理は、処理する対象のネットリストが、ベンチマーク(RS232-T1000、s38417-T100、およびvga_lcd-T100)のネットリストである点を除けば、同じであり、図4のフローチャートにおけるステップS11からS15において説明したので、ここでは説明を省略する。
 以上で、入出力更新手段31における上記演算を所定回クール行ったときに、構成ネット内の入出力値が求められる。この内の出力値としては、小数点以下に例えば5個以上の0を有する数値TO(例えば1e-7)に近い値(トロイ有出力閾値という)が得られ、入力値としては、1からTOを引いた数値TI(例えば1-(1e-7))に近い値(トロイ有入力閾値という)、が得られる。
 第2の閾値取得手段36は、全ての構成ネットから得られたトロイ有出力閾値とトロイ有入力閾値についてそれぞれの平均値を得て、第2の閾値とする。本実施形態では、3つのベンチマークのネットリストを用いているために、第2の閾値は3つ生成される。最終的には、平均値を第2の閾値とする、或いは、トロイ有出力閾値については最も小さいものを第2の閾値とし、トロイ有入力閾値については最も大きいものを第2の閾値とする。
 上記検出手段33Aは、上記第2の閾値を用いて上記検査対象のネットリスト中のハードウエアトロイの検出を行う。この上記検出手段33Aによる検出処理は、図4のフローチャートにより示した通りであり、このフローチャートにおいて、ステップS16において用いる閾値が上記第2の閾値となる。
 この第2の実施形態によるハードウエアトロイ検出の処理を、入出力更新手段31、パラメータ設定手段32以外に、検出手段33A、第1の閾値取得手段34、判定スコア閾値取得手段35、第2の閾値取得手段36による処理手順として示すと、図17のフローチャートに示すようである。
 まず、第1の閾値を取得するための処理が行われる(S51)。このステップS51においては、入出力更新手段31、パラメータ設定手段32、第1の閾値取得手段34により処理が行われる。次に、判定スコア閾値の取得を行う処理が行われる(S52)。このステップS52においては、判定スコア閾値取得手段35により処理が行われる。次に、検査対象ネットリストについて判定スコア閾値を用いたハードウエアトロイ検出の処理が行われる(S53)。このステップS53においては、入出力更新手段31、パラメータ設定手段32、検出手段33Aにより処理が行われる。
 次に、第2の閾値を取得するための処理が行われる(S54)。このステップS54においては、入出力更新手段31、パラメータ設定手段32、第2の閾値取得手段36により処理が行われる。更に、検査対象ネットリストについて第2の閾値を用いたハードウエアトロイ検出の処理が行われる(S55)。このステップS55においては、入出力更新手段31、パラメータ設定手段32、検出手段33Aにより処理が行われる。
 以上のように第1の実施形態、第2の実施形態においても、全論理セルの入出力のネットに初期値としてパラメータを設定し、設定された上記パラメータを用いた上記演算を上記論理セルの全てについて所定回クール行って入力値と出力値の更新を行う処理が基本的な処理となり、簡単な処理で多くの時間を要さないハードウエアトロイの検出を行い得ることが期待される。
 本発明に係る複数の実施形態を説明したが、これらの実施形態は例として提示するものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
 実施形態において説明した、公知ネットリストの数および対照ネットの数はこれらに限定されない。公知ネットリストの数は例示に過ぎない。また、実施形態においては、対照ネットのスコアは変わり得る数値である。最大スコア閾値および最大スコアネット数閾値の値も、変わり得るものである。最大スコア閾値および最大スコアネット数閾値は、一例に過ぎない。また、最大一定クロック数(1Mクロック間で一定値を出力する最長のクロック数)を用いたが、これに限定されるものではない。
 1 第1の実施形態に係るハードウエアトロイ検出装置
 1A 第2の実施形態に係るハードウエアトロイ検出装置
 11 主メモリ
 12 バス
 13 外部記憶インタフェース
 14 入力インタフェース
 15 表示インタフェース
 16 ネットワークインタフェース
 22 マウス
 23 外部記憶装置
 24 入力装置
 25 表示装置
 26 ネットワーク
 31 入出力更新手段
 32 パラメータ設定手段
 33、33A 検出手段
 34 第1の閾値取得手段
 35 判定スコア閾値取得手段
 36 第2の閾値取得手段
 41 疑トロイ回路部
 42 非トロイ回路部
 43 残余回路部

Claims (21)

  1.  検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行う入出力更新工程と、
     更新された入出力値と閾値との比較結果に基づきハードウエアトロイの検出を行う検出工程と
     を備えることを特徴とするハードウエアトロイ検出方法。
  2.  前記全論理セルの入出力のネットに初期値としてパラメータを設定するパラメータ設定工程を備え、
     前記入出力更新工程では、設定された前記パラメータを用いた前記演算を前記論理セルの全てについて所定回クール行って入力値と出力値の更新を行い、
     前記検出工程では、前記演算を所定回クール行ったときに得られたいずれかの論理セルの出力値に基づきハードウエアトロイの検出を行う
     ことを特徴とする請求項1に記載のハードウエアトロイ検出方法。
  3.  前記論理セルは、論理回路と、必要な場合に論理回路以外のバッファ、リピータを含むものであり、
     前記入出力更新工程は、1回毎のクールにおける入力値と出力値の更新の処理内において、バッファ及びリピータについての更新の場合には、入力値がバッファまたはリピータの出力へ伝達されるまでの所定回数更新を行うことを特徴とする請求項1または2に記載のハードウエアトロイ検出方法。
  4.  ハードウエアトロイを含む既知ネットリスト及びハードウエアトロイを含まない既知ネットリストを用いて、前記パラメータ設定工程と前記入出力更新工程とを行い、この入出力更新工程における前記演算を所定回クール行ったときに得られた構成ネット内の入出力値に基づき第1の閾値を求める第1の閾値取得工程を備え、
     前記検出工程では、前記第1の閾値を用いてハードウエアトロイの検出を行うことを特徴とする請求項1乃至3のいずれか1項に記載のハードウエアトロイ検出方法。
  5.  既知ネットリスト及び検査対象のネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを1以上含む集合ネットを少なくとも含んで構成され、
     前記第1の閾値取得工程では、構成ネット毎に第1の閾値を取得し、
     既知ネットリスト内のそれぞれの構成ネットにおいて入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを既知ネットリストの全集合ネットについて合計して、得られたネットリスト毎スコアを比較して、最小のネットリスト毎スコアに基づき判定スコア閾値を得る判定スコア閾値取得工程を備え、
     前記検出工程では、検査対象のネットリストの構成ネット毎に入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを検査対象ネットリストの全集合ネットについて合計して検査対象スコアを得て、検査対象スコアを前記判定スコア閾値に基づき評価して前記検査対象のネットリスト中のハードウエアトロイの検出を行う
     ことを特徴とする請求項4に記載のハードウエアトロイ検出方法。
  6.  所定時間内に一定値を出力するクロック数が所定値以上であり、最大スコアネット数が最大スコアネット数閾値以下である条件に合致するハードウエアトロイを含むと予想される既知ネットリストを複数の既知ネットリスト中から抽出し、抽出した既知ネットリストを用いて、前記パラメータ設定工程と前記入出力更新工程とを行い、この入出力更新工程における前記演算を所定回クール行ったときに得られた出力値に基づき第2の閾値を求める第2の閾値取得工程を備え、
     前記検出工程では、前記第2の閾値を用いて前記検査対象のネットリスト中のハードウエアトロイの検出を行うことを特徴とする請求項1乃至5のいずれか1項に記載のハードウエアトロイ検出方法。
  7.  前記検出工程では、前記検査対象のネットリストに基づく回路規模に対応する回路規模対応閾値と、前記演算を所定回クール行ったときに得られたいずれかの論理セルの入出力値の比較に基づき前記検査対象のネットリスト中のハードウエアトロイの検出を行うことを特徴とする請求項1に記載のハードウエアトロイ検出方法。
  8.  検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行う入出力更新手段と、
     更新された入出力値が閾値との比較結果に基づきハードウエアトロイの検出を行う検出手段と
     を備えることを特徴とするハードウエアトロイ検出装置。
  9.  前記全論理セルの入出力のネットに初期値としてパラメータを設定するパラメータ設定手段を備え、
     前記入出力更新手段では、設定された前記パラメータを用いた前記演算を前記論理セルの全てについて所定回クール行って入力値と出力値の更新を行い、
     前記検出手段では、前記演算を所定回クール行ったときに得られたいずれかの論理セルの出力値に基づきハードウエアトロイの検出を行う
     ことを特徴とする請求項8に記載のハードウエアトロイ検出装置。
  10.  前記論理セルは、論理回路と、必要な場合に論理回路以外のバッファ、リピータを含むものであり、
     前記入出力更新手段は、1回毎のクールにおける入力値と出力値の更新の処理内において、バッファ及びリピータについての更新の場合には、入力値がバッファまたはリピータの出力へ伝達されるまでの所定回数更新を行うことを特徴とする請求項8または9に記載のハードウエアトロイ検出装置。
  11.  ハードウエアトロイを含む既知ネットリスト及びハードウエアトロイを含まない既知ネットリストを用いて、前記パラメータ設定手段と前記入出力更新手段とによる処理を行い、この入出力更新手段における前記演算を所定回クール行ったときに得られた構成ネット内の入出力値に基づき第1の閾値を求める第1の閾値取得手段を備え、
     前記検出手段は、前記第1の閾値を用いてハードウエアトロイの検出を行うことを特徴とする請求項8乃至10のいずれか1項に記載のハードウエアトロイ検出装置。
  12.  既知ネットリスト及び検査対象のネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを1以上含む集合ネットを少なくとも含んで構成され、
     前記第1の閾値取得手段は、構成ネット毎に第1の閾値を取得し、
     既知ネットリスト内のそれぞれの構成ネットにおいて入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを既知ネットリストの全集合ネットについて合計して、得られたネットリスト毎スコアを比較して、最小のネットリスト毎スコアに基づき判定スコア閾値を得る判定スコア閾値取得手段を備え、
     前記検出手段は、検査対象のネットリストの構成ネット毎に入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを検査対象ネットリストの全集合ネットについて合計して検査対象スコアを得て、検査対象スコアを前記判定スコア閾値に基づき評価して前記検査対象のネットリスト中のハードウエアトロイの検出を行う
     ことを特徴とする請求項11に記載のハードウエアトロイ検出装置。
  13.  所定時間内に一定値を出力するクロック数が所定値以上であり、最大スコアネット数が最大スコアネット数閾値以下である条件に合致するハードウエアトロイを含むと予想される既知ネットリストを複数の既知ネットリスト中から抽出し、抽出した既知ネットリストを用いて、前記パラメータ設定手段と前記入出力更新手段とによる処理を行い、この入出力更新手段における前記演算を所定回クール行ったときに得られた出力値に基づき第2の閾値を求める第2の閾値取得手段を備え、
     前記検出手段は、前記第2の閾値を用いて前記検査対象のネットリスト中のハードウエアトロイの検出を行うことを特徴とする請求項8乃至12のいずれか1項に記載のハードウエアトロイ検出装置。
  14.  前記検出手段は、前記検査対象のネットリストに基づく回路規模に対応する回路規模対応閾値と、前記演算を所定回クール行ったときに得られたいずれかの論理セルの入出力値の比較に基づき前記検査対象のネットリスト中のハードウエアトロイの検出を行うことを特徴とする請求項8に記載のハードウエアトロイ検出装置。
  15.  コンピュータを、
     検査対象のネットリストに含まれる全論理セルの論理式による演算を行って全論理セルの入出力値の更新を行う入出力更新手段、
     更新された入出力値が閾値との比較結果に基づきハードウエアトロイの検出を行う検出手段
     として機能させることを特徴とするハードウエアトロイ検出用プログラム。
  16.  前記コンピュータを更に、
     前記全論理セルの入出力のネットに初期値としてパラメータを設定するパラメータ設定手段として機能させ、
     前記コンピュータを前記入出力更新手段として、設定された前記パラメータを用いた前記演算を前記論理セルの全てについて所定回クール行って入力値と出力値の更新を行うように機能させ、
     前記コンピュータを前記検出手段として、前記演算を所定回クール行ったときに得られたいずれかの論理セルの出力値に基づきハードウエアトロイの検出を行うように機能させる
     ことを特徴とする請求項15に記載のハードウエアトロイ検出用プログラム。
  17.  前記論理セルは、論理回路と、必要な場合に論理回路以外のバッファ、リピータを含むものであり、
     前記コンピュータを前記入出力更新手段として、1回毎のクールにおける入力値と出力値の更新の処理内において、バッファ及びリピータについての更新の場合には、入力値がバッファまたはリピータの出力へ伝達されるまでの所定回数更新を行うように機能させることを特徴とする請求項15または16に記載のハードウエアトロイ検出用プログラム。
  18.  前記コンピュータを更に、ハードウエアトロイを含む既知ネットリスト及びハードウエアトロイを含まない既知ネットリストを用いて、前記パラメータ設定手段と前記入出力更新手段とによる処理を行い、この入出力更新手段における前記演算を所定回クール行ったときに得られた構成ネット内の入出力値に基づき第1の閾値を求める第1の閾値取得手段として機能させ、
     前記コンピュータを前記検出手段として、前記第1の閾値を用いてハードウエアトロイの検出を行うように機能させることを特徴とする請求項15乃至17のいずれか1項に記載のハードウエアトロイ検出用プログラム。
  19.  既知ネットリスト及び検査対象のネットリストは、端子間ネットによって接続された一群の回路によって構成される構成ネットを1以上含む集合ネットを少なくとも含んで構成され、
     前記コンピュータを前記第1の閾値取得手段として、構成ネット毎に第1の閾値を取得するように機能させ、
     前記コンピュータを更に、既知ネットリスト内のそれぞれの構成ネットにおいて入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを既知ネットリストの全集合ネットについて合計して、得られたネットリスト毎スコアを比較して、最小のネットリスト毎スコアに基づき判定スコア閾値を得る判定スコア閾値取得手段として機能させ、
     前記コンピュータを前記検出手段として、検査対象のネットリストの構成ネット毎に入出力値と第1の閾値との大小関係に応じて所定値のスコアを付与し、構成ネットに付与されたスコアの最大スコアを検査対象ネットリストの全集合ネットについて合計して検査対象スコアを得て、検査対象スコアを前記判定スコア閾値に基づき評価して前記検査対象のネットリスト中のハードウエアトロイの検出を行うように機能させる
     ことを特徴とする請求項18に記載のハードウエアトロイ検出用プログラム。
  20.  前記コンピュータを更に、所定時間内に一定値を出力するクロック数が所定値以上であり、最大スコアネット数が最大スコアネット数閾値以下である条件に合致するハードウエアトロイを含むと予想される既知ネットリストを複数の既知ネットリスト中から抽出し、抽出した既知ネットリストを用いて、前記パラメータ設定手段と前記入出力更新手段とによる処理を行うように機能させ、前記コンピュータをこの入出力更新手段として機能させて前記演算を所定回クール行ったときに得られた出力値に基づき第2の閾値を求める第2の閾値取得手段として機能させ、
     前記コンピュータを前記検出手段として、前記第2の閾値を用いて前記検査対象のネットリスト中のハードウエアトロイの検出を行うように機能させることを特徴とする請求項15乃至19のいずれか1項に記載のハードウエアトロイ検出用プログラム。
  21.  前記コンピュータを前記検出手段として、前記検査対象のネットリストに基づく回路規模に対応する回路規模対応閾値と、前記演算を所定回クール行ったときに得られたいずれかの論理セルの入出力値の比較に基づき前記検査対象のネットリスト中のハードウエアトロイの検出を行うように機能させることを特徴とする請求項15に記載のハードウエアトロイ検出用プログラム。
PCT/JP2021/023846 2020-06-25 2021-06-23 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム WO2021261532A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180043134.XA CN115698993A (zh) 2020-06-25 2021-06-23 硬件木马检测方法、硬件木马检测装置以及硬件木马检测用程序
US18/003,275 US20230252192A1 (en) 2020-06-25 2021-06-23 Hardware trojan detection method, hardware trojan detection device, and program for hardware trojan detection

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-110020 2020-06-25
JP2020110020A JP7410476B2 (ja) 2020-06-25 2020-06-25 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム

Publications (1)

Publication Number Publication Date
WO2021261532A1 true WO2021261532A1 (ja) 2021-12-30

Family

ID=79281335

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/023846 WO2021261532A1 (ja) 2020-06-25 2021-06-23 ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム

Country Status (4)

Country Link
US (1) US20230252192A1 (ja)
JP (1) JP7410476B2 (ja)
CN (1) CN115698993A (ja)
WO (1) WO2021261532A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7335535B2 (ja) 2022-02-10 2023-08-30 東芝情報システム株式会社 ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104950246A (zh) * 2015-06-11 2015-09-30 工业和信息化部电子第五研究所 基于延时的硬件木马检测方法和系统
WO2016080380A1 (ja) * 2014-11-18 2016-05-26 学校法人早稲田大学 ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104950247B (zh) 2015-06-11 2018-04-27 工业和信息化部电子第五研究所 基于多电源电流的硬件木马检测方法和系统
US20200104497A1 (en) 2018-09-28 2020-04-02 Amida Technology Solutions, Inc. Method, system, and apparatus for security assurance, protection, monitoring and analysis of integrated circuits and electronic systems in method, system, and apparatus for security assurance, protection, monitoring and analysis of integrated circuits and electronic systems in relation to hardware trojans

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016080380A1 (ja) * 2014-11-18 2016-05-26 学校法人早稲田大学 ハードウェアトロイの検出方法、ハードウェアトロイの検出プログラム、およびハードウェアトロイの検出装置
CN104950246A (zh) * 2015-06-11 2015-09-30 工业和信息化部电子第五研究所 基于延时的硬件木马检测方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DUPUIS, SOPHIE ET AL.: "Protection Against Hardware Trojans With Logic Testing: Proposed Solutions and Challenges Ahead", IEEE DESIGN & TEST, vol. 35, no. 2, April 2018 (2018-04-01), pages 73 - 90, XP011680092, DOI: 10.1109/MDAT.2017.2766170 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7335535B2 (ja) 2022-02-10 2023-08-30 東芝情報システム株式会社 ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム

Also Published As

Publication number Publication date
CN115698993A (zh) 2023-02-03
US20230252192A1 (en) 2023-08-10
JP7410476B2 (ja) 2024-01-10
JP2022007202A (ja) 2022-01-13

Similar Documents

Publication Publication Date Title
US11604917B2 (en) Static voltage drop (SIR) violation prediction systems and methods
JP2010002370A (ja) パターン抽出プログラム、方法及び装置
US9857421B2 (en) Dynamic design partitioning for diagnosis
JP6995451B2 (ja) 回路適正化装置及び回路適正化方法
WO2021261532A1 (ja) ハードウエアトロイ検出方法、ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
US8898602B2 (en) Apparatus for design assist and method for selecting signal line onto which test point for test controlling is to be inserted in circuit to be designed
US20120136635A1 (en) Method and apparatus for optimizing constraint solving through constraint rewriting and decision reordering
JP4445517B2 (ja) 回路設計検証方法および回路設計検証のためのプログラム
CN109858246B (zh) 一种针对控制信号型硬件木马的分类方法
US10666255B1 (en) System and method for compacting X-pessimism fixes for gate-level logic simulation
US7962877B2 (en) Port assignment in hierarchical designs by abstracting macro logic
JP7357593B2 (ja) 機械学習装置、設計支援装置、機械学習方法および設計支援方法
JP7335535B2 (ja) ハードウエアトロイ検出装置及びハードウエアトロイ検出用プログラム
JP2003058597A (ja) 論理等価性検証装置及び論理等価性検証方法
US20150026652A1 (en) System, method, and computer program product for correlating transactions within a simulation of a hardware platform for post-simulation debugging
US20180196907A1 (en) Architecture generating device
CN114969759B (zh) 工业机器人系统的资产安全评估方法、装置、终端及介质
US20160004797A1 (en) Circuit designing support apparatus and program
US7899660B2 (en) Technique for digital circuit functionality recognition for circuit characterization
US9069762B2 (en) Equivalence classes over parameter state space
US8869092B2 (en) Wiring inspection apparatus and wiring inspection method
JP5262899B2 (ja) モデル検査装置
CN117829093A (zh) 加速芯片时序收敛的方法及装置
CN111177713A (zh) 一种基于XGBoost的硬件木马检测方法及装置
JP2011048412A (ja) 情報処理装置及び情報処理方法及びプログラム

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: 21829675

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21829675

Country of ref document: EP

Kind code of ref document: A1