JP6026324B2 - 電子機器、回路データ保護装置、及び回路データ保護方法 - Google Patents

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

Info

Publication number
JP6026324B2
JP6026324B2 JP2013051437A JP2013051437A JP6026324B2 JP 6026324 B2 JP6026324 B2 JP 6026324B2 JP 2013051437 A JP2013051437 A JP 2013051437A JP 2013051437 A JP2013051437 A JP 2013051437A JP 6026324 B2 JP6026324 B2 JP 6026324B2
Authority
JP
Japan
Prior art keywords
circuit
data
area
configuration
information
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.)
Active
Application number
JP2013051437A
Other languages
English (en)
Other versions
JP2014178809A (ja
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.)
Fujitsu Advanced Engineering Ltd
Original Assignee
Fujitsu Advanced Engineering Ltd
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 Fujitsu Advanced Engineering Ltd filed Critical Fujitsu Advanced Engineering Ltd
Priority to JP2013051437A priority Critical patent/JP6026324B2/ja
Publication of JP2014178809A publication Critical patent/JP2014178809A/ja
Application granted granted Critical
Publication of JP6026324B2 publication Critical patent/JP6026324B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Microcomputers (AREA)
  • Logic Circuits (AREA)

Description

本発明は、電子機器、回路データ保護装置、及び回路データ保護方法に関する。
最近の電子機器には、製造時までにハードウェアとしての回路構成が固定される通常の集積回路とは異なり、製造後に回路構成を変更できるプログラマブルデバイスが多く利用されている。プログラマブルデバイスは、リコンフィギュラブルデバイスやプログラマブルロジックデバイスと呼ばれることもある。プログラマブルデバイスの一例として、最近はFPGA(Field-Programmable Gate Array)が利用されることが多い。プログラマブルデバイスは、動作時にコンフィグレーションと呼ばれる初期化を行い、自身の回路構成を設定する。コンフィグレーションにおいては、プログラマブルデバイスは、コンフィグレーションメモリに記憶された回路データを読み込み、回路データが示す回路として動作できるようにする。コンフィグレーションメモリに記憶される回路データを入れ替えることで、プログラマブルデバイスの動作を変更することができる。
同じ種類のプログラマブルデバイスに同じ回路データを読み込ませれば、同じ動作を行う回路を再現することができる。また、回路データを解析すると、プログラマブルデバイスに実行させる信号処理のアルゴリズムを知ることができる場合がある。そのため、電子機器の供給者から許可を得ていない者が、電子機器に搭載されたコンフィグレーションメモリから回路データを窃取し、その電子機器以外の用途に回路データを利用してしまうおそれがある。例えば、窃取された回路データを流用して、その電子機器の模倣品が製造される可能性がある。また、例えば、回路データから信号処理のアルゴリズムが解析され、解析されたアルゴリズムを利用して別の電子機器が製造される可能性がある。
重要情報を秘匿する技術としては、次のようなものが提案されている。例えば、マイクロプロセッサと、ROM(Read Only Memory)などのプログラムメモリと、データ変換回路とを有するデバイスが提案されている。このプログラムメモリには、8次の原始多項式を用いて予め隠蔽化されたプログラムが記憶されている。マイクロプロセッサが隠蔽化されたプログラムを実行するときには、データ変換回路がハードウェア処理によって隠蔽化を解除する。また、例えば、プロセッサと不揮発性メモリとを繋ぐデータバスの途中に設けられるデータ処理装置が提案されている。このデータ処理装置は、プロセッサから複数の信号線を介して入力されるビット列の中で、ビット位置を所定の入れ替え方法に従って入れ替え、ビット位置が入れ替わったビット列を不揮発性メモリに保存する。
特開2001−265459号公報 特開2011−128663号公報
プログラマブルデバイスを設定するための回路データを保護する方法としては、上記の提案方法を採用して予め回路データを所定の秘匿化方法によって秘匿化し、秘匿化された回路データをメモリに格納しておく方法も考えられる。秘匿化された回路データは、その秘匿化方法に対応した変換回路を備えない電子機器ではそのまま利用することが難しい。
しかし、上記の提案方法を採用して回路データを秘匿化しても、秘匿化された回路データが解析されてしまうリスクが依然として存在する。すなわち、メモリの内容を見ると、意味のある回路データそのものではなく、所定の秘匿化方法によって全体が秘匿化されているものが格納されていることが判明しやすい。一方で、上記の提案方法では、電子機器に固定の変換回路が搭載されることになる。よって、回路データを窃取しようとする者に秘匿化方法を分析する動機を与え、回路データの解析という攻撃を受けやすくなる。
そして、固定の変換回路の存在を前提として予め秘匿化を行っておく上記の提案方法では、秘匿化方法が不正に解明されてしまうと、既に製造された電子機器が引き続き回路データを保護できるように柔軟に対応することは難しい。これは、同じ種類の変換回路を搭載した電子機器が数多く製造されるような場合に特に問題となる。
そこで、1つの側面では、本発明は、プログラマブルデバイスを設定するための回路データが解析されるリスクを低減することが可能な電子機器、回路データ保護装置、及び回路データ保護方法を提供することを目的とする。
1つの側面では、回路データに応じた回路として動作するプログラマブルデバイスと、第1及び第2の領域を含み、第1の領域に回路データを記憶したメモリと、回路データがメモリからプログラマブルデバイスに読み込まれたことを検出し、回路データの読み込みが検出された後、第1の領域の中から回路データの一部分を選択し、選択した一部分のデータを第2の領域に退避し、第1の領域の中の一部分のデータを他のデータに書き換える制御部とを有する電子機器が提供される。
他の1つの側面では、第1及び第2の領域を含み第1の領域に回路データを記憶したメモリから、回路データに応じた回路として動作するプログラマブルデバイスに、回路データが読み込まれたことを検出する検出部と、回路データの読み込みが検出された後、第1の領域の中から回路データの一部分を選択し、選択した一部分のデータを第2の領域に退避し、第1の領域の中の一部分のデータを他のデータに書き換える書き換え部とを有する回路データ保護装置が提供される。
他の1つの側面では、回路データに応じた回路として動作するプログラマブルデバイスを備えた電子機器が実行する回路データ保護方法が提供される。当該回路データ保護方法は、第1及び第2の領域を含み第1の領域に回路データを記憶したメモリから、プログラマブルデバイスに、回路データが読み込まれたことを検出し、回路データの読み込みが検出された後、第1の領域の中から回路データの一部分を選択し、選択した一部分のデータを第2の領域に退避し、第1の領域の中の一部分のデータを他のデータに書き換えるものである。
本発明の1つの側面によれば、プログラマブルデバイスを設定するための回路データが解析されるリスクを低減することが可能になる。
第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の図である。
以下、図面を参照しながら実施の形態について説明する。
[第1の実施の形態]
第1の実施の形態について説明する。
図1は、第1の実施の形態に係る不正防止装置の例を示した図である。
図1に示すように、電子機器1は、プログラマブルデバイス2、メモリ3、及び制御部7を有する。プログラマブルデバイス2は、回路データ6に応じた回路として動作する。FPGAは、プログラマブルデバイス2の一例である。プログラマブルデバイス2は、動作時にコンフィグレーションと呼ばれる初期化を行い、自身の回路構成を設定する。コンフィグレーション時に、プログラマブルデバイス2は、メモリ3に記憶された回路データ6を読み込み、回路データ6が示す回路として動作できるようにする。従って、メモリ3に記憶される回路データ6を入れ替えることで、プログラマブルデバイス2の動作を変更することができる。
メモリ3は、第1及び第2の領域4、5を含み、第1の領域4に回路データ6を記憶する。第1の領域4は、例えば、コンフィグレーション時にプログラマブルデバイス2が通常読み込むように設定された回路データ6を記憶するための記憶領域である。一方、第2の領域5は、例えば、コンフィグレーション時にプログラマブルデバイス2が参照しないか、回路データ6の格納用としては使用しない未使用領域である。
制御部7は、回路データ6がメモリ3からプログラマブルデバイス2に読み込まれたことを検出する。さらに、制御部7は、回路データ6の読み込みを検出した後、第1の領域4の中から回路データの一部分6aを選択し、選択した一部分のデータ6aを第2の領域5に退避する。そして、制御部7は、第1の領域4の中の一部分のデータ6aを他のデータ8に書き換える。
他のデータ8としては、例えば、一部分のデータ6aのビット値を反転させたデータ、ランダムに生成したデータ、或いは、予め用意された固定のデータなどが利用される。一部分のデータ6aは第2の領域5に退避されているため、他のデータ8に書き換えられても、第1の領域4に記憶されているデータと第2の領域5に記憶されている一部分のデータ6aとを用いて元の回路データ6を復元することが可能である。
また、プログラマブルデバイス2が回路データ6を読み込んだ後で、回路データ6の書き換えを実行するため、プログラマブルデバイス2は正常に動作する。その一方、回路データ6の一部分が他のデータ8に書き換えられるため、メモリ3が窃取され、他のプログラマブルデバイスに接続されても、他のプログラマブルデバイスは第1の領域4に記憶された回路データ6を読み込むため、意図した動作をしない。
また、回路データ6の全体を書き換えているわけではないため、一見して回路データ6に秘匿化処理が施されていることは判明しにくく、不正に使用する者が秘匿化処理に気づいて秘匿化方法の解析を行うことを回避又は遅らせることができる。その結果、メモリ3が窃取されるなどして回路データ6が不正利用されるリスクを低減することが可能になる。
以上、第1の実施の形態について説明した。
[第2の実施の形態]
第2の実施の形態について説明する。以下ではFPGAを例に挙げて説明するが、第2の実施の形態に係る技術は、ある記憶手段に格納された書き換え可能な回路情報に基づいて回路構成が決定される任意の集積回路に対して適用可能である。
(FPGA及びその周辺回路)
FPGAは、例えば、携帯電話、パーソナルコンピュータ、映像機器、通信機器などの身近な電子機器の基板に搭載されている他、ワークステーションやサーバと呼ばれる高性能なコンピュータの基板にも搭載されている。基板のレイアウトや回路構成はデバイスの種類によって異なるが、以下では説明の都合上、図2のような単純化した基板の例を想定して説明を進める。図2は、第2の実施の形態に係るFPGAが配置された基板の例を示した図である。
図2に示すように、基板10には、電源11と、コンフィグレーションメモリ12と、FPGA13とが搭載されている。電源11がオンになると、基板10に搭載されている回路に電力が供給される。コンフィグレーションメモリ12には、FPGA13の回路構成を決める回路情報が格納されている。FPGA13は、電源11がオンになり電力が供給されると初期化動作であるコンフィグレーションを実行する。このとき、FPGA13は、コンフィグレーションメモリ12から回路情報を読み出し、読み出した回路情報に基づいて自身の回路構成を設定する。以下、FPGA13の仕組みやコンフィグレーション時の動作に関する機能などについて順次説明する。
(FPGAの仕組み)
FPGA13の仕組みについて説明する。FPGA13は、主に、汎用ロジック、I/O(Input/Output)エレメント、PLL(Phase Locked Loop)ブロック、及びインターコネクトを含む。
汎用ロジックは、後述するロジックエレメントの集合である。I/Oエレメントは、FPGA13の内部と外部とで信号をやり取りするための要素である。PLLブロックは、FPGA13内の要素が動作する際に用いるクロック信号を供給する回路である。インターコネクトは、FPGA13内部の要素を繋ぐ配線及び配線の接続関係を規定するパストランジスタである。
なお、FPGA13には、マルチプライヤ、RAM(Random Access Memory)ブロック、プロセッサコアなどの要素が含まれていてもよい。マルチプライヤは、2つの値を高速で乗算するための回路(乗算器)である。RAMブロックは、ソフトウェアやデータの格納に利用される。プロセッサコアは、例えば、RAMブロックに格納されたソフトウェアに基づいて処理を実行し、FPGA13の機能を拡張する目的などに利用される。
ここで、図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)を出力する。
レジスタ22は、例えば、フリップフロップ(FF:FlipFlop)回路で形成される。レジスタ22のD入力には、論理回路21の出力値(OUT)が入力される。レジスタ22のクロック入力端子には、PLLブロックから供給されるクロック信号(CLK)が入力される。レジスタ22は、クロック信号(CLK)に応じたタイミングでD入力の値(OUT)をQ出力から出力する。なお、図3に示したロジックエレメント20の場合、論理回路21の出力値OUTがレジスタ22を介さずに出力される経路も設けられている。これらの出力値OUTは、インターコネクトを通じて他のロジックエレメント20に送られるか、I/Oエレメントを通じて外部に出力される。
上記のように、ロジックエレメント20の入力値と出力値との関係(以下、論理)は、論理回路21が有するルックアップテーブルの内容に依存する。一例として、3入力のAND回路及びOR回路を形成する場合の論理回路21が有するルックアップテーブルについて図4及び図5を参照しながら説明する。
図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回路として動作する。
図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回路として動作する。
上記のように、ロジックエレメント20は、論理回路21が有するルックアップテーブルの内容を書き換えることで論理を変更することができる。例えば、上述したAND回路やOR回路の他、NOT回路、XOR回路、NOR回路、NAND回路、或いは、レジスタ回路として個々のロジックエレメント20を動作させることができる。さらに、インターコネクトのパストランジスタを切り替えることで、ロジックエレメント20間の接続関係が変更され、FPGA13全体として様々な機能を実現することができる。このような仕組みにより、FPGA13は、ルックアップテーブルの内容及びパストランジスタの設定内容に応じて所望の回路を自由に構築することができるのである。
FPGA13に回路を構築する初期化動作はコンフィグレーションと呼ばれる。そして、コンフィグレーション時にFPGA13に与えられるルックアップテーブルの内容及びパストランジスタの設定内容はコンフィグレーションメモリ12に格納された回路情報に含まれる。以上説明した内容を踏まえ、第2の実施の形態に係るFPGA13についてさらに説明する。
(第2の実施の形態に係るFPGAの例)
図6は、第2の実施の形態に係るFPGAの例を示したブロック図である。図6に示すように、第2の実施の形態に係るFPGA13は、入出力部31と、ユーザ回路32と、コンフィグレーション回路33と、不正防止回路34とを有する。
入出力部31は、コンフィグレーションメモリ12に格納された情報にアクセスするためのインターフェースである。例えば、入出力部31は、コンフィグレーションメモリ12から回路情報を読み出す際に利用される。また、入出力部31は、コンフィグレーションメモリ12に格納された回路情報に変更を加える際に利用される。さらに、入出力部31は、コンフィグレーションメモリ12に情報を書き込む際に利用される。例えば、入出力部31は、I/Oエレメントなどの機能を利用して実現される。
ユーザ回路32は、回路情報に基づいて論理が構築される集積回路である。ユーザ回路32は、ロジックエレメント20及びインターコネクトなどにより形成される。コンフィグレーション回路33は、回路情報に基づいてコンフィグレーションを実行する回路である。電源11がオンになると、コンフィグレーション回路33は、入出力部31を介してコンフィグレーションメモリ12から回路情報を読み出し、読み出した回路情報が示すルックアップテーブルの内容及びパストランジスタの設定内容でユーザ回路32に回路を構築する。また、コンフィグレーション回路33は、不正防止回路34による制御を受けて動作する場合もある。
不正防止回路34は、コンフィグレーションメモリ12に格納された回路情報が窃取されて不正に利用されることを防止するために回路情報を書き換える回路である。不正防止回路34は、コンフィグレーションメモリ12に格納された回路情報の一部を書き換える。但し、不正防止回路34は、書き換え前の回路情報のうち、書き換え区間の回路情報をコンフィグレーションメモリ12の未使用領域に退避させる。なお、未使用領域とは、コンフィグレーション時にコンフィグレーション回路33が参照する回路情報を格納するための記憶領域(以下、使用領域)以外の記憶領域である。
不正防止回路34は、コンフィグレーション時に、コンフィグレーションメモリ12に格納された回路情報を書き換え前の内容に復元させる。例えば、不正防止回路34は、コンフィグレーションメモリ12の未使用領域に退避させた書き換え区間の回路情報で、使用領域に格納されている回路情報の該当部分を上書きすることにより回路情報を書き換え前の内容に復元させる。そして、不正防止回路34は、コンフィグレーション回路33を制御して復元後の回路情報に基づくコンフィグレーションを実行させる。
(不正防止回路の機能)
ここで、図7を参照しながら、不正防止回路34についてさらに説明する。図7は、第2の実施の形態に係る不正防止回路の機能を示したブロック図である。
図7に示すように、不正防止回路34は、フラグ管理部131と、書き換え部132と、記憶部133と、復元部134と、再実行指示部135とを有する。
(フラグ管理部131)
フラグ管理部131は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを変更する。例えば、フラグ管理部131は、コンフィグレーションメモリ12に格納された回路情報が書き換えられた際に書き換えフラグを1に設定する。また、フラグ管理部131は、コンフィグレーションメモリ12に格納された回路情報が書き換え前の内容に復元された際に書き換えフラグを0に設定する。このような設定を行うことにより、書き換えフラグを参照することで、コンフィグレーションメモリ12に格納された回路情報の書き換え済みか否かを容易に把握することが可能になる。
(書き換え部132)
書き換え部132は、コンフィグレーション回路33によりコンフィグレーションメモリ12に格納された回路情報が読み込まれたことを検出し、コンフィグレーションメモリ12に格納された回路情報の一部を書き換える。回路情報の一部を書き換える際、書き換え部132は、書き換え区間を決定する。そして、書き換え部132は、コンフィグレーションメモリ12の使用領域において書き換え区間を特定するためのアドレス情報(例えば、開始位置及び終了位置を示すアドレス情報や、開始位置及び区間長を示す情報)を記憶部133に格納する。その後、書き換え部132は、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報(以下、復元用回路情報)を未使用領域に格納する。
復元用回路情報を未使用領域に格納した書き換え部132は、使用領域に格納された回路情報の書き換え区間を書き換える。例えば、書き換え部132は、固定値で上書きする方法、ビット値を反転させる方法、ランダムなビット値で上書きする方法など、所定の方法で書き換え区間の回路情報を書き換える。回路情報を書き換えた書き換え部132は、書き換えが完了した旨をフラグ管理部131に通知する。
(記憶部133)
記憶部133には、書き換え部132により回路情報の書き換え区間を示すアドレス情報などが格納される。例えば、記憶部133には、コンフィグレーションメモリ12の使用領域における書き換え区間の始点及び終点のアドレス情報が格納される。
(復元部134)
復元部134は、書き換え後の回路情報を書き換え前の回路情報に復元する。復元部134は、記憶部133から書き換え区間を示すアドレス情報を読み出し、読み出したアドレス情報に基づいて書き換え区間を認識する。書き換え区間を認識した復元部134は、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出し、使用領域に格納された回路情報の書き換え区間を復元用回路情報で上書きして書き換え前の回路情報を復元する。回路情報を復元した復元部134は、回路情報の復元が完了した旨をフラグ管理部131及び再実行指示部135に通知する。
(再実行指示部135)
再実行指示部135は、復元部134から通知を受けた場合に、コンフィグレーション回路33に対してコンフィグレーションを再実行するように指示する。コンフィグレーション回路33によるコンフィグレーションの再実行が完了した後、再実行指示部135は、書き換え部132に対してコンフィグレーションの再実行が完了した旨を通知する。
以上、不正防止回路34の機能について説明した。
(コンフィグレーションメモリの内容)
ここで、図8を参照しながら、コンフィグレーションメモリ12に格納される情報についてさらに説明する。図8は、第2の実施の形態に係るコンフィグレーションメモリに格納される情報の例を示した図である。
図8に示すように、コンフィグレーションメモリ12は、回路情報を格納するための使用領域と、使用領域以外の未使用領域とに分けられる。使用領域は、コンフィグレーション回路33によりアクセスされる領域である。一方、未使用領域は、予備的に設けられる領域である。なお、FPGA13にプロセッサコアなどを搭載している場合に、プロセッサコアなどがアクセス可能な領域として未使用領域が用意されることもある。
使用領域には、回路情報が格納される。回路情報には、ロジックエレメント20のルックアップテーブルに格納する情報やパストランジスタの設定内容(パス情報)などが含まれる。また、使用領域には、回路情報のサイズや格納日時などが含まれるヘッダ情報や、回路情報に対する誤り検査符号(CRC:Cyclic Redundancy Check)も格納される。使用領域のサイズは、例えば、ユーザ回路32の回路規模に応じて設定される。例えば、ユーザ回路32に含まれるルックアップテーブルの数やサイズ、或いは、パストランジスタの数に応じて回路情報のサイズが変わる。そのため、使用領域のサイズは、ユーザ回路32の回路規模に応じた回路情報のサイズを考慮して決められる。
未使用領域には、少なくとも書き換えフラグ及び復元用回路情報が格納される。書き換えフラグは、例えば、1ビットの値(0又は1)で表現される。復元用回路情報は、使用領域の回路情報を書き換える際に未使用領域に退避させた書き換え区間の回路情報である。復元用回路情報のサイズは、回路情報を書き換える度に不正防止回路34により設定されるか、或いは、予めユーザにより設定される。但し、復元用回路情報のサイズは、未使用領域のサイズを考慮して決められる。なお、未使用領域をFPGA13に搭載されたプロセッサコアなどが使用する場合、未使用領域にはプロセッサコアが利用する情報も格納される。
以上、コンフィグレーションメモリ12に格納される情報について説明した。
(コンフィグレーションメモリの書き換え動作)
ここで、回路情報の書き換え動作についてさらに説明する。図9は、第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第1の図である。
回路情報の書き換えを行う場合、不正防止回路34は、所定の方法で回路情報の書き換え区間を決める。所定の方法としては、例えば、予め設定した同じ位置及び同じサイズの区間を書き換え区間とする方法が考えられる。また、書き換え区間のサイズを固定とし、書き換え区間の位置をランダムに決める方法が考えられる。さらに、書き換え区間の位置を固定とし、書き換え区間のサイズをランダムに決める方法が考えられる。そして、書き換え区間のサイズ及び位置をそれぞれランダムに決める方法が考えられる。
その他、あるルックアップテーブルを有するロジックエレメント20が異なる論理で動作するように回路情報を書き換えることを意図して、あるルックアップテーブルの情報に対応する区間を書き換え区間に決める方法も考えられる。また、書き換え区間とする区間の候補を複数用意しておき、回路情報の書き換えを行う度にランダムに1つ又は複数の候補を選択して書き換え区間とする方法も考えられる。また、パストランジスタの設定内容を規定する区間だけを選択的に書き換え区間とする方法なども考えられる。
上記のような方法で書き換え区間を決めた不正防止回路34は、書き換え区間のアドレス情報(例えば、開始アドレスa1及び終了アドレスa2など。)を保持する。なお、図9の例では連続する複数のビットを書き換え区間としているが、不連続な複数の区間を書き換え区間としてもよい。アドレス情報を保持した不正防止回路34は、書き換え区間の回路情報を復元用回路情報として未使用領域に格納する。そして、不正防止回路34は、図10に示すように、所定の書き換え方法で書き換え区間の回路情報を書き換える。図10は、第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第2の図である。
所定の書き換え方法としては、図10に示すように、値を反転させる方法が考えられる。この方法では、書き換え区間に含まれる各ビットについてビット値1が0に変換され、ビット値0が1に変換される。なお、回路情報が3値(−1、0、+1)のシンボルで表現されている場合には、書き換え区間に含まれる各シンボルについてシンボル値−1が+1に変換され、シンボル値0はそのまま維持され、シンボル値+1が−1に変換される。値を反転させる方法の他にも、例えば、書き換え区間の値を全て固定値に書き換える方法やランダムに選択された値で上書きする方法などが考えられる。
その他にも、あるルックアップテーブルを有するロジックエレメント20が異なる論理で動作するように回路情報を書き換える方法が考えられる。例えば、ロジックエレメント20を3入力のAND回路として動作させるルックアップテーブル(図4)の内容が記載された区間を、3入力のOR回路として動作させるルックアップテーブル(図5)の内容に書き換える方法が考えられる。この方法によれば、書き換え後の回路情報を用いてFPGA13を動作させた場合に、一見正常動作しているかのようにFPGA13が動作する可能性が高い。そのため、回路情報が書き換えられていることが露見しにくい。
不正な目的でコンフィグレーションメモリ12を抜き取り、他のFPGAに接続して不正利用する者は、回路情報が書き換えられていることに気づくと何らかの方法で回路情報の復元を試みると考えられる。しかし、回路情報が書き換えられていることに気づかれなければ、回路情報の復元が試みられず、正しい回路情報が不正利用されるリスクが低下する。また、回路情報の書き換えを検出するための作業工程を不正利用者に課すことで、不正利用の難易度を上げ、結果としてセキュリティを向上させることに寄与する。なお、ルックアップテーブルの書き換えに限らず、パストランジスタの設定内容などを変更して、正しい動作はしないが一見正常動作しているように見える動作をさせる回路情報に書き換える方法も考えられる。
回路情報を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え後の状態を示す値)に変更する。書き換えフラグの変更を終えると、回路情報の書き換え動作は終了する。
以上、回路情報の書き換え動作について説明した。
(コンフィグレーション時の動作(書き換えフラグ0の場合))
ここで、コンフィグレーション時におけるFPGA13の動作(書き換えフラグが0の場合)について説明する。図11は、第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第1のシーケンス図である。
(S101)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。
(S102)コンフィグレーション回路33は、S101の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、ユーザ回路32に回路情報に基づく回路を構築する。
(S103)回路の構築を終えたコンフィグレーション回路33は、ユーザ回路32に対する回路の構築を終えた旨を不正防止回路34に通知する。つまり、コンフィグレーション回路33は、コンフィグレーションの完了を不正防止回路34に通知する。
(S104)コンフィグレーションの完了が通知された不正防止回路34は、コンフィグレーションメモリ12の未使用領域から書き換えフラグを読み出す。図11の例では書き換えフラグが0であるため、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報が未書き換えの状態にあると認識する。
(S105)不正防止回路34は、回路情報の書き換え区間を決定し、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報を未使用領域に格納する。つまり、不正防止回路34は、書き換え区間の回路情報を復元用回路情報として未使用領域にバックアップする。
(S106)復元用回路情報をバックアップした不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報の書き換え区間を書き換える。
(S107)回路情報の書き換え区間を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S107の動作を終えると、コンフィグレーション時におけるFPGA13の動作は終了する。
(コンフィグレーション時の動作(書き換えフラグ1の場合))
次に、コンフィグレーション時におけるFPGA13の動作(書き換えフラグが1の場合)について説明する。図12は、第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第2のシーケンス図である。
(S111)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。
(S112)コンフィグレーション回路33は、S111の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、ユーザ回路32に回路情報に基づく回路を構築する。
(S113)回路の構築を終えたコンフィグレーション回路33は、ユーザ回路32に対する回路の構築を終えた旨を不正防止回路34に通知する。つまり、コンフィグレーション回路33は、コンフィグレーションの完了を不正防止回路34に通知する。
(S114)コンフィグレーションの完了が通知された不正防止回路34は、コンフィグレーションメモリ12の未使用領域から書き換えフラグを読み出す。図12の例では書き換えフラグが1であるため、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報が書き換え済みの状態にあると認識する。
(S115)不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出す。そして、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報の書き換え区間を復元用回路情報で上書きして書き換え前の回路情報を復元する。
(S116)回路情報を復元した不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを0(未書き換えを示す値)に変更する。
(S117)書き換えフラグを0に変更した不正防止回路34は、コンフィグレーション回路33に対してコンフィグレーションを再実行するように指示する。つまり、不正防止回路34は、復元した回路情報に基づいて再度コンフィグレーションを実行するようにコンフィグレーション回路33を制御する。
(S118)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。S118の動作で読み出される回路情報は、不正防止回路34により書き換え前の状態に復元された回路情報である。
(S119)コンフィグレーション回路33は、S118の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、S115の動作で復元された回路情報に基づいてユーザ回路32に再び回路を構築する。
(S120)回路の再構築を終えたコンフィグレーション回路33は、ユーザ回路32に対する回路の再構築を終えた旨を不正防止回路34に通知する。つまり、コンフィグレーション回路33は、コンフィグレーションの完了を不正防止回路34に通知する。
(S121)コンフィグレーションの完了が通知された不正防止回路34は、コンフィグレーションメモリ12の未使用領域から書き換えフラグを読み出す。図12の例では書き換えフラグが0であるため、不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報が未書き換えの状態にあると認識する。
(S122)不正防止回路34は、回路情報の書き換え区間を決定し、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報を未使用領域に格納する。つまり、不正防止回路34は、書き換え区間の回路情報を復元用回路情報として未使用領域にバックアップする。
(S123)復元用回路情報をバックアップした不正防止回路34は、コンフィグレーションメモリ12の使用領域に格納された回路情報の書き換え区間を書き換える。なお、回路情報の書き換え区間は、S115の処理で復元用回路情報を上書きした区間と異なる区間であってもよい。例えば、書き換え区間は、書き換えの度にランダムに選択されてもよい。
(S124)回路情報の書き換え区間を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S123の動作を終えると、コンフィグレーション時におけるFPGA13の動作は終了する。
(コンフィグレーション回路33の動作について)
次に、コンフィグレーション回路33の動作について、フロー図を参照しながら説明する。図13は、第2の実施の形態に係るコンフィグレーション回路の動作を示したフロー図である。
(S201)コンフィグレーション回路33は、電源11がオンになったか否かを監視し、電源11がオンになったことを検知した場合に、S202の動作に移る。
(S202)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。
(S203)コンフィグレーション回路33は、S202の動作で読み出した回路情報をユーザ回路32に設定して回路情報に基づく回路を構築する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。
(S204)コンフィグレーション回路33は、コンフィグレーションを再実行する旨の指示を不正防止回路34から受信したか否かを判定する。不正防止回路34から指示を受信した場合、コンフィグレーション回路33は、S202の動作に移る。一方、不正防止回路34から指示を受信していない場合、コンフィグレーション回路33は、S205の動作に移る。
(S205)コンフィグレーション回路33は、電源11がオフになったか否かを監視する。電源11がオフになったことを検知した場合、コンフィグレーション回路33は、動作を終了する。一方、電源11がオフの状態にない場合、コンフィグレーション回路33は、再びS204の動作に移る。
以上、コンフィグレーション回路33の動作について説明した。
(不正防止回路34の動作について)
次に、不正防止回路34の動作について、フロー図を参照しながら説明する。図14は、第2の実施の形態に係る不正防止回路の動作を示した第1のフロー図である。
(S211)不正防止回路34は、電源11がオンになったか否かを監視し、電源11がオンになったことを検知した場合に、S212の動作に移る。
(S212)不正防止回路34は、コンフィグレーションが完了したか否かを判定する。電源11がオンになった場合にコンフィグレーション回路33により実行されるコンフィグレーションが完了すると、不正防止回路34は、コンフィグレーションが完了した旨の通知をコンフィグレーション回路33から受信する。この通知を受信した場合、不正防止回路34は、S213の動作に移る。一方、この通知を受信していない場合、不正防止回路34は、再びS212の動作に移る。
(S213)不正防止回路34は、フラグ管理部131により、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを読み出す。
(S214)不正防止回路34は、フラグ管理部131により、S213の動作で読み出した書き換えフラグが1(書き換え済みを示す値)であるか否かを判定する。書き換えフラグが1である場合、不正防止回路34は、S215の動作に移る。一方、書き換えフラグが0(未書き換えを示す値)である場合、不正防止回路34は、S217の動作に移る。
(S215)不正防止回路34は、復元部134により、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を用いて、使用領域に格納された回路情報を書き換え前の内容に復元する。なお、S215の動作については、後段において図15を参照しながらさらに説明する。
(S216)不正防止回路34は、再実行指示部135により、コンフィグレーション回路33に対して再度コンフィグレーションを実行するように指示する。
(S217)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された回路情報の一部(書き換え区間)を書き換える。なお、S217の動作については、後段において図16を参照しながらさらに説明する。S217の動作を終えると、コンフィグレーション時における不正防止回路34の動作は終了する。
(回路情報の復元動作(S215)について)
ここで、回路情報の復元時における不正防止回路34の動作についてさらに説明する。図15は、第2の実施の形態に係る不正防止回路の動作を示した第2のフロー図である。
(S221)回路情報の復元動作を開始した不正防止回路34は、復元部134により、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出す。
(S222)復元用回路情報を読み出した不正防止回路34は、復元部134により、コンフィグレーションメモリ12の使用領域に格納されている回路情報の書き換え区間に復元用回路情報を上書きして書き換え前の回路情報を復元する。このとき、復元部134は、記憶部133に記憶されている回路情報の書き換え区間を示すアドレス情報を参照する。
(S223)回路情報を復元した不正防止回路34は、フラグ管理部131により、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを0(書き換え済みを示す値)に変更する。S223の動作を終えると、回路情報の復元動作は終了する。
(回路情報の書き換え動作(S217)について)
ここで、回路情報の書き換え時における不正防止回路34の動作についてさらに説明する。図16は、第2の実施の形態に係る不正防止回路の動作を示した第3のフロー図である。
(S231)回路情報の書き換え動作を開始した不正防止回路34は、書き換え部132により、回路情報の書き換え区間を決定する。つまり、書き換え部132は、書き換え区間の位置及びサイズ(始点及び終点)を決定する。書き換え区間の決定方法としては、例えば、書き換え区間の位置及びサイズを予め設定された固定値に決める方法や、書き換え区間の位置及びサイズの一方又は両方をランダムに決める方法などが考えられる。その他にも、あるルックアップテーブルの情報が記載された区間を書き換え区間とする方法や、パストランジスタの設定内容を記載した区間を選択して書き換え区間とする方法などが考えられる。
(S232)書き換え区間を決定した不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12における書き換え区間の位置を示すアドレス情報を記憶部133に保存する。
(S233)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された書き換え前の回路情報のうち、書き換え区間の回路情報を復元用回路情報として未使用領域に格納する。つまり、書き換え部132は、書き換え区間の回路情報を未使用領域に退避させる。
(S234)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報を書き換える。書き換え方法としては、例えば、書き換え区間のビット値又はシンボル値を反転させる方法や、予め設定した固定値で書き換え区間の値を上書きする方法が考えられる。その他にも、書き換え区間の回路情報がルックアップテーブルの内容を示す場合、そのルックアップテーブルで実現される論理とは異なる論理となるように書き換え区間の回路情報を書き換える方法などが考えられる。
(S235)回路情報を書き換えた不正防止回路34は、フラグ管理部131により、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S235の動作を終えると、回路情報の書き換え動作は終了する。
以上、不正防止回路34の動作について説明した。
[変形例:不正防止回路をFPGAの外部に設ける例]
ここで、第2の実施の形態に係るFPGA13の一変形例について説明する。図17は、第2の実施の形態に係る不正防止回路の一変形例を示した第1の図である。図18は、第2の実施の形態に係る不正防止回路の一変形例を示した第2の図である。これまで、FPGA13に不正防止回路34が設けられていることを前提に説明を進めてきた。しかし、図17及び図18に示すように、不正防止回路34をFPGA13とは別体として設けることも可能である。
図17の例では、入出力部31及びコンフィグレーション回路33にアクセスできるように不正防止回路34が配線されている。この例は、コンフィグレーション回路33とコンフィグレーションメモリ12とを接続する配線に不正防止回路34の入出力を割り込ませる例である。一方、図18の例では、FPGA13とコンフィグレーションメモリ12とを接続する配線の途中に不正防止回路34が設けられている。このような変形例についても第2の実施の形態の技術的範囲に属する。
以上、第2の実施の形態及びその変形例について説明した。第2の実施の形態によれば、コンフィグレーションメモリ12とは別に復元用回路情報を格納する記憶手段を設けなくとも、コンフィグレーションメモリ12の使用領域に格納される回路情報の秘匿化及び復元が可能になる。さらに、コンフィグレーションが完了した後は回路情報の一部が書き換えられるため、コンフィグレーションメモリ12が窃取されても、容易に不正利用されることがなくなる。つまり、第2の実施の形態によれば、記憶手段の追加による回路規模の増大を回避しつつ、回路情報の不正利用に対する耐性を向上させることができる。
1 電子機器
2 プログラマブルデバイス
3 メモリ
4 第1の領域
5 第2の領域
6 回路データ
6a 一部分のデータ
7 制御部
8 他のデータ
10 基板
11 電源
12 コンフィグレーションメモリ
13 FPGA
20 ロジックエレメント
21 論理回路
22 レジスタ
31 入出力部
32 ユーザ回路
33 コンフィグレーション回路
34 不正防止回路
131 フラグ管理部
132 書き換え部
133 記憶部
134 復元部
135 再実行指示部

Claims (7)

  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の領域の中の前記一部分のデータを他のデータに書き換える
    回路データ保護方法。
JP2013051437A 2013-03-14 2013-03-14 電子機器、回路データ保護装置、及び回路データ保護方法 Active JP6026324B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013051437A JP6026324B2 (ja) 2013-03-14 2013-03-14 電子機器、回路データ保護装置、及び回路データ保護方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013051437A JP6026324B2 (ja) 2013-03-14 2013-03-14 電子機器、回路データ保護装置、及び回路データ保護方法

Publications (2)

Publication Number Publication Date
JP2014178809A JP2014178809A (ja) 2014-09-25
JP6026324B2 true JP6026324B2 (ja) 2016-11-16

Family

ID=51698713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013051437A Active JP6026324B2 (ja) 2013-03-14 2013-03-14 電子機器、回路データ保護装置、及び回路データ保護方法

Country Status (1)

Country Link
JP (1) JP6026324B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001268071A (ja) * 2000-03-16 2001-09-28 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 耐タンパー暗号装置
JP2002049446A (ja) * 2000-08-02 2002-02-15 Pfu Ltd ダウンロードケーブル
US6931543B1 (en) * 2000-11-28 2005-08-16 Xilinx, Inc. Programmable logic device with decryption algorithm and decryption key
US6920627B2 (en) * 2002-12-13 2005-07-19 Xilinx, Inc. Reconfiguration of a programmable logic device using internal control
WO2006071380A2 (en) * 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
JP4831957B2 (ja) * 2004-12-02 2011-12-07 ルネサスエレクトロニクス株式会社 コピー防止回路装置およびコピー防止方法
JP2007109157A (ja) * 2005-10-17 2007-04-26 Canon Inc ソフトウェア配布システム
JP4970109B2 (ja) * 2007-03-30 2012-07-04 Kddi株式会社 論理プログラマブルデバイスの復旧装置
FR2935078B1 (fr) * 2008-08-12 2012-11-16 Groupe Des Ecoles De Telecommunications Get Ecole Nationale Superieure Des Telecommunications Enst Procede de protection du decryptage des fichiers de configuration de circuits logiques programmables et circuit mettant en oeuvre le procede

Also Published As

Publication number Publication date
JP2014178809A (ja) 2014-09-25

Similar Documents

Publication Publication Date Title
JP5535547B2 (ja) セキュアメモリインターフェース
US6160734A (en) Method for ensuring security of program data in one-time programmable memory
US7827326B2 (en) Method and apparatus for delegation of secure operating mode access privilege from processor to peripheral
US8606982B2 (en) Derivative logical output
CN102053818B (zh) 分支预测方法及装置
JP2007293856A (ja) プログラマブルデバイスに対するソフトエラーロケーションおよび感度検出
EP1172731B1 (en) Data processing apparatus and integrated circuit
US7512813B2 (en) Method for system level protection of field programmable logic devices
US10223110B2 (en) Central processing unit and arithmetic unit
JP2017058873A (ja) 半導体装置
CN104662548A (zh) 用于嵌入式代码的保护方案
US20100194609A1 (en) Method and Device For Coding Data Words
CN112069551A (zh) 电子电路
CN103413097B (zh) 加密方法、装置及安全芯片
EP3435586B1 (en) Method to reduce aging of a cache memory
JP6026324B2 (ja) 電子機器、回路データ保護装置、及び回路データ保護方法
US10999058B2 (en) System-on-chip and security circuit including a system-on-chip of this type
JP2008310896A (ja) 不揮発性記憶装置、不揮発性記憶システムおよび不揮発性記憶装置の制御方法
JP2008040585A (ja) マイクロコンピュータ
CN111125791B (zh) 一种内存数据的加密方法、装置、cpu芯片及服务器
JP4323527B2 (ja) 半導体記憶装置
JP6054753B2 (ja) 半導体装置及びデータアクセス方法
JP2000181802A (ja) 半導体記憶装置
US20080177982A1 (en) Memory And Accessing Method Thereof
JP2010122787A (ja) 半導体集積回路及びレジスタアドレス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160913

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161012

R150 Certificate of patent or registration of utility model

Ref document number: 6026324

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350