JP6026324B2 - 電子機器、回路データ保護装置、及び回路データ保護方法 - Google Patents
電子機器、回路データ保護装置、及び回路データ保護方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Microcomputers (AREA)
- Logic Circuits (AREA)
Description
[第1の実施の形態]
第1の実施の形態について説明する。
図1に示すように、電子機器1は、プログラマブルデバイス2、メモリ3、及び制御部7を有する。プログラマブルデバイス2は、回路データ6に応じた回路として動作する。FPGAは、プログラマブルデバイス2の一例である。プログラマブルデバイス2は、動作時にコンフィグレーションと呼ばれる初期化を行い、自身の回路構成を設定する。コンフィグレーション時に、プログラマブルデバイス2は、メモリ3に記憶された回路データ6を読み込み、回路データ6が示す回路として動作できるようにする。従って、メモリ3に記憶される回路データ6を入れ替えることで、プログラマブルデバイス2の動作を変更することができる。
[第2の実施の形態]
第2の実施の形態について説明する。以下ではFPGAを例に挙げて説明するが、第2の実施の形態に係る技術は、ある記憶手段に格納された書き換え可能な回路情報に基づいて回路構成が決定される任意の集積回路に対して適用可能である。
FPGAは、例えば、携帯電話、パーソナルコンピュータ、映像機器、通信機器などの身近な電子機器の基板に搭載されている他、ワークステーションやサーバと呼ばれる高性能なコンピュータの基板にも搭載されている。基板のレイアウトや回路構成はデバイスの種類によって異なるが、以下では説明の都合上、図2のような単純化した基板の例を想定して説明を進める。図2は、第2の実施の形態に係るFPGAが配置された基板の例を示した図である。
FPGA13の仕組みについて説明する。FPGA13は、主に、汎用ロジック、I/O(Input/Output)エレメント、PLL(Phase Locked Loop)ブロック、及びインターコネクトを含む。
図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)を出力する。
図6は、第2の実施の形態に係るFPGAの例を示したブロック図である。図6に示すように、第2の実施の形態に係るFPGA13は、入出力部31と、ユーザ回路32と、コンフィグレーション回路33と、不正防止回路34とを有する。
ここで、図7を参照しながら、不正防止回路34についてさらに説明する。図7は、第2の実施の形態に係る不正防止回路の機能を示したブロック図である。
(フラグ管理部131)
フラグ管理部131は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを変更する。例えば、フラグ管理部131は、コンフィグレーションメモリ12に格納された回路情報が書き換えられた際に書き換えフラグを1に設定する。また、フラグ管理部131は、コンフィグレーションメモリ12に格納された回路情報が書き換え前の内容に復元された際に書き換えフラグを0に設定する。このような設定を行うことにより、書き換えフラグを参照することで、コンフィグレーションメモリ12に格納された回路情報の書き換え済みか否かを容易に把握することが可能になる。
書き換え部132は、コンフィグレーション回路33によりコンフィグレーションメモリ12に格納された回路情報が読み込まれたことを検出し、コンフィグレーションメモリ12に格納された回路情報の一部を書き換える。回路情報の一部を書き換える際、書き換え部132は、書き換え区間を決定する。そして、書き換え部132は、コンフィグレーションメモリ12の使用領域において書き換え区間を特定するためのアドレス情報(例えば、開始位置及び終了位置を示すアドレス情報や、開始位置及び区間長を示す情報)を記憶部133に格納する。その後、書き換え部132は、コンフィグレーションメモリ12の使用領域に格納された回路情報のうち、書き換え区間の回路情報(以下、復元用回路情報)を未使用領域に格納する。
記憶部133には、書き換え部132により回路情報の書き換え区間を示すアドレス情報などが格納される。例えば、記憶部133には、コンフィグレーションメモリ12の使用領域における書き換え区間の始点及び終点のアドレス情報が格納される。
復元部134は、書き換え後の回路情報を書き換え前の回路情報に復元する。復元部134は、記憶部133から書き換え区間を示すアドレス情報を読み出し、読み出したアドレス情報に基づいて書き換え区間を認識する。書き換え区間を認識した復元部134は、コンフィグレーションメモリ12の未使用領域に格納された復元用回路情報を読み出し、使用領域に格納された回路情報の書き換え区間を復元用回路情報で上書きして書き換え前の回路情報を復元する。回路情報を復元した復元部134は、回路情報の復元が完了した旨をフラグ管理部131及び再実行指示部135に通知する。
再実行指示部135は、復元部134から通知を受けた場合に、コンフィグレーション回路33に対してコンフィグレーションを再実行するように指示する。コンフィグレーション回路33によるコンフィグレーションの再実行が完了した後、再実行指示部135は、書き換え部132に対してコンフィグレーションの再実行が完了した旨を通知する。
(コンフィグレーションメモリの内容)
ここで、図8を参照しながら、コンフィグレーションメモリ12に格納される情報についてさらに説明する。図8は、第2の実施の形態に係るコンフィグレーションメモリに格納される情報の例を示した図である。
(コンフィグレーションメモリの書き換え動作)
ここで、回路情報の書き換え動作についてさらに説明する。図9は、第2の実施の形態に係るコンフィグレーション時のメモリ書き換え動作について説明した第1の図である。
(コンフィグレーション時の動作(書き換えフラグ0の場合))
ここで、コンフィグレーション時におけるFPGA13の動作(書き換えフラグが0の場合)について説明する。図11は、第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第1のシーケンス図である。
(S102)コンフィグレーション回路33は、S101の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、ユーザ回路32に回路情報に基づく回路を構築する。
(S107)回路情報の書き換え区間を書き換えた不正防止回路34は、コンフィグレーションメモリ12の未使用領域に格納された書き換えフラグを1(書き換え済みを示す値)に変更する。S107の動作を終えると、コンフィグレーション時におけるFPGA13の動作は終了する。
次に、コンフィグレーション時におけるFPGA13の動作(書き換えフラグが1の場合)について説明する。図12は、第2の実施の形態に係るFPGAのコンフィグレーション時における動作の例を示した第2のシーケンス図である。
(S112)コンフィグレーション回路33は、S111の動作で読み出した回路情報をユーザ回路32に設定する。例えば、コンフィグレーション回路33は、回路情報に含まれるルックアップテーブルの情報をユーザ回路32のロジックエレメント20が有するルックアップテーブルに書き込む。また、コンフィグレーション回路33は、回路情報に含まれるパストランジスタの設定内容に従ってユーザ回路32を形成するパストランジスタを設定する。つまり、コンフィグレーション回路33は、ユーザ回路32に回路情報に基づく回路を構築する。
(S117)書き換えフラグを0に変更した不正防止回路34は、コンフィグレーション回路33に対してコンフィグレーションを再実行するように指示する。つまり、不正防止回路34は、復元した回路情報に基づいて再度コンフィグレーションを実行するようにコンフィグレーション回路33を制御する。
次に、コンフィグレーション回路33の動作について、フロー図を参照しながら説明する。図13は、第2の実施の形態に係るコンフィグレーション回路の動作を示したフロー図である。
(S202)コンフィグレーション回路33は、コンフィグレーションメモリ12の使用領域に格納された回路情報を読み出す。
(不正防止回路34の動作について)
次に、不正防止回路34の動作について、フロー図を参照しながら説明する。図14は、第2の実施の形態に係る不正防止回路の動作を示した第1のフロー図である。
(S212)不正防止回路34は、コンフィグレーションが完了したか否かを判定する。電源11がオンになった場合にコンフィグレーション回路33により実行されるコンフィグレーションが完了すると、不正防止回路34は、コンフィグレーションが完了した旨の通知をコンフィグレーション回路33から受信する。この通知を受信した場合、不正防止回路34は、S213の動作に移る。一方、この通知を受信していない場合、不正防止回路34は、再びS212の動作に移る。
(S214)不正防止回路34は、フラグ管理部131により、S213の動作で読み出した書き換えフラグが1(書き換え済みを示す値)であるか否かを判定する。書き換えフラグが1である場合、不正防止回路34は、S215の動作に移る。一方、書き換えフラグが0(未書き換えを示す値)である場合、不正防止回路34は、S217の動作に移る。
(S217)不正防止回路34は、書き換え部132により、コンフィグレーションメモリ12の使用領域に格納された回路情報の一部(書き換え区間)を書き換える。なお、S217の動作については、後段において図16を参照しながらさらに説明する。S217の動作を終えると、コンフィグレーション時における不正防止回路34の動作は終了する。
ここで、回路情報の復元時における不正防止回路34の動作についてさらに説明する。図15は、第2の実施の形態に係る不正防止回路の動作を示した第2のフロー図である。
ここで、回路情報の書き換え時における不正防止回路34の動作についてさらに説明する。図16は、第2の実施の形態に係る不正防止回路の動作を示した第3のフロー図である。
[変形例:不正防止回路をFPGAの外部に設ける例]
ここで、第2の実施の形態に係るFPGA13の一変形例について説明する。図17は、第2の実施の形態に係る不正防止回路の一変形例を示した第1の図である。図18は、第2の実施の形態に係る不正防止回路の一変形例を示した第2の図である。これまで、FPGA13に不正防止回路34が設けられていることを前提に説明を進めてきた。しかし、図17及び図18に示すように、不正防止回路34をFPGA13とは別体として設けることも可能である。
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及び第2の領域を含み、前記第1の領域に前記回路データを記憶したメモリと、
前記回路データが前記メモリから前記プログラマブルデバイスに読み込まれたことを検出し、前記回路データの読み込みが検出された後、前記第1の領域の中から前記回路データの一部分を選択し、選択した一部分のデータを前記第2の領域に退避し、前記第1の領域の中の前記一部分のデータを他のデータに書き換える制御部と
を有する電子機器。 - 前記制御部は、前記回路データが前記メモリから前記プログラマブルデバイスに再び読み込まれるときに、前記第2の領域に退避された前記一部分のデータと前記第1の領域に記憶された前記他のデータ以外の部分のデータとに基づいて前記回路データを再現する
請求項1に記載の電子機器。 - 前記制御部は、前記第1の領域の中で前記一部分のデータが記憶されていた位置を示す位置情報を記憶する記憶部を有し、前記位置情報に基づいて前記回路データを再現する
請求項2に記載の電子機器。 - 前記制御部は、前記第1の領域の中の前記他のデータを前記第2の領域に退避された前記一部分のデータで上書きすることで前記第1の領域に前記回路データを再現し、前記プログラマブルデバイスが前記第1の領域から前記回路データを読み込むことを可能にする
請求項2又は3に記載の電子機器。 - 前記制御部は、前記他のデータに書き換えられる前記一部分のデータを、前記第1の領域の中からランダムに選択する
請求項1乃至4の何れか一項に記載の電子機器。 - 第1及び第2の領域を含み前記第1の領域に回路データを記憶したメモリから、前記回路データに応じた回路として動作するプログラマブルデバイスに、前記回路データが読み込まれたことを検出する検出部と、
前記回路データの読み込みが検出された後、前記第1の領域の中から前記回路データの一部分を選択し、選択した一部分のデータを前記第2の領域に退避し、前記第1の領域の中の前記一部分のデータを他のデータに書き換える書き換え部と
を有する回路データ保護装置。 - 回路データに応じた回路として動作するプログラマブルデバイスを備えた電子機器が実行する回路データ保護方法であって、
第1及び第2の領域を含み前記第1の領域に前記回路データを記憶したメモリから、前記プログラマブルデバイスに、前記回路データが読み込まれたことを検出し、
前記回路データの読み込みが検出された後、前記第1の領域の中から前記回路データの一部分を選択し、選択した一部分のデータを前記第2の領域に退避し、
前記第1の領域の中の前記一部分のデータを他のデータに書き換える
回路データ保護方法。
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)
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 |
-
2013
- 2013-03-14 JP JP2013051437A patent/JP6026324B2/ja active Active
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 |