JP4586755B2 - General-purpose logic circuit - Google Patents

General-purpose logic circuit Download PDF

Info

Publication number
JP4586755B2
JP4586755B2 JP2006079012A JP2006079012A JP4586755B2 JP 4586755 B2 JP4586755 B2 JP 4586755B2 JP 2006079012 A JP2006079012 A JP 2006079012A JP 2006079012 A JP2006079012 A JP 2006079012A JP 4586755 B2 JP4586755 B2 JP 4586755B2
Authority
JP
Japan
Prior art keywords
circuit
logic circuit
purpose logic
random number
general
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006079012A
Other languages
Japanese (ja)
Other versions
JP2007257166A (en
Inventor
良康 平井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP2006079012A priority Critical patent/JP4586755B2/en
Publication of JP2007257166A publication Critical patent/JP2007257166A/en
Application granted granted Critical
Publication of JP4586755B2 publication Critical patent/JP4586755B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

この発明は、FPGA(Field Programmable Gate Array)やCPLD(Complex Programmable Logic Device)などのプログラム可能な汎用論理回路に関し、特に揮発性の汎用論理回路に読み込む回路情報を保護する技術に関する。   The present invention relates to a programmable general-purpose logic circuit such as an FPGA (Field Programmable Gate Array) and a CPLD (Complex Programmable Logic Device), and more particularly to a technique for protecting circuit information read into a volatile general-purpose logic circuit.

一般にプログラム可能な汎用論理回路としては回路規模が大きい場合、もっぱら揮発性のFPGAやCPLD等が用いられる。揮発性のFPGA等は電源投入時に外部から回路情報をロードして使うので、回路情報が複製されて盗用されるおそれを伴う。このため回路情報を保護する技術が従来から種々提供されている。   In general, as a programmable general-purpose logic circuit, when the circuit scale is large, a volatile FPGA, CPLD, or the like is used exclusively. Since the volatile FPGA or the like loads and uses circuit information from the outside when the power is turned on, the circuit information may be duplicated and stolen. For this reason, various techniques for protecting circuit information have been provided.

この種の従来の技術として、たとえば特許文献1に記載される技術がある。同文献中の図1の符号を引用してこの技術を説明すると、ROM7は、復号回路構成情報格納部9と回路情報暗号化データ格納部10を備えている。復号回路構成情報格納部9には、暗号化データを復号する復号回路を構築するための復号回路構成データが格納されている。回路情報暗号化データ格納部10には、FPGA8の回路情報を暗号化した回路情報暗号化データが格納されている。一方、FPGA8は、制御部11や鍵データ格納部12、回路情報記憶用SRAM(Static Random Access Memory)13を備えている。制御部11は、外部に対するデータ入出力動作や回路内部の各部の制御を行うものである。鍵データ格納部12には、暗号化データの復号に必要な鍵データが格納されている。回路情報記憶用SRAM13は、復号した回路情報を格納するメモリ領域を提供する。   As this type of conventional technique, for example, there is a technique described in Patent Document 1. To describe this technique with reference to the reference numerals in FIG. 1 in the document, the ROM 7 includes a decryption circuit configuration information storage unit 9 and a circuit information encrypted data storage unit 10. The decryption circuit configuration information storage unit 9 stores decryption circuit configuration data for constructing a decryption circuit for decrypting encrypted data. The circuit information encrypted data storage unit 10 stores circuit information encrypted data obtained by encrypting the circuit information of the FPGA 8. On the other hand, the FPGA 8 includes a control unit 11, a key data storage unit 12, and circuit information storage SRAM (Static Random Access Memory) 13. The control unit 11 performs data input / output operations with respect to the outside and controls each unit in the circuit. The key data storage unit 12 stores key data necessary for decrypting the encrypted data. The circuit information storage SRAM 13 provides a memory area for storing the decoded circuit information.

電源起動時に制御部11は、ROM7からまず復号回路構成データを読み出し、このデータを用いてFPGA内部に復号回路を構築する。さらに制御部11は、鍵データを復号回路に入力すると共に、ROM7から回路情報暗号化データを読み出し、読み出したデータを復号回路により復号して回路情報記憶用SRAM13に格納する。このようにして取得した回路情報に従って制御部11は、FPGA7上に論理回路を構築(プログラミング)し、しかる後、所定の大規模論理回路として機能する。   When the power is turned on, the control unit 11 first reads the decoding circuit configuration data from the ROM 7, and uses this data to construct a decoding circuit inside the FPGA. Further, the control unit 11 inputs the key data to the decryption circuit, reads the circuit information encrypted data from the ROM 7, decrypts the read data by the decryption circuit, and stores it in the circuit information storage SRAM 13. The control unit 11 constructs (programs) a logic circuit on the FPGA 7 according to the circuit information acquired in this way, and then functions as a predetermined large-scale logic circuit.

またこの種の従来の技術として、特許文献2に記載されるものもある。同文献中の図1の符号を引用してこの技術を説明すると、FPGA12は所定のプロトコルでCPLD14との間でデータ送受信を継続的に行って正当性をチェックしながら動作を行うものとしている。   Further, as this type of conventional technology, there is one described in Patent Document 2. Referring to the reference numeral of FIG. 1 in this document, this technique will be described. The FPGA 12 performs data transmission / reception continuously with the CPLD 14 using a predetermined protocol and operates while checking validity.

すなわちFPGA12は、呼び掛けシーケンスジェネレータ16や応答シーケンス比較素子18、応答シーケンスジェネレータ20、解読素子22を備えている。CPLD14は、応答シーケンスジェネレータ24やランダムビットジェネレータ26、暗号化素子28を備えている。   That is, the FPGA 12 includes a call sequence generator 16, a response sequence comparison element 18, a response sequence generator 20, and a decoding element 22. The CPLD 14 includes a response sequence generator 24, a random bit generator 26, and an encryption element 28.

ランダムビットジェネレータ26は、低周波クロックを用いて高周波発振器の出力をサンプリングして動作し、不規則なビットを発生蓄積して応答シーケンスジェネレータ24の初期状態xを生成する。この初期状態xは応答シーケンスジェネレータ24に与えられる他、暗号化素子28にも出力される。暗号化素子28は初期状態xを暗号化したうえでFPGA12に出力する。FPGA12においてこの初期状態xは解読素子22により復号され、応答シーケンスジェネレータ20に与えられる。   The random bit generator 26 operates by sampling the output of the high frequency oscillator using the low frequency clock, and generates and accumulates irregular bits to generate the initial state x of the response sequence generator 24. This initial state x is given to the response sequence generator 24 and also outputted to the encryption element 28. The encryption element 28 encrypts the initial state x and outputs it to the FPGA 12. In the FPGA 12, the initial state x is decoded by the decoding element 22 and is supplied to the response sequence generator 20.

一方、呼び掛けシーケンスジェネレータ16は所定のタイミングで応答シーケンスを発生し、この呼び掛けシーケンスに応答して応答シーケンスジェネレータ20,24がそれぞれ応答シーケンスを発生出力する。これらの応答シーケンスを応答シーケンス比較素子18が比較し、両者の一致を確認してFPGA12の動作を許容する。もし両者の不一致が見つかればFPGA12はCPLD14に動作終了を指示したうえでFPGA12自体も動作を終了する。
特開2001−325153号公報 特開2003−84853号公報
On the other hand, the interrogation sequence generator 16 generates a response sequence at a predetermined timing, and in response to the interrogation sequence, the response sequence generators 20 and 24 generate and output response sequences, respectively. The response sequence comparison element 18 compares these response sequences, confirms a match between the two, and allows the FPGA 12 to operate. If a mismatch between the two is found, the FPGA 12 instructs the CPLD 14 to end the operation, and the FPGA 12 itself also ends the operation.
JP 2001-325153 A JP 2003-84853 A

しかしながら特許文献1に記載される技術では、電源起動時にFPGA内部に回路情報を読み込む段階において、回路情報を暗号化したうえでROMから読み出すこととして回路情報の保護を図るものであるが、FPGAの動作中における不正なアクセスを排除することはできないという問題がある。さらに、暗号化した回路情報そのものをコピーすれば、回路が複製されてしまうおそれがある。   However, in the technique described in Patent Document 1, circuit information is protected by encrypting the circuit information and reading it from the ROM at the stage of reading the circuit information inside the FPGA when the power is turned on. There is a problem that unauthorized access during operation cannot be eliminated. Furthermore, if the encrypted circuit information itself is copied, the circuit may be duplicated.

一方、特許文献2に記載される技術では、FPGAとCPLDのそれぞれで生成した応答シーケンスを突き合わせてチェックを行うことによりFPGAの動作時におけるチェックを継続的に行うことが可能であるが、ランダムビットジェネレータが発生するランダムビットの生成パターンが把握されてしまうと、応答シーケンス生成の基となる応答シーケンスジェネレータの初期状態が把握されてしまう。このため、応答シーケンスの発生出力を模倣して応答シーケンスのチェックをくぐり抜けることにより、FPGAに不正にアクセスすることを許してしまうおそれがある。   On the other hand, in the technique described in Patent Document 2, it is possible to continuously check at the time of FPGA operation by matching the response sequences generated by the FPGA and CPLD, If the generation pattern of random bits generated by the generator is grasped, the initial state of the response sequence generator, which is the basis for generating the response sequence, is grasped. For this reason, there is a possibility that unauthorized access to the FPGA may be permitted by mimicking the output of the response sequence and bypassing the response sequence check.

この発明は、かかる事情に鑑み、プログラム可能な汎用論理回路に対するアクセスの正当性を継続的に監視する技術において、正当なアクセスを模倣する困難性を高めてセキュリティを向上させた技術を提供することを課題とする。   In view of such circumstances, the present invention provides a technique for improving security by increasing the difficulty of imitating legitimate access in a technique for continuously monitoring legitimacy of access to a programmable general-purpose logic circuit. Is an issue.

上記の課題を解決するために、発明は、回路情報を読み込んで論理回路を内部に構築する揮発性のプログラム可能な汎用論理回路部と不揮発性の補助回路部とから構成される汎用論理回路であって、次の要件を備えたものを提供する。
前記補助回路部は、同期クロックを発生する同期クロック発生手段と、この同期クロックに基づいてタイミングを決定して動作し第1の乱数を発生する第1の乱数発生手段とを備える。
前記プログラム可能な汎用論理回路部は、前記同期クロックに基づいてタイミングを決定して動作し前記第1の乱数発生手段と等価なアルゴリズムをもって第2の乱数を発生する第2の乱数発生手段と、第1および第2の乱数が一致するか判定し一致しない場合に異常検出を出力する比較手段と、この異常検出を受けて動作し前記プログラム可能な汎用論理回路部の動作を強制的に停止する停止手段とを備える。
In order to solve the above-described problems, the present invention provides a general-purpose logic circuit that includes a volatile programmable general-purpose logic circuit section that reads circuit information and builds a logic circuit therein, and a nonvolatile auxiliary circuit section. However, it offers the following requirements.
The auxiliary circuit unit includes a synchronous clock generating unit that generates a synchronous clock, and a first random number generating unit that determines a timing based on the synchronous clock and operates to generate a first random number.
The programmable general-purpose logic circuit unit operates by determining timing based on the synchronous clock, and generates a second random number with an algorithm equivalent to the first random number generating unit; Comparing means for determining whether the first and second random numbers match and outputting an abnormality detection when they do not match, and operating upon receiving the abnormality detection, forcibly stops the operation of the programmable general-purpose logic circuit unit Stop means.

また発明は、上記の汎用論理回路において、前記同期クロック発生手段として、前記補助回路部の動作クロックの周波数とは異なる周波数を規定する要素を内部に有し、前記同期クロックを前記動作クロックの周波数より低い周波数とするものを用いたものを提供する。 According to the present invention, in the general-purpose logic circuits described above, as the synchronizing signal generating means, said having therein an element defining a frequency different from the frequency of the operation clock of the auxiliary circuit, the synchronizing clock of the operation clock The thing using what makes a frequency lower than a frequency is provided.

また発明は、上記の汎用論理回路において、前記同期クロック発生手段として、一定の遅延時間をもって信号を遅延する遅延要素と、この遅延要素の出力信号を反転して遅延要素の入力信号として伝達するループとを有するものを用いたものを提供する。 According to the present invention, in the above general-purpose logic circuit, as the synchronous clock generating means, a delay element that delays a signal with a fixed delay time, and an output signal of the delay element is inverted and transmitted as an input signal of the delay element. The thing using what has a loop is provided.

また発明は、上記の汎用論理回路において、前記同期クロック発生手段として、前記遅延要素およびループを複数段重畳して構成されるものを用いたものを提供する。 The present invention also provides a general-purpose logic circuit using the above-mentioned general-purpose logic circuit configured by superimposing a plurality of stages of the delay elements and loops.

また発明は、上記の汎用論理回路において、前記同期クロックの周波数を検出しこの周波数が所定範囲から外れたときに異常検出を前記停止手段に出力する周波数検出手段を前記プログラム可能な汎用論理回路部に備えたものを提供する。 According to the present invention, in the general-purpose logic circuits described above, wherein said detecting the frequency of the synchronizing clock abnormality detecting a frequency detecting means for outputting to said stop means can the programmable general-purpose logic circuit when the frequency is out of the predetermined range Provide the provisions for the department.

また発明は、上記の汎用論理回路において、少なくとも初期状態において動作し前記第1および第2の乱数発生手段の初期化情報を生成して第1および第2の乱数発生手段に出力する初期化情報生成手段を前記プログラム可能な汎用論理回路部および補助回路部のいずれかに備えたものを提供する。 According to the present invention, in the above general-purpose logic circuit, initialization that operates at least in an initial state, generates initialization information of the first and second random number generation means, and outputs the initialization information to the first and second random number generation means Provided is one in which the information generation means is provided in either the programmable general-purpose logic circuit section or the auxiliary circuit section.

また発明は、上記の汎用論理回路において、前記初期化情報生成手段として、初期状態における動作後も定期的に動作するものを用いたものを提供する。 According to the present invention, in the general-purpose logic circuits described above, as the initialization information generation unit, to provide what was used to operate periodically after the operation in the initial state.

この発明によれば、プログラム可能な汎用論理回路部側および補助回路部側にて等価なアルゴリズムをもって同期して乱数を発生し、この乱数が一致する場合に限り汎用論理回路の動作の継続を許容する。このような構成とすることにより、周期の長い乱数を発生する既存の手法を採用できるし、同期クロックを低速にすることも可能であるから、乱数が一回りするのに要する時間を十分に確保できる。このため、乱数の吸い上げ等に対して、多大な時間がかかるという困難性をもって対処できる利点がある。   According to the present invention, random numbers are generated synchronously with an equivalent algorithm on the programmable general-purpose logic circuit side and the auxiliary circuit side, and the operation of the general-purpose logic circuit is allowed to continue only when the random numbers match. To do. By adopting such a configuration, it is possible to adopt an existing method that generates random numbers with a long cycle, and it is also possible to slow down the synchronous clock, so sufficient time is required for the random numbers to go around once. it can. For this reason, there is an advantage that it is possible to deal with the difficulty that it takes a lot of time to take up random numbers.

また同期クロックを発生するにあたり、補助回路部の動作クロックの周波数とは異なる周波数を規定する要素を用いることにより、補助回路部がクロックアップされても乱数の発生が高速化することがなく、上記の困難性を維持できる利点がある。さらに、乱数発生回路に用いるクロックを低速にすることで、乱数生成アルゴリズムの解析とコピーを困難にすることができる利点がある   In addition, when generating the synchronous clock, by using an element that defines a frequency different from the frequency of the operation clock of the auxiliary circuit unit, even if the auxiliary circuit unit is clocked up, the generation of random numbers is not accelerated. There is an advantage that can maintain the difficulty. Furthermore, there is an advantage that it is difficult to analyze and copy the random number generation algorithm by reducing the clock used for the random number generation circuit.

またプログラム可能な汎用論理回路部側において周波数検出手段を備え、同期クロックの周波数の異常を検出すると汎用論理回路の動作を強制停止することで、汎用論理回路側の乱数発生タイミングをクロックアップする企てにも対処できる利点がある。   In addition, the programmable general-purpose logic circuit section side is provided with a frequency detection means, and when an abnormality in the frequency of the synchronous clock is detected, the operation of the general-purpose logic circuit is forcibly stopped to increase the random number generation timing on the general-purpose logic circuit side. There is an advantage that can be dealt with.

またプログラム可能な汎用論理回路部側および補助回路部側の乱数発生手段を定期的に初期化することにより、それまで乱数が吸い上げられていたとしても、かかる乱数を無効化することができる利点がある。   In addition, by periodically initializing the random number generation means on the programmable general-purpose logic circuit side and auxiliary circuit side, it is possible to invalidate such random numbers even if the random numbers have been sucked up to that point. is there.

以下、図面を用いてこの発明の実施形態を説明する。
図1は、この発明の実施形態に係るFPGAの要部概略を示すブロック図である。同図に示すようにこの回路は、揮発性のFPGA1の外部回路としてFPGAプログラム(Configuration)回路2とセキュリティ回路3を備えている。クロックモジュール4は、高速クロックを発生してセキュリティ回路3に出力するものである。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing an outline of a main part of an FPGA according to an embodiment of the present invention. As shown in the figure, this circuit includes an FPGA program (Configuration) circuit 2 and a security circuit 3 as external circuits of the volatile FPGA 1. The clock module 4 generates a high-speed clock and outputs it to the security circuit 3.

FPGA1はSRAM等で構成される揮発性の回路であり、電源投入時、FPGAプログラム回路2から回路情報を読み込んで、内部に任意の論理回路を構築するものである。セキュリティ回路3は不揮発性のFPGAやLSI等で構成される回路である。不揮発性のFPGAとしてはEEPROM(Electrically Erasable Programmable Read Only Memory)タイプやアンチヒューズタイプ、フラッシュROM等を採用できる。なお、この実施形態において「FPGA」はCPLDを含むプログラム可能な汎用論理回路一般を意味するものとして使用する。   The FPGA 1 is a volatile circuit composed of SRAM or the like, and reads circuit information from the FPGA program circuit 2 to construct an arbitrary logic circuit therein when the power is turned on. The security circuit 3 is a circuit composed of a nonvolatile FPGA, LSI, or the like. As the nonvolatile FPGA, an EEPROM (Electrically Erasable Programmable Read Only Memory) type, an antifuse type, a flash ROM, or the like can be adopted. In this embodiment, “FPGA” is used to mean a general programmable logic circuit including a CPLD.

FPGA1やセキュリティ回路3には、この実施形態に係るセキュリティ機能を実現するための回路が構築されている。セキュリティ回路3には、クロック分周器31や乱数発生回路32が構築されている。クロック分周器31は、高速クロックを分周して低速クロックを発生するものであり、具体例を後で詳細に説明するが、高速クロックの周波数が高くなっても低速クロックの周波数は一定の範囲となるように構成されている。   In the FPGA 1 and the security circuit 3, a circuit for realizing the security function according to this embodiment is constructed. In the security circuit 3, a clock divider 31 and a random number generation circuit 32 are constructed. The clock divider 31 divides the high-speed clock to generate a low-speed clock, and a specific example will be described in detail later. The frequency of the low-speed clock is constant even if the frequency of the high-speed clock increases. It is comprised so that it may become a range.

乱数発生回路32は、上記の低速クロックにより動作し、所定の手法により周期の長い乱数を発生させる回路である。ここではM系列による乱数を発生する手法を採用した例を示し、乱数発生回路32内にはM系列の乱数発生係数を格納するレジスタ33を有するものとする。この係数は、後述するようにFPGA1から与えられる。クロック分周器31が発生した低速クロックと、乱数発生回路32が発生した乱数はFPGA1に出力される。   The random number generation circuit 32 is a circuit that operates with the low-speed clock and generates a random number having a long cycle by a predetermined method. Here, an example in which a technique for generating a random number based on an M sequence is employed, and the random number generation circuit 32 includes a register 33 that stores an M sequence random number generation coefficient. This coefficient is given from the FPGA 1 as will be described later. The low-speed clock generated by the clock divider 31 and the random number generated by the random number generation circuit 32 are output to the FPGA 1.

FPGA1には、周波数検出回路11や乱数発生回路12、比較器13、停止回路14が構築されている。周波数検出回路11は、低速クロックの周波数を検出して所定の周波数範囲を外れた場合、特に周波数が正常範囲以上に高くなった場合に異常検出を出力するものである。乱数発生回路12は、乱数発生回路32と等価なアルゴリズムをもって乱数を発生する回路であり、さらに乱数発生機能を利用してM系列の乱数発生係数を発生する機能が付加されている。発生した乱数発生係数は、乱数発生回路12自体のレジスタ15に格納される他、セキュリティ回路3に送信され、乱数発生回路32のレジスタ33にも格納される。   In the FPGA 1, a frequency detection circuit 11, a random number generation circuit 12, a comparator 13, and a stop circuit 14 are constructed. The frequency detection circuit 11 outputs an abnormality detection when the frequency of the low-speed clock is detected to deviate from a predetermined frequency range, particularly when the frequency becomes higher than the normal range. The random number generation circuit 12 is a circuit that generates a random number using an algorithm equivalent to the random number generation circuit 32, and further has a function of generating an M-sequence random number generation coefficient using a random number generation function. The generated random number generation coefficient is stored in the register 15 of the random number generation circuit 12 itself, is transmitted to the security circuit 3, and is also stored in the register 33 of the random number generation circuit 32.

比較器13は、乱数発生回路12,32がそれぞれ発生する乱数を突き合わせて一致・不一致を判定し、不一致の場合、異常検出を出力するものである。停止回路14は、周波数検出回路11または比較器13から異常検出を受けて動作し、FPGA1とセキュリティ回路3の動作を強制的に停止するものである。   The comparator 13 compares the random numbers generated by the random number generation circuits 12 and 32 to determine whether or not they match, and outputs an abnormality detection if they do not match. The stop circuit 14 operates upon receiving an abnormality detection from the frequency detection circuit 11 or the comparator 13, and forcibly stops the operations of the FPGA 1 and the security circuit 3.

次に、この回路の動作を説明する。図2は、図1の回路の動作の概略を示すフローチャートである。図1,2を用いて説明すると、電源投入時、FPGA1やセキュリティ回路3その他の回路が立ち上がり(S11,S31)、FPGA1には回路情報が読み込まれてコンフィグレーション(プログラミング)が行われる(S12)。コンフィグレーションが終了して回路情報に基づく所定の回路構成が構築されると、通常のFPGAと同様にその回路構成による演算動作を開始する。   Next, the operation of this circuit will be described. FIG. 2 is a flowchart showing an outline of the operation of the circuit of FIG. 1 and 2, when the power is turned on, the FPGA 1, the security circuit 3 and other circuits are started up (S11, S31), and circuit information is read into the FPGA 1 and configuration (programming) is performed (S12). . When the configuration is completed and a predetermined circuit configuration based on the circuit information is constructed, an arithmetic operation based on the circuit configuration is started in the same manner as a normal FPGA.

このときこの実施形態に係るFPGA1は、上記の演算動作の他、FPGA1へのアクセスの正当性の判定動作も実行し、アクセスの正当性が認められなければ演算動作を停止する。セキュリティ回路3は、前述のように不揮発性のFPGA等で構成されているので回路情報のコピーは困難である。FPGA1の回路情報については、このようにしてFPGA1への不正なアクセスを阻止することによりコピーを困難とする。   At this time, the FPGA 1 according to this embodiment also executes an operation for determining the validity of access to the FPGA 1 in addition to the above-described operation, and stops the operation if the access is not valid. Since the security circuit 3 is composed of a non-volatile FPGA or the like as described above, it is difficult to copy circuit information. The circuit information of the FPGA 1 is difficult to copy by preventing unauthorized access to the FPGA 1 in this way.

アクセスの正当性は第1に、FPGA1側の乱数とセキュリティ回路3側の乱数が一致することで判定する。すなわち、初期状態において乱数発生回路12はM系列の乱数発生係数を発生し、自己のレジスタ15に格納(初期化)すると共にセキュリティ回路3に送信する(S13)。セキュリティ回路3において、受信した乱数発生係数は、乱数発生回路32のレジスタ33に格納(初期化)される。この後、乱数発生回路12,32は低速クロックに基づいて同期して乱数発生動作を開始し、同一の乱数発生係数を用いて乱数を発生する(S14,S33)。なお、乱数を発生する演算自体は高速クロックに基づいて動作する。高速クロックは、セキュリティ回路3の最高動作周波数を上回らない範囲で、なるべく高速な周波数に設定されている。   First, the validity of access is determined by the fact that the random number on the FPGA 1 side matches the random number on the security circuit 3 side. That is, in the initial state, the random number generation circuit 12 generates an M-sequence random number generation coefficient, stores (initializes) it in its own register 15, and transmits it to the security circuit 3 (S13). In the security circuit 3, the received random number generation coefficient is stored (initialized) in the register 33 of the random number generation circuit 32. Thereafter, the random number generation circuits 12 and 32 start a random number generation operation synchronously based on the low-speed clock, and generate random numbers using the same random number generation coefficient (S14, S33). Note that the calculation itself for generating a random number operates based on a high-speed clock. The high-speed clock is set to a frequency as high as possible without exceeding the maximum operating frequency of the security circuit 3.

乱数発生回路32が発生した乱数は、FPGA1に送信される。この後、FPGA1において比較器13は、乱数発生回路12が発生した乱数と、セキュリティ回路3から受信した乱数とを比較して一致していることを確認する(S15)。もしセキュリティ回路3から受信する乱数がFPGA1の内部で発生した乱数と一致しない場合は、異常検出として停止回路14が起動し、FPGA1とセキュリティ回路3の動作が強制停止することになる(S16)。   The random number generated by the random number generation circuit 32 is transmitted to the FPGA 1. Thereafter, in the FPGA 1, the comparator 13 compares the random number generated by the random number generation circuit 12 with the random number received from the security circuit 3 and confirms that they match (S15). If the random number received from the security circuit 3 does not match the random number generated inside the FPGA 1, the stop circuit 14 is activated as an abnormality detection, and the operations of the FPGA 1 and the security circuit 3 are forcibly stopped (S16).

上記の乱数発生動作は、クロック分周器31により分周された低速クロックに基づいて極めて低速な周波数をもって実行される。M系列の乱数発生の1周期における乱数の個数を十分に大きく設定すると共に、乱数発生動作の起動周期を十分長く設定することにより、乱数が1周りするのに要する期間がたとえば数ヶ月から1年といったスパンをとるように設定する形態をとることもできる。このことにより、仮にセキュリティ回路3が出力する乱数を吸い上げたとしても、1周期分の乱数を吸い上げるのに多大な時間を要する困難性が生じる。   The random number generation operation described above is executed at a very low frequency based on the low speed clock divided by the clock divider 31. By setting the number of random numbers in one cycle of M-sequence random number generation to be sufficiently large and setting the start cycle of random number generation operation to be sufficiently long, the period required for the random number to go around 1 is, for example, several months to one year. It is also possible to take a form of setting such that a span is taken. As a result, even if the random number output from the security circuit 3 is sucked up, there is a difficulty that it takes a long time to suck up one cycle of random numbers.

また乱数発生係数の初期化処理を定期的に行って乱数発生係数を更新する形態をとることにより、吸い上げた乱数を無効化することもできる。この係数初期化処理の実行周期は、上記の乱数が1回りする回路動作時間を考慮して適宜設定すればよい。   In addition, the random number generated can be invalidated by periodically performing initialization processing of the random number generation coefficient to update the random number generation coefficient. The execution period of the coefficient initialization process may be set as appropriate in consideration of the circuit operation time during which the random number is rotated once.

また仮にセキュリティ回路3に入力される高速クロックの周波数をクロックアップして乱数の発生周期を短くしようと試みようとしても、高速クロック自体がセキュリティ回路3の最高動作周波数に近いものであるから、セキュリティ回路3の動作が高速化するマージンはあまりないし、さらにクロック分周器31において、動作周波数の上限を設定しておけば、出力する低速クロックは高速クロックをクロックアップしても高速にはならないので、乱数発生周期の高速化の試みは失敗に終わる。また、FPGA1に入力する低速クロックをクロックアップしても、周波数検出回路11がこれを検出して異常検出を出力し、この異常検出を受けて停止回路14が起動してFPGA1やセキュリティ回路3の動作が停止する。   Even if an attempt is made to shorten the random number generation cycle by increasing the frequency of the high-speed clock input to the security circuit 3, the high-speed clock itself is close to the maximum operating frequency of the security circuit 3. There is not much margin for speeding up the operation of the circuit 3, and if the upper limit of the operating frequency is set in the clock divider 31, the output low-speed clock does not increase even if the high-speed clock is clocked up. Attempts to speed up the random number generation cycle end in failure. Even if the low-speed clock input to the FPGA 1 is clocked up, the frequency detection circuit 11 detects this and outputs an abnormality detection. Upon receiving this abnormality detection, the stop circuit 14 is activated and the FPGA 1 or the security circuit 3 is activated. Operation stops.

ここで、クロック分周器の具体例について説明する。図3は、クロック分周器の基本構成を示すブロック図である。同図に示すように、このクロック分周器31は、フリップフロップ回路5と遅延要素6と加算要素7から構成される。フリップフロップ回路5は、n個のフリップフロップを構成する回路である。遅延要素6は、フリップフロップ出力Q1〜Qnをそれぞれ遅延するものであり、その遅延時間は高速クロックに依存せずに一定になるように設定されている。加算要素7は、遅延要素6の出力A1〜Anを入力とし、1を加算してS1〜Snとして出力するものであり、nビットのカウンタを構成する。この構成により2のn乗の分周率による分周出力を得ることができる。   Here, a specific example of the clock divider will be described. FIG. 3 is a block diagram showing the basic configuration of the clock divider. As shown in the figure, the clock divider 31 includes a flip-flop circuit 5, a delay element 6, and an addition element 7. The flip-flop circuit 5 is a circuit constituting n flip-flops. The delay element 6 delays the flip-flop outputs Q1 to Qn, and the delay time is set to be constant without depending on the high-speed clock. The adding element 7 inputs the outputs A1 to An of the delay element 6 and adds 1 to output as S1 to Sn, and constitutes an n-bit counter. With this configuration, it is possible to obtain a frequency-divided output based on a frequency-dividing ratio of 2 n.

ここで説明の便宜上、n=2とした場合のクロック分周器の構成を説明する。図4は、クロック分周器の構成を示すブロック図である。同図に示すように、フリップフロップ回路51は2個のフリップフロップを構成する回路である。遅延回路61,62はそれぞれフリップフロップ回路51の出力Q1,Q2を遅延する回路である。加算回路71は、入力B1,A1を加算して出力S1とし、B1とA1を加算した時のキャリーとA2を加算して出力S2とするものであり、入力B1は「1」に固定され、入力A1,A2には遅延回路61,62の出力が加えられ、出力S1,S2はフリップフロップ回路51に入力D1,D2として加えられる。なお信号の論理については、「1」=「H」(ハイレベル)、「0」=「L」(ローレベル)に統一して説明を進める。   Here, for convenience of explanation, the configuration of the clock divider when n = 2 is described. FIG. 4 is a block diagram showing the configuration of the clock divider. As shown in the figure, the flip-flop circuit 51 is a circuit constituting two flip-flops. The delay circuits 61 and 62 are circuits for delaying the outputs Q1 and Q2 of the flip-flop circuit 51, respectively. The adder circuit 71 adds the inputs B1 and A1 to the output S1, adds the carry when adding B1 and A1 and A2 to the output S2, and the input B1 is fixed to “1”. Outputs of delay circuits 61 and 62 are applied to inputs A1 and A2, and outputs S1 and S2 are applied to flip-flop circuit 51 as inputs D1 and D2. Note that the logic of the signal will be explained by unifying “1” = “H” (high level) and “0” = “L” (low level).

表1は加算回路71の演算内容を示す真理表である。   Table 1 is a truth table showing the calculation contents of the adder circuit 71.

Figure 0004586755
Figure 0004586755

この加算回路71の演算内容をみると、表1から判るように、出力S1は入力A1の否定をとったものとなっており、出力S2は入力A1,A2のEOR(排他的論理和)をとったものとなっている。したがって、このような論理を有する組み合わせ回路を構成して加算回路71と置き換える形態をとっても構わない。   As can be seen from the calculation contents of the adder circuit 71, the output S1 is obtained by negating the input A1 as shown in Table 1, and the output S2 is the EOR (exclusive OR) of the inputs A1 and A2. It has been taken. Accordingly, a combinational circuit having such logic may be configured and replaced with the adder circuit 71.

次にこのクロック分周器の動作を説明する。図5は、図4のクロック分周器の各部の信号を示すタイムチャートである。同図において矢印は遅延回路による信号の遅延(ここではクロックの周期より若干短い遅延時間を例示)を示す。   Next, the operation of this clock divider will be described. FIG. 5 is a time chart showing signals at various parts of the clock divider shown in FIG. In the figure, an arrow indicates a signal delay by a delay circuit (here, a delay time slightly shorter than the clock cycle is illustrated).

図5に示すように、1段目のフリップフロップにおいて、出力Q1を遅延させた信号A1に反転を加えた信号を入力D1として帰還することにより、クロックを1/2に分周したパルスを生成する。また2段目のフリップフロップにおいて、出力Q2を遅延させた信号を入力A2に帰還し、この帰還信号を入力A1(1/2分周パルス)とBを加算したキャリーとを加算することにより、さらに1/2に分周したパルスを生成する。出力Q2を分周出力とすることにより1/4分周クロックを出力することができる。   As shown in FIG. 5, in the flip-flop in the first stage, a signal obtained by inverting the signal A1 obtained by delaying the output Q1 is fed back as an input D1, thereby generating a pulse obtained by dividing the clock by 1/2. To do. In the second stage flip-flop, a signal obtained by delaying the output Q2 is fed back to the input A2, and the feedback signal is added to the input A1 (1/2 frequency-divided pulse) and the carry obtained by adding B. Further, a pulse divided by ½ is generated. A 1/4 frequency-divided clock can be output by using the output Q2 as a frequency-divided output.

上記の説明から明らかなように、このクロック分周器の分周率は基本的に遅延回路の遅延時間に依存する。ここでは説明の便宜上、クロック周波数より若干短い遅延時間を例示したが、通常の動作時に分周が可能な範囲でなるべく大きな遅延時間に設定する形態が望ましい。   As apparent from the above description, the division ratio of the clock divider basically depends on the delay time of the delay circuit. Here, for convenience of explanation, a delay time slightly shorter than the clock frequency is illustrated, but a mode in which the delay time is set as large as possible within a range in which frequency division is possible during normal operation is desirable.

ここで、図4のクロック分周器に約2倍の周波数のクロックが入力されたときの動作を説明する。図6は、図4のクロック分周器に倍の周波数のクロックが入力されたときの各部の信号を示すタイムチャートである。   Here, the operation when a clock having about twice the frequency is input to the clock divider of FIG. 4 will be described. FIG. 6 is a time chart showing signals at various parts when a clock having a double frequency is input to the clock divider shown in FIG.

図6に示すように、フリップフロップ51の出力Q1,Q2に現れるパルスの周期は遅延回路の遅延時間に依存して決定されるので、クロック周波数が倍になっても分周出力の周波数はほとんど影響を受けない。分周出力Q2は、図5の例と比較すると同一の周波数であることが判る。   As shown in FIG. 6, since the period of the pulse appearing at the outputs Q1 and Q2 of the flip-flop 51 is determined depending on the delay time of the delay circuit, the frequency of the divided output is almost the same even when the clock frequency is doubled. Not affected. It can be seen that the divided output Q2 has the same frequency as that in the example of FIG.

以上、この発明の実施形態を詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の種々の設計等も含まれる。   The embodiment of the present invention has been described in detail above, but the specific configuration is not limited to this embodiment, and includes various designs and the like within the scope not departing from the gist of the present invention.

この発明の実施形態に係るFPGAの要部概略を示すブロック図である。It is a block diagram which shows the principal part outline of FPGA which concerns on embodiment of this invention. 図1の回路の動作の概略を示すフローチャートである。2 is a flowchart showing an outline of the operation of the circuit of FIG. 1. クロック分周器の基本構成を示すブロック図である。It is a block diagram which shows the basic composition of a clock divider. クロック分周器の具体例の構成を示すブロック図である。It is a block diagram which shows the structure of the specific example of a clock frequency divider. 図4のクロック分周器の各部の信号を示すタイムチャートである。FIG. 5 is a time chart showing signals at various parts of the clock divider shown in FIG. 4. FIG. 図4のクロック分周器に倍の周波数のクロックが入力されたときの各部の信号を示すタイムチャートである。FIG. 5 is a time chart showing signals of respective units when a clock having a double frequency is input to the clock divider of FIG. 4. FIG.

符号の説明Explanation of symbols

1…FPGA 2…FPGAプログラム回路 3…セキュリティ回路 4…クロックモジュール 31…クロック分周器 32…乱数発生回路 33…レジスタ 11…周波数検出回路 12…乱数発生回路 13…比較器 14…停止回路 15…レジスタ 5…フリップフロップ回路 6…遅延要素 7…加算要素 51…フリップフロップ回路 61,62…遅延回路 71…加算回路   DESCRIPTION OF SYMBOLS 1 ... FPGA 2 ... FPGA program circuit 3 ... Security circuit 4 ... Clock module 31 ... Clock frequency divider 32 ... Random number generation circuit 33 ... Register 11 ... Frequency detection circuit 12 ... Random number generation circuit 13 ... Comparator 14 ... Stop circuit 15 ... Register 5 ... flip-flop circuit 6 ... delay element 7 ... addition element 51 ... flip-flop circuit 61, 62 ... delay circuit 71 ... addition circuit

Claims (6)

回路情報を読み込んで論理回路を内部に構築する揮発性のプログラム可能な汎用論理回路部と不揮発性の補助回路部とから構成される汎用論理回路であって、
前記補助回路部は、同期クロックを発生する同期クロック発生手段と、この同期クロックに基づいてタイミングを決定して動作し第1の乱数を発生する第1の乱数発生手段とを備え、
前記プログラム可能な汎用論理回路部は、前記同期クロックに基づいてタイミングを決定して動作し前記第1の乱数発生手段と等価なアルゴリズムをもって第2の乱数を発生する第2の乱数発生手段と、第1および第2の乱数が一致するか判定し一致しない場合に異常検出を出力する比較手段と、この異常検出を受けて動作し前記プログラム可能な汎用論理回路部の動作を強制的に停止する停止手段とを備え
前記同期クロック発生手段は、前記補助回路部の動作クロックの周波数とは異なる周波数を規定する要素を内部に有し、前記同期クロックを前記動作クロックの周波数より低い周波数とするものである
ことを特徴とする汎用論理回路。
A general-purpose logic circuit configured by a volatile programmable general-purpose logic circuit section that reads circuit information and builds a logic circuit therein, and a nonvolatile auxiliary circuit section,
The auxiliary circuit unit includes a synchronous clock generating unit that generates a synchronous clock, and a first random number generating unit that determines a timing based on the synchronous clock and operates to generate a first random number,
The programmable general-purpose logic circuit unit operates by determining timing based on the synchronous clock, and generates a second random number with an algorithm equivalent to the first random number generating unit; Comparing means for determining whether the first and second random numbers match and outputting an abnormality detection when they do not match, and operating upon receiving the abnormality detection, forcibly stops the operation of the programmable general-purpose logic circuit unit A stopping means ,
The synchronous clock generating means includes an element that defines a frequency different from the frequency of the operation clock of the auxiliary circuit unit, and the synchronous clock is set to a frequency lower than the frequency of the operation clock. General-purpose logic circuit.
前記同期クロック発生手段は、一定の遅延時間をもって信号を遅延する遅延要素と、この遅延要素の出力信号を反転して遅延要素の入力信号として伝達するループとを有するものであることを特徴とする請求項記載の汎用論理回路。 The synchronous clock generation means includes a delay element that delays a signal with a fixed delay time, and a loop that inverts an output signal of the delay element and transmits the inverted signal as an input signal of the delay element. The general-purpose logic circuit according to claim 1 . 前記同期クロック発生手段は、前記遅延要素およびループを複数段重畳して構成されるものであることを特徴とする請求項記載の汎用論理回路。 3. The general-purpose logic circuit according to claim 2, wherein the synchronous clock generating means is configured by superposing a plurality of stages of the delay elements and loops. 前記同期クロックの周波数を検出しこの周波数が所定範囲から外れたときに異常検出を前記停止手段に出力する周波数検出手段を前記プログラム可能な汎用論理回路部に備えたことを特徴とする請求項1から3のいずれか1項に記載の汎用論理回路。 2. The programmable general-purpose logic circuit section according to claim 1, further comprising: a frequency detecting unit that detects a frequency of the synchronous clock and outputs an abnormality detection to the stopping unit when the frequency is out of a predetermined range. 4. The general-purpose logic circuit according to any one of items 1 to 3 . 少なくとも初期状態において動作し前記第1および第2の乱数発生手段の初期化情報を生成して第1および第2の乱数発生手段に出力する初期化情報生成手段を前記プログラム可能な汎用論理回路部および補助回路部のいずれかに備えたことを特徴とする請求項1から4のいずれか1項に記載の汎用論理回路。 Programmable general-purpose logic circuit section including initialization information generating means that operates at least in an initial state and generates initialization information of the first and second random number generating means and outputs the initialization information to the first and second random number generating means and general purpose logic circuit according to claim 1, any one of 4, characterized in that provided in one of the assistant circuit unit. 前記初期化情報生成手段は、初期状態における動作後も定期的に動作するものであることを特徴とする請求項記載の汎用論理回路。 6. The general-purpose logic circuit according to claim 5, wherein the initialization information generating means operates periodically after the operation in the initial state.
JP2006079012A 2006-03-22 2006-03-22 General-purpose logic circuit Expired - Fee Related JP4586755B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006079012A JP4586755B2 (en) 2006-03-22 2006-03-22 General-purpose logic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006079012A JP4586755B2 (en) 2006-03-22 2006-03-22 General-purpose logic circuit

Publications (2)

Publication Number Publication Date
JP2007257166A JP2007257166A (en) 2007-10-04
JP4586755B2 true JP4586755B2 (en) 2010-11-24

Family

ID=38631380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006079012A Expired - Fee Related JP4586755B2 (en) 2006-03-22 2006-03-22 General-purpose logic circuit

Country Status (1)

Country Link
JP (1) JP4586755B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009144534A1 (en) * 2008-05-26 2009-12-03 Nxp B.V. Decoupling of measuring the response time of a transponder and its authentication

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325153A (en) * 2000-05-15 2001-11-22 Toyo Commun Equip Co Ltd Circuit information protecting method for field programmable gate array
JP2003084853A (en) * 2001-05-08 2003-03-19 Guzik Technical Enterp Inc Method and system for preventing copy of programmable gate array
JP2004185134A (en) * 2002-11-29 2004-07-02 Matsushita Electric Ind Co Ltd Storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001325153A (en) * 2000-05-15 2001-11-22 Toyo Commun Equip Co Ltd Circuit information protecting method for field programmable gate array
JP2003084853A (en) * 2001-05-08 2003-03-19 Guzik Technical Enterp Inc Method and system for preventing copy of programmable gate array
JP2004185134A (en) * 2002-11-29 2004-07-02 Matsushita Electric Ind Co Ltd Storage device

Also Published As

Publication number Publication date
JP2007257166A (en) 2007-10-04

Similar Documents

Publication Publication Date Title
US11880468B2 (en) Autonomous, self-authenticating and self-contained secure boot-up system and methods
JP5881715B2 (en) Physically non-replicatable function with improved starting behavior
JP6182371B2 (en) System including semiconductor integrated circuit
US9866370B2 (en) Configurable ASIC-embedded cryptographic processing engine
US20150188707A1 (en) Method for safeguarding a system-on-a-chip
US8861725B2 (en) Random bit stream generator with enhanced backward secrecy
US20080201592A1 (en) Hibernating a processing apparatus for processing secure data
US9722805B2 (en) Integrated security device and signal processing method used for an integrated security device
US10771062B1 (en) Systems and methods for enhancing confidentiality via logic gate encryption
US7913316B2 (en) Semiconductor integrated circuit and method for testing semiconductor integrated circuit
US20130275817A1 (en) Register protected against fault attacks
Kumar et al. Itus: A secure risc-v system-on-chip
EP3912119A1 (en) Dynamic transform in blockchain header validation
JP4586755B2 (en) General-purpose logic circuit
CN111130754B (en) Encryption and decryption circuit of scan chain and integrated circuit
US20110154062A1 (en) Protection of electronic systems from unauthorized access and hardware piracy
EP3046024B1 (en) Method of operating a system on chip comprising a bootable processor
Docherty et al. Hardware implementation of sha-1 and sha-2 hash functions
Suresh et al. Spic-sram puf intergrated chip based software licensing model
US11463074B2 (en) Storage element with clock gating
US9003520B2 (en) Securing a storage element for a binary datum, control register and chip card
Li et al. Enhancing tpm security by integrating sram pufs technology
US8365006B2 (en) Preventing circumvention of function disablement in an information handling system
EP4350478A1 (en) Capturing of on-chip resets in an integrated circuit
JP2004233104A (en) Integrated circuit with test function

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100720

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100810

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100823

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees