(57)【特許請求の範囲】
【請求項１】
少なくとも一つのデバイスに接続されるデバイス制御装置であって、
第１鍵情報を記憶するプロセッサと、
前記第１鍵情報を用いた復号処理により復号可能なように、第２鍵情報を暗号化した、暗号化第２鍵情報を記憶する記憶部と、
前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うインタフェース部と、
を含み、
前記プロセッサは、前記記憶部に格納されたローダプログラムに従って動作し、デバイスへのアクセスを行うアクセスプログラムをロードし、当該ロードしたアクセスプログラムに従って、前記インタフェース部に対して、デバイスへのアクセス指示を行っており、
前記ローダプログラムは、第３鍵情報とともに、前記第１鍵情報を用いて暗号化されており、
前記第２鍵情報は、前記第３鍵情報で暗号化第２鍵情報として暗号化されており、
前記アクセスプログラムは、前記第３鍵情報で暗号化されており、
前記プロセッサは、第１鍵情報を用いて、前記ローダプログラムと第３鍵情報を復号して取得し、当該取得した第３鍵情報で、前記第２鍵情報と、アクセスプログラムとを復号して取得する、
ことを特徴とするデバイス制御装置。
【請求項２】
少なくとも一つのデバイスに接続されるデバイス制御装置であって、
第１鍵情報を記憶するプロセッサと、
前記第１鍵情報を用いた復号処理により復号可能なように、ローダプログラムと第３鍵情報と公開鍵情報とを暗号化した情報を記憶するとともに、第２鍵情報とアクセスプログラムとを、前記第３鍵情報で復号可能な状態で暗号化し、前記公開鍵情報に対応する秘密鍵情報によって署名した情報を記憶する記憶部と、
前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うインタフェース部と、
を含み、
前記プロセッサは、前記記憶部に格納されている情報のうち、ローダプログラムと第３鍵情報と公開鍵情報とを第１鍵情報を用いて復号して取得し、当該ローダプログラムに従って、前記記憶部に格納されている暗号化され、署名された第２鍵情報とアクセスプログラムとを読み出し、前記公開鍵情報を用いて、署名を検証し、署名の検証が成功したときに、暗号化されている第２鍵情報とアクセスプログラムとを、前記第３鍵情報を用いて復号し、アクセスプログラムの処理を実行する、
ことを特徴とするデバイス制御装置。
【請求項３】
少なくとも一つのデバイスに接続され、第１鍵情報を記憶するプロセッサと、前記第１鍵情報を用いた復号処理により復号可能なように、第２鍵情報を暗号化した、暗号化第２鍵情報を記憶する記憶部とを備える装置におけるデバイス制御方法であって、
前記プロセッサにより、前記記憶部に格納されている、前記第１鍵情報を用いて暗号化されたローダプログラムと第３鍵情報とを、第１鍵情報を用いて復号して取得し、当該ローダプログラムに従って、前記第３鍵情報で暗号化された、前記第２鍵情報と、デバイスへのアクセスを行うアクセスプログラムとを、前記取得した第３鍵情報で復号して取得し、前記取得したアクセスプログラムに従ってデバイスへのアクセス指示を行うステップと、
前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うステップと、
を含むことを特徴とするデバイス制御方法。
【請求項４】
少なくとも一つのデバイスに接続され、第１鍵情報を記憶するプロセッサと、前記第１鍵情報を用いた復号処理により復号可能なように、ローダプログラムと第３鍵情報と公開鍵情報とを暗号化した情報を記憶するとともに、第２鍵情報とアクセスプログラムとを、前記第３鍵情報で復号可能な状態で暗号化し、前記公開鍵情報に対応する秘密鍵情報によって署名した情報を記憶する記憶部と、を備える装置におけるデバイス制御方法であって、
前記プロセッサにより、前記記憶部に格納されている情報のうち、ローダプログラムと第３鍵情報と公開鍵情報とを第１鍵情報を用いて復号して取得し、当該ローダプログラムに従って、前記記憶部に格納されている暗号化され、署名された第２鍵情報とアクセスプログラムとを読み出し、前記公開鍵情報を用いて、署名を検証し、署名の検証が成功したときに、暗号化されている第２鍵情報とアクセスプログラムとを、前記第３鍵情報を用いて復号し、アクセスプログラムの処理を実行するステップと、
前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うステップと、
を含むことを特徴とするデバイス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムや、家庭用ゲーム機などのように、少なくとも一つのデバイスに接続されるデバイス制御装置に関する。
【背景技術】
【０００２】
コンピュータシステムや、家庭用ゲーム機などには、例えばマウスやキーボード、ゲームコントローラなどの入力デバイスや、ＤＶＤドライブなどの外部ディスクデバイスなど、複数のデバイスが接続されているのが一般的である。
【０００３】
近年、こうしたデバイスに対して、コンピュータシステムのＣＰＵがアクセスをする際に、当該アクセスの信号を盗み出して、悪用する技術が問題となっている。
【０００４】
例えば、データの暗号化処理は、メモリ上の平文データをＣＰＵが読み取って処理し、メモリ上に記録するという方法で行われるので、ＣＰＵがメモリデバイスから読み出すデータを信号線上で盗み出し、暗号化処理が行われる前の平文データを盗み出される恐れがある。
【０００５】
そこで、デバイスとＣＰＵとの間で送受信するデータを暗号化する技術も考えられている。こうした技術においては、デバイスごとに、互いに異なる暗号鍵が割り当てられる。また、仮に暗号鍵が盗み出された場合に、すべての装置で暗号化が無効となることを防止するため、例えば暗号鍵を装置ごとに異ならせることが行われる。
【特許文献１】特開平１１−２８２６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、装置ごとに暗号鍵を異ならせるとすれば、アクセスするデバイスとの間の通信で必要となる数の暗号鍵を装置ごとに発行してＣＰＵに設定しなければならず、製造負担が大きく、製造効率を高めることができない。なお、頒布するソフトウエアに対して個別の暗号鍵を割り当てる必要をなくす技術が特許文献１に開示されている。
【０００７】
本発明は上記実情に鑑みて為されたもので、デバイスとの間で送受するデータを暗号化するデバイス制御装置において、装置ごとに発行するべき暗号鍵の数を低減できるデバイス制御装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００８】
上記従来例の問題点を解決するための本発明は、少なくとも一つのデバイスに接続されるデバイス制御装置であって、第１鍵情報を記憶するプロセッサと、前記第１鍵情報を用いた復号処理により復号可能なように、第２鍵情報を暗号化した、暗号化第２鍵情報を記憶する記憶部と、前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うインタフェース部と、を含むことを特徴としている。
【０００９】
ここで前記プロセッサは、前記記憶部に格納されたローダプログラムに従って動作し、デバイスへのアクセスを行うアクセスプログラムをロードし、当該ロードしたアクセスプログラムに従って、前記インタフェース部に対して、デバイスへのアクセス指示を行っており、前記ローダプログラムは、第３鍵情報とともに、前記第１鍵情報を用いて暗号化されており、前記第２鍵情報は、前記第３鍵情報で暗号化第２鍵情報として暗号化されており、前記アクセスプログラムは、前記第３鍵情報で暗号化されており、前記プロセッサは、第１鍵情報を用いて、前記ローダプログラムと第３鍵情報を復号して取得し、当該取得した第３鍵情報で、前記第２鍵情報と、アクセスプログラムとを復号して取得する、こととしてもよい。
【００１０】
また、上記従来例の問題点を解決するための本発明は、少なくとも一つのデバイスに接続されるデバイス制御装置であって、第１鍵情報を記憶するプロセッサと、前記第１鍵情報を用いた復号処理により復号可能なように、ローダプログラムと第３鍵情報と公開鍵情報とを暗号化した情報を記憶するとともに、第２鍵情報とアクセスプログラムとを、前記第３鍵情報で復号可能な状態で暗号化し、前記公開鍵情報に対応する秘密鍵情報によって署名した情報を記憶する記憶部と、前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うインタフェース部と、を含み、前記プロセッサは、前記記憶部に格納されている情報のうち、ローダプログラムと第３鍵情報と公開鍵情報とを第１鍵情報を用いて復号して取得し、当該ローダプログラムに従って、前記記憶部に格納されている暗号化され、署名された第２鍵情報とアクセスプログラムとを読み出し、前記公開鍵情報を用いて、署名を検証し、署名の検証が成功したときに、暗号化されている第２鍵情報とアクセスプログラムとを、前記第３鍵情報を用いて復号し、アクセスプログラムの処理を実行する、ことを特徴としている。
【００１１】
また、本発明の一態様に係るデバイス制御方法は、少なくとも一つのデバイスに接続され、第１鍵情報を記憶するプロセッサと、前記第１鍵情報を用いた復号処理により復号可能なように、第２鍵情報を暗号化した、暗号化第２鍵情報を記憶する記憶部とを備える装置におけるデバイス制御方法であって、前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行うことを特徴としている。
【００１２】
さらに本発明の別の態様に係るプログラムは、少なくとも一つのデバイスに接続され、第１鍵情報を記憶するプロセッサと、前記第１鍵情報を用いた復号処理により復号可能なように、第２鍵情報を暗号化した、暗号化第２鍵情報を記憶する記憶部とを備えるコンピュータに、前記プロセッサからデバイスへのアクセス指示があった場合に、前記第２鍵情報を用いた認証を行い、認証がされたときに前記アクセス指示に基づくデバイスへのアクセス制御を行う手順を実行させることを特徴としている。
【発明を実施するための最良の形態】
【００１３】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係るデバイス制御装置は、図１に示すように、互いに外部バスを介して接続された中央制御ユニット１０と、デバイス制御ユニット２０と、記憶ユニット３０とを含んで構成されている。ここで中央制御ユニット１０は、制御部１１と、メモリ１２と、不揮発性メモリ１３とを含み、デバイス制御ユニット２０は、制御部２１と、メモリ２２と、不揮発性メモリ２３とを含む。記憶ユニット３０は、不揮発性メモリ３１を含んで構成されている。
【００１４】
中央制御ユニット１０は、本発明のプロセッサに相当し、その制御部１１は、ＣＰＵコア（演算処理要素）などであり、メモリ１２や不揮発性メモリ１３に保持されたプログラムに従って動作する。本実施の形態では、この制御部１１は、デバイスへのアクセスの処理を実行する。
【００１５】
メモリ１２は、例えばＲＡＭ（Random Access Memory）であり、制御部１１に対してプロセッサ内部バスを介して接続されている。このメモリ１２は、制御部１１のワークメモリとして動作する。
【００１６】
不揮発性メモリ１３は、ＮＶＲＡＭ（Non-volatile Random Access Memory）や、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）などであり、制御部１１に対してプロセッサ内部バスを介して接続されている。この不揮発性メモリ１３は、制御部１１によって実行されるプログラムや、製造時に生成されるプロセッサ・キー（第１鍵情報）ＭＫを保持している。
【００１７】
デバイス制御ユニット２０は、本発明のインタフェース部に相当し、制御の対象となるデバイスに接続される。このデバイス制御ユニット２０の制御部２１は、ＣＰＵコアなどであり、メモリ２２や不揮発性メモリ２３に保持されたプログラムに従って動作する。本実施の形態では、この制御部２１は、デバイスへのアクセスの処理を実行する。中央制御ユニット１０から入力されるデバイスへのアクセス指示に従って、接続されたデバイスを制御する。本実施の形態では、この制御部２１は、暗号化された状態でデバイスの制御に関する指示データ等、種々のデータを受け取り、当該暗号化された指示データ等の各種データを、デバイス・キーＫで復号して、デバイスの制御を行うなどの処理を行う。ここで制御の対象となるデバイスは、ネットワークを介して接続されるデバイスであってもよい。
【００１８】
メモリ２２は、ＲＡＭなどであり、制御部２１に対してプロセッサ内部バスを介して接続されている。このメモリ２２は、制御部２１のワークメモリとして動作する。また不揮発性メモリ２３は、ＮＶＲＡＭやＥＥＰＲＯＭなどであり、制御部２１に対してプロセッサ内部バスを介して接続されている。この不揮発性メモリ２３は、制御部２１によって実行されるプログラムや、製造時に生成されるデバイス・キー（第２鍵情報）Ｋを保持している。
【００１９】
記憶ユニット３０の不揮発性メモリ３１は、ＮＶＲＡＭやＥＥＰＲＯＭなどであり、中央制御ユニット１０の制御部１１によって実行されるプログラムや、各種パラメータ情報を保持している。本実施の形態では、この不揮発性メモリ３１には、プログラムを読み込むローダプログラムと、ローダプログラムに対して予め設定されたローダ暗号鍵（第３鍵情報）ＥＫと、デバイス・キーＫと、デバイスへのアクセスを行うプログラムＰとが格納されている。ここで、ローダプログラムloaderとローダ暗号鍵情報ＥＫとは連接されて、プロセッサ・キーＭＫで暗号化されている。以下、このように連接されていることを、
（loader||ＥＫ）
と表記し、これがプロセッサ・キーＭＫで暗号化されていることを、
Ｅ（ＭＫ，（loader||ＥＫ））
と表記する。
【００２０】
ここでの暗号化の方式は、対称鍵の方式であり、このＥ（ＭＫ，（loader||ＥＫ））の情報は、プロセッサ・キーＭＫによって復号できる。
【００２１】
さらに、この不揮発性メモリ３１に格納されているデバイス・キーＫや、デバイスにアクセスするプログラムＰは、それぞれ、ローダ暗号鍵ＥＫによって対称鍵暗号化されている。つまり、それぞれ、
Ｅ（ＥＫ，Ｋ）、
Ｅ（ＥＫ、Ｐ）
として、不揮発性メモリ３１に保持されている。これらは、ローダ暗号鍵ＥＫによって復号できる。
【００２２】
ここでローダ暗号鍵ＥＫについては、本実施の形態の装置を製造する際に、所定製造数ごとに変更する。ここで所定製造数を「１」とすれば、機器ごとに個別のローダ暗号鍵を割り当てることとなるし、所定製造数を１ロットあたりの製造数とすれば、ロットごとに個別の暗号鍵を割り当てることになる。
【００２３】
なお、プロセッサ・キーＭＫもまた、本実施の形態の装置を製造する際に、所定製造数ごとに変更するようにしてもよい。
【００２４】
ここで、制御部１１の動作について説明する。制御部１１は、不揮発性メモリ３１に格納されているプログラムをメモリ１２に読み込んで処理を行う。この処理の具体例を図２を参照しながら説明する。まず、制御部１１は、記憶ユニット３０の不揮発性メモリ３１からローダプログラムとローダ暗号鍵と（Ｅ（ＭＫ，（loader||ＥＫ）））を取得する（Ｓ１）。
【００２５】
そして、制御部１１は、この取得した情報をプロセッサ・キーＭＫで復号し、取り出したローダプログラムとローダ暗号鍵とをメモリ１２に格納する（Ｓ２）。制御部１１は、ローダプログラムの処理を開始し、不揮発性メモリ３１から暗号化されたデバイス・キー（Ｅ（ＥＫ，Ｋ））と、暗号化されたプログラム（Ｅ（ＥＫ，Ｐ））とを取得する（Ｓ３）。そしてこれらを、メモリ１２に格納したローダ暗号鍵ＥＫを用いて復号する（Ｓ４）。
【００２６】
そして制御部１１は、復号したプログラムＰの実行を開始する。このとき制御部１１は、プログラムＰに復号したデバイス・キーＫを受け渡す（Ｓ５）。この受け渡しは、例えばプログラムＰがアクセス可能なメモリ空間にデバイス・キーＫを複写することで行ってもよいし、プログラムＰからの要求に応答して、デバイス・キーＫを受け渡す方法で行ってもよい。
【００２７】
制御部１１は、プログラムＰの処理として、デバイスへのアクセスを行う際は、デバイスの制御に係る指示データやデバイスに出力するデータ等、種々のデータＤを、デバイス・キーＫで暗号化し（Ｓ６）、当該暗号化したデータＥ（Ｋ，Ｄ）をデバイス制御ユニット２０に出力する（Ｓ７）。
【００２８】
デバイス制御ユニット２０の制御部２１は、既に述べたように、この暗号化されたデータを不揮発性メモリ２３に格納されているデバイス・キーＫで復号してデータを読み出し、当該データを用いてデバイスを制御し、または当該データをデバイスに出力する。
【００２９】
また、このデバイス制御ユニット２０の制御部２１は、デバイスから入力されたデータをデバイス・キーＫで暗号化し、中央制御ユニット１０の制御部１１に出力してもよい。この場合、制御部１１は、処理Ｓ４で復号して取得したデバイス・キーＫで復号して、デバイス側から入力されたデータを取得することになる。
【００３０】
本実施の形態によると、個別に設定するべき暗号鍵は、ローダ暗号鍵ＥＫまたはデバイス・キーＫの少なくともいずれか一方で済み、また、これらの暗号鍵を中央制御ユニット１０に格納する必要がない。つまり、プロセッサである中央制御ユニット１０を装置ごと、またはロットごとなどといった単位で個別に設定する必要がない。もっとも、すでに説明したように、プロセッサ・キーＭＫを装置ごと、あるいはロットごとに設定しても構わない。
【００３１】
なお、本実施の形態において、接続するデバイスごとに、それぞれ異なるデバイス・キーＫ1，Ｋ2，…を割り当てる場合や、一つのデバイスが複数のデバイス・キーを利用する場合は、各デバイスに対応するデバイス制御ユニット２０の不揮発性メモリに、対応するデバイスのデバイス・キーＫiを格納しておくとともに、記憶ユニット３０の不揮発性メモリ３１に、ローダ暗号鍵ＥＫによって、各デバイス・キーＫiを暗号化した情報、
Ｅ（ＥＫ，Ｋ1），Ｅ（ＥＫ，Ｋ2）…
を格納しておき、中央制御ユニット１０側で、これらの情報を取得し、プログラムＰに受け渡せばよい。
【００３２】
またここで、各デバイス・キーＫiを個別に暗号化するのではなく、連接してから暗号化してもよい。すなわち、デバイス・キー群を、
Ｅ（ＥＫ，Ｋ1||…||Ｋn）
として暗号化してもよい。
【００３３】
この場合は、デバイス・キー群を連接した情報を中央制御ユニット１０が取得して、各デバイス・キーＫiを取得することとなる。
【００３４】
さらに本実施の形態では、電子署名を付加して、暗号化された情報の認証を行ってもよい。すなわち、この認証を行う例では、認証に用いるローダ公開鍵ＥＰＫと、それに対応するローダ秘密鍵ＥＳＫとを発行しておく。そして、デバイス・キー群を例えば連接してローダ暗号鍵ＥＫで暗号化した情報、
Ｅ（ＥＫ，Ｋ1||…||Ｋn）
と、プログラムＰとを暗号化した情報、
Ｅ（ＥＫ，Ｐ）
とをローダ秘密鍵ＥＳＫを用いて署名する。以下、これらを署名した情報をそれぞれ、
Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，Ｋ1||…||Ｋn））
Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，Ｐ））
と表記する。
【００３５】
また、ローダ公開鍵ＥＰＫは、ローダプログラムloader、及びローダ暗号鍵ＥＫとともに連接し、プロセッサ・キーＭＫで暗号化しておく。つまり、
Ｅ（ＭＫ，（loader||ＥＫ||ＥＰＫ））
としておく。
【００３６】
これら、ローダプログラム、ローダ暗号鍵、及びローダ公開鍵を連接した情報と、デバイス・キー群の情報と、プログラムＰと、
Ｅ（ＭＫ，（loader||ＥＫ||ＥＰＫ））
Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，Ｋ1||…||Ｋn））
Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，Ｐ））
は、記憶ユニット３０の不揮発性メモリ３１に格納される。
【００３７】
このように認証を行う際の制御部１１の動作は、例えば図３に示すようなものになる。まず、制御部１１は、記憶ユニット３０の不揮発性メモリ３１からローダプログラムとローダ暗号鍵とローダ公開鍵と（Ｅ（ＭＫ，（loader||ＥＫ||ＥＰＫ）））を取得する（Ｓ１１）。
【００３８】
そして、制御部１１は、この取得した情報をプロセッサ・キーＭＫで復号し（Ｓ１２）、取り出したローダプログラムloaderとローダ暗号鍵ＥＫとローダ公開鍵ＥＰＫとをメモリ１２に格納する。制御部１１は、ローダプログラムの処理を開始し、不揮発性メモリ３１から暗号化され、署名されたデバイス・キー（Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，Ｋ1||…||Ｋn）））と、暗号化され、署名されたプログラム（Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，Ｐ）））とを取得する（Ｓ１３）。
【００３９】
制御部１１は、これらの署名された情報を、ローダ公開鍵ＥＰＫを用いて検証する（Ｓ１４）。ここで検証に失敗したときには、処理を終了する。
【００４０】
一方検証に成功したときには、暗号化された各情報を、メモリ１２に格納したローダ暗号鍵ＥＫを用いて復号する（Ｓ１５）。そして制御部１１は、復号したプログラムＰの実行を開始する。このとき制御部１１は、プログラムＰに復号したデバイス・キー群を受け渡す（Ｓ１６）。
【００４１】
制御部１１は、プログラムＰの処理として、デバイスへのアクセスを行う際は、デバイスの制御に係る指示データや、デバイスに出力するデータ等、種々のデータＤを、アクセスの対象となるデバイスに対応するデバイス・キーＫiで暗号化し（Ｓ１７）、当該暗号化したデータＥ（Ｋi，Ｄ）を、対応するデバイス制御ユニット２０に出力する（Ｓ１８）。
【００４２】
デバイス制御ユニット２０の制御部２１は、既に述べたように、この暗号化されたデータを不揮発性メモリ２３に格納されているデバイス・キーＫiで復号してデータを読み出し、当該データを用いてデバイスを制御し、または当該データをデバイスに出力する。
【００４３】
また、この場合も、デバイス制御ユニット２０の制御部２１は、デバイスから入力されたデータをデバイス・キーＫiで暗号化し、中央制御ユニット１０の制御部１１に出力してもよい。この場合、制御部１１は対応するデバイス・キーＫiで復号して、デバイス側から入力されたデータを取得することになる。
【００４４】
なお、ここではデバイスにアクセスするプログラムＰは一種類としているが、複数あっても構わない。この場合、各プログラムＰ1，Ｐ2，…を、暗号化したデータ
Ｅ（ＥＫ，Ｐ1）、Ｅ（ＥＫ，Ｐ2）…
を記憶ユニット３０の不揮発性メモリ３１に格納しておき、制御部１１は、例えばユーザの指示に基づいて、指示されたプログラムを取得して復号するようにすればよい。
【００４５】
また、プログラムごとに、アクセス可能なデバイスを制限することもできる。すなわち、各プログラムに対して、利用可能なデバイス・キーを特定する情報（ケイパビリティ情報）を関連づけて、不揮発性メモリ３１に格納しておき、制御部１１は、実行するプログラムに関連づけられたケイパビリティ情報を参照して、利用可能とされたデバイス・キーのみを受け渡す。
【００４６】
ここでケイパビリティ情報は、例えば、設定可能なデバイス・キーの最大数よりも大きいビット数の数値でよい。この数値を用いる場合、各ビットにデバイス・キーＫiを関連づける。例えば、ｉビット目がｉ番目のデバイス・キーＫiを利用可能か否かを表すビットであるなどとしておく。そしてプログラムごとに、利用可能なデバイス・キーに対応するビットを「１」とし、利用可能でないデバイス・キーに対応するビットを「０」とする。例えば設定可能なデバイス・キーが１００であるとすると、１２８ビットのビット列とすればよい。
【００４７】
こうして設定したケイパビリティ情報を、対応するプログラムに関連づけて記憶ユニット３０の不揮発性メモリ３１に格納しておく。例えば、プログラムＰjと、ケイパビリティ情報Ｃjとを関連づける方法として、これらを連接して暗号化し、
Ｓｉｇ（ＥＳＫ，Ｅ（ＥＫ，（Ｐj||Ｃj）））
として記憶ユニット３０の不揮発性メモリ３１に格納しておけばよい。また、例えばプログラムＰのヘッダ部（ＥＬＦヘッダ等）にケイパビリティ情報を含めてもよい。
【００４８】
さらに、中央制御ユニット１０の不揮発性メモリ１３に、予め発行したプロセッサ公開鍵ＭＰＫを格納し、ローダプログラムやローダ暗号鍵を暗号化したデータに、プロセッサ公開鍵ＭＰＫに対応するプロセッサ秘密鍵ＭＳＫを用いて署名を行ってもよい。
【００４９】
この場合、
Ｅ（ＭＫ，（loader||ＥＫ||ＥＰＫ））
に代えて、プロセッサ秘密鍵ＭＳＫを用いて署名したデータ、
Ｓｉｇ（ＭＳＫ，Ｅ（ＭＫ，（loader||ＥＫ||ＥＰＫ）））
を記憶ユニット３０の不揮発性メモリ３１に格納しておく。
【００５０】
制御部１１は、この署名されたデータを取得すると、プロセッサ公開鍵ＭＰＫを用いて、署名を認証する処理を行い、認証がされない場合は、以下の処理を中断する。また、認証がされた場合は、処理を続け、ローダプログラムや、ローダ暗号鍵を復号して、ローダプログラムの処理を開始する。
【００５１】
さらに、ここまでの説明において、ローダ暗号鍵やローダ公開鍵は、複数あってもよい。この場合、例えば、第１のローダ暗号鍵ＥＫ1で、デバイス・キー群を暗号化し、
Ｅ（ＥＫ1，Ｋ1||…||Ｋn）
としておき、第２のローダ暗号鍵ＥＫ2で、プログラム（もしあれば、ケイパビリティ情報を含む）を暗号化して、
Ｅ（ＥＫ2，Ｐ）
としておく。
【００５２】
そして、必要に応じてこれらをそれぞれ第１、第２のローダ公開鍵に対応する、第１、第２のローダ秘密鍵ＥＳＫ1，ＥＳＫ2で署名し、
Ｓｉｇ（ＥＳＫ1，Ｅ（ＥＫ1，Ｋ1||…||Ｋn））
Ｓｉｇ（ＥＳＫ2，Ｅ（ＥＫ2，Ｐ））
として、これらを記憶ユニット３０の不揮発性メモリ３１に格納する。
【００５３】
さらに、複数のローダ暗号鍵やローダ公開鍵は連接して、ローダプログラムとともにプロセッサ・キーＭＫで暗号化し、さらに、必要に応じてプロセッサ秘密鍵ＭＳＫで署名するなどして、
Ｓｉｇ（ＭＳＫ，Ｅ（ＭＫ，（loader||ＥＫ1||ＥＰＫ1||ＥＫ2||ＥＰＫ2）））
として、記憶ユニット３０の不揮発性メモリ３１に格納しておく。
【００５４】
制御部１１は、これらの情報を取得し、署名を認証して、認証された場合は、対応するキーで各情報を復号して、既に説明した処理を実行する。
【００５５】
また、ここまでの説明でのデバイスは、例えば他のプロセッサでもよい。この場合、デバイスの制御に係る指示データ等のデータは、他のプロセッサに対する通信メッセージなどであってもよい。
【００５６】
このように本実施の形態によれば、個別に設定するべき暗号鍵は、ローダ暗号鍵ＥＫまたはデバイス・キーＫのいずれか一方で済み、また、これらの暗号鍵を中央制御ユニット１０に格納する必要がない。つまり、プロセッサである中央制御ユニット１０を装置ごと、またはロットごとなどといった単位で個別に設定する必要がなく、生産性を向上できる。
【００５７】
さらに、プロセッサ・キーなどがユニット内でのみ平文として参照でき、外部から参照されることがないので、情報漏洩の可能性を低減できる。
【図面の簡単な説明】
【００５８】
【図１】本発明の実施の形態に係るデバイス制御装置の構成ブロック図である。
【図２】本発明の実施の形態に係るデバイス制御装置の動作例を表すフローチャート図である。
【図３】本発明の実施の形態に係るデバイス制御装置のもう一つの動作例を表すフローチャート図である。
【符号の説明】
【００５９】
１０  中央制御ユニット、１１，２１  制御部、１２，２２  メモリ、１３，２３，３１  不揮発性メモリ、２０  デバイス制御ユニット、３０  記憶ユニット。
【図１】
0004448800.tif 000002
【図２】
0004448800.tif 000003
【図３】
0004448800.tif 000004