(57)【要約】【課題】ホストコントローラ内部にある秘匿情報を保存する複数個のレジスタ領域を上位のアプリケーション（処理タスク）で有効的に共有できるようにする。【解決手段】著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理手段を備え、管理手段は、既存の処理タスクに対するレジスタ領域の使用状況に関する情報を管理する使用状況管理機能と、レジスタ領域が既存の処理タスクによって占有されている場合であって、別処理タスクが新規に秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、使用状況に応じて、既存の処理タスクが占有するレジスタ領域を開放して別処理タスクに受け渡す開放機能とを有する。【選択図】図３
2011013789.tif 000002
【特許請求の範囲】
【請求項１】
著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理手段を備え、
前記管理手段は、
既存の処理タスクに対する前記レジスタ領域の使用状況に関する情報を管理する使用状況管理機能と、
前記レジスタ領域が既存の処理タスクによって占有されている場合であって、別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に応じて、前記既存の処理タスクが占有するレジスタ領域を開放して前記別処理タスクに受け渡す開放機能と
を有することを特徴とする情報処理装置。
【請求項２】
前記管理手段は、前記使用状況管理機能として、処理タスクが前記秘匿情報を用いる処理を開始する際に、各レジスタ領域に対する最終アクセス時刻を記録し、前記開放機能として、既存の処理タスクの最終アクセス時刻に基づいて、一定時間未使用状態のレジスタ領域があれば該レジスタ領域を開放することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記管理手段は、前記使用状況管理機能として、各処理タスクに対しポーリングにより使用状態を確認し、各処理タスクが占有する各レジスタ領域における最終アクセス時刻を更新することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記管理手段は、前記使用状況管理機能として、各処理タスクに対する優先度を管理し、前記開放機能として、全レジスタ領域が、対応する処理タスクによって占有されている場合に、別処理タスクからレジスタ使用要求があったときに、それより優先度の低い処理タスクが占有しているレジスタ領域があれば、該レジスタ領域を開放して該レジスタ領域を別処理タスクへ受け渡すことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
ある処理タスクのレジスタ領域が別処理タスクによって奪われた場合に、前記ある処理タスクが該レジスタ領域の秘匿情報を用いる処理を再開する際、使用可能な別レジスタ領域があれば、該レジスタ領域を確保し、新規セッションを開始することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記管理手段は、前記開放機能として、ある処理タスクが、対応するレジスタ領域を占有している場合で、ストレージドライブ・ロック命令を発行した場合に限り、前記所定の条件に依らず該レジスタ領域を開放しないことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記管理手段は、前記開放機能として、ある処理タスクが、対応するレジスタ領域を占有している場合で、前記ストレージドライブ・ロック命令により該レジスタ領域をロックしている場合に、前記処理タスクによるストレージドライブ・ロック解除命令の発行を受けることにより前記レジスタ領域のロック状態を解除することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
情報処理装置が有する制御手段により実行される情報処理方法であって、
著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理工程を備え、
前記管理工程は、
前記制御手段により、既存の処理タスクに対する前記レジスタ領域を使用状況に関する情報を管理する使用状況管理工程と、
前記制御手段により、前記レジスタ領域が既存の処理タスクによって占有されている場合であって、別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に応じて、前記既存の処理タスクが占有するレジスタ領域を開放して前記別処理タスクに受け渡す開放工程と
を含むことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、著作権保護が図られたデータを処理するための情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来より、著作権保護が図られたデータ（映像データ／音声データ等）を処理するためのホストコントローラ、例えば著作権保護機能を有するメモリカード（例えば、ＳＤカード）のホストコントローラは、そのハードウェア内部のレジスタ領域に、各種鍵などの秘匿情報を、ＳＤカードとの認証やＳＤカードに記録されるコンテンツの暗号化／復号化など関連する処理を行うために保存している（例えば、特許文献１）。ＳＤカードのとの認証やコンテンツの暗号化／復号化などの処理をハードウェア（例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array））内部で行うことで、秘匿情報漏洩に対する安全性を高め、かつホストへのＣＰＵ負荷を低減させることができるものとなっている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３５７１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、秘匿情報を保存するレジスタの数は有限であるために、そのレジスタ領域を使用するアプリケーション（処理タスク）を同時起動することができる数は必然的に制限される。また、アプリケーション（処理タスク）が異常終了した場合に、そのレジスタ領域が占有された状態のままになってしまうという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、ホストコントローラ内部にある秘匿情報を保存する複数個のレジスタ領域を、上位のアプリケーション（処理タスク）で有効的に共有できるようにした情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の情報処理装置は、著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理手段を備え、前記管理手段は、既存の処理タスクに対する前記レジスタ領域の使用状況に関する情報を管理する使用状況管理機能と、前記レジスタ領域が既存の処理タスクによって占有されている場合であって、別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に応じて、前記既存の処理タスクが占有するレジスタ領域を開放して前記別処理タスクに受け渡す開放機能とを有することを特徴とする。
【０００７】
また、本発明は、情報処理装置が有する制御手段により実行される情報処理方法であって、著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理工程を備え、前記管理工程は、前記制御手段により、既存の処理タスクに対する前記レジスタ領域を使用状況に関する情報を管理する使用状況管理工程と、前記制御手段により、前記レジスタ領域が既存の処理タスクによって占有されている場合であって、別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に応じて、前記既存の処理タスクが占有するレジスタ領域を開放して前記別処理タスクに受け渡す開放工程とを含むことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、ホストコントローラ内部にある秘匿情報を保存する複数個のレジスタ領域を、上位のアプリケーション（処理タスク）で有効的に共有できるようにすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施形態で使用するホストコントローラのシステム構造を示した図である。
【図２】図２は、図１に示した鍵ＢＡＮＫの詳細構造を示した図である。
【図３】図３は、本実施形態におけるホストコントローラを使用する上位アプリケーション（処理タスク）と、その間に介在する様々なソフトウェアモジュールについて示した図である。
【図４】図４は、図３に示したミドルウェア内部の詳細構造を示した図である。
【図５】図５は、本実施形態における上位アプリケーション（処理タスク）から下位のホストコントローラ間の動作概要を説明するためのシーケンス図である。
【図６】図６は、図５の続きを示すシーケンス図である。
【図７】図７は、本実施形態における鍵ＢＡＮＫの使用状態を取得するためのポーリング時のシーケンス図である。
【図８】図８は、本発明を適用可能な情報処理装置の一例としてのパーソナルコンピュータの斜視図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる情報処理装置一実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１１】
はじめに、本実施形態の情報処理装置で使用するホストコントローラのシステム構造について説明する。図１は本実施形態で使用するホストコントローラのシステム構造を示した図である。
【００１２】
図１に示すホストコントローラは、ＡＨＢマスタに接続されるＤＭＡコントローラ（ＤＭＡＣ）１０１を介して、著作権保護機能を有するＳＤカードなどのセキュアストレージデバイス（同図にて図示せず）とのデータ転送をおこなう。レジスタ領域１０２は、暗号ＩＰ設定部１０５と連結されており、この暗号ＩＰ設定部１０５により暗号ＩＰ演算部１０６はレジスタ１０２に保存された鍵情報等を使って様々な演算処理をする。なお、ＩＰとは、Intellectual Propertyの略である。
【００１３】
レジスタ領域１０２は、鍵などの秘匿情報を格納するための鍵ＢＡＮＫ１〜４（１０３ａ，１０３ｂ，１０３ｃ，１０３ｄ）を有している。このレジスタ領域１０２は、ＡＨＢスレーブＩ／Ｆ１０７を介してＡＨＢスレーブとも接続される。なお、図１では、４つの鍵ＢＡＮＫを例示しているがこれに限定するものではない。内部メモリ１０４は、鍵ＢＡＮＫ１０３中の鍵を用いて暗号ＩＰ演算部１０６が算出した様々な秘匿情報を一時的に保存するためのものであり、ドライバなどのソフトウェアからは参照することのできない領域である。なお、本ホストコントローラは、ハードウェアとして実装される。
【００１４】
続いて、鍵ＢＡＮＫの詳細構造について説明する。図２は、図１に示した鍵ＢＡＮＫの詳細構造を示した図である。
【００１５】
各鍵ＢＡＮＫには、複数の種類の鍵を保存することができ、各領域はそれの参照番号２０１、レジスタ１０２における参照アドレス２０２、および用途名（名称）２０３によりにより特定することができる。また、１つの鍵ＢＡＮＫに対して、１つの上位アプリケーション（処理タスク）が対応する１対１対応となっている。
【００１６】
次に、上記ホストコントローラを使用する上位アプリケーション（処理タスク）と、その間に介在する様々なソフトウェアモジュールについて説明する。図３は、ストレージデバイス３０１およびホストコントローラ３０２を使用する上位アプリケーション（処理タスク）３０７と、その間に介在する様々なソフトウェアモジュールについて示した図である。
【００１７】
ホストコントローラ３０２を使用する処理タスク３０７は同時に複数個存在していて、各処理タスクはそれぞれ、同図３０３に示す１つの鍵ＢＡＮＫ（図３の例では、処理タスク１に対して鍵ＢＡＮＫ１、処理タスク２に対して鍵ＢＡＮＫ２、処理タスク３に対して鍵ＢＡＮＫ３）を占有している。ホストコントローラ３０２の上位には、カーネルドライバ３０４があり、ホストコントローラ３０２へ制御コマンドを送信するためのインターフェースをミドルウェア３０５へ公開している。ミドルウェア３０５はオペレーティングシステム（ＯＳ）に依存するカーネルドライバ３０４とのインターフェース部を隠蔽するレイヤであり、ライブラリ３０６との中間に属するものである、また、ミドルウェア３０５は、ホストコントローラ３０２の鍵ＢＡＮＫ３０３を各処理タスクへの割り当てるための管理も司っている。
【００１８】
続いて、本実施形態の情報処理装置における、図３に示したミドルウェア３０５内部の詳細構造について説明する。図４は、ミドルウェア内部の詳細構造を示した図である。
【００１９】
図３に示したライブラリ３０６とのインターフェースは、図４に示す上位公開ＡＰＩ４０１である。上位のライブラリ３０６は、この上位公開ＡＰＩ４０１により公開された共通ＡＰＩをコールするように実装することで、プラットフォーム非依存なものとして開発することができる。各処理タスクへのＢＡＮＫ割り当てを管理するのは、ＢＡＮＫ管理部４０２である。ＢＡＮＫ管理部４０２は内部に、ＢＡＮＫ管理情報テーブルを持っており、それは管理対象ＢＡＮＫのＩＤ、使用状態（使用中／未使用）、処理タスクへ割り当てるハンドル、それを占有する処理タスクのＯｗｎｅｒ  ＩＤ（例えば、プロセスＩＤ）、最終アクセス時刻のフィールドから構成されている。
【００２０】
処理タスクが鍵ＢＡＮＫ中の鍵を使用する処理を実行する度に、ＢＡＮＫ管理情報テーブルのアクセス時刻が更新される。すべての鍵ＢＡＮＫが使用中状態で、新規処理タスクから鍵ＢＡＮＫ取得依頼（レジスタ使用要求）があった場合は、ＢＡＮＫ管理情報テーブル中の最終アクセス時刻を参照し、ある定められた一定時間アクセスのない鍵ＢＡＮＫがあれば、それを新規処理タスクへ開放して明け渡す。これにより、有限個の鍵ＢＡＮＫを多数の処理タスク間で有効的に共有することができる。
【００２１】
なお、上記で一定時間アクセスのないケースとしては、処理タスクが実行する処理過程の中で、実際にレジスタ領域にアクセスする必要が無くアクセスしていない場合と、処理タスクの異常終了により、レジスタ領域にアクセスしなくなっているケースがある。したがって、処理タスクが異常終了している場合、該当のレジスタ領域は最終的に開放されることになり、処理タスクによりレジスタ領域が占有状態になるのを回避することができる。
【００２２】
空きの鍵ＢＡＮＫがない場合に、どの鍵ＢＡＮＫを開放するかの指標については、上記のように各鍵ＢＡＮＫへの最終アクセス時刻の他に、アプリケーション毎、処理タスク毎の優先度も考えることができる（コンテンツ毎の優先度も考慮するようにしてもよい）。優先度を考慮する場合、新規処理タスクの優先度より低い優先度の処理タスクが鍵ＢＡＮＫを占有していた場合は、それを新規処理タスクへ開放し明け渡す。なお、優先度は予めデフォルト値が設定されていてもよいし、ユーザが入力設定するようにしてもよい。
【００２３】
また、処理タスクによっては、レジスタ領域を常時確保する必要がある場合がある。そのために、処理タスクは、レジスタ領域を常時確保するための「ストレージドライブ・ロック命令」を発行することができる。この命令を受けたミドルウェア３０５は、最終アクセス時刻や優先度に対する上記条件にかかわらずレジスタ領域の開放は行わない。また、処理タスクは、「ストレージドライブ・ロック命令」によって確保したレジスタ領域のロック状態を解除するための「ストレージドライブ・ロック解除命令」を発行することができる。この命令を受けたミドルウェア３０５は、レジスタ領域に対し前述の通常動作を行う。
【００２４】
なお、本ミドルウェア３０５は、動的ライブラリとして実装されるものであり、ＢＡＮＫ管理情報テーブルはそれがロードされるすべてのプロセスから参照される共有情報であるため、ＢＡＮＫ管理情報テーブルは共有メモリ空間などで管理するようにする。
【００２５】
続いて、ハンドル管理部４０４は、初期化処理単位で各処理タスクへと割り当てるハンドルの割り当てを司っている。ホストコントローラ３０２の制御は、ＡＰＩ制御部４０３と制御コマンド生成部４０５と制御コマンド送信部４０６が担っており、上位公開ＡＰＩ４０１を通じてＡＰＩ制御部４０３が受けた要求に応じて制御コマンド生成部４０５が制御コマンドを生成する。そして、制御コマンド生成部４０５で生成された制御コマンドがＡＰＩ制御部４０３を介して制御コマンド送信部４０６へと渡されて、ホストコントローラ３０２を駆動する下位ドライバ（カーネルドライバ３０４）へと送信される。
【００２６】
（動作概要）
次に、上位アプリケーション（処理タスク）から下位のホストコントローラ間の動作概要を図５のシーケンス図を参照し説明する。図５は、上位アプリケーション（処理タスク）から下位の暗号ＩＰコア間の動作概要を示したシーケンス図である。なお、ライブラリ、ミドルウェアおよびカーネルドライバが行う処理は、具体的には、これらに含まれる各種処理プログラムが、受けた要求または指示に応じて呼び出され、本実施形態の情報処理装置に備わる制御手段（ＣＰＵ）によって実行される。なお、以下の説明および図６および図７を用いてする後述の説明における処理タスク、ライブラリ、ミドルウェア、カーネルドライバはそれぞれ、前述の処理タスク３０７、ライブラリ３０６、ミドルウェア３０５、カーネルドライバ３０４に相当する。
【００２７】
まず、処理タスクは起動時に、システム初期化処理が行う。処理タスクからのシステム初期化処理の要求（ｔ１０１）は、ライブラリを介してミドルウェアに伝達され、ミドルウェアにより、接続されているストレージデバイスの検索（ｔ０１２）が行われる。その際、ミドルウェアからストレージ検索の指示がカーネルドライバへ渡されカーネルドライバがホストコントローラを介してストレージデバイスに確認コマンドを発行する（ｔ１０３）。ストレージデバイスからのコマンドレスポンスはホストコントローラを介してカーネルドライバへ渡され（ｔ１０４）、カーネルドライバはミドルウェアに検索結果を返却する（ｔ１０５）。この検索結果は、ミドルウェアからライブラリを介して処理タスクに渡される。そしてこの一連のシステム初期化処理が終了する（ｔ１０６）。
【００２８】
次に、処理タスクは、セキュリティ初期化処理として、以降の処理で必要となるハンドルを取得する。ここでは、処理タスクがライブラリにセキュリティ初期化処理を要求すると（ｔ１０７）、ライブラリがミドルウェアにハンドル取得を要求し（ｔ１０８）、ミドルウェアからライブラリにハンドルが返却される（ｔ１０９）。このハンドルは、処理単位を区別するためのＩＤのようなものであり、以降の処理においてハンドルを渡すことにより処理単位を区別することができる。
【００２９】
ハンドルを取得したライブラリは、続いて、機器認証の開始を、ミドルウェアおよびカーネルドライバを介してホストコントローラに要求する（ｔ１１０）。ホストコントローラは、ストレージデバイスとの機器認証をおこない、相互に不正な機器ではないことを確認する（ｔ１１１）。この機器認証処理は、処理タスクからライブラリにセキュリティ初期化処理が要求され、ライブラリからミドルウェアおよびカーネルドライバを介してホストコントローラへと機器認証開始のコマンドが発行されることで開始される。機器認証処理は、ホストコントローラ内部のレジスタに保存されている秘匿情報をもとに行われ、この処理過程において生成される鍵は鍵ＢＡＮＫへ保存される（ここまでの処理は、従来と同様である）。
【００３０】
以上のように機器認証処理が行われるが、機能の一つとしてレジスタ領域を管理する管理手段として機能するミドルウェアは、機器認証処理依頼を受けた際に事前に鍵ＢＡＮＫの確保をしなければならない。本実施形態のミドルウェアは、鍵ＢＡＮＫ割当ての管理を、ＢＡＮＫ情報管理テーブル（図４の４０２）を用いて行なう。鍵ＢＡＮＫ割り当ての際、すべての鍵ＢＡＮＫが使用中状態で、新規処理タスクから鍵ＢＡＮＫ取得依頼があった場合、前述のようにミドルウェアは、ＢＡＮＫ管理情報テーブル中の最終アクセス時刻を参照し、ある定められた一定時間アクセスのない鍵ＢＡＮＫがあれば、それを新規処理タスクへ開放して明け渡す。あるいは、新規処理タスクの優先度より低い優先度の処理タスクが鍵ＢＡＮＫを占有していた場合は、それを新規処理タスクへ開放し明け渡す。これにより、有限個の鍵ＢＡＮＫを多数のアプリケーション（処理タスク）間での有効的な共有を可能とする。
【００３１】
機器認証が成功すると、その結果がホストコントローラからカーネルドライバを介してミドルウェアに返され、ミドルウェアはライブラリに機器認証終了を通知し（ｔ１１２）、ライブラリは処理タスクにセキュリティ初期化処理終了を通知する（ｔ１１３）。なお、機器認証が失敗すると、処理タスクは該当のストレージデバイスを使用できないことになる。
【００３２】
機器認証が成功すると、処理タスクはライブラリを介してセッション鍵生成リクエストをミドルウェアに発行する（ｔ１１４）。ミドルウェアは空きＢＡＮＫを確保した上でセッション鍵生成のコマンドをカーネルドライバに発行し（ｔ１１５，ｔ１１６）、カーネルドライバはセッション鍵生成コマンドをホストコントローラに送信する（ｔ１１７）。このコマンドを受けたホストコントローラはストレージデバイスとのＣｈａｌｌｅｎｇｅ−Ｒｅｓｐｏｎｓｅによる鍵交換メッセージの交換により、セッション鍵を生成する（ｔ１１８ａ，ｔ１１８ｂ）。生成されたセッション鍵は、ミドルウェアで予約されたホストコントローラの鍵ＢＡＮＫへ保存される。
【００３３】
ここでセッション鍵生成は成功しているので、セッション鍵生成のコマンドに対する応答（成功）がホストコントローラからカーネルドライバ、ミドルウェアへと通知され（ｔ１１９，ｔ１２０）、ミドルウェアからライブラリを介して処理タスクへセッション鍵生成終了が通知される（ｔ１２１）。以降、処理タスクからセッション鍵を用いた処理（これは従来と同様である）が開始されると（ｔ１２２）、処理タスクとホストコントローラの中間に介在するミドルウェアは、鍵ＢＡＮＫへのアクセス毎にその最終アクセス時刻を更新し記録する（ｔ１２３）。この最終アクセス時刻の使われ方は前述のとおりである。
【００３４】
ところで、処理タスクが鍵ＢＡＮＫを取得し、セッション鍵を生成してこれを鍵ＢＡＮＫへ保存した場合においても、一定時間それが未使用であると、本実施形態では前述のように別処理タスクに乗っ取られてしまう場合がある。以下に、鍵ＢＡＮＫが他の処理タスクに取られた場合の復帰手順を説明する。図６は、鍵ＢＡＮＫが他の処理タスクに取られた場合の復帰手順に関するシーケンス図である。
【００３５】
処理タスクが、ライブラリを介して再度セッション鍵を用いた処理を再開すると（ｔ２０１）、本例ではミドルウェアはこの処理タスクの使用ＢＡＮＫが他の処理タスク（他アプリ）に占有されていることを確認することになる（ｔ２０２）。その結果、ミドルウェアは、該当の鍵ＢＡＮＫが他の処理タスクに取られた旨を通知するエラー通知（エラーコード）をライブラリを介して処理タスクへ返す（ｔ２０３，ｔ２０４）。
【００３６】
鍵ＢＡＮＫを取られてしまった処理タスクは、エラー通知を受けると、ライブラリにセキュリティ終了処理を依頼し（ｔ２０５）、この依頼を受けたライブラリはミドルウェアにハンドル開放を要求する（ｔ２０６）。ミドルウェアからその応答（成功）が返されると（ｔ２０７）、ライブラリは処理タスクにセキュリティ終了処理の終了を通知する（ｔ２０８）。この後、処理タスクは、再びセキュリティ初期化処理の開始を要求し、ミドルウェアにてＢＡＮＫ情報管理テーブルに基づき別の空きＢＡＮＫを確保した後に機器認証処理を行い、さらに、ホストコントローラとストレージデバイスとの間で、鍵交換およびセッション鍵生成処理を実行する（ｔ２０９〜ｔ２２３；これらの処理は図５を用いて前述したｔ１０７〜１２１と同様である）。これら一連の処理が終了すると、再び処理タスクはセッション鍵を用いた処理を開始することができるようになる。
【００３７】
続いて、ミドルウェアが処理タスクをポーリングすることで鍵ＢＡＮＫの使用状態を取得する場合の動作について図７を用いて説明する。図７は、ミドルウェアが上位アプリケーション（処理タスク）をポーリングすることで鍵ＢＡＮＫの使用状態を取得する場合のシーケンス図である。
【００３８】
ミドルウェアは、ポーリングするために常駐タスクを起動させ、一定時間ごとに各アプリケーション（処理タスク）に対して鍵ＢＡＮＫの使用状態を尋ね（ｔ３０１，ｔ３０２，ｔ３０４，ｔ３０５）、それをＢＡＮＫ情報管理テーブルにて管理をする。ポーリングに応じて処理タスクから使用中との回答を得た場合に、その時刻を最終アクセス時刻としてＢＡＮＫ情報管理テーブルに書き込む（ｔ３０３，ｔ３０６）。一方、未使用との回答を得た場合には、ＢＡＮＫ情報管理テーブルからこの処理タスクのＯｗｎｅｒ  ＩＤに該当するエントリを削除する。本例での最終アクセス時刻をどの鍵ＢＡＮＫを開放するかの指標として使っても、前述したものと同様に、鍵ＢＡＮＫの共有管理をすることができる。
【００３９】
以上、本実施形態における各部の構成および上位アプリケーション（処理タスク）から下位のホストコントローラ（及びストレージデバイス）間の動作概要を説明した。以上の説明では、本実施形態の要となるミドルウェアが鍵ＢＡＮＫの管理を行うものとしてしている。セキュリティに係る処理は下位で行うのが好ましく、もちろん、鍵ＢＡＮＫの管理をカーネルドライバやホストコントローラにおいて行っても良い。しかし、ミドルウェアで行う場合は、カーネルドライバで行う場合に対して、プラットフォームに依存しない構成とすることができるという利点があり、また、ハードウェアであるホストコントローラで行う場合に対して、コスト的メリットがある。
【００４０】
（本実施形態の情報処理装置の具体例）
次に、本発明を適用可能な情報処理装置の一例としてパーソナルコンピュータを図８に例示し、その概要を説明する。図８は、本発明を適用可能な情報処理装置の一例としてのパーソナルコンピュータの斜視図である。
【００４１】
パーソナルコンピュータ８００は、本体８０１と、表示ユニット８０２とを備えている。表示ユニット８０２は、ディスプレイハウジング８０３と、このディスプレイハウジング８０３に収容された表示装置８０４とを備えている。
【００４２】
本体８０１は、筐体８０５と、キーボード８０６と、ポインティングデバイスであるタッチパッド８０７とを備えている。筐体８０５内部には、メイン回路基板、ホストインターフェース、ＯＤＤユニット（Optical Disk Device）、カードスロット等が収容されている。
【００４３】
カードスロットは、筐体８０５の周壁に設けられている。この周壁には、カードスロット用の開口部８０８が設けられている。ユーザは、この開口部８０８を通じて筐体８０５の外部からＳＤカード等のメモリカード３０１をカードスロットに挿抜することが可能である。
【００４４】
なお、本発明を適用可能な情報処理装置としては、上記のようなパーソナルコンピュータに限らず、携帯電話、ＰＤＡ（Personal Digital Assistant）、デジタルスチルカメラ、デジタルビデオカメラ、デジタルテレビジョン受像機等もあり、著作権保護が図られたデータを処理する機能を有する情報処理装置であれば本発明を適用できる。
【００４５】
また、前述のアプリケーション、ライブラリ、ミドルウェア、カーネルドライバなどの各ソフトウェア（プログラム）は、ＲＯＭ、ＨＤＤ等に予め組み込まれて提供される。また、上記プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、ＳＤカード等のメモリカードなどのコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。あるいは、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供または配布するように構成しても良い。
【符号の説明】
【００４６】
１０１…ＤＭＡコントローラ、１０２…レジスタ領域、１０３ａ、１０３ｂ、１０３ｃ、１０３ｄ…鍵ＢＡＮＫ、１０４…内部メモリ、１０５…暗号ＩＰ設定部、１０６…暗号ＩＰ演算部、１０７…ＡＨＢスレーブインタフェース、２０１…参照番号、２０２…参照アドレス、２０３…用途名（名称）、３０１…ストレージデバイス（メモリカード）、３０２…ホストコントローラ、３０３…鍵ＢＡＮＫ、３０４…カーネルドライバ、３０５…ミドルウェア、３０６…ライブラリ、３０７…処理タスク、４０１…上位公開ＡＰＩ、４０２…ＢＡＮＫ管理部、４０３…ＡＰＩ制御部、４０４…ハンドル管理部、４０５…制御コマンド生成部、４０６…制御コマンド送信部
【図１】
2011013789.tif 000003
【図２】
2011013789.tif 000004
【図３】
2011013789.tif 000005
【図４】
2011013789.tif 000006
【図５】
2011013789.tif 000007
【図６】
2011013789.tif 000008
【図７】
2011013789.tif 000009
【図８】
2011013789.tif 000010
【手続補正書】
【提出日】平成22年10月6日(2010.10.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理手段を備え、
前記管理手段は、
処理タスクが前記秘匿情報を用いる処理を開始する際に、各レジスタ領域に対する最終アクセス時刻を記録することにより、既存の処理タスクに対する前記レジスタ領域の使用状況に関する情報を管理する使用状況管理機能と、
前記レジスタ領域が既存の処理タスクによって占有されているときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に関する情報に含まれる既存の処理タスクの最終アクセス時刻に基づいて、前記既存の処理タスクが占有するレジスタ領域のうち、一定時間未使用状態のレジスタ領域があれば該レジスタ領域を開放して前記別処理タスクに渡し、
前記レジスタ領域が既存の処理タスクによって占有されていないときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、開放されている前記レジスタ領域を前記別処理タスクに渡す開放機能と
を有することを特徴とする情報処理装置。
【請求項２】
前記管理手段は、前記使用状況管理機能として、各処理タスクに対しポーリングにより使用状態を確認し、各処理タスクが占有する各レジスタ領域における最終アクセス時刻を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
ある処理タスクのレジスタ領域が別処理タスクによって奪われた場合に、前記ある処理タスクが該レジスタ領域の秘匿情報を用いる処理を再開する際、使用可能な別レジスタ領域があれば、該レジスタ領域を確保し、新規セッションを開始することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記管理手段は、前記開放機能として、ある処理タスクが、対応するレジスタ領域を占有している場合で、ストレージドライブ・ロック命令を発行した場合に限り、前記所定の条件に依らず該レジスタ領域を開放しないことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記管理手段は、前記開放機能として、ある処理タスクが、対応するレジスタ領域を占有している場合で、前記ストレージドライブ・ロック命令により該レジスタ領域をロックしている場合に、前記処理タスクによるストレージドライブ・ロック解除命令の発行を受けることにより前記レジスタ領域のロック状態を解除することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
情報処理装置が有する制御手段により実行される情報処理方法であって、
著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理工程を備え、
前記管理工程は、
前記制御手段により、処理タスクが前記秘匿情報を用いる処理を開始する際に、各レジスタ領域に対する最終アクセス時刻を記録することによって、既存の処理タスクに対する前記レジスタ領域を使用状況に関する情報を管理する使用状況管理工程と、
前記制御手段により、前記レジスタ領域が既存の処理タスクによって占有されているときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に関する情報に含まれる既存の処理タスクの最終アクセス時刻に基づいて、前記既存の処理タスクが占有するレジスタ領域のうち、一定時間未使用状態のレジスタ領域があれば該レジスタ領域を開放して前記別処理タスクに渡し、
前記レジスタ領域が既存の処理タスクによって占有されていないときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、開放されている前記レジスタ領域を前記別処理タスクに渡す開放工程と
を含むことを特徴とする情報処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００６
【補正方法】変更
【補正の内容】
【０００６】
上述した課題を解決し、目的を達成するために、本発明の情報処理装置は、著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理手段を備え、前記管理手段は、処理タスクが前記秘匿情報を用いる処理を開始する際に、各レジスタ領域に対する最終アクセス時刻を記録することにより、既存の処理タスクに対する前記レジスタ領域の使用状況に関する情報を管理する使用状況管理機能と、前記レジスタ領域が既存の処理タスクによって占有されているときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に関する情報に含まれる既存の処理タスクの最終アクセス時刻に基づいて、前記既存の処理タスクが占有するレジスタ領域のうち、一定時間未使用状態のレジスタ領域があれば該レジスタ領域を開放して前記別処理タスクに渡し、前記レジスタ領域が既存の処理タスクによって占有されていないときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、開放されている前記レジスタ領域を前記別処理タスクに渡す開放機能とを有することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、本発明は、情報処理装置が有する制御手段により実行される情報処理方法であって、著作権保護が図られたデータへの処理に使用するホストコントローラ内部にある前記著作権保護機能のために用いる秘匿情報を保存する複数個のレジスタ領域を管理する管理工程を備え、前記管理工程は、前記制御手段により、処理タスクが前記秘匿情報を用いる処理を開始する際に、各レジスタ領域に対する最終アクセス時刻を記録することによって、既存の処理タスクに対する前記レジスタ領域を使用状況に関する情報を管理する使用状況管理工程と、前記制御手段により、前記レジスタ領域が既存の処理タスクによって占有されているときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、前記使用状況に関する情報に含まれる既存の処理タスクの最終アクセス時刻に基づいて、前記既存の処理タスクが占有するレジスタ領域のうち、一定時間未使用状態のレジスタ領域があれば該レジスタ領域を開放して前記別処理タスクに渡し、前記レジスタ領域が既存の処理タスクによって占有されていないときに別処理タスクが新規に前記秘匿情報を用いた処理を行なうためにレジスタ使用要求をした場合に、開放されている前記レジスタ領域を前記別処理タスクに渡す開放工程とを含むことを特徴とする。