JP2006180375A - Programmable logic circuit - Google Patents
Programmable logic circuit Download PDFInfo
- Publication number
- JP2006180375A JP2006180375A JP2004373574A JP2004373574A JP2006180375A JP 2006180375 A JP2006180375 A JP 2006180375A JP 2004373574 A JP2004373574 A JP 2004373574A JP 2004373574 A JP2004373574 A JP 2004373574A JP 2006180375 A JP2006180375 A JP 2006180375A
- Authority
- JP
- Japan
- Prior art keywords
- configuration
- programmable logic
- circuit
- configuration data
- data
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17748—Structural details of configuration resources
- H03K19/17768—Structural details of configuration resources for security
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Logic Circuits (AREA)
- Storage Device Security (AREA)
Abstract
Description
本発明は、セキュリティ機能を備えたLSIのプログラマブル論理回路に関し、特に、コンフィギュレーションデータの秘匿性を確保できるプログラマブルロジックアレイなどのような、秘匿化されたコンフィギュレーションデータを内部で復号化することができるプログラマブル論理回路に関する。 The present invention relates to an LSI programmable logic circuit having a security function. In particular, the present invention can internally decrypt confidential configuration data such as a programmable logic array that can ensure the confidentiality of configuration data. The present invention relates to a programmable logic circuit.
従来より、電気的に機能を再構成できるLSIのディジタル信号処理デバイスとして、FPGA(Field Programmable Logic Array)やALU(Arithmetic and Logical Unit)アレイ型プロセッサなどが知られている。以下、これらを総称してプログラマブルロジックアレイと呼ぶことにする。プログラマブルロジックアレイにおいては、コンフィギュレーションデータと呼ばれるディジタルデータをロード(書き込み)することにより、多種の論理回路(ロジック)を実現することができる。例えば、1つのFPGAに第一のコンフィギュレーションデータをロードすることにより離散コサイン変換処理回路を実現することができ、さらに、同一のFPGAに別のコンフィギュレーションデータをロードすることにより離散ウェーブレット変換処理回路を実現することができる。 Conventionally, as an LSI digital signal processing device whose function can be electrically reconfigured, an FPGA (Field Programmable Logic Array), an ALU (Arithmetic and Logical Unit) array processor, and the like are known. Hereinafter, these are collectively referred to as a programmable logic array. In a programmable logic array, various logic circuits (logic) can be realized by loading (writing) digital data called configuration data. For example, a discrete cosine transform processing circuit can be realized by loading first configuration data into one FPGA, and a discrete wavelet transform processing circuit can be realized by loading other configuration data into the same FPGA. Can be realized.
したがって、プログラマブルロジックアレイを利用して製品を設計する場合には、実現しようとする機能に合わせてコンフィギュレーションデータを設計してロードすればよい。このことは、別の面では、悪意を持つ第三者がコンフィギュレーションデータを解析することにより、製品が実現する機能を容易に解析されてしまうというリスクをもたらすことになる。例えば、SRAM(Static Random Access Memory)型FPGAには、外部のフラッシュメモリやROMにコンフィギュレーションデータを保存しておき、ブート時にFPGAへロードするタイプのものがある。この構成においては、一般的にフラッシュメモリは汎用品であり、また、LSIの外部でFPGAと接続されているため、容易にコンフィギュレーションデータの内容を読み取られてしまう。 Therefore, when designing a product using a programmable logic array, configuration data may be designed and loaded according to the function to be realized. In another aspect, this poses a risk that a malicious third party can easily analyze the functions realized by the product by analyzing the configuration data. For example, there is a static random access memory (SRAM) type FPGA in which configuration data is stored in an external flash memory or ROM and loaded into the FPGA at the time of booting. In this configuration, the flash memory is generally a general-purpose product, and since it is connected to the FPGA outside the LSI, the contents of the configuration data can be easily read.
したがって、従来、プログラマブルロジックアレイにおける設計情報の機密を保持する必要がある場合には、一度しか書き込みのできないアンチフューズ型FPGAや、不揮発型メモリを内蔵したFPGAなどが用いられている。しかし、これらのデバイスは、安価なフラッシュメモリを利用できるSRAM型FPGAに比べてコストが高い割に性能面が劣るものであった。さらに、近年では、ネットワークを介してコンフィギュレーションデータを配信しようとする試みがなされており、プログラマブルロジックアレイのコンフィギュレーションデータにおける秘匿性の確保は大きな課題となっている。このような秘匿性の課題を解決する1つの方法として、コンフィギュレーションデータを暗号化する方法が知られている。 Therefore, conventionally, when it is necessary to maintain the confidentiality of the design information in the programmable logic array, an antifuse type FPGA that can be written only once, an FPGA with a built-in nonvolatile memory, or the like is used. However, these devices are inferior in performance in spite of the high cost compared to the SRAM type FPGA that can use an inexpensive flash memory. Furthermore, in recent years, attempts have been made to distribute configuration data via a network, and ensuring confidentiality in configuration data of a programmable logic array has become a major issue. As one method for solving such a problem of confidentiality, a method of encrypting configuration data is known.
特許文献1では、暗号化されたコンフィギュレーションデータをLSIの内部における専用の復号回路によって復号化し、FPGAをプログラムすることによってコンフィギュレーションデータの秘匿性を確保する技術が開示されている。 Japanese Patent Application Laid-Open No. 2004-228561 discloses a technique for ensuring the confidentiality of configuration data by decrypting encrypted configuration data with a dedicated decryption circuit inside the LSI and programming the FPGA.
さらに、プログラマブルロジックの内部に秘密鍵情報をあらかじめ保存しておき、ロードされたデータと秘密鍵情報との間で排他的論理和(XOR)を計算することにより、コンフィギュレーションデータを求める技術が開示されている。この技術によれば、秘密鍵情報が漏洩しない限りコンフィギュレーションデータの秘匿性は守られる(例えば、特許文献2参照)。 Furthermore, a technique for obtaining configuration data by preliminarily storing secret key information in the programmable logic and calculating an exclusive OR (XOR) between the loaded data and the secret key information is disclosed. Has been. According to this technique, the confidentiality of the configuration data is protected as long as the secret key information is not leaked (see, for example, Patent Document 2).
すなわち、一般的な秘密鍵(共通鍵)暗号によるコンフィギュレーションデータの秘匿方法は、プログラマブルロジック内部に復号回路を持たせ、暗号化されたコンフィギュレーションデータをチップ内部の復号回路で復号化することによって秘匿性を確保している。例えば、Xilinx社やAltera社のハイエンドFPGAでは、このような目的の復号回路が実装されている。
しかしながら、前記の特許文献1に記載された技術では、コンフィギュレーションデータを復号化するために別途に復号回路が必要となるので、回路規模が増大し、LSIのコストが高くなるという問題がある。また、復号化に要する処理時間によってコンフィギュレーションデータをロードする速度が制限されてしまう。
However, the technique described in
さらに、前記の特許文献2に記載された技術では、コンフィギュレーションデータを保護するためには、コンフィギュレーションデータと同等のデータ量の秘密鍵情報が必要となる。つまり、コンフィギュレーションデータと同等のデータ量の秘密鍵情報を保持しなければ、ロードするデータの一部を変化させたデータをロードしてプログラマブルロジックの動作を観察することによって、秘密鍵情報が容易に解読されてしまう。したがって、特許文献2に開示された技術によってコンフィギュレーションデータを保護するためには、多量の記憶素子が必要となり、その結果、プログラマブルロジックのコストを増大させてしまう。
Furthermore, in the technique described in
本発明はかかる点に鑑みてなされたものであり、専用の復号回路を用いないで暗号化したコンフィギュレーションデータをプログラマブルロジック内部で復号することにより、コンフィギュレーションデータを保護することができるプログラマブル論理回路を提供することを目的とする。 The present invention has been made in view of such a point, and a programmable logic circuit capable of protecting configuration data by decrypting configuration data encrypted without using a dedicated decryption circuit inside the programmable logic. The purpose is to provide.
上記の課題を解決するために、本発明のプログラマブル論理回路は、直列に接続された各々のレジスタに対してコンフィギュレーションデータをシフトインすることにより、そのコンフィギュレーションデータを各々のレジスタにロードするプログラマブル論理回路であって、各々のレジスタのうち所望のレジスタに接続された演算器と、他のレジスタの接続部から演算器に対してコンフィギュレーションデータを帰還させる帰還回路とを備える構成を採っている。 In order to solve the above-described problem, the programmable logic circuit of the present invention is a programmable logic circuit that loads configuration data to each register by shifting the configuration data to each register connected in series. A logic circuit having a configuration including an arithmetic unit connected to a desired register among the registers and a feedback circuit that feeds back configuration data to the arithmetic unit from a connection part of another register. .
すなわち、本発明のプログラマブル論理回路は、直列に接続されたレジスタに対しコンフィギュレーションデータをシフトインすることにより、そのコンフィギュレーションデータをレジスタにロードするプログラマブル論理回路において、レジスタの接続部に演算器を備えていて、別のレジスタの接続部から帰還させたコンフィギュレーションデータをその演算器に入力することにより、入力データを変化させるコンフィギュレーションデータを生成することができる。したがって、このような構成によれば、コンフィギュレーションデータの帰還によりそのコンフィギュレーションデータが撹拌されるため、秘密の演算器により入力データからコンフィギュレーションデータを生成される過程を推定することが困難となる。その結果、コンフィギュレーションデータの秘匿性を高いレベルで確保することができる。 That is, the programmable logic circuit of the present invention shifts the configuration data to the serially connected registers, and loads the configuration data into the registers. It is possible to generate configuration data for changing input data by inputting configuration data fed back from a connection portion of another register to the arithmetic unit. Therefore, according to such a configuration, since the configuration data is agitated by the feedback of the configuration data, it is difficult to estimate the process of generating the configuration data from the input data by the secret arithmetic unit. . As a result, the confidentiality of the configuration data can be ensured at a high level.
また、本発明のプログラマブル論理回路は、直列に接続された各々のレジスタに対してコンフィギュレーションデータをシフトインすることにより、そのコンフィギュレーションデータを各々のレジスタにロードするプログラマブル論理回路であって、各々のレジスタのうちの所望のレジスタに接続され、コンフィギュレーションデータのビットの並べ替えを行うビット並び替え回路を備える構成を採っている。 The programmable logic circuit of the present invention is a programmable logic circuit that loads configuration data into each register by shifting in the configuration data to each register connected in series. The configuration is such that a bit rearrangement circuit that is connected to a desired one of the registers and rearranges the bits of the configuration data is provided.
このような構成によれば、所望の位置に配置されたビット並び替え回路によってコンフィギュレーションデータのビットの並べ替えを行うので、コンフィギュレーションデータがビット単位で撹拌されるためにコンフィギュレーションデータの秘匿性を高めることができる。 According to such a configuration, since the bit of the configuration data is rearranged by the bit rearrangement circuit arranged at a desired position, since the configuration data is agitated in units of bits, the confidentiality of the configuration data Can be increased.
また、本発明のプログラマブル論理回路は、前記発明の構成に加えて、各々のレジスタのうちの所望のレジスタに接続され、コンフィギュレーションデータのビットの並べ替えを行うビット並び替え回路を備え、そのビット並び替え回路は、コンフィギュレーションデータの帰還によりループをなすレジスタの接続部の一部に挿入される構成を採っている。 In addition to the configuration of the invention, the programmable logic circuit of the present invention includes a bit rearrangement circuit that is connected to a desired register of each register and rearranges the bits of the configuration data. The rearrangement circuit is configured to be inserted into a part of a connection part of a register forming a loop by feedback of configuration data.
すなわち、本発明のプログラマブル論理回路は、コンフィギュレーションデータの帰還によりループをなす帰還回路の構成に加えて、レジスタの接続部の一部にビット並び替え回路を挿入する構成を採っている。このような構成によれば、コンフィギュレーションデータが帰還回路によって攪拌されると共にビット単位で撹拌されるため、コンフィギュレーションデータの秘匿性をさらに高めることができる。 That is, the programmable logic circuit of the present invention employs a configuration in which a bit rearrangement circuit is inserted in a part of the connection portion of the register in addition to the configuration of the feedback circuit that forms a loop by feedback of configuration data. According to such a configuration, the configuration data is agitated by the feedback circuit and agitated bit by bit, so that the confidentiality of the configuration data can be further enhanced.
また、本発明のプログラマブル論理回路は、直列に接続された各々のレジスタに対してコンフィギュレーションデータをシフトインすることにより、そのコンフィギュレーションデータを各々のレジスタにロードするプログラマブル論理回路であって、秘密鍵情報を保存する記憶素子と、所望のレジスタの接続部を通過するコンフィギュレーションデータと記憶素子から取得した秘密鍵情報との間で特定の演算処理を行う特定の演算器とを備える構成を採っている。 The programmable logic circuit of the present invention is a programmable logic circuit that loads configuration data to each register by shifting in the configuration data to each register connected in series. A configuration including a storage element that stores key information, and a specific arithmetic unit that performs specific arithmetic processing between configuration data passing through a connection portion of a desired register and secret key information acquired from the storage element. ing.
このような構成によれば、秘密鍵情報を記憶する記憶素子と特定の演算器を所望の位置に配置することにより、コンフィギュレーションデータを解析するために秘密鍵情報と演算器の位置を推定する必要が生じるため、コンフィギュレーションデータの秘匿性を高めることができる。 According to such a configuration, the storage element for storing the secret key information and the specific arithmetic unit are arranged at a desired position, thereby estimating the secret key information and the position of the arithmetic unit in order to analyze the configuration data. Since necessity arises, the confidentiality of configuration data can be improved.
また、本発明のプログラマブル論理回路は、前記各発明の構成に加えて、秘密鍵情報を保存する記憶素子と、所望のレジスタの接続部を通過するコンフィギュレーションデータと記憶素子から取得した秘密鍵情報との間で特定の演算処理を行う特定の演算器とを備え、記憶素子と特定の演算器は、コンフィギュレーションデータの帰還によりループをなすレジスタの接続部の一部に挿入される構成を採っている。 The programmable logic circuit according to the present invention includes a storage element that stores secret key information, configuration data that passes through a connection portion of a desired register, and secret key information acquired from the storage element, in addition to the configuration of each invention described above. And a specific arithmetic unit that performs specific arithmetic processing between the storage element and the specific arithmetic unit, and a configuration in which the storage element and the specific arithmetic unit are inserted into a part of a connection portion of a register that forms a loop by feedback of configuration data. ing.
すなわち、本発明のプログラマブル論理回路は、コンフィギュレーションデータの帰還によりループをなす帰還回路や、コンフィギュレーションデータのビットの並べ替えを行うビット並び替え回路の構成に加えて、秘密鍵情報を保存する記憶素子を備え、その記憶素子はコンフィギュレーションデータの帰還によりループをなすレジスタの接続部の一部に挿入されている。このような構成によれば、コンフィギュレーションデータが帰還回路によって攪拌され、かつビット単位で撹拌されると共に、コンフィギュレーションデータを解析するために、秘密鍵情報を取得する必要が生じるため、コンフィギュレーションデータの秘匿性を一段と高めることができる。 That is, the programmable logic circuit of the present invention stores a secret key information in addition to the configuration of a feedback circuit that forms a loop by feedback of configuration data and a bit rearrangement circuit that rearranges bits of configuration data. The memory element is inserted into a part of a connection portion of a register that forms a loop by feedback of configuration data. According to such a configuration, the configuration data is agitated by the feedback circuit and agitated bit by bit, and it is necessary to acquire the secret key information in order to analyze the configuration data. Can be further improved.
本発明のプログラマブル論理回路によれば、元来プログラマブルロジックが持つロード回路に若干の変更を加えるだけでコンフィギュレーションデータの秘匿性を実現することができる。これによって、わずかな回路規模の増加だけでコンフィギュレーションデータの秘匿性を確保することができる。また、本発明のプログラマブル論理回路では、ループ構造をとることによってシンプルな構造にもかかわらず演算の複雑さを大幅に向上させることができる。つまり、本発明プログラマブル論理回路は、演算が複雑であることが暗号を解読されにくいということにつながる点で従来技術に比べて優れている。 According to the programmable logic circuit of the present invention, the secrecy of the configuration data can be realized only by making a slight change to the load circuit originally possessed by the programmable logic. Thereby, the secrecy of the configuration data can be ensured with only a slight increase in circuit scale. In the programmable logic circuit of the present invention, the complexity of the operation can be greatly improved by adopting the loop structure, despite the simple structure. In other words, the programmable logic circuit of the present invention is superior to the prior art in that the complexity of the operation leads to the difficulty in decrypting the code.
(発明の概要)
本発明のプログラマブル論理回路は、専用の復号回路を用いることなく、暗号化されたコンフィギュレーションデータをプログラマブルロジック内部で復号することにより、FPGAやALUアレイ型プロセッサなどのプログラマブルロジックにおいてコンフィギュレーションデータが読まれないように保護している。
(Summary of Invention)
The programmable logic circuit of the present invention reads configuration data in a programmable logic such as an FPGA or an ALU array type processor by decrypting the encrypted configuration data inside the programmable logic without using a dedicated decryption circuit. It is protected so that it does not.
すなわち、レジスタを直列に接続した(つまり、数珠繋ぎにした)回路によってコンフィギュレーションデータをロードする方式において、従来のプログラマブル論理回路では単に1列に接続しているのに対し、本発明のプログラマブル論理回路では、レジスタの接続を部分的にループさせてループ内で特定の演算処理を行っている。このような構成によって、本発明のプログラマブル論理回路では、入力されたコンフィギュレーションデータは上記演算によって値が変わってしまうので、演算処理内容から逆算して本来のコンフィギュレーションデータと異なる値のデータ列を入力する必要がある(つまり、ループ内での特定の演算処理が復号化に相当し、逆算することが暗号化に相当する)。つまり、本発明のプログラマブル論理回路は、専用の復号回路を用いないで演算処理の内容を複雑化することによって、コンフィギュレーションデータについて高い秘匿性を確保している。 That is, in the system in which configuration data is loaded by a circuit in which registers are connected in series (that is, connected in a row), the programmable logic circuit of the present invention is simply connected in one column in the conventional programmable logic circuit. Then, the register connection is partially looped to perform specific arithmetic processing within the loop. With such a configuration, in the programmable logic circuit according to the present invention, the value of the input configuration data is changed by the above-described calculation. Therefore, a data string having a value different from the original configuration data is calculated by performing reverse calculation from the contents of the calculation processing. It is necessary to input (that is, a specific calculation process in the loop corresponds to decryption, and reverse calculation corresponds to encryption). That is, the programmable logic circuit of the present invention secures high confidentiality of configuration data by complicating the contents of the arithmetic processing without using a dedicated decoding circuit.
また、本発明のプログラマブル論理回路では、演算処理内容を秘密にすることで、設計者以外は入力されるコンフィギュレーションデータを見ても、本来のコンフィギュレーションデータ(例えば、FPGAがどのようにプログラムされているかという情報)を知ることができない。特定の演算処理としては、(1)ループする部分でのXOR(または算術加算)、(2)ビットの並び替え、(3)秘密鍵とコンフィギュレーションデータとのXOR(または算術加算)などの処理を行う。なお、これらの特定の演算処理は、公知の暗号アルゴリズムによって基本的な演算として用いられる処理を適用することができる。 Further, in the programmable logic circuit of the present invention, the contents of the arithmetic processing are kept secret, so that the original configuration data (for example, how the FPGA is programmed) can be seen even if the configuration data input by anyone other than the designer is seen. Information). Specific operation processing includes (1) XOR (or arithmetic addition) in a looping part, (2) bit rearrangement, and (3) XOR (or arithmetic addition) between a secret key and configuration data. I do. In addition, the process used as a basic calculation by a well-known encryption algorithm can be applied to these specific calculation processes.
以下、図面を用いて、本発明におけるプログラマブル論理回路の実施の形態の幾つかを詳細に説明する。尚、各実施の形態に用いる図面において、同一の構成要素は同一の符号を付し、かつ重複する説明は可能な限り省略する。なお、以下に述べる実施の形態では、プログラマブル論理回路としてプログラマブルロジックアレイのモデルを適用した場合を例に挙げて説明する。また、本発明の理解を容易にするために、本発明のプログラマブルロジックアレイを構成する前提となる従来のプログラマブルロジックアレイから順を追って説明することにする。 Hereinafter, some embodiments of a programmable logic circuit according to the present invention will be described in detail with reference to the drawings. In the drawings used in the embodiments, the same components are denoted by the same reference numerals, and redundant description is omitted as much as possible. In the embodiment described below, a case where a model of a programmable logic array is applied as a programmable logic circuit will be described as an example. In order to facilitate understanding of the present invention, the conventional programmable logic array which is the premise for configuring the programmable logic array of the present invention will be described in order.
(実施の形態1)
図1は、従来から知られている一般的なプログラマブルロジックアレイのモデルを示す構成図である。本発明のプログラマブルロジックアレイは図1の構成図を前提としている。図1において、プログラマブルロジックアレイ1は、コンフィギュレーション回路2とプログラマブル演算器3からなるPE(Processing Element)4と呼ばれる小さな演算器を多数アレイ状に配列した構成となっている。これらのアレイ状のPE4はインターコネクトバス5によって接続され、各PE4の間でデータの受け渡しが行われるようになっている。また、各PE4のコンフィギュレーション回路2はコンフィギュレーションチェーン6によって直列に接続され、その終端が入力ピン7と出力ピン8に接続されている。
(Embodiment 1)
FIG. 1 is a block diagram showing a model of a general programmable logic array that has been conventionally known. The programmable logic array of the present invention is based on the configuration diagram of FIG. In FIG. 1, a
プログラマブル演算器3は実際にデータ処理を行う部分であり、このプログラマブル演算器3の機能は設計者により変更することが可能である。その機能はコンフィギュレーション回路2によって設定することができるがその詳細は後述する。すなわち、PE4はプログラマブルロジックエレメントとも言われ、PE4の機能はコンフィギュレーション回路2のコンフィギュレーションデータによって決定される。また、各コンフィギュレーション回路2を直列に接続するコンフィギュレーションチェーン6は、コンフィギュレーションデータをロードするためのロード回路としての機能を備えている。
The programmable
図2は、図1におけるコンフィギュレーション回路2とコンフィギュレーションチェーン6の接続を詳細に示した構成図である。なお、この図ではインターコネクトバスは省略されている。図2に示すように、各コンフィギュレーション回路2は、コンフィギュレーションチェーン6によってディジーチェーン状(つまり、数珠繋ぎ)に直列に接続されている。以下、このようなネットワークをコンフィギュレーションチェーン6と呼ぶことにする。また、コンフィギュレーションチェーン6の一方の端は入力ピン7に接続されており、この入力ピン7からデータを連続的に入力することにより、そのデータはコンフィギュレーションチェーン6を通ってコンフィギュレーション回路2のアレイ全体に配布される。以下、コンフィギュレーションチェーン6の入力ピン7から入力されるデータをコンフィギュレーションビットストリームという。また、各コンフィギュレーション回路2に保持され、プログラマブル演算器3を設定するデータをコンフィギュレーションデータという。
FIG. 2 is a configuration diagram showing in detail the connection between the
図3は、図1に示すプログラマブルロジックアレイ1における、ALUを中心として構成されたPE4の内部構成とコンフィギュレーション動作を示す図である。つまり、図3は、PE4の内部についてより詳細に説明すると共にコンフィギュレーション回路2の動作を説明するための図である。PE4は、ALU(Arithmetic Logic Unit)を中心として構成されるものや、LUT(Look Up Table)を中心として構成されるものなど、さまざまな構成のものが知られているが、いずれの構成もコンフィギュレーション回路2とプログラマブル演算器3の機能を持っているという基本構成に変わりはなく、具体的な構成は本発明に直接影響するものではない。
FIG. 3 is a diagram showing an internal configuration and configuration operation of the
図3の例では、ALU13を中心として構成されるPEの内部とインターコネクトバスの一部を図示している。なお、図3の例では、インターコネクトバスはデータバス11とスイッチ回路12から構成されている。PEのプログラマブル演算器3は、算術・論理演算を行うALU13と、ALU13への入力データを選択するスイッチ回路14と、演算結果を保持するレジスタ15と、PEからの出力データを決定するセレクタ16とによって構成されている。また、コンフィギュレーション回路2は、コンフィギュレーションチェーン6に接続されたレジスタ17と、デコーダ18と、コンフィギュレーションデータを記憶するコンフィギュレーションメモリ19とによって構成されている。
In the example of FIG. 3, the inside of the PE configured around the
図3においてコンフィギュレーション回路2は次のように動作する。コンフィギュレーションチェーン6を経由し入力されたデータ(つまり、コンフィギュレーションビットストリーム)はレジスタ17に保持される。このデータは、次のサイクルにおいて、コンフィギュレーションチェーン6を経由して次段のディジーチェーンのPE内部におけるコンフィギュレーション回路2のレジスタ17に転送される。それと共に、そのデータ(つまり、コンフィギュレーションビットストリーム)は自己のPE内部のデコーダ18に入力される。
In FIG. 3, the
すると、デコーダ18は、入力されたデータの内容を解読し、そのPEが使用すべきデータであると判断された場合には、コンフィギュレーションメモリ19を制御して入力されたデータを書き込む。コンフィギュレーションメモリ19の内容は、プログラマブル演算器3の機能、すなわち、ALU13の命令、スイッチ回路14の接続情報、及びセレクタ16の選択ビットを指定する。したがって、コンフィギュレーションメモリ19を書き換えることによって、プログラマブル演算器3におけるALU13、スイッチ回路14、及びセレクタ16の機能を変更することができる。なお、プログラマブルロジックアレイは、数百〜数万のPEを持ち、コンフィギュレーションチェーン6のビット幅は1〜8bitである。したがって、上記の動作は、全てのコンフィギュレーションメモリ19にデータをセットし終わるまで、数百〜数万サイクル繰り返えされる。
Then, the
図4は、図1に示すプログラマブルロジックアレイ1における、LUTを中心として構成されたPEの内部構成とコンフィギュレーション動作を示す図である。つまり、この図は、4入力で1出力のLUTを中心としたPEの構成例を示している。図4に示すLUT21を中心として構成されたPEは、図3に示すALU13を中心として構成されたPEと比較して、データバス11とスイッチ回路12からなるインターコネクトバス及びコンフィギュレーション回路2の構成要素は同じである。しかし、プログラマブル演算器3は、LUT21と、1ビットの記憶素子からなるFF(Flip Flop)22と、セレクタ23とによって構成されている。この構成においても、コンフィギュレーション回路2の動作は図3の場合とほぼ同じである。なお、図4の例におけるLUT21はそれ自身がメモリを持っているため、コンフィギュレーション回路2により直接制御され、コンフィギュレーションデータによってLUT21のテーブル値が書き込まれる。
FIG. 4 is a diagram showing an internal configuration and configuration operation of a PE configured around the LUT in the
図5は、図2のプログラマブルロジックアレイの回路に復号回路を付加した従来技術の一例を示すLSIの構成図である。つまり、図5は、前記の特許文献1で開示された技術である、暗号化されたコンフィギュレーションデータをLSIの内部における復号回路によって復号化し、FPGAをプログラムすることによってコンフィギュレーションデータの秘匿性を確保する技術を、図2のプログラマブルロジックアレイの回路に適用したものである。すなわち、図5に示すプログラマブルロジックアレイを含むLSIは、図2のプログラマブルロジックアレイの回路に復号回路31と秘密鍵32が付加された構成となっている。
FIG. 5 is a block diagram of an LSI showing an example of the prior art in which a decoding circuit is added to the circuit of the programmable logic array of FIG. That is, FIG. 5 shows the technology disclosed in the above-mentioned
図5に示すプログラマブルロジックアレイを含むLSIの技術は、コンフィギュレーションビットストリームを暗号化して入力し、秘密鍵32を用いてLSI内部の復号回路31によって復号化することにより、コンフィギュレーションデータの秘匿性を確保しようとするものである。暗号技術としては、AES(Advanced Encryption Standard)やDES(Data Encryption Standard)など、規格化された一般的な秘密鍵(共通鍵)暗号方式が利用される。この技術を適用した一つの形態は、図5に示すように暗号化ビットストリームの復号回路31と、秘密鍵32を保持する不揮発メモリ(図示せず)と、プログラマブルロジックアレイとを単一のLSIとして実現したものである。
The LSI technology including the programmable logic array shown in FIG. 5 encrypts and inputs a configuration bit stream, and decrypts the configuration data by the
この技術の利点としては、一般的に知られている暗号方式を用いることができるため、復号回路31の設計資産が豊富であることや、コンフィギュレーションビットストリームの生成ソフトが容易に作成できることなどが挙げられる。一方、欠点としては、復号回路31を追加するために回路規模が増大することや、復号処理のためにコンフィギュレーションビットストリームのロード速度が制限されることなどが挙げられる。特に、処理時間に関して、例えば、DESより暗号強度の高い方式として知られる3DES(Triple-DES)の一般的な復号回路においては、1ブロック(64ビット)を処理するために48サイクルを必要とする。したがって、1サイクル2ビット以上の高速なコンフィギュレーションを行うためには復号回路において並列処理を行う必要がある。そのため、さらなる回路規模の増大を招くおそれがある。
Advantages of this technique include that it is possible to use a generally known encryption method, so that the design assets of the
図6は、図3に示すALUを中心として構成されたPEの内部構成に秘密鍵メモリを付加した従来技術の一例を示す回路図である。つまり、図6は、前述の特許文献2に開示された技術である。この技術は、プログラマブルロジックの内部に秘密鍵情報をあらかじめ保存しておき、ロードされたデータと秘密鍵情報との間で排他的論理和(XOR)を計算することによりコンフィギュレーションデータを求める技術であり、図6のPEの回路構成は、図3のPEの回路構成に対して秘密鍵メモリ24が追加された構成となっている。この技術は、コンフィギュレーションデータに対し秘密鍵データを加算(排他的論理和)することによってコンフィギュレーションデータを保護しようというものである。
FIG. 6 is a circuit diagram showing an example of the prior art in which a secret key memory is added to the internal configuration of the PE configured around the ALU shown in FIG. That is, FIG. 6 is the technique disclosed in
この技術によれば、秘密鍵メモリ24に格納されている秘密鍵データを知らない限り、プログラマブル演算器3を所望の機能に設定することはできない。また、秘密鍵メモリ24に格納されている秘密鍵データを知らない限り、コンフィギュレーションビットストリームからプログラマブル演算器3の機能を特定することもできない。このような性質からコンフィギュレーションデータの秘匿性を確保することができる。
According to this technique, unless the secret key data stored in the secret
この技術の利点はコンフィギュレーションの速度を低下させないことである。また、欠点としては、秘密鍵メモリ24のサイズが大きくなるために回路規模の増大を招くことである。さらに、演算処理が単純であるために暗号強度が弱いなどの懸念もある。すなわち、コンフィギュレーションビットストリームの一部だけを変化させたビットストリームを次々にロードして行けば、回路の動作が観察されてしまって秘密鍵メモリの内容を解読される危険性がある。
The advantage of this technique is that it does not slow down the configuration. Further, a disadvantage is that the size of the secret
そこで、本発明の実施の形態1では、専用の復号回路を用いなくても、特定の演算処理を行うことによってコンフィギュレーションデータの秘匿性を確保する技術を実現している。図7は、本実施の形態におけるプログラマブルロジックアレイの構成図である。図7のプログラマブルロジックアレイは、図2のプログラマブルロジックアレイの構成を基本として描かれているので、インターコネクトバスは省略されている。
Therefore,
図7において、実施の形態1のプログラマブルロジックアレイ1aは、コンフィギュレーション回路2とプログラマブル演算器3からなるPE4がアレイ状に配列された構成となっている。これらのアレイ状のPE4は図示しないインターコネクトバスによって接続され、各PE4との間でデータの受け渡しが行われるようになっている。また、各PE4のコンフィギュレーション回路2はコンフィギュレーションチェーン6によってディジーチェーン状に直列に接続され、その終端が入力ピン7と出力ピン8に接続されている。さらに、実施の形態1のプログラマブルロジックアレイ1aは、コンフィギュレーションチェーン6に破線で示すような帰還回路40a,40b,40cが付加されたループ構造となっている。このような帰還回路40a,40b,40cを挿入する場所は設計者以外に知られないように秘密にしておく。
In FIG. 7, the programmable logic array 1a according to the first embodiment has a configuration in which
このような構成によれば、入力されたコンフィギュレーションビットストリームはコンフィギュレーションチェーン6を通過する過程で値が変化するので、アレイ状に配列されたPE4の中で目的のPEに達する時点でどのような値になるかについては設計者以外は知り得ない。言い方を変えれば、目的のPEにおけるコンフィギュレーションデータと帰還回路40a,40b,40cの構造から、入力すべきコンフィギュレーションビットストリームを逆算することができる。このコンフィギュレーションビットストリームから、実際の回路構造(コンフィギュレーションデータ)を知ることができるのは、帰還回路の構造を知っている設計者だけである。つまり、入力されたコンフィギュレーションビットストリームのデータは、帰還回路40a,40b,40cによって帰還されて攪拌されるので、第三者にデータを解読されるおそれがなくなり、結果としてデータの秘匿性は確保される。
According to such a configuration, since the value of the input configuration bit stream changes in the process of passing through the configuration chain 6, what happens when the target PE is reached among the
図7に示すような実施の形態1のプログラマブルロジックアレイ1aの構成によれば、コンフィギュレーションデータのロード時間を増加させることなく、コンフィギュレーションデータの秘匿性を高めることができる。また、実施の形態1によって追加された回路要素は、帰還回路40a,40b,40cの配線と少しの演算器のみであるので、従来のプログラマブルロジックアレイに比べて回路規模の増加はわずかである。
According to the configuration of the programmable logic array 1a of the first embodiment as shown in FIG. 7, the confidentiality of the configuration data can be enhanced without increasing the load time of the configuration data. Further, since the circuit elements added by the first embodiment are only the wirings of the
(実施の形態2)
実施の形態2では、前述の実施の形態1におけるプログラマブルロジックアレイをさらに改良したプログラマブルロジックアレイの回路構成を提案する。図8は、本実施の形態におけるプログラマブルロジックアレイの構成図である。図8のプログラマブルロジックアレイは、図2のプログラマブルロジックアレイの構成を基本として描かれているので、インターコネクトバスは省略されている。
(Embodiment 2)
In the second embodiment, a circuit configuration of a programmable logic array is proposed in which the programmable logic array in the first embodiment is further improved. FIG. 8 is a configuration diagram of the programmable logic array in the present embodiment. Since the programmable logic array of FIG. 8 is drawn based on the configuration of the programmable logic array of FIG. 2, the interconnect bus is omitted.
図8に示す実施の形態2のプログラマブルロジックアレイ1bは、図2のプログラマブルロジックアレイの構成に対して、コンフィギュレーションチェーン6にビット並び替え回路41a,41b,…41nが挿入されている。これらのビット並び替え回路41a,41b,…41nの配置パターンは、設計者以外には秘密とすることでコンフィギュレーションデータの秘匿性を高めることができる。
In the programmable logic array 1b of the second embodiment shown in FIG. 8,
図9は、図8に示すプログラマブルロジックアレイ1bにおけるビット並び替え回路の一例を示す図である。図9のビット並び替え回路の例では、コンフィギュレーションチェーン6のアドレス線とデータ線が分かれており、それぞれ4ビットの幅を持っている。図9に示すように、アドレス4ビットに対しては並び替えが行われず、入力されたビット順に出力される。しかし、データ4ビットについては、[d3,d2,d1,d0]という入力ビットの並びに対し[d'0,d'1,d'3,d'2]の順で出力される。このようにして、データのみビット並び替えを行うことによって、コンフィギュレーションデータの秘匿性を高めた上で制御を容易にしている。また、図8に示すようなビットの並び替え回路と図7で示した実施の形態1の帰還回路とを併せて用いることによって、データを撹拌する効果が高められるので、さらに高い秘匿性を確保することができる。 FIG. 9 is a diagram showing an example of the bit rearrangement circuit in the programmable logic array 1b shown in FIG. In the example of the bit rearrangement circuit of FIG. 9, the address line and the data line of the configuration chain 6 are separated and each have a width of 4 bits. As shown in FIG. 9, the 4 bits of the address are not rearranged and are output in the order of the input bits. However, 4 bits of data are output in the order of [d′ 0, d′ 1, d′ 3, d′ 2] with respect to the input bit sequence of [d3, d2, d1, d0]. In this way, only the data is rearranged to facilitate rearrangement of configuration data while facilitating control. Further, by using the bit rearrangement circuit as shown in FIG. 8 together with the feedback circuit of the first embodiment shown in FIG. 7, the effect of mixing the data can be enhanced, so that higher secrecy is ensured. can do.
(実施の形態3)
実施の形態3では、前述の実施の形態2におけるプログラマブルロジックアレイよりさらにコンフィギュレーションデータの秘匿性を高めることができるプログラマブルロジックアレイの回路構成を提案する。図10は、本実施の形態におけるプログラマブルロジックアレイの構成図である。図10のプログラマブルロジックアレイは、図2のプログラマブルロジックアレイの構成を基本として描かれているので、インターコネクトバスは省略されている。
(Embodiment 3)
The third embodiment proposes a circuit configuration of a programmable logic array that can further improve the confidentiality of configuration data compared to the programmable logic array in the second embodiment. FIG. 10 is a configuration diagram of the programmable logic array in the present embodiment. Since the programmable logic array of FIG. 10 is drawn based on the configuration of the programmable logic array of FIG. 2, the interconnect bus is omitted.
図10に示す実施の形態3のプログラマブルロジックアレイ1cでは、図2に示すプログラマブルロジックアレイに対して、秘密鍵情報を保存するための秘密鍵メモリ43a,43b,43c,43dと、コンフィギュレーションチェーン6上を通過するデータと秘密鍵情報との演算を行う演算回路44a,44b,44c,44dとが追加された構成となっている。このような構成によれば、秘密鍵情報が漏洩しない限り、コンフィギュレーションデータの秘匿性を高いレベルで確保することができる。
In the programmable logic array 1c of the third embodiment shown in FIG. 10, secret
また、図10に示すプログラマブルロジックアレイ1cの構成と図7で示した帰還回路とを組み合わせることでさらに秘匿性を高めることができる。このとき、帰還回路の部分と秘密鍵を加える部分では別の演算を用いてビットの撹拌効果を高めると、さらに秘匿性の効果が向上する。例えば、帰還回路の部分では排他的論理和を用い、秘密鍵を加える部分では算術和(通常の加算)を行うと秘匿性の効果は一段と向上する。また、図10に示すプログラマブルロジックアレイ1cの構成に図8で示したビット並び替え回路を挿入することにより、ビットの撹拌効果を得ることができるのでさらに秘匿性を高めることができる。もちろん、図7で示した帰還回路と図8で示したビット並び替え回路とを併用して図10に示すプログラマブルロジックアレイ1cに適用すれば、さらなる秘匿性の向上を実現することができる。 Further, the confidentiality can be further improved by combining the configuration of the programmable logic array 1c shown in FIG. 10 and the feedback circuit shown in FIG. At this time, if the agitation effect of the bit is enhanced by using another calculation in the feedback circuit portion and the portion to which the secret key is added, the concealment effect is further improved. For example, if the exclusive OR is used in the feedback circuit portion and the arithmetic sum (normal addition) is performed in the portion to which the secret key is added, the effect of confidentiality is further improved. Further, by inserting the bit rearrangement circuit shown in FIG. 8 into the configuration of the programmable logic array 1c shown in FIG. 10, the bit agitation effect can be obtained, so that the secrecy can be further improved. Of course, if the feedback circuit shown in FIG. 7 and the bit rearrangement circuit shown in FIG. 8 are used together and applied to the programmable logic array 1c shown in FIG. 10, further improvement in secrecy can be realized.
(実施の形態4)
図11は、本発明の実施の形態4におけるプログラマブルロジックアレイの構成図である。図11のプログラマブルロジックアレイは、図2のプログラマブルロジックアレイの構成を基本として描かれているので、インターコネクトバスは省略されている。図11は最も望ましいプログラマブルロジックアレイの構成例が示されている。すなわち、図11に示すプログラマブルロジックアレイ1dは、図7の帰還回路、図8のビット並び替え回路、及び図10の秘密鍵メモリ及び演算回路を複合して使用した場合のプログラマブルロジックアレイの構成図である。
(Embodiment 4)
FIG. 11 is a configuration diagram of a programmable logic array according to the fourth embodiment of the present invention. Since the programmable logic array of FIG. 11 is drawn based on the configuration of the programmable logic array of FIG. 2, the interconnect bus is omitted. FIG. 11 shows a configuration example of the most desirable programmable logic array. That is, the programmable logic array 1d shown in FIG. 11 is a configuration diagram of the programmable logic array when the feedback circuit of FIG. 7, the bit rearrangement circuit of FIG. 8, and the secret key memory and the arithmetic circuit of FIG. It is.
すなわち、図11に示す実施の形態4におけるプログラマブルロジックアレイ1dでは、帰還回路40a,40b,40cを基本として、ビット並び替え回路41a,41b,…41nを挿入することでデータの撹拌効果を高め、さらに、秘密鍵メモリ43a,43b,43c,43dと演算回路44a,44b,44c,44dとによって実現される秘密鍵を付加することで、悪意の第三者によるコンフィギュレーションデータの解析を一層困難とし、秘匿性を一段と高めることができる。
That is, in the programmable logic array 1d in the fourth embodiment shown in FIG. 11, the
なお、図11の実施の形態4では、ビットの並び替えと秘密鍵との演算を併用する方法を示したが、他にもS−Box(テーブルの参照)や有限体上の乗算など、一般的に知られている暗号方式で用いられる演算手法を挿入することも可能である。しかし、いずれの演算手法を挿入した場合でもそれだけでは秘匿性は不十分であるので、図7の実施の形態1で提案した帰還回路を付加することによってその効果が高められ、十分な秘匿性を確保することができる。
In the fourth embodiment shown in FIG. 11, a method of using both bit rearrangement and secret key calculation is shown, but other general methods such as S-Box (table reference) and multiplication on a finite field are also used. It is also possible to insert a calculation method used in a known encryption method. However, even if any calculation method is inserted, the secrecy is not sufficient by itself. Therefore, the effect is enhanced by adding the feedback circuit proposed in
すなわち、図11に示すように、コンフィギュレーションチェーン6を通過するコンフィギュレーションデータによって、プログラマブルロジックエレメントであるPE4の機能が決定される。このとき、破線で囲んだ帰還回路40a,40b,40cのフィードバックによって、内部でコンフィギュレーションデータがどのように変化するかを解析することを困難にしているので、コンフィギュレーションデータの秘匿性を充分に確保することができる。このようなフィードバックループの構造を基本として、ビットの並び替えや秘密鍵を併用することによって秘匿性の効果を大幅に高めることができる。なお、本発明では、フィードバックループ構造によって、コンフィギュレーションチェーン6の端から1つずつデータを解析していくという常套手段を防いでいる意味は大きい。
That is, as shown in FIG. 11, the function of the
(実施の形態5)
実施の形態5では、前述の実施の形態1乃至4におけるプログラマブルロジックアレイを容易に製造するためのプログラマブルロジックアレイの回路構成を提案する。図12は、本実施の形態におけるプログラマブルロジックアレイの構成図である。図12のプログラマブルロジックアレイは、図7のプログラマブルロジックアレイの構成を基本として描かれているので、インターコネクトバスは省略されている。
(Embodiment 5)
In the fifth embodiment, a circuit configuration of a programmable logic array for easily manufacturing the programmable logic array in the first to fourth embodiments is proposed. FIG. 12 is a configuration diagram of the programmable logic array in the present embodiment. Since the programmable logic array of FIG. 12 is drawn based on the configuration of the programmable logic array of FIG. 7, the interconnect bus is omitted.
図12に示す実施の形態5のプログラマブルロジックアレイ1eでは、図7のプログラマブルロジックアレイ1aに対して、帰還回路40a,40b,40cの代わりにスイッチ付帰還回路45a,45b,…45nが付加されている。ここで、スイッチ付帰還回路45a,45b,…45nはそれぞれスイッチ46a,46b,…46nを備える。
In programmable logic array 1e of the fifth embodiment shown in FIG. 12,
プログラマブルロジックアレイ1eは、すべてのスイッチ46a,46b,…46nを開放したとき、図2のプログラマブルロジックアレイ1と全く同じ機能となる。また、プログラマブルロジックアレイ1eは、3つのスイッチ46a,46b,46cを短絡し、その他のスイッチ46d,46e,…46nを開放したとき、図7のプログラマブルロジックアレイ1aと全く同じ機能となる。
The programmable logic array 1e has exactly the same function as the
すなわち、本実施の形態のプログラマブルロジックアレイの回路構成によればLSIを製造した後でも帰還回路の挿入位置を設定することができ、その結果としてユーザ(コンフィギュレーションデータの設計者)ごとに異なるLSIを製造する必要がなくなるため、コンフィギュレーションデータの秘匿化機能を備えたプログラマブルロジックを容易に量産することができる。 That is, according to the circuit configuration of the programmable logic array of the present embodiment, the insertion position of the feedback circuit can be set even after the LSI is manufactured, and as a result, the LSI that is different for each user (configuration data designer) Therefore, programmable logic having a configuration data concealing function can be easily mass-produced.
ところで、スイッチ46a,46b,…46nの開閉は、コンフィギュレーションデータと同様、悪意を持った第三者にスイッチ46a,46b,…46nの状態を読み取られないように、安全な方法で設定する必要がある。この解決方法として、以下のものが挙げられる。
By the way, the opening / closing of the
まず第1の方法は、スイッチ46a,46b,…46nの設定情報を不揮発メモリに保存することである。FPGAの内部回路の設計者は、スイッチの設定情報を不揮発メモリに保存し、さらにスイッチの設定情報に基づきコンフィギュレーションビットストリームを秘匿化した上で商品を出荷することで、設計情報の機密を保持することができる。なお、スイッチの設定情報は、プログラマブル演算器の設定情報(すなわちコンフィギュレーションデータ)に比べ容量がずっと小さく、またスイッチの設定情報を変更する機会が少ないため、不揮発メモリ型FPGAの持つ課題はほとんど問題にならない。
The first method is to store setting information of the
また、第2の方法は、アンチフューズ型FPGAと同様の技術を用いてスイッチ46a,46b,…46nを1度のみ変更可能とすることである。この方法においても、スイッチの状態は設計者以外知りえないため、本発明の技術によってコンフィギュレーションデータの秘匿性を確保することができる。
The second method is to make it possible to change the
以上、実施の形態5では、秘匿化のための機能をLSI製造後にも変更可能とする技術を提案し、説明した。ここでは、実施の形態1と対応し、帰還回路40a,40b,40cをプログラマブルな回路要素であるスイッチ付帰還回路45a,45b,…45nに置き換えることで、実質的に帰還回路の挿入位置を自由に設定する方法を示した。同様にして、実施の形態2乃至4と対応し、ビット並び替え回路41a,41b,…41nおよび秘密鍵メモリ43a,43b,43c,43dおよび演算回路44a,44b,44c,44dをプログラマブルな回路要素に置き換える方法を示した。これにより、これら回路要素の挿入位置および機能をLSI製造後に変更することができる。特に、秘密鍵メモリ43a,43b,43c,43dを書き込み可能な不揮発メモリとすることで秘密鍵を変更可能とすることは従来技術により容易に実現できることから、応用上有用性が高いといえる。
As described above, the fifth embodiment has proposed and described the technology that makes it possible to change the function for concealment even after the LSI is manufactured. Here, corresponding to the first embodiment, the
以上説明したように、本発明のプログラマブル論理回路は、従来の回路に対して簡単な要素を追加するだけでコンフィギュレーションデータの秘匿性を充分に確保することができるので、汎用性のあるLSIなどに有効に利用することができる。 As described above, the programmable logic circuit of the present invention can ensure the secrecy of configuration data only by adding simple elements to the conventional circuit. Can be used effectively.
1,1a,1b,1c,1d,1e プログラマブルロジックアレイ
2 コンフィギュレーション回路
3 プログラマブル演算器
4 PE(Processing Element)
5 インターコネクトバス
6 コンフィギュレーションチェーン
7 入力ピン
8 出力ピン
11 データバス
12、14 スイッチ回路
13 ALU(Arithmetic Logic Unit)
15、17 レジスタ
16、23 セレクタ
18 デコーダ
19 コンフィギュレーションメモリ
21 LUT(Look Up Table)
22 FF(Flip Flop)
24 秘密鍵メモリ
31 復号回路
32 秘密鍵
40a,40b,40c 帰還回路
41a,41b,…41n ビット並び替え回路
43a,43b,43c,43d 秘密鍵メモリ
44a,44b,44c,44d 演算回路
45a,45b,45c,…45n スイッチ付帰還回路
46a,46b,46c,…46n スイッチ
1, 1a, 1b, 1c, 1d, 1e
5 Interconnect Bus 6
15, 17
22 FF (Flip Flop)
24 secret
Claims (5)
前記各々のレジスタのうち、所望のレジスタに接続された演算器と、
他のレジスタの接続部から前記演算器に対して前記コンフィギュレーションデータを帰還させる帰還回路と、
を備えることを特徴とするプログラマブル論理回路。 A programmable logic circuit that loads configuration data into each of the registers by shifting in the configuration data to each of the serially connected registers,
An arithmetic unit connected to a desired register among the registers,
A feedback circuit that feeds back the configuration data from the connection of another register to the computing unit;
A programmable logic circuit comprising:
前記各々のレジスタのうちの所望のレジスタに接続され、前記コンフィギュレーションデータのビットの並べ替えを行うビット並び替え回路を備えることを特徴とするプログラマブル論理回路。 A programmable logic circuit that loads configuration data into each of the registers by shifting in the configuration data to each of the serially connected registers,
A programmable logic circuit comprising a bit rearrangement circuit connected to a desired one of the registers and rearranging the bits of the configuration data.
前記ビット並び替え回路は、前記コンフィギュレーションデータの帰還によりループをなすレジスタの接続部の一部に挿入されていることを特徴とする請求項1に記載のプログラマブル論理回路。 A bit rearrangement circuit connected to a desired one of the registers and rearranging the bits of the configuration data;
2. The programmable logic circuit according to claim 1, wherein the bit rearrangement circuit is inserted into a part of a connection portion of a register that forms a loop by feedback of the configuration data.
秘密鍵情報を保存する記憶素子と、
所望のレジスタの接続部を通過する前記コンフィギュレーションデータと前記記憶素子から取得した秘密鍵情報との間で特定の演算処理を行う特定の演算器と、
を備えることを特徴とするプログラマブル論理回路。 A programmable logic circuit that loads configuration data into each of the registers by shifting in the configuration data to each of the serially connected registers,
A storage element for storing secret key information;
A specific arithmetic unit that performs specific arithmetic processing between the configuration data passing through a connection portion of a desired register and the secret key information acquired from the storage element;
A programmable logic circuit comprising:
所望のレジスタの接続部を通過するコンフィギュレーションデータと前記記憶素子から取得した秘密鍵情報との間で特定の演算処理を行う特定の演算器とを備え、
前記記憶素子と前記特定の演算器は、前記コンフィギュレーションデータの帰還によりループをなすレジスタの接続部の一部に挿入されていることを特徴とする請求項1乃至請求項3のいずれかに記載のプログラマブル論理回路。 A storage element for storing secret key information;
A specific arithmetic unit that performs specific arithmetic processing between configuration data passing through a connection portion of a desired register and secret key information acquired from the storage element;
4. The storage element and the specific arithmetic unit are inserted into a part of a connection portion of a register that forms a loop by feedback of the configuration data. Programmable logic circuit.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004373574A JP2006180375A (en) | 2004-12-24 | 2004-12-24 | Programmable logic circuit |
PCT/JP2005/023315 WO2006068109A1 (en) | 2004-12-24 | 2005-12-20 | Programmable logic circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004373574A JP2006180375A (en) | 2004-12-24 | 2004-12-24 | Programmable logic circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006180375A true JP2006180375A (en) | 2006-07-06 |
Family
ID=36601709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004373574A Pending JP2006180375A (en) | 2004-12-24 | 2004-12-24 | Programmable logic circuit |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2006180375A (en) |
WO (1) | WO2006068109A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015965A (en) * | 2006-07-10 | 2008-01-24 | Fuji Xerox Co Ltd | Information processor, operation method of information processor, and program |
JP2009129046A (en) * | 2007-11-21 | 2009-06-11 | Panasonic Corp | Reconfigurable circuit, reconfigurable circuit function modification method and communication device |
JP2010166255A (en) * | 2009-01-14 | 2010-07-29 | Rohm Co Ltd | Programmable logic device and signal processing circuit using the same |
JP2012221149A (en) * | 2011-04-07 | 2012-11-12 | Fujitsu Semiconductor Ltd | Reconfigurable integrated circuit device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970142A (en) * | 1996-08-26 | 1999-10-19 | Xilinx, Inc. | Configuration stream encryption |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5768372A (en) * | 1996-03-13 | 1998-06-16 | Altera Corporation | Method and apparatus for securing programming data of a programmable logic device |
JP2003167754A (en) * | 2001-11-30 | 2003-06-13 | Fujitsu Ltd | Fpga configuration service system and fpga configuration service method |
-
2004
- 2004-12-24 JP JP2004373574A patent/JP2006180375A/en active Pending
-
2005
- 2005-12-20 WO PCT/JP2005/023315 patent/WO2006068109A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970142A (en) * | 1996-08-26 | 1999-10-19 | Xilinx, Inc. | Configuration stream encryption |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015965A (en) * | 2006-07-10 | 2008-01-24 | Fuji Xerox Co Ltd | Information processor, operation method of information processor, and program |
JP2009129046A (en) * | 2007-11-21 | 2009-06-11 | Panasonic Corp | Reconfigurable circuit, reconfigurable circuit function modification method and communication device |
JP2010166255A (en) * | 2009-01-14 | 2010-07-29 | Rohm Co Ltd | Programmable logic device and signal processing circuit using the same |
JP2012221149A (en) * | 2011-04-07 | 2012-11-12 | Fujitsu Semiconductor Ltd | Reconfigurable integrated circuit device |
Also Published As
Publication number | Publication date |
---|---|
WO2006068109A1 (en) | 2006-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2428031C (en) | Programmable logic device with decryption algorithm and decryption key | |
Bossuet et al. | Dynamically configurable security for SRAM FPGA bitstreams | |
US6366117B1 (en) | Nonvolatile/battery-backed key in PLD | |
US6441641B1 (en) | Programmable logic device with partial battery backup | |
US7117373B1 (en) | Bitstream for configuring a PLD with encrypted design data | |
US6981153B1 (en) | Programmable logic device with method of preventing readback | |
US7201326B2 (en) | Information processing device | |
US6351814B1 (en) | Field programmable gate array with program encryption | |
US7606362B1 (en) | FPGA configuration bitstream encryption using modified key | |
US6965675B1 (en) | Structure and method for loading encryption keys through a test access port | |
US9152822B2 (en) | Method and apparatus for securing programming data of a programmable device | |
US10771062B1 (en) | Systems and methods for enhancing confidentiality via logic gate encryption | |
JP4758904B2 (en) | Confidential information processing method | |
JP5246863B2 (en) | Logic program data protection system and protection method for reconfigurable logic device | |
US7734043B1 (en) | Encryption key obfuscation and storage | |
TW201918923A (en) | Secure logic system and method for operating a secure logic system | |
US7581117B1 (en) | Method for secure delivery of configuration data for a programmable logic device | |
WO2006068109A1 (en) | Programmable logic circuit | |
US20110154062A1 (en) | Protection of electronic systems from unauthorized access and hardware piracy | |
KR20180059217A (en) | Apparatus and method for secure processing of memory data | |
US20220284132A1 (en) | Method for securing logic circuits | |
US9582686B1 (en) | Unique secure serial ID | |
Moraitis | FPGA Bitstream Modification: Attacks and Countermeasures | |
US20220300624A1 (en) | Hardware storage unique key | |
JP2013101442A (en) | Microcomputer and data processing apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20071115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100713 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101109 |