(57)【要約】【課題】保護対象とする情報が流出するリスクを低減可能な集積回路を提供する。【解決手段】集積回路１は、プログラムに従って動作するＣＰＵ１０と、電源が供給されている間、ＰＵＦ情報を出力するＰＵＦ情報出力部１１と、電源が供給されている間、ＰＵＦ情報に基づく公開鍵及び秘密鍵を出力するキーペア出力部１２と、キーペア出力部１２から出力されている公開鍵を外部に送信する公開鍵送信部１３と、外部から受信した、公開鍵で暗号化された被暗号化情報を、キーペア出力部１２から出力されている秘密鍵で復号する共有鍵復号部１４と、を備えている。【選択図】図２
2019121884.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに従って動作する制御部と、
電源が供給されている間、ＰＵＦ情報を出力するＰＵＦ情報出力部と、
電源が供給されている間、前記ＰＵＦ情報に基づく公開鍵及び秘密鍵を出力するキーペア出力部と、
前記キーペア出力部から出力されている前記公開鍵を外部に送信する公開鍵送信部と、
外部から受信した、前記公開鍵で暗号化された被暗号化情報を、前記キーペア出力部から出力されている前記秘密鍵で復号する復号部と、
を備える集積回路。
【請求項２】
前記公開鍵送信部は、
出荷前の段階で、前記キーペア出力部から出力されている前記公開鍵を外部に送信し、
前記復号部は、
出荷後の段階で、外部から受信した前記被暗号化情報を、前記キーペア出力部から出力されている前記秘密鍵で復号する
請求項１に記載の集積回路。
【請求項３】
前記復号部は、
前記被暗号化情報として、保護対象情報を暗号化する共有暗号鍵を、前記キーペア出力部から出力されている前記秘密鍵で復号する
請求項１又は請求項２に記載の集積回路。
【請求項４】
不揮発性メモリを更に備え、
前記制御部は、
出荷前の段階で、前記キーペア出力部から出力されている前記公開鍵を前記不揮発性メモリに記録し、
出荷後の段階で、前記キーペア出力部から出力されている前記公開鍵が、前記不揮発性メモリに記録された前記公開鍵と一致するか否かを判定し、
当該判定の結果に基づいて、出荷後において前記キーペア出力部から前記秘密鍵が正しく出力されているか否かを判定する
請求項１から請求項３の何れか一項に記載の集積回路。
【請求項５】
前記ＰＵＦ情報出力部は、
出荷後において前記キーペア出力部から正しい前記秘密鍵が出力されていない場合に、出力している前記ＰＵＦ情報の一部を変更してなる変更後ＰＵＦ情報を出力し、
前記キーペア出力部は、
前記変更後ＰＵＦ情報に基づく変更後公開鍵及び変更後秘密鍵を出力し、
前記制御部は、
前記キーペア出力部から出力されている前記変更後公開鍵が、前記不揮発性メモリに記録された前記公開鍵と一致するか否かを判定し、
前記復号部は、
前記変更後公開鍵が、前記不揮発性メモリに記録された前記公開鍵と一致する場合に、外部から受信した前記被暗号化情報を、前記変更後秘密鍵で復号する
請求項４に記載の集積回路。
【請求項６】
不正な干渉を検知する耐タンパ検知部と、
前記不正な干渉が検知された場合に、電源の供給を遮断する電源管理部と、
を更に備える請求項１から請求項５の何れか一項に記載の集積回路。
【請求項７】
請求項１から請求項６の何れか一項に記載の集積回路を具備する制御装置。
【請求項８】
請求項１から請求項６の何れか一項に記載の集積回路に情報を配信する情報配信方法であって、
前記集積回路の出荷前の段階において、前記集積回路に電源を供給して、ＰＵＦ情報に基づく公開鍵を外部に送信させるステップと、
前記集積回路から受信した前記公開鍵で暗号化された被暗号化情報を生成するステップと、
前記集積回路の出荷後の段階において、当該集積回路に電源を供給して、外部から前記被暗号化情報を受信させるとともに、前記ＰＵＦ情報に基づく前記秘密鍵で前記被暗号化情報を復号させるステップと、
を有する情報配信方法。
【請求項９】
請求項１から請求項６の何れか一項に記載の集積回路と、
情報配信装置と、を備え、
前記情報配信装置は、
前記集積回路から受信した前記公開鍵を記録し、
記録した前記公開鍵を用いて前記被暗号化情報を生成するとともに、前記集積回路に対し、当該被暗号化情報を配信する
情報配信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路、制御装置、情報配信方法及び情報配信システムに関する。
【背景技術】
【０００２】
組込みシステムのソフトウェアを保護する手法として、ＴＰＭ（Trusted Platform Module）を使った暗号化による保護や、環境変化を検知してソフトウェアを消去する手法が提案されている。また、物理的複製困難関数（Physically Unclonable Function；ＰＵＦ）と呼ばれる、半導体チップの製造ばらつき、物理特性の違いなどの物理量を当該半導体チップの固有値として出力し、その真贋判定に用いることが提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１８２０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ある組込みシステムにおいて、制御装置の制御プログラムはメーカーの国内工場等で開発管理される一方、制御装置のハードウェアは海外の生産拠点等で生産されるケースがある。この場合、メーカーは、広域通信ネットワークを介して、国内工場等で開発した制御プログラムを海外の生産拠点に配信し、当該生産拠点にてハードウェアに実装することになる。しかし、制御プログラムの海外への配信に際し、第三者に盗聴される可能性がある。制御プログラムが盗聴され、詳細に解析されることによってメーカーのノウハウが流出するリスクが懸念される。
【０００５】
本発明の目的は、制御プログラム等の保護対象とする情報が流出するリスクを低減可能な集積回路、制御装置、情報配信方法及び情報配信システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、集積回路は、プログラムに従って動作する制御部と、電源が供給されている間、ＰＵＦ情報を出力するＰＵＦ情報出力部と、電源が供給されている間、前記ＰＵＦ情報に基づく公開鍵及び秘密鍵を出力するキーペア出力部と、前記キーペア出力部から出力されている前記公開鍵を外部に送信する公開鍵送信部と、外部から受信した、前記公開鍵で暗号化された被暗号化情報を、前記キーペア出力部から出力されている前記秘密鍵で復号する復号部と、を備える。
【０００７】
また、本発明の第２の態様によれば、前記公開鍵送信部は、出荷前の段階で、前記キーペア出力部から出力されている前記公開鍵を外部に送信し、前記復号部は、出荷後の段階で、外部から受信した前記被暗号化情報を、前記キーペア出力部から出力されている前記秘密鍵で復号する。
【０００８】
また、本発明の第３の態様によれば、前記復号部は、前記被暗号化情報として、保護対象情報を暗号化する共有暗号鍵を、前記キーペア出力部から出力されている前記秘密鍵で復号する。
【０００９】
また、本発明の第４の態様によれば、上記集積回路は、不揮発性メモリを更に備え、前記制御部は、出荷前の段階で、前記キーペア出力部から出力されている前記公開鍵を前記不揮発性メモリに記録し、出荷後の段階で、前記キーペア出力部から出力されている前記公開鍵が、前記不揮発性メモリに記録された前記公開鍵と一致するか否かを判定し、当該判定の結果に基づいて、出荷後において前記キーペア出力部から前記秘密鍵が正しく出力されているか否かを判定する。
【００１０】
また、本発明の第５の態様によれば、前記ＰＵＦ情報出力部は、出荷後において前記キーペア出力部から正しい前記秘密鍵が出力されていない場合に、出力している前記ＰＵＦ情報の一部を変更してなる変更後ＰＵＦ情報を出力し、前記キーペア出力部は、前記変更後ＰＵＦ情報に基づく変更後公開鍵及び変更後秘密鍵を出力し、前記制御部は、前記キーペア出力部から出力されている前記変更後公開鍵が、前記不揮発性メモリに記録された前記公開鍵と一致するか否かを判定し、前記復号部は、前記変更後公開鍵が、前記不揮発性メモリに記録された前記公開鍵と一致する場合に、外部から受信した前記被暗号化情報を、前記変更後秘密鍵で復号する。
【００１１】
また、本発明の第６の態様によれば、不正な干渉を検知する耐タンパ検知部と、前記不正な干渉が検知された場合に、電源の供給を遮断する電源管理部と、を更に備える第１から第５の何れかの態様に記載の集積回路である。
【００１２】
また、本発明の第７の態様によれば、制御装置は、上記に記載の集積回路を具備する。
【００１３】
また、本発明の第８の態様によれば、配信方法は、上記に記載の集積回路に情報を配信する情報配信方法であって、前記集積回路の出荷前の段階において、前記集積回路に電源を供給して、ＰＵＦ情報に基づく公開鍵を外部に送信させるステップと、前記集積回路から受信した前記公開鍵で暗号化された被暗号化情報を生成するステップと、前記集積回路の出荷後の段階において、当該集積回路に電源を供給して、外部から前記被暗号化情報を受信させるとともに、前記ＰＵＦ情報に基づく前記秘密鍵で前記被暗号化情報を復号させるステップと、を有する。
【００１４】
また、本発明の第９の態様によれば、情報配信システムは、上記に記載の集積回路と、情報配信装置と、を備え、前記情報配信装置は、前記集積回路から受信した前記公開鍵を記録し、記録した前記公開鍵を用いて前記被暗号化情報を生成するとともに、前記集積回路に対し、当該被暗号化情報を配信する。
【発明の効果】
【００１５】
上述の発明の各態様によれば、保護対象とする情報が流出するリスクを低減することができる。
【図面の簡単な説明】
【００１６】
【図１】第１の実施形態に係る制御装置の製造工程の概要を示す図である。
【図２】第１の実施形態に係るＩＣチップの機能構成を示す図である。
【図３】第１の実施形態に係るＩＣチップ及び情報配信装置が実行する第１の処理フローである。
【図４】第１の実施形態に係るキーペア出力部が実行する処理フローを示す図である。
【図５】第１の実施形態に係るＩＣチップ及び情報配信装置が実行する第２の処理フローである。
【図６】第１の実施形態に係るＩＣチップが実行する第３の処理フローである。
【図７】第２の実施形態に係るＩＣチップ及び情報配信装置が実行する第１の処理フローである。
【図８】第２の実施形態に係るＩＣチップ及び情報配信装置が実行する第２の処理フローである。
【図９】第２の実施形態に係るＩＣチップのＣＰＵが実行する処理フローである。
【発明を実施するための形態】
【００１７】
＜第１の実施形態＞
以下、第１の実施形態に係るＩＣチップ（集積回路）について、図１〜図６を参照しながら説明する。
【００１８】
（制御装置の製造工程の概要）
図１は、第１の実施形態に係る制御装置の製造工程の概要を示す図である。
第１の実施形態において、メーカーＭは、例えば、ガスタービン、ボイラー等を制御するための制御装置を生産する。当該制御装置は、ある制御プログラムＰｄａｔａで動作するＩＣチップ１（集積回路）を具備する。
図１に示す情報配信システム９は、以下に説明するＩＣチップ１と情報配信装置２とを有してなる。
【００１９】
図１に示すように、ＩＣチップ１は、メーカーＭが国内に保有する開発工場（以下、「国内開発拠点Ｌ１」とも記載する。）で製造される。また、ＩＣチップ１を動作させるための制御プログラムＰｄａｔａも国内開発拠点Ｌ１で開発される。本実施形態において、制御プログラムＰｄａｔａにはメーカーＭのノウハウが多く含まれている。そのため、国内開発拠点Ｌ１は、開発した制御プログラムＰｄａｔａ等の情報が外部に流出しないよう、十分なセキュリティが担保されている。
【００２０】
また、図１に示すように、制御装置のハードウェア（制御基板Ｂ）は、例えば、メーカーＭが海外に保有する生産工場（以下、「海外生産拠点Ｌ２」とも記載する。）で生産される。メーカーＭは、国内開発拠点Ｌ１で製造したＩＣチップ１を海外生産拠点Ｌ２へ出荷する。海外生産拠点Ｌ２では、国内開発拠点Ｌ１から出荷されたＩＣチップ１の、制御基板Ｂへの実装が行われる。
【００２１】
図１に示すように、国内開発拠点Ｌ１には、情報配信装置２が設置されている。情報配信装置２は、広域通信網（例えば、インターネット回線等）を通じて、海外生産拠点Ｌ２で実装されたＩＣチップ１に対し、制御プログラムＰｄａｔａを配信する。ここで、第三者によって広域通信網を盗聴される可能性があるため、制御プログラムＰｄａｔａは所定の暗号鍵（後述する共有暗号鍵ＳＫ）で暗号化された状態で送信される。なお、以下の説明において、共有暗号鍵ＳＫで暗号化された制御プログラムＰｄａｔａを「暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）」とも表記する。
制御基板Ｂに実装済みのＩＣチップ１は、国内開発拠点Ｌ１に設置された情報配信装置２から暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）を受信し、ＩＣチップ１自身が具備する不揮発性メモリ（後述するフラッシュＲＯＭ１８）に記録する。
【００２２】
実際に制御装置として動作する場合、制御基板Ｂに実装されたＩＣチップ１は、フラッシュＲＯＭ１８に記録された暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）を復号し、ＩＣチップ１自身が具備する揮発性メモリ（後述するＲＡＭ１７）に展開する。ＩＣチップ１のＣＰＵ（後述するＣＰＵ１０）は、復号された制御プログラムＰｄａｔａに従って動作する。
【００２３】
なお、国内開発拠点Ｌ１では、ＩＣチップ１の出荷前に、当該ＩＣチップ１の個体識別情報（製造番号等）と当該ＩＣチップ１から固有に出力される公開鍵Ｑ＿ＰＵＦ（後述）とを関連付けて情報配信装置２に記録しておく。
【００２４】
（ＩＣチップの機能構成）
図２は、第１の実施形態に係るＩＣチップの機能構成を示す図である。
【００２５】
図２に示すように、ＣＰＵ１０（制御部）と、ＰＵＦ情報出力部１１と、キーペア出力部１２と、公開鍵送信部１３と、共有暗号鍵復号部１４と、制御プログラム復号部１５と、外部通信回路１６と、ＲＡＭ１７と、フラッシュＲＯＭ１８と、ＲＯＭ１９と、耐タンパ検知部１Ａと、電源管理部１Ｂとを備えている。
【００２６】
ＣＰＵ１０は、ＩＣチップ１の動作全体を司るプロセッサである。ＣＰＵ１０は、後述する揮発性メモリ（ＲＡＭ１７）に展開されたプログラムに従って動作する。
【００２７】
ＰＵＦ情報出力部１１は、ＩＣチップ１に電源が供給されている間、ＰＵＦ（Physically Unclonable Function）情報ＩＤ＿ＰＵＦを、キーペア出力部１２に出力する。ＰＵＦ情報とは、ＩＣチップ１の製造工程で生じる物理的、電気的特性のばらつきに応じて固有に生成される情報であって、ＩＣチップ１の個体ごとに異なる情報である。本実施形態に係るＰＵＦ情報出力部１１は、既知のＰＵＦ技術（例えば、ＳＲＡＭ＿ＰＵＦ、グリッチＰＵＦ等）が適用されてよい。また、本実施形態に係るＰＵＦ情報出力部１１は、１２８ビットのデータ列からなるＰＵＦ情報ＩＤ＿ＰＵＦを出力するものとする。ただし、他の実施形態においてはこの態様に限定されず、１２８ビットよりも長い、又は、短いデータ列であってもよい。
【００２８】
キーペア出力部１２は、ＩＣチップ１に電源が供給されている間、ＰＵＦ情報出力部１１から出力されるＰＵＦ情報ＩＤ＿ＰＵＦに基づいて公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦを生成する。公開鍵Ｑ＿ＰＵＦは、保護対象とする情報（本実施形態においては、後述する共有暗号鍵ＳＫ）を暗号化する際に用いられる。ＰＵＦ情報ＩＤ＿ＰＵＦに基づいて生成された公開鍵Ｑ＿ＰＵＦで暗号化された情報は、同じＰＵＦ情報ＩＤ＿ＰＵＦに基づいて生成された秘密鍵Ｐ＿ＰＵＦのみで復号可能とされる。
キーペア出力部１２は、生成した公開鍵Ｑ＿ＰＵＦを公開鍵送信部１３に出力し、生成した秘密鍵Ｐ＿ＰＵＦを共有暗号鍵復号部１４に出力する。
【００２９】
公開鍵送信部１３は、ＩＣチップ１の出荷前の段階で、キーペア出力部１２から出力されている公開鍵Ｑ＿ＰＵＦを外部（情報配信装置２）に送信するための機能部である。具体的には、公開鍵送信部１３は、キーペア出力部１２が出力する公開鍵Ｑ＿ＰＵＦを、ＣＰＵ１０からアクセス可能とする。
【００３０】
共有暗号鍵復号部１４は、ＩＣチップ１の出荷後の段階で、外部（情報配信装置２）から受信した被暗号化情報を、キーペア出力部１２から出力されている秘密鍵Ｐ＿ＰＵＦで復号する。ここで、「被暗号化情報」とは、公開鍵Ｑ＿ＰＵＦによって暗号化された情報であって、特に本実施形態においては、公開鍵Ｑ＿ＰＵＦによって暗号化された共有暗号鍵ＳＫである。なお、以下の説明において、公開鍵Ｑ＿ＰＵＦで暗号化された共有暗号鍵ＳＫを「暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）」とも表記する。
共有暗号鍵復号部１４は、復号した共有暗号鍵ＳＫを制御プログラム復号部１５に出力する。
【００３１】
制御プログラム復号部１５は、暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）を共有暗号鍵ＳＫで復号し、ＲＡＭ１７に展開する。
【００３２】
外部通信回路１６は、ＩＣチップ１の外部（特に、情報配信装置２）と通信するための通信インタフェースである。外部通信回路１６は、ＣＰＵ１０のみがアクセス可能とされ、外部通信回路１６を介して、外部から直接的に、ＲＡＭ１７に展開されている情報や、ＰＵＦ情報出力部１１及びキーペア出力部１２が出力する情報にアクセスすることはできない。
【００３３】
ＲＡＭ１７は、情報を書き換え可能な揮発性メモリである。ＲＡＭ１７は、いわゆる主記憶装置であって、ＣＰＵ１０を動作させるためのプログラムが展開される。特に、ＲＡＭ１７には、ＣＰＵ１０が制御装置として動作するための制御プログラムＰｄａｔａが展開される。
【００３４】
フラッシュＲＯＭ１８は、情報を書き換え可能な不揮発性メモリである。本実施形態に係るフラッシュＲＯＭ１８には、情報配信装置２から受信する暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）が格納される。
【００３５】
ＲＯＭ１９は、情報を書き換え不能な不揮発性メモリである。ＲＯＭ１８には、予めＣＰＵ１０のブートプログラムが格納されている。ＲＯＭ１８に格納されるブートプログラムは、制御装置の製造過程において、ＩＣチップ１に制御プログラムＰｄａｔａを安全に送信するための処理フロー（後述）を実行するためのプログラムである。
【００３６】
耐タンパ検知部１Ａは、ＩＣチップ１に対する不正な干渉を検知するセンサである。
【００３７】
電源管理部１Ｂは、耐タンパ検知部１Ａの検知信号を受け付けた場合に、ＩＣチップ１への電源の供給を遮断する。
【００３８】
（出荷前における処理フロー）
図３は、第１の実施形態に係るＩＣチップ及び情報配信装置が実行する第１の処理フローである。
また、図４は、第１の実施形態に係るキーペア出力部が実行する処理フローを示す図である。
以下、図３、図４を参照しながら、ＩＣチップ１の出荷前の段階で、当該ＩＣチップ１及び情報配信装置２が実行する処理フローについて詳細に説明する。
【００３９】
図３に示す第１の処理フローは、国内開発拠点Ｌ１において、製造工程が完了したＩＣチップ１の出荷前の段階で実行される。
【００４０】
国内開発拠点Ｌ１にてＩＣチップ１に電源が供給されると、ＩＣチップ１のＰＵＦ情報出力部１１は、ＩＣチップ１固有のＰＵＦ情報ＩＤ＿ＰＵＦをキーペア出力部１２に出力する（ステップＳ０１）。
【００４１】
次に、ＰＵＦ情報出力部１１からＰＵＦ情報ＩＤ＿ＰＵＦの入力を受け付けたキーペア出力部１２は、当該ＰＵＦ情報ＩＤ＿ＰＵＦに基づくキーペア（公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦのペア）を生成する（ステップＳ０２）。
ここで、キーペア出力部１２が実行するステップＳ０２の処理について、図４を参照しながら詳細に説明する。
【００４２】
図４に示すように、まず、キーペア出力部１２は、ＰＵＦ情報出力部１１から１２８ビットのデータ列からなるＰＵＦ情報ＩＤ＿ＰＵＦを入力する（ステップＳ０２１）。
次に、キーペア出力部１２は、ＰＵＦ情報ＩＤ＿ＰＵＦをハッシュ関数に入力し、二種類の素数ａ、ｂを生成する（ステップＳ０２２）。
次に、キーペア出力部１２は、生成した素数ａ，ｂを、既知の秘密鍵生成関数ｆｕｎｃ１、公開鍵生成関数ｆｕｎｃ２のそれぞれに入力する（ステップＳ０２３Ｐ、Ｓ０２３Ｑ）。
キーペア出力部１２は、秘密鍵生成関数ｆｕｎｃ１を通じて生成された秘密鍵Ｐ＿ＰＵＦ、及び、公開鍵生成関数ｆｕｎｃ２を通じて生成された公開鍵Ｑ＿ＰＵＦを出力する（ステップＳ０２４Ｐ、Ｓ０２４Ｑ）。
【００４３】
なお、ある乱数（本実施形態においてはＰＵＦ情報ＩＤ＿ＰＵＦ）に基づいて秘密鍵Ｐ＿ＰＵＦ、公開鍵Ｑ＿ＰＵＦを生成する処理は良く知られている技術であり、各処理は非可逆的とされる。即ち、仮に公開鍵Ｑ＿ＰＵＦが第三者に流出したとしても、当該公開鍵Ｑ＿ＰＵＦに基づいて秘密鍵Ｐ＿ＰＵＦ、及び、ＰＵＦ情報ＩＤ＿ＰＵＦを逆算して取得することはできない。
【００４４】
キーペア出力部１２は、ステップＳ２３Ｑで生成した公開鍵Ｑ＿ＰＵＦを公開鍵送信部１３に出力し、また、ステップＳ２３Ｐで生成した秘密鍵Ｐ＿ＰＵＦを共有暗号鍵復号部１４に出力する（共有暗号鍵復号部１４は、出荷前の処理フローでは使用しない）。
【００４５】
図３に戻り、ＩＣチップ１のＣＰＵ１０は、電源が供給された後、ＲＯＭ１９に格納されているブートプログラムを読み込み、外部（情報配信装置２）からの要求メッセージを待ち受けている状態にある。ここで、情報配信装置２は、ＩＣチップ１に対し、公開鍵要求メッセージを送信する（ステップＳ０１ａ）。
【００４６】
ＣＰＵ１０は、外部通信回路１６を介して、情報配信装置２から公開鍵要求メッセージを受信する（ステップＳ０３）。
公開鍵要求メッセージを受信すると、ＣＰＵ１０は、公開鍵送信部１３にアクセスして、キーペア出力部１２から出力される公開鍵Ｑ＿ＰＵＦを取得する。そして、ＣＰＵ１０は、外部通信回路１６を介して、当該公開鍵Ｑ＿ＰＵＦを情報配信装置２に送信する（ステップＳ０４）。
【００４７】
情報配信装置２は、ＩＣチップ１から公開鍵Ｑ＿ＰＵＦを受信する（ステップＳ０２ａ）。
情報配信装置２は、ＩＣチップ１から受信した公開鍵Ｑ＿ＰＵＦを、当該ＩＣチップ１の製造番号等と関連付けて記録する（ステップＳ０３ａ）。
【００４８】
（出荷後における処理フロー）
図５は、第１の実施形態に係るＩＣチップ及び情報配信装置が実行する第２の処理フローである。
次に、図５を参照しながら、ＩＣチップ１の出荷後の段階（制御基板Ｂ（図１）に実装された段階）で、当該ＩＣチップ１及び情報配信装置２が実行する処理フローについて詳細に説明する。
【００４９】
図５に示す第２の処理フローは、ＩＣチップ１の出荷後、海外生産拠点Ｌ２において制御基板Ｂに実装された段階で実行される。
【００５０】
海外生産拠点Ｌ２にてＩＣチップ１に電源が供給されると、出荷前の処理フロー（図３）と同様に、ＩＣチップ１のＰＵＦ情報出力部１１は、ＩＣチップ１固有のＰＵＦ情報ＩＤ＿ＰＵＦをキーペア出力部１２に出力する（ステップＳ１１）。
【００５１】
次に、ＰＵＦ情報出力部１１からＰＵＦ情報ＩＤ＿ＰＵＦの入力を受け付けたキーペア出力部１２は、当該ＰＵＦ情報ＩＤ＿ＰＵＦに基づくキーペア（公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦのペア）を生成する（ステップＳ１２）。ステップＳ１２の処理も、図４に示すステップＳ０２１〜Ｓ０２４Ｐ、Ｓ０２４Ｑの処理と同様である。
キーペア出力部１２は、生成した公開鍵Ｑ＿ＰＵＦを公開鍵送信部１３に出力し、また、生成した秘密鍵Ｐ＿ＰＵＦを共有暗号鍵復号部１４に出力する（公開鍵送信部１３は、出荷後の処理フローでは使用しない）。
【００５２】
一方、情報配信装置２は、ＩＣチップ１に向けて配信しようとする制御プログラムＰｄａｔａを暗号化するための共有暗号鍵ＳＫを生成する（ステップＳ１１ａ）。共有暗号鍵ＳＫは、所定のビット数からなる乱数であってよい。
【００５３】
情報配信装置２は、ＩＣチップ１の出荷前に記録した（図３のステップＳ０３ａで記録した）公開鍵Ｑ＿ＰＵＦを読み出すとともに、当該公開鍵Ｑ＿ＰＵＦで共有暗号鍵ＳＫを暗号化し、暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）を生成する（ステップＳ１２ａ）。
【００５４】
ＩＣチップ１のＣＰＵ１０は、電源が供給された後、ＲＯＭ１９に格納されているブートプログラムを読み込み、外部（情報配信装置２）からの要求メッセージを待ち受けている状態にある。ここで、情報配信装置２は、ＩＣチップ１に対し、ＳＫ復号要求メッセージを送信し、更に、暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）を配信する（ステップＳ１３ａ）。
【００５５】
ＩＣチップ１のＣＰＵ１０は、外部通信回路１６を介して、情報配信装置２からＳＫ復号要求メッセージと、暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）を受信する（ステップＳ１３）。
ＳＫ復号要求メッセージを受信すると、ＣＰＵ１０は、続いて受信した暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）を共有暗号鍵復号部１４に出力する。共有暗号鍵復号部１４は、キーペア出力部１２から出力される秘密鍵Ｐ＿ＰＵＦを用いて、暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）を復号する（ステップＳ１４）。共有暗号鍵復号部１４は、復号処理を経て取得した共有暗号鍵ＳＫを制御プログラム復号部１５に出力する。
ＣＰＵ１０は、共有暗号鍵復号部１４による復号処理が完了した後、再度、情報配信装置２からの要求メッセージを待ち受ける。
【００５６】
一方、情報配信装置２は、ＩＣチップ１を動作させるための制御プログラムＰｄａｔａを、ステップＳ１１ａで生成した共有暗号鍵ＳＫで暗号化する（ステップＳ１４ａ）。
【００５７】
次に、情報配信装置２は、ＩＣチップ１に対し、Ｐｄａｔａ復号要求メッセージを送信し、更に、暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）を配信する（ステップＳ１５ａ）。
【００５８】
ＣＰＵ１０は、外部通信回路１６を介して、Ｐｄａｔａ復号要求メッセージを受信すると、続いて受信した暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）をフラッシュＲＯＭ１８に記録する（ステップＳ１５）。
続いて、制御プログラム復号部１５は、フラッシュＲＯＭ１８から暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）をブロック単位で取り出すとともに、共有暗号鍵復号部１４から出力される共有鍵ＳＫを用いて、取り出した暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，ＳＫ）を逐次復号し、ＲＡＭ１７に展開する（ステップＳ１６）。
ＣＰＵ１０は、制御プログラム復号部１５による制御プログラムＰｄａｔａのＲＡＭ１７への展開が完了した後、再度、情報配信装置２からの要求メッセージを待ち受ける。
【００５９】
情報配信装置２は、ＩＣチップ１に対し、制御プログラム実行要求メッセージを送信する（ステップＳ１６ａ）。
ＣＰＵ１０は、外部通信回路１６を介して、情報配信装置２から制御プログラム実行要求メッセージを受信すると、プログラムカウンタを、ＲＡＭ１７に展開された制御プログラムＰｄａｔａにジャンプさせる。これにより、ブートプログラムから制御プログラムＰｄａｔａの実行に切り替わる（ステップＳ１７）。
【００６０】
（耐タンパ機能）
図６は、第１の実施形態に係るＩＣチップが実行する第３の処理フローである。
次に、図６を参照しながら、ＩＣチップ１の耐タンパ機能について説明する。
【００６１】
図６に示す処理フローは、ＩＣチップ１の耐タンパ検知部１Ａ及び電源管理部１Ｂによって実行される処理フローであって、ＩＣチップ１に電源が供給されている間、常に繰り返し実行する。
【００６２】
ＩＣチップ１の耐タンパ検知部１Ａは、ＩＣチップ１に対する不正な干渉（例えば、パッケージの除去、分解等）の有無を判定する（ステップＳ２１）。
ＩＣチップ１に対する不正な干渉が検知されない場合（ステップＳ２１：ＮＯ）、同処理フローを繰り返す。
ＩＣチップ１に対する不正な干渉が検知された場合（ステップＳ２１：ＹＥＳ）、電源管理部１Ｂは、ＩＣチップ１の各機能構成（ＰＵＦ情報出力部１１、キーペア出力部１２、ＲＡＭ１７等）への電源の供給を遮断する（ステップＳ２２）。
電源が遮断されることで、ＲＡＭ１７に展開されていた制御プログラムＰｄａｔａ、ＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦ、及び、キーペア出力部１２が出力する秘密鍵Ｐ＿ＰＵＦの情報は揮発する。
【００６３】
（作用、効果）
以上のとおり、ＩＣチップ１は、ＲＡＭ１７に展開されるプログラムに従って動作する制御部（ＣＰＵ１０）と、電源が供給されている間、ＰＵＦ情報ＩＤ＿ＰＵＦを出力するＰＵＦ情報出力部１１と、電源が供給されている間、ＰＵＦ情報ＩＤ＿ＰＵＦに基づく公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦを出力するキーペア出力部１２と、キーペア出力部１２から出力されている公開鍵Ｑ＿ＰＵＦを外部（情報配信装置２）に送信する公開鍵送信部１３と、外部（情報配信装置２）から受信した、公開鍵Ｑ＿ＰＵＦで暗号化された被暗号化情報（共有暗号鍵ＳＫ）を、キーペア出力部１２から出力されている秘密鍵Ｐ＿ＰＵＦで復号する共有暗号鍵復号部１４（復号部）と、を備えている。
【００６４】
このような構成によれば、被暗号化情報（共有暗号鍵ＳＫ）は、公開鍵Ｑ＿ＰＵＦで暗号化されているため、第三者が国内開発拠点Ｌ１と海外生産拠点Ｌ２との間の通信回線を盗聴したとしても、被暗号化情報を取得することはできない。また、公開鍵Ｑ＿ＰＵＦで暗号化された情報を復号するためには対応する秘密鍵Ｐ＿ＰＵＦを要するところ、この秘密鍵Ｐ＿ＰＵＦは、ＩＣチップ１に電源が供給されている間のみ生成されるものである。したがって、ＩＣチップ１そのものを不正に入手した第三者が、電源が供給されていないＩＣチップ１を分解して解析を行ったとしても、秘密鍵Ｐ＿ＰＵＦを読み取ることができない。
【００６５】
以上より、第１の実施形態に係るＩＣチップ１によれば、保護対象とする情報が流出するリスクを低減することができる。
【００６６】
また、第１の実施形態に係るＩＣチップ１において、公開鍵送信部１３は、ＩＣチップ１の出荷前の段階で、キーペア出力部１２から出力されている公開鍵Ｑ＿ＰＵＦを外部に送信する。また、共有暗号鍵復号部１４は、ＩＣチップ１の出荷後の段階で、外部から受信した被暗号化情報（共有暗号鍵ＳＫ）を、キーペア出力部１２から出力されている秘密鍵Ｐ＿ＰＵＦで復号する。
このような態様とすることで、出荷先の工場（海外生産拠点Ｌ２）においてＩＣチップ１の実装が行われる場合に、出荷前にＩＣチップ１固有の公開鍵Ｑ＿ＰＵＦを取得可能となる。そして、出荷先の工場で実装されたＩＣチップ１に対して当該公開鍵Ｑ＿ＰＵＦで暗号化した被暗号化情報を配信するとともに、ＩＣチップ１自身が、当該配信された被暗号化情報を秘密鍵Ｐ＿ＰＵＦで復号することができる。
【００６７】
また、第１の実施形態に係る共有暗号鍵復号部１４は、被暗号化情報として、保護対象情報（制御プログラムＰｄａｔａ）を暗号化する共有暗号鍵ＳＫを、キーペア出力部１２から出力されている秘密鍵Ｐ＿ＰＵＦで復号する。
即ち、情報配信装置２は、保護対象情報（制御プログラムＰｄａｔａ）を共有暗号鍵ＳＫで暗号化し、かつ、当該共有暗号鍵ＳＫを公開鍵Ｑ＿ＰＵＦで暗号化してＩＣチップ１に配信する。
このようにすることで、主たる保護対象（制御プログラムＰｄａｔａ）の暗号化に加え、共有暗号鍵ＳＫの暗号化も二重に施されるので、一層セキュリティを向上させることができる。
また、共有鍵暗号方式（共有暗号鍵ＳＫを用いた暗号化処理、復号処理）は比較的処理が簡素である一方、公開鍵暗号方式（公開鍵Ｑ＿ＰＵＦによる暗号化処理、及び、秘密鍵Ｐ＿ＰＵＦによる復号処理）は比較的複雑な計算を要する。ここで、制御プログラムＰｄａｔａは、共有暗号鍵ＳＫと比較して、情報量が極めて大きい。そうすると、制御プログラムＰｄａｔａを直接公開鍵Ｑ＿ＰＵＦで暗号化して配信した場合、受信したＩＣチップ１での復号処理に大きな負荷がかかる。そこで、本実施形態のように、情報量が小さい共有暗号鍵ＳＫを公開鍵Ｑ＿ＰＵＦで暗号化することで、ＩＣチップ１での復号処理の全体的な負荷を軽減することができる。
【００６８】
また、第１の実施形態に係るＩＣチップ１は、ＩＣチップ１に対する不正な干渉を検知する耐タンパ検知部１Ａと、不正な干渉が検知された場合に、ＩＣチップ１の各機能部への電源の供給を遮断する電源管理部１Ｂとを備えている。
ここで、制御プログラムＰｄａｔａの配信後であっても、制御プログラムＰｄａｔａが実装された制御装置を第三者が手に入れると、メモリダンプやバスプローブ等の手法によって制御プログラムＰｄａｔａを解読されるリスクが懸念される。この課題に対し、上記のようにすることで、不正な干渉が検知された場合、ＩＣチップ１の各機能構成（ＰＵＦ情報出力部１１、キーペア出力部１２、ＲＡＭ１７等）への電源の供給が遮断される。そうすると、ＲＡＭ１７に展開されていた制御プログラムＰｄａｔａ、ＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦ、及び、キーペア出力部１２が出力する秘密鍵Ｐ＿ＰＵＦの情報は揮発する。これにより、第三者による不正な干渉（具体的には、メモリダンプやバスプローブ等による方法）で、制御プログラムＰｄａｔａを解読することが不可能となる。
【００６９】
＜第２の実施形態＞
次に、第２の実施形態に係るＩＣチップ（集積回路）について、図７〜図１０を参照しながら説明する。
【００７０】
（出荷前における処理フロー）
図７は、第２の実施形態に係るＩＣチップ及び情報配信装置が実行する第１の処理フローである。
以下、図７を参照しながら、第２の実施形態に係るＩＣチップ１の出荷前の段階で、当該ＩＣチップ１及び情報配信装置２が実行する処理フローについて説明する。
【００７１】
図７に示すＩＣチップ１の処理フローの一部（ステップＳ０１〜Ｓ０４）、及び、情報配信装置２の処理フロー（ステップＳ０１ａ〜Ｓ０３ａ）は、第１の実施形態（図３）と同様であるため、詳細な説明を省略する。
【００７２】
図７に示すように、第２の実施形態に係るＣＰＵ１０は、キーペア出力部１２から出力されている公開鍵Ｑ＿ＰＵＦをＩＣチップ１自身が具備するフラッシュＲＯＭ１８に記録する（ステップＳ０５）。
以下の説明において、ステップＳ０５でフラッシュＲＯＭ１８に記録された公開鍵Ｑ＿ＰＵＦを、「参照公開鍵Ｑ＿ＰＵＦｒｅｆ」と記載し、キーペア出力部１２が出力する公開鍵Ｑ＿ＰＵＦと区別する。
【００７３】
（出荷後における処理フロー）
図８は、第２の実施形態に係るＩＣチップ及び情報配信装置が実行する第２の処理フローである。
また、図９は、第２の実施形態に係るＩＣチップのＣＰＵが実行する処理フローである。
以下、図８、図９を参照しながら、第２の実施形態に係るＩＣチップ１の出荷後の段階で、当該ＩＣチップ１及び情報配信装置２が実行する処理フローについて説明する。
【００７４】
図８に示すＩＣチップ１の処理フローの一部（ステップＳ１１〜Ｓ１７）、及び、情報配信装置２の処理フロー（ステップＳ１１ａ〜Ｓ１６ａ）は、第１の実施形態（図５）と同様であるため、詳細な説明を省略する。
【００７５】
第２の実施形態に係るＩＣチップ１は、ステップＳ１２でキーペア出力部１２が公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦを生成した後、ＣＰＵ１０が当該秘密鍵Ｐ＿ＰＵＦの検証を行う（ステップＳ３０）。
以下、図９を参照しながら、ＣＰＵ１０による図８のステップＳ３０の処理について詳しく説明する。
【００７６】
ＩＣチップ１に対する電源供給後、キーペア出力部１２により公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦが出力されると、ＣＰＵ１０は、公開鍵送信部１３にアクセスして、キーペア出力部１２から出力される公開鍵Ｑ＿ＰＵＦを取得する。そして、ＣＰＵ１０は、公開鍵Ｑ＿ＰＵＦと、参照公開鍵Ｑ＿ＰＵＦｒｅｆ（フラッシュＲＯＭ１８に記録されている公開鍵Ｑ＿ＰＵＦ）とを比較し（ステップＳ３１）、一致しているか否かを判定する（ステップＳ３２）。
【００７７】
キーペア出力部１２から出力される公開鍵Ｑ＿ＰＵＦと参照公開鍵Ｑ＿ＰＵＦｒｅｆとが一致していた場合（ステップＳ３２：ＹＥＳ）、ＣＰＵ１０は、キーペア出力部１２から秘密鍵Ｐ＿ＰＵＦが正しく出力されていると判定し（ステップＳ３３）、図８のステップＳ１３の処理に移行する。
他方、キーペア出力部１２から出力される公開鍵Ｑ＿ＰＵＦと参照公開鍵Ｑ＿ＰＵＦｒｅｆとが一致していなかった場合（ステップＳ３２：ＮＯ）、ＣＰＵ１０は、キーペア出力部１２から秘密鍵Ｐ＿ＰＵＦが正しく出力されていないと判定する。この場合、ＣＰＵ１０は、更に、以下の処理を実行する。
【００７８】
ＣＰＵ１０は、１２８通りの「変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’」について検証を行ったか否かを判定する（ステップＳ３４）。ここで、「変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’」とは、現時点においてＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦのうちのいずれか１ビットを変更（ビット反転）させた情報のことを指す。
【００７９】
１２８通りの変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’について、以下に説明する処理（ステップＳ３５〜Ｓ３７）を行っていない場合（ステップＳ３４：ＮＯ）、ＣＰＵ１０は、ＰＵＦ情報出力部１１に対し、ＰＵＦ情報ＩＤ＿ＰＵＦを構成する１２８ビットの情報の何れか１ビットを変更させた変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’を出力させる（ステップＳ３５）。
キーペア出力部１２は、ＰＵＦ情報出力部１１から出力される変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’に基づいて「変更後公開鍵Ｑ＿ＰＵＦ’」及び「変更後秘密鍵Ｐ＿ＰＵＦ’」を生成し、出力する（ステップＳ３６）。ここで、「変更後公開鍵Ｑ＿ＰＵＦ’」、「変更後秘密鍵Ｐ＿ＰＵＦ’」とは、それぞれ、ＰＵＦ情報出力部１１が出力する変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’を基に、図４に示す処理フローを経て生成された公開鍵及び秘密鍵を指す。
【００８０】
次に、ＣＰＵ１０は、再度、公開鍵送信部１３にアクセスして、キーペア出力部１２から出力される変更後公開鍵Ｑ＿ＰＵＦ’を取得する。そして、ＣＰＵ１０は、変更後公開鍵Ｑ＿ＰＵＦ’と参照公開鍵Ｑ＿ＰＵＦｒｅｆとを比較し（ステップＳ３７）、一致しているか否かを判定する（ステップＳ３２）。
【００８１】
変更後公開鍵Ｑ＿ＰＵＦ’と参照公開鍵Ｑ＿ＰＵＦｒｅｆとが一致していた場合（ステップＳ３２：ＹＥＳ）、ＣＰＵ１０は、この時点で出力されている変更後秘密鍵Ｐ＿ＰＵＦ’が正しい秘密鍵Ｐ＿ＰＵＦであると判定する（ステップＳ３３）。したがって、この場合、ＣＰＵ１０は、図８のステップＳ１４において、変更後秘密鍵Ｐ＿ＰＵＦ’を用いて暗号化共有暗号鍵ｅｎｃ（ＳＫ，Ｑ＿ＰＵＦ）を復号する。
【００８２】
一方、変更後公開鍵Ｑ＿ＰＵＦ’と参照公開鍵Ｑ＿ＰＵＦｒｅｆとが一致していなかった場合（ステップＳ３２：ＮＯ）、ＣＰＵ１０は、ＰＵＦ情報出力部１１に対し、再度、ＰＵＦ情報ＩＤ＿ＰＵＦを構成する１２８ビットの情報の何れか１ビットを変更させた変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’を出力させる（ステップＳ３５）。ここで、ＣＰＵ１０は、ＰＵＦ情報出力部１１に対し、前回までの処理で出力させた変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’とは異なる変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’を出力させる。
【００８３】
１２８通りのいずれの変更後ＰＵＦ情報ＩＤ＿ＰＵＦであっても、変更後公開鍵Ｑ＿ＰＵＦ’と参照公開鍵Ｑ＿ＰＵＦとが一致しなかった場合（ステップＳ３４：ＮＯ）、ＣＰＵ１０は、正しい秘密鍵Ｐ＿ＰＵＦを取得するのは不可能と判断し、以降に続く処理（図８のステップＳ１３〜Ｓ１７）を中止する（ステップＳ３８）。
【００８４】
（作用、効果）
以上のとおり、第２の実施形態に係るＩＣチップ１は、フラッシュＲＯＭ１８（不揮発性メモリ）を備え、ＣＰＵ１０は、出荷前の段階で、キーペア出力部１２から出力されている公開鍵Ｑ＿ＰＵＦをフラッシュＲＯＭ１８に記録する。
また、ＣＰＵ１０は、出荷後の段階で、キーペア出力部１２から出力されている公開鍵Ｑ＿ＰＵＦが、フラッシュＲＯＭ１８に記録された公開鍵（参照公開鍵Ｑ＿ＰＵＦｒｅｆ）と一致するか否かを判定する。そして、ＣＰＵ１０は、当該判定の結果に基づいて、出荷後においてキーペア出力部１２から秘密鍵Ｐ＿ＰＵＦが正しく出力されているか否かを判定する。
【００８５】
ここで、ＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦは、ＩＣチップ１固有の物理的特性に依存する出力値であるため、例えば、出荷前後の環境の違いや出荷の過程で生じた外的要因により、その値が変わってしまうことが想定される。もし、出荷前後でＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦが異なってしまったら、出荷前に取得した公開鍵Ｑ＿ＰＵＦで暗号化した情報を復号することができなくなる。
そこで、上記のような態様とすることで、出荷後にキーペア出力部１２から出力される公開鍵Ｑ＿ＰＵＦ及び秘密鍵Ｐ＿ＰＵＦが、出荷前に出力されていたものと同一か否かを判断することができる。
【００８６】
また、第２の実施形態に係るＰＵＦ情報出力部１１は、出荷後においてキーペア出力部１２から正しい秘密鍵Ｐ＿ＰＵＦが出力されていない場合に、現在出力しているＰＵＦ情報ＩＤ＿ＰＵＦの一部（１ビット）を変更してなる変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’を出力する。
更に、キーペア出力部１２は、変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’に基づく変更後公開鍵Ｑ＿ＰＵＦ’及び変更後秘密鍵Ｐ＿ＰＵＦ’を出力する。
更に、ＣＰＵ１０は、キーペア出力部１２から出力されている変更後公開鍵Ｑ＿ＰＵＦ’が、参照公開鍵Ｑ＿ＰＵＦｒｅｆと一致するか否かを判定する。
そして、共有暗号鍵復号部１４は、変更後公開鍵Ｑ＿ＰＵＦ’が、参照公開鍵Ｑ＿ＰＵＦｒｅｆと一致する場合に、情報配信装置２から受信した被暗号化情報（共有暗号鍵ＳＫ）を、変更後秘密鍵Ｐ＿ＰＵＦ’で復号する。
【００８７】
上記態様によれば、出荷後において、ＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦの一部（例えば、１ビット）が変わってしまった場合であっても、参照公開鍵Ｑ＿ＰＵＦｒｅｆに対応する変更後秘密鍵Ｐ＿ＰＵＦ’を取得することができる。これにより、出荷前に記録された公開鍵Ｑ＿ＰＵＦによって暗号化された被暗号化情報（共有暗号鍵ＳＫ）を、当該変更後秘密鍵Ｐ＿ＰＵＦ’を用いて正しく復号することができる。
【００８８】
（各実施形態の変形例）
以上、第１、第２の実施形態に係るＩＣチップ１について詳細に説明したが、ＩＣチップ１の具体的な態様は、上述のものに限定されることはなく、要旨を逸脱しない範囲内において種々の設計変更等を加えることは可能である。
【００８９】
例えば、上述の各実施形態において、復号部（共有暗号鍵復号部１４）は、被暗号化情報として、制御プログラムＰｄａｔａを暗号化する共有暗号鍵ＳＫを、キーペア出力部１２から出力されている秘密鍵Ｐ＿ＰＵＦで復号するものとして説明した。しかし、他の実施形態においては、この態様に限定されず、例えば、復号部は、被暗号化情報として、制御プログラムＰｄａｔａそのものを、キーペア出力部１２から出力されている秘密鍵Ｐ＿ＰＵＦで復号する態様であってもよい。なお、この場合、情報配信装置２は、図５（図８）のステップＳ１３ａで、制御プログラムＰｄａｔａを公開鍵Ｑ＿ＰＵＦで暗号化してなる暗号化制御プログラムｅｎｃ（Ｐｄａｔａ，Ｑ＿ＰＵＦ）を配信する。
【００９０】
また、上述の各実施形態に係るＩＣチップ１は、耐タンパ機能として、耐タンパ検知部１Ａ及び電源管理部１Ｂを具備するものとして説明したが、実施形態によっては、具備しなくともよい。
【００９１】
また、第２の実施形態において、ＩＣチップ１は、ＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦを１ビットだけ変更したものを変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’とし、参照公開鍵Ｑ＿ＰＵＦｒｅｆを得られる変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’を探索するものとして説明した。しかし、他の実施形態においてはこの態様に限定されない。
他の実施形態に係るＩＣチップ１のＣＰＵ１０は、ＰＵＦ情報出力部１１が出力するＰＵＦ情報ＩＤ＿ＰＵＦを２ビット以上のビット数変更したものを変更後ＰＵＦ情報ＩＤ＿ＰＵＦ’としてもよい。
このようにすることで、正しい秘密鍵Ｐ＿ＰＵＦを得られる可能性を向上させることができる。
【００９２】
以上のとおり、本発明に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９３】
１  ＩＣチップ（集積回路）
１０  ＣＰＵ（制御部）
１１  ＰＵＦ情報出力部
１２  キーペア出力部
１３  公開鍵送信部
１４  共有暗号鍵復号部（復号部）
１５  制御プログラム復号部
１６  外部通信回路
１７  ＲＡＭ（揮発性メモリ）
１８  フラッシュＲＯＭ（不揮発性メモリ）
１９  ＲＯＭ（不揮発性メモリ）
１Ａ  耐タンパ検知部
１Ｂ  電源管理部
２  情報配信装置
９  情報配信システム
Ｌ１  国内開発拠点
Ｌ２  海外生産拠点
Ｂ  制御基板
Ｐｄａｔａ  制御プログラム
【図１】
2019121884.tif 000003
【図２】
2019121884.tif 000004
【図３】
2019121884.tif 000005
【図４】
2019121884.tif 000006
【図５】
2019121884.tif 000007
【図６】
2019121884.tif 000008
【図７】
2019121884.tif 000009
【図８】
2019121884.tif 000010
【図９】
2019121884.tif 000011