(57)【要約】【課題】  セキュリティ機能モジュールに対応する処理を実行可能な省スペース型の情報処理装置構成を提供する。【解決手段】  ＭＰＵチップ内に、機器鍵を格納したセキュリティ機能モジュールを一体化して構成し、セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、機器鍵を適用した暗号化データとし、また改竄検証値を付与して外部記憶手段に格納する構成とした。本構成により、セキュリティ機能モジュール内に格納すべき秘密情報のデータ量を大幅に削減することが可能となり、大容量のフラッシュメモリが不要となるので、セキュリティ機能モジュールをメインＣＰＵを持つＭＰＵチップ内に一体化でき、実装面積の減少、コストダウンが可能となる。【選択図】  図２
2005227995.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であり、
データ処理プログラムを実行するプロセッサを格納したＭＰＵ（メイン・プロセッサ・ユニット）チップと、
前記ＭＰＵチップに接続された外部記憶手段とを有し、
前記ＭＰＵチップはメインＣＰＵと、セキュリティの要求されるデータ処理を実行するセキュリティ機能モジュールとを格納し、
前記セキュリティ機能モジュールは、
暗号処理に適用する機器鍵を保持し、前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、前記機器鍵を適用した暗号化データとして前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に格納された暗号化秘密情報を前記機器鍵を適用して復号し、該復号処理によって取得したプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行する構成であることを特徴とする情報処理装置。
【請求項２】
前記セキュリティ機能モジュールは、
前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報に対して改竄検証値を設定して前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に改竄検証値を設定して格納された秘密情報の改竄検証処理を実行し、該改竄検証処理によって改竄のないことが確認されたプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記外部記憶手段は、
前記メインＣＰＵの起動コードの少なくとも一部を前記機器鍵を適用した暗号化データとして格納し、
前記セキュリティ機能モジュールは、
前記外部記憶手段から取得した起動コードの復号を実行し、
復号によって得られた起動コードに基づいて、前記メインＣＰＵの起動処理を実行する構成であることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記機器鍵は、
前記ＭＰＵチップ内に構成されたフューズ型ＲＯＭ（ｅ−ｆｕｓｅ）、またはマスクＲＯＭ、または前記ＭＰＵチップに積層した不揮発性メモリチップ内に書き込まれたデータであることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
情報処理装置であり、
データ処理プログラムを実行するプロセッサを格納したＭＰＵ（メイン・プロセッサ・ユニット）チップと、
前記ＭＰＵチップに接続された外部記憶手段とを有し、
前記ＭＰＵチップはデータ処理を実行するプロセッサを持つＭＰＵと、暗号処理に適用する機器鍵を格納し、
前記ＭＰＵは、
通常ＯＳ上での動作プログラムを実行する通常モードと、セキュリティの要求されるデータ処理に対応するセキュアプログラムを実行するセキュアモードとの２つのモードでの動作が可能な構成であり、
前記セキュアモードで実行するプログラムまたはデータを含む秘密情報を、前記機器鍵を適用した暗号化データとして前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に格納された暗号化秘密情報を前記機器鍵を適用して復号し、該復号処理によって取得したプログラムまたはデータを適用して前記セキュアプログラムを実行する構成であることを特徴とする情報処理装置。
【請求項６】
前記ＭＰＵは、
前記セキュアモードで実行するプログラムまたはデータを含む秘密情報に対して改竄検証値を設定して前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に改竄検証値を設定して格納された秘密情報の改竄検証処理を実行し、該改竄検証処理によって改竄のないことが確認されたプログラムまたはデータを適用して前記セキュアプログラムを実行する構成であることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記外部記憶手段は、
前記通常モードに対応する通常ＯＳの起動コードの少なくとも一部を前記機器鍵を適用した暗号化データとして格納し、
前記ＭＰＵは、
前記セキュアプログラムに従って、前記外部記憶手段から取得した起動コードの復号を実行し、復号によって得られた起動コードに基づいて、前記通常ＯＳの起動処理を実行する構成であることを特徴とする請求項５に記載の情報処理装置。
【請求項８】
前記機器鍵は、
前記ＭＰＵチップ内に構成されたフューズ型ＲＯＭ（ｅ−ｆｕｓｅ）、またはマスクＲＯＭ、または前記ＭＰＵチップに積層した不揮発性メモリチップ内に書き込まれたデータであることを特徴とする請求項５に記載の情報処理装置。
【請求項９】
情報処理方法であり、
セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む暗号化秘密情報を外部記憶手段から取得するステップと、
セキュリティ機能モジュール内に格納された機器鍵を適用して前記暗号化秘密情報を復号するステップと、
復号した秘密情報の改竄検証処理を実行するステップと、
前記改竄検証処理によって改竄のないことが確認された秘密情報に含まれるプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行するデータ処理ステップと、
を有することを特徴とする情報処理方法。
【請求項１０】
前記情報処理方法は、さらに、
前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、前記機器鍵を適用した暗号化データとして前記外部記憶手段に格納する処理を実行するステップを有することを特徴とする請求項９に記載の情報処理方法。
【請求項１１】
前記情報処理方法は、さらに、
前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報に対して改竄検証値を設定して前記外部記憶手段に格納する処理を実行するステップを有することを特徴とする請求項９に記載の情報処理方法。
【請求項１２】
前記情報処理方法は、さらに、
前記外部記憶手段から取得した起動コードの復号を実行し、復号によって得られた起動コードに基づく起動処理を実行するステップを有することを特徴とする請求項９に記載の情報処理方法。
【請求項１３】
情報処理を実行するコンピュータ・プログラムであり、
セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む暗号化秘密情報を外部記憶手段から取得するステップと、
セキュリティ機能モジュール内に格納された機器鍵を適用して前記暗号化秘密情報を復号するステップと、
復号した秘密情報の改竄検証処理を実行するステップと、
前記改竄検証処理によって改竄のないことが確認された秘密情報に含まれるプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行するデータ処理ステップと、
を有することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。詳細には、暗号鍵等の秘密情報を適用したセキュアなデータ処理を実行するセキュリティ機能モジュールを有する情報処理装置において、暗号鍵等の秘密情報を格納する領域を外部の記憶手段に設定してセキュリティ機能モジュールの実装面積の減少を図るとともに十分なセキュリティレベルを維持したデータ処理を実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
暗号鍵等の秘密情報を適用してセキュアなデータ処理を実行するセキュリティ機能モジュールとしてＴＣＰＡ（トラステッド・コンピューティング・プラットフォーム・アライアンス）プロトコルに準拠したセキュアチップが知られている。このＴＣＰＡ準拠のセキュアチップはＴＰＭ（トラステッド・プラットフォーム・モジュール）と呼ばれる。
【０００３】
ＴＰＭは、例えばコンピュータ・ネットワーク中のクライアント・コンピュータ・システムに内蔵され、ネットワーク上で使用されるクライアントの適用する暗号鍵としての公開／秘密鍵のペアを生成し、これらの鍵を適用したデータの暗号処理など、外部に漏洩することの許容されないセキュアなデータ処理を実行するモジュールとして設定される。
【０００４】
セキュアチップを利用したデータ処理の具体例としては、例えば特許文献１に記載の例として、起動プログラムとしてのブートコードをセキュアチップ内のメモリに格納し、セキュアチップ内に格納した暗号鍵でブートコードを暗号化して、セキュアチップ外のメインＣＰＵに出力して、メインＣＰＵにおいて復号した後、ブート処理を実行する構成がある。この処理により、正当なブートコードのみによる起動処理が保証される。
【０００５】
昨今では、携帯型の情報処理装置や通信端末などにも、ＴＰＭ（トラステッド・プラットフォーム・モジュール）を構成して、セキュリティレベルの高いデータ処理を実行することが要請されている。しかし、携帯型の情報処理装置や通信端末はハードウェア実装面積が少ないことや、コストダウンの要求が厳しいなど様々な制約があり、一般のＰＣ等と同様のＴＰＭ（トラステッド・プラットフォーム・モジュール）を構成することは困難な状況にある。
【０００６】
ＰＣなどに設定される一般的なＴＰＭ（トラステッド・プラットフォーム・モジュール）を持つハードウェア構成例を図１に示す。
【０００７】
図１に示すように、ＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）、その他のアプリケーションプログラムを実行するメインＣＰＵ１１を持つＭＰＵ（メイン・プロセッサ・ユニット）チップ１０と、暗号鍵などの秘密情報を適用したセキュアなデータ処理を実行するＴＰＭ（トラステッド・プラットフォーム・モジュール）２１を持つＴＰＭチップ２０はそれぞれ個別のモジュールとして構成される。これは、ＭＰＵチップ１０が汎用的なプロセッサを搭載したチップとして構成され、一方、ＴＰＭ２１は、暗号鍵などの秘密情報を格納する不揮発性メモリを内蔵することが必要であることなどのためである。さらに、ハードディスクなどの外部記憶装置３１、ＲＡＭ，ＲＯＭなどによって構成されるメインメモリ３２、キーボード、マウス、ディスプレイなどによって構成される入出力装置３３を有する。
【０００８】
デスクトップ型パソコンなど、多くのハードウェアが搭載できる装置であれば、メインＣＰＵ１１を持つＭＰＵチップ１０と別のチップとしてＴＰＭ２１を持つＴＰＭチップ２０を搭載することは、スペース的に大きな問題とはならないが、前述したように、携帯型の機器などの小型の機器にＭＰＵチップとＴＰＭチップとを別チップとして搭載することは、機器の小型化を妨げる要因となり、また、コストアップという問題も生じさせる。
【特許文献１】ＵＳＰ５９３７０６３
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、上述の問題点に鑑みてなされたものであり、暗号鍵等の秘密情報を適用したセキュアなデータ処理を実行するセキュリティ機能モジュールを有する情報処理装置において、暗号鍵等の秘密情報を格納する領域を外部の記憶手段に設定してセキュリティ機能モジュールの実装面積の減少を図るとともに十分なセキュリティレベルを維持したデータ処理を実現する情報処理装置、および情報処理方法、並びにコンピュータ・プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の側面は、
情報処理装置であり、
データ処理プログラムを実行するプロセッサを格納したＭＰＵ（メイン・プロセッサ・ユニット）チップと、
前記ＭＰＵチップに接続された外部記憶手段とを有し、
前記ＭＰＵチップはメインＣＰＵと、セキュリティの要求されるデータ処理を実行するセキュリティ機能モジュールとを格納し、
前記セキュリティ機能モジュールは、
暗号処理に適用する機器鍵を保持し、前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、前記機器鍵を適用した暗号化データとして前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に格納された暗号化秘密情報を前記機器鍵を適用して復号し、該復号処理によって取得したプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行する構成であることを特徴とする情報処理装置にある。
【００１１】
さらに、本発明の情報処理装置の一実施態様において、前記セキュリティ機能モジュールは、前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報に対して改竄検証値を設定して前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に改竄検証値を設定して格納された秘密情報の改竄検証処理を実行し、該改竄検証処理によって改竄のないことが確認されたプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行する構成であることを特徴とする。なお、改竄検証を鍵付きメッセージ認証方式で実施する場合には、前記機器鍵を適用する。セキュリティレベルに応じて、機器鍵は暗号化に使うものと共通でも良いし、改竄検証用に別の機器鍵を用意して用いても良い。
【００１２】
さらに、本発明の情報処理装置の一実施態様において、前記外部記憶手段は、前記メインＣＰＵの起動コードの少なくとも一部を前記機器鍵を適用した暗号化データとして格納し、前記セキュリティ機能モジュールは、前記外部記憶手段から取得した起動コードの復号を実行し、復号によって得られた起動コードに基づいて、前記メインＣＰＵの起動処理を実行する構成であることを特徴とする。
【００１３】
さらに、本発明の情報処理装置の一実施態様において、前記機器鍵は、前記ＭＰＵチップ内に構成されたフューズ型ＲＯＭ（ｅ−ｆｕｓｅ）、またはマスクＲＯＭ、または前記ＭＰＵチップに積層した不揮発性メモリチップ内に書き込まれたデータであることを特徴とする。
【００１４】
さらに、本発明の第２の側面は、
情報処理装置であり、
データ処理プログラムを実行するプロセッサを格納したＭＰＵ（メイン・プロセッサ・ユニット）チップと、
前記ＭＰＵチップに接続された外部記憶手段とを有し、
前記ＭＰＵチップはデータ処理を実行するプロセッサを持つＭＰＵと、暗号処理に適用する機器鍵を格納し、
前記ＭＰＵは、
通常ＯＳ上での動作プログラムを実行する通常モードと、セキュリティの要求されるデータ処理に対応するセキュアプログラムを実行するセキュアモードとの２つのモードでの動作が可能な構成であり、
前記セキュアモードで実行するプログラムまたはデータを含む秘密情報を、前記機器鍵を適用した暗号化データとして前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に格納された暗号化秘密情報を前記機器鍵を適用して復号し、該復号処理によって取得したプログラムまたはデータを適用して前記セキュアプログラムを実行する構成であることを特徴とする情報処理装置にある。
【００１５】
さらに、本発明の情報処理装置の一実施態様において、前記ＭＰＵは、前記セキュアモードで実行するプログラムまたはデータを含む秘密情報に対して改竄検証値を設定して前記外部記憶手段に格納する処理を実行するとともに、前記外部記憶手段に改竄検証値を設定して格納された秘密情報の改竄検証処理を実行し、該改竄検証処理によって改竄のないことが確認されたプログラムまたはデータを適用して前記セキュアプログラムを実行する構成であることを特徴とする。
【００１６】
さらに、本発明の情報処理装置の一実施態様において、前記外部記憶手段は、前記通常モードに対応する通常ＯＳの起動コードの少なくとも一部を前記機器鍵を適用した暗号化データとして格納し、前記ＭＰＵは、前記セキュアプログラムに従って、前記外部記憶手段から取得した起動コードの復号を実行し、復号によって得られた起動コードに基づいて、前記通常ＯＳの起動処理を実行する構成であることを特徴とする。
【００１７】
さらに、本発明の情報処理装置の一実施態様において、前記機器鍵は、前記ＭＰＵチップ内に構成されたフューズ型ＲＯＭ（ｅ−ｆｕｓｅ）、またはマスクＲＯＭ、または前記ＭＰＵチップに積層した不揮発性メモリチップ内に書き込まれたデータであることを特徴とする。
【００１８】
さらに、本発明の第３の側面は、
情報処理方法であり、
セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む暗号化秘密情報を外部記憶手段から取得するステップと、
セキュリティ機能モジュール内に格納された機器鍵を適用して前記暗号化秘密情報を復号するステップと、
復号した秘密情報の改竄検証処理を実行するステップと、
前記改竄検証処理によって改竄のないことが確認された秘密情報に含まれるプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行するデータ処理ステップと、
を有することを特徴とする情報処理方法にある。
【００１９】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、前記機器鍵を適用した暗号化データとして前記外部記憶手段に格納する処理を実行するステップを有することを特徴とする。
【００２０】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、前記セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報に対して改竄検証値を設定して前記外部記憶手段に格納する処理を実行するステップを有することを特徴とする。
【００２１】
さらに、本発明の情報処理方法の一実施態様において、前記情報処理方法は、さらに、前記外部記憶手段から取得した起動コードの復号を実行し、復号によって得られた起動コードに基づく起動処理を実行するステップを有することを特徴とする。
【００２２】
さらに、本発明の第４の側面は、
情報処理を実行するコンピュータ・プログラムであり、
セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む暗号化秘密情報を外部記憶手段から取得するステップと、
セキュリティ機能モジュール内に格納された機器鍵を適用して前記暗号化秘密情報を復号するステップと、
復号した秘密情報の改竄検証処理を実行するステップと、
前記改竄検証処理によって改竄のないことが確認された秘密情報に含まれるプログラムまたはデータを適用してセキュリティの要求されるデータ処理を実行するデータ処理ステップと、
を有することを特徴とするコンピュータ・プログラムにある。
【００２３】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能なコンピュータ・システムに対して、コンピュータ可読な形式で提供する記録媒体、通信媒体、例えば、ＣＤやＦＤ、ＭＯなどの記録媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【００２４】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【発明の効果】
【００２５】
本発明の構成によれば、ＭＰＵチップ内に、機器鍵を格納したセキュリティ機能モジュールを一体化して構成し、セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、機器鍵を適用した暗号化データとし、また改竄検証値を付与して外部記憶手段に格納する構成としたので、セキュリティ機能モジュール内に格納すべき秘密情報のデータ量を大幅に削減することが可能となり、大容量の不揮発メモリが不要となるので、セキュリティ機能モジュールをメインＣＰＵを持つＭＰＵチップ内に一体化でき、実装面積の減少、コストダウンが可能となる。また、外部に記憶される秘密情報は、機器鍵を適用して暗号化されまた改竄検証値を付与したデータとして格納されるので、十分にセキュリティレベルを維持したデータ処理が実現される。
【００２６】
さらに、本発明の構成によれば、ＭＰＵチップ内にデータ処理を実行するプロセッサと、暗号処理に適用する機器鍵を格納し、ＭＰＵを、通常ＯＳ上での動作プログラムを実行する通常モードと、セキュリティの要求されるデータ処理に対応するセキュアプログラムを実行するセキュアモードとの２つのモードでの動作が可能な構成とし、セキュアモードで実行するプログラムまたはデータを含む秘密情報を、機器鍵を適用した暗号化データとし、また改竄検証値を設定して外部記憶手段に格納する構成としたので、セキュリティ機能モジュールを別構成のハードウェアとして持つ必要がなくなり、実装面積の減少、コストダウンが可能となる。また、外部に記憶される秘密情報は、機器鍵を適用して暗号化されまた改竄検証値を付与したデータとして格納されるので、十分にセキュリティレベルを維持したデータ処理が実現される。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の情報処理装置、および情報処理方法、並びにコンピュータ・プログラムの詳細について、図面を参照して説明する。
【実施例１】
【００２８】
図２は、本発明の実施例１に係る情報処理装置のハードウェア構成を示す図である。
【００２９】
図２に示す実施例１に係る情報処理装置のハードウェアは、ＯＳ、その他のアプリケーションプログラムを実行するメインＣＰＵ１１０と、暗号鍵などの秘密情報を適用したセキュアなデータ処理を実行する例えばＴＰＭ（トラステッド・プラットフォーム・モジュール）によって構成されるセキュリティ機能モジュール２００が１チップとしてのＭＰＵ（メイン・プロセッサ・ユニット）チップ１００に格納された構成を持つ。さらに、フラッシュメモリやハードディスクなどによって構成される外部記憶装置３０１、ＲＡＭ，ＲＯＭなどによって構成されるメインメモリ３０２、キーボード、マウス、ディスプレイなどによって構成される入出力装置３０３を有する。
【００３０】
ＭＰＵチップ１００に格納されたセキュリティ機能モジュール２００は、従来のＴＰＭとは異なり、モジュール内に暗号鍵などの秘密情報を格納するための容量の大きな不揮発性メモリを持たない構成である。従来のＴＰＭと区別するために、以下、本実施例１に係るＭＰＵチップ内に構成されたＴＰＭをＴＰＭ−Ｅ（Ｔｒａｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ  ｆｏｒ  Ｅｍｂｅｄｄｅｄ）と標記する。
【００３１】
ＭＰＵチップ１００に格納されたセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、暗号鍵などの秘密情報を適用したセキュアなデータ処理を実行する。しかし、本発明の情報処理装置において、暗号鍵などの秘密情報は、フラッシュメモリやハードディスクなどによって構成される外部記憶装置３０１に格納される。
【００３２】
外部記憶装置３０１に格納される暗号鍵などの秘密情報は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００に格納された機器鍵［Ｋｔ］２５２によって暗号化された暗号化データとして格納される。セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００には、機器ＩＤ２５１、機器鍵［Ｋｔ］２５２が格納される。図に示す外部記憶装置３０１には、一例として、機器鍵［Ｋｔ］２５２によって暗号化された暗号化データＫｔ（ａ），Ｋｔ（ｂ）・・・Ｋｔ（ｎ）を示してある。なお、Ｋｔ（ｘ）は、秘密情報ｘを機器鍵［Ｋｔ］２５２によって暗号化したデータであることを示している。
【００３３】
従来は、暗号鍵などの各種秘密情報ａ，ｂ，ｃ・・ｎをすべて格納するために、ＴＰＭ内に比較的容量の大きい不揮発性メモリを構成することが必要となっていた。しかし、本実施例のセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００には、これら多くの秘密情報を格納する大容量の不揮発性メモリを持たない構成である。
【００３４】
本実施例においては、これら多くの秘密情報を外部記憶装置３０１に格納し、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００には、機器鍵［Ｋｔ］２５２を格納する。機器鍵［Ｋｔ］２５２は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００においてのみアクセス可能であり、メインＣＰＵ１１０によるアクセスは許容されず、外部に機器鍵［Ｋｔ］２５２が出力されることはない。
【００３５】
機器鍵［Ｋｔ］は、ＭＰＵチップ１００の製造時にセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００に対応する固定データとして、例えばｅ−ｆｕｓｅ（フューズ型ＲＯＭ）データ、あるいはｍａｓｋＲＯＭデータとして書き込む。すなわち書き換え不可能な固定データとして書き込まれる。あるいは、比較的容量の小さいフラッシュメモリやＦｅＲＡＭなどの不揮発性メモリをマルチパッケージやシステムインパッケージとして積層する構成としてもよい。
【００３６】
なお、機器鍵［Ｋｔ］２５２は、各ＭＰＵチップ毎に異なる鍵データとして設定してもよく、あるいは、製造ロット単位など複数のチップに共通の鍵データとして設定してもよい。
【００３７】
セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００に保持する機器鍵［Ｋｔ］２５２は、図に示す外部記憶装置３０１に格納する各種の秘密情報の暗号化および復号処理に適用するための暗号鍵であり、機器、すなわちＭＰＵチップ１００を搭載した情報処理装置に要求されるセキュリティレベルに応じたデータ長を持つ鍵データとして設定される。
【００３８】
図に示す外部記憶装置３０１には、一例として、機器鍵［Ｋｔ］２５２によって暗号化された暗号化データＫｔ（ａ），Ｋｔ（ｂ）・・・Ｋｔ（ｎ）を示してあるが、機器鍵［Ｋｔ］２５２によって暗号化されるデータは、秘密保持の必要な様々なデータであり、各種のプログラムコード、暗号鍵、パスワード、その他のコードデータ、コンテンツなどのデータなど様々な情報が含まれる。
【００３９】
セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００の実行するデータ処理は、例えば以下のような処理である。
（１）秘密情報ａ，ｂ，ｃ・・・ｎを外部記憶装置３０１に格納するために機器鍵［Ｋｔ］２５２を適用して実行する暗号化処理、
（２）外部記憶装置３０１から読み出された暗号化秘密情報Ｋｔ（ａ），Ｋｔ（ｂ）・・・Ｋｔ（ｎ）を復号する処理、
（３）その他、新たな鍵の生成処理、認証処理、データの改竄検証処理、
これらの処理を実行する。
【００４０】
図３に、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００の詳細構成を示す。セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、図に示すように、プロセッサ２０１、ＲＯＭ２０２、メモリ２０３、機器鍵格納部２０４、入出力（Ｉ／Ｏ）インタフェース２０５、乱数生成器２０６、ハッシュ算出部２０７、鍵生成部２０８、暗号処理部２０９、クロック２１０を有し、これらはバスによって相互接続されている。
【００４１】
プロセッサ２０１は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００において実行するセキュアなデータ処理に係るプログラムの実行を制御する。さらに、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００各構成部におけるデータ処理制御、バスおよび入出力（Ｉ／Ｏ）インタフェース２０５を介したデータ入出力制御を実行する。
【００４２】
ＲＯＭ２０２、メモリ２０３は、プロセッサ２０１が使用するプログラムや演算パラメータ、外部記憶装置３０１からの読み出しデータの格納領域として適用される。
【００４３】
ＲＯＭ２０２には、プロセッサ２０１によって実行するセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００の起動処理プログラム、さらにセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００において実行するデータ処理プログラムであるＴＰＭ−Ｅ制御プログラムや鍵情報の少なくとも一部が格納されている。これらは例えばＭａｓｋＲＯＭデータとして書き込まれている。ＲＯＭ２０２に書き込まれた起動処理プログラムによる起動処理シーケンスの詳細については後述する。
【００４４】
ＴＰＭ−Ｅ制御プログラムを構成するプログラムデータや、その他、秘密保持が要求されるプログラム、暗号鍵などのデータは、ＲＯＭ２０２に格納してもよいが、ＲＯＭ２０２に格納されない場合、外部記憶装置３０１に機器鍵［Ｋｔ］を適用した暗号化データとして格納される。例えば以下のデータが、外部記憶装置３０１に暗号化データとして格納される。
【００４５】
（ａ）ＴＰＭ−Ｅ制御プログラムを構成するプログラムデータ
（ｂ）メインＣＰＵによって実行するブートプログラム（ｍａｉｎ  ＣＰＵ  ｂｏｏｔ  ｃｏｄｅ）
（ｃ）暗号鍵、例えば公開鍵暗号方式における秘密鍵（Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ）
（ｄ）公開鍵証明書（ｃｒｅｄｅｎｔｉａｌ）
（ｅ）ＴＰＭ−Ｅ内部状態初期値
【００４６】
これらのデータは、ＲＯＭ２０２に格納されるか、あるいは、外部記憶装置３０１に機器鍵［Ｋｔ］を適用した暗号化データとして格納される。
【００４７】
機器鍵格納部２０４は、前述したように、例えばｅ−ｆｕｓｅ（フューズ型ＲＯＭ）データ、あるいはｍａｓｋＲＯＭデータとして書き込まれた機器鍵データを保持している。上記（ａ）〜（ｅ）のプログラムまたはデータを外部記憶装置３０１に格納する場合は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内の暗号処理部２０９において機器鍵［Ｋｔ］を適用した暗号化がなされた後、入出力インタフェース２０５を介して外部に出力され、外部記憶装置３０１に格納される。また、必要に応じて、ハッシュ算出部２０７において、格納データに対する改竄検証値を生成し、改竄検証値とともに外部記憶装置３０１に格納する。
【００４８】
上記（ａ）〜（ｅ）のプログラムまたはデータを外部記憶装置３０１から入力して利用する場合は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内で、暗号化データの復号処理を実行するとともに、改竄検証値を検証して、データまたはプログラムの改竄がないことを確認した後、プログラムの実行またはデータの利用が行なわれる。なお、改竄検証を鍵付きメッセージ認証方式で実施する場合には、機器鍵を適用する。セキュリティレベルに応じて、機器鍵は暗号化に使うものと共通でも良いし、改竄検証用に別の機器鍵を用意して用いても良い。
【００４９】
なお、機器鍵で暗号化されたプログラムやデータは、図２に示す例では、１つの外部記憶装置３０１に格納した構成としているが、さらに安全性を高めるために、複数の異なる外部記憶装置に分散してまたは重複してこれらのデータを格納してもよい。なお、これらのデータは、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内のプロセッサ２０１からのコマンドによってのみアクセスを許容し、メインＣＰＵ１１０（図２参照）からのアクセスを許容しないようにハードウェアまたはソフトウェア的な保護データ領域として設定することが好ましい。
【００５０】
セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００の固有識別子データとしての機器ＩＤと、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００に格納した機器鍵との対応データは、管理センタにおいて保持される。
【００５１】
入出力（Ｉ／Ｏ）インタフェース２０５は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００外部の構成部とのデータ入出力を実行する。
【００５２】
乱数生成器２０６は、例えば暗号鍵の生成、改竄検証値の生成などの際に必要となる乱数の生成処理を実行する。ハッシュ算出部２０７は、例えばデータの改竄検証値などの生成において適用するハッシュ算出を実行する。ハッシュアルゴリズムとしては、例えばＳＨＡ−１が適用される。なお、改竄検証値としては例えばＭＡＣ（メッセージ認証コード）が適用可能である。
【００５３】
鍵生成部２０８は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００において暗号鍵を生成する処理を実行する、例えばＤＥＳやＡＥＳ暗号アルゴリズムが適用される。暗号処理部２０９は、データの暗号化、復号処理を実行する、例えば機器鍵格納部２０４に格納された機器鍵を適用した暗号処理、復号処理を実行する。例えばＤＥＳやＡＥＳ暗号アルゴリズムに従った暗号処理を実行する。クロック２１０は、セキュリティ機能モジュール（TPM-E）２００における時間・時刻情報の提供処理を実行する。
【００５４】
上述の構成を持つセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、図２に示したように、ＭＰＵチップ１００内に構成されている。
【００５５】
次に、図４を参照して、本実施例１の構成に係る情報処理装置の起動処理シーケンスについて説明する。
【００５６】
図４に示す起動処理シーケンスは、情報処理装置の電源オン、リセットなどいわゆるパワーオンリセット（ＰＯＲ：Ｐｏｗｅｒ Ｏｎ  Ｒｅｓｅｔ）時に実行する処理である。左側に示すステップＳ１０１〜Ｓ１０９の処理がセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００側の処理であり、右側に示すステップＳ２０１〜Ｓ２０３の処理がメインＣＰＵ１１０側の処理を示している。
【００５７】
まず、ステップＳ１０１において、メインＣＰＵ１１０の実行開始前にセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００が起動される。セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内のプロセッサ２０１（図３参照）は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内のＲＯＭ２０２に格納された起動時実行用の制御プログラムを実行する。
【００５８】
ステップＳ１０２において、この制御プログラムに従って、外部記憶装置３０１（図２参照）からのデータ読み出しを実行し、復号処理および改竄検証処理を実行する。読み出しを行なったデータは、一旦セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内のメモリ２０３に格納される。読み出されるデータは、例えば以下のデータである。
ＴＰＭ−Ｅ制御プログラムを構成するプログラムデータ
暗号鍵、例えば公開鍵暗号方式における秘密鍵（Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ）
公開鍵証明書（ｃｒｅｄｅｎｔｉａｌ）
ＴＰＭ−Ｅ内部状態初期値
【００５９】
上記データは、すべて機器鍵［Ｋｔ］で暗号化されたデータであり、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００の暗号処理部２０９は、これらのデータを機器鍵格納部２０４に格納された機器鍵［Ｋｔ］を適用して復号する。さらに、取得データに改竄検証値、例えばＭＡＣ（メッセージ認証コード）が付与されている場合は、ＭＡＣの算出を実行して、付与されているＭＡＣとの照合を実行して、データの改竄の有無を判定する。
【００６０】
ステップＳ１０３において、外部記憶装置３０１から取得したデータの復号に成功し、またデータの改竄がないことが確認されると、ステップＳ１０４以下に進む。データの復号に失敗、または、データの改竄が検出された場合は、ステップＳ１０４以下の処理を行なうことなく、処理を中止する。
【００６１】
ステップＳ１０４では、外部記憶装置３０１からメインＣＰＵ１１０の起動コード(ＣＲＴＭ：メインＣＰＵブートコード)を取得して、復号処理および改竄検証処理を実行する。セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００の暗号処理部２０９は、メインＣＰＵ１１０の起動コード(ＣＲＴＭ：メインＣＰＵブートコード)を機器鍵格納部２０４に格納された機器鍵［Ｋｔ］を適用して復号する。さらに、取得データに改竄検証値、例えばＭＡＣ（メッセージ認証コード）が付与されている場合は、ＭＡＣの算出を実行して、付与されているＭＡＣとの照合を実行して、データの改竄の有無を判定する。
【００６２】
ステップＳ１０５において、外部記憶装置３０１から取得したメインＣＰＵ１１０の起動コード(ＣＲＴＭ：メインＣＰＵブートコード)の復号に成功し、またデータの改竄がないことが確認されると、ステップＳ１０６以下に進む。データの復号に失敗、または、データの改竄が検出された場合は、ステップＳ１０６以下の処理を行なうことなく、処理を中止する。
【００６３】
ステップＳ１０６では、外部記憶装置３０１から取得し復号したメインＣＰＵ１１０の起動コード(ＣＲＴＭ：メインＣＰＵブートコード)を起動ベクタによって指定されるメモリ領域に格納する。起動ベクタには、起動コード(ＣＲＴＭ)の格納されるメモリ領域の先頭アドレス情報を保有する。ステップＳ１０７では、起動ベクタによって指定されるメモリ領域から起動コードを読み出して、メインＣＰＵの起動処理を実行する。
【００６４】
以上の処理が終了すると、ステップＳ１０８において、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、外部、すなわちメインＣＰＵ１１０側からの処理要求待機状態に移行し、ステップＳ１０９において、メインＣＰＵ１１０側からの処理要求に応じて処理を実行する。
【００６５】
一方、メインＣＰＵ１１０は、ステップＳ２０１において、メインＣＰＵ１１０の起動コード(ＣＲＴＭ：メインＣＰＵブートコード)に基づいて起動され、ステップＳ２０２において、起動コード(ＣＲＴＭ：メインＣＰＵブートコード)に従った起動処理を行なった後、ステップＳ２０３において、各種の実行プログラムに従ったデータ処理を実行する。データ処理においてセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００において実行すべき処理が発生した場合は、セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００に対するデータ処理要求を行う。セキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、ステップＳ１０９において、メインＣＰＵ１１０側からの処理要求に応じて処理を実行する。
【００６６】
なお、上述したシーケンスでは、メインＣＰＵ１１０の起動コード(ＣＲＴＭ：メインＣＰＵブートコード)を機器鍵［Ｋｔ］で暗号化したデータとして外部記憶装置３０１に格納した構成例として説明したが、起動コードに秘匿性がない場合は、暗号化データとする必要はない。また、改竄検証の必要性がない場合は、改竄検証値の付与も必要とはならない。
【００６７】
次に、外部記憶装置３０１に機器鍵［Ｋｔ］を適用した暗号化データとして格納したデータの更新処理について説明する。情報処理装置に対して設定された公開鍵暗号方式の秘密鍵や、ＴＰＭ−Ｅ内部状態初期値、オーナー認証シークレット（パスワード）、改竄検証処理アルゴリズムの設定情報などは、例えば期限付きデータである場合などがあり、更新する必要が発生する場合がある。
【００６８】
従来型のセキュリティ機能モジュール（ＴＰＭ）では、これらの情報は、すべて、セキュリティ機能モジュール（ＴＰＭ）内の不揮発性メモリに格納しており、セキュリティ機能モジュール（ＴＰＭ）内部のみの処理としてこれらのデータの更新が可能であったが、本発明に係るセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、これらのデータの少なくとも一部が、外部記憶装置３０１に格納されているため、データ更新処理をセキュリティ機能モジュール（ＴＰＭ）内部のみの処理としては実行できない。
【００６９】
そこで、本発明のセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００は、外部記憶装置３０１に格納されているデータの更新処理に際しては、セキュリティ機能モジュール(ＴＰＭ-Ｅ)２００内部において、例えば外部から取得した更新データ、あるいはセキュリティ機能モジュール(ＴＰＭ-Ｅ)２００内部で生成した更新データをセキュリティ機能モジュール（ＴＰＭ−Ｅ）２００内のメモリ２０３にキャッシュし、キャッシュした更新後のデータに対する改竄検証値、例えばＭＡＣの算出を行い、改竄検証値の設定処理を行なうとともに、機器鍵［Ｋｔ］を適用して暗号化処理を実行して、入出力インタフェース２０５を介して出力して外部記憶装置３０１に格納する。
【実施例２】
【００７０】
上述の実施例１では、セキュリティ機能モジュール（ＴＰＭ−Ｅ）をメインＣＰＵを持つＭＰＵチップ内に構成した例を説明した。以下、実施例２として、ＭＰＵによって実行される通常アプリケーション用のＯＳとは異なる特権モード用のＯＳを設定して特権モード上でセキュリティ機能モジュール（ＴＰＭ）の機能を実行する処理構成について説明する。
【００７１】
図５に、本発明の実施例２に係る情報処理装置のハードウェア構成を示す。図５に示すように、実施例２に係る情報処理装置は、実施例１で説明したハードウェアとしてのセキュリティ機能モジュール（ＴＰＭ）を持たない構成である。
【００７２】
セキュリティ機能モジュール（ＴＰＭ）において実行していたセキュアなデータ処理を含むすべてのプログラムは、データ処理を実行するプロセッサを持つＭＰＵ５０１によって実行される。ただし、後述するように、セキュリティ機能モジュール（ＴＰＭ）機能に従った処理プログラムは、通常のアプリケーションプログラムの実行環境を提供する通常のＯＳとは異なり、通常ＯＳの上位に設定された特権モードのセキュアＯＳ上で動作するプログラムとして設定される。このプログラム構成については、図６を参照して後段で詳細に説明する。
【００７３】
まず、図５のハードウェア構成について説明する。実施例２に係る情報処理装置のハードウェアは、ＭＰＵ５０１を格納したＭＰＵチップ５００と、フラッシュメモリやハードディスクなどによって構成される外部記憶装置６０１、ＲＡＭ，ＲＯＭなどによって構成されるメインメモリ６０２、キーボード、マウス、ディスプレイなどによって構成される入出力装置６０３を有する。
【００７４】
ＭＰＵ５０１は、上述の特権モードの処理を許容するプロセッサ機能を持つ。このようなＭＰＵとしては、例えばＩｎｔｅｌ  Ｌａ  Ｇｒａｄｅ、あるいはＡＲＭ  ＴｒｕｓｔＺｏｎｅなどがある。
【００７５】
ＭＰＵ５０１を格納したＭＰＵチップ５００には、クロック５０４、乱数生成器５０５が格納される。ＭＰＵ５０１内のＲＯＭ領域には、機器ＩＤ５０２および機器鍵［Ｋｔ］５０３が格納される。機器ＩＤ５０２および機器鍵［Ｋｔ］５０３は、ＭＰＵチップ５００各々に異なる固有ＩＤおよび固有鍵、あるいは製造ロット毎に異なる値および鍵データとして設定される。
【００７６】
これらの機器ＩＤ５０２および機器鍵［Ｋｔ］５０３に対するＭＰＵチップ５００外部からのアクセスは不可能であり、ＭＰＵ５０１において実行可能な特権モードのセキュアＯＳ上で動作するプログラムであるセキュリティ機能モジュール（ＴＰＭ）機能に従った処理プログラムによってのみアクセスのみが許容される。なお、ＭＰＵ５０１内のＲＯＭには、起動シーケンスにおいて実行するプログラムの一部と、起動シーケンスにおいて外部記憶装置６０１から取得すべきプログラムのアドレス情報等を含む起動ベクタが格納される。
【００７７】
乱数生成器５０５は、例えば暗号鍵の生成、改竄検証値の生成などの際に必要となる乱数の生成処理を実行するクロック５０４は、ＭＰＵ５０１における時間・時刻情報の提供処理を実行する。
【００７８】
本実施例２の情報処理装置も実施例１と同様、暗号鍵などの秘密情報、すなわち下記のデータは、フラッシュメモリやハードディスクなどによって構成される外部記憶装置６０１に格納される。
（ａ）ＴＰＭ制御機能実行プログラムを構成するプログラムデータ
（ｂ）セキュアＯＳプログラム
（ｃ）ＭＰＵによって実行する通常ＯＳ用のブートプログラム（ｍａｉｎ  ＣＰＵ  ｂｏｏｔ  ｃｏｄｅ）
（ｄ）暗号鍵、例えば公開鍵暗号方式における秘密鍵（Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ）
（ｅ）公開鍵証明書（ｃｒｅｄｅｎｔｉａｌ）
（ｆ）ＴＰＭ制御機能実行プログラム用初期値
【００７９】
これらの外部記憶装置６０１に格納される情報は、実施例１と同様、必要に応じてＭＡＣ（メッセージ認証コード）などの改竄検証値が付与され、また、ＭＰＵチップ５００に格納された機器鍵［Ｋｔ］５０３によって暗号化された暗号化データとして格納される。図に示す外部記憶装置６０１には、一例として、機器鍵［Ｋｔ］５０２によって暗号化された暗号化データＫｔ（ａ），Ｋｔ（ｂ）・・・Ｋｔ（ｎ）を示してある。なお、Ｋｔ（ｘ）は、秘密情報ｘを機器鍵［Ｋｔ］５０３によって暗号化したデータであることを示している。
【００８０】
本実施例の構成においても、ＭＰＵチップ５００には、多くの秘密情報を格納する容量の大きな不揮発性メモリを持たない構成であり、従来のセキュリティ機能モジュール（ＴＰＭ）おいてＴＰＭ内のフラッシュメモリに格納していたデータを機器鍵［Ｋｔ］５０３で暗号化して外部記憶装置６０１に格納する。
【００８１】
機器鍵［Ｋｔ］５０３は、実施例１と同様、ＭＰＵチップ５００の製造時に固定データとして記録されるデータである。例えばｅ−ｆｕｓｅ（フューズ型ＲＯＭ）データ、あるいはｍａｓｋＲＯＭデータ、あるいは、比較的容量の小さいフラッシュメモリやＦｅＲＡＭなどの不揮発性メモリをマルチパッケージやシステムインパッケージとして積層して記録されたデータである。
【００８２】
この機器鍵［Ｋｔ］５０３は、図に示す外部記憶装置６０１に格納する各種の秘密情報の暗号化および復号処理に適用するための暗号鍵であり、機器、すなわちＭＰＵチップ５００を搭載した情報処理装置に要求されるセキュリティレベルに応じたデータ長を持つ鍵データとして設定される。
【００８３】
次に、図６を参照して、本実施例に係る情報処理装置におけるプログラム構成を説明する。本実施例に係る情報処理装置において実行される各種プログラムは、ＭＰＵチップ５００内のＭＰＵ５０１の制御の下に実行される。この実行プログラムには、従来のセキュリティ機能モジュール（ＴＰＭ）機能に従った処理プログラムも含まれる。
【００８４】
図６に示すように、本実施例に係る情報処理装置においては、通常のデータ処理プログラムである通常アプリケーション７１２は、通常のオペレーティングシステムである通常ＯＳ７１１上で実行可能に設定される。これは一般的なＰＣ等の構成と同様である。
【００８５】
本発明の構成においては、通常ＯＳ７１１より上位の特権モードＯＳとしてセキュアＯＳ７２１が設定される。なお、セキュアＯＳ７２１として知られているＯＳとして、例えば、Ｍｉｃｒｏｓｏｆｔ  ＮＧＳＣＢのＮｅｘｕｓがある。
【００８６】
ＴＰＭ機能実行アプリケーションプログラム７２２は、セキュアＯＳ７２１上においてのみ実行可能であり、通常ＯＳ７１１の環境では実行できないプログラムとして設定される。
【００８７】
ＴＰＭ機能実行アプリケーションプログラム７２２は、実施例１で説明したセキュリティ機能モジュール（ＴＰＭ−Ｅ）と同様の処理を実行するプログラムであり、
（１）秘密情報ａ，ｂ，ｃ・・・ｎを外部記憶装置６０１に格納するために機器鍵［Ｋｔ］５０３を適用して実行する暗号化処理、
（２）外部記憶装置６０１から読み出された暗号化秘密情報Ｋｔ（ａ），Ｋｔ（ｂ）・・・Ｋｔ（ｎ）を復号する処理、
（３）その他、新たな鍵の生成処理、認証処理、データの改竄検証処理、
これらの処理を実行する。
ＴＰＭ機能実行アプリケーションプログラム７２２は、通常ＯＳ７１１、並びに通常ＯＳ７２２上で動作するアプリケーションプログラム７１２やドライバなどに対して各種のＴＰＭ機能、例えばバインド処理やシール処理など、セキュアデータ処理機能を提供する。
【００８８】
なお、セキュアＯＳ７２１上で実行可能なプログラムは、ＴＰＭ機能実行アプリケーションプログラム７２２のみならず、その他のセキュアデータ処理実行アプリケーション７２３が含まれる。
【００８９】
次に、図７を参照して、本実施例に係る情報処理装置の起動処理シーケンスについて説明する。
【００９０】
図７に示す起動処理シーケンスは、情報処理装置の電源オン、リセットなどいわゆるパワーオンリセット（ＰＯＲ：Ｐｏｗｅｒ  Ｏｎ  Ｒｅｓｅｔ）時に実行する処理である。まず、ステップＳ２０１において、ＭＰＵ５０１をセキュアモードで起動する。
【００９１】
次にステップＳ２０２において、ＭＰＵチップ内の内蔵ＲＯＭに格納された制御プログラムは、外部記憶装置６０１からセキュアＯＳのローダ、セキュアＯＳ、ならびに、ＴＰＭ機能実行アプリケーションプログラム、その他のセキュアデータ処理実行アプリケーションのプログラムを取得する。ただし、セキュアＯＳのローダ以外はこの時点で取得せずに、下記のステップＳ２０４の時点でセキュアＯＳローダの実行時以降に取得、復号、検証しても良い。
【００９２】
ステップＳ２０２では、さらに、外部記憶装置６０１から取得したこれらのデータの復号、改竄検証処理を実行する。これらの取得データは、すべて機器鍵［Ｋｔ］で暗号化されたデータであり、これらの取得データを機器鍵［Ｋｔ］５０３を適用して復号する。さらに、取得データに改竄検証値、例えばＭＡＣ（メッセージ認証コード）が付与されている場合は、ＭＡＣの算出を実行して、付与されているＭＡＣとの照合を実行して、データの改竄の有無を判定する。
【００９３】
ステップＳ２０３において、外部記憶装置６０１から取得したデータの復号に成功し、またデータの改竄がないことが確認されると、ステップＳ２０４以下に進む。データの復号に失敗、または、データの改竄が検出された場合は、ステップＳ２０４以下の処理を行なうことなく、処理を中止する。
【００９４】
ステップＳ２０４において、復号および改竄検証により正当性の確認されたセキュアＯＳローダとステップＳ２０２において取得したその他のプログラムをメインメモリ６０２に配置する。続いて、セキュアＯＳローダを起動する。起動されたセキュアＯＳローダは、ステップＳ２０２においてセキュアＯＳを取得していない場合には、外部記憶装置からセキュアＯＳを取得・復号・検証し、メインメモリに配置する。その後、セキュアＯＳローダは、セキュアＯＳを起動する。同様に、セキュアＯＳはＴＰＭ機能実行アプリケーションプログラムやその他のセキュアデータ処理実行アプリケーションを起動する。次に、ステップＳ２０５において、セキュアＯＳおよびＴＰＭ機能実行アプリケーションプログラムの制御の下に、通常ＯＳを起動する。なお、この処理には、通常ＯＳの外部記憶装置６０１からの読み取り処理と、取得データを対する機器鍵５０２を適用した復号処理、さらに、取得データに改竄検証値、例えばＭＡＣ（メッセージ認証コード）が付与されている場合は、ＭＡＣの算出を実行しデータの改竄の有無を判定する処理が含まれる。
【００９５】
データ復号の失敗、または改竄検証処理において改竄ありとの判定があった場合は、通常ＯＳの起動を実行せず、処理を中止する。
【００９６】
データ復号に成功し、改竄検証処理において改竄なしとの判定があった場合は、通常ＯＳを起動して、ステップＳ２０６に進み、通常ＯＳからセキュアＯＳを介して入力するＴＰＭ機能実行アプリケーションプログラムに対するデータ処理リクエストに応じて、ＴＰＭ機能を提供する。
【００９７】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【００９８】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【００９９】
例えば、プログラムは記録媒体としてのハードディスクやＲＯＭ（Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)，ＭＯ(Magneto optical)ディスク，ＤＶＤ(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができる。
【０１００】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、ＬＡＮ(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【０１０１】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【０１０２】
以上、説明したように、本発明の構成によれば、ＭＰＵチップ内に、機器鍵を格納したセキュリティ機能モジュールを一体化して構成し、セキュリティ機能モジュール内で実行するデータ処理に適用するプログラムまたはデータを含む秘密情報を、機器鍵を適用した暗号化データとし、また改竄検証値を付与して外部記憶手段に格納する構成としたので、セキュリティ機能モジュール内に格納すべき秘密情報のデータ量を大幅に削減することが可能となり、大容量の不揮発メモリが不要となるので、セキュリティ機能モジュールをメインＣＰＵを持つＭＰＵチップ内に一体化でき、実装面積の減少、コストダウンが可能となる。また、外部に記憶される秘密情報は、機器鍵を適用して暗号化されまた改竄検証値を付与したデータとして格納されるので、十分にセキュリティレベルを維持したデータ処理が実現される。
【０１０３】
さらに、本発明の構成によれば、ＭＰＵチップ内にデータ処理を実行するプロセッサと、暗号処理に適用する機器鍵を格納し、ＭＰＵを、通常ＯＳ上での動作プログラムを実行する通常モードと、セキュリティの要求されるデータ処理に対応するセキュアプログラムを実行するセキュアモードとの２つのモードでの動作が可能な構成とし、セキュアモードで実行するプログラムまたはデータを含む秘密情報を、機器鍵を適用した暗号化データとし、また改竄検証値を設定して外部記憶手段に格納する構成としたので、セキュリティ機能モジュールを別構成のハードウェアとして持つ必要がなくなり、実装面積の減少、コストダウンが可能となる。また、外部に記憶される秘密情報は、機器鍵を適用して暗号化されまた改竄検証値を付与したデータとして格納されるので、十分にセキュリティレベルを維持したデータ処理が実現される。
【図面の簡単な説明】
【０１０４】
【図１】ＴＰＭ（トラステッド・プラットフォーム・モジュール）を有する情報処理装置の構成を説明する図である。
【図２】本発明の実施例１に係るセキュリティ機能モジュール（ＴＰＭ−Ｅ）を有する情報処理装置の構成を説明する図である。
【図３】本発明の実施例１に係るセキュリティ機能モジュール（ＴＰＭ−Ｅ）の詳細構成について説明する図である。
【図４】本発明の実施例１に係るセキュリティ機能モジュール（ＴＰＭ−Ｅ）を有する情報処理装置の起動処理シーケンスについて説明するフローチャートを示す図である。
【図５】本発明の実施例２に係る情報処理装置の構成を説明する図である。
【図６】本発明の実施例２に係る情報処理装置のソフトウェア構成について説明する図である。
【図７】本発明の実施例２に係る情報処理装置の起動処理シーケンスについて説明するフローチャートを示す図である。
【符号の説明】
【０１０５】
１０  ＭＰＵチップ
１１  メインＣＰＵ
２０  ＴＰＭチップ
２１  ＴＰＭ
３１  外部記憶装置
３２  メインメモリ
３３  入出力装置
１００  ＭＰＵチップ
１１０  メインＣＰＵ
２００  セキュリティ機能モジュール（ＴＰＭ−Ｅ）
２０１  プロセッサ
２０２  ＲＯＭ
２０３  メモリ
２０４  機器鍵格納部
２０５  入出力（Ｉ／Ｏ）インタフェース
２０６  乱数生成器
２０７  ハッシュ算出部
２０８  鍵生成部
２０９  暗号処理部
２１０  クロック
２５１  機器ＩＤ
２５２  機器鍵
３０１  外部記憶装置
３０２  メインメモリ
３０３  入出力装置
５００  ＭＰＵチップ
５０１  ＭＰＵ
５０２  機器ＩＤ
５０３  機器鍵［Ｋｔ］
５０４  クロック
５０５  乱数生成器
６０１  外部記憶装置
６０２  メインメモリ
６０３  入出力装置
７１１  通常ＯＳ
７１２  アプリケーション
７２１  セキュアＯＳ
７２２  ＴＰＭ機能実行アプリケーション
７２３  その他セキュアデータ処理実行アプリケーション
【図１】
2005227995.tif 000003
【図２】
2005227995.tif 000004
【図３】
2005227995.tif 000005
【図４】
2005227995.tif 000006
【図５】
2005227995.tif 000007
【図６】
2005227995.tif 000008
【図７】
2005227995.tif 000009