図面 (/)

技術 電子機器、回路データ保護装置、及び回路データ保護方法

出願人 株式会社富士通アドバンストエンジニアリング
発明者 市塚裕之
出願日 2013年3月14日 (7年9ヶ月経過) 出願番号 2013-051437
公開日 2014年9月25日 (6年3ヶ月経過) 公開番号 2014-178809
状態 特許登録済
技術分野 論理回路III 記憶装置の機密保護 マイクロコンピュータ
主要キーワード コンフィグレーション回路 書き換えフラグ PLLブロック ロジックエレメント 模倣品 コンフィグレーションメモリ 復元動作 秘匿化処理
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2014年9月25日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (19)

課題

プログラマブルデバイスを設定するための回路データ解析されるリスクを低減すること。

解決手段

プログラマブルデバイス2、メモリ3、及び制御部7を有する電子機器1が提供される。プログラマブルデバイス2は、回路データ6に応じた回路として動作する。メモリ3は、第1及び第2の領域4、5を含み、第1の領域4に回路データ6を記憶する。制御部7は、回路データ6がメモリ3からプログラマブルデバイス2に読み込まれたことを検出し、回路データ6の読み込みが検出された後、第1の領域4の中から回路データの一部分6aを選択し、選択した一部分のデータ6aを第2の領域5に退避し、第1の領域4の中の一部分のデータ6aを他のデータ8に書き換える。

概要

背景

最近の電子機器には、製造時までにハードウェアとしての回路構成が固定される通常の集積回路とは異なり、製造後に回路構成を変更できるプログラマブルデバイスが多く利用されている。プログラマブルデバイスは、リコンフィギュラブルデバイスプログラマブルロジックデバイスと呼ばれることもある。プログラマブルデバイスの一例として、最近はFPGA(Field-Programmable Gate Array)が利用されることが多い。プログラマブルデバイスは、動作時にコンフィグレーションと呼ばれる初期化を行い、自身の回路構成を設定する。コンフィグレーションにおいては、プログラマブルデバイスは、コンフィグレーションメモリに記憶された回路データを読み込み、回路データが示す回路として動作できるようにする。コンフィグレーションメモリに記憶される回路データを入れ替えることで、プログラマブルデバイスの動作を変更することができる。

同じ種類のプログラマブルデバイスに同じ回路データを読み込ませれば、同じ動作を行う回路再現することができる。また、回路データを解析すると、プログラマブルデバイスに実行させる信号処理アルゴリズムを知ることができる場合がある。そのため、電子機器の供給者から許可を得ていない者が、電子機器に搭載されたコンフィグレーションメモリから回路データを窃取し、その電子機器以外の用途に回路データを利用してしまうおそれがある。例えば、窃取された回路データを流用して、その電子機器の模倣品が製造される可能性がある。また、例えば、回路データから信号処理のアルゴリズムが解析され、解析されたアルゴリズムを利用して別の電子機器が製造される可能性がある。

重要情報を秘匿する技術としては、次のようなものが提案されている。例えば、マイクロプロセッサと、ROM(Read Only Memory)などのプログラムメモリと、データ変換回路とを有するデバイスが提案されている。このプログラムメモリには、8次の原始多項式を用いて予め隠蔽化されたプログラムが記憶されている。マイクロプロセッサが隠蔽化されたプログラムを実行するときには、データ変換回路がハードウェア処理によって隠蔽化を解除する。また、例えば、プロセッサ不揮発性メモリとを繋ぐデータバスの途中に設けられるデータ処理装置が提案されている。このデータ処理装置は、プロセッサから複数の信号線を介して入力されるビット列の中で、ビット位置を所定の入れ替え方法に従って入れ替え、ビット位置が入れ替わったビット列を不揮発性メモリに保存する。

概要

プログラマブルデバイスを設定するための回路データが解析されるリスクを低減すること。プログラマブルデバイス2、メモリ3、及び制御部7を有する電子機器1が提供される。プログラマブルデバイス2は、回路データ6に応じた回路として動作する。メモリ3は、第1及び第2の領域4、5を含み、第1の領域4に回路データ6を記憶する。制御部7は、回路データ6がメモリ3からプログラマブルデバイス2に読み込まれたことを検出し、回路データ6の読み込みが検出された後、第1の領域4の中から回路データの一部分6aを選択し、選択した一部分のデータ6aを第2の領域5に退避し、第1の領域4の中の一部分のデータ6aを他のデータ8に書き換える。

目的

本発明は、プログラマブルデバイスを設定するための回路データが解析されるリスクを低減することが可能な電子機器、回路データ保護装置、及び回路データ保護方法を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

回路データに応じた回路として動作するプログラマブルデバイスと、第1及び第2の領域を含み、前記第1の領域に前記回路データを記憶したメモリと、前記回路データが前記メモリから前記プログラマブルデバイスに読み込まれたことを検出し、前記回路データの読み込みが検出された後、前記第1の領域の中から前記回路データの一部分を選択し、選択した一部分のデータを前記第2の領域に退避し、前記第1の領域の中の前記一部分のデータを他のデータに書き換える制御部とを有する電子機器

請求項2

前記制御部は、前記回路データが前記メモリから前記プログラマブルデバイスに再び読み込まれるときに、前記第2の領域に退避された前記一部分のデータと前記第1の領域に記憶された前記他のデータ以外の部分のデータとに基づいて前記回路データを再現する請求項1に記載の電子機器。

請求項3

前記制御部は、前記第1の領域の中で前記一部分のデータが記憶されていた位置を示す位置情報を記憶する記憶部を有し、前記位置情報に基づいて前記回路データを再現する請求項2に記載の電子機器。

請求項4

前記制御部は、前記第1の領域の中の前記他のデータを前記第2の領域に退避された前記一部分のデータで上書きすることで前記第1の領域に前記回路データを再現し、前記プログラマブルデバイスが前記第1の領域から前記回路データを読み込むことを可能にする請求項2又は3に記載の電子機器。

請求項5

前記制御部は、前記他のデータに書き換えられる前記一部分のデータを、前記第1の領域の中からランダムに選択する請求項1乃至4の何れか一項に記載の電子機器。

請求項6

第1及び第2の領域を含み前記第1の領域に回路データを記憶したメモリから、前記回路データに応じた回路として動作するプログラマブルデバイスに、前記回路データが読み込まれたことを検出する検出部と、前記回路データの読み込みが検出された後、前記第1の領域の中から前記回路データの一部分を選択し、選択した一部分のデータを前記第2の領域に退避し、前記第1の領域の中の前記一部分のデータを他のデータに書き換える書き換え部とを有する回路データ保護装置

請求項7

回路データに応じた回路として動作するプログラマブルデバイスを備えた電子機器が実行する回路データ保護方法であって、第1及び第2の領域を含み前記第1の領域に前記回路データを記憶したメモリから、前記プログラマブルデバイスに、前記回路データが読み込まれたことを検出し、前記回路データの読み込みが検出された後、前記第1の領域の中から前記回路データの一部分を選択し、選択した一部分のデータを前記第2の領域に退避し、前記第1の領域の中の前記一部分のデータを他のデータに書き換える回路データ保護方法。

技術分野

0001

本発明は、電子機器回路データ保護装置、及び回路データ保護方法に関する。

背景技術

0002

最近の電子機器には、製造時までにハードウェアとしての回路構成が固定される通常の集積回路とは異なり、製造後に回路構成を変更できるプログラマブルデバイスが多く利用されている。プログラマブルデバイスは、リコンフィギュラブルデバイスプログラマブルロジックデバイスと呼ばれることもある。プログラマブルデバイスの一例として、最近はFPGA(Field-Programmable Gate Array)が利用されることが多い。プログラマブルデバイスは、動作時にコンフィグレーションと呼ばれる初期化を行い、自身の回路構成を設定する。コンフィグレーションにおいては、プログラマブルデバイスは、コンフィグレーションメモリに記憶された回路データを読み込み、回路データが示す回路として動作できるようにする。コンフィグレーションメモリに記憶される回路データを入れ替えることで、プログラマブルデバイスの動作を変更することができる。

0003

同じ種類のプログラマブルデバイスに同じ回路データを読み込ませれば、同じ動作を行う回路再現することができる。また、回路データを解析すると、プログラマブルデバイスに実行させる信号処理アルゴリズムを知ることができる場合がある。そのため、電子機器の供給者から許可を得ていない者が、電子機器に搭載されたコンフィグレーションメモリから回路データを窃取し、その電子機器以外の用途に回路データを利用してしまうおそれがある。例えば、窃取された回路データを流用して、その電子機器の模倣品が製造される可能性がある。また、例えば、回路データから信号処理のアルゴリズムが解析され、解析されたアルゴリズムを利用して別の電子機器が製造される可能性がある。

0004

重要情報を秘匿する技術としては、次のようなものが提案されている。例えば、マイクロプロセッサと、ROM(Read Only Memory)などのプログラムメモリと、データ変換回路とを有するデバイスが提案されている。このプログラムメモリには、8次の原始多項式を用いて予め隠蔽化されたプログラムが記憶されている。マイクロプロセッサが隠蔽化されたプログラムを実行するときには、データ変換回路がハードウェア処理によって隠蔽化を解除する。また、例えば、プロセッサ不揮発性メモリとを繋ぐデータバスの途中に設けられるデータ処理装置が提案されている。このデータ処理装置は、プロセッサから複数の信号線を介して入力されるビット列の中で、ビット位置を所定の入れ替え方法に従って入れ替え、ビット位置が入れ替わったビット列を不揮発性メモリに保存する。

先行技術

0005

特開2001−265459号公報
特開2011−128663号公報

発明が解決しようとする課題

0006

プログラマブルデバイスを設定するための回路データを保護する方法としては、上記の提案方法を採用して予め回路データを所定の秘匿化方法によって秘匿化し、秘匿化された回路データをメモリに格納しておく方法も考えられる。秘匿化された回路データは、その秘匿化方法に対応した変換回路を備えない電子機器ではそのまま利用することが難しい。

0007

しかし、上記の提案方法を採用して回路データを秘匿化しても、秘匿化された回路データが解析されてしまうリスクが依然として存在する。すなわち、メモリの内容を見ると、意味のある回路データそのものではなく、所定の秘匿化方法によって全体が秘匿化されているものが格納されていることが判明しやすい。一方で、上記の提案方法では、電子機器に固定の変換回路が搭載されることになる。よって、回路データを窃取しようとする者に秘匿化方法を分析する動機を与え、回路データの解析という攻撃を受けやすくなる。

0008

そして、固定の変換回路の存在を前提として予め秘匿化を行っておく上記の提案方法では、秘匿化方法が不正に解明されてしまうと、既に製造された電子機器が引き続き回路データを保護できるように柔軟に対応することは難しい。これは、同じ種類の変換回路を搭載した電子機器が数多く製造されるような場合に特に問題となる。

0009

そこで、1つの側面では、本発明は、プログラマブルデバイスを設定するための回路データが解析されるリスクを低減することが可能な電子機器、回路データ保護装置、及び回路データ保護方法を提供することを目的とする。

課題を解決するための手段

0010

1つの側面では、回路データに応じた回路として動作するプログラマブルデバイスと、第1及び第2の領域を含み、第1の領域に回路データを記憶したメモリと、回路データがメモリからプログラマブルデバイスに読み込まれたことを検出し、回路データの読み込みが検出された後、第1の領域の中から回路データの一部分を選択し、選択した一部分のデータを第2の領域に退避し、第1の領域の中の一部分のデータを他のデータに書き換える制御部とを有する電子機器が提供される。

0011

他の1つの側面では、第1及び第2の領域を含み第1の領域に回路データを記憶したメモリから、回路データに応じた回路として動作するプログラマブルデバイスに、回路データが読み込まれたことを検出する検出部と、回路データの読み込みが検出された後、第1の領域の中から回路データの一部分を選択し、選択した一部分のデータを第2の領域に退避し、第1の領域の中の一部分のデータを他のデータに書き換える書き換え部とを有する回路データ保護装置が提供される。

0012

他の1つの側面では、回路データに応じた回路として動作するプログラマブルデバイスを備えた電子機器が実行する回路データ保護方法が提供される。当該回路データ保護方法は、第1及び第2の領域を含み第1の領域に回路データを記憶したメモリから、プログラマブルデバイスに、回路データが読み込まれたことを検出し、回路データの読み込みが検出された後、第1の領域の中から回路データの一部分を選択し、選択した一部分のデータを第2の領域に退避し、第1の領域の中の一部分のデータを他のデータに書き換えるものである。

発明の効果

0013

本発明の1つの側面によれば、プログラマブルデバイスを設定するための回路データが解析されるリスクを低減することが可能になる。

図面の簡単な説明

0014

第1の実施の形態に係る不正防止装置の例を示した図である。
第2の実施の形態に係るFPGAが配置された基板の例を示した図である。
第2の実施の形態に係るFPGAに含まれるロジックエレメントの例を示した図である。
第2の実施の形態に係るロジックエレメントに含まれるルックアップテーブルの例(3入力AND)を示した図である。
第2の実施の形態に係るロジックエレメントに含まれるルックアップテーブルの例(3入力OR)を示した図である。
第2の実施の形態に係るFPGAの例を示したブロック図である。
第2の実施の形態に係る不正防止回路の機能を示したブロック図である。
第2の実施の形態に係るコンフィグレーションメモリに格納される情報の例を示した図である。
第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第1の図である。
第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第2の図である。
第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第1のシーケンス図である。
第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第2のシーケンス図である。
第2の実施の形態に係るコンフィグレーション回路の動作を示したフロー図である。
第2の実施の形態に係る不正防止回路の動作を示した第1のフロー図である。
第2の実施の形態に係る不正防止回路の動作を示した第2のフロー図である。
第2の実施の形態に係る不正防止回路の動作を示した第3のフロー図である。
第2の実施の形態に係る不正防止回路の一変形例を示した第1の図である。
第2の実施の形態に係る不正防止回路の一変形例を示した第2の図である。

実施例

0015

以下、図面を参照しながら実施の形態について説明する。
[第1の実施の形態]
第1の実施の形態について説明する。

0016

図1は、第1の実施の形態に係る不正防止装置の例を示した図である。
図1に示すように、電子機器1は、プログラマブルデバイス2、メモリ3、及び制御部7を有する。プログラマブルデバイス2は、回路データ6に応じた回路として動作する。FPGAは、プログラマブルデバイス2の一例である。プログラマブルデバイス2は、動作時にコンフィグレーションと呼ばれる初期化を行い、自身の回路構成を設定する。コンフィグレーション時に、プログラマブルデバイス2は、メモリ3に記憶された回路データ6を読み込み、回路データ6が示す回路として動作できるようにする。従って、メモリ3に記憶される回路データ6を入れ替えることで、プログラマブルデバイス2の動作を変更することができる。

0017

メモリ3は、第1及び第2の領域4、5を含み、第1の領域4に回路データ6を記憶する。第1の領域4は、例えば、コンフィグレーション時にプログラマブルデバイス2が通常読み込むように設定された回路データ6を記憶するための記憶領域である。一方、第2の領域5は、例えば、コンフィグレーション時にプログラマブルデバイス2が参照しないか、回路データ6の格納用としては使用しない未使用領域である。

0018

制御部7は、回路データ6がメモリ3からプログラマブルデバイス2に読み込まれたことを検出する。さらに、制御部7は、回路データ6の読み込みを検出した後、第1の領域4の中から回路データの一部分6aを選択し、選択した一部分のデータ6aを第2の領域5に退避する。そして、制御部7は、第1の領域4の中の一部分のデータ6aを他のデータ8に書き換える。

0019

他のデータ8としては、例えば、一部分のデータ6aのビット値反転させたデータ、ランダムに生成したデータ、或いは、予め用意された固定のデータなどが利用される。一部分のデータ6aは第2の領域5に退避されているため、他のデータ8に書き換えられても、第1の領域4に記憶されているデータと第2の領域5に記憶されている一部分のデータ6aとを用いて元の回路データ6を復元することが可能である。

0020

また、プログラマブルデバイス2が回路データ6を読み込んだ後で、回路データ6の書き換えを実行するため、プログラマブルデバイス2は正常に動作する。その一方、回路データ6の一部分が他のデータ8に書き換えられるため、メモリ3が窃取され、他のプログラマブルデバイスに接続されても、他のプログラマブルデバイスは第1の領域4に記憶された回路データ6を読み込むため、意図した動作をしない。

0021

また、回路データ6の全体を書き換えているわけではないため、一見して回路データ6に秘匿化処理が施されていることは判明しにくく、不正に使用する者が秘匿化処理に気づいて秘匿化方法の解析を行うことを回避又は遅らせることができる。その結果、メモリ3が窃取されるなどして回路データ6が不正利用されるリスクを低減することが可能になる。

0022

以上、第1の実施の形態について説明した。
[第2の実施の形態]
第2の実施の形態について説明する。以下ではFPGAを例に挙げて説明するが、第2の実施の形態に係る技術は、ある記憶手段に格納された書き換え可能な回路情報に基づいて回路構成が決定される任意の集積回路に対して適用可能である。

0023

(FPGA及びその周辺回路
FPGAは、例えば、携帯電話パーソナルコンピュータ映像機器通信機器などの身近な電子機器の基板に搭載されている他、ワークステーションサーバと呼ばれる高性能コンピュータの基板にも搭載されている。基板のレイアウトや回路構成はデバイスの種類によって異なるが、以下では説明の都合上、図2のような単純化した基板の例を想定して説明を進める。図2は、第2の実施の形態に係るFPGAが配置された基板の例を示した図である。

0024

図2に示すように、基板10には、電源11と、コンフィグレーションメモリ12と、FPGA13とが搭載されている。電源11がオンになると、基板10に搭載されている回路に電力が供給される。コンフィグレーションメモリ12には、FPGA13の回路構成を決める回路情報が格納されている。FPGA13は、電源11がオンになり電力が供給されると初期化動作であるコンフィグレーションを実行する。このとき、FPGA13は、コンフィグレーションメモリ12から回路情報を読み出し、読み出した回路情報に基づいて自身の回路構成を設定する。以下、FPGA13の仕組みやコンフィグレーション時の動作に関する機能などについて順次説明する。

0025

(FPGAの仕組み)
FPGA13の仕組みについて説明する。FPGA13は、主に、汎用ロジック、I/O(Input/Output)エレメントPLL(Phase Locked Loop)ブロック、及びインターコネクトを含む。

0026

汎用ロジックは、後述するロジックエレメントの集合である。I/Oエレメントは、FPGA13の内部と外部とで信号をやり取りするための要素である。PLLブロックは、FPGA13内の要素が動作する際に用いるクロック信号を供給する回路である。インターコネクトは、FPGA13内部の要素を繋ぐ配線及び配線の接続関係を規定するパストランジスタである。

0027

なお、FPGA13には、マルチプライヤ、RAM(Random Access Memory)ブロック、プロセッサコアなどの要素が含まれていてもよい。マルチプライヤは、2つの値を高速乗算するための回路(乗算器)である。RAMブロックは、ソフトウェアやデータの格納に利用される。プロセッサコアは、例えば、RAMブロックに格納されたソフトウェアに基づいて処理を実行し、FPGA13の機能を拡張する目的などに利用される。

0028

ここで、図3を参照しながら、ロジックエレメントについてさらに説明する。図3は、第2の実施の形態に係るFPGAに含まれるロジックエレメントの例を示した図である。
図3に示したロジックエレメント20は3入力1出力型の回路である。つまり、3つの信号A、B、Cをロジックエレメント20に対して入力すると1つの出力OUTが得られる。ロジックエレメント20は、論理回路21及びレジスタ22を含む。論理回路21は、ルックアップテーブル(LUT:Look-Up Table)を有する。論理回路21は、入力値(A、B、C)の組み合わせと1つの出力値(OUT)とを対応付けたルックアップテーブルを参照し、入力値(A、B、C)の組み合わせに応じて出力値(OUT)を出力する。

0029

レジスタ22は、例えば、フリップフロップFF:FlipFlop)回路で形成される。レジスタ22のD入力には、論理回路21の出力値(OUT)が入力される。レジスタ22のクロック入力端子には、PLLブロックから供給されるクロック信号(CLK)が入力される。レジスタ22は、クロック信号(CLK)に応じたタイミングでD入力の値(OUT)をQ出力から出力する。なお、図3に示したロジックエレメント20の場合、論理回路21の出力値OUTがレジスタ22を介さずに出力される経路も設けられている。これらの出力値OUTは、インターコネクトを通じて他のロジックエレメント20に送られるか、I/Oエレメントを通じて外部に出力される。

0030

上記のように、ロジックエレメント20の入力値と出力値との関係(以下、論理)は、論理回路21が有するルックアップテーブルの内容に依存する。一例として、3入力のAND回路及びOR回路を形成する場合の論理回路21が有するルックアップテーブルについて図4及び図5を参照しながら説明する。

0031

図4は、第2の実施の形態に係るロジックエレメントに含まれるルックアップテーブルの例(3入力AND)を示した図である。この例では、入力値Aが0、入力値Bが0、入力値Cが1の場合、出力値OUTは0となる。同様に、入力値A、B、Cのうち少なくとも1つの値が0の場合、出力値OUTは0となる。一方、入力値A、B、Cが全て1の場合、出力値OUTは1となる。つまり、図4に例示した内容でルックアップテーブルが設定された場合、ロジックエレメント20は、3入力のAND回路として動作する。

0032

図5は、第2の実施の形態に係るロジックエレメントに含まれるルックアップテーブルの例(3入力OR)を示した図である。この例では、入力値Aが0、入力値Bが0、入力値Cが1の場合、出力値OUTは1となる。同様に、入力値A、B、Cのうち少なくとも1つの値が1の場合、出力値OUTは1となる。一方、入力値A、B、Cが全て0の場合、出力値OUTは0となる。つまり、図5に例示した内容でルックアップテーブルが設定された場合、ロジックエレメント20は、3入力のOR回路として動作する。

0033

上記のように、ロジックエレメント20は、論理回路21が有するルックアップテーブルの内容を書き換えることで論理を変更することができる。例えば、上述したAND回路やOR回路の他、NOT回路、XOR回路、NOR回路NAND回路、或いは、レジスタ回路として個々のロジックエレメント20を動作させることができる。さらに、インターコネクトのパストランジスタを切り替えることで、ロジックエレメント20間の接続関係が変更され、FPGA13全体として様々な機能を実現することができる。このような仕組みにより、FPGA13は、ルックアップテーブルの内容及びパストランジスタの設定内容に応じて所望の回路を自由に構築することができるのである。

0034

FPGA13に回路を構築する初期化動作はコンフィグレーションと呼ばれる。そして、コンフィグレーション時にFPGA13に与えられるルックアップテーブルの内容及びパストランジスタの設定内容はコンフィグレーションメモリ12に格納された回路情報に含まれる。以上説明した内容を踏まえ、第2の実施の形態に係るFPGA13についてさらに説明する。

0035

(第2の実施の形態に係るFPGAの例)
図6は、第2の実施の形態に係るFPGAの例を示したブロック図である。図6に示すように、第2の実施の形態に係るFPGA13は、入出力部31と、ユーザ回路32と、コンフィグレーション回路33と、不正防止回路34とを有する。

0036

入出力部31は、コンフィグレーションメモリ12に格納された情報にアクセスするためのインターフェースである。例えば、入出力部31は、コンフィグレーションメモリ12から回路情報を読み出す際に利用される。また、入出力部31は、コンフィグレーションメモリ12に格納された回路情報に変更を加える際に利用される。さらに、入出力部31は、コンフィグレーションメモリ12に情報を書き込む際に利用される。例えば、入出力部31は、I/Oエレメントなどの機能を利用して実現される。

0037

ユーザ回路32は、回路情報に基づいて論理が構築される集積回路である。ユーザ回路32は、ロジックエレメント20及びインターコネクトなどにより形成される。コンフィグレーション回路33は、回路情報に基づいてコンフィグレーションを実行する回路である。電源11がオンになると、コンフィグレーション回路33は、入出力部31を介してコンフィグレーションメモリ12から回路情報を読み出し、読み出した回路情報が示すルックアップテーブルの内容及びパストランジスタの設定内容でユーザ回路32に回路を構築する。また、コンフィグレーション回路33は、不正防止回路34による制御を受けて動作する場合もある。

0038

不正防止回路34は、コンフィグレーションメモリ12に格納された回路情報が窃取されて不正に利用されることを防止するために回路情報を書き換える回路である。不正防止回路34は、コンフィグレーションメモリ12に格納された回路情報の一部を書き換える。但し、不正防止回路34は、書き換え前の回路情報のうち、書き換え区間の回路情報をコンフィグレーションメモリ12の未使用領域に退避させる。なお、未使用領域とは、コンフィグレーション時にコンフィグレーション回路33が参照する回路情報を格納するための記憶領域(以下、使用領域)以外の記憶領域である。

0039

不正防止回路34は、コンフィグレーション時に、コンフィグレーションメモリ12に格納された回路情報を書き換え前の内容に復元させる。例えば、不正防止回路34は、コンフィグレーションメモリ12の未使用領域に退避させた書き換え区間の回路情報で、使用領域に格納されている回路情報の該当部分を上書きすることにより回路情報を書き換え前の内容に復元させる。そして、不正防止回路34は、コンフィグレーション回路33を制御して復元後の回路情報に基づくコンフィグレーションを実行させる。

0040

(不正防止回路の機能)
ここで、図7を参照しながら、不正防止回路34についてさらに説明する。図7は、第2の実施の形態に係る不正防止回路の機能を示したブロック図である。

0041

図7に示すように、不正防止回路34は、フラ管理部131と、書き換え部132と、記憶部133と、復元部134と、再実行指示部135とを有する。
(フラグ管理部131)
フラグ管理部131は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを変更する。例えば、フラグ管理部131は、コンフィグレーションメモリ12に格納された回路情報が書き換えられた際に書き換えフラグを1に設定する。また、フラグ管理部131は、コンフィグレーションメモリ12に格納された回路情報が書き換え前の内容に復元された際に書き換えフラグを0に設定する。このような設定を行うことにより、書き換えフラグを参照することで、コンフィグレーションメモリ12に格納された回路情報の書き換え済みか否かを容易に把握することが可能になる。

0042

(書き換え部132)
書き換え部132は、コンフィグレーション回路33によりコンフィグレーションメモリ12に格納された回路情報が読み込まれたことを検出し、コンフィグレーションメモリ12に格納された回路情報の一部を書き換える。回路情報の一部を書き換える際、書き換え部132は、書き換え区間を決定する。そして、書き換え部132は、コンフィグレーションメモリ12の使用領域において書き換え区間を特定するためのアドレス情報(例えば、開始位置及び終了位置を示すアドレス情報や、開始位置及び区間長を示す情報)を記憶部133に格納する。その後、書き換え部132は、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報(以下、復元用回路情報)を未使用領域に格納する。

0043

復元用回路情報を未使用領域に格納した書き換え部132は、使用領域に格納された回路情報の書き換え区間を書き換える。例えば、書き換え部132は、固定値で上書きする方法、ビット値を反転させる方法、ランダムなビット値で上書きする方法など、所定の方法で書き換え区間の回路情報を書き換える。回路情報を書き換えた書き換え部132は、書き換えが完了した旨をフラグ管理部131に通知する。

0044

(記憶部133)
記憶部133には、書き換え部132により回路情報の書き換え区間を示すアドレス情報などが格納される。例えば、記憶部133には、コンフィグレーションメモリ12の使用領域における書き換え区間の始点及び終点のアドレス情報が格納される。

0045

(復元部134)
復元部134は、書き換え後の回路情報を書き換え前の回路情報に復元する。復元部134は、記憶部133から書き換え区間を示すアドレス情報を読み出し、読み出したアドレス情報に基づいて書き換え区間を認識する。書き換え区間を認識した復元部134は、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出し、使用領域に格納された回路情報の書き換え区間を復元用回路情報で上書きして書き換え前の回路情報を復元する。回路情報を復元した復元部134は、回路情報の復元が完了した旨をフラグ管理部131及び再実行指示部135に通知する。

0046

(再実行指示部135)
再実行指示部135は、復元部134から通知を受けた場合に、コンフィグレーション回路33に対してコンフィグレーションを再実行するように指示する。コンフィグレーション回路33によるコンフィグレーションの再実行が完了した後、再実行指示部135は、書き換え部132に対してコンフィグレーションの再実行が完了した旨を通知する。

0047

以上、不正防止回路34の機能について説明した。
(コンフィグレーションメモリの内容)
ここで、図8を参照しながら、コンフィグレーションメモリ12に格納される情報についてさらに説明する。図8は、第2の実施の形態に係るコンフィグレーションメモリに格納される情報の例を示した図である。

0048

図8に示すように、コンフィグレーションメモリ12は、回路情報を格納するための使用領域と、使用領域以外の未使用領域とに分けられる。使用領域は、コンフィグレーション回路33によりアクセスされる領域である。一方、未使用領域は、予備的に設けられる領域である。なお、FPGA13にプロセッサコアなどを搭載している場合に、プロセッサコアなどがアクセス可能な領域として未使用領域が用意されることもある。

0049

使用領域には、回路情報が格納される。回路情報には、ロジックエレメント20のルックアップテーブルに格納する情報やパストランジスタの設定内容(パス情報)などが含まれる。また、使用領域には、回路情報のサイズや格納日時などが含まれるヘッダ情報や、回路情報に対する誤り検査符号CRC:Cyclic Redundancy Check)も格納される。使用領域のサイズは、例えば、ユーザ回路32の回路規模に応じて設定される。例えば、ユーザ回路32に含まれるルックアップテーブルの数やサイズ、或いは、パストランジスタの数に応じて回路情報のサイズが変わる。そのため、使用領域のサイズは、ユーザ回路32の回路規模に応じた回路情報のサイズを考慮して決められる。

0050

未使用領域には、少なくとも書き換えフラグ及び復元用回路情報が格納される。書き換えフラグは、例えば、1ビットの値(0又は1)で表現される。復元用回路情報は、使用領域の回路情報を書き換える際に未使用領域に退避させた書き換え区間の回路情報である。復元用回路情報のサイズは、回路情報を書き換える度に不正防止回路34により設定されるか、或いは、予めユーザにより設定される。但し、復元用回路情報のサイズは、未使用領域のサイズを考慮して決められる。なお、未使用領域をFPGA13に搭載されたプロセッサコアなどが使用する場合、未使用領域にはプロセッサコアが利用する情報も格納される。

0051

以上、コンフィグレーションメモリ12に格納される情報について説明した。
(コンフィグレーションメモリの書き換え動作)
ここで、回路情報の書き換え動作についてさらに説明する。図9は、第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第1の図である。

0052

回路情報の書き換えを行う場合、不正防止回路34は、所定の方法で回路情報の書き換え区間を決める。所定の方法としては、例えば、予め設定した同じ位置及び同じサイズの区間を書き換え区間とする方法が考えられる。また、書き換え区間のサイズを固定とし、書き換え区間の位置をランダムに決める方法が考えられる。さらに、書き換え区間の位置を固定とし、書き換え区間のサイズをランダムに決める方法が考えられる。そして、書き換え区間のサイズ及び位置をそれぞれランダムに決める方法が考えられる。

0053

その他、あるルックアップテーブルを有するロジックエレメント20が異なる論理で動作するように回路情報を書き換えることを意図して、あるルックアップテーブルの情報に対応する区間を書き換え区間に決める方法も考えられる。また、書き換え区間とする区間の候補を複数用意しておき、回路情報の書き換えを行う度にランダムに1つ又は複数の候補を選択して書き換え区間とする方法も考えられる。また、パストランジスタの設定内容を規定する区間だけを選択的に書き換え区間とする方法なども考えられる。

0054

上記のような方法で書き換え区間を決めた不正防止回路34は、書き換え区間のアドレス情報(例えば、開始アドレスa1及び終了アドレスa2など。)を保持する。なお、図9の例では連続する複数のビットを書き換え区間としているが、不連続な複数の区間を書き換え区間としてもよい。アドレス情報を保持した不正防止回路34は、書き換え区間の回路情報を復元用回路情報として未使用領域に格納する。そして、不正防止回路34は、図10に示すように、所定の書き換え方法で書き換え区間の回路情報を書き換える。図10は、第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第2の図である。

0055

所定の書き換え方法としては、図10に示すように、値を反転させる方法が考えられる。この方法では、書き換え区間に含まれる各ビットについてビット値1が0に変換され、ビット値0が1に変換される。なお、回路情報が3値(−1、0、+1)のシンボルで表現されている場合には、書き換え区間に含まれる各シンボルについてシンボル値−1が+1に変換され、シンボル値0はそのまま維持され、シンボル値+1が−1に変換される。値を反転させる方法の他にも、例えば、書き換え区間の値を全て固定値に書き換える方法やランダムに選択された値で上書きする方法などが考えられる。

0056

その他にも、あるルックアップテーブルを有するロジックエレメント20が異なる論理で動作するように回路情報を書き換える方法が考えられる。例えば、ロジックエレメント20を3入力のAND回路として動作させるルックアップテーブル(図4)の内容が記載された区間を、3入力のOR回路として動作させるルックアップテーブル(図5)の内容に書き換える方法が考えられる。この方法によれば、書き換え後の回路情報を用いてFPGA13を動作させた場合に、一見正常動作しているかのようにFPGA13が動作する可能性が高い。そのため、回路情報が書き換えられていることが露見しにくい。

0057

不正な目的でコンフィグレーションメモリ12を抜き取り、他のFPGAに接続して不正利用する者は、回路情報が書き換えられていることに気づくと何らかの方法で回路情報の復元を試みると考えられる。しかし、回路情報が書き換えられていることに気づかれなければ、回路情報の復元が試みられず、正しい回路情報が不正利用されるリスクが低下する。また、回路情報の書き換えを検出するための作業工程を不正利用者課すことで、不正利用の難易度を上げ、結果としてセキュリティを向上させることに寄与する。なお、ルックアップテーブルの書き換えに限らず、パストランジスタの設定内容などを変更して、正しい動作はしないが一見正常動作しているように見える動作をさせる回路情報に書き換える方法も考えられる。

0058

回路情報を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え後の状態を示す値)に変更する。書き換えフラグの変更を終えると、回路情報の書き換え動作は終了する。

0059

以上、回路情報の書き換え動作について説明した。
(コンフィグレーション時の動作(書き換えフラグ0の場合))
ここで、コンフィグレーション時におけるFPGA13の動作(書き換えフラグが0の場合)について説明する。図11は、第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第1のシーケンス図である。

0060

(S101)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。
(S102)コンフィグレーション回路33は、S101の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、ユーザ回路32に回路情報に基づく回路を構築する。

0061

(S103)回路の構築を終えたコンフィグレーション回路33は、ユーザ回路32に対する回路の構築を終えた旨を不正防止回路34に通知する。つまり、コンフィグレーション回路33は、コンフィグレーションの完了を不正防止回路34に通知する。

0062

(S104)コンフィグレーションの完了が通知された不正防止回路34は、コンフィグレーションメモリ12の未使用領域から書き換えフラグを読み出す。図11の例では書き換えフラグが0であるため、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報が未書き換えの状態にあると認識する。

0063

(S105)不正防止回路34は、回路情報の書き換え区間を決定し、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報を未使用領域に格納する。つまり、不正防止回路34は、書き換え区間の回路情報を復元用回路情報として未使用領域にバックアップする。

0064

(S106)復元用回路情報をバックアップした不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報の書き換え区間を書き換える。
(S107)回路情報の書き換え区間を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S107の動作を終えると、コンフィグレーション時におけるFPGA13の動作は終了する。

0065

(コンフィグレーション時の動作(書き換えフラグ1の場合))
次に、コンフィグレーション時におけるFPGA13の動作(書き換えフラグが1の場合)について説明する。図12は、第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第2のシーケンス図である。

0066

(S111)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。
(S112)コンフィグレーション回路33は、S111の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、ユーザ回路32に回路情報に基づく回路を構築する。

0067

(S113)回路の構築を終えたコンフィグレーション回路33は、ユーザ回路32に対する回路の構築を終えた旨を不正防止回路34に通知する。つまり、コンフィグレーション回路33は、コンフィグレーションの完了を不正防止回路34に通知する。

0068

(S114)コンフィグレーションの完了が通知された不正防止回路34は、コンフィグレーションメモリ12の未使用領域から書き換えフラグを読み出す。図12の例では書き換えフラグが1であるため、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報が書き換え済みの状態にあると認識する。

0069

(S115)不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出す。そして、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報の書き換え区間を復元用回路情報で上書きして書き換え前の回路情報を復元する。

0070

(S116)回路情報を復元した不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを0(未書き換えを示す値)に変更する。
(S117)書き換えフラグを0に変更した不正防止回路34は、コンフィグレーション回路33に対してコンフィグレーションを再実行するように指示する。つまり、不正防止回路34は、復元した回路情報に基づいて再度コンフィグレーションを実行するようにコンフィグレーション回路33を制御する。

0071

(S118)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。S118の動作で読み出される回路情報は、不正防止回路34により書き換え前の状態に復元された回路情報である。

0072

(S119)コンフィグレーション回路33は、S118の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、S115の動作で復元された回路情報に基づいてユーザ回路32に再び回路を構築する。

0073

(S120)回路の再構築を終えたコンフィグレーション回路33は、ユーザ回路32に対する回路の再構築を終えた旨を不正防止回路34に通知する。つまり、コンフィグレーション回路33は、コンフィグレーションの完了を不正防止回路34に通知する。

0074

(S121)コンフィグレーションの完了が通知された不正防止回路34は、コンフィグレーションメモリ12の未使用領域から書き換えフラグを読み出す。図12の例では書き換えフラグが0であるため、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報が未書き換えの状態にあると認識する。

0075

(S122)不正防止回路34は、回路情報の書き換え区間を決定し、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報を未使用領域に格納する。つまり、不正防止回路34は、書き換え区間の回路情報を復元用回路情報として未使用領域にバックアップする。

0076

(S123)復元用回路情報をバックアップした不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報の書き換え区間を書き換える。なお、回路情報の書き換え区間は、S115の処理で復元用回路情報を上書きした区間と異なる区間であってもよい。例えば、書き換え区間は、書き換えの度にランダムに選択されてもよい。

0077

(S124)回路情報の書き換え区間を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S123の動作を終えると、コンフィグレーション時におけるFPGA13の動作は終了する。

0078

(コンフィグレーション回路33の動作について)
次に、コンフィグレーション回路33の動作について、フロー図を参照しながら説明する。図13は、第2の実施の形態に係るコンフィグレーション回路の動作を示したフロー図である。

0079

(S201)コンフィグレーション回路33は、電源11がオンになったか否かを監視し、電源11がオンになったことを検知した場合に、S202の動作に移る。
(S202)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。

0080

(S203)コンフィグレーション回路33は、S202の動作で読み出した回路情報をユーザ回路32に設定して回路情報に基づく回路を構築する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。

0081

(S204)コンフィグレーション回路33は、コンフィグレーションを再実行する旨の指示を不正防止回路34から受信したか否かを判定する。不正防止回路34から指示を受信した場合、コンフィグレーション回路33は、S202の動作に移る。一方、不正防止回路34から指示を受信していない場合、コンフィグレーション回路33は、S205の動作に移る。

0082

(S205)コンフィグレーション回路33は、電源11がオフになったか否かを監視する。電源11がオフになったことを検知した場合、コンフィグレーション回路33は、動作を終了する。一方、電源11がオフの状態にない場合、コンフィグレーション回路33は、再びS204の動作に移る。

0083

以上、コンフィグレーション回路33の動作について説明した。
(不正防止回路34の動作について)
次に、不正防止回路34の動作について、フロー図を参照しながら説明する。図14は、第2の実施の形態に係る不正防止回路の動作を示した第1のフロー図である。

0084

(S211)不正防止回路34は、電源11がオンになったか否かを監視し、電源11がオンになったことを検知した場合に、S212の動作に移る。
(S212)不正防止回路34は、コンフィグレーションが完了したか否かを判定する。電源11がオンになった場合にコンフィグレーション回路33により実行されるコンフィグレーションが完了すると、不正防止回路34は、コンフィグレーションが完了した旨の通知をコンフィグレーション回路33から受信する。この通知を受信した場合、不正防止回路34は、S213の動作に移る。一方、この通知を受信していない場合、不正防止回路34は、再びS212の動作に移る。

0085

(S213)不正防止回路34は、フラグ管理部131により、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを読み出す。
(S214)不正防止回路34は、フラグ管理部131により、S213の動作で読み出した書き換えフラグが1(書き換え済みを示す値)であるか否かを判定する。書き換えフラグが1である場合、不正防止回路34は、S215の動作に移る。一方、書き換えフラグが0(未書き換えを示す値)である場合、不正防止回路34は、S217の動作に移る。

0086

(S215)不正防止回路34は、復元部134により、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を用いて、使用領域に格納された回路情報を書き換え前の内容に復元する。なお、S215の動作については、後段において図15を参照しながらさらに説明する。

0087

(S216)不正防止回路34は、再実行指示部135により、コンフィグレーション回路33に対して再度コンフィグレーションを実行するように指示する。
(S217)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された回路情報の一部(書き換え区間)を書き換える。なお、S217の動作については、後段において図16を参照しながらさらに説明する。S217の動作を終えると、コンフィグレーション時における不正防止回路34の動作は終了する。

0088

(回路情報の復元動作(S215)について)
ここで、回路情報の復元時における不正防止回路34の動作についてさらに説明する。図15は、第2の実施の形態に係る不正防止回路の動作を示した第2のフロー図である。

0089

(S221)回路情報の復元動作を開始した不正防止回路34は、復元部134により、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出す。

0090

(S222)復元用回路情報を読み出した不正防止回路34は、復元部134により、コンフィグレーションメモリ12の使用領域に格納されている回路情報の書き換え区間に復元用回路情報を上書きして書き換え前の回路情報を復元する。このとき、復元部134は、記憶部133に記憶されている回路情報の書き換え区間を示すアドレス情報を参照する。

0091

(S223)回路情報を復元した不正防止回路34は、フラグ管理部131により、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを0(書き換え済みを示す値)に変更する。S223の動作を終えると、回路情報の復元動作は終了する。

0092

(回路情報の書き換え動作(S217)について)
ここで、回路情報の書き換え時における不正防止回路34の動作についてさらに説明する。図16は、第2の実施の形態に係る不正防止回路の動作を示した第3のフロー図である。

0093

(S231)回路情報の書き換え動作を開始した不正防止回路34は、書き換え部132により、回路情報の書き換え区間を決定する。つまり、書き換え部132は、書き換え区間の位置及びサイズ(始点及び終点)を決定する。書き換え区間の決定方法としては、例えば、書き換え区間の位置及びサイズを予め設定された固定値に決める方法や、書き換え区間の位置及びサイズの一方又は両方をランダムに決める方法などが考えられる。その他にも、あるルックアップテーブルの情報が記載された区間を書き換え区間とする方法や、パストランジスタの設定内容を記載した区間を選択して書き換え区間とする方法などが考えられる。

0094

(S232)書き換え区間を決定した不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12における書き換え区間の位置を示すアドレス情報を記憶部133に保存する。

0095

(S233)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された書き換え前の回路情報のうち、書き換え区間の回路情報を復元用回路情報として未使用領域に格納する。つまり、書き換え部132は、書き換え区間の回路情報を未使用領域に退避させる。

0096

(S234)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報を書き換える。書き換え方法としては、例えば、書き換え区間のビット値又はシンボル値を反転させる方法や、予め設定した固定値で書き換え区間の値を上書きする方法が考えられる。その他にも、書き換え区間の回路情報がルックアップテーブルの内容を示す場合、そのルックアップテーブルで実現される論理とは異なる論理となるように書き換え区間の回路情報を書き換える方法などが考えられる。

0097

(S235)回路情報を書き換えた不正防止回路34は、フラグ管理部131により、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S235の動作を終えると、回路情報の書き換え動作は終了する。

0098

以上、不正防止回路34の動作について説明した。
[変形例:不正防止回路をFPGAの外部に設ける例]
ここで、第2の実施の形態に係るFPGA13の一変形例について説明する。図17は、第2の実施の形態に係る不正防止回路の一変形例を示した第1の図である。図18は、第2の実施の形態に係る不正防止回路の一変形例を示した第2の図である。これまで、FPGA13に不正防止回路34が設けられていることを前提に説明を進めてきた。しかし、図17及び図18に示すように、不正防止回路34をFPGA13とは別体として設けることも可能である。

0099

図17の例では、入出力部31及びコンフィグレーション回路33にアクセスできるように不正防止回路34が配線されている。この例は、コンフィグレーション回路33とコンフィグレーションメモリ12とを接続する配線に不正防止回路34の入出力を割り込ませる例である。一方、図18の例では、FPGA13とコンフィグレーションメモリ12とを接続する配線の途中に不正防止回路34が設けられている。このような変形例についても第2の実施の形態の技術的範囲に属する。

0100

以上、第2の実施の形態及びその変形例について説明した。第2の実施の形態によれば、コンフィグレーションメモリ12とは別に復元用回路情報を格納する記憶手段を設けなくとも、コンフィグレーションメモリ12の使用領域に格納される回路情報の秘匿化及び復元が可能になる。さらに、コンフィグレーションが完了した後は回路情報の一部が書き換えられるため、コンフィグレーションメモリ12が窃取されても、容易に不正利用されることがなくなる。つまり、第2の実施の形態によれば、記憶手段の追加による回路規模の増大を回避しつつ、回路情報の不正利用に対する耐性を向上させることができる。

0101

1電子機器
2プログラマブルデバイス
3メモリ
4 第1の領域
5 第2の領域
6回路データ
6a 一部分のデータ
7 制御部
8 他のデータ
10基板
11電源
12コンフィグレーションメモリ
13FPGA
20ロジックエレメント
21論理回路
22レジスタ
31入出力部
32ユーザ回路
33コンフィグレーション回路
34 不正防止回路
131フラグ管理部
132書き換え部
133 記憶部
134復元部
135再実行指示部

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 株式会社メガチップスの「 情報処理装置及び被判定装置の真贋判定方法」が 公開されました。( 2020/10/29)

    【課題】被判定装置の動作環境要素が変動した場合であっても、被判定装置の真贋判定を高精度に実行することが可能な、情報処理装置、プログラム及び被判定装置の真贋判定方法を提供する。【解決手段】メモリシステム... 詳細

  • 株式会社カシカの「 情報処理装置、システム及びプログラム」が 公開されました。( 2020/10/29)

    【課題】コンテンツを容易に悪用することを防止することのできる情報処理装置、システム及びプログラムを提供すること。【解決手段】本発明によれば、受付部と提供部とを備え、前記受付部は、通信可能な端末からの取... 詳細

  • 徳山真旭の「 情報処理システム、情報処理方法、及びプログラム」が 公開されました。( 2020/10/29)

    【課題】簡便にアプリケーションソフトウエアのライセンスを使い回すことができる情報処理システム、情報処理方法、及びプログラムを提供する。【解決手段】情報処理システム100は、アプリケーションソフトウエア... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ