(57)【要約】  正当なコンピュータプログラムを有することを示しつつ自身の正当性を証明することができ、また前記証明に対して検証することができる検証システムを提供する。  検証システムは端末（証明装置）とカード（検証装置）とからなり、前記カードは、前記端末が利用しようとする秘密情報、及び前記端末の更新プログラムを格納し、前記端末から得た情報を用いて前記端末の正当性を確認し、前記端末が正当であると判断された場合には前記秘密情報を前記端末に出力し、前記端末が正当でないと判断された場合には前記更新プログラムを出力する。これにより、前記端末は、秘密情報を利用しようとする場合に、プログラムのアップデートを強制されることとなる。
2008004524.tif 000002
【特許請求の範囲】
【請求項１】
証明装置及び検証装置から構成される検証システムであって、
前記証明装置は、
当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段とを備え、
前記検証装置は、
前記証明情報を取得する取得手段と、
前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段とを備える
ことを特徴とする検証システム。
【請求項２】
前記検証システムは、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、
前記証明手段は、TCGにより仕様化されているTrusted Platform Moduleを構成し、
前記判断手段は、TCGにより仕様化されている検証プロセスにより、前記証明装置の正当性を判断する
ことを特徴とする請求項１に記載の検証システム。
【請求項３】
検証装置に対して自身の正当性を証明する証明装置であって、
当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段と
を備えることを特徴とする証明装置。
【請求項４】
前記証明装置は、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、
前記証明手段は、TCGにより仕様化されているTrusted Platform Moduleを構成する
ことを特徴とする請求項３に記載の証明装置。
【請求項５】
前記証明手段は、
前記特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、
前記検証装置から、複数のプラットフォーム構成レジスタのうちの１個のレジスタの指定を受け取り、受け取った指定により示されるレジスタに記憶されている前記特徴量に基づいて、前記証明情報を生成する
ことを特徴とする請求項３に記載の証明装置。
【請求項６】
前記証明装置は、さらに、
少なくとも前記検証装置を動作対象とする動作プログラムの特徴を示す特徴量に基づいて、生成された前記検証装置の正当性を証明する証明情報を取得する取得手段と、
取得した前記証明情報を用いて、前記検証装置の正当性を判断する判断手段と
を含むことを特徴とする請求項３に記載の証明装置。
【請求項７】
前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンピュータ命令を含む第２動作プログラムを格納しており、
前記証明装置は、さらに、耐タンパ化された第２証明手段を含み、
第２証明手段は、前記証明手段に対して、自身の正当性を証明し、
前記証明手段は、前記第２証明手段の正当性を検証し、
前記測定手段は、さらに、前記第２動作プログラムがロードされるときに前記第２動作プログラムの特徴を示す第２特徴量を測定し、
前記第２証明手段は、前記証明手段により、第２証明手段の正当性が確認された場合に、少なくとも前記第２特徴量に基づいて、当該証明装置の正当性を証明する第２証明情報を生成し、
前記出力手段は、さらに、第２証明情報を出力する
ことを特徴とする請求項３に記載の証明装置。
【請求項８】
前記検証装置は、当該検証装置の正当性を示す第２証明情報を記憶しているカードであり、
前記証明手段は、さらに、前記検証装置による前記証明装置の正当性の確認が成功した場合に、前記検証装置から前記第２証明情報を取得し、取得した前記第２証明情報を用いて、前記検証装置の正当性を判断する
ことを特徴とする請求項３に記載の証明装置。
【請求項９】
前記証明装置は、前記検証装置により、自身の正当性が確認された場合に、さらに、第２検証装置に対して自身の正当性を証明し、
前記格納手段は、さらに、当該証明装置を動作対象とし、階層的な関係を有する複数個の第２動作プログラムを格納しており、
前記測定手段は、さらに、前記第２動作プログラムのそれぞれがロードされるときに、ロードされる前記第２プログラムそれぞれの特徴を示す第２特徴量を測定し、
前記証明装置は、さらに、
耐タンパ化され、前記複数個の第２動作プログラムのうちの１つの第２動作プログラムがロードされているときに、当該１つの第２動作プログラムについて取得した特徴量、及び当該１つの第２動作プログラムを動作させるために必要でありロード済である他の第２動作プログラムそれぞれについて取得した特徴量を反映した第２証明情報を生成する第２証明手段を含み、
前記出力手段は、さらに、生成した前記第２証明情報を第２検証装置へ出力する
ことを特徴とする請求項８に記載の証明装置。
【請求項１０】
前記証明装置は、さらに、
前記検証装置に対して、秘密情報を要求する要求手段と、
前記検証装置における当該証明装置の正当性の確認結果に応じて、秘密情報及び前記動作プログラムの更新のための更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手段に格納されている前記動作プログラムを更新する更新手段と
を含むことを特徴とする請求項３に記載の証明装置。
【請求項１１】
前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵であり、
前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、
前記証明装置は、さらに、
受信した前記暗号化デバイス鍵を、当該証明装置を識別する装置識別子に基づいて、復号して、デバイス鍵を生成する復号手段を含む
ことを特徴とする請求項１０に記載の証明装置。
【請求項１２】
前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別する装置識別子に基づいて、前記証明情報を生成する
ことを特徴とする請求項１０に記載の証明装置。
【請求項１３】
前記秘密情報は、デバイス鍵を暗号化して生成した暗号化デバイス鍵であり、
前記証明装置は、さらに、暗号化手段を含み、
前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、
前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した暗号化デバイス鍵を暗号化して二重暗号化デバイス鍵を生成し、
前記証明装置は、さらに、
生成した二重暗号化デバイス鍵を保持するデバイス鍵保持手段を含む
ことを特徴とする請求項１０に記載の証明装置。
【請求項１４】
前記暗号化手段は、
暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、
前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、
前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認されなかった場合に、前記更新プログラムとして、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを受信し、受信した正規の暗号化プログラムを、前記記憶部に記憶されている暗号化プログラムに上書きし、
前記暗号化手段は、正規の暗号化プログラムに従って、前記マイクロプロセッサが動作することにより、暗号化アルゴリズムの機能を達成する
ことを特徴とする請求項１３に記載の証明装置。
【請求項１５】
前記受信手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが確認された場合、前記検証装置から、受信した暗号化デバイス鍵の復号に必須となる鍵を受け取る
ことを特徴とする請求項１４に記載の証明装置
【請求項１６】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置であって、
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得手段と、
前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段と
を備えることを特徴とする検証装置。
【請求項１７】
前記検証装置は、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、
前記判断手段は、TCGにより仕様化されている検証プロセスにより、前記証明装置の正当性を判断する
ことを特徴とする請求項１６に記載の検証装置。
【請求項１８】
前記検証装置は、カード又はサーバ装置である
ことを特徴とする請求項１６に記載の検証装置。
【請求項１９】
前記取得手段は、当該検証装置の指定に係るプラットフォーム構成レジスタに記憶されている特徴量に基づいて、生成された前記証明情報を取得し、
前記判断手段は、前記プラットフォーム構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項１８に記載の検証装置。
【請求項２０】
前記検証装置は、さらに、
当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段とを含む
ことを特徴とする請求項１８に記載の検証装置。
【請求項２１】
前記取得手段は、さらに、少なくとも前記証明装置を動作対象とする第２動作プログラムの特徴を示す特徴量に基づいて、生成された前記証明装置の正当性を証明する第２証明情報を取得し、
前記判断手段は、さらに、取得した前記第２証明情報を用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項１８に記載の検証装置。
【請求項２２】
前記検証装置は、カードであり、さらに、
当該検証装置の正当性を示す第２証明情報を記憶している証明情報格納手段と、
前記判断手段による前記証明装置の正当性の確認が成功した場合に、前記第２証明情報を出力する出力手段を含む
ことを特徴とする請求項１８に記載の検証装置。
【請求項２３】
前記検証装置は、さらに、
秘密情報を安全に保持する情報保持手段と、
前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、
前記証明装置の正当性が確認された場合に、前記情報保持手段に保持されている前記秘密情報を前記証明装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記証明装置へ出力する出力手段と
を含むことを特徴とする請求項１６に記載の検証装置。
【請求項２４】
前記情報保持手段は、前記秘密情報として、前記証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵を保持しており、
前記出力手段は、前記証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を出力する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２５】
前記取得手段は、前記特徴量、及び前記証明装置を識別する装置識別子に基づいて生成された前記証明情報を取得し、
前記検証装置は、さらに、
正規の動作プログラムの特徴を示す正規特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された検証情報を取得する検証情報取得手段を含み、
前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２６】
前記取得手段は、前記特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された前記証明情報を取得し、
前記検証装置は、さらに、
正規の動作プログラムの特徴を示す正規特徴量を取得する正規特徴量取得手段と、
取得した前記正規特徴量及び前記証明装置を識別する装置識別子に基づいて、前記証明装置の正当性を検証する検証情報を生成する検証情報生成手段とを含み、
前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２７】
前記検証装置は、さらに、
前記証明装置を識別する装置識別子を取得する識別子取得手段と、
前記証明装置に割り当てられるデバイス鍵を、取得した前記装置識別子に基づいて暗号化して暗号化デバイス鍵を生成する暗号化手段と、
生成した暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手段とを含む
ことを特徴とする請求項２３に記載の検証装置。
【請求項２８】
前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、
前記情報保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、
前記判断手段は、前記証明装置の正当性として、前記証明装置が有する前記暗号化手段の正当性を判断し、
前記出力手段は、前記暗号化手段の正当性が確認された場合に、暗号化デバイス鍵を前記証明装置へ出力する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２９】
前記証明装置が有する前記暗号化手段は、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、
前記プログラム格納手段は、前記更新プログラムとして、前記暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを記憶しており、
前記出力手段は、前記暗号化手段が正当でないと確認された場合に、正規の前記暗号化プログラムを前記証明装置へ出力する
ことを特徴とする請求項２８に記載の検証装置。
【請求項３０】
前記出力手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが前記判断手段により確認された場合、前記暗号化デバイス鍵の復号に必須となる鍵を出力する
ことを特徴とする請求項２９に記載の検証装置。
【請求項３１】
検証装置に対して自身の正当性を証明する証明装置で用いられる証明方法であって、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と耐タンパ化された証明手段とを備え、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定ステップと、
前記証明手段を用いて、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明ステップと、
生成した前記証明情報を出力する出力ステップと
を含むことを特徴とする証明方法。
【請求項３２】
検証装置に対して自身の正当性を証明する証明装置で用いられる証明用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と耐タンパ化された証明手段とを備え、
コンピュータに、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定ステップと、
前記証明手段を用いて、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明ステップと、
生成した前記証明情報を出力する出力ステップと
を実行させるためのコンピュータプログラムを記録していることを特徴とする記録媒体。
【請求項３３】
検証装置に対して自身の正当性を証明する証明装置を構成する集積回路であって、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段を備え、
前記集積回路は、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段と
を備えることを特徴とする集積回路。
【請求項３４】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置で用いられる検証方法であって、
前記検証装置は、前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段を備え、
前記検証方法は、
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得ステップと、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断ステップと
を含むことを特徴とする検証方法。
【請求項３５】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置で用いられる検証用のコンピュータプログラムを記録している記録媒体であって、
前記検証装置は、前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段を備え、
コンピュータに
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得ステップと、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断ステップと
を実行させるコンピュータプログラム記録していることを特徴とする記録媒体。
【請求項３６】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置を構成する集積回路であって、
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得手段と、
前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段と
を備えることを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムによって動作する情報処理機器において、自身の正当性を証明し、相手の正当性を検証する技術に関する。
【背景技術】
【０００２】
デジタルコンテンツの普及により、コンテンツの不正コピーが社会問題となっている。コンテンツの処理機能をソフトウェアで実現する場合、不正コピーを試みる悪意のあるユーザからプログラムを保護する必要がある。コンテンツの処理機能を実現するプログラムが悪意のあるユーザから改竄や盗聴された場合、コンテンツが平文状態で抜き取られたり、プログラムからコンテンツを暗号化している鍵を不正取得されコンテンツが復号化される危険性がある。デジタルコンテンツは、インターネットによる再配布が容易なため、平文状態のコンテンツが不正に配布されると権利者の利益が大きく損なわれる。このような事態を防止するため、コンテンツの処理プログラムへの攻撃を防止することは重要である。【０００３】
しかしながら、処理プログラムのリリース時には、セキュリティホールがない完全なプログラムの提供を保証することは難しいため、悪意のあるユーザがこれらのセキュリティホールを突いてコンテンツ処理用のプログラムを改竄し、デジタルコンテンツを不正にコピーすることなどが予想される。このような事実が判明した場合には、そのプログラムをセキュリティホールへの対策を施した新しいプログラムに更新する必要があるが、そのような技術として以下のようなものがある。【０００４】
例えば、特許文献１では、更新プログラムを供給するサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった場合に、更新プログラムを渡し、端末内のプログラムをその更新プログラムでアップデートする技術が開示されている。また、特許文献２では、更新プログラムを格納するカードと端末のアップデートモジュールとが相互認証を行った上で、カードに格納されている更新プログラムを端末が取得し、端末自身が端末のプログラムをアップデートする技術が開示されている。
【特許文献１】特開平１０−１９８５７１号公報
【特許文献２】特開２００３−３３０７４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術によるプログラムのアップデートは、更新プログラムを供給するカードやサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった後、更新プログラムを渡す構成となっている。この仕組みは端末側のアップデートモジュールの信頼性に依存した方法である。
しかし、従来技術では、端末がハッキングされている場合、アップデートモジュールの信頼性が損なわれている可能性があるので、確実なプログラムのアップデートを保証することは困難である。例えば、アップデートモジュールもソフトウェアで構成されている場合、アップデートモジュール自身もハッキングされている可能性がある。この場合、アップデートモジュール自体が改竄されていると、本来のアップデート処理自体を回避したり、アップデートが必要であるか否かの判断を誤らせることができるので、ソフトウェアのアップデートを強制することができなくなる。【０００６】
アップデートモジュール自身のハッキングを防止するためには、プログラム更新システムに対して更新対象のプログラムより強固な耐タンパシールドが必要となる。従来技術では耐タンパ化の例として、プログラム更新システムをハードウェアによりすべて構成する方法が開示されているが、プログラム更新システムはインターネットとの通信等も含むので大規模なシステムとなることが多く、全体をハードウェアとすることは事実上困難である。【０００７】
そこで本発明は、上記の問題点に鑑みなされたものであって、正当なコンピュータプログラムを有することを示しつつ自身の正当性を証明することができ、また前記証明に対して検証することができる検証システム、証明装置、検証装置、証明方法、検証方法、コンピュータプログラム及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、証明装置及び検証装置から構成される検証システムであって、前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、生成した前記証明情報を出力する出力手段とを備え、前記検証装置は、前記証明情報を取得する取得手段と、前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段とを備える。
【発明の効果】
【０００９】
この構成によると、証明装置は、耐タンパ化された証明手段により、少なくとも動作プログラムの特徴を示す特徴量を反映した証明情報を生成するので、生成された証明情報は、信頼できるものであり、また、検証装置は、取得した証明情報を用いて、証明装置の正当性を判断するので、確実に正当性の検証を行うことができるという優れた効果を奏する。【００１０】
ここで、前記検証システムは、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、前記証明手段は、TCGにより仕様化されているTrusted Platform Moduleを構成し、前記判断手段は、TCGにより仕様化されている検証プロセスにより、前記証明装置の正当性を判断するとしてもよい。
この構成によると、証明手段は、TCGにより仕様化されているTrusted Platform Moduleにより構成されるので、生成された証明情報は、信頼できるものであり、また、TCGにより仕様化されている検証プロセスにより、証明装置の正当性を判断するので、確実に正当性の検証を行うことができる。【００１１】
ここで、前記証明手段は、前記特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、前記検証装置から、複数のプラットフォーム構成レジスタのうちの１個のレジスタの指定を受け取り、受け取った指定により示されるレジスタに記憶されている前記特徴量に基づいて、前記証明情報を生成する。また、前記取得手段は、当該検証装置の指定に係るプラットフォーム構成レジスタに記憶されている特徴量に基づいて、生成された前記証明情報を取得し、前記判断手段は、前記プラットフォーム構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、前記証明装置の正当性を判断してもよい。【００１２】
これらの構成によると、証明装置は、特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、検証装置の指定により示されるレジスタに記憶されている特徴量に基づいて、前記証明情報を生成し、検証装置は、指定に係るプラットフォーム構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、証明装置の正当性を判断することにより、ＰＣＲを限定し、証明装置と検証装置との間の通信路で伝送されるデータのサイズを削減し、証明装置と検証装置との間のネットワークの負荷を抑えることができる。また、ＰＣＲが限定されるので、証明装置における証明情報の生成の負荷を小さくすることができる。【００１３】
ここで、前記証明装置は、さらに、少なくとも前記検証装置を動作対象とする動作プログラムの特徴を示す特徴量に基づいて、生成された前記検証装置の正当性を証明する証明情報を取得する取得手段と、取得した前記証明情報を用いて、前記検証装置の正当性を判断する判断手段とを含むとしてもよい。また、前記検証装置は、さらに、当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、生成した前記証明情報を出力する出力手段とを含むとしてもよい。【００１４】
これらの構成によると、検証装置と証明装置との間で相互の認証を行うので、より高いセキュリティ環境を提供することが可能となる。
ここで、前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンピュータ命令を含む第２動作プログラムを格納しており、前記証明装置は、さらに、耐タンパ化された第２証明手段を含み、第２証明手段は、前記証明手段に対して、自身の正当性を証明し、前記証明手段は、前記第２証明手段の正当性を検証し、前記測定手段は、さらに、前記第２動作プログラムがロードされるときに前記第２動作プログラムの特徴を示す第２特徴量を測定し、前記第２証明手段は、前記証明手段により、第２証明手段の正当性が確認された場合に、少なくとも前記第２特徴量に基づいて、当該証明装置の正当性を証明する第２証明情報を生成し、前記出力手段は、さらに、第２証明情報を出力する。また、前記取得手段は、さらに、少なくとも前記証明装置を動作対象とする第２動作プログラムの特徴を示す特徴量に基づいて、生成された前記証明装置の正当性を証明する第２証明情報を取得し、前記判断手段は、さらに、取得した前記第２証明情報を用いて、前記証明装置の正当性を判断してもよい。【００１５】
これらの構成によると、証明装置が、２個の動作プログラムに対応する２個のＴＰＭを備え、検証装置が、各ＴＰＭに対してそれぞれ、検証することに加えて、第１のＴＰＭが第２のＴＰＭの正当性を検証するので、複数の動作プログラムが連携して動作する証明装置について、より高いセキュリティ環境を提供することが可能となる。
ここで、前記検証装置は、当該検証装置の正当性を示す第２証明情報を記憶しているカードであり、前記証明手段は、さらに、前記検証装置による前記証明装置の正当性の確認が成功した場合に、前記検証装置から前記第２証明情報を取得し、取得した前記第２証明情報を用いて、前記検証装置の正当性を判断する。また、前記検証装置は、カードであり、さらに、当該検証装置の正当性を示す第２証明情報を記憶している証明情報格納手段と、前記判断手段による前記証明装置の正当性の確認が成功した場合に、前記第２証明情報を出力する出力手段を含むとしてもよい。【００１６】
これらの構成によると、検証装置は、カードであり、証明装置の正当性の確認が成功した場合に、自身の正当性を示す第２証明情報を出力し、証明装置は、取得した第２証明情報を用いて、検証装置の正当性を判断するので、証明装置と、カードである検証装置との間の相互の認証が可能となる。
ここで、前記証明装置は、前記検証装置により、自身の正当性が確認された場合に、さらに、第２検証装置に対して自身の正当性を証明し、前記格納手段は、さらに、当該証明装置を動作対象とし、階層的な関係を有する複数個の第２動作プログラムを格納しており、前記測定手段は、さらに、前記第２動作プログラムのそれぞれがロードされるときに、ロードされる前記第２プログラムそれぞれの特徴を示す第２特徴量を測定し、前記証明装置は、さらに、耐タンパ化され、前記複数個の第２動作プログラムのうちの１つの第２動作プログラムがロードされているときに、当該１つの第２動作プログラムについて取得した特徴量、及び当該１つの第２動作プログラムを動作させるために必要でありロード済である他の第２動作プログラムそれぞれについて取得した特徴量を反映した第２証明情報を生成する第２証明手段を含み、前記出力手段は、さらに、生成した前記第２証明情報を第２検証装置へ出力してもよい。【００１７】
この構成によると、証明装置が、２個の動作プログラムに対応する２個のＴＰＭを備え、第１の検証装置が、第１のＴＰＭに対して検証し、成功した場合に、さらに、第２の検証装置が第２のＴＰＭに対して検証するので、複数の動作プログラムが連携して動作する証明装置について、より高いセキュリティ環境を提供することが可能となる。
ここで、前記証明装置は、さらに、前記検証装置に対して、秘密情報を要求する要求手段と、前記検証装置における当該証明装置の正当性の確認結果に応じて、秘密情報及び前記動作プログラムの更新のための更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手段に格納されている前記動作プログラムを更新する更新手段とを含む。また、前記検証装置は、さらに、秘密情報を安全に保持する情報保持手段と、前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、前記証明装置の正当性が確認された場合に、前記情報保持手段に保持されている前記秘密情報を前記証明装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記証明装置へ出力する出力手段とを含むとしてもよい。【００１８】
これらの構成によると、証明装置が、受信した更新プログラムにより動作プログラムを更新しなければ、証明装置が所望する秘密情報の取得ができないので、証明装置に対して、動作プログラムの更新を強制することができる。
ここで、前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵であり、前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、前記証明装置は、さらに、受信した前記暗号化デバイス鍵を、当該証明装置を識別する装置識別子に基づいて、復号して、デバイス鍵を生成する復号手段を含む。また、前記情報保持手段は、前記秘密情報として、前記証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵を保持しており、前記出力手段は、前記証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を出力してもよい。【００１９】
これらの構成によると、検証装置から証明装置へ伝送する情報を、証明装置に固有の装置識別子により暗号化しておくことにより、証明装置になりすました不正な装置が、当該情報を不正に取得することを防止することができる。
ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段は、前記特徴量、及び前記証明装置を識別する装置識別子に基づいて生成された前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を示す正規特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された検証情報を取得する検証情報取得手段を含み、前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。【００２０】
これらの構成によると、証明情報は、測定手段により得られた特徴量及び証明装置を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不正な装置が証明装置になりすますことを防止することができる。【００２１】
ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段は、前記特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を示す正規特徴量を取得する正規特徴量取得手段と、取得した前記正規特徴量及び前記証明装置を識別する装置識別子に基づいて、前記証明装置の正当性を検証する検証情報を生成する検証情報生成手段とを含み、前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。【００２２】
これらの構成によると、証明情報は、測定手段により得られた特徴量及び証明装置を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不正な装置が証明装置になりすますことを防止することができる。【００２３】
ここで、前記検証装置は、さらに、前記証明装置を識別する装置識別子を取得する識別子取得手段と、前記証明装置に割り当てられるデバイス鍵を、取得した前記装置識別子に基づいて暗号化して暗号化デバイス鍵を生成する暗号化手段と、生成した暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手段とを含むとしてもよい。
この構成によると、証明装置を識別する装置識別子に基づいて、前記証明装置に割り当てられるデバイス鍵を暗号化して暗号化デバイス鍵を生成し、生成した暗号化デバイス鍵を証明装置へ出力するので、証明装置になりすました不正な装置が、暗号化デバイス鍵を不正に取得したと仮定しても、正しい装置識別子を知らない不正な装置は、暗号化デバイス鍵を正しく復号することができず、デバイス鍵の不正な使用を防止することができる。【００２４】
ここで、前記秘密情報は、デバイス鍵を暗号化して生成した暗号化デバイス鍵であり、前記証明装置は、さらに、暗号化手段を含み、前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した暗号化デバイス鍵を暗号化して二重暗号化デバイス鍵を生成し、前記証明装置は、さらに、生成した二重暗号化デバイス鍵を保持するデバイス鍵保持手段を含む。また、前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、前記情報保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、前記判断手段は、前記証明装置の正当性として、前記証明装置が有する前記暗号化手段の正当性を判断し、前記出力手段は、前記暗号化手段の正当性が確認された場合に、暗号化デバイス鍵を前記証明装置へ出力してもよい。【００２５】
これらの構成によると、証明装置が有する暗号化手段の正当性が確認された場合に、暗号化デバイス鍵が検証装置から証明装置へ伝送され、証明装置が有する前記暗号化手段により、証明装置を識別する装置識別子に基づいて暗号化デバイス鍵が暗号化されて二重暗号化デバイス鍵が生成され、生成された二重暗号化デバイス鍵が保持されるので、証明装置の認証がより確実に行えるとともに、二重暗号化により、デバイス鍵の漏洩の防止をより強化することができる。【００２６】
ここで、前記暗号化手段は、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認されなかった場合に、前記更新プログラムとして、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを受信し、受信した正規の暗号化プログラムを、前記記憶部に記憶されている暗号化プログラムに上書きし、前記暗号化手段は、正規の暗号化プログラムに従って、前記マイクロプロセッサが動作することにより、暗号化アルゴリズムの機能を達成する。また、前記証明装置が有する前記暗号化手段は、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、前記プログラム格納手段は、前記更新プログラムとして、前記暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを記憶しており、前記出力手段は、前記暗号化手段が正当でないと確認された場合に、正規の前記暗号化プログラムを前記証明装置へ出力してもよい。【００２７】
これらの構成によると、証明装置が、受信した正規の暗号化プログラムにより、元の暗号化プログラムを更新しなければ、証明装置が所望するデバイス鍵の取得ができないので、証明装置に対して、正規の暗号化プログラムへの更新を強制することができる。
ここで、前記受信手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが確認された場合、前記検証装置から、受信した暗号化デバイス鍵の復号に必須となる鍵を受け取る。また、前記出力手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが前記判断手段により確認された場合、前記暗号化デバイス鍵の復号に必須となる鍵を出力してもよい。【００２８】
これらの構成によると、証明装置が、受信した暗号化プログラムを消去しなければ、デバイス鍵の復号に必須となる鍵の取得ができないので、証明装置に対して、暗号化プログラムの消去を強制することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施の形態１におけるコンテンツ配布システムの構成を示すブロック図
【図２】本発明の実施の形態１における端末Ａのハードウェア構成を示すブロック図
【図３】本発明の実施の形態１における権利購入制御プログラムの動作を示すフローチャート
【図４】本発明の実施の形態１における再生制御プログラムの動作を示すフローチャート
【図５】本発明の実施の形態１におけるＰＣＲ拡張コマンド処理の動作を示すフローチャート
【図６】本発明の実施の形態１における端末起動時の動作を示すフローチャート
【図７】本発明の実施の形態１における端末Ｎのハードウェア構成を示すブロック図
【図８】本発明の実施の形態１におけるカードのハードウェア構成を示すブロック図
【図９】本発明の実施の形態１における権利購入プログラムの動作を示すフローチャート
【図１０】本発明の実施の形態１における権利確認・鍵生成プログラムの動作を示すフローチャート
【図１１】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【図１２】本発明の実施の形態１におけるサーバの構成を示すブロック図
【図１３】本発明の実施の形態１におけるサーバ上に存在するＣＲＬデータベースのデータ構造を示す図
【図１４】本発明の実施の形態１におけるカード上に存在するＣＲＬデータベースのデータ構造を示す図
【図１５】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【図１６】第１の変形例におけるデバイス鍵配布システム２０００の構成を示すブロック図である。
【図１７】個別暗号化秘密情報の生成の流れを示す図である。
【図１８】デバイス鍵配布システム２０００の動作を示す流れ図である。
【図１９】管理テーブルＴ２０００のデータ構造の一例を示す図である。
【図２０】第２の変形例におけるデバイス鍵配布システム２０００ａの構成を示すブロック図である。
【図２１】第３の変形例におけるデバイス鍵配布システム２０００ｂの構成を示すブロック図である。
【図２２】デバイス鍵配布システム２０００ｂの動作を示す流れ図である。
【図２３】第４の変形例におけるデバイス鍵配布システム２１００の構成を示すブロック図である。
【図２４】秘密情報の生成の流れを示す図である。
【図２５】秘密情報管理テーブルＴ２１００のデータ構造の一例を示す図である。
【図２６】デバイス鍵配布システム２１００の動作を示す流れ図である。図２７へ続く。
【図２７】デバイス鍵配布システム２１００の動作を示す流れ図である。図２６から続く。
【図２８】その他の実施の形態１における構成を示す構成図である。
【図２９】端末装置３００１のハードウェア構成を示す構成図である。
【図３０】ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｌａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）３１４６の内部構成を示した図である。
【図３１】ＴＰＭプログラム格納部３１５６に記憶されているプログラムの一例を示す。
【図３２】端末装置３００１及びＣＡサーバ装置３００２の機能的構成を示した機能ブロック図である。
【図３３】証明書記憶部３１１４に記憶されている情報の一例を示す。
【図３４】鍵記憶部３１２０に記憶されている情報の一例を示す。
【図３５】Ａｔｔｅｓｔａｔｉｏｎ処理における、端末装置３００１（証明装置）及びＣＡサーバ装置３００２（検証装置）の動作を示すフローチャートである。
【図３６】Ａｔｔｅｓｔａｔｉｏｎ処理における、端末装置３００１（証明装置）及びＣＡサーバ装置３００２（検証装置）の動作を示すフローチャートである。
【図３７】Ａｔｔｅｓｔａｔｉｏｎ処理における、端末装置３００１（証明装置）及びＣＡサーバ装置３００２（検証装置）の動作を示すフローチャートである。
【図３８】ＡＩＫクレデンシャル取得処理における端末装置３００１及びＣＡサーバ装置３００２の動作を示すフローチャートである。
【図３９】ＡＩＫクレデンシャル取得処理における端末装置３００１及びＣＡサーバ装置３００２の動作を示すフローチャートである。
【図４０】その他の実施の形態２における構成を示す構成図である。
【図４１】コンテンツ提供サーバ３２０２の機能的構成を示すブロック図である。
【図４２】メモリカード３２０４の機能的構成を示すブロック図である。
【図４３】端末装置＃１（３２０１）及びメモリカード＃２（３２０４）による相互認証の動作及びデータフロー、検証データの更新処理におけるデータフローを示す。
【図４４】その他の実施の形態３における端末装置３３０１及びメモリカード３３０２の機能的構成及びメモリカード３３０２による端末装置３３０１の検証動作を示す図である。
【図４５】その他の実施の形態４における端末装置３３７１及びメモリカード３３７２の構成及び動作を示す図である。
【図４６】その他の実施の形態４の変形例における端末装置３３９２、メモリカード３３７２及びコンテンツカード３３９２の構成及び動作を示す図である。
【図４７】その他の実施の形態４の変形例における端末装置３４１６及びＳＩＭカード３４１１の構成と動作を示す図である。
【図４８】その他の実施の形態５に係る端末装置３４３１の機能的構成を示すブロック図である。
【図４９】その他の実施の形態５の変形例に係る端末装置３５００の機能的構成を示すブロック図である。
【図５０】その他の実施の形態５の変形例に係る端末装置３６００の機能的構成を示すブロック図である。
【符号の説明】
【００３０】
２０００、２０００ａ、２０００ｂ、２１００    デバイス鍵配布システム
２００１、２００１ａ、２００１ｂ、２１０１    端末
２００２、２００２ａ、２００２ｂ、２１０２    カード
２００３、２００３ａ、２００３ｂ、２１０３    ネットワーク接続端末
２００４、２００４ａ、２００４ｂ、２１０４    サーバ
２０１０、２０１０ａ、２０１０ｂ、２１１０    ＩＤ格納部
２０１１、２０１１ａ、２０１１ｂ    プログラム格納部
２０１２、２０１２ａ、２０１２ｂ、２１１３    端末測定部
２０１３、２０１３ａ、２０１３ｂ    プログラム更新部
２０１４、２０１４ａ、２０１４ｂ    秘密情報復号部
２０２０、２０２０ａ、２０２０ｂ、２１２０    秘密情報提供部
２０２１、２０２１ａ、２０２１ｂ、２１２１    端末ＩＤ格納部
２０２２、２０２２ａ、２０２２ｂ、２１２２    正当性確認情報格納部
２０２３、２０２３ａ、２０２３ｂ    更新プログラム格納部
２０２４、２０２４ａ、２０２４ｂ、２１２５    秘密情報取得部
２０２５、２０２５ａ、２０２５ｂ、２１２６    正当性確認情報取得部
２０２６、２０２６ａ、２０２６ｂ    更新プログラム取得部
２０２７、２０２７ａ、２０２７ｂ、２１２９    正当性確認部
２０２８、２０２８ａ、２０２８ｂ    プログラム出力部
２０２９、２０２９ａ、２０２９ｂ、２１３２    秘密情報蓄積部
２０３０、２０３０ａ、２０３０ｂ、２１３３    スイッチ
２０４０ｂ  確認情報個別化部
２０４１ｂ  デバイス鍵個別化部
２０４２ｂ  カードＩＤ格納部
２０４３ｂ  端末共通鍵格納部
２１１１    第１のプログラム格納部
２１１２    第２のプログラム格納部
２１１４    第１のプログラム更新部
２１１５    第２のプログラム更新部
２１１６    デバイス鍵個別化部
２１１７    個別化デバイス鍵蓄積部
２１１８    デバイス鍵復号部
２１２３    第１の更新プログラム格納部
２１２４    第２の更新プログラム格納部
２１２７    第１の更新プログラム取得部
２１２８    第２の更新プログラム取得部
２１３０    第１のプログラム出力部
２１３１    第２のプログラム出力部
２１４０    確認情報個別化部
３０００    検証システム
３００１    端末装置
３００２    ＣＡサーバ装置
３００３    ＴＰＭサーバ装置
３００４    端末サーバ装置
３００５    インターネット
３１０２    制御部
３１０３    送受信部
３１０４    測定値通知部
３１０６    プログラム記憶部
３１０７    ＲＴＭ
３１０８    メモリ
３１１１    ＰＣＲ値記憶部
３１１２    ログ取得部
３１１３    ＰＣＲ値算出部
３１１４    証明書記憶部
３１１６    ログ記憶部
３１１７    ＴＰＭ
３１１８    ＴＰＭ制御部
３１１９    検証部
３１２０    鍵記憶部
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図１は、コンテンツ配布システム０１００の構成を示している。コンテンツ配布システム０１００は、サーバ０１０１、端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、端末Ｎ０１０５〜端末Ｚ０１０６、カード０１０７から構成されており、サーバ０１０１は、端末Ａ０１０２、端末Ｂ０１０３、および端末Ｍ０１０４とインターネット０１０８を介して接続されている。端末Ｎ０１０５、端末Ｚ０１０６はサーバ０１０１と直接通信する手段を持っていない。端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、および端末Ｎ０１０５〜端末Ｚ０１０６は、後述するようにカードインターフェースを備えており、カード０１０７を介してデータのやり取りが可能となっている。【００３２】
なお、図１ではサーバ０１０１と接続されている端末として、端末Ａ０１０２、端末Ｂ０１０３、端末Ｍ０１０４しか図示していないが、端末Ａ０１０２等と同一の構成を持つ１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｂ０１０３、端末Ｍ０１０４は端末Ａ０１０２と同様の構成であるため、必要な場合を除いて端末Ａ０１０２以外の端末についての説明は省略する。また、図１では、サーバ０１０１と接続されていない端末として、端末Ｎ０１０５、端末Ｚ０１０６しか図示していないが、端末Ｎ１０５または端末Ｚ０１０６と同一の構成を含む１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また、図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｚ０１０６は端末Ｎ０１０５と同様の構成であるため、必要な場合を除いて端末Ｎ０１０５以外の端末についての説明は省略する。【００３３】
端末Ａ０１０２は、インターネット０１０８を介してサーバ０１０１と通信し、音楽や映画などのコンテンツをダウンロードする機能とダウンロードしたコンテンツを再生する機能を有している。ここで、コンテンツは著作権保護されており暗号化された形で端末Ａ０１０２にダウンロードされる。
カード０１０７は、端末Ａ０１０２、およびインターネット０１０８を介してサーバ０１０１と通信し、コンテンツを暗号化した鍵を取得し、端末Ａ０１０２の依頼に基づいてコンテンツを暗号化した鍵を端末Ａ０１０２に渡す。ここで、カード０１０７はコンテンツを暗号化した鍵を渡す際に、端末Ａ０１０２が正当な端末かどうかを確かめて、正当な端末でなければ鍵を出力しないよう構成されている。具体的には、公知の相互認証等により、相手の正当性を確認した上で鍵を渡している。【００３４】
図２は、端末Ａ０１０２の構成を示している。なお、端末Ｂ０１０３、端末Ｍ０１０４も同様の構成をしている。端末Ａ０１０２は、プロセッサ０２０１、ＲＡＭ０２０２、ブートコード０２０３、カードインターフェース０２０４、通信部０２０５、コンテンツ格納部０２０６、セキュアモジュール０２０７、プログラム格納部０２０８で構成されており、バス０２１３で相互に接続されている。プログラム格納部０２０８には、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２が格納されている。【００３５】
プロセッサ０２０１は、ブートコード０２０３、およびＲＡＭ０２０２にロードされているプログラムを実行し、端末Ａ０１０２の各種処理を行う。
ＲＡＭ０２０２は、プロセッサ０２０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０２０８に格納されている。
ブートコード０２０３は、端末Ａ０１０２がリセットされた後、プロセッサ０２０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０２０３は、プログラム格納部０２０８に格納されているオペレーティングシステム０２０９をＲＡＭ０２０２へ展開する。【００３６】
カードインターフェース０２０４は、カード０１０７と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、カードインターフェース０２０４と通信することで、カード０１０７と通信することができる。端末Ａ０１０２で動作するプログラムはカード０１０７と通信する時には常にカードインターフェース０２０４を使用する。以下、端末Ａ０１０２で動作するプログラムとカード０１０７の通信について記述する場合はカードインターフェース０２０４の記述は省略する。【００３７】
通信部０２０５は、インターネット０１０８と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、通信部０２０５と通信することで、インターネット０１０８を介してサーバ０１０１と通信することができる。
コンテンツ格納部０２０６は、端末Ａ０１０２がサーバ０１０１からダウンロードしたコンテンツを格納しておく場所である。【００３８】
セキュアモジュール０２０７は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）で規格化されているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と同様の機能を有するデバイスである。ＴＰＭの詳細な仕様については、ＴＣＧのホームページ＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｔｒａｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ＞で公開されている。【００３９】
セキュアモジュール０２０７は、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｏｒ）と呼ばれるレジスタを含んでおり、そのレジスタには端末Ａ０１０２のソフトウェア構成に依存する値が格納される。セキュアモジュール０２０７は、ＰＣＲを更新するコマンドを提供しており、そのコマンドが実行されると現在のＰＣＲの値とそのコマンドの引数を結合し、その結合した値に対して一方向性関数を施した結果でＰＣＲが更新される。以下、このコマンドをＰＣＲ拡張コマンドと呼ぶ。【００４０】
セキュアモジュール０２０７は、セキュアモジュール０２０７内に外部に取り出されない形で保持されている秘密鍵を用いて、ＰＣＲの値に対し署名を施すサービスを提供することができる。このサービスはＡｔｔｅｓｔａｔｉｏｎと呼ばれる。例えば、端末Ａ０１０２内で動作するプログラムがセキュアモジュール０２０７のＡｔｔｅｓｔａｔｉｏｎサービスに関連するコマンドを用い、署名された現在のＰＣＲ値を取得してサーバ０１０１に送信する。この場合、サーバ０１０１は、認証局から得たセキュアモジュール０２０７の公開鍵を用いて署名検証することによって、送信された値がセキュアモジュール０２０７で生成されたＰＣＲの値であることを確かめることができる。なお、セキュアモジュール０２０７には耐タンパ処理が施されており、セキュアモジュール０２０７内で実行されるＰＣＲ拡張コマンド処理、およびＡｔｔｅｓｔａｔｉｏｎサービスに関連するコマンド処理を不正に変更することはできないようになっている。【００４１】
プログラム格納部０２０８は、端末Ａ０１０２で動作するプログラムを格納する場所であり、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２を格納している。
オペレーティングシステム０２０９は、一般的な端末Ａ０１０２の基盤ソフトウェアであり、オペレーティングシステム０２０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０２０９は、プログラム格納部０２０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。【００４２】
続いて、各プログラムが行う処理について説明する。
図３は権利購入制御プログラム０２１０の動作フローを示している。権利購入制御プログラム０２１０はオペレーティングシステム０２０９上で動作するアプリケーションである。権利購入制御プログラム０２１０は、端末Ａ０１０２において、サーバ０１０１から提供されるコンテンツの権利の取得をカード０１０７に依頼する処理とそのコンテンツのダウンロードを行う。以下、この処理の詳細を説明する。【００４３】
権利購入制御プログラム０２１０は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、まず、サーバ０１０１に問い合わせて購入可能なコンテンツのリストを取得する。そのリストにはコンテンツを識別できる情報、例えば、コンテンツのＩＤやコンテンツのタイトル、コンテンツの概要等が含まれている。次に、そのリストを端末Ａ０１０２のユーザに提示し、購入するコンテンツを選択させ、選択したコンテンツのＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤ（端末Ａ０１０２の端末ＩＤ）を含むコンテンツ購入要求をカードＩ／Ｆ０２０４を介して、カード０１０７に送信する（ステップＳ０３０１）。【００４４】
次に、権利購入制御プログラム０２１０は、カード０１０７に購入依頼したコンテンツのＩＤをサーバ０１０１に送信し、該当するコンテンツをサーバ０１０１からダウンロードし、コンテンツ格納部０２０６に格納する。ここで、ダウンロードするコンテンツは暗号化されているので、コンテンツ格納部から不正にコピーできたとしても著作権は保護される（ステップＳ０３０２）。【００４５】
なお、端末Ａ０１０２は、端末Ｎ０１０５等のインターネット０１０８に接続されていない他の端末のためにコンテンツを購入する場合がある。この場合、コンテンツ購入要求に含ませる端末ＩＤは、端末Ｎ０１０５等の端末ＩＤとなる。さらに、コンテンツを端末Ｎ０１０５等に渡すため、ステップＳ０３０２の後にコンテンツをカード０１０７に移動するステップが追加で実行される。【００４６】
図４は再生制御プログラム０２１１の動作フローを示している。再生制御プログラム０２１１はオペレーティングシステム０２０９上で動作するアプリケーションである。再生制御プログラム０２１１は、再生するコンテンツを暗号化している鍵をカード０１０７から取得し、その鍵でコンテンツを復号化してコンテンツを再生する。また、カードから端末Ａ０１０２内のプログラムの更新を依頼された場合は、プログラム格納部０２０８に格納されているプログラムを更新する。以下、再生制御プログラム０２１１の処理の詳細を述べる。【００４７】
再生制御プログラム０２１１は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、コンテンツ格納部０２０６に格納されているコンテンツのリストを取得し、カード０１０７に問い合わせて再生可能なコンテンツのリストを作成する。カード０１０７は、カード０１０７に格納されているコンテンツを暗号化している鍵とその鍵に対応するコンテンツＩＤを格納しており、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツを暗号化している鍵に対応するコンテンツＩＤのリストを取得して、コンテンツ格納部０２０６に格納されているコンテンツＩＤのリストと比較して再生可能なコンテンツのリストを作成する。このリストは例えばカードに鍵が格納されているコンテンツのリストとなる（ステップＳ０４０１）。【００４８】
なお、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツＩＤのリストもカード０１０７から取得し、再生可能なコンテンツのリストに追加することができる。この追加リストは、端末Ａ０１０２内に格納されているコンテンツに対する再生可能なコンテンツのリストの作成手順と同様の手順で作成される。この追加リストも含めたリストは、カードを含む端末上に存在する鍵に対応したコンテンツのリストとなり、（コンテンツ格納部０２０６に格納されているか否かは問わず）その端末で再生できるコンテンツの一覧を示すリストとなる。【００４９】
再生制御プログラム０２１１は、ステップＳ０４０１で生成した再生可能なコンテンツのリストを端末Ａ０１０２のユーザに提示し、再生したいコンテンツを選択させ、そのコンテンツのＩＤを取得する。再生制御プログラム０２１１は、コンテンツＩＤを含む鍵出力依頼情報をカード０１０７に送信し、対応するコンテンツを暗号化している鍵の出力を依頼する（ステップＳ０４０２）。鍵出力依頼情報は、コンテンツＩＤ、端末ＩＤ、プログラム証明書、署名された現在のＰＣＲ値を含む。ここで、署名された現在のＰＣＲ値は、再生制御プログラム０２１１がセキュアモジュールに対してＡｔｔｅｓｔａｔｉｏｎサービスに関連するコマンドを用いて取得したものであり、そのＰＣＲの値は現在、端末で動作しているソフトウェアに依存する値となっている。【００５０】
次に、再生制御プログラム０２１１は、カード０１０７に依頼した鍵が出力されたかどうかをカード０１０７に問い合わせる。（ステップＳ０４０３）もし、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、その鍵を用いてコンテンツ復号処理（ステップＳ０４０４）を行う。もし、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７からプログラムの更新依頼があるかどうかを確かめる処理（ステップＳ０４０６）を行う。ここで、プログラムの更新依頼は、コンテンツの処理プログラムにセキュリティホール等が発見されているとカード０１０７が判断した場合に、鍵を渡す前に、そのプログラムをアップデートすることを要求する依頼である。【００５１】
再生制御プログラム０２１１は、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、カード０１０７から鍵を取得し、再生すべきコンテンツをコンテンツ格納部０２０６、もしくはカード０１０７から取得して、コンテンツを復号化する（ステップＳ０４０４）。
再生制御プログラム０２１１は、コンテンツが復号化されるとそのコンテンツを再生する。（ステップＳ０４０５）再生制御プログラム０２１１は、復号化されたコンテンツの種別に応じた再生を行う。以降の再生の手順は一般的な再生方法であるので、説明は省略する。【００５２】
再生制御プログラム０２１１は、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７にプログラムの更新依頼があるかどうかを問い合わせる。もし、プログラムの更新依頼があれば（ステップＳ０４０６でＹＥＳ）、カードから更新プログラムと後述する正規ＰＣＲ値を取得し、プログラム格納部０２０８のプログラムと後述するプログラム証明書０２１２を更新する（ステップＳ０４０７）。ここで、更新対象のプログラムとそのプログラムの正規ＰＣＲ値は、後述するようにサーバ０１０１から取得され、カードに格納される。なお、この正規ＰＣＲ値には後述するように端末メーカのみ知る秘密鍵を用いて作られた署名が付されており、この署名がプログラム証明書０２１２となる。その後、再生制御プログラム０２１１は、端末Ａ０１０２を再起動するためにシステムリセット依頼をオペレーティングシステム０２０９に送信する（ステップＳ０４０８）。【００５３】
もし、プログラムの更新依頼がなければ（ステップＳ０４０６でＮＯ）、再生制御プログラム０２１１は、処理を終了する。
以上が再生制御プログラム０２１１が行う処理の説明である。以下、プログラム格納部０２０８が格納している情報の説明に戻る。
プログラム証明書０２１２は、セキュアモジュール０２０７のＰＣＲの値に対して端末Ａ０１０２を製造したメーカのみ知る秘密鍵で署名したデータである。署名するＰＣＲの値は、端末Ａ０１０２が起動し、オペレーティングシステム０２０９や各種アプリケーションがローディングされた後のＰＣＲの値である。この時、メーカはオペレーティングシステム０２０９や各種アプリケーションが各種著作権保護規格の実装要件を満たしているかどうかを確認した後、署名する。ここで、署名に用いる秘密鍵は端末Ａ０１０２には搭載されていないため、プログラム証明書０２１２は端末Ａ０１０２では生成できない。プログラム証明書０２１２は、例えばメーカの工場で生成される。【００５４】
ＰＣＲの値は、端末Ａ０１０２のソフトウェア構成に依存させるために、端末Ａ０１０２上でローディングされるプログラムのハッシュ値を引数としてＰＣＲ拡張コマンドを実行することで更新される。プログラムのロード時に必ずロード対象のプログラムのハッシュ値を計算し、ＰＣＲ拡張コマンドを用いて、そのハッシュ値でＰＣＲを更新していけば、ＰＣＲ値を端末Ａ０１０２のソフトウェア構成に常に依存させることができる。【００５５】
図５は、セキュアモジュール０２０７内のＰＣＲを更新し、ＰＣＲに端末Ａ０１０２のソフトウェア構成に依存する値を格納する処理のフローを示している。この処理は、オペレーティングシステム０２０９をローディングするブートコード０２０３、および各種アプリケーションプログラムをローディングするオペレーティングシステム０２０９の動作に共通して含まれる。これは、ブートコード０２０３はオペレーティングシステム０２０９を読み込むことで端末Ａ０１０２内のソフトウェア構成を変更し、オペレーティングシステム０２０９はアプリケーションプログラムを読み込むことで端末Ａ０１０２内のソフトウェア構成を変更するからである。【００５６】
以下の説明では、別のプログラムを呼び出す側（前者におけるブートコード０２０３と、後者におけるオペレーティングシステム０２０９）を「ロードするプログラム」と、呼び出される側のプログラム（前者におけるオペレーティングシステム０２０９、後者におけるアプリケーションプログラム）を「ロード対象プログラム」と呼ぶ。
ロードするプログラムは、まず、ロード対象プログラムのハッシュ値をハッシュ関数アルゴリズムで計算する（ステップＳ０５０１）。次に、このハッシュ値を引数として、ＰＣＲ拡張コマンドを実行し、セキュアモジュール０２０７内のＰＣＲの値を更新する（ステップＳ０５０２）。ロードするプログラムは、ＰＣＲ更新処理（ステップＳ０５０２）終了後、ロード対象プログラムをＲＡＭ０２０２に展開する（ステップＳ０５０３）。最後に、ロードするプログラムはＲＡＭ０２０２にロードしたプログラムに分岐する（ステップＳ０５０４）。【００５７】
端末Ａ０１０２は、電源投入後、もしくはリセット解除後、すなわち端末起動時、オペレーティングシステム０２０９や各種アプリケーションをＲＡＭ０２０２にロードしていく。端末Ａ０１０２は、プログラムをロードする時、図５で説明したようにＰＣＲの更新を行う。
図６は、端末Ａ０１０２の起動時の動作を表すフローチャートである。【００５８】
電源投入後、もしくはリセット解除後、プロセッサ０２０１は、ブートコード０２０３を実行する（ステップＳ０６０１）。ブートコード０２０３は、端末Ａ０１０２のハードウェアの初期設定を行った後、ブートコード０２０３自身のハッシュ値を計算し、このハッシュ値をＰＣＲ拡張コマンドの引数として、セキュアモジュール０２０７のＰＣＲを更新する。ここで、セキュアモジュール０２０７のＰＣＲは、電源投入、もしくはリセット解除後には初期化されているものとする。【００５９】
次にブートコード０２０３は、オペレーティングシステム０２０９をＲＡＭ０２０２にローディングする。ブートコード０２０３は、オペレーティングシステム０２０９をローディングする際、図５に示す手順で、オペレーティングシステム０２０９のハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。その後、プロセッサ０２０１は、オペレーティングシステム０２０９を実行し、オペレーティングシステム０２０９の初期化を行う。【００６０】
オペレーティングシステム０２０９は、その後、各種アプリケーションのローディングを行う（ステップＳ０６０３）。各種アプリケーションがローディングされる際、図５に示す手順で、各種アプリケーションのハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。
その後、端末Ａ０１０２は、ユーザからの入力を待ち、その入力に応じたアプリケーションプログラムの処理を実行する（Ｓ０６０４）。【００６１】
このように、端末Ａ０１０２は、電源投入後、もしくはリセット後、ブートコード０２０３を含む端末Ａ０１０２で動作するプログラムのハッシュ値でＰＣＲ拡張コマンドを用い、セキュアモジュール０２０７のＰＣＲを更新していく。その結果、セキュアモジュール０２０７のＰＣＲは、端末Ａ０１０２で動作しているプログラムに依存した値となる。
以上で端末Ａ０１０２の構成の説明を終わる。続いて、端末Ｎ０１０５の構成の説明に移る。【００６２】
図７は、端末Ｎ０１０５の構成を示している。なお、端末Ｚ０１０６も同様の構成をしている。端末Ｎ０１０５は、プロセッサ０７０１、ＲＡＭ０７０２、ブートコード０７０３、カードインターフェース０７０４、コンテンツ格納部０７０６、セキュアモジュール０７０７、プログラム格納部０７０８で構成されており、これらの要素はバス０７１３で相互に接続されている。プログラム格納部０７０８には、オペレーティングシステム０７０９、再生制御プログラム０７１１、プログラム証明書０７１２が格納されている。【００６３】
端末Ｎ０１０５のこれらの構成要素は、図２に示す端末Ａ０１０２の構成要素と同一の機能を有するため説明は省略する。ただし、端末Ｎ０１０５には、端末Ａ０１０２の通信部０２０５、権利購入制御プログラム０２１０に相当する構成要素は存在しない。
以上で端末Ｎ０１０５の構成の説明を終わる。続いて、サーバ０１０１の構成の説明を行う。【００６４】
図１２は、サーバ０１０１の構成を示している。サーバ０１０１は、通信部１２０１、ＣＲＬデータベース１２０２、ＣＲＬ管理部１２０３、権利管理部１２０４で構成されている。ＣＲＬデータベース１２０２はＣＲＬ管理部１２０３と接続されている。また、ＣＲＬ管理部１２０３、権利管理部１２０４は、通信部１２０１と接続されている。
通信部１２０１は、インターネット０１０８と接続されており、端末Ａ０１０２〜端末Ｍ０１０４と通信を行う。ＣＲＬ管理部１２０３、および権利管理部１２０４は、この通信部１２０１を介して端末Ａ０１０２〜端末Ｍ０１０４、および端末Ａ０１０２等に接続されたカード０１０７と通信する。【００６５】
ＣＲＬデータベース１２０２は、リボーク（無効化）されている端末の端末ＩＤ、その端末のリボークされた原因を取り除いた後の更新プログラム、およびその更新プログラムが端末上で実行された時のＰＣＲ値が格納されている。なお、端末のリボークは、一般的には、悪意の利用者の端末が特定できている場合にその端末を無効化することなど、プログラムの更新によって回復できない欠陥を持った端末の無効化も示すが、本実施の形態では、プログラムの更新によって回復できる欠陥を持った端末をリボーク対象として説明する。具体的には、本実施の形態では、セキュリティホールを持った古いソフトウェアを使用し続けている端末などが、リボーク対象としてＣＲＬデータベースに記録される。【００６６】
図１３は、ＣＲＬデータベース１２０２の構成を示した図である。ＣＲＬデータベース１２０２は、ＣＲＬエントリＴ１３０１、Ｔ１３０２、Ｔ１３０３・・・から構成され、各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。ＣＲＬデータベース１２０２は、リボークされている端末の情報により構成される。【００６７】
端末ＩＤエリアには、リボークされている端末のＩＤが格納される。更新プログラムエリアには、リボークされた端末の更新プログラムが格納される。リボークされた原因がソフトウェアにある場合、この更新プログラムを用いて端末をアップデートすれば、端末は動作し続けることができる。このようなケースの具体例としては、ソフトウェアがハッキングされたことが判明した場合や、ソフトウェアにセキュリティホールが発見された場合などである。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値に端末メーカのみ知る秘密鍵で作られた署名が付した情報が格納される。【００６８】
この正規ＰＣＲ値を用い、端末側でプログラムが正しくアップデートされているかどうかを確かめることができる。
ＣＲＬ管理部１２０３は、通信部１２０１および端末Ａ０１０２を介してカード０１０７と相互認証を行い正規のカードであることを確かめ、ＣＲＬ情報を通信部１２０１を介して提供する。より具体的には、ＣＲＬ管理部１２０３は、カード０１０７から送られてくる端末ＩＤがＣＲＬデータベース１２０２に存在するかどうか確かめ、存在していれば該当するエントリの更新プログラムおよび正規ＰＣＲ値をカード０１０７に提供する。【００６９】
権利管理部１２０４は、コンテンツの権利情報を管理し、端末の要求に応じて課金処理を行い、コンテンツの権利情報を提供する。権利管理部１２０４は、カード０１０７と相互認証を行い、正当なカード０１０７であることを確かめた後に課金処理および権利情報の提供を行う。権利管理部１２０４は、通信部１２０１を介してインターネット０１０８と接続される。【００７０】
以上でサーバ０１０１の構成の説明を終わる。続いて、カード０１０７の構成の説明に移る。
図８は、カード０１０７の構成を示している。カード０１０７は、プロセッサ０８０１、ＲＡＭ０８０２、ブートコード０８０３、端末Ｉ／Ｆ０８０４、ＣＲＬデータベース０８０５、コンテンツ格納部０８０７、プログラム格納部０８０８で構成されており、これらの構成要素はバス０８１３で相互に結合されている。また、カード０１０７は、耐タンパ性を有しており、カード内のプログラムやデータを容易に暴露されることは無いようになっている。【００７１】
プロセッサ０８０１は、ブートコード０８０３、およびＲＡＭ０８０２にロードされているプログラムを実行し、カード０１０７の各種処理を行う。
ＲＡＭ０８０２は、プロセッサ０８０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０８０８に格納されている。
ブートコード０８０３は、カード０１０７がリセットされた後、プロセッサ０８０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０８０３は、プログラム格納部０８０８に格納されているオペレーティングシステム０８０９をＲＡＭ０８０２へ展開する。なお、カード０１０７は、端末に挿入され電力が供給された時点でリセットされる。【００７２】
端末Ｉ／Ｆ０８０４は、カード０１０７と端末を接続するインターフェースである。プロセッサ０８０１で動作するプログラムは、端末Ｉ／Ｆ０８０４と通信することで、端末と通信することができる。カード０１０７で動作するプログラムは端末Ｉ／Ｆ０８０４と通信する時には常に端末Ｉ／Ｆ０８０４を使用する。以下、カード０１０７で動作するプログラムと端末との通信について記述する場合は端末Ｉ／Ｆ０８０４の記述は省略する。【００７３】
図１４は、ＣＲＬデータベース０８０５の構成を示した図である。ＣＲＬデータベース０８０５は、ＣＲＬエントリＴ１４０１、Ｔ１４０２、Ｔ１４０３・・・から構成され、各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。
端末ＩＤエリアには、カード０１０７が取得した端末のＩＤが格納される。なお、端末ＩＤのエリアに書かれている「ＩＤ＿Ａ」「ＩＤ＿Ｂ」「ＩＤ＿Ｎ」はそれぞれ、端末Ａ１０２、端末Ｂ１０３、端末Ｎ１０５の端末ＩＤである。更新プログラムエリアには、該当する端末ＩＤを持つ端末がリボークされている場合、その端末の更新プログラムが格納される。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値が格納される。ここで正規ＰＣＲ値には、前述したように端末メーカのみ知る秘密鍵を用いて作られた署名が付されている。なお、Ｔ１４０３では、更新プログラムがＮＵＬＬに、正規のＰＣＲ値が現状のＰＣＲ値となっている。このエントリはカード０１０７が鍵出力依頼情報を受け取った後の状態でありかつ更新プログラムを取得していない状態である。例えば、カード０１０７が初めて端末Ｎ０１０５に挿入されて、鍵出力依頼情報を受け取った直後の状態である。【００７４】
コンテンツ格納部０８０７には、暗号化されたコンテンツとコンテンツの権利が格納される。このコンテンツは端末Ａ０１０２のようなサーバ０１０１に接続可能な端末でダウンロードされ、コンテンツ格納部０８０７に格納される。コンテンツ格納部０８０７は、端末Ｎ０１０５のようなインターネット０１０８を経由してサーバ０１０１にアクセスできない端末にコンテンツを供給するために用いられる。また、コンテンツの権利は、後述する権利購入プログラム０８１０によってサーバ０１０１から取得されてコンテンツ格納部０８０７に格納される。【００７５】
コンテンツ格納部０８０７に格納されるコンテンツの権利は、カード０１０７の外部から直接アクセスすることはできず、後述する権利確認・鍵生成プログラム０８１１しかアクセスできないような実装となっている。具体的には、権利確認・鍵生成プログラム０８１１でしか復号できないように暗号化したりすることで、このような実装を行うことができる。【００７６】
プログラム格納部０８０８は、オペレーティングシステム０８０９、権利購入プログラム０８１０、権利確認・鍵生成プログラム０８１１を格納している。
オペレーティングシステム０８０９は、一般的なカード０１０７の基盤ソフトウェアであり、オペレーティングシステム０８０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０８０９は、プログラム格納部０８０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。【００７７】
権利購入プログラム０８１０は、端末の権利購入制御プログラム０２１０から受け取ったコンテンツ購入要求に基づき、サーバ０１０１と端末の通信機能を用いて通信して権利の購入およびカード０１０７のＣＲＬデータベース０８０５の更新を行う。なお、コンテンツ購入要求には、端末Ａ０１０２の説明で述べたように、購入対象のコンテンツＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤが含まれている。【００７８】
図９は、権利購入プログラム０８１０の動作を示すフローチャートである。権利購入プログラム０８１０は、コンテンツ購入要求に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ０９０１）。権利購入プログラム０８１０は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利購入プログラム０８１０は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。【００７９】
権利購入プログラム０８１０は、サーバ０１０１と相互認証を行い、コンテンツの購入処理およびコンテンツの権利の取得を行う（ステップＳ０９０２）。取得したコンテンツの権利は、コンテンツ格納部０８０７に安全に保存される。コンテンツの権利には、コンテンツの利用期限、利用回数などのコンテンツ利用条件、およびコンテンツを暗号化している鍵が格納されている。コンテンツの権利は暗号化された形でコンテンツ格納部０８０７に保持される。【００８０】
次に、権利購入プログラム０８１０は、サーバ０１０１に問い合わせ、ＣＲＬデータベース０８０５の更新を行う（ステップＳ０９０３）。ここで、権利購入プログラム０８１０は、ＣＲＬデータベース０８０５のＣＲＬエントリに格納されているすべての端末ＩＤをサーバ０１０１に送信する。サーバ０１０１のＣＲＬ管理部１２０３は、受け取った端末ＩＤがＣＲＬデータベース１２０２に格納されているかどうかを確かめ、該当する端末ＩＤが存在する場合、その端末ＩＤが格納されているＣＲＬエントリ内の更新プログラムと正規ＰＣＲ値を権利購入プログラム０８１０に送信する。権利購入プログラム０８１０は、受け取った更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５の該当する端末ＩＤを含むＣＲＬエントリに格納する。【００８１】
図１０は、権利確認・鍵生成プログラム０８１１の動作を示すフローチャートである。
権利確認・鍵生成プログラム０８１１は、端末がリボークされていないかどうか確認し、されていなければ、コンテンツ利用条件をチェックして再生可能な状態であればコンテンツの暗号鍵を端末に出力する。また、リボークされている場合、更新プログラムを端末に出力する。【００８２】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ１００１）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利確認・鍵生成プログラム０８１１は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。権利購入プログラム０８１０にも同様の処理を行う機能があるが、このステップは端末Ｎ０１０５のようなインターネット０１０８に接続されない端末で端末ＩＤを取得するために実行される。端末Ｎ０１０５のような端末は、権利購入プログラム０８１０を実行することはないからである。なお、これらの端末については、端末Ａ０１０２等のインターネット０１０８に接続された機器がカード０１０７を用いて事前に購入したコンテンツを再生することを想定している。【００８３】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるＡｔｔｅｓｔａｔｉｏｎサービスにより署名されたＰＣＲ値の署名検証を行う（ステップＳ１００２）。署名検証の結果、ＰＣＲ値が正規のものでないと判断された場合（ステップＳ１００２でＮＯ）、権利確認・鍵生成プログラム０８１１は処理を終了する。
署名検証の結果、ＰＣＲの値が正規のものであると確認された場合（ステップＳ１００２でＯＫ）、権利確認・鍵生成プログラム０８１１は、端末の正当性確認をＰＣＲ値を用いて行う（ステップＳ１００３）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値と、端末より取得したＰＣＲ値を比較する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。ここで、比較結果がＯＫとはＰＣＲ値と正規ＰＣＲ値とが一致することを意味し、比較結果がＮＧとはＰＣＲ値と正規ＰＣＲ値とが一致しないことを意味する。【００８４】
なお、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値が存在しない場合、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるプログラム証明書に含まれるＰＣＲ値を、そのＰＣＲ値が端末メーカにより生成されたものであるかどうかを端末メーカの公開鍵で確認した後、正規ＰＣＲ値の替わりに用いて端末の正当性を確認する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。【００８５】
ここで、権利確認・鍵生成プログラム０８１１は、正規ＰＣＲ値をサーバから取得していない場合に限って、鍵出力依頼情報に含まれるプログラム証明書中のＰＣＲ値をＣＲＬエントリに格納し、その後の端末の正当性確認に用いる。このプログラム証明書はメーカが出荷時に機器のソフトウェア構成を表すＰＣＲ値を含む状態で署名しているものであるため、実質的にはカード０１０７は端末が出荷時のソフトウェア構成であるかどうかの検証しかできないこととなる。しかしながら、後述するが、本実施の形態では、権利を購入する処理の中でＣＲＬエントリに格納されている端末ＩＤすべてについて更新プログラムが存在するかどうかの確認が行われ、更新プログラムが存在している場合は更新プログラムおよびその更新プログラムに対応した正規ＰＣＲがカード０１０７のＣＲＬエントリに格納される。そのため、一度端末ＩＤがＣＲＬエントリに格納され、権利購入処理が発生すると正規ＰＣＲ値を用いた端末の正当性検証が完全に機能することとなる。端末の利用者はコンテンツ配信サービスを受け続けるためには権利購入処理の実行が不可欠となるため、正規ＰＣＲ値の取得操作を避けることは困難である。【００８６】
端末が正当であると判断された場合（ステップＳ１００３でＯＫ）、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるコンテンツＩＤに該当するコンテンツの権利情報をコンテンツ格納部０８０７から取得し、利用条件をチェックする（ステップＳ１００４）。利用条件のチェックがＮＧの場合（ステップＳ１００４でＮＧ）、権利確認・鍵生成プログラム０８１１は処理を終了する。【００８７】
利用条件のチェックがＯＫの場合（ステップＳ１００４でＯＫ）、権利確認・鍵生成プログラム０８１１は、コンテンツの権利情報に含まれるコンテンツ暗号鍵を端末に出力し、権利確認・鍵生成プログラムの処理を終了する（ステップＳ１００５）。
端末の正当性確認ステップで端末が正当でないと判断された場合（ステップＳ１００３でＮＧ）、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力要求に含まれる端末ＩＤに該当するＣＲＬエントリの更新プログラムエリアに更新プログラムが存在するかどうかを確かめる（ステップＳ１００６）。更新プログラムが存在しない場合（ステップＳ１００６でＮＧ）、権利確認・鍵生成プログラム０８１１は、処理を終了する。【００８８】
更新プログラムが存在する場合（ステップＳ１００６でＯＫ）、更新プログラムと正規ＰＣＲの値の出力処理を行う（ステップＳ１００７）。ここで、更新プログラムおよび正規ＰＣＲ値は、ＣＲＬデータベース０８０５内に格納されている鍵出力依頼情報に含まれる端末ＩＤに該当するＣＲＬエントリのものである。
次に、コンテンツ配布システム０１００の動作を説明する。【００８９】
まず、インターネット０１０８を介してサーバ０１０１に接続されている端末（端末Ａ０１０２〜端末Ｍ０１０４）についての動作を説明する。以下、端末Ａ０１０２を例として説明するが、端末Ｂ０１０３〜端末Ｍ０１０４も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１１は、端末Ａ０１０２においてカード０１０７を用いてサーバ０１０１から権利を購入し、サーバ０１０１から取得したコンテンツを端末Ａ０１０２で再生する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ａ０１０２はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。以下、図１１に示すフローチャートに従ってコンテンツ配布システム０１００の動作ついて説明する。【００９０】
端末Ａ０１０２は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１１０１）。その結果、端末０１０２のセキュアモジュール０２０７内のＰＣＲが端末０１０２で動作しているプログラムに依存する値となる。カード０１０７は、ブートコード０８０３を用いてオペレーティングシステム０８０９をＲＡＭ０８０２にローディングし、その後、オペレーティングシステム０８０９が各種アプリケーションを起動することでカード０１０７を利用可能な状態にする。【００９１】
次に端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１１０２）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。
ここで、端末Ａ０１０２はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１１０３）。【００９２】
次に端末Ａ０１０２は、図４に示すように再生制御プログラム０２１１を動作させコンテンツの再生を行う。再生制御プログラム０２１１がカード０１０７に対し鍵の出力を依頼すると図１０に示すように権利確認・鍵生成プログラム０８１１が動作する。ここで、権利確認・鍵生成プログラム０８１１は、端末の正当性確認（Ｓ１００３）を行う。ここで、端末Ａ０１０２はリボークされているので、端末の正当性確認はＮＧとなる（Ｓ１００３でＮＧ）。そのため、カード０１０７は、ＣＲＬデータベース０８０５内に端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリがあり、また更新プログラムおよび正規ＰＣＲ値が存在するため、更新プログラムおよび正規ＰＣＲ値を端末Ａ０１０２に出力する。再生制御プログラム０２１１は、受け取った更新プログラムおよび正規ＰＣＲ値をそれぞれプログラム格納部０２０８に格納し、端末Ａ０１０２を再起動する（ステップＳ１１０４）。その後、端末Ａ０１０２は、ステップＳ１１０１と同様に起動する。【００９３】
次に端末Ａ０１０２は、再生制御プログラム０２１１を動作させ、再度、カード０１０７の権利確認・鍵生成プログラム０８１１に鍵出力処理を依頼する。権利確認・鍵生成プログラム０８１１のステップＳ１００３で端末の正当性の確認が行われる（ステップＳ１１０５）。もし、正しくプログラムが更新されているならば（ステップＳ１１０５のＯＫ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値が一致することから、端末Ａ０１０２が正当であることが確認され、鍵が出力される。【００９４】
一方、プログラムの更新処理を行う端末Ａ０１０２の再生制御プログラム０２１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１１０５のＮＧ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ａ０１０２は正当でないと判断され、端末Ａ０１０２の処理は終了する。【００９５】
プログラムの更新が正しく行われた場合（ステップＳ１１０５でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１１０６）。
鍵が出力されると、再生制御プログラム０２１１は、コンテンツ格納部０２０６から暗号化されたコンテンツを取り出し、鍵を用いて復号化した後に再生する（ステップＳ１１０７）。【００９６】
このように、ＰＣＲ値を用いてプログラムが正しく更新されたことを確認しないとコンテンツ暗号鍵を出力しない構成とすることで、もし、正しくアップデートされていないならば、端末の正当性チェックがＮＧとなり、コンテンツを暗号化した鍵は端末に出力されないので、コンテンツを正しく再生するためには、プログラムをアップデートすることが必要となる。また、アップデートしたプログラムが改竄された場合であっても端末の正当性チェックがＮＧとなり、コンテンツが再生できなくなるため、コンテンツの著作権を適切に保護することができる。【００９７】
さらに、本発明では、従来技術のようにプログラムアップデート手段全体を耐タンパ実装することなく、プログラムのアップデートを強制することができる。つまり、上述の処理を実現するためには、カード０１０７とセキュアモジュール０２０７のみを耐タンパ実装していればよくなるため、耐タンパ実装すべき箇所を大きく削減することができる。
また、コンテンツを再生する権利を要求する際に、必ずカード０１０７が端末の正当性を確認し、ＮＧの場合に端末のプログラムをアップデートするので、コンテンツを再生しようとする限り、必ずアップデートが行われることとなる。これにより、リボークされた端末のソフトウェアのアップデートを確実に行うことができる。なお、本実施の形態では、コンテンツの再生時に上記の処理を行ったが、これを記録時等に変更することで、他のタイミングでもソフトウェアのアップデートを強制することができることは言うまでもない。【００９８】
続いて、インターネット０１０８と接続できない端末（端末Ｎ０１０５〜Ｚ０１０６）についての動作の説明を行う。以下では端末Ｎ０１０５を例として説明するが、端末Ｚ０１０６も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１５は、インターネット０１０８を介してサーバ０１０１に接続することができない端末Ｎ０１０５のプログラムを更新する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ｎ０１０５はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。ここで、端末Ｎ０１０５は、インターネット０１０８を介してサーバ０１０１に接続することができないため、権利の購入は端末Ａ０１０２を用いて行い、コンテンツとその権利はカード０１０７を用いることで端末Ｎ０１０５で利用可能となる。以下、図１５に示すフローチャートに従ってコンテンツ配布システム０１００の動作について説明する。【００９９】
端末Ａ０１０２は、端末起動処理、および権利購入処理をそれぞれ図１１のステップＳ１１０１、およびステップＳ１１０２で説明したように行う。ここで、端末Ｎ０１０５でもダウンロードしたコンテンツを再生できるようにするため、端末Ａ０１０２はカード０１０７のコンテンツ格納部０８０７にダウンロードしたコンテンツを格納する。
端末Ｎ０１０５は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１５０３）。その結果、端末０１０５のセキュアモジュール０７０７内のＰＣＲが端末Ｎ０１０５で動作しているプログラムに依存する値となる。【０１００】
次に、端末Ａ０１０２で購入したコンテンツを端末Ｎ０１０５で再生するためにカード０１０７を端末Ａ０１０２から端末Ｎ０１０５に移動させる。端末Ｎ０１０５は、再生制御プログラム０７１１を動作させ、カード０１０７に対し、コンテンツ鍵出力依頼を行う。カード０１０７は、図１０に示すような動作を行う権利確認・鍵生成プログラム０８１１を動作させる。ここで、権利確認・鍵生成プログラムは、ステップＳ１００１で端末Ｎ０１０５の端末ＩＤをＣＲＬデータベースに追加し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを作成する（ステップＳ１５０４）。【０１０１】
権利確認・鍵生成プログラム０８１１はその後、ステップＳ１００３で端末Ｎ０１０５の正当性確認を行う（ステップＳ１５０５）。ここで、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを発見するが、正規ＰＣＲ値が存在しないため、端末Ｎ０１０５のプログラム証明書０７１２に格納されているＰＣＲ値を用いて端末の正当性を確認する。端末Ｎ０１０５のセキュアモジュール０７０７のＰＣＲ値とプログラム証明書０７１２のＰＣＲ値が一致しなければ（ステップＳ１５０５でＮＧ）、端末は正当で無いと判断し、権利確認・鍵生成プログラムは処理を終了する。【０１０２】
端末の正当性が確認された場合（ステップＳ１５０５でＯＫ）、権利確認・鍵生成プログラム０８１１は、権利確認処理Ｓ１００４を行った後、コンテンツ格納部０８０７に格納されているコンテンツの権利内のコンテンツ暗号化鍵を復号化し、端末Ｎ０１０５に出力する（ステップＳ１５０６）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５０７）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。【０１０３】
次に、カード０１０７を用いて新たにコンテンツの権利を購入するために、カード０１０７は端末Ａ０１０２に挿入される。以下、端末Ａ０１０２においてコンテンツの権利を購入するフローについて説明する。
端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１５０８）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。権利購入の際にダウンロードされたコンテンツは、カード０１０７のコンテンツ格納部０８０７に格納される。【０１０４】
ここで、端末Ｎ０１０５はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１５０９）。カード０１０７のＣＲＬデータベース０８０５には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在しているので、権利購入プログラム０８１０のＣＲＬ更新処理（ステップＳ０９０３）において、端末Ｎ１００５の端末ＩＤでサーバ０１０１のＣＲＬデータベース１２０２が検索される。検索の結果、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリがＣＲＬデータベース１２０２に存在するので、権利購入プログラム０８１０は、そのＣＲＬエントリから端末Ｎ０１０５の更新プログラムと正規ＰＣＲ値をカード０１０７のＣＲＬデータベース０８０５に存在する端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリに格納する。【０１０５】
次に、カード０１０７は、端末Ｎ０１０５でコンテンツを再生するために端末Ｎ０１０５に挿入される。以下、端末Ｎ０１０５におけるコンテンツ再生動作について説明する。
端末Ｎ０１０５は、図１１のステップＳ１１０４において端末Ａ０１０２が行ったように端末Ｎ０１０５のプログラムを更新する（ステップＳ１５１０）。
端末Ｎ０１０５は、図１１のステップＳ１１０５において端末Ａ０１０２が行ったようにカード０１０７に対し鍵出力依頼を行うことで、カード０１０７によって正当性の確認を行われる（ステップＳ１５１１）。正当性が確認された場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号化鍵がカード０１０７から端末Ｎ０１０５に出力される。【０１０６】
一方、プログラムの更新処理を行う端末Ｎ０１０５の再生制御プログラム０７１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１５１１のＮＧ）、端末Ｎ０１０５のセキュアモジュール０７０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ｎ０１０５は正当でないと判断され、端末Ｎ０１０５の処理は終了する。【０１０７】
プログラムの更新が正しく行われた場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１５１２）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５１３）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。【０１０８】
これにより、インターネット０１０８経由でサーバ０１０１に接続できない端末Ｎ０１０５のような端末であっても、端末のリボークおよびプログラムの更新が可能となる。
また、一度カード０１０７が使用された端末に対応するリボケーションリストのみカード０１０７に取得するため、カード０１０７の少ないリソースでもリボケーションリストが取り扱える。【０１０９】
また、端末がネットワーク接続されている場合の動作説明で述べたものと同様の効果が得られることは言うまでもない。
（変形例）
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。【０１１０】
（１）  上述した実施の形態では、更新対象はソフトウェアであったが、ハードウェアの構成情報を更新するシステムに適用してもよい。このようなハードウェアの具体的な例としてはリコンフィギュアラブルプロセッサなどが考えられる。
（２）  上述した実施の形態では、カード、端末、サーバのいずれを制御するプログラムもオペレーティングシステムの上で動作していたが、これに限られるものではない。アプリケーションプログラム等が直接プロセッサで処理できる言語で書かれている場合には、必ずしもオペレーティングシステムはなくてもよい。【０１１１】
（３）  ＰＣＲはハッシュ値であるとしたが、これに限られるものではない。改竄検出に用いることのできる値であれば、どのようなものであってもよい。例えば、プログラムの一部を暗号化した値であったり、プログラムのチェックサム等であってもよい。
（４）  上述した実施の形態では、カード０１０７は、鍵の要求があった場合に端末がリボークされているか否かを確認するとしたが、これに限られるものではない。鍵情報以外にも、不正な端末に渡すと不利益のある情報であれば、他の情報であってもよい。さらに、端末が行う処理もコンテンツの再生に限るものではない。例えば、端末は、個人情報を取り扱うデータベースの処理を行うとしてもよい。この場合、端末がリボークされているか否かを確認するタイミングは、個人情報の要求が端末からあった場合などになる。【０１１２】
（５）  上述した実施の形態では、カード０１０７が端末がリボークされているか否かを確認するとしたが、これに限られるものではない。例えば、サーバが、権利情報を提供する際に、端末がリボークされているか否かを確認しても良い。この場合、端末は、権利情報の要求と共にＰＣＲを送信する。また、サーバは、正規ＰＣＲを記憶しており、端末から送られてきたＰＣＲと正規ＰＣＲとが不一致の場合（すなわち、ＮＧの場合）に端末のプログラムをアップデートさせる。なお、詳細な処理については、端末とカードとの間でのアップデートの処理と同様であるので省略する。【０１１３】
（６）  上述した実施の形態では、プログラムがアップデートされた後、端末は再起動されるとしたが、これに限られるものではない。再起動を必要としない小さなアップデートであれば、そのまま処理を続行してもよい。すなわち、アップデートが完了した後、再起動を行わずに、鍵情報が端末に出力され、コンテンツの復号及び再生処理が行われるとしてもよい。【０１１４】
（７）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。【０１１５】
（８）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。【０１１６】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。【０１１７】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
（９）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。【０１１８】
（１０）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。【０１１９】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。【０１２０】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１１）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（まとめ）
（１）本発明は、端末と端末から分離可能なカードによって構成される情報処理装置であって、端末は、端末で動作しているプログラムの特徴を測定し、保存する端末測定手段と、端末で動作するプログラムを格納するプログラム格納手段と、プログラム格納手段に格納されているプログラムを更新するプログラム更新手段から構成され、カードは、端末の更新プログラムを格納する更新プログラム格納手段と、端末測定手段から得た情報を用い端末の正当性を確認する正当性確認手段と、正当性確認手段により端末が正当であると判断された場合のみ、カード内に保持されている秘密情報を端末に提供する秘密情報提供手段と、正当性確認手段により端末が正当でないと判断された場合のみ、更新プログラム格納手段に格納された更新プログラムをプログラム更新手段に出力するプログラム出力手段から構成されることを特徴とする。【０１２１】
また、本発明のデータ処理装置において、カードはさらに、一度接続された端末の端末ＩＤを格納する端末ＩＤ格納手段と、接続されている端末がネットワークに接続できる場合、端末ＩＤ格納手段に格納されている端末ＩＤに関連付けられている更新プログラムをサーバから取得し、更新プログラム格納手段に格納する更新プログラム取得手段と、更新プログラム取得手段で取得した更新プログラムに関連付けられている端末の正当性確認情報を格納する正当性確認情報格納手段と、接続されている端末がネットワークに接続できる場合、更新プログラム取得手段で取得した更新プログラムに関連付けられている正当性確認情報をサーバから取得し、正当性確認情報格納手段に格納する正当性確認情報取得手段を具備し、正当性確認手段が正当性確認情報格納手段より取得した正当性確認情報を用いて、端末の正当性を確認することを特徴とする。【０１２２】
アップデートモジュール自体の信頼性に依存しない、プログラムのアップデート方法を提供することが可能となる。
さらに、リボークされた端末を動作不能にすることなく、不正な端末をプログラムのアップデートにより正当な端末にすることができるので、コンテンツの再生を継続できる。リボークして動作不能にすることによるユーザへの被害を防止しつつ、コンテンツ配布システムの健全性を保つことが可能となる。【０１２３】
また、カード内部の機構によってプログラムをアップデートしているので、インターネットに接続できない端末でもプログラムのアップデートが可能となる。
（２）また、本発明に係る情報記録装置は、プログラムによって動作する情報処理装置とともに用いられ、情報処理装置により利用される情報を記録している情報記録装置であって、情報処理装置から情報へのアクセス要求を受け付ける受付手段と、情報処理装置を動作させる更新プログラムを格納する更新プログラム格納手段と、アクセス要求が受け付けられた場合に、アクセス要求を行った情報処理装置を動作させているプログラムの特徴情報を取得する取得手段と、特徴情報に基づいて、情報処理装置を動作させているプログラムの正当性を確認する正当性確認手段と、プログラムが正当でないと確認された場合に、情報処理装置に対して更新プログラムを出力する出力手段とを備えることを特徴とする。【０１２４】
この構成によれば、情報記録装置に対して情報を要求している情報処理装置を動作させているプログラムが正当なものでないと確認された場合、そのプログラムが更新プログラムにアップデートされる。したがって、情報を利用しようとする装置に対して、プログラムのアップデートを強制することができる。
（３）本発明に係る情報記録装置は、出力手段は、さらに、プログラムが正当であると確認された場合にのみ、情報を情報処理装置に出力することを特徴とする。【０１２５】
この構成によれば、情報処理装置は、プログラムが正当であると判定されない限り、要求している情報を得ることができない。このことから、アクセス要求を出している情報を得るためには、情報処理装置はプログラムのアップデートを行わざるを得なくなるので、プログラムのアップデートを強制することができる。
（４）本発明に係る情報記録装置は、さらに、情報処理装置を動作させる正当なプログラムの特徴情報である正規特徴情報を格納する正規特徴情報格納手段を備え、正当性確認手段は、情報処理装置から受信した特徴情報と正規特徴情報とを比較することにより、プログラムが正当であるか否かを確認することを特徴とする。【０１２６】
この構成によれば、情報記録装置は、情報処理装置のプログラムが正当であるか否かを特徴情報に基づいて確認することができる。
（５）本発明に係る情報記録装置は、受信手段は、さらに、アクセス要求と共に情報処理装置の識別情報を取得し、更新プログラム格納手段は、過去にアクセス要求を行った１以上の情報処理装置の識別情報と、情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、出力手段は、アクセス要求とともに受信した識別情報に対応する情報処理装置向けの更新プログラムを出力することを特徴とする。【０１２７】
この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、各情報処理装置に対して適切な更新プログラムを出力することができる。
（６）本発明に係る情報記録装置は、更新プログラム格納手段は、さらに、新たな情報処理装置からのアクセス要求が受け付けられると、新たな情報処理装置の識別情報を格納内容に追加することを特徴とする。【０１２８】
この構成によれば、情報記録装置は、過去にアクセス要求を受け付けた情報処理装置の全てについて、更新プログラムの管理を行うことができる。
（７）本発明に係る情報記録装置は、さらに、更新プログラムを提供するサーバに対して、更新プログラム格納手段が格納している情報処理装置の識別情報を送信する送信手段と、サーバから送信した識別情報に対応する情報処理装置用の更新プログラムを取得する取得手段とを備え、更新プログラム格納手段は、取得した更新プログラムを識別情報と対応付けて記録することを特徴とする。【０１２９】
この構成によれば、情報記録装置は、自身が管理している情報処理装置について、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログラムを取得して記録することができる。
（８）本発明に係る情報記録装置は、可搬型の記録媒体であることを特徴とする。
この構成によれば、可搬型の記録媒体内部の機構によって、情報処理装置内のプログラムをアップデートしているので、インターネットに接続できない情報処理装置に対してもプログラムのアップデートを強制することができる。【０１３０】
（９）また、本発明に係る情報処理装置は、プログラムによって動作し、プログラムの特徴情報によりプログラムの正当性を確認する情報記録装置と共に用いられる情報処理装置であって、プログラムの特徴情報を算出する特徴情報算出手段と、情報記録装置が記録する情報へのアクセス要求を行う際に、算出した特徴情報を情報記録装置へ送信する送信手段と、情報記録装置による確認に応じて、情報もしくは情報処理装置用の更新プログラムを受信する受信手段と更新プログラムを受信した場合、受信した更新プログラムによりプログラムを更新する更新手段とを備えることを特徴とする。【０１３１】
この構成によれば、情報処理装置は、情報記録媒体に情報の要求を行う際に、自身を動作させているプログラムが不正なものであれば、アップデートすることができる。
（１０）本発明に係る情報記録装置は、特徴情報算出手段は、耐タンパ化により保護されていることを特徴とする。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報処理装置を動作させているプログラムが不正なものである場合に、より確実に更新プログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比べて、低コストでプログラムのアップデートを強制することができる。【０１３２】
（１１）また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から構成されるシステム、プログラムアップデート方法、プログラム、および集積回路として実現した場合もそれぞれ同様の効果を発揮することができる。
（その他の変形例）
（Ａ−１）第１の変形例
上記実施の形態では、カードによる正当性の確認（図１０のステップＳ１００３）がＯＫである場合に、カードは、コンテンツを復号する鍵を出力したが、これに限定されない。【０１３３】
正当性の確認がＯＫである場合に、カードは、端末固有のデバイス鍵を更新するために新しいデバイス鍵を出力してもよい。
ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、デバイス鍵とは各端末に固有の鍵であり、ここではコンテンツを暗号化及び復号するための鍵（以下、コンテンツ鍵という。）を暗号化及び復号するために用いる。【０１３４】
以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム２０００は、図１６にて示すように、端末（証明装置）２００１、カード（検証装置）２００２、ネットワーク接続端末２００３及びサーバ２００４から構成されている。
端末２００１は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末Ｎ０１０５、・・・、端末Ｚ０１０６に相当する。端末２００１は、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。【０１３５】
カード２００２は、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。ここでは、カード２００２は、端末２００１を識別するための端末ＩＤを予め記憶している。つまり、カード２００２は、過去に一度、端末２００１に装着されたものとする。カード２００２は、上記実施の形態にて示すＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２００３へ出力する。【０１３６】
ネットワーク接続端末２００３は、端末ＩＤをサーバ２００４へネットワークを介して送信する。ネットワーク接続端末２００３は、サーバ２００４から、コンテンツ鍵復号プログラムに対する更新プログラム、正当性確認情報（上記実施の形態における正規のＰＣＲ値）、及び送信した端末ＩＤにより個別暗号化された正規のデバイス鍵（以下、秘密情報若しくは個別暗号化秘密情報という。）を受け取り、受け取った各情報をカード２００２へ出力する。【０１３７】
サーバ２００４は、端末ＩＤをネットワーク接続端末２００３から受け取ると、更新プログラム、正当性確認情報、及び受信した端末ＩＤに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号化について説明する。
サーバ２００４は、図１７にて示すように、端末ＩＤと端末共通鍵とから変換された値（以下、暗号用変換値）を算出する（ステップＳ２０００）。端末ＩＤは各端末に固有の識別情報であり、端末共通鍵は端末に共通の鍵である。ここで、暗号用変換値の算出方法は、例えば、端末ＩＤに端末共通鍵を連結させて、その結果に一方向性関数を施すことで得られる。また、別の算出方法として、端末共通鍵を暗号化鍵として端末ＩＤを秘密鍵暗号化方式にて暗号化してもよい。いずれの場合でも、暗号用変換値は、端末ＩＤに依存する値となる。【０１３８】
サーバ２００４は、算出した暗号用変換値を暗号化鍵として、秘密情報（デバイス鍵）を秘密鍵暗号化方式にて暗号化して個別暗号化秘密情報を生成する（ステップＳ２００５）。
（Ａ−１−１）端末２００１
端末２００１は、図１６にて示すように、ＩＤ格納部２０１０、プログラム格納部２０１１、端末測定部２０１２、プログラム更新部２０１３、及び秘密情報復号部２０１４から構成されている。【０１３９】
なお、端末２００１の構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているものとし、システムＬＳＩには端末２００１と同種の端末と共通の鍵（上記の端末共通鍵）が記憶されている。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
（Ａ−１−１−１）ＩＤ格納部２０１０、プログラム格納部２０１１
ＩＤ格納部２０１０は、当該端末の端末ＩＤ２０１５を予め記憶している。【０１４０】
ここで、ＩＤ格納部２０１０は、耐タンパ性を有しており、端末ＩＤ２０１５の改竄はできない。
プログラム格納部２０１１は、上記実施の形態におけるプログラム格納部０７０８に相当する。プログラム格納部２０１１は、上記実施の形態におけるプログラム格納部０７０８が記憶している各プログラムに加えて、個別暗号化された正規のデバイス鍵を復号するためのプログラム（以下、秘密情報復号プログラム）、及びコンテンツ鍵復号プログラムを予め記憶している。【０１４１】
（Ａ−１−１−２）端末測定部２０１２
端末測定部２０１２は、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
端末測定部２０１２は、コンテンツ鍵復号プログラムのＰＣＲ値を測定（算出）し、測定したＰＣＲ値をカード２００２へ出力する。【０１４２】
なお、測定のタイミングは、上記実施の形態と同様に、コンテンツ鍵復号プログラムのロード時であり、出力のタイミングは、コンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略する。
（Ａ−１−１−３）プログラム更新部２０１３
プログラム更新部２０１３は、上記実施の形態における図４にて示すステップＳ０４０７及びＳ０４０８に相当する処理を行う。【０１４３】
プログラム更新部２０１３は、カード２００２からコンテンツ鍵復号プログラムに対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号プログラムを更新する。
プログラム更新部２０１３は、コンテンツ鍵復号プログラムの更新後、ステップＳ０４０８と同様に、システムのリセットを端末２００１のオペレーティングシステムに依頼する。【０１４４】
（Ａ−１−１−４）秘密情報復号部２０１４
秘密情報復号部２０１４は、プログラム格納部２０１１にて格納されている秘密情報復号プログラムが起動され、実行されることで実現される。
秘密情報復号部２０１４は、カード２００２から当該端末に対応する個別暗号化秘密情報を取得する。【０１４５】
秘密情報復号部２０１４は、ＩＤ格納部２０１０から端末ＩＤを、システムＬＳＩから端末共通鍵を、それぞれ取得する。
秘密情報復号部２０１４は、取得した端末ＩＤと端末共通鍵とを用いて、サーバ２００４による暗号用変換値の算出方法と同様の方法にて、復号用変換値を算出する。
秘密情報復号部２０１４は、算出した復号用変換値を用いて、個別暗号化秘密情報を復号し、デバイス鍵を生成する。秘密情報復号部２０１４は、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。【０１４６】
なお、端末２００１は、更新対象のデバイス鍵が含まれる個別暗号化秘密情報をカードから受け取った後に格納しておき、新しいデバイス鍵が必要となった時点で前述した方法を用いて復号化してもよい。
（Ａ−１−２）カード２００２
カード２００２は、図１６にて示すように、秘密情報提供部２０２０、端末ＩＤ格納部２０２１、正当性確認情報格納部２０２２、更新プログラム格納部２０２３、秘密情報取得部２０２４、正当性確認情報取得部２０２５、更新プログラム取得部２０２６、正当性確認部２０２７、及びプログラム出力部２０２８から構成されている。【０１４７】
（Ａ−１−２−１）秘密情報提供部２０２０
秘密情報提供部２０２０は、図１６にて示すように、秘密情報蓄積部２０２９及びスイッチ２０３０を有している。
秘密情報蓄積部２０２９は、上記実施の形態にて示すコンテンツ格納部０８０７に相当している。秘密情報蓄積部２０２９は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った個別暗号化秘密情報を蓄積している。ここでは、秘密情報蓄積部２０２９は、端末２００１の端末ＩＤを用いて暗号化された秘密情報を蓄積しているものとする。【０１４８】
スイッチ２０３０は、上記実施の形態にて示す図１０のステップＳ１００５におけるコンテンツの鍵を出力する動作に相当し、正当性確認部２０２７の制御により動作する。端末が正当であると判断される場合には、スイッチ２０３０は、端末が個別暗号化秘密情報を取得できるように、端末と秘密情報蓄積部２０２９とを接続する。端末が正当でないと判断される場合には、スイッチ２０３０は、端末と秘密情報蓄積部２０２９とを接続しない。【０１４９】
秘密情報提供部２０２０は、端末２００１と秘密情報蓄積部２０２９とが接続されると、端末２００１に対応する個別暗号化秘密情報を出力するとともに、端末２００１のオペレーティングシステムに対して秘密情報復号プログラムの起動を要求する。
ここで、スイッチ２０３０による接続・非接続の動作は、正当性確認部２０２７にて制御される。なお、スイッチ２０３０は、正当性確認部２０２７の確認結果に基づいて、秘密情報提供部２０２０にて制御してもよい。【０１５０】
（Ａ−１−２−２）端末ＩＤ格納部２０２１
端末ＩＤ格納部２０２１は、上記実施の形態にて示すＣＲＬデータベース０８０５の端末ＩＤの格納部位に相当する。
端末ＩＤ格納部２０２１は、過去に装着された端末が有する端末ＩＤを記憶している。ここでは、端末２００１の端末ＩＤを記憶している。【０１５１】
また、カード２００２がネットワーク接続端末２００３に装着されている場合には、ネットワーク接続端末２００３は、端末ＩＤ格納部２０２１にて格納されている端末ＩＤを取得する。
（Ａ−１−２−３）正当性確認情報格納部２０２２
正当性確認情報格納部２０２２は、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。【０１５２】
正当性確認情報格納部２０２２は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った正当性確認情報を、端末ＩＤ格納部２０２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、正当性確認情報格納部２０２２は、コンテンツ鍵復号プログラムに対する正当性確認情報（ＰＣＲ値）を、端末２００１の端末ＩＤ２０１５と対応付けて記憶しているものとする。【０１５３】
（Ａ−１−２−４）更新プログラム格納部２０２３
更新プログラム格納部２０２３は、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
更新プログラム格納部２０２３は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った更新プログラムを、端末ＩＤ格納部２０２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、更新プログラム格納部２０２３は、コンテンツ鍵復号プログラムに対する更新プログラムを、端末２００１の端末ＩＤ２０１５と対応付けて記憶しているものとする。【０１５４】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２０２１、正当性確認情報格納部２０２２及び更新プログラム格納部２０２３から構成されていることが分かる。
（Ａ−１−２−５）秘密情報取得部２０２４
秘密情報取得部２０２４は、上記実施の形態にて示す図９における権利購入処理に相当する処理を行う。【０１５５】
秘密情報取得部２０２４は、ネットワーク接続端末２００３を介してサーバ２００４から個別暗号化秘密情報を受け取ると、受け取った個別暗号化秘密情報を秘密情報蓄積部２０２９へ格納する。
ここで、秘密情報取得部２０２４による個別暗号化秘密情報の受け取り、及び格納のタイミングは、例えば、コンテンツの購入時である。【０１５６】
（Ａ−１−２−６）正当性確認情報取得部２０２５
正当性確認情報取得部２０２５は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する処理を行う。
正当性確認情報取得部２０２５は、ネットワーク接続端末２００３を介してサーバ２００４から正当性確認情報を受け取ると、受け取った正当性確認情報を正当性確認情報格納部２０２２へ格納する。【０１５７】
（Ａ−１−２−７）更新プログラム取得部２０２６
更新プログラム取得部２０２６は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの更新プログラムの更新に相当する処理を行う。
更新プログラム取得部２０２６は、ネットワーク接続端末２００３を介してサーバ２００４から更新プログラムを受け取ると、受け取った更新プログラムを更新プログラム格納部２０２３へ格納する。【０１５８】
（Ａ−１−２−８）正当性確認部２０２７
正当性確認部２０２７は、上記実施の形態にて示す図１０におけるＳ１００３の処理に相当する処理を行う。
正当性確認部２０２７は、端末２００１からコンテンツ鍵復号プログラムのＰＣＲ値を受け取ると、端末２００１と対応付けられたコンテンツ鍵復号プログラムの正当性確認情報を、正当性確認情報格納部２０２２から取得する。【０１５９】
正当性確認部２０２７は、受け取ったＰＣＲ値と正当性確認情報とが一致するか否かを判断する。
一致すると判断する場合には、正当性確認部２０２７は、上述したように、端末と秘密情報蓄積部２０２９とを接続するようにスイッチ２０３０を閉じる。
一致しないと判断する場合には、正当性確認部２０２７は、一致しない旨を示すＮＧ情報をプログラム出力部２０２８へ出力する。【０１６０】
なお、本変形例では、正当性確認部２０２７はステップＳ１００３のみに相当するとしたが、これに限定されない。
正当性確認部２０２７はステップＳ１００２及びＳ１００３に相当するとしてもよい。この場合、正当性確認部２０２７は、上記実施の形態と同様に、ＰＣＲ値の署名検証を行い、署名検証がＯＫである場合に、端末２００１から受け取ったＰＣＲ値と、正当性確認情報とを比較する。【０１６１】
（Ａ−１−２−９）プログラム出力部２０２８
プログラム出力部２０２８は、正当性確認部２０２７からＮＧ情報を受け取ると、端末２００１に対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部２０２３から取得する。
プログラム出力部２０２８は、取得した更新プログラムを端末２００１のプログラム更新部２０１３へ出力する。【０１６２】
（Ａ−１−３）ネットワーク接続端末２００３
ネットワーク接続端末２００３は、自身に装着されたカード２００２の端末ＩＤ格納部２０２１から端末２００１の端末ＩＤを取得すると、取得した端末ＩＤを、ネットワークを介してサーバ２００４へ出力する。
その後、ネットワーク接続端末２００３は、サーバ２００４からネットワークを介して、出力した端末ＩＤと対応付けられた更新プログラム、正当性確認情報、及び個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２へ格納する。【０１６３】
（Ａ−１−４）サーバ２００４
サーバ２００４は、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき更新プログラム及び正規のＰＣＲ値（正当性確認情報）を管理している。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。すなわち、更新プログラム及び正当性確認情報は、同一の端末機種同士であれば共通であり、異なる端末の機種同士では異なるものとする。【０１６４】
また、サーバ２００４は、端末共通鍵を予め記憶し、管理している。
サーバ２００４は、複数の秘密情報（デバイス鍵）を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２００４は、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２００４が管理している複数の秘密情報それぞれは、互いに異なる。さらに、サーバ２００４は、管理している全ての秘密情報を配布した場合、これまでに管理していた複数の秘密情報それぞれとは異なる複数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互いに異なる。【０１６５】
サーバ２００４は、ネットワーク接続端末２００３からネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（更新プログラム、正当性確認情報、及び端末共通鍵）を取得する。
サーバ２００４は、取得した端末共通鍵と、受け取った端末ＩＤとを用いて、暗号用変換値を生成する。【０１６６】
サーバ２００４は、予め記憶している複数の秘密情報（デバイス鍵）のうち１つの秘密情報（デバイス鍵）を取得し、暗号用変換値を暗号鍵として、取得した秘密情報を暗号化して個別暗号化秘密情報を生成する。
サーバ２００４は、端末個別データ一式（生成した個別暗号化秘密情報と、取得した更新プログラム及び正当性確認情報）を、ネットワークを介してネットワーク接続端末２００３へ出力する。【０１６７】
（Ａ−１−５）デバイス鍵配布システム２０００の動作
デバイス鍵配布システム２０００の動作について、図１８にて示す流れ図を用いて説明する。
カード２００２は、端末２００１に装着されると、端末２００１の端末ＩＤを取得し、取得した端末ＩＤを端末ＩＤ格納部２０２１に格納する（ステップＳ２０１０）。【０１６８】
カード２００２は、ネットワーク接続端末２００３に装着され、且つデバイス鍵をサーバ２００４から取得する時において、端末ＩＤ格納部２０２１に格納された端末２００１の端末ＩＤを、ネットワーク接続端末２００３を介してサーバ２００４へ送信する（ステップＳ２０１５）。
サーバ２００４は、カード２００２からネットワーク接続端末２００３を介して端末２００１の端末ＩＤを受信すると、受信した端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（更新プログラム、正当性確認情報、及び端末共通鍵）を取得する（ステップＳ２０２０）。【０１６９】
サーバ２００４は、秘密情報（デバイス鍵）に個別暗号化処理を施して個別暗号化秘密情報を生成する（ステップＳ２０２５）。具体的には、サーバ２００４は、取得した端末共通鍵と、受け取った端末ＩＤとを用いて、暗号用変換値を生成する。サーバ２００４は、秘密情報（デバイス鍵）を生成し、暗号用変換値を暗号鍵として、秘密情報を暗号化して個別暗号化秘密情報を生成する。【０１７０】
サーバ２００４は、端末個別データ一式（生成した個別暗号化秘密情報と、取得した更新プログラム及び正当性確認情報）を、ネットワークを介してネットワーク接続端末２００３へ出力する（ステップＳ２０３０）。
カード２００２は、サーバ２００４からネットワーク接続端末２００３を介して、端末個別データ一式を受信すると、各情報（データ）を格納する（ステップＳ２０３５）、具体的には、カード２００２の秘密情報取得部２０２４は、個別暗号化秘密情報を受信し、受信した個別暗号化秘密情報を秘密情報蓄積部２０２９へ格納する。正当性確認情報取得部２０２５は、正当性確認情報を受信すると、受信した正当性確認情報を正当性確認情報格納部２０２２へ格納する。更新プログラム取得部２０２６は、更新プログラムを受信すると、受信した更新プログラムを更新プログラム格納部２０２３へ格納する。【０１７１】
カード２００２は、更新プログラムを端末２００１へ出力する（ステップＳ２０４０）。
端末２００１は、更新プログラムをインストールする（ステップＳ２０４５）。
カード２００２の正当性確認部２０２７は、端末２００１から秘密情報（デバイス鍵）出力要求を受け取ると、端末２００１の正当性を判断する（ステップＳ２０５０）。秘密情報出力要求は、上記実施の形態における図４にて示すステップＳ０４０２に相当し、コンテンツ鍵復号プログラムのＰＣＲ値を含む。ここでは、カード２００２の正当性確認部２０２７は、サーバ２００４から受け取った最新の更新プログラムに対する正当性確認情報と、端末２００１から受け取った秘密情報出力要求に含まれるＰＣＲ値との比較を行う。【０１７２】
正当でないと判断する場合（ステップＳ２０５０における「ＮＧ」）、カード２００２は、更新プログラムを端末２００１へ出力する（ステップＳ２０５５）。具体的には、正当性確認部２０２７は、ＮＧ情報をプログラム出力部２０２８へ出力する。プログラム出力部２０２８は、正当性確認部２０２７からＮＧ情報を受け取ると、端末２００１に対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部２０２３から取得し、取得した更新プログラムを端末２００１のプログラム更新部２０１３へ出力する。なお、ここではコンテンツ鍵復号プログラムのみを更新対象としているが、端末２００１に搭載されるプログラム全体を更新対象としてもよい。以下でも、コンテンツ復号プログラムを更新対象として説明をするが、プログラム全体を更新対象としてもよい。【０１７３】
正当であると判断する場合（ステップＳ２０５０における「ＯＫ」）、カード２００２は個別暗号化秘密情報を端末２００１へ出力する（ステップＳ２０６０）。具体的には、正当性確認部２０２７の制御により秘密情報蓄積部２０２９によって更新プログラムが正しくインストールされたと確認され、秘密情報を出力可能である旨が通知されると、秘密情報提供部２０２０は端末２００１に対応する個別暗号化秘密情報を出力する。【０１７４】
端末２００１のプログラム更新部２０１３は、カード２００２から更新プログラムを受け取ると、受け取った更新プログラムのインストールを行う（ステップＳ２０６５）。具体的には、プログラム更新部２０１３は、カード２００２からコンテンツ鍵復号プログラムに対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号プログラムを更新する。プログラム更新部２０１３は、コンテンツ鍵復号プログラムの更新後、ステップＳ０４０８と同様に、システムのリセットを端末２００１のオペレーティングシステムに依頼する。【０１７５】
端末２００１の秘密情報復号部２０１４は、個別暗号化秘密情報を、カード２００２から受け取ると、個別暗号化秘密情報のインストールを行う（ステップＳ２０７０）。具体的には、秘密情報復号部２０１４は、カード２００２から当該端末に対応する個別暗号化秘密情報を取得する。秘密情報復号部２０１４は、ＩＤ格納部２０１０から端末ＩＤを、システムＬＳＩから端末共通鍵を、それぞれ取得する。秘密情報復号部２０１４は、取得した端末ＩＤと端末共通鍵とを用いて、サーバ２００４による暗号用変換値の算出方法と同様の方法にて、復号用変換値を算出する。秘密情報復号部２０１４は、算出した復号用変換値を用いて、個別暗号化秘密情報を復号してデバイス鍵を生成し、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。【０１７６】
以降、例えば、端末２００１が図４にて示すステップＳ０４０３以降の動作を行い、カード２００２が図１０にて示す権利確認・鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップＳ２０１０の動作は、カード２００２が端末２００１に装着された場合に実行される。【０１７７】
ステップＳ２０１５からステップＳ２０３５までの動作は、カード２００２がネットワーク接続端末２００３に装着された場合に実行される。
ステップＳ２０４０からＳ２０４５までの動作は、サービスマンにより端末２００１のプログラムのアップデートを行う場合に実行される。
ステップＳ２０５０以降の動作は、端末２００１の利用者によりコンテンツの再生の要求があった場合に実行される。【０１７８】
（Ａ−１−６）その他の変形例
なお、本発明を上記第１の変形例に基づいて説明してきたが、本発明は、上記第１の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
（１）上記第１の変形例において、サーバ２００４が管理している複数の秘密情報は、平文（暗号化前の状態）で管理するとしたが、これに限定されない。【０１７９】
サーバ２００４は、管理する複数の秘密情報それぞれを、予め個別暗号化された状態で管理してもよい。
この場合、サーバ２００４は、複数の秘密情報それぞれを、異なる端末ＩＤを用いて、上記第１の変形例と同様の暗号化方法によって暗号化する。サーバ２００４は、生成した複数の個別暗号化秘密情報を管理する場合には、暗号化に用いた端末ＩＤと対応付けて管理する。サーバ２００４は、ネットワーク接続端末から端末ＩＤを受け取ると、受け取った端末ＩＤに対応する個別暗号化秘密情報を取得する。【０１８０】
（２）上記第１の変形例において、サーバ２００４は、複数の秘密情報を予め記憶・管理しているとしたが、これに限定されない。
サーバ２００４は、ネットワーク接続端末から端末ＩＤを受け取る度に、秘密情報を生成してもよい。
（３）上記第１の変形例において、デバイス鍵配布システム２０００は、図１８にて示すステップＳ２０４０からＳ２０４５により、サービスマンによる端末２００１のコンテンツ鍵復号プログラムのアップデートを行うとしたが、これに限定されない。【０１８１】
デバイス鍵配布システム２０００の動作において、ステップＳ２０４０からＳ２０４５を行わなくてもよい。
（４）上記第１の変形例において、秘密情報の暗号化及び復号時には、端末ＩＤと端末共通鍵とから生成された変換値（暗号用変換値、復号用変換値）を用いたが、これに限定されない。【０１８２】
秘密情報の暗号化及び復号時には、端末ＩＤのみを鍵として用いてもよい。
（５）上記第１の実施の形態において、変換値は、端末ＩＤと端末共通鍵とから生成されたが、これに限定されない。
変換値は、端末ＩＤに一意に紐づいている値であってもよい。
（６）上記実施の形態において、カード２００２は、端末２００１の端末ＩＤ２０１５そのものを格納するとしたが、これに限定されない。【０１８３】
（６−１）カード２００２は、端末ＩＤ（以下、第１の端末ＩＤ）に一方向性関数（例えば、ＳＨＡ−１）を施して得られる値（以下、第２の端末ＩＤという。）を格納してもよい。
この場合、第１の端末ＩＤ（端末ＩＤ２０１５）から第２の端末ＩＤへの変換は、カード２００２にて行ってもよいし、端末２００１にて行ってもよい。【０１８４】
また、この場合、サーバ２００４は、図１９にて示す管理テーブルＴ２０００を有している。
管理テーブルＴ２０００は、変換前端末ＩＤと変換後端末ＩＤとからなる組を１個以上記憶するための領域を有している。変換前端末ＩＤは、端末に対する端末ＩＤ、つまり第１の端末ＩＤを示し、変換後端末ＩＤは、端末ＩＤに一方向性関数（例えば、ＳＨＡ−１）を施して得られる第２の端末ＩＤを示す。【０１８５】
カード２００２は、ネットワーク接続端末２００３を介してサーバ２００４へ第２の端末ＩＤを送信する。
サーバ２００４は、カード２００２からネットワーク接続端末２００３を介して、第２の端末ＩＤを受信すると、受信した第２の端末ＩＤに対応する第１の端末ＩＤを管理テーブルＴ２０００から取得する。サーバ２００４は、取得した第１の端末ＩＤを用いて個別暗号化秘密情報を生成する。【０１８６】
例えば、サーバ２００４は、第２の端末ＩＤ「ＩＤＡ−１」をカード２００２から受信すると、第２の端末ＩＤ「ＩＤＡ−１」に対応する第１の端末ＩＤ「ＩＤＡ」（つまり、端末ＩＤ２０１５と同一のＩＤ）を取得し、取得した第１の端末ＩＤ「ＩＤＡ」（端末ＩＤ２０１５）を用いて個別暗号化秘密情報を生成する。
（６−２）第２の端末ＩＤを用いて個別暗号化秘密鍵を生成してもよい。【０１８７】
この場合、カード２００２は、上記と同様に、ネットワーク接続端末２００３を介してサーバ２００４へる第２の端末ＩＤを送信する。
サーバ２００４は、カード２００２からネットワーク接続端末２００３を介して、第２の端末ＩＤを受信すると、受信した第２の端末ＩＤを用いて個別暗号化秘密情報を生成する。【０１８８】
端末２００１では、第２の端末ＩＤを生成し、生成した第２の端末ＩＤを用いて、個別暗号化秘密鍵を復号する。
（７）上記第１の変形例において、端末２００１は、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２００１は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２００１は、上記第１の変形例にて示すネットワーク接続端末２００３が行う動作をも兼ね備えることで実現できる。【０１８９】
（８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（Ａ−１−７）まとめ
通常、更新対象のプログラムは、機種ごとに共通である。したがって、上記実施の形態の仕組みをデバイス鍵配布にそのまま適用すると、正当性確認手段による確認のみでは、クローン端末に対してもデバイス鍵を配布してしまい、クローン端末は配布されたデバイス鍵を使用することができる。ここで、クローン端末とは、正規の端末とは、端末ＩＤのみが異なり、他の構成要素等は同一である不正な端末である。【０１９０】
しかしながら、上記第１の変形例によると、送り込むデータ（ここでは、デバイス鍵）を、端末ＩＤを用いて個別暗号化するので、カードがクローン端末に対して正当であると判断し、デバイス鍵を配布しても、クローン端末では暗号化されたデバイス鍵を復号することはできない。
また、プログラムの更新が確認された後でのみデバイス鍵を送り込むので、送り込んだデバイス鍵が不正またはセキュリティホールのあるプログラムによって利用されることがなく、デバイス鍵を安全に更新することができる。【０１９１】
（Ｂ−１）第２の変形例
ここでは、正当性確認の変形例について、上記第１の変形例と異なる点を中心に説明する。
以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム２０００ａは、図２０にて示すように、端末（証明装置）２００１ａ、カード（検証装置）２００２ａ、ネットワーク接続端末２００３ａ及びサーバ２００４ａから構成されている。【０１９２】
端末２００１ａは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末２００１と同様に、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。
カード２００２ａは、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。カード２００２ａは、第１の変形例にて示すカード２００２と同様に、端末２００１ａの端末ＩＤを予め記憶している。カード２００２ａは、ＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２００３ａへ出力する。【０１９３】
ネットワーク接続端末２００３ａは、端末ＩＤをサーバ２００４ａへネットワークを介して送信する。ネットワーク接続端末２００３ａは、サーバ２００４ａから、復号プログラムに対する更新プログラム、正当性確認情報、及び送信した端末ＩＤにより個別暗号化された個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２ａへ出力する。【０１９４】
サーバ２００４ａは、端末ＩＤをネットワーク接続端末２００３ａから受け取ると、更新プログラム、正当性確認情報、及び受信した端末ＩＤに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号化は、上記第１の変形例と同様であるので、ここでの説明は省略する。
（Ｂ−１−１）端末２００１ａ
端末２００１ａは、図２０にて示すように、ＩＤ格納部２０１０ａ、プログラム格納部２０１１ａ、端末測定部２０１２ａ、プログラム更新部２０１３ａ、及び秘密情報復号部２０１４ａから構成されている。【０１９５】
なお、端末２００１ａは、第１の変形例にて示す端末２００１と同様に、端末共通鍵を記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
（Ｂ−１−１−１）ＩＤ格納部２０１０ａ、プログラム格納部２０１１ａ
ＩＤ格納部２０１０ａは、当該端末の端末ＩＤ２０１５ａを予め記憶している。
ここで、ＩＤ格納部２０１０ａは、耐タンパ性を有しており、端末ＩＤ２０１５ａの改竄はできない。【０１９６】
プログラム格納部２０１１ａは、上記第１の変形例と同様であるので、ここでの説明は省略する。
（Ｂ−１−１−２）端末測定部２０１２ａ
端末測定部２０１２ａは、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。【０１９７】
端末測定部２０１２ａは、先ず、上記実施の形態と同様に、コンテンツ鍵復号プログラムのＰＣＲ値を測定（算出）する。次に、端末測定部２０１２ａは、ＩＤ格納部２０１０ａに格納されている端末ＩＤ２０１５ａと、算出したＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤ２０１５ａを反映したＰＣＲ値（以下、ＩＤ付ＰＣＲ値という。）を生成する。なお、ここではコンテンツ鍵復号プログラムのＰＣＲ値を測定した後に端末ＩＤを反映しているが、端末ＩＤを反映した後にコンテンツ鍵復号プログラムを反映してもよい。【０１９８】
端末測定部２０１２ａは、生成したＩＤ付ＰＣＲ値をカード２００２ａへ出力する。
なお、ＰＣＲ値拡張コマンドについては、上記実施の形態にて説明しているので、ここでの説明は省略する。
また、測定のタイミング、及び出力のタイミングのそれぞれは、上記第１の変形例と同様である。【０１９９】
（Ｂ−１−１−３）プログラム更新部２０１３ａ
プログラム更新部２０１３ａは、上記第１の変形例にて示すプログラム更新部２０１３と同様であるので、ここでの説明は省略する。
（Ｂ−１−１−４）秘密情報復号部２０１４ａ
秘密情報復号部２０１４ａは、上記第１の変形例にて示す秘密情報復号部２０１４と同様であるので、ここでの説明は省略する。【０２００】
（Ｂ−１−２）カード２００２ａ
カード２００２ａは、図２０にて示すように、秘密情報提供部２０２０ａ、端末ＩＤ格納部２０２１ａ、正当性確認情報格納部２０２２ａ、更新プログラム格納部２０２３ａ、秘密情報取得部２０２４ａ、正当性確認情報取得部２０２５ａ、更新プログラム取得部２０２６ａ、及び正当性確認部２０２７ａから構成されている。【０２０１】
（Ｂ−１−２−１）秘密情報提供部２０２０ａ
秘密情報提供部２０２０ａは、図２０にて示すように、秘密情報蓄積部２０２９ａ及びスイッチ２０３０ａを有している。
秘密情報蓄積部２０２９ａ及びスイッチ２０３０ａのそれぞれは、上記第１の変形例にて示す秘密情報蓄積部２０２９及びスイッチ２０３０のそれぞれと同様であるので、ここでの説明は省略する。【０２０２】
（Ｂ−１−２−２）端末ＩＤ格納部２０２１ａ
端末ＩＤ格納部２０２１ａは、上記第１の変形例にて示す端末ＩＤ格納部２０２１と同様であるので、ここでの説明は省略する。
（Ｂ−１−２−３）正当性確認情報格納部２０２２ａ
正当性確認情報格納部２０２２ａは、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。【０２０３】
正当性確認情報格納部２０２２ａは、ネットワーク接続端末２００３ａを介してサーバ２００４ａから受け取った正当性確認情報（正規のＩＤ付ＰＣＲ値）を、端末ＩＤ格納部２０２１ａにて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、正当性確認情報格納部２０２２ａは、コンテンツ鍵復号プログラム及び端末ＩＤ２０１５ａに対する正当性確認情報（正規のＩＤ付ＰＣＲ値）を、端末２００１ａの端末ＩＤ２０１５ａと対応付けて記憶しているものとする。【０２０４】
（Ｂ−１−２−４）更新プログラム格納部２０２３ａ
更新プログラム格納部２０２３ａは、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
更新プログラム格納部２０２３ａは、上記第１の変形例にて示す更新プログラム格納部２０２３と同様であるので、ここでの説明は省略する。【０２０５】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２０２１ａ、正当性確認情報格納部２０２２ａ及び更新プログラム格納部２０２３ａから構成されていることが分かる。
（Ｂ−１−２−５）秘密情報取得部２０２４ａ
秘密情報取得部２０２４ａは、上記第１の変形例にて示す秘密情報取得部２０２４と同様であるので、ここでの説明は省略する。【０２０６】
（Ｂ−１−２−６）正当性確認情報取得部２０２５ａ
正当性確認情報取得部２０２５ａは、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する処理を行う。
正当性確認情報取得部２０２５ａは、ネットワーク接続端末２００３ａを介してサーバ２００４ａから正当性確認情報（正規のＩＤ付ＰＣＲ値）を受け取ると、受け取った正当性確認情報を正当性確認情報格納部２０２２ａへ格納する。【０２０７】
（Ｂ−１−２−７）更新プログラム取得部２０２６ａ
更新プログラム取得部２０２６ａは、上記第１の変形例にて示す更新プログラム取得部２０２６と同様であるので、ここでの説明は省略する。
（Ｂ−１−２−８）正当性確認部２０２７ａ
正当性確認部２０２７ａは、上記実施の形態にて示す図１０におけるＳ１００３の処理に相当する処理を行う。【０２０８】
正当性確認部２０２７ａは、端末２００１ａからコンテンツ鍵復号プログラムと端末ＩＤ２０１５ａに対するＩＤ付ＰＣＲ値を受け取ると、端末２００１ａと対応付けられたコンテンツ鍵復号プログラムと端末ＩＤ２０１５ａに対する正当性確認情報（正規のＩＤ付ＰＣＲ値）を、正当性確認情報格納部２０２２ａから取得する。
正当性確認部２０２７ａは、受け取ったＩＤ付ＰＣＲ値と正当性確認情報とが一致するか否かを判断する。【０２０９】
以下、判断結果に応じた動作は、第１の変形例にて示す正当性確認部２０２７の判断結果に応じた動作と同様であるので、ここでの説明は省略する。
なお、正当性確認部２０２７ａをステップＳ１００２及びＳ１００３に相当するとしてもよいことも第１の変形例と同様である。
（Ｂ−１−２−９）プログラム出力部２０２８ａ
プログラム出力部２０２８ａは、上記第１の変形例にて示すプログラム出力部２０２８と同様であるので、ここでの説明は省略する。【０２１０】
（Ｂ−１−３）ネットワーク接続端末２００３ａ
ネットワーク接続端末２００３ａは、自身に装着されたカード２００２ａの端末ＩＤ格納部２０２１ａから端末２００１ａの端末ＩＤを取得すると、取得した端末ＩＤを、ネットワークを介してサーバ２００４ａへ出力する。
その後、ネットワーク接続端末２００３ａは、サーバ２００４ａからネットワークを介して、出力した端末ＩＤと対応付けられた更新プログラム、正当性確認情報（ＩＤ付ＰＣＲ値）、及び個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２ａへ格納する。【０２１１】
（Ｂ−１−４）サーバ２００４ａ
サーバ２００４ａは、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき更新プログラム及び正規のＰＣＲ値（正当性確認情報）を管理している。なお、更新プログラム及び正当性確認情報は、第１の変形例と同様に端末の機種毎に異なるとする。【０２１２】
また、サーバ２００４ａは、端末共通鍵を予め記憶し、管理している。
サーバ２００４ａは、複数の秘密情報（デバイス鍵）を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２００４ａは、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２００４ａが管理している複数の秘密情報それぞれは、互いに異なる。さらに、サーバ２００４ａは、管理している全ての秘密情報を配布した場合、これまでに管理していた複数の秘密情報それぞれとは異なる複数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互いに異なる。【０２１３】
サーバ２００４ａは、ネットワーク接続端末２００３ａからネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応するコンテンツ鍵復号プログラムに対する更新プログラム、そのＰＣＲ値、及び端末共通鍵を取得する。
サーバ２００４ａは、ネットワーク接続端末２００３ａから受け取った端末ＩＤと、取得したＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤが反映された正当性確認情報（正規のＩＤ付ＰＣＲ値）を生成する。【０２１４】
サーバ２００４ａは、上記第１の変形例にて示すサーバ２００４と同様の方法により、個別暗号化秘密情報を生成する。
サーバ２００４ａは、端末個別データ一式（生成した個別暗号化秘密情報と、取得した更新プログラム及び正当性確認情報（正規のＩＤ付ＰＣＲ値））を、ネットワークを介してネットワーク接続端末２００３ａへ出力する。【０２１５】
（Ｂ−１−５）デバイス鍵配布システム２０００ａの動作
デバイス鍵配布システム２０００ａの動作は、図１８にて示すデバイス鍵配布システム２０００の動作と比べて、正当性確認情報のデータの内容のみが異なり、システムの動作については、同一の流れで実現できるので、ここでの説明は省略する。
（Ｂ−１−６）その他の変形例
なお、本発明を上記第２の変形例に基づいて説明してきたが、本発明は、上記第２の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。【０２１６】
（１）上記第２の変形例において、ＩＤ付ＰＣＲ値は、コンテンツ鍵復号プログラムのＰＣＲ値と、端末ＩＤ２０１５ａとに対して、ＰＣＲ値拡張コマンドを施すことで生成されたが、これに限定されない。
ＩＤ付ＰＣＲ値は、コンテンツ鍵復号プログラムのＰＣＲ値に、端末ＩＤ２０１５ａに一方向性関数を施して得られたハッシュ値を加算することで、生成されてもよい。【０２１７】
（２）上記第２の変形例において、端末２００１ａは、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２００１ａは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２００１ａは、上記第２の変形例にて示すネットワーク接続端末２００３ａが行う動作をも兼ね備えることで実現できる。【０２１８】
（３）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（Ｂ−１−７）まとめ
上記第２の変形例では、プログラムのＰＣＲ値と端末ＩＤとを用いて、ＩＤ付ＰＣＲ値を算出し、算出したＰＣＲ値を用いて端末の正当性を確認するので、他の端末ＩＤを詐取した不正な端末は、デバイス鍵を入手することができない。【０２１９】
これにより、クローン端末の生成を防止することができる。
また、第１の変形例と同様、プログラムの更新が確認された後でのみデバイス鍵を送り込むので、デバイス鍵を安全に更新することができる。
（Ｃ−１）第３の変形例
上記第２の実施の形態では、端末ＩＤを反映したＰＣＲ値をサーバで生成したが、これに限定されない。【０２２０】
端末ＩＤを反映したＰＣＲ値は、カードで生成してもよい。
以下、この場合のこの場合のシステムの構成及び、各装置の構成について、上記第１及び第２の変形例と異なる点を中心に説明する。
デバイス鍵配布システム２０００ｂは、図２１にて示すように、端末（証明装置）２００１ｂ、カード（検証装置）２００２ｂ、ネットワーク接続端末２００３ｂ及びサーバ２００４ｂから構成されている。【０２２１】
端末２００１ｂは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末２００１と同様に、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。
端末２００１ｂは、カード２００２ｂから端末２００１ｂの端末ＩＤに関連づけられた値で暗号化されたデバイス鍵（以下、個別暗号化デバイス鍵）を受け取り、受け取った個別暗号化デバイス鍵を復号することにより、当該端末に対応するデバイス鍵を取得する。【０２２２】
カード２００２ｂは、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。カード２００２ｂは、第２の変形例にて示すカード２００２ａと同様に、端末２００１ｂの端末ＩＤを予め記憶している。カード２００２ｂは、ＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２００３ｂへ出力する。
ネットワーク接続端末２００３ｂは、端末ＩＤをサーバ２００４ｂへネットワークを介して送信する。ネットワーク接続端末２００３ｂは、サーバ２００４ｂから、復号プログラムに対する更新プログラム、正当性確認情報、及び送信した端末ＩＤにより個別暗号化された個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２ｂへ出力する。【０２２３】
サーバ２００４ｂは、端末ＩＤをネットワーク接続端末２００３ｂから受け取ると、更新プログラム、正当性確認情報、及び受信した端末ＩＤに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号化は、上記第１の変形例と同様であるので、ここでの説明は省略する。つまり、正規のデバイス鍵は、端末ＩＤと端末共通鍵とから変換された変換値を秘密鍵として、暗号化される。【０２２４】
（Ｃ−１−１）端末２００１ｂ
端末２００１ｂは、図２１にて示すように、ＩＤ格納部２０１０ｂ、プログラム格納部２０１１ｂ、端末測定部２０１２ｂ、プログラム更新部２０１３ｂ、及び秘密情報復号部２０１４ｂから構成されている。
なお、端末２００１ｂは、第１の変形例にて示す端末２００１と同様に、端末共通鍵を記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。【０２２５】
（Ｃ−１−１−１）ＩＤ格納部２０１０ｂ、プログラム格納部２０１１ｂ
ＩＤ格納部２０１０ｂは、当該端末の端末ＩＤ２０１５ｂを予め記憶している。
ここで、ＩＤ格納部２０１０ｂは、耐タンパ性を有しており、端末ＩＤ２０１５ｂの改竄はできない。
プログラム格納部２０１１ｂは、上記第１の変形例と同様であるので、ここでの説明は省略する。【０２２６】
（Ｃ−１−１−２）端末測定部２０１２ｂ
端末測定部２０１２ｂは、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
端末測定部２０１２ｂは、上記第２の変形例と同様の動作にてＩＤ付ＰＣＲ値を生成する。なお、詳細な動作については、上記第２の変形例にて示しているので、ここでの説明は省略する。【０２２７】
（Ｃ−１−１−３）プログラム更新部２０１３ｂ
プログラム更新部２０１３ｂは、上記第１の変形例にて示すプログラム更新部２０１３と同様であるので、ここでの説明は省略する。
（Ｃ−１−１−４）秘密情報復号部２０１４ｂ
秘密情報復号部２０１４ｂは、プログラム格納部２０１１ｂにて格納されている秘密情報復号プログラムが起動され、実行されることで実現される。【０２２８】
秘密情報復号部２０１４ｂは、カード２００２ｂから個別暗号化デバイス鍵を取得する。
秘密情報復号部２０１４ｂは、ＩＤ格納部２０１０ｂから端末ＩＤを、システムＬＳＩから端末共通鍵を、それぞれ取得する。
秘密情報復号部２０１４ｂは、取得した端末ＩＤ及び端末共通鍵を用いて、個別暗号化デバイス鍵を復号し、デバイス鍵を生成する。秘密情報復号部２０１４ｂは、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。【０２２９】
（Ｃ−１−２）カード２００２ｂ
カード２００２ｂは、図２１にて示すように、秘密情報提供部２０２０ｂ、端末ＩＤ格納部２０２１ｂ、正当性確認情報格納部２０２２ｂ、更新プログラム格納部２０２３ｂ、秘密情報取得部２０２４ｂ、正当性確認情報取得部２０２５ｂ、更新プログラム取得部２０２６ｂ、正当性確認部２０２７ｂ、確認情報個別化部２０４０ｂ、デバイス鍵個別化部２０４１ｂ、カードＩＤ格納部２０４２ｂ、及び端末共通鍵格納部２０４３ｂから構成されている。【０２３０】
（Ｃ−１−２−１）カードＩＤ格納部２０４２ｂ
カードＩＤ格納部２０４２ｂは、カード２００２ｂに固有のカードＩＤを格納している。
ここで、カードＩＤ格納部２０４２ｂは、耐タンパ性を有しており、カードＩＤの改竄はできない。【０２３１】
（Ｃ−１−２−２）秘密情報提供部２０２０ｂ
秘密情報提供部２０２０ｂは、図２１にて示すように、秘密情報蓄積部２０２９ｂ及びスイッチ２０３０ｂを有している。
秘密情報蓄積部２０２９ｂは、カードＩＤ格納部２０４２ｂにて格納されているカードＩＤにて暗号化された複数のデバイス鍵（以下、秘密情報、若しくは配布用暗号化デバイス鍵という。）を格納している。【０２３２】
スイッチ２０３０ｂは、上記第１の変形例にて示すスイッチ２０３０と同様であるので、ここでの説明は省略する。
秘密情報提供部２０２０ｂは、過去に、端末へ出力した秘密情報を、再度出力しないように管理している。
例えば、複数の秘密情報それぞれに、フラグを対応付ける。具体的には、秘密情報提供部２０２０ｂは、未出力の秘密情報には値「０」を、出力済の秘密情報には値「１」を、それぞれ対応付ける。【０２３３】
また、配布用暗号化デバイス鍵は、カードＩＤを秘密鍵とする秘密鍵暗号化方式によって生成される。
（Ｃ−１−２−３）端末ＩＤ格納部２０２１ｂ、端末共通鍵格納部２０４３ｂ
端末ＩＤ格納部２０２１ｂは、上記第１の変形例にて示す端末ＩＤ格納部２０２１と同様であるので、ここでの説明は省略する。【０２３４】
端末共通鍵格納部２０４３ｂは、１以上の端末共通鍵それぞれを、当該端末共通鍵が格納される端末の機種と対応付けて格納している。なお、ここでは、端末２００１ｂに対応する端末共通鍵を格納しているものとする。
ここで、端末共通鍵格納部２０４３ｂは、耐タンパ性を有しており、端末共通鍵の改竄はできない。【０２３５】
（Ｃ−１−２−４）正当性確認情報格納部２０２２ｂ
正当性確認情報格納部２０２２ｂは、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。
正当性確認情報格納部２０２２ｂは、サーバ２００４ｂにて管理されているコンテンツ鍵復号プログラムに対する正当性確認情報（正規のＰＣＲ値）と、端末ＩＤ２０１５ｂとから生成された正規のＩＤ付ＰＣＲ値（以下、個別化確認情報ともいう。）を、端末ＩＤ格納部２０２１ｂにて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、正当性確認情報格納部２０２２ｂは、コンテンツ鍵復号プログラム及び端末ＩＤ２０１５ｂに対する個別化確認情報（正規のＩＤ付ＰＣＲ値）を、端末２００１ｂの端末ＩＤ２０１５ｂと対応付けて記憶しているものとする。【０２３６】
（Ｃ−１−２−５）更新プログラム格納部２０２３ｂ
更新プログラム格納部２０２３ｂは、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
更新プログラム格納部２０２３ｂは、上記第１の変形例にて示す更新プログラム格納部２０２３と同様であるので、ここでの説明は省略する。【０２３７】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２０２１ｂ、正当性確認情報格納部２０２２ｂ及び更新プログラム格納部２０２３ｂから構成されていることが分かる。
（Ｃ−１−２−６）秘密情報取得部２０２４ｂ
秘密情報取得部２０２４ｂは、複数の配布用暗号化デバイス鍵（秘密情報）を、サーバ２００４ｂからネットワーク接続端末２００３ｂを介して受け取ると、受け取った複数の配布用暗号化デバイス鍵（秘密情報）を秘密情報蓄積部２０２９ｂへ格納する。【０２３８】
（Ｃ−１−２−７）正当性確認情報取得部２０２５ｂ
正当性確認情報取得部２０２５ｂは、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する。
正当性確認情報取得部２０２５ｂは、ネットワーク接続端末２００３ｂを介してサーバ２００４ｂから正当性確認情報（正規のＰＣＲ値）を受け取ると、受け取った正当性確認情報を確認情報個別化部２０４０ｂへ出力する。【０２３９】
（Ｃ−１−２−８）更新プログラム取得部２０２６ｂ
更新プログラム取得部２０２６ｂは、上記第１の変形例にて示す更新プログラム取得部２０２６と同様であるので、ここでの説明は省略する。
（Ｃ−１−２−９）正当性確認部２０２７ｂ
正当性確認部２０２７ｂは、上記実施の形態にて示す図１０におけるＳ１００３に相当する処理を行う。【０２４０】
正当性確認部２０２７ｂは、端末２００１ｂからコンテンツ鍵復号プログラムと端末ＩＤ２０１５ｂとに対するＩＤ付ＰＣＲ値を受け取ると、端末２００１ｂと対応付けられたコンテンツ鍵復号プログラムと端末ＩＤ２０１５ｂとに対する正当性確認情報（正規のＩＤ付ＰＣＲ値）を、正当性確認情報格納部２０２２ｂから取得する。
正当性確認部２０２７ｂは、受け取ったＩＤ付ＰＣＲ値と正当性確認情報とが一致するか否かを判断する。【０２４１】
一致すると判断する場合には、正当性確認部２０２７ｂは、端末と秘密情報蓄積部２０２９ｂとを接続するようにスイッチ２０３０ｂを閉じ、一致した旨を示すＯＫ情報をデバイス鍵個別化部２０４１ｂへ出力する。
一致しないと判断する場合には、正当性確認部２０２７ｂは、一致しない旨を示すＮＧ情報をプログラム出力部２０２８ｂへ出力する。【０２４２】
なお、本変形例では、正当性確認部２０２７ｂはステップＳ１００３のみに相当するとしたが、これに限定されない。
なお、第１の変形例と同様、正当性確認部２０２７ｂをステップＳ１００２及びＳ１００３に相当するとしてもよい。
（Ｃ−１−２−１０）プログラム出力部２０２８ｂ
プログラム出力部２０２８ｂは、上記第１の変形例にて示すプログラム出力部２０２８と同様であるので、ここでの説明は省略する。【０２４３】
（Ｃ−１−２−１１）確認情報個別化部２０４０ｂ
確認情報個別化部２０４０ｂは、正当性確認情報取得部２０２５ｂから正当性確認情報（正規のＰＣＲ値）を受け取ると、端末ＩＤ格納部２０２１ｂから端末ＩＤ２０１５ｂを取得する。ここで、サーバ２００４ｂから受け取った正規のＰＣＲ値は、まだ端末ＩＤに関連付けられていない。【０２４４】
確認情報個別化部２０４０ｂは、正当性確認情報と、端末ＩＤ２０１５ｂとからＰＣＲ値拡張コマンドと同等の処理を施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤが反映された個別化確認情報（正規のＩＤ付ＰＣＲ値）を生成する。
確認情報個別化部２０４０ｂは、生成した個別化確認情報を正当性確認情報格納部２０２２ｂへ格納する。【０２４５】
（Ｃ−１−２−１２）デバイス鍵個別化部２０４１ｂ
デバイス鍵個別化部２０４１ｂは、正当性確認部２０２７ｂからＯＫ情報（正当性が確認された旨を示す）を受け取ると、端末ＩＤ格納部２０２１ｂから端末ＩＤ２０１５ｂを、秘密情報蓄積部２０２９ｂからフラグの値が「０」である１個の配布用暗号化デバイス鍵（秘密情報）を、カードＩＤ格納部２０４２ｂからカードＩＤをそれぞれ取得する。【０２４６】
デバイス鍵個別化部２０４１ｂは、取得した１個の配布用暗号化デバイス鍵を、カードＩＤを用いて復号してデバイス鍵を生成する。
デバイス鍵個別化部２０４１ｂは、予めカード２００２ｂに格納してある端末共通鍵（端末共通鍵格納部２０４３ｂにて格納）と端末ＩＤ２０１５ｂ（端末ＩＤ格納部２０２１ｂにて格納）を用いて上記実施の形態にて示す図１７における変換方式で生成した値を秘密鍵として秘密暗号方式によりデバイス鍵を暗号化して、個別暗号化デバイス鍵を生成する。【０２４７】
デバイス鍵個別化部２０４１ｂは、生成した個別暗号化デバイス鍵を端末２００１ｂへ出力するともに、端末２００１ｂのオペレーティングシステムに対して秘密情報復号プログラムの起動を要求する。
（Ｃ−１−３）ネットワーク接続端末２００３ｂ
ネットワーク接続端末２００３ｂは、自身に装着されたカード２００２ｂの端末ＩＤ格納部２０２１ａから端末２００１ａの端末ＩＤを、カードＩＤ格納部２０４２ｂからカードＩＤをそれぞれ取得すると、取得した端末ＩＤ及びカードＩＤを、ネットワークを介してサーバ２００４ｂへ出力する。この時、カードＩＤ格納部２０４２ｂでは、カード２００２ｂとサーバ２００４ｂとの通信路でカードＩＤの秘匿性が損なわれないようカードＩＤを暗号化した上で出力される。具体的には、公知の安全な通信路を構築する方法等により、サーバ２００４ｂと共通の鍵で暗号化した上で出力する。【０２４８】
その後、ネットワーク接続端末２００３ｂは、サーバ２００４ｂからネットワークを介して、出力した端末ＩＤと対応付けられた更新プログラムと、その正当性確認情報（ＰＣＲ値）と、複数の秘密情報（配布用暗号化デバイス鍵）とを受け取り、受け取った各情報をカード２００２ｂへ格納する。
（Ｃ−１−４）サーバ２００４ｂ
サーバ２００４ｂは、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき更新プログラム及び正規のＰＣＲ値（正当性確認情報）を管理している。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。【０２４９】
サーバ２００４ｂは、複数のデバイス鍵を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２００４ｂは、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２００４ｂが管理している複数のデバイス鍵それぞれは、互いに異なる。さらに、サーバ２００４ｂは、管理している全ての秘密情報を配布した場合、これまでに管理していた複数のデバイス鍵それぞれとは異なる複数のデバイス鍵を生成する。上述したように、再度生成された複数のデバイス鍵それぞれについても、互いに異なる。【０２５０】
サーバ２００４ｂは、ネットワーク接続端末２００３ｂからネットワークを介して、端末ＩＤ及びカードＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応するコンテンツ鍵復号プログラムに対する更新プログラム、及びそのＰＣＲ値を取得する。
サーバ２００４ｂは、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵を取得する。【０２５１】
サーバ２００４ｂは、取得した所定数のデバイス鍵それぞれを、カード２００２ｂから安全な通信路を経由してカードＩＤを秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の配布用暗号化デバイス鍵（秘密情報）を生成する。
サーバ２００４ｂは、端末個別データ一式（生成した複数の秘密情報と、取得した更新プログラム及びその正当性確認情報（正規のＰＣＲ値））を、ネットワークを介してネットワーク接続端末２００３ｂへ出力する。【０２５２】
（Ｃ−１−５）デバイス鍵配布システム２０００ｂの動作
デバイス鍵配布システム２０００ｂの動作について、図２２にて示す流れ図を用いて説明する。
カード２００２ｂは、端末２００１ｂに装着されると、端末２００１ｂの端末ＩＤを取得し、取得した端末ＩＤ２０１５ｂを端末ＩＤ格納部２０２１ｂに格納する（ステップＳ２１００）。【０２５３】
カード２００２ｂは、ネットワーク接続端末２００３ｂに装着され、且つＣＲＬデータの更新時において、カードＩＤ格納部２０４２ｂからカードＩＤを取得し、取得したカードＩＤと、端末ＩＤ格納部２０２１ｂに格納された端末２００１ｂの端末ＩＤ２０１５ｂとを、ネットワーク接続端末２００３ｂを介してサーバ２００４ｂへ送信する（ステップＳ２１０５）。【０２５４】
サーバ２００４ｂは、カード２００２ｂからネットワーク接続端末２００３ｂを介して、カード２００２ｂのカードＩＤと、端末２００１ｂの端末ＩＤとを受信すると、受信した端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（更新プログラム、及びその正当性確認情報（ＰＣＲ値））を取得する（ステップＳ２１１０）。
サーバ２００４ｂは、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵を取得し、取得した所定数のデバイス鍵それぞれを、受信したカードＩＤを秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の秘密情報（配布用暗号化デバイス鍵）を生成する（ステップＳ２１１５）。【０２５５】
サーバ２００４ｂは、端末個別データ一式（生成した複数の秘密情報（配布用暗号化デバイス鍵）と、取得した更新プログラム及びその正当性確認情報）を、ネットワークを介してネットワーク接続端末２００３ｂへ出力する（ステップＳ２１２０）。
カード２００２ｂは、サーバ２００４ｂからネットワーク接続端末２００３ｂを介して、端末個別データ一式を受信すると、各情報（データ）を格納する（ステップＳ２１２５）、具体的には、カード２００２ｂの秘密情報取得部２０２４ｂは、複数の秘密情報（配布用暗号化デバイス鍵）を受信し、受信した複数の秘密情報を秘密情報蓄積部２０２９ｂへ格納する。正当性確認情報取得部２０２５ｂは、正当性確認情報を受信すると、受信した正当性確認情報を正当性確認情報格納部２０２２ｂへ格納する。更新プログラム取得部２０２６ｂは、更新プログラムを受信すると、受信した更新プログラムを更新プログラム格納部２０２３ｂへ格納する。【０２５６】
カード２００２ｂは、更新プログラムを端末２００１ｂへ出力する（ステップＳ２１３０）。
端末２００１ｂは、更新プログラムをインストールする（ステップＳ２１３５）。
カード２００２ｂの正当性確認部２０２７ｂは、秘密情報（デバイス鍵）出力要求を受け取ると、端末２００１ｂの正当性を判断する（ステップＳ２１４０）。秘密情報出力要求は、上記実施の形態における図４にて示すステップＳ０４０２に相当し、コンテンツ鍵復号プログラムのＩＤ付ＰＣＲ値を含む。ここでは、カード２００２ｂの正当性確認部２０２７ｂは、コンテンツ鍵復号プログラムに対する正当性確認情報と、受け取った秘密情報出力要求に含まれるＩＤ付ＰＣＲ値との比較を行う。【０２５７】
正当でないと判断する場合（ステップＳ２１４０における「ＮＧ」）、カード２００２ｂは、更新プログラムを端末２００１ｂへ出力する（ステップＳ２１４５）。具体的には、正当性確認部２０２７ｂは、ＮＧ情報をプログラム出力部２０２８ｂへ出力する。プログラム出力部２０２８ｂは、正当性確認部２０２７ｂからＮＧ情報を受け取ると、端末２００１ｂに対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部２０２３ｂから取得し、取得した更新プログラムを端末２００１ｂのプログラム更新部２０１３ｂへ出力する。【０２５８】
正当であると判断する場合（ステップＳ２１４０における「ＯＫ」）、カード２００２ｂは、個別暗号化デバイス鍵を生成し、生成した個別暗号化デバイス鍵を端末２００１ｂへ出力する（ステップＳ２１５０）。具体的には、正当性確認部２０２７ｂは、ＯＫ情報をデバイス鍵個別化部２０４１ｂへ出力する。デバイス鍵個別化部２０４１ｂは、正当性確認部２０２７ｂからＯＫ情報を受け取ると、端末ＩＤ格納部２０２１ｂから端末ＩＤ２０１５ｂを、秘密情報蓄積部２０２９ｂからフラグの値が「０」である１個の配布用暗号化デバイス鍵（秘密情報）を、カードＩＤ格納部２０４２ｂからカードＩＤをそれぞれ取得する。デバイス鍵個別化部２０４１ｂは、取得した１個の配布用暗号化デバイス鍵を、カードＩＤを用いて復号してデバイス鍵を生成する。デバイス鍵個別化部２０４１ｂは、予めカード２００２ｂに格納してある端末共通鍵と端末ＩＤ２０１５ｂを用いて上記実施の形態にて示す図１７における変換方式で生成した値を秘密鍵として秘密暗号方式によりデバイス鍵を暗号化して、個別暗号化デバイス鍵を生成する。デバイス鍵個別化部２０４１ｂは、生成した個別暗号化デバイス鍵を端末２００１ｂへ出力する。【０２５９】
端末２００１ｂのプログラム更新部２０１３ｂは、カード２００２ｂから更新プログラムを受け取ると、受け取った更新プログラムのインストールを行う（ステップＳ２１５５）。具体的には、プログラム更新部２０１３ｂは、カード２００２ｂからコンテンツ鍵復号プログラムに対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号プログラムを更新する。プログラム更新部２０１３ｂは、復号プログラムの更新後、ステップＳ０４０８と同様に、システムのリセットを端末２００１ｂのオペレーティングシステムに依頼する。【０２６０】
端末２００１ｂの秘密情報復号部２０１４ｂは、個別暗号化秘密情報を、カード２００２ｂから受け取ると、個別暗号化デバイス鍵のインストールを行う（ステップＳ２１６０）。具体的には、秘密情報復号部２０１４ｂは、カード２００２ｂから当該端末に対応する個別暗号化デバイス鍵を、ＩＤ格納部２０１０ｂから端末ＩＤをそれぞれ取得する。秘密情報復号部２０１４ｂは、取得した端末ＩＤと端末共通鍵を用いて、個別暗号化デバイス鍵を復号し、デバイス鍵を生成する。秘密情報復号部２０１４ｂは、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。【０２６１】
以降、例えば、端末２００１ｂが図４にて示すステップＳ０４０３以降の動作を行い、カード２００２ｂが図１０にて示す権利確認・鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップＳ２０１０の動作は、カード２００２ｂが端末２００１ｂに装着された場合に実行される。【０２６２】
ステップＳ２０１５からステップＳ２０３５までの動作は、カード２００２ｂがネットワーク接続端末２００３ｂに装着された場合に実行される。
ステップＳ２０４０からＳ２０４５までの動作は、サービスマンにより端末２００１ｂのプログラムのアップデートを行う場合に実行される。
ステップＳ２０５０以降の動作は、端末２００１ｂの利用者によりコンテンツの再生の要求があった場合に実行される。【０２６３】
（Ｃ−１−６）その他の変形例
なお、本発明を上記第３の変形例に基づいて説明してきたが、本発明は、上記第３の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
（１）上記第３の実施の形態において、サーバ２００４ｂが、取得するデバイス鍵の個数（所定数）は２個以上としたが、これに限定されない。【０２６４】
サーバ２００４ｂが、取得するデバイス鍵の個数は１個以上であればよい。
（２）上記第３の実施の形態において、サーバ２００４ｂが、取得するデバイス鍵の個数は予め決められた個数（所定数）としたが、これに限定されない。
サーバ２００４ｂが、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を送信する際に、ユーザが指定してもよい。【０２６５】
この場合、ネットワーク接続端末２００３ｂは、ユーザから指定された取得個数を、サーバ２００４ｂへ送信する。サーバ２００４ｂは、ネットワーク接続端末２００３ｂから取得個数を受信すると、受信した取得個数分のデバイス鍵を取得する。
（３）上記第３の実施の形態において、秘密情報蓄積部２０２９ｂは、複数の配布用暗号化デバイス鍵を格納するとしたが、これに限定されない。【０２６６】
秘密情報蓄積部２０２９ｂは、復号された複数のデバイス鍵を格納してもよい。
この場合におけるカード２００２ｂの動作について、以下に説明する。
秘密情報取得部２０２４ｂは、サーバ２００４ｂから複数の配布用暗号化デバイス鍵を受け取ると、カードＩＤ格納部２０４２ｂからカードＩＤを取得する。
秘密情報取得部２０２４ｂは、取得したカードＩＤを用いて、配布用暗号化デバイス鍵それぞれを復号して、デバイス鍵を生成する。秘密情報取得部２０２４ｂは、この復号の動作を受信した配布用暗号化デバイス鍵の個数分行い、受信した配布用暗号化デバイス鍵の個数と同数のデバイス鍵を生成する。【０２６７】
秘密情報取得部２０２４ｂは、生成した複数のデバイス鍵を秘密情報蓄積部２０２９ｂへ格納する。
（４）上記第３の変形例において、端末２００１ｂは、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２００１ｂは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２００１ｂは、上記第３の変形例にて示すネットワーク接続端末２００３ｂが行う動作をも兼ね備えることで実現できる。【０２６８】
（５）上記第３の変形例において、デバイス鍵配布システム２０００ｂは、図２２にて示すステップＳ２１３０からＳ２１３５により、サービスマンによる端末２００１ｂのコンテンツ鍵復号プログラムのアップデートを行うとしたが、これに限定されない。
デバイス鍵配布システム２０００ｂの動作において、ステップＳ２１３０からＳ２１３５を行わなくてもよい。【０２６９】
（６）上記第３の変形例において、秘密情報提供部２０２０ｂは、過去に、端末へ出力した秘密情報を、再度出力しないように、秘密情報蓄積部２０２９ｂにて格納されている複数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部２０２０ｂは、出力した１以上の秘密情報からなるリストを生成し、生成したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管理してもよい。【０２７０】
または、秘密情報提供部２０２０ｂは、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい。
（７）上記第３の変形例において、デバイス鍵個別化部２０４１ｂは、個別暗号化デバイス鍵を生成する際に、端末ＩＤを用いたがこれに限定されない。【０２７１】
デバイス鍵個別化部２０４１ｂは、正当性確認部２０２７ｂで用いた個別化確認情報（つまり、ＩＤ付ＰＣＲ値）を秘密鍵として用いて、デバイス鍵を暗号化して、個別暗号化デバイス鍵を生成してもよい。
（８）上記第３の実施の形態において、サーバ２００４ｂは、カードＩＤを用いて配布用暗号化デバイス鍵を生成したが、これに限定されない。【０２７２】
サーバ２００４ｂは、第１、及び第２の変形例と同様に、端末ＩＤと端末共通鍵とから生成された変換値（暗号用変換値）を用いて配布用暗号化デバイス鍵を生成してもよいし、端末ＩＤのみを用いて配布用暗号化デバイス鍵を生成してもよい。
このとき、カード２００２ｂのデバイス鍵個別化部２０４１ｂは、暗号用変換値若しくは端末ＩＤで暗号化された配布用暗号化デバイス鍵を復号した後、端末ＩＤで暗号化して個別暗号化デバイス鍵を生成してもよいし、配布用暗号化デバイス鍵そのものを端末ＩＤで暗号化、つまり２重の暗号化をして個別暗号化デバイス鍵を生成してもよい。【０２７３】
２重の暗号化した場合、端末２００１ｂは、先ず、個別暗号化デバイス鍵を端末ＩＤで復号して、配布用暗号化デバイス鍵を生成する。次に、端末２００１ｂは、端末ＩＤと端末共通鍵とから復号用変換値を生成し、生成した復号用変換値を用いて、生成した配布用暗号化デバイス鍵を復号してデバイス鍵を生成する。
また、カード２００２ｂとサーバ２００４ｂで予め共有している秘密鍵で配布用暗号化デバイス鍵を生成してもよい。【０２７４】
（９）上記第３の実施の形態において、カード２００２ｂが予め端末共通鍵を格納している構成としたが、これに限定されない。
カード２００２ｂは、端末共通鍵を、サーバ２００４ｂから受け取ってもよい。
この場合、サーバ２００４ｂは、カード２００２ｂから端末ＩＤ及びカードＩＤを受け取ると、受け取った端末ＩＤにより特定される機種に対応する端末共通鍵を取得し、取得した端末共通鍵を、受け取ったカードＩＤにて暗号化して、暗号化した端末共通鍵をカード２００２ｂへ送信する。【０２７５】
カード２００２ｂは、暗号化された端末共通鍵を受け取ると、受け取った暗号化された端末共通鍵を端末共通鍵格納部２０４３ｂへ格納する。
カード２００２ｂは、個別暗号化デバイス鍵の生成時に、暗号化された端末共通鍵を復号する。
（１０）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。【０２７６】
（Ｃ−１−７）まとめ
上記第３の変形例では、上記第２の変形例により生じる効果に加え、複数のデバイス鍵をカードＩＤにて暗号化するので、カード毎に格納すべき複数のデバイス鍵を個別化することができる。これにより、１枚のカードを用いて複数の端末それぞれに、異なるデバイス鍵を配布することができる。【０２７７】
また、１枚のカードは、複数のデバイス鍵（ここでは、配布用暗号化デバイス鍵）を格納するので、サーバへのアクセス回数を減らすことができる。
（Ｄ−１）第４の変形例
上記第３の変形例では、カードにてデバイス鍵の個別化を行ったが、これに限定されない。デバイス鍵の個別化は、デバイス鍵の配送対象である端末で行ってもよい。【０２７８】
ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、デバイス鍵とは、コンテンツを暗号化及び復号するための鍵（以下、コンテンツ鍵という。）を暗号化及び復号するための鍵である。
以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム２１００は、図２３にて示すように、端末（証明装置）２１０１、カード（検証装置）２１０２、ネットワーク接続端末２１０３及びサーバ２１０４から構成されている。【０２７９】
端末２１０１は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末Ｎ０１０５、・・・、端末Ｚ０１０６に相当する。端末２１０１は、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。また、端末２１０１は、デバイス鍵の取得（更新）時に、カード２１０２からデバイス鍵を暗号化するための個別暗号化プログラムを受け取る。個別暗号化プログラムについては後述する。【０２８０】
カード２１０２は、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。ここでは、カード２１０２は、端末２１０１を識別するための端末ＩＤを予め記憶している。つまり、カード２１０２は、過去に一度、端末２１０１に装着されたものとする。カード２１０２は、上記実施の形態にて示すＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２１０３へ出力する。【０２８１】
ネットワーク接続端末２１０３は、端末ＩＤをサーバ２１０４へネットワークを介して送信する。ネットワーク接続端末２１０３は、サーバ２１０４から、個別暗号化プログラムに対する更新プログラム（以下、第１の更新プログラムという。）、コンテンツ鍵復号プログラムに対する更新プログラム（以下、第２の更新プログラムという。）、個別暗号化プログラムに対する第１の正当性確認情報、コンテンツ鍵復号プログラムに対する第２の正当性確認情報、及び複数の秘密情報を受け取り、受け取った各情報をカード２１０２へ出力する。【０２８２】
ここで、秘密情報とは、配布用暗号化デバイス鍵と暗号化個別配送鍵との組からなる。配布用暗号化デバイス鍵は、デバイス鍵を、デバイス鍵毎に個別に割り当てられた個別配送鍵にて暗号化したものである。暗号化個別配送鍵は、個別配送鍵を、端末共通鍵にて暗号化したものである。ここでの、暗号化方式は、上述したように秘密鍵暗号化方式である。【０２８３】
サーバ２１０４は、端末ＩＤをネットワーク接続端末２１０３から受け取ると、端末ＩＤに対応する更新プログラム、及び正当性確認情報と、複数の秘密情報とを送信する。
ここで、正規のデバイス鍵、及び個別配送鍵の暗号化について説明する。
サーバ２１０４は、図２４にて示すように、デバイス鍵を、対応する個別配送鍵にて暗号化して、配布用暗号化デバイス鍵を生成する（ステップＳ２２００）。【０２８４】
サーバ２１０４は、個別配送鍵を、端末共通鍵にて暗号化して、暗号化個別配送鍵を生成する（ステップＳ２２０５）。
サーバ２１０４は、生成した配布用暗号化デバイス鍵と暗号化個別配送鍵との組からなる秘密情報をカード２１０２へ送信する。
（Ｄ−１−１）端末２１０１
端末２１０１は、図２３にて示すように、ＩＤ格納部２１１０、第１のプログラム格納部２１１１、第２のプログラム格納部２１１２、端末測定部２１１３、第１のプログラム更新部２１１４、第２のプログラム更新部２１１５、デバイス鍵個別化部２１１６、個別化デバイス鍵蓄積部２１１７、デバイス鍵復号部２１１８から構成されている。【０２８５】
なお、端末２１０１の構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているものとし、システムＬＳＩには、端末２１０１と同種の端末と共通の鍵（以下、端末共通鍵）を記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
（Ｄ−１−１−１）ＩＤ格納部２１１０、第１のプログラム格納部２０１１、第２のプログラム格納部２１１２
ＩＤ格納部２１１０は、当該端末の端末ＩＤ２２００を予め記憶している。【０２８６】
ここで、ＩＤ格納部２１１０は、耐タンパ性を有しており、端末ＩＤ２２００の改竄はできない。
第１のプログラム格納部２１１１及び第２のプログラム格納部２１１２は、上記実施の形態におけるプログラム格納部０７０８に相当する。
第１のプログラム格納部２１１１は、個別暗号化プログラムを記憶するための領域を有している。【０２８７】
第１のプログラム格納部２１１１は、デバイス鍵の受信時に、個別暗号化プログラムが格納され、その後、第２のプログラム更新部２１１５の動作開始時には、個別暗号化プログラムは消去される。
第２のプログラム格納部２１１２は、上記実施の形態におけるプログラム格納部０７０８が記憶している各プログラムに加えて、個別暗号化された正規のデバイス鍵を復号するためのプログラム（以下、デバイス鍵復号プログラム）、及びコンテンツ鍵復号プログラムを予め記憶している。【０２８８】
（Ｄ−１−１−２）端末測定部２１１３
端末測定部２１１３は、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
端末測定部２１１３は、個別暗号化プログラムのＰＣＲ値（以下、第１のＰＣＲ値）を測定（算出）する。端末測定部２１１３は、ＩＤ格納部２１１０に格納されている端末ＩＤ２２００を取得する。端末測定部２１１３は、取得した端末ＩＤ２２００と、算出した第１のＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、個別暗号化プログラムのＰＣＲ値に端末ＩＤ２２００が反映されたＰＲＣ値（以下、第１のＩＤ付ＰＣＲ値という。）を生成する。端末測定部２１１３は、生成した第１のＩＤ付ＰＣＲ値をカード２１０２へ出力する。【０２８９】
端末測定部２１１３は、コンテンツ鍵復号プログラムのＰＣＲ値（以下、第２のＰＣＲ値）を測定（算出）する。端末測定部２１１３は、ＩＤ格納部２１１０に格納されている端末ＩＤ２２００を取得する。端末測定部２１１３は、取得した端末ＩＤ２２００と、算出した第２のＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤ２２００が反映されたＰＲＣ値（以下、第２のＩＤ付ＰＣＲ値という。）を生成する。端末測定部２１１３は、生成した第１のＩＤ付ＰＣＲ値をカード２１０２へ出力する。【０２９０】
なお、各測定のタイミングは、上記実施の形態と同様に、個別暗号化プログラムのロード時、コンテンツ鍵復号プログラムのロード時であり、各出力のタイミングは、共にコンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略する。
（Ｄ−１−１−３）第１のプログラム更新部２１１４、第２のプログラム更新部２１１５
第１のプログラム更新部２１１４は、カード２１０２から個別暗号化プログラム（以下、第１の更新プログラムともいう。）を受け取ると、受け取った第１の更新プログラムを第１のプログラム格納部２１１１へ格納する。【０２９１】
第１のプログラム更新部２１１４は、個別暗号化プログラムの格納後、ステップＳ０４０８と同様に、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。
第２のプログラム更新部２１１５は、カード２１０２からコンテンツ鍵復号プログラムに対する更新プログラム（以下、第２の更新プログラム）を受け取ると、第１のプログラム格納部２１１１に格納されている個別暗号化プログラムを消去する。【０２９２】
第２のプログラム更新部２１１５は、受け取った第２の更新プログラムを用いてコンテンツ鍵復号プログラムを更新し、その後、ステップＳ０４０８と同様に、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。
（Ｄ−１−１−４）デバイス鍵個別化部２１１６
デバイス鍵個別化部２１１６は、第１のプログラム格納部２０１１にて格納されている個別暗号化プログラムが起動され、実行されることで実現される。【０２９３】
デバイス鍵個別化部２１１６は、カード２１０２から１個の配布用暗号化デバイス鍵を受け取ると、ＩＤ格納部２１１０から端末ＩＤ２２００を取得する。
デバイス鍵個別化部２１１６は、取得した端末ＩＤを用いて、受け取った配布用暗号化デバイス鍵を暗号化して、個別暗号化デバイス鍵を生成する。
デバイス鍵個別化部２１１６は、生成した個別暗号化デバイス鍵を、個別化デバイス鍵蓄積部２１１７に格納する。【０２９４】
（Ｄ−１−１−５）個別化デバイス鍵蓄積部２１１７
個別化デバイス鍵蓄積部２１１７は、デバイス鍵個別化部２１１６にて生成された個別暗号化デバイス鍵を格納する領域を有している。
（Ｄ−１−１−６）デバイス鍵復号部２１１８
デバイス鍵復号部２１１８は、第２のプログラム格納部２０１１にて格納されているデバイス鍵復号プログラムが起動され、実行されることで実現される。【０２９５】
デバイス鍵復号部２１１８は、カード２１０２から、個別化デバイス鍵蓄積部２１１７に格納されている個別暗号化デバイス鍵に対応する暗号化個別配送鍵を受け取る。
デバイス鍵個別化部２１１６は、受け取った暗号化個別配送鍵を、所定の格納領域（例えば、個別化デバイス鍵蓄積部２１１７）に格納する。
デバイス鍵復号部２１１８は、受け取った暗号化個別配送鍵に対応する個別暗号化デバイス鍵を、個別化デバイス鍵蓄積部２１１７から取得する。【０２９６】
デバイス鍵復号部２１１８は、ＩＤ格納部２１１０から端末ＩＤ２２００を取得し、取得した端末ＩＤ２２００を用いて、個別化デバイス鍵蓄積部２１１７から取得した個別暗号化デバイス鍵を復号して、配布用暗号化デバイス鍵を生成する。
デバイス鍵復号部２１１８は、当該端末の端末共通鍵を取得し、取得した端末共通鍵を用いて、受け取った暗号化個別配送鍵を復号して、個別配送鍵を生成する。【０２９７】
デバイス鍵個別化部２１１６は、生成した個別配送鍵を用いて、配布用暗号化デバイス鍵を復号して、デバイス鍵を生成する。
（Ｄ−１−２）カード２１０２
カード２１０２は、図２３にて示すように、秘密情報提供部２１２０、端末ＩＤ格納部２１２１、正当性確認情報格納部２１２２、第１の更新プログラム格納部２１２３、第２の更新プログラム格納部２１２４、秘密情報取得部２１２５、正当性確認情報取得部２１２６、第１の更新プログラム取得部２１２７、第２の更新プログラム取得部２１２８、正当性確認部２１２９、第１のプログラム出力部２１３０、第２のプログラム出力部２１３１、及び確認情報個別化部２１４０から構成されている。【０２９８】
（Ｄ−１−２−１）秘密情報提供部２１２０
秘密情報提供部２１２０は、図２３にて示すように、秘密情報蓄積部２１３２及びスイッチ２１３３を有している。
秘密情報蓄積部２１３２は、上記実施の形態にて示すコンテンツ格納部０８０７に相当している。秘密情報蓄積部２１３２は、ネットワーク接続端末２１０３を介してサーバ２１０４から受け取った複数の秘密情報を蓄積している。具体的には、秘密情報蓄積部２１３２は、図２５にて示すように秘密情報管理テーブルＴ２１００を有している。【０２９９】
秘密情報管理テーブルＴ２１００は、配布用暗号化デバイス鍵と暗号化個別配送鍵とからなる組を１個以上記憶するための領域を有している。
配布用暗号化デバイス鍵及び暗号化個別配送鍵については、上述しているので、ここでの説明は省略する。
ここで、Ｅ（ｘ、ｙ）は、データｙを暗号化鍵ｘで暗号した結果を示す。ＤＫ１、ＤＫ２，ＤＫ３、・・・は、デバイス鍵を、Ｄｅｌｉ−Ｋｅｙ１、Ｄｅｌｉ−Ｋｅｙ２、Ｄｅｌｉ−Ｋｅｙ３、・・・は、ＤＫ１、ＤＫ２，ＤＫ３、・・・に対応する個別配送鍵を、ＭＫは、端末共通鍵を、それぞれ示す。【０３００】
スイッチ２１３３は、上記実施の形態にて示す図１０のステップＳ１００５におけるコンテンツの鍵を出力する動作に相当し、正当性確認部２１２９の制御により動作する。端末が正当であると判断される場合には、スイッチ２１３３は、端末が１つの配布用暗号化デバイス鍵と、それに対応する暗号化個別配送鍵とを取得できるように、端末と秘密情報蓄積部２１３２とを接続する。端末が正当でないと判断される場合には、スイッチ２１３３は、端末と秘密情報蓄積部２１３２とを接続しない。具体的に、接続するとは端末２１０１が秘密情報蓄積部２１３２から情報を取得できる状態にすることである。【０３０１】
秘密情報提供部２１２０は、正当性確認部２１２９から第１のＰＣＲ値を用いた正当性確認により端末２１０１が正当であることを示す第１のＯＫ情報を受け取ると、端末２１０１と秘密情報蓄積部２１３２とが接続するようスイッチを制御し、端末２１０１のオペレーティングシステムに対して個別暗号化プログラムの起動を要求する。
秘密情報提供部２１２０は、正当性確認部２１２９から第２のＰＣＲ値を用いた正当性確認により端末２１０１が正当であることを示す第２のＯＫ情報を受け取ると、端末２１０１と秘密情報蓄積部２１３２とが接続するようスイッチを制御し、端末２１０１のオペレーティングシステムに対してデバイス鍵復号プログラムの起動を要求する。【０３０２】
秘密情報提供部２１２０は、正当性確認部２１２９から端末２１０１が正当でないことを示すＮＧ情報を受け取ると、端末２１０１と秘密情報蓄積部２１３２とが接続しないようにスイッチを制御する。
秘密情報提供部２１２０は、過去に、端末へ出力した配布用暗号化デバイス鍵を、再度出力しないように管理している。例えば、複数の秘密情報それぞれに、フラグを対応付ける。具体的には、秘密情報提供部２１２０は、未出力の配布用暗号化デバイス鍵には値「０」を、出力済の配布用暗号化デバイス鍵には値「１」を、それぞれ対応付ける。【０３０３】
秘密情報提供部２１２０は、配布用暗号化デバイス鍵を、当該配布用暗号化デバイス鍵の出力先である端末の端末ＩＤとを対応付けて管理している。
これにより、上記にて示すデバイス鍵復号部２１１８は、出力済であり、且つ当該端末２１０１と対応付けられた配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を取得することにより、デバイス鍵を生成することができる。【０３０４】
（Ｄ−１−２−２）端末ＩＤ格納部２１２１
端末ＩＤ格納部２１２１は、上記第１の変形例にて示す端末ＩＤ格納部２０２１と同様であるので、ここでの説明は省略する。
（Ｄ−１−２−３）正当性確認情報格納部２１２２
正当性確認情報格納部２１２２は、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。【０３０５】
正当性確認情報格納部２１２２は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った第１の正当性確認情報と、端末ＩＤ２２００とから生成された第１のＩＤ付ＰＣＲ値（以下、第１の個別化確認情報ともいう。）を、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。
正当性確認情報格納部２１２２は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った第２の正当性確認情報と、端末ＩＤ２２００とから生成された第２のＩＤ付ＰＣＲ値（以下、第２の個別化確認情報ともいう。）を、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。【０３０６】
ここでは、正当性確認情報格納部２１２２は、第１及び第２の個別化確認情報それぞれを、端末２１０１の端末ＩＤ２２００と対応付けて記憶しているものとする。
（Ｄ−１−２−４）第１の更新プログラム格納部２１２３、第２の更新プログラム格納部２１２４
第１の更新プログラム格納部２１２３及び第２の更新プログラム格納部２１２４は、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。【０３０７】
第１の更新プログラム格納部２１２３は、ネットワーク接続端末２１０３を介してサーバ２１０４から受け取った第１の更新プログラム（個別暗号化プログラム）を、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、第１の更新プログラム格納部２１２３は、第１の更新プログラムを、端末２１０１の端末ＩＤ２２００と対応付けて記憶しているものとする。【０３０８】
第２の更新プログラム格納部２１２４は、ネットワーク接続端末２１０３を介してサーバ２１０４から受け取った第２の更新プログラムを、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、第２の更新プログラム格納部２１２４は、第２の更新プログラムを、端末２１０１の端末ＩＤ２２００と対応付けて記憶しているものとする。【０３０９】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２１２１、正当性確認情報格納部２１２２、第１の更新プログラム格納部２１２３及び第２の更新プログラム格納部２１２４から構成されていることが分かる。
（Ｄ−１−２−５）秘密情報取得部２１２５
秘密情報取得部２１２５は、上記実施の形態にて示す図９における権利購入処理に相当する。【０３１０】
秘密情報取得部２１２５は、ネットワーク接続端末２１０３を介してサーバ２１０４から複数の秘密情報を受け取ると、受け取った複数の秘密情報を秘密情報蓄積部２１３２の秘密情報管理テーブルＴ２１００へ格納する。
ここで、秘密情報取得部２１２５による個別暗号化秘密情報の受け取り、及び格納のタイミングは、例えば、コンテンツの購入時である。【０３１１】
（Ｄ−１−２−６）正当性確認情報取得部２１２６
正当性確認情報取得部２１２６は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する。
正当性確認情報取得部２１２６は、ネットワーク接続端末２００３を介してサーバ２００４から、個別暗号化プログラムに対する第１の正当性確認情報、及びコンテンツ鍵復号プログラムに対する第２の正当性確認情報を受け取ると、受け取った第１及び第２の正当性確認情報を確認情報個別化部２１４０へ出力する。【０３１２】
（Ｄ−１−２−７）第１の更新プログラム取得部２１２７、第２の更新プログラム取得部２１２８
第１の更新プログラム取得部２１２７、及び第２の更新プログラム取得部２１２８は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの更新プログラムの更新に相当する。【０３１３】
第１の更新プログラム取得部２１２７は、ネットワーク接続端末２１０３を介してサーバ２１０４から第１の更新プログラム（個別暗号化プログラム）を受け取ると、受け取った第１の更新プログラムを第１の更新プログラム格納部２１２３へ格納する。
第２の更新プログラム取得部２１２８は、ネットワーク接続端末２１０３を介してサーバ２１０４から第２の更新プログラムを受け取ると、受け取った第２の更新プログラムを第２の更新プログラム格納部２１２４へ格納する。【０３１４】
（Ｄ−１−２−８）正当性確認部２１２９
正当性確認部２１２９は、上記実施の形態にて示す図１０におけるＳ１００３に相当する。
正当性確認部２１２９は、端末２１０１から第１のＩＤ付ＰＣＲ値を受け取ると、端末２１０１と対応付けられた第１の個別化確認情報を、正当性確認情報格納部２１２２から取得する。正当性確認部２１２９は、受け取った第１のＩＤ付ＰＣＲ値と第１の個別化確認情報とが一致するか否かを判断する。一致すると判断する場合には、正当性確認部２１２９は、第１のＯＫ情報を秘密情報提供部２１２０へ出力する。一致しないと判断する場合には、正当性確認部２１２９は、ＮＧ情報を秘密情報提供部２１２０及び第１のプログラム出力部２１３０へ出力する。【０３１５】
正当性確認部２１２９は、端末２１０１から第２のＩＤ付ＰＣＲ値を受け取ると、端末２１０１の第１のプログラム格納部２１１１に第１の更新プログラム（個別暗号化プログラム）が消去されているか否かを判断する。なお、消去されているか否かの判断に第２の個別化確認情報を用いてもよい。端末２１０１から受け取った第２のＩＤ付ＰＣＲ値と第２の個別化確認情報との比較を行い、一致していれば消去されていると判断してもよい。ここで、個別暗号化プログラムが消去されているか否かを判断できるのは、第２の個別化確認情報を生成するために用いた対象となるプログラムに個別暗号化プログラムが含まれないからである。【０３１６】
消去されていないと判断する場合には、正当性確認部２１２９は、端末２１０１のオペレーティングシステムに第１の更新プログラム（個別暗号化プログラム）を消去するように依頼し、その後、再度、端末２１０１の第１のプログラム格納部２１１１に第１の更新プログラム（個別暗号化プログラム）が消去されているか否かを判断する。
消去されていると判断する場合には、正当性確認部２１２９は、端末２１０１と対応付けられた第２の個別化確認情報を、正当性確認情報格納部２１２２から取得する。正当性確認部２１２９は、受け取った第２のＩＤ付ＰＣＲ値と第２の個別化確認情報とが一致するか否かを判断する。一致すると判断する場合には、正当性確認部２１２９は、第２のＯＫ情報を秘密情報提供部２１２０へ出力する。一致しないと判断する場合には、正当性確認部２１２９は、ＮＧ情報を秘密情報提供部２１２０及び第２のプログラム出力部２１３１へ出力する。【０３１７】
なお、第１の変形例と同様、正当性確認部２１２９をステップＳ１００２及びＳ１００３に相当するとしてもよい。
（Ｄ−１−２−９）第１のプログラム出力部２１３０、第２のプログラム出力部２１３１
第１のプログラム出力部２１３０は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する第１の更新プログラム（個別暗号化プログラム）を第１の更新プログラム格納部２１２３から取得する。第１のプログラム出力部２１３０は、取得した第１の更新プログラムを端末２１０１の第１のプログラム更新部２１１４へ出力する。【０３１８】
第２のプログラム出力部２１３１は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する第２の更新プログラムを第２の更新プログラム格納部２１２４から取得する。第２のプログラム出力部２１３０は、取得した第２の更新プログラムを端末２１０１の第２のプログラム更新部２１１５へ出力する。
（Ｄ−１−２−１０）確認情報個別化部２１４０
確認情報個別化部２１４０は、正当性確認情報取得部２１２６から第１の正当性確認情報、及び第２の正当性確認情報を受け取ると、端末ＩＤ格納部２１２１から端末ＩＤ２２００を取得する。【０３１９】
確認情報個別化部２１４０は、第１の正当性確認情報と、端末ＩＤ２２００とにＰＣＲ値拡張コマンドと等価な処理を施して、個別暗号化プログラムのＰＣＲ値に端末ＩＤが付加された第１の個別化確認情報を生成する。確認情報個別化部２１４０は、生成した第１の個別化確認情報を正当性確認情報格納部２１２２へ格納する。
確認情報個別化部２１４０は、第２の正当性確認情報と、端末ＩＤ２２００とにＰＣＲ値拡張コマンドと等価な処理を施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤが付加された第２の個別化確認情報を生成する。確認情報個別化部２１４０は、生成した第２の個別化確認情報を正当性確認情報格納部２１２２へ格納する。【０３２０】
（Ｄ−１−３）ネットワーク接続端末２１０３
ネットワーク接続端末２１０３は、自身に装着されたカード２１０２の端末ＩＤ格納部２１２１から端末２１０１の端末ＩＤを取得すると、取得した端末ＩＤを、ネットワークを介してサーバ２１０４へ出力する。
その後、ネットワーク接続端末２１０３は、サーバ２１０４からネットワークを介して、出力した端末ＩＤと対応付けられた第１及び第２の更新プログラムと、第１及び第２の正当性確認情報と、複数の秘密情報を受け取り、受け取った各情報をカード２１０２へ格納する。【０３２１】
（Ｄ−１−４）サーバ２１０４
サーバ２１０４は、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき第１及び第２の更新プログラム及び第１及び第２の正当性確認情報を管理している。なお、第１、第２の更新プログラム及び第１、第２の正当性確認情報は、端末の機種毎に異なるとする。【０３２２】
また、サーバ２１０４は、端末共通鍵を予め記憶し、管理している。
サーバ２００４は、複数のデバイス鍵を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２１０４は、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２１０４が管理している複数の秘密情報それぞれは、互いに異なる。さらに、サーバ２１０４は、管理している全ての秘密情報を配布した場合、これまでに管理していた複数の秘密情報それぞれとは異なる複数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互いに異なる。【０３２３】
サーバ２１０４は、ネットワーク接続端末２１０３からネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（第１、第２の更新プログラム、第１、第２の正当性確認情報、及び端末共通鍵）を取得する。
サーバ２１０４は、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ２１０４は、取得した所定数のデバイス鍵それぞれを、対応する個別配送鍵を秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の配布用暗号化デバイス鍵を生成する。【０３２４】
サーバ２１０４は、配布用暗号化デバイス鍵の生成に用いた所定数の個別配送鍵それぞれを、端末共通鍵を秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の暗号化個別配送鍵を生成する。
サーバ２１０４は、端末個別データ一式（生成した複数の秘密情報と、取得した第１、第２の更新プログラム及び第１、第２の正当性確認情報）を、ネットワークを介してネットワーク接続端末２１０３へ出力する。【０３２５】
ここで、秘密鍵とは、上述したように、配布用暗号化デバイス鍵と暗号化個別配送鍵とからなる組である。
（Ｄ−１−５）デバイス鍵配布システム２１００の動作
デバイス鍵配布システム２１００の動作について、図２６及び図２７にて示す流れ図を用いて説明する。【０３２６】
以下の説明では、カード２１０２が、図１８にて示すステップＳ２０１０、Ｓ２０１５を実行し、端末２１０１の端末ＩＤ２２００をサーバ２１０４へ送信した後の動作について説明する。
サーバ２１０４は、ネットワーク接続端末２１０３からネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（第１、第２の更新プログラム、第１、第２の正当性確認情報、及び端末共通鍵）を取得する。サーバ２１０４は、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ２１０４は、取得した所定数のデバイス鍵それぞれを、対応する個別配送鍵を用いて暗号化して、所定数の配布用暗号化デバイス鍵を生成する。サーバ２１０４は、配布用暗号化デバイス鍵の生成に用いた所定数の個別配送鍵それぞれを、端末共通鍵を秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の暗号化個別配送鍵を生成する（ステップＳ２５００）。【０３２７】
サーバ２１０４は、端末個別データ一式（生成した複数の秘密情報と、取得した第１、第２の更新プログラム及び第１、第２の正当性確認情報）を、ネットワーク接続端末２１０３を介してカード２１０２へ出力する（ステップＳ２５０５、Ｓ２５１０、Ｓ２５１５、Ｓ２５２０）。カードは、サーバ２１０４からネットワーク接続端末２１０３を介して、端末個別データ一式を受け取ると、所定の格納領域へ格納する。具体的には、秘密情報取得部２１２５は、サーバ２１０４から複数の秘密情報を受け取ると、受け取った複数の秘密情報を秘密情報管理テーブルＴ２１００へ格納する。正当性確認情報取得部２１２６は、サーバ２００４から第１及び第２の正当性確認情報を受け取ると、受け取った第１及び第２の正当性確認情報を確認情報個別化部２１４０へ出力する。第１の更新プログラム取得部２１２７は、サーバ２１０４から第１の更新プログラム（個別暗号化プログラム）を受け取ると、受け取った第１の更新プログラムを第１の更新プログラム格納部２１２３へ格納する。第２の更新プログラム取得部２１２８は、サーバ２１０４から第２の更新プログラムを受け取ると、受け取った第２の更新プログラムを第２の更新プログラム格納部２１２４へ格納する。【０３２８】
確認情報個別化部２１４０は、第１及び第２の正当性確認情報を受け取ると、端末２１０１の端末ＩＤ２２００を取得する（ステップＳ２５３０）。具体的には、確認情報個別化部２１４０は、端末ＩＤ格納部２１２１から端末ＩＤ２２００を取得する。
確認情報個別化部２１４０は、取得した端末ＩＤ２２００を用いて、第１及び第２の正当性確認情報それぞれに対する第１及び第２の個別化確認情報を生成する（ステップＳ２５２５）。具体的には、確認情報個別化部２１４０は、第１の正当性確認情報と端末ＩＤ２２００とに対して、ＰＣＲ値拡張コマンドを施して、第１の個別化確認情報を生成する。確認情報個別化部２１４０は、第２の正当性確認情報と、端末ＩＤ２２００とにＰＣＲ値拡張コマンドを施して、第２の個別化確認情報を生成する。確認情報個別化部２１４０は、生成した第１及び第２の個別化確認情報を正当性確認情報格納部２１２２へ格納する。【０３２９】
カード２１０２は、個別暗号化プログラムを端末２１０１へ出力する（ステップＳ２５４０）。
端末２１０１は、個別暗号化プログラムをインストールする（ステップＳ２５４５）。
端末２１０１は、デバイス鍵取得要求と、第１のＩＤ付ＰＣＲ値をカード２１０２の正当性確認部２１２９へ出力する（ステップＳ２５５０）。正当性確認部２１２９は、端末２１０１からデバイス鍵取得要求と、第１のＩＤ付ＰＣＲ値とを受け取ると、端末２１０１の正当性を判断する（ステップＳ２５５５）。ここでは、カード２１０２の正当性確認部２１２９は、第１の個別化確認情報と、受け取った第１のＩＤ付ＰＣＲ値との比較を行う。【０３３０】
正当でないと判断する場合（ステップＳ２５５５における「ＮＧ」）、カード２１０２は、個別暗号化プログラムを端末２１０１へ出力する（ステップＳ２５６０）。端末２１０１は、個別暗号化プログラムを受け取ると（ステップＳ２５６５）、ステップＳ２５４５へ戻る。具体的には、正当性確認部２１２９は、ＮＧ情報を第１のプログラム出力部２１３０へ出力する。第１のプログラム出力部２１３０は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する個別暗号化プログラムを第１の更新プログラム格納部２１２３から取得し、取得した個別暗号化プログラムを端末２１０１の第１のプログラム更新部２１１４へ出力する。第１のプログラム更新部２１１４は、カード２１０２から個別暗号化プログラムを受け取ると、受け取った個別暗号化プログラムを、第１のプログラム格納部２１１１に格納されている個別暗号化プログラムに上書きして更新し、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。【０３３１】
正当であると判断する場合（ステップＳ２５５５における「ＯＫ」）、カード２１０２の秘密情報提供部２１２０は、１個の配布用暗号化デバイス鍵を端末２１０１へ出力する（ステップＳ２５７０）。具体的には、正当性確認部２１２９は、第１のＯＫ情報を秘密情報提供部２１２０へ出力する。秘密情報提供部２１２０は、正当性確認部２１２９から第１のＯＫ情報を受け取ると、秘密情報蓄積部２１３２からフラグの値が「０」である１個の配布用暗号化デバイス鍵を取得する。秘密情報提供部２１２０は、取得した１個の配布用暗号化デバイス鍵を端末２１０１へ出力する。【０３３２】
端末２１０１のデバイス鍵個別化部２１１６は、カード２１０２から１個の配布用暗号化デバイス鍵を受け取ると（ステップＳ２５７５）、受け取った配布用暗号化デバイス鍵を用いて個別暗号化デバイス鍵を生成し、生成した個別暗号化デバイス鍵を個別化デバイス鍵蓄積部２１１７に格納する（ステップＳ２５８０）。具体的には、デバイス鍵個別化部２１１６は、１個の配布用暗号化デバイス鍵を受け取ると、ＩＤ格納部２１１０から端末ＩＤ２２００を取得する。デバイス鍵個別化部２１１６は、取得した端末ＩＤを用いて、受け取った配布用暗号化デバイス鍵を暗号化して、個別暗号化デバイス鍵を生成し、生成した個別暗号化デバイス鍵を個別化デバイス鍵蓄積部２１１７に格納する。【０３３３】
カード２１０２は、第２の更新プログラムを端末２１０１へ出力する（ステップＳ２５８５）。
端末２１０１は、第２の更新プログラムをインストールし（ステップＳ２５９０）、その後、第１のプログラム格納部２１１１にて格納されている個別暗号化プログラムを消去する（ステップＳ２５９５）。【０３３４】
端末２１０１は、暗号化個別配送鍵取得要求と、第２のＩＤ付ＰＣＲ値をカード２１０２の正当性確認部２１２９へ出力する（ステップＳ２６００）。
正当性確認部２１２９は、端末２１０１から暗号化個別配送鍵取得要求と、第２のＩＤ付ＰＣＲ値とを受け取ると、端末２１０１の第１のプログラム格納部２１１１に第１の更新プログラム（個別暗号化プログラム）が消去されているか否かを判断する（ステップＳ２６０５）。【０３３５】
消去されていないと判断する場合には（ステップＳ２６０５における「ＮＯ」）、正当性確認部２１２９は、端末２１０１のオペレーティングシステムに第１の更新プログラム（個別暗号化プログラム）を消去するように依頼し（ステップＳ２６１０）、その後、ステップＳ２６０５に戻る。
消去されていると判断する場合には（ステップＳ２６０５における「ＹＥＳ」）、端末２１０１の正当性を判断する（ステップＳ２６１５）。ここでは、カード２１０２の正当性確認部２１２９は、第２の個別化確認情報と、受け取った第２のＩＤ付ＰＣＲ値との比較を行う。【０３３６】
正当でないと判断する場合（ステップＳ２６１５における「ＮＧ」）、カード２１０２は、第２の更新プログラムを端末２１０１へ出力する（ステップＳ２６２０）。端末２１０１は、第２の更新プログラムを受け取ると（ステップＳ２６２５）、ステップＳ２５９０へ戻る。具体的には、正当性確認部２１２９は、ＮＧ情報を第２のプログラム出力部２１３１へ出力する。第２のプログラム出力部２１３１は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する第２の更新プログラムを第２の更新プログラム格納部２１２４から取得し、取得した第２の更新プログラムを端末２１０１の第２のプログラム更新部２１１５へ出力する。第２のプログラム更新部２１１５は、カード２１０２から第２の更新プログラムを受け取ると、受け取った第２の更新プログラムを用いてコンテンツ鍵復号プログラムを更新し、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。【０３３７】
正当であると判断する場合（ステップＳ２６１５における「ＯＫ」）、カード２１０２の秘密情報提供部２１２０は、ステップＳ２５７０にて出力した配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を、端末２１０１へ出力する（ステップＳ２６３０）。具体的には、正当性確認部２１２９は、第２のＯＫ情報を秘密情報提供部２１２０へ出力する。秘密情報提供部２１２０は、正当性確認部２１２９から第２のＯＫ情報を受け取ると、秘密情報蓄積部２１３２からフラグの値が「１」であり、且つ端末２１０１の端末ＩＤ２２００と対応付けられた配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を取得し、取得した暗号化個別配送鍵を端末２１０１のデバイス鍵復号部２１１８へ出力する。【０３３８】
デバイス鍵復号部２１１８は、カード２１０２から、暗号化個別配送鍵を受け取ると（ステップＳ２６３５）、受け取った暗号化個別配送鍵を所定の格納領域（例えば、個別化デバイス鍵蓄積部２１１７）に格納する（ステップＳ２６４０）。
デバイス鍵復号部２１１８は、個別化デバイス鍵蓄積部２１１７に格納されている個別暗号化デバイス鍵からデバイス鍵を生成する（ステップＳ２６４５）。具体的には、デバイス鍵復号部２１１８は、受け取った暗号化個別配送鍵に対応する個別暗号化デバイス鍵を、個別化デバイス鍵蓄積部２１１７から取得する。デバイス鍵復号部２１１８は、ＩＤ格納部２１１０から端末ＩＤ２２００を取得し、取得した端末ＩＤ２２００を用いて、個別化デバイス鍵蓄積部２１１７から取得した個別暗号化デバイス鍵を復号して、配布用暗号化デバイス鍵を生成する。デバイス鍵復号部２１１８は、当該端末の端末共通鍵を取得し、取得した端末共通鍵を用いて、受け取った暗号化個別配送鍵を復号して、個別配送鍵を生成する。デバイス鍵個別化部２１１６は、生成した個別配送鍵を用いて、配布用暗号化デバイス鍵を復号して、デバイス鍵を生成する。【０３３９】
以下、各ステップが実行されるタイミングの一例を示す。
ステップＳ２５００からＳ２５３５までの動作は、カード２１０２がネットワーク接続端末２１０３に装着された場合に実行される。
ステップＳ２５４０からＳ２５４５までの動作、及びステップＳ２５８５からＳ２５９５までの動作は、サービスマンにより端末２１０１のプログラムのアップデートを行う場合に実行される。【０３４０】
ステップＳ２５５０からＳ２５８０までの動作、ステップＳ２５５５におけるＮＧ時のステップＳ２５４５の動作、ステップＳ２６００からＳ２６４５までの動作、ステップＳ２６１５におけるＮＧ時のステップＳ２５９０からＳ２５９５までの動作は、端末２１０１の利用者によりコンテンツの再生の要求があった場合に実行される。
（Ｄ−１−６）その他の変形例
なお、本発明を上記第４の変形例に基づいて説明してきたが、本発明は、上記第４の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。【０３４１】
（１）上記第４の実施の形態において、サーバ２１０４が、取得するデバイス鍵の個数（所定数）は２個以上としたが、これに限定されない。
サーバ２１０４が、取得するデバイス鍵の個数は１個以上であればよい。
（２）上記第４の実施の形態において、サーバ２１０４が、取得するデバイス鍵の個数は予め決められた個数（所定数）としたが、これに限定されない。【０３４２】
サーバ２１０４が、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を送信する際に、ユーザが指定してもよい。
この場合、ネットワーク接続端末２１０３は、ユーザから指定された取得個数を、サーバ２１０４へ送信する。サーバ２１０４は、ネットワーク接続端末２１０３から取得個数を受信すると、受信した取得個数分のデバイス鍵を取得する。【０３４３】
（３）上記第４の変形例において、端末２１０１は、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２１０１は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２１０１は、上記第４の変形例にて示すネットワーク接続端末２１０３が行う動作をも兼ね備えることで実現できる。【０３４４】
（４）上記第４の変形例において、デバイス鍵配布システム２１００は、図２６にて示すステップＳ２５４０からＳ２５４５、及びステップＳ２５８５からＳ２５９０により、サービスマンによる端末２１０１の個別暗号化プログラム及びコンテンツ鍵復号プログラムのアップデートを行うとしたが、これに限定されない。
デバイス鍵配布システム２０００ｂの動作において、ステップＳ２５４０からＳ２５４５、及びステップＳ２５８５からＳ２５９０を行わなくてもよい。【０３４５】
（５）上記第４の変形例において、秘密情報提供部２１２０は、過去に、端末へ出力した秘密情報を、再度出力しないように、秘密情報蓄積部２１３２にて格納されている複数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部２１２０は、出力した１以上の秘密情報からなるリストを生成し、生成したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管理してもよい。【０３４６】
または、秘密情報提供部２１２０は、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい。
（６）上記第４の実施の形態において、端末２１０１は、個別暗号化プログラムの利用後、個別暗号化プログラムを消去したが、これに限定されない。【０３４７】
端末２１０１は、個別暗号化プログラムを消去しなくてもよい。
この場合、端末２１０１は、カード２１０２による正当性確認時に正当でないと判断される場合、つまり不正な個別暗号化プログラムが格納されている場合に、新しい個別暗号化プログラム（正規の個別暗号化プログラム）を受け取る。この場合、カードは、個別暗号化プログラムを更新したことが確認された後でなくては配布用暗号化デバイス鍵を端末に出力しないので、不正な個別暗号化プログラムが配布暗号化デバイス鍵を漏洩することを防げる。【０３４８】
（７）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（Ｄ−１−７）まとめ
上記第４の変形例において、正規の端末であれば、デバイス鍵の個別暗号化も正しく実施することができるので、正当性確認後に、デバイス鍵（ここでは、配布用暗号化デバイス鍵）を出力することで、個別暗号化時の不正を防止することができる。【０３４９】
また、端末２１０１は、個別暗号化には専用にプログラム（個別暗号化プログラム）を用い、個別暗号化後に、使用した個別暗号化プログラムを消去するので、個別暗号化方法の漏洩を防止することができる。
また、カード２１０２は、端末２１０１内の個別暗号化プログラムが消去されていないと、暗号化個別配送鍵を、端末２１０１に出力しないようにしているので、個別暗号化プログラムの消去を強制することができる。【０３５０】
（Ｅ−１）その他の変形例
なお、本発明を上記実施の形態及び第１から第４の変形例に基づいて説明してきたが、本発明は、上記実施の形態及び第１から第４の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
（１）上記各変形例において、デバイス鍵はサーバにて予め生成されるとしたが、これに限定されない。【０３５１】
デバイス鍵はカードにて生成してもよい。
この場合、カードは、装着された端末に、生成したデバイス鍵を出力するとともに、出力先の端末を識別する端末ＩＤと出力したデバイス鍵とを対応付けて、所定の記憶領域に格納しておく。カードは、ネットワーク接続端末を介してサーバとデータの送受信を行う際に、格納しているデバイス鍵と対応する端末ＩＤとをサーバへ送信する。【０３５２】
サーバは、デバイス鍵と対応する端末ＩＤとを受け取ると、受け取ったデバイス鍵と端末ＩＤとを管理する。
（２）上記各実施の形態において、端末の正当性を確認するために、カードは、実際に端末にロードされたプログラムのＰＣＲ値と、正規のＰＣＲ値との比較による認証（Ａｔｔｅｓｔａｔｉｏｎによる認証）を行ったが、これに限定されない。【０３５３】
カードは、プログラムのバージョンチェックによる端末の正当性を確認してもよい。
または、カードは、プログラムに固有の鍵（ファームフェアに固有の鍵）を取得して、端末の正当性を確認してもよい。
または、カードは、チャレンジレスポンス認証により端末の正当性を確認してもよい。
（３）上記各実施の形態において、カードは、サーバからネットワークを介して、更新プログラムを受け取ったが、これに限定されない。【０３５４】
カードは、サーバから放送波にて送信された更新プログラムを、カードを装着することができ、且つ放送波を受信することのできる端末（放送受信端末）を介して受け取ってもよい。
または、サーバは、放送波にて、プログラムの更新が必要である旨の情報（更新情報）のみを送信してもよい。この場合、カードは、放送受信端末を介して、更新情報を受け取り、放送受信端末を介してユーザへ更新情報を受け取った旨のメッセージを出力（表示）する。その後、カードは、ユーザの操作にて、サーバから、ネットワーク及びネットワーク接続端末を介して、更新プログラムを受け取る。【０３５５】
また、ネットワークを介さずに、サーバへ直接カードを差し込んで更新プログラムを受け取るとしてもよい。サーバとしてキオスク端末を用いる場合などが考えられる。
（４）上記各変形例において、カードによる端末の正当性の確認にて端末が正当であると判断された場合にデバイス鍵を出力したが、これに限定されない。
端末が正当であると判断された場合に、カードから端末に出力するデータは、他のデータであってもよい。【０３５６】
例えば、音楽データ、画像データ、他の鍵（ワーク鍵、コンテンツ鍵、鍵のチケット）、新しい機能を有するプログラム（新プログラム）などである。つまり、端末が正当であると判断された場合に、カードから端末に出力するデータは、著作権が保護されるデータ（上記の音楽データや画像データに相当）や、機密性の高いデータ（上記の他の鍵や新プログラムに相当）であればよい。【０３５７】
このとき、カードは、サーバからネットワーク接続端末を介して、デバイス鍵の代わりに、著作権が保護されるデータや、機密性の高いデータを受け取ることとなる。
（５）上記第２、第３及び第４の変形例において、各デバイス鍵配布システムは、「Ａ−１−６（その他の変形例）」の（６−１）、若しくは（６−２）と同様に、第２の端末ＩＤを用いた構成であってもよい。【０３５８】
（６）上記各変形例にて示すシステムは、端末に固有のデバイス鍵を配布し、端末に対するデバイス鍵の更新（リニューアル）を行ったが、これに限定されない。
システムは、端末に対する他の情報の更新（リニューアル）を行ってもよい。
ここで、端末測定部は上述したように、上記実施の形態におけるセキュアモジュールに相当しているので、端末測定部は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）で規格化されているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と同様の機能を有している。【０３５９】
他の情報の更新（リニューアル）の一例として、ＴＰＭに含まれるプラットフォーム（Ｐｌａｔｆｏｒｍ）証明書の更新（リニューアル）について、説明する。
上記第１の変形例における端末共有鍵を、ＴＰＭにて含まれるエンドースメントキー（ＥＫ秘密鍵）に変更し、デバイス鍵をプラットフォーム証明書と変更することで、端末のＴＰＭ（端末測定部）へ送り込むことができる。【０３６０】
もちろんプラットフォーム証明書の更新に限らず、ＥＫ秘密鍵を用いて他の情報を更新してもよい。
（７）上記各変形例にて示すシステムは、カードを具備する構成としたが、これに限定されない。
カードの代わりに、当該カードと同様の構成要素を有する装置（以下、認証装置）であってもよい。【０３６１】
ここで、認証装置は、上記にて示すサーバに組み込まれてもよいし、サーバとは異なる装置であってもよい。
この場合、例えば、端末は、ネットワーク接続端末と専用のケーブルにて接続され、更新端末からネットワーク接続端末を介して、更新プログラム、デバイス鍵（秘密情報）を受け取る。【０３６２】
（８）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。【０３６３】
（９）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。【０３６４】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。【０３６５】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（１０）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。【０３６６】
（１１）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
（１２）また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。【０３６７】
（１３）また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
（１４）また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。【０３６８】
（１５）また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１６）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
＜その他の実施の形態＞
以下に、本発明に関する他の実施の形態について図面を用いて説明する。ここでは、特にＴＣＧ規格に準拠した機器認証に着目した実施形態について説明する。
１．実施の形態１
１．１  概要
実施の形態１に係る検証システム３０００は、図２８に示すように、インターネット３００５に相互に接続された端末装置（証明装置）３００１、ＣＡサーバ装置（検証装置）３００２、ＴＰＭサーバ装置３００３により構成される。【０３６９】
端末装置３００１はＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）を搭載しており、初起動時又は初期化直後に、ＣＡサーバ装置から、正当な構成（ハードウェア及びソフトウェア）を有する機器であることを証明するＡＩＫ（Ａｔｔｅｓｔａｔｉｏｎ  Ｉｄｅｎｔｉｔｙ  Ｋｅｙ）クレデンシャル（ＡＩＫ証明書）を取得する。
ＴＰＭは、端末装置３００１の有するプログラムの完全性を示すインテグリティ値（後述する）に、拡張処理を施して記録する機能を有するハードウェアモジュールである。【０３７０】
また、端末装置３００１が実際に動作する際にも、所定のタイミングで、ＣＡサーバ装置３００２が検証装置となって、端末装置３００１の正当性を検証（ＴＣＧ規格におけるこのような検証をＡｔｔｅｓｔａｔｉｏｎと呼ぶ）する。具体的には、プログラムに不正な改竄が加えられていないか、正常に動作しているかなどを検証する。なお、本実施の形態では、端末装置３００１にＡＩＫクレデンシャルを発行するＣＡサーバ装置３００２が、Ａｔｔｅｓｔａｔｉｏｎにおける検証装置となっているが、ＣＡサーバ装置３００２とは、個別の装置が、端末装置３００１の動作時におけるＡｔｔｅｓｔａｔｉｏｎの検証装置の役割を果たす構成であっても良い。
１．２  端末装置３００１の構成
（１）ハードウェア構成
ここで、端末装置３００１のハードウェア構成について図２９を用いて説明する。【０３７１】
端末装置３００１は、内部バス３１６０により、送受信部３１０３、ＣＰＵ３１４１、ＲＡＭ３１４５、ハードディスクユニット３１４２、セキュアＲＯＭ３１４３及びＴＰＭ３１１７を接続して構成される。
（１−１）送受信部３１０３
送受信部３１０３は、インターネット３００５に接続可能なインタフェースを備えており、インターネット３００５に接続された外部機器との間で情報の送受信を行う。【０３７２】
（１−２）セキュアＲＯＭ３１４３
セキュアＲＯＭ３１４３には、機器固有の情報（機器ＩＤ、機種番号など）、及び、ＢＩＯＳ３１０９、ブートローダー３１６２といった端末装置３００１を起動する一連のプログラム群を記憶している。
ＢＩＯＳ３１０９は、コンピュータに接続されたディスクドライブ、キーボード、ビデオカードなどの周辺機器を制御するプログラム群であって、起動時に最初に実行されるプログラムである。ＢＩＯＳ３１０９は、複数のブロックから構成されるが、図２９に示すように、電源投入直後に実行されるブートブロック３１６５にＣＲＴＭ３１６３（後述する）が記述されている。【０３７３】
ブートローダー３１６２は、ＯＳのカーネルを呼び出す手順を含む。
これらのプログラム及び、ハードディスクユニット３１４２に、記憶されている各プログラムには、ＲＴＭ（Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  Ｍｅａｓｕｒｅｍｅｎｔｓ）３１６１が含まれている。これは、各プログラムが呼び出すプログラムのインテグリティ値を計測する機能を実現するコードである。インテグリティ値とは、そのプログラムの完全性を示す値であって、ここでは一例として、呼び出されるプログラムコードのハッシュ値をインテグリティ値とする。ハッシュ関数にはＳＨＡ−１を用いる。これは、一例であって、他の一方向関数を用いても良いし、呼び出すプログラムのビット数を計数するなど、他の方法でインテグリティ値を計測しても良い。【０３７４】
特に、ＢＩＯＳ３１０９は、最初に実行されるプログラムであり、ＢＩＯＳ３１０９に含まれるＲＴＭコード（図２９のＣＲＴＭ１３６３）は、他のプログラムに含まれるＲＴＭコードとは異なり、ＢＩＯＳ３１０９自体のインテグリティ値を計測する手順、及び、ＢＩＯＳ３１０９により呼び出されるプログラムのインテグリティ値を計測する手順を含む。【０３７５】
ＢＩＯＳ３１０９は、書き換え不能なセキュアＲＯＭ３１４３に記録されており、ＢＩＯＳ３１０のブートブロック３１５６に含まれるＲＴＭコードによって計測されたＢＩＯＳ３１０９のインテグリティ値の信頼性を根拠として、ＰＣＲ値（後述する）の、信頼性が保証される。そのため、ＢＩＯＳ３１０９に含まれるＲＴＭコードは、他のプログラムのＲＴＭコードと区別してＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍａｓｕｒｅｍｅｎｔ）と呼ばれる。【０３７６】
（１−３）ＣＰＵ３１４１
ＣＰＵ３１４１は、セキュアＲＯＭ３１４３、ハードディスクユニット３１４２、ＲＡＭ３１４５に記憶されている各種のプログラムを実行することで、下記の各種の機能部を実現する。
（１−４）ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３１４５
ＲＡＭ３１４５は、揮発性の記憶媒体であって、ＣＰＵ３１４１により実行されるプログラムを、ハードディスクユニット３１４２又はセキュアＲＯＭ３１４３からロードし、記憶している。【０３７７】
（１−５）ハードディスクユニット３１４２
ハードディスクユニット３１４２は、不揮発性で、書き込み及び消去可能な記録媒体である。ハードディスクユニット３１４２は、一例として、図２９に示すようなＯＳ及び検証プログラム等のアプリケーションを記憶している。
図２９には図示していないが、ハードディスクユニット３１４２は、プログラムの他にもＣＰＵ３１４１により用いられる各種のデータ、ユーザデータなどを記憶している。【０３７８】
（１−６）ＴＰＭ３１１７
ＴＰＭ３１１７は、インタフェース３１４４、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｌａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）３１４６、不揮発メモリ３１１０、実行エンジン３１４８、乱数生成器３１５１、ＳＨＡ−１演算器３１５２、ＲＳＡ演算器３１５３、鍵生成器３１５４及びプログラムコード格納部３１５６を１チップ上に形成したものである。【０３７９】
ＰＣＲは、揮発性のメモリで構成され、図３０は、ＰＣＲ３１４６内部を示している。ＰＣＲ３１４６は、複数の記憶領域３１７１、３１７２、３１７３・・・を含んでいる。説明の便宜上、記憶領域３１７１、３１７２、３１７３・・・に記憶されるＰＣＲ値を、それぞれ、ＰＣＲ０、ＰＣＲ１、ＰＣＲ２・・・と記載する。各記憶領域は、ハードディスクユニット３１４２又はセキュアＲＯＭ３１４３に記憶されている各プログラムと一意に対応している。例えば、記憶領域３１７１は、ＢＩＯＳと対応している。【０３８０】
不揮発メモリ３１１０は、各種の鍵が記憶されている。これらの鍵については、機能部の説明において説明する。不揮発メモリ３１１０は、各種の鍵を、階層構造を形成して記憶しており、下位の鍵を上位の鍵を用いて暗号化して保持している。また、階層構造のルート鍵となるＳＲＫ（ＳｔｏｒａｇｅＲｏｏｔＫｅｙ）を記憶している。
実行エンジン３１４８は、プログラムコード格納部３１５６に記憶されているプログラムに従って動作し、各演算器を制御することで、各種の機能を実現する。【０３８１】
乱数生成器３１５１は、乱数（ノンス）を生成して出力する。
ＳＨＡ−１演算器３１５２は、入力されたデータをハッシュ関数に代入してハッシュ値を算出する。ここでは、一例としてＳＨＡ−１を用いるが、他の一方向関数でも良い。
ＲＳＡ演算器３１５３は、入力されたデータ及び鍵を用いてＲＳＡ暗号方式に従った暗号化演算又は復号演算を行う。【０３８２】
鍵生成器３１５４は、ＲＳＡ暗号に用いられる鍵ペアを生成する回路である。
プログラムコード格納部３１５６は、一例として、図３１に示すようにストレージアクセスプログラム３１５７、ログ保存プログラム３１５８、ＰＣＲ値算出プログラム３１５９・・・など各種のプログラムを記憶している。これらのプログラムは、実行エンジン３１４８により実行可能な機械語形式で述されている。また、実行エンジン３１４８が各プログラムを実行する際に必要なデータ、演算途中のデータなど、各種のデータを一時的に記憶する。【０３８３】
上記のストレージアクセスプログラム３１５７は、ＴＰＭ３１１７外の記憶媒体（ここでは、ＲＡＭ３１４５、ハードディスクユニット３１４２、セキュアＲＯＭ）にアクセスする手順を含むプログラムである。
ログ保存プログラム３１５８は、ＰＣＲ３１４６の記憶しているＰＣＲ値の何れかの値が変わるたびに、ＰＣＲ３１４６の記憶しているＰＣＲ値群を取得し、ストレージアクセスプログラム３１５７により、取得したＰＣＲ値群をハードディスクユニット３１４２に蓄積し、ログ情報を生成する手順を含むプログラムである。【０３８４】
ＰＣＲ値算出プログラム３１５９は、ＳＨＡ−１演算器３１５２を用いて、メモリ３１０８（後述）に新たにロードされるプログラムに対応するＰＣＲ値を算出し、算出したＰＣＲ値を、ＰＣＲ３１４６内の適切な領域に書き込む手順を含むプログラムである。
（１−７）入力部３１６６及び表示部３１６７
入力部３１６６は、キーボード、マウスなどの入力機器と接続されており、これらの機器の利用者の操作を受け付け、受け付けた操作を示す操作情報をＣＰＵ３１４１へ通知する。【０３８５】
表示部３１６７は、モニタと接続されており、ＣＰＵ３１４１から出力される各種の画像をモニタへ出力する。
（２）機能的構成
図３２は、端末装置３００１及びＣＡサーバ装置の機能的構成を示した機能ブロック図である。図中の矢印は、端末装置３００１のＡｔｔｅｓｔａｔｉｏｎにおけるデータフローを示している。【０３８６】
図３２に示すように、端末装置３００１は、ＩＤ記憶部３１０１、制御部３１０２、送受信部３１０３、測定値通知部３１０４、プログラム記憶部３１０６、ＲＴＭ３１０７、メモリ３１０８、ＢＩＯＳ３１０９、鍵記憶部３１２０、ＰＣＲ値記憶部３１１１、ログ取得部３１１２、ＰＣＲ値算出部３１１３、証明書記憶部３１１４及びログ記憶部３１１６から構成される。ここで、測定値通知部３１０４、ＴＰＭ制御部３１１８、鍵記憶部３１２０、ＰＣＲ値記憶部３１１１、ログ取得部３１１２及びＰＣＲ値算出部３１１３がＴＰＭ上に形成される回路により実現される。【０３８７】
上述したハードウェアが適切に動作することにより、ＩＤ記憶部３１０１、制御部３１０２、送受信部３１０３、測定値通知部３１０４、プログラム記憶部３１０６、ＲＴＭ３１０７、メモリ３１０８、ＢＩＯＳ３１０９、鍵記憶部３１２０、ＴＰＭ制御部３１１８、ＰＣＲ値記憶部３１１１、ログ取得部３１１２、ＰＣＲ値算出部３１１３、証明書記憶部３１１４、ログ記憶部３１１６及び検証部３１１９は実現される。【０３８８】
以下に、各機能部について説明する。
（２−１）ＩＤ記憶部３１０１
ＩＤ記憶部３１０１は、セキュアＲＯＭ３１４３により構成されており、当該端末装置３００１を一意に識別する機器ＩＤを記憶している。
（２−２）制御部３１０２
制御部３１０２は、メモリ３１０８にロードされている各種のプログラムに従って、各構成要素の動作を制御する。このとき制御部３１０２は、具体的には図示していないが、各機能部へ制御信号を出力している。また、利用者によるデータ及び指示の入力を受け付け、受け付けた指示に従って各部を制御する。【０３８９】
また、制御部３１０２は、ＡＩＫクレデンシャル（後述する）を取得済みであるか否かを記憶しており、未取得の状態で端末装置３００１が起動された場合、ＴＰＭ制御部３１１８へ、ＡＬＫクレデンシャルが未取得であることを通知する。ここで、起動とは、ＯＳがメモリ３１０８にロードされ実行可能な状態であるとする。
続いて、制御部３１０２は、ＴＰＭ制御部３１１８から、新たに生成されたＡＩＫ公開鍵を受け取る。ＡＩＫ公開鍵を受け取ると、ＴＰＭ３１１７内において新たに生成されたＡＩＫ秘密鍵とＡＩＫ公開鍵（以下、必要に応じてＡＩＫ鍵ペアと呼ぶ）に割り当てるＩＤを生成する。【０３９０】
次に、制御部３１０２は、証明書記憶部３１１４から、ＥＫクレデンシャル３１２１とＰＦ（プラットフォーム）クレデンシャル３１２２（後述する）とを読み出す。続いて、送受信部３１０３を介して、生成されたＩＤ、ＡＩＫ公開鍵、読み出したＥＫクレデンシャル、ＰＦクレデンシャルを、ＣＡサーバ装置３００２に送信し、ＡＩＫクレデンシャルの発行を要求する。【０３９１】
要求が認められると、制御部３１０２は、送受信部３１０３を介して暗号化ＡＩＫクレデンシャルを受信する。暗号化ＡＩＫクレデンシャルは、ＥＫ公開鍵を用いてＡＩＫクレデンシャルを暗号化したものである。制御部３１０２は、ＥＫ秘密鍵を用いて受信した暗号化ＡＩＫクレデンシャルを復号し、ＡＩＫクレデンシャルを生成する。制御部３１０２は、生成したＡＩＫクレデンシャルを証明書記憶部３１１４に書き込む。図３３は、既にＡＩＫクレデンシャル３１２３取得後の証明書記憶部３１１４を示している。【０３９２】
なお、制御部３１０２自身がＥＫ秘密鍵を読み出し、暗号化ＡＩＫクレデンシャルの復号を行う代わりに、ＴＰＭ３１１７内ＴＰＭ制御部へ、暗号化ＡＩＫクレデンシャルを出力し、復号を依頼してもよい。このようにすれば、ＥＫ秘密鍵が、ＴＰＭチップ外へ出力されることがなくなり、より安全性が高まる。
ＡＩＫクレデンシャルを取得済みの状態で、端末装置３００１が起動された場合、自機が起動したことを示す起動通知を、送受信部３１０３を介して、ＣＡサーバ装置３００２へ送信する。続いて、ＣＡサーバ装置３００２から、動作許可通知又は動作禁止通知を受信する。動作許可通知を受信した場合は、そのまま、各構成要素の動作の制御を続行する。動作禁止通知を受信した場合は、当該端末装置３００１が不正な構成であるか、不正動作をしている旨を通知する警告画面をモニタに表示し、端末装置３００１の動作を停止させる。【０３９３】
制御部３１０２は、具体的にはＣＰＵ３１４１が、メモリ３１０８、セキュアＲＯＭ３１４３、ハードディスクユニット３１４２に記憶されているコンピュータプログラムに従って動作することで、その機能を達成する。
（２−３）送受信部３１０３
送受信部３１０３は、インターネット３００５に接続された外部機器と、端末装置３００１内の各機能部との間で各種の情報の送受信を行う。ここで、前記外部機器には、ＣＡサーバ装置３００２が該当する。実際に、機器間で通信を行う際には、使い捨ての鍵（セッション鍵）を生成し、生成したセッション鍵でデータを暗号化して、安全に送受信を行うが、これは、公知の技術により実現可能であり、本発明には直接関係が無いので、以下の説明において、通信時におけるセッション鍵による暗号化、復号の処理についての説明は省略する。【０３９４】
（２−４）プログラム記憶部３１０６
プログラム記憶部３１０６は、具体的にはハードディスクユニット３１４２により構成され、オペレーティングシステム（以下ＯＳ）を初めとする各種のプログラムを記憶している。これらのプログラムが、メモリ３１０８にロードされ、実行されることで、いくつかの機能部は実現される。【０３９５】
（２−５）メモリ３１０８
メモリ３１０８は、主にＲＡＭ３１４５から構成され、ハードディスクユニット３１４２の一部、セキュアＲＯＭ３１４３を含む。メモリ３１０８は、ＣＰＵ３１４１の実行する各種のプログラムを、プログラム記憶部３１０６などからロードし、実行可能な状態で記憶している。【０３９６】
（２−６）ＢＩＯＳ３１０９
ＢＩＯＳ３１０９は、ＩＰＬの一種であり、具体的には、セキュアＲＯＭ３１４３内に記憶されているプログラムである。端末装置３００１が、起動されると、最初にメモリ３１０８にロードされ実行される。
（２−７）ＲＴＭ３１０７
ＲＴＭ３１０７は、メモリ３１０８に新たなプログラムがロードされる前、そのプログラムのインテグリティ値を計測し、計測したインテグリティ値とロードされるプログラムを示す識別子をＰＣＲ値算出部３１１３へ出力する。ここでは、計測対象のプログラムコードのハッシュ値をインテグリティ値とする。ハッシュ値関数には、ＳＨＡ−１を用いる。【０３９７】
ＲＴＭ３１０７は、ＢＩＯＳ３１０９に含まれるＣＲＴＭ３１６３、及びメモリ３１０８にロードされている各プログラム内のＲＴＭコードをＣＰＵ３１４１が実行することで実現される機能部である。また、最初にロード実行されるプログラムであるＢＩＯＳ３１０９に関しては、ブートブロック３１５６に含まれるＣＲＴＭ３１６３がＢＩＯＳ３１０９自身のインテグリティ値を計測して出力する。【０３９８】
なお、ここでは、各プログラムにＲＴＭコードが含まれているとしたが、ＴＣＧ規格では、これは必須ではなく、ＣＰＵ３１４１が、ＢＩＯＳ３１０９に埋め込まれている、ＣＲＴＭ３１６３を実行することで、新たにメモリ３１０８にロードされるプログラムのインテグリティ値を計測する構成であっても良い。
（２−８）証明書記憶部３１１４
証明書記憶部３１１４は、具体的にはハードディスクユニット３１４２により構成され、一例として、図３３に示すようにＥＫ（Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ）クレデンシャル（証明書）３１２１、ＰＦクレデンシャル３１２２、ＡＩＫ（Ａｔｔｅｓｔａｔｉｏｎ  Ｉｄｅｎｔｉｔｙ  Ｋｅｙ）クレデンシャル３１２３を記憶している。【０３９９】
ＥＫクレデンシャル３１２１は、ＴＰＭ製造者又は端末装置製造者によって発行される証明書であって、ＥＫ公開鍵の正当性を証明する。ＥＫ公開鍵と後述するＥＫ秘密鍵３１２６は、ＲＳＡ暗号に対応する鍵ペアである。ＥＫ秘密鍵３１２６及び前記ＥＫ公開鍵は、ＴＰＭチップに対応する鍵ペアであって、ＥＫクレデンシャル３１２１は、ＴＰＭ製造者又は端末装置製造者によって、端末装置３００１の製造過程おいて生成され、証明書記憶部３１１４に書き込まれる。【０４００】
ＰＦクレデンシャル３１２２は、プラットフォーム（例えば、端末装置３００１自体、端末装置３００１内のＴＰＭチップを搭載した部品）の構成及び製造者を明確にし、プラットフォームの特性を明らかにする属性証明書である。また、プラットフォームが正当なＴＰＭを搭載していることを証明するものである。具体的には、プラットフォームを端末装置３００１自体とすると、端末装置３００１の製造業者を示す識別情報、搭載しているＴＰＭ及びＣＰＵの識別番号、ＯＳの種類、ソフトウェア構成を示す情報などを含む。また、プラットフォームをマザーボードとすると、マザーボードの製造業者を示す識別情報、マザーボードに搭載されているＴＰＭ及びＣＰＵの機種番号、ＯＳの種類などを含む。ＰＦクレデンシャル３１２２は、プラットフォーム製造者により発行され、端末装置３００１の製造過程において、証明書記憶部３１１４に書き込まれる。【０４０１】
各クレデンシャルは、一例としてＸ．５０９形式で記述され、クレデンシャルを一意に示す識別番号、発行者名、有効期限、発行者（発行装置）の秘密鍵（以下、サーバ秘密鍵）を用いて生成された書名データ、前記署名データの生成に用いられたアルゴリズムを示す情報などを含んでいる。
なお、ここでは、証明書記憶部３１１４はハードディスクユニット３１４２により構成されるとしているが、ＴＰＭ３１１７内に実装されても良い。【０４０２】
（２−９）ログ記憶部３１１６
ログ記憶部３１１６は、具体的にはハードディスクユニット３１４２により構成される。ログ記憶部３１１６は、端末装置３００１が起動してから現在までの、ＰＣＲ値群の履歴を記憶している。以下、この履歴をログ情報と呼ぶ。ログ情報は、少なくとも各ＰＣＲ値と対応するプログラムを示す識別情報と各ＰＣＲ値の履歴を含むが、他にも、プログラムのバージョン情報、プログラムの挙動を示す情報を含んでも良い。なお、ＴＣＧ規格では、このログ情報をＳＭＬ（Ｓｔｏｒｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｌｏｇ）と呼ぶ。以下の説明及び図面において、必要に応じてログ情報をＳＭＬと略して記載する。【０４０３】
なお、ここでは、ログ記憶部３１１６は、ハードディスクユニット３１４２により構成されるとしているが、ＴＰＭ３１１７内に実装されても良い。  
（２−１０）鍵記憶部３１２０
鍵記憶部３１２０は、一例として、図３４に示すようにＥＫ秘密鍵３１２６、ＡＩＫ秘密鍵３１２７、ＡＩＫ公開鍵３１２８、ＳＲＫ３１２９・・・を記憶している。ハードウェア構成の説明において述べたように、これらの鍵は、ＳＲＫ３１２９をルート鍵とする階層構造を形成して記憶されているが、ここでは、説明の便宜上、前述の階層構造に関する説明は省略する。【０４０４】
ＥＫ秘密鍵３１２６は、ＥＫクレデンシャル３１２１に含まれるＥＫ公開鍵と対になる秘密鍵であって、ＲＳＡ暗号に用いられる鍵ペアの一方に当たる。ＥＫ秘密鍵３１２６及び前記ＥＫ公開鍵は、ＴＰＭチップに一意に対応する鍵であり、ＥＫ秘密鍵３１２６及びＥＫクレデンシャル３１２１は、ＴＰＭ製造者又は端末装置３００１の製造者によって、出荷前に書き込まれる。【０４０５】
ＡＩＫ秘密鍵３１２７及びＡＩＫ公開鍵３１２８は、当該端末装置３００１の初起動時及び初期化直後の起動時に、ＴＰＭ３１１７内の鍵生成器３１５４により生成された鍵ペアであって、ＲＳＡ暗号に対応している。ＡＩＫ公開鍵３１２８は、ＡＩＫクレデンシャル３１２３に含まれる公開鍵と同一であるので、鍵記憶部３１２０に必ずしも書き込まれている必要はない。また、ＡＩＫ鍵ペアの取得のタイミングは、初起動時及び初期化直後に限定されるものではなく、製造過程において、書き込まれるとしてもよい。【０４０６】
ＳＲＫ３１２９については、既に述べた通りであるので、説明を省略する。
ここでは、初起動時にＡＩＫ鍵ペアが生成され、ＡＩＫクレデンシャル３１２３の取得後の状態の鍵記憶部３１２０について説明した。
（２−１１）ＰＣＲ値記憶部３１１１
ＰＣＲ値記憶部３１１１は、ＰＣＲ３１４６がその機能を担っており、ＰＣＲ０、ＰＣＲ１、ＰＣＲ２・・・を記憶している。【０４０７】
各ＰＣＲ値は、それぞれ、ＢＩＯＳ３１０９、プログラム記憶部３１０６に記憶されている各プログラムと対応している。つまり、図３０の各記憶領域は、それぞれ、異なるプログラムと対応しており、具体的には、記憶領域３１７１、３１７２、３１７３・・・は、それぞれ、起動される順に、ＢＩＯＳ３１０９、ブートローダー、ＯＳ・・・と対応している。従って、ＰＣＲ０は、ＢＩＯＳ３１０９と対応しており、ＰＣＲ１は、ブートローダーと対応しており、ＰＣＲ２は、ＯＳと対応している。【０４０８】
なお、上述の各ＰＣＲ値とプログラムとの対応は、一例であって、これに限定されるものではない。
（２−１２）ＴＰＭ制御部３１１８
ＴＰＭ制御部３１１８は、ＴＰＭ３１１７内の各機能部の動作を制御する。図示していないが、ＴＰＭ制御部３１１８は、ＴＰＭ内外の各部へ制御信号を出力している。【０４０９】
具体的には、送受信部３１０３を介して、ＣＡサーバ装置３００２から、乱数とＡｔｔｅｓｔａｔｉｏｎ（構成証明）要求を受信する。Ａｔｔｅｓｔａｔｉｏｎ要求を受信すると、受信した乱数を測定値通知部３１０４（後述）へ出力する。次に、ログ記憶部３１１６からログ情報を読み出し、証明書記憶部３１１４からＡＩＫクレデンシャル３１２３を読み出す。続いて、測定値通知部３１０４により生成された署名データと、読み出したＡＩＫクレデンシャル３１２３とログ情報とを、送受信部３１０３を介して、ＣＡサーバ装置３００２へ送信する。【０４１０】
また、ＴＰＭ制御部３１１８は、端末装置３００１の初起動時又は初期化直後の起動時に、制御部３１０２からＡＩＫクレデンシャルが未取得である旨を通知される。この通知を受けると、ＴＰＭ制御部３１１８は、ＡＩＫ鍵ペアを生成し、生成したＡＩＫ鍵ペアを、鍵記憶部３１２０に書き込む。続いて、生成されたＡＩＫ公開鍵を制御部３１０２へ出力する。【０４１１】
ＴＰＭ制御部３１１８は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
（２−１３）ＰＣＲ値算出部３１１３
ＰＣＲ値算出部３１１３は、ＲＴＭ３１０７から、新たにメモリ３１０８にロードされるプログラムの識別子とインテグリティ値（ハッシュ値）とを受け取る。【０４１２】
これらを受け取ると、ＰＣＲ値算出部３１１３は、ＰＣＲ値記憶部３１１１において、受け取った識別子と対応するＰＣＲ値が格納される領域の直前領域に記憶されているＰＣＲ値を読み出す。次に、ＰＣＲ値算出部３１１３は、読み出したＰＣＲ値と受け取ったインテグリティ値を結合してハッシュ関数に代入する。算出されたハッシュ値をＰＣＲ値として、ＰＣＲ値記憶部３１１１内において、受け取った識別子と対応する領域に書き込む。【０４１３】
ただし、ＢＩＯＳ３１０９と対応するＰＣＲ０を算出する場合、記憶領域３１７１が先頭の記憶領域であるので、受け取ったインテグリティ値をそのままハッシュ関数に代入する。若しくは、予め決められた初期値とＣＲＴＭ３１６３のインテグリティ値を結合した値をハッシュ関数に代入し、ハッシュ値を算出しても良い。
ＴＣＧ規格において、計測されたインテグリティ値にこのような演算を施してＰＣＲ値を算出することを、拡張処理という。【０４１４】
以下に、具体例を挙げて説明する。
ＢＩＯＳ、ブートローダー、ＯＳは、それぞれ、ＰＣＲ０、ＰＣＲ１、ＰＣＲ２と対応している。各プログラムは、ＢＩＯＳ、ブートローダー、ＯＳ、デバイスドライバ・・・の順にメモリ３１０８にロードされ実行される。ＯＳをメモリ３１０８にロードするとき、ＰＣＲ値算出部３１１３は、ＲＴＭ３１０７から、ＯＳを示す識別子とＯＳから計測されたインテグリティ値を受け取る。これらを受け取ると、ＰＣＲ値算出部３１１３は、受け取った識別子を基に、ＰＣＲ１を読み出し、読み出したＰＣＲ１と受け取ったインテグリティ値とを結合してハッシュ関数に代入する（拡張処理）。次に、ＰＣＲ値算出部３１１３は、算出されたハッシュ値（ＰＣＲ２）を所定の記憶領域３１７３に書き込む。【０４１５】
なお、端末装置３００１が複数のアプリケーションを備えており、各アプリケーションのロードの順序が決まっておらず、アプリケーションが、ロードされる順序は、利用者の操作によって決まる場合が考えられる。このような場合、一例として、ＯＳと対応するＰＣＲ３を用いて、ロードされるアプリケーションから計測されたインテグリティ値を拡張し、各アプリケーションに対応するＰＣＲ値を算出する。【０４１６】
なお、ＰＣＲ値算出部３１１３は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
（２−１４）ログ取得部３１１２
ログ取得部３１１２は、ＰＣＲ値記憶部３１１１の記憶しているＰＣＲ値群を監視しており、何れかのＰＣＲ値が変化すると、ＰＣＲ値記憶部３１１１からＰＣＲ値群を読み出し、読み出したＰＣＲ値群をログ記憶部３１１６へ書き込む。また、メモリ３１０８の内容を監視し、プログラムの動作状態を示す情報を生成してログ記憶部３１１６に書き込む。【０４１７】
ログ取得部３１１２は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
（２−１５）測定値通知部３１０４
測定値通知部３１０４は、インターネット３００５及び送受信部３１０３を介して、ＣＡサーバ装置３００２から、乱数（ノンス）を受信する。【０４１８】
乱数を受信すると、測定値通知部３１０４は、鍵記憶部３１２０からＡＩＫ秘密鍵を読み出し、ＰＣＲ値記憶部３１１１からＰＣＲ値群を読み出す。次に、読み出したＡＩＫ秘密鍵を用いて、受信した乱数とＰＣＲ値群に署名生成アルゴリズムを施して署名データを生成する。ここでは、一例として署名生成アルゴリズムとしてＲＳＡ暗号を利用するが、他のアルゴリズムを用いても良い。【０４１９】
次に、ＴＰＭ制御部３１１８の制御に従って、生成した署名データを、送受信部３１０３を介して、ＣＡサーバ装置３００２へ送信する。
測定値通知部３１０４は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。【０４２０】
（２−１６）検証部３１１９
検証部３１１９は、端末装置３００１が、検証装置となって他の機器との間でＡｔｔｅｓｔａｔｉｏｎ処理を行う場合に、前記他の機器の正当性を検証する機能部である。具体的な構成は、ＣＡサーバ装置３００２内の検証部３０１３（後述する）同様であるので、ここでは詳細な説明は省略する。なお、検証部３０１３内は乱数生成部３０１２を備えているが、検証部３１１９は、内部に乱数生成部を備えていても良いし、乱数生成をＴＰＭチップに依頼する構成でも良い。また、検証部３０１３は、検証データ記憶部３０１８の記憶している各種の情報を用いた検証を行っているので、検証部３１１９も同様の情報（検証データ）が必要である。ここで、この情報は、図３２の機能ブロック図には示されていないが、ハードディスクユニット３１４２に同様の検証データが記憶されているとする。
１．３  ＣＡサーバ装置３００２の構成
ＣＡサーバ装置３００２は、図２８に示すように、公正な第三者機関であるプライバシーＣＡの保持する装置である。【０４２１】
ＣＡサーバ装置３００２は、図３２に示すように、送受信部３０１５、制御部３０１１、検証部３０１３、検証データ記憶部３０１８から構成される。さらに、検証部３０１３は、乱数生成部３０１２、証明書検証部３０１４、署名検証部３０１６、ログ検証部３０１７を含む。また、図示していないが、操作者によるデータ及び指示の入力を受け付ける入力部、各種の情報を表示する表示部を含んでいる。【０４２２】
ＣＡサーバ装置３００２は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含んで構成されるコンピュータシステムであって、前記ＲＡＭ、ＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することで、ＣＡサーバ装置３００２は、その機能の一部を達成する。
（１）送受信部３０１５
送受信部３０１５は、インターネット３００５に接続可能なインタフェースを備えており、制御部３０１１の制御の下、インターネット３００５を介して接続された外部機器と、各機能部との間のデータの送受信を行う。【０４２３】
（２）検証データ記憶部３０１８
検証データ記憶部３０１８は、検証部３０１３によるＡｔｔｅｓｔａｔｉｏｎ処理に用いられる検証データを記憶している。図３２では、その一例として、サーバ公開鍵３０２１、乱数３０２２、正規ＰＣＲ値群３０２３、正規ログ情報３０２４を記憶している。
サーバ公開鍵３０２１は、サーバ秘密鍵と対応する鍵であって、これらはＲＳＡ暗号に対応している。【０４２４】
乱数３０２２は、Ａｔｔｅｓｔａｔｉｏｎの過程において、乱数生成部３０１２により生成された擬似乱数である。
正規ＰＣＲ値群３０２３は、端末装置３００１が、正常に動作した場合に算出される各ＰＣＲ値を含む。
正規ログ情報３０２４は、証明装置が正常に動作した場合に生成されるべきログ情報であって、少なくとも、正常に動作した場合の各ＰＣＲ値群の履歴を含む。【０４２５】
（３）制御部３０１１
制御部３０１１は、ＣＡサーバ装置３００２内の各構成要素の動作を制御する。
制御部３０１１は、インターネット３００５及び送受信部３０１５を介して、端末装置３００１から、起動通知を受信する。
また、制御部３０１１は、インターネット３００５及び送受信部３０１５を介して、端末装置３００１から、ＡＩＫ鍵ペアを示すＩＤと、ＡＩＫ公開鍵と、ＥＫクレデンシャルと、ＰＦクレデンシャルと、ＡＩＫクレデンシャル発行要求とを受信する。【０４２６】
（３-１）Ａｔｔｅｓｔａｔｉｏｎの制御
起動通知を受信すると、制御部３０１１は、検証部３０１３へ端末装置３００１との間のＡｔｔｅｓｔａｔｉｏｎの開始を指示する。
次に、検証部３０１３からＡｔｔｅｓｔａｔｉｏｎの結果を通知される。Ａｔｔｅｓｔａｔｉｏｎの結果、端末装置３００１が正当であると通知されると、制御部３０１１は、送受信部３０１５を介して、端末装置３００１に動作許可通知を送信する。【０４２７】
Ａｔｔｅｓｔａｔｉｏｎの結果、端末装置３００１が不正であると通知されると、制御部３０１１は、送受信部３０１５を介して、端末装置３００１に動作禁止通知を送信する。
（３−２）ＡＩＫクレデンシャルの発行
制御部３０１１は、ＡＩＫクレデンシャル発行要求を受信すると、受信したＥＫクレデンシャル及びＰＦクレデンシャルの発行元へ、それぞれ、ＥＫクレデンシャル及びＰＦクレデンシャルを送信し、クレデンシャルが有効であるか否かを問い合わせる。ここでは、図２８に示すＴＰＭサーバ装置３００３へ、ＥＫクレデンシャルを送信し、ＰＦクレデンシャルを端末サーバ装置３００４へ送信する。【０４２８】
問合せの結果、ＥＫクレデンシャル及びＰＦクレデンシャルが何れも有効であれば、制御部３０１１は、ＡＩＫクレデンシャルを生成する。ここで生成されるＡＩＫクレデンシャルは、ＡＣサーバ装置の秘密鍵（以下、サーバ秘密鍵）を用いて、少なくともＡＩＫ公開鍵に署名生成アルゴリズムを施して生成された署名データを含む。
続いて、制御部３０１１は、送受信部３０１５を介して、生成したＡＩＫクレデンシャルをＥＫクレデンシャルに含まれるＥＫ公開鍵で暗号化し、暗号化ＡＩＫクレデンシャルを生成する。次に、送受信部３０１５を介して、生成した暗号化ＡＩＫクレデンシャルを、端末装置３００１へ送信する。【０４２９】
問合せの結果、端末装置３００１から受信したいずれかのクレデンシャルが無効であれば、制御部３０１１は、ＡＩＫクレデンシャルの発行ができない旨を示す発行不可通知を送信する。
（４）検証部３０１３
検証部３０１３は、図３２に示すように乱数生成部３０１２、証明書検証部３０１４、署名検証部３０１６及びログ検証部３０１７から構成される。【０４３０】
（４−１）乱数生成部３０１２
乱数生成部３０１２は、擬似乱数生成エンジンを備え、制御部３０１１から、Ａｔｔｅｓｔａｔｉｏｎの開始の指示を受け取ると乱数を生成する。
次に、生成した乱数を検証データ記憶部３０１８に書き込むとともに、送受信部３０１５を介して、生成した乱数及びＡｔｔｅｓｔａｔｉｏｎ要求を送信する。【０４３１】
（４−２）証明書検証部３０１４
証明書検証部３０１４は、乱数生成部３０１２によるＡｔｔｅｓｔａｔｉｏｎ要求の送信後、所定時間内に、端末装置３００１から、ＡＩＫ証明書と署名データとログ情報とを受信する。
ＣＡサーバ装置３００２は、無効になったＡＩＫクレデンシャルを示すＡＩＫクレデンシャルＣＲＬを記憶している外部ストレージ３０２６と接続されている。【０４３２】
証明書検証部３０１４は、受信したＡＩＫ証明書がＡＩＫクレデンシャルＣＲＬに登録されているか否かを検証する。
登録されていない場合、証明書検証部３０１４は、検証データ記憶部３０１８からサーバ公開鍵を読み出し、読み出したサーバ公開鍵を用いて、受信したＡＩＫ証明書に含まれる署名データを検証する。検証の結果、ＡＩＫ証明書が正当であると証明されると、証明書検証部３０１４は、受信した署名データ、ログ情報及びＡＩＫ証明書に含まれるＡＩＫ公開鍵を署名検証部３０１６へ出力する。【０４３３】
受信したＡＩＫクレデンシャルがＡＩＫクレデンシャルＣＲＬに登録されている場合、及び、受信したＡＩＫクレデンシャルに含まれる署名データの検証、ＡＩＫクレデンシャルが正当でない場合、端末装置３００１が不正である旨を示す検証結果を制御部３０１１へ出力する。
（４−３）署名検証部３０１６
署名検証部３０１６は、証明書検証部３０１４から署名データとログ情報とＡＩＫ公開鍵とを受け取る。これらを受け取ると、署名検証部３０１６は、受け取ったＡＩＫ公開鍵を用いて、署名データに署名検証アルゴリズムを施して乱数とＰＣＲ値群を生成する。ここで生成された乱数、ＰＣＲ値群をそれぞれ、証明用乱数、証明用ＰＣＲ値群と呼ぶ。なお署名検証アルゴリズムには、ＲＳＡ暗号を用いる。【０４３４】
署名検証部３０１６は、検証データ記憶部３０１８から乱数３０２２と正規ＰＣＲ値群３０２３とを読み出す。生成した証明用乱数と読み出した乱数３０２２とを比較する。両者が一致すれば、続いて、生成した証明用ＰＣＲ値群を構成する各証明用ＰＣＲ値と、読み出した正規ＰＣＲ値群３０２３を構成する各正規ＰＣＲ値とを、それぞれ比較する。全ての証明用ＰＣＲ値と正規ＰＣＲ値とが一致すると、署名検証部３０１６は、受信したログ情報をログ検証部３０１７へ出力する。【０４３５】
生成した証明用乱数と読み出した乱数３０２２とが一致しない場合、及び、何れか一組でも、証明用ＰＣＲ値と正規ＰＣＲ値とが一致しない場合、署名検証部３０１６は、端末装置３００１が不正である旨を示す検証結果を制御部３０１１へ出力する。
（４−４）ログ検証部３０１７
ログ検証部３０１７は、署名検証部３０１６から、受信されたログ情報を受け取る。ログ情報を受け取ると、ログ検証部３０１７は、検証データ記憶部３０１８から、正規ログ情報３０２４を読み出し、受け取ったログ情報と読み出した正規ログ情報３０２４とを比較する。【０４３６】
比較の結果、両者が一致すると、ログ検証部３０１７は、端末装置３００１が正当である旨を示す検証結果を制御部３０１１へ出力する。
比較の結果、両者が一致しなければ、ログ検証部３０１７は、端末装置３００１が不正である旨を示す検証結果を制御部３０１１へ出力する。
１．４  ＴＰＭサーバ装置３００３
ＴＰＭサーバ装置３００３は、ＴＰＭベンダの所有する装置であって、各ＴＰＭチップに固有のＥＫ鍵ペア及びＥＫ公開鍵を証明するＥＫクレデンシャルを管理する。【０４３７】
ＴＰＭサーバ装置３００３は、無効になったＥＫクレデンシャルを示すＥＫクレデンシャルＣＲＬを記憶している外部ストレージと接続されており、ＣＡサーバ装置３００２から、ＥＫクレデンシャルの有効性の問合せを受け付ける。
１．５  端末サーバ装置３００４
端末サーバ装置３００４は、端末装置ベンダの所有する装置であって、端末装置（又は装置内のプラットフォーム）に固有のＰＦクレデンシャルを管理する。【０４３８】
端末サーバ装置３００４は、無効になったＰＦクレデンシャルを示すＰＦクレデンシャルＣＲＬを記憶している外部ストレージと接続されており、ＣＡサーバ装置３００２からＰＦクレデンシャルの有効性の問合せを受け付ける。
１．６  動作
以下に、フローチャートを用いて、各装置の動作について説明する。【０４３９】
（１）Ａｔｔｅｓｔａｔｉｏｎ処理における動作
図３５〜図３７はＡｔｔｅｓｔａｔｉｏｎ処理における各機器の動作を示したフローチャートである。以下に、図３５〜図３７を用いてＡｔｔｅｓｔａｔｉｏｎ処理における各機器の動作について説明する。以下、記載を簡単にするためプログラムＡのインテグリティ値をＩｎ（Ａ）と記載する。なお、図３２中データフローと図３５〜図３７の動作のうち対応するものには、同一のステップ番号を付している。【０４４０】
端末装置３００１に電源が入ると（ステップＳ３０００）、ＢＩＯＳ３１０９のブートブロック３１６５に記述されているＣＲＴＭ３１６３が実行され（ステップＳ３００１）、その結果、ＢＩＯＳのインテグリティ値Ｉｎ（ＢＩＯＳ）が計測される（ステップＳ３００４）。ＣＲＴＭ及びＲＴＭコードにより実現される機能部ＲＴＭ３１０７は、計測したインテグリティ値Ｉｎ（ＢＩＯＳ）とＢＩＯＳを示す識別子とを、ＰＣＲ値算出部３１１３へ出力する。【０４４１】
ＰＣＲ値算出部３１１３は、インテグリティ値Ｉｎ（ＢＩＯＳ）を受け取り、以下の演算によりＢＩＯＳと対応するＰＣＲ０を算出する（ステップＳ３００６）。
ＰＣＲ０＝ＳＨＡ１（Ｉｎ（ＢＩＯＳ））
続いて、ＰＣＲ値算出部３１１３は、算出したＰＣＲ０をＰＣＲ値記憶部３１１１に書き込む（ステップＳ３００８）。【０４４２】
ＢＩＯＳのＰＣＲ値が記憶されると、ＢＩＯＳは、メモリ３１０８にロードされ、実行される（ステップＳ３００９）。
ＢＩＯＳの実行過程において、ブートローダーをメモリ３１０８に読み出す必要が生じると、ＲＴＭ３１０７は、ブートローダーのインテグリティ値Ｉｎ（ＢＬ）を計測し、ＰＣＲ値算出部３１１３へ出力する（ステップＳ３０１２）。【０４４３】
ＰＣＲ値算出部３１１３は、インテグリティ値Ｉｎ（ＢＬ）を受け取り、以下の演算により、ブートローダーのＰＣＲ値を算出する（ステップＳ３０１３）。
ＰＣＲ１＝ＳＨＡ１（ＰＣＲ０＋Ｉｎ（ＢＬ））
ここで、上記の式の「＋」は連結を意味する。
ＰＣＲ値算出部３１１３は、算出したＰＣＲ１をＰＣＲ値記憶部３１１１に書き込む（ステップＳ３０１４）。【０４４４】
ＰＣＲ１がＰＣＲ値記憶部３１１１に書き込まれると、ブートローダーは、メモリ３１０８にロードされ、実行される（ステップＳ３０１６）。
同様にして、ＲＴＭ３１０７及びＰＣＲ値算出部３１１３は、ＯＳと対応するＰＣＲ値を算出し（ＰＣＲ２＝ＳＨＡ１（ＰＣＲ１＋Ｉｎ（ＯＳ）））、算出したＰＣＲ２をＰＣＲ値記憶部３１１１に書き込む（ステップＳ３０１８）。【０４４５】
ここで、上記の式の「＋」は連結を意味する。
ＰＣＲ２がＰＣＲ値記憶部３１１１に書き込まれると、ＯＳは、メモリ３１０８にロードされ実行される（ステップＳ３０２１）。
ここで、当該端末装置３００１が既に、ＡＩＫクレデンシャルを取得済みであれば（ステップＳ３０２２のＹＥＳ）、制御部３１０２は、端末装置３００１が起動したことを示す起動通知を、ＣＡサーバ装置３００２へ送信する（ステップＳ３０２４）。【０４４６】
ＡＩＫクレデンシャルを未取得であれば（ステップＳ３０２２のＮＯ）、制御部３１０２は、ステップＳ３０２３へ処理を移す。
ＣＡサーバ装置３００２の制御部３０１１は、端末装置３００１から起動通知を受信する（ステップＳ３０２４）。起動通知を受信すると、制御部３０１１は、検証部３０１３へＡｔｔｅｓｔａｔｉｏｎの開始を指示する。【０４４７】
Ａｔｔｅｓｔａｔｉｏｎの開始を指示されると、検証部３０１３内の乱数生成部３０１２は、乱数を生成する（ステップＳ３０２６）。次に、乱数生成部３０１２は、生成した乱数とＡｔｔｅｓｔａｔｉｏｎ要求とを端末装置３００１へ送信すると共に（ステップＳ３０２７）、生成した乱数を検証データ記憶部３０１８へ書き込む（ステップＳ３０２８）。【０４４８】
端末装置３００１のＴＰＭ制御部３１１８は、乱数及びＡｔｔｅｓｔａｔｉｏｎ要求を受信し（ステップＳ３０２７）、受信した乱数を測定値通知部３１０４へ出力する。
測定値通知部３１０４は、乱数を受け取ると、鍵記憶部３１２０からＡＩＫ秘密鍵３１２７を読み出す（ステップＳ３０２９）。続いて、ＰＣＲ値記憶部３１１１から各ＰＣＲ値を読み出す（ステップＳ３０３０）。次に、測定値通知部３１０４は、読み出した秘密鍵を用いて、受け取った乱数と、読み出したＰＣＲ値群に署名生成アルゴリズムを施して、署名データを生成する（ステップＳ３０３１）。【０４４９】
ＴＰＭ制御部３１１８は、証明書記憶部３１１４からＡＩＫクレデンシャル３１２３を読み出し、ログ記憶部３１１６からログ情報を読み出す（ステップＳ３０３２）。
次に、ＴＰＭ制御部３１１８は、測定値通知部３１０４により生成された署名データと、読み出したＡＩＫクレデンシャルとログ情報とをＣＡサーバ装置３００２へ送信する（ステップＳ３０３３）。【０４５０】
ＣＡサーバ装置３００２内の証明書検証部３０１４は、端末装置３００１から、署名データとＡＩＫクレデンシャルとログ情報とを受信すると（ステップＳ３０３３）、受信したＡＩＫクレデンシャルがＡＩＫクレデンシャルＣＲＬに登録されているか否かを確認し、登録されている場合（ステップＳ３０３４のＹＥＳ）、ステップＳ３０４１へ処理を移す。【０４５１】
受信したＡＩＫクレデンシャルが、ＡＩＫクレデンシャルＣＲＬに登録されていない場合（ステップＳ３０３４のＮＯ）、証明書検証部３０１４は、検証データ記憶部３０１８に記憶されているサーバ公開鍵３０２１を用いてＡＩＫクレデンシャルを検証する（ステップＳ３０３６）。
署名検証部３０１６は、受信したＡＩＫクレデンシャルに含まれるＡＩＫ公開鍵を用いて受信した署名データに署名検証アルゴリズムを施して証明用乱数と、証明用ＰＣＲ値群を生成する（ステップＳ３０３７）。続いて、検証データ記憶部３０１８に記憶されている乱数３０２２及び正規ＰＣＲ値群３０２３を基に、証明用乱数と証明用ＰＣＲ値群とを検証する（ステップＳ３０３８）。【０４５２】
ログ検証部３０１７は、検証データ記憶部３０１８に記憶されている正規ログ情報３０２４を基に受信したログ情報を検証する（ステップＳ３０４１）。ステップＳ３０３６〜ステップＳ３０４１までの全ての検証のうち、いずれか一つでも失敗であれば（ステップＳ３０４２のＮＯ）、制御部３０１１は、端末装置３００１に動作禁止通知を送信する（ステップＳ３０４３）。全ての検証が成功であれば（ステップＳ３０４２のＹＥＳ）、制御部３０１１は、端末装置３００１へ動作許可通知を送信する（ステップＳ３０４６）。【０４５３】
端末装置３００１は、ＣＡサーバ装置３００２から、動作禁止通知又は動作許可通知を受信する。
動作許可通知を受信した場合（ステップＳ３０４７のＹＥＳ）、制御部３１０２は、メモリにロードされているプログラムを実行し、必要に応じて他のプログラムをメモリにロードし実行する（ステップＳ３０４９）。【０４５４】
動作禁止通知を受信した場合（ステップＳ３０４７のＮＯ）、制御部３１０２は、当該端末装置３００１の構成が不正であることを示す警告画面を表示した後、端末装置３００１の動作を停止させ、電源をＯＦＦにする（ステップＳ３０５２）。
（２)ＡＩＫクレデンシャルの取得動作
起動前の端末装置３００１はＡＩＫクレデンシャルを保持しておらず、初起動時にＣＡサーバ装置３００２からＡＩＫクレデンシャルを取得する。図３８、図３９はＡＩＫクレデンシャルの取得における各機器の動作を示すフローチャートである。なお、これは、図３６のステップＳ３０２３の詳細である。【０４５５】
以下に、図３８及び図３９を用いてＡＩＫクレデンシャルの取得動作について説明する。
先ず、ＴＰＭ制御部３１１８は、ＲＳＡ暗号に対応した新たなＡＩＫ鍵ペアを生成し（ステップＳ３０６１）、生成したＡＩＫ鍵ペアを鍵記憶部３１２０に書き込む（ステップＳ３０６２）。次に、生成したＡＩＫ公開鍵を制御部３１０２へ出力する。【０４５６】
制御部３１０２は、証明書記憶部３１１４からＥＫクレデンシャル３１２１とＰＦクレデンシャル３１２２とを読み出す（ステップＳ３０６３）。続いて、新たに生成されたＡＩＫ鍵ペアを識別するＩＤを生成する（ステップＳ３０６６）。
次に、制御部３１０２は、ＩＤ、ＥＫクレデンシャル、ＰＦクレデンシャル、ＡＩＫ公開鍵をＣＡサーバ装置３００２へ送信し、ＡＩＫクレデンシャルの発行を要求する（ステップＳ３０６７）。【０４５７】
ＣＡサーバ装置３００２の制御部３０１１は、端末装置３００１からＩＤ、ＥＫクレデンシャル、ＰＦクレデンシャル、ＡＩＫ公開鍵及びＡＩＫクレデンシャルの発行要求を受信する（ステップＳ３０６７）。
これらを受信すると、制御部３０１１は、ＴＰＭサーバ装置３００３及び端末サーバ装置３００４へ、それぞれ、ＥＫクレデンシャル及びＰＦクレデンシャルの正当性を問い合わせる（ステップＳ３０６９）。【０４５８】
問合せの結果、ＥＫクレデンシャル及びＰＦクレデンシャルのうち一方でも正当なければ（ステップＳ３０７１のＮＯ）、制御部３０１１は、ＡＩＫクレデンシャル発行に関する処理を終了する。
問合せの結果、ＥＫクレデンシャル及びＰＦクレデンシャルの両方が正当であれば（ステップＳ３０７１のＹＥＳ）、制御部３０１１は、受信したＩＤ及びＡＩＫ公開鍵を含むＡＩＫクレデンシャルを生成し（ステップＳ３０７２）、受信したＥＫクレデンシャルに含まれるＥＫ公開鍵を用いて、生成したＡＩＫクレデンシャルを暗号化する（ステップＳ３０７３）。【０４５９】
次に、制御部３０１１は、生成した暗号化ＡＩＫクレデンシャルを端末装置３００１へ送信する（ステップＳ３０４７）。
端末装置３００１の制御部３１０２は、ＣＡサーバ装置３００２から暗号化ＡＩＫクレデンシャルを受信すると（ステップＳ３０７４）、鍵記憶部３１２０からＥＫ秘密鍵３１２６を読み出し（ステップＳ３０７６）、読み出したＥＫ秘密鍵を用いて暗号化ＡＩＫクレデンシャルを復号して、ＡＩＫクレデンシャルを生成する（ステップＳ３０７７）。【０４６０】
続いて、制御部３１０２は、生成したＡＩＫクレデンシャルを証明書記憶部３１１４へ書き込む（ステップＳ３０７９）。
１．７  実施の形態１に関する変形例
（１）更新プログラムの取得
上記の実施の形態１において、Ａｔｔｅｓｔａｔｉｏｎが失敗した場合、ＣＡサーバ装置３００２は動作禁止通知を送信し、端末装置３００１は、これを受信すると、動作を停止し、電源をＯＦＦにするとしたが、これに限るものではなく、一部機能を制限した形で起動するとしても良い。【０４６１】
また、上記の実施の形態及び変形例と同様に、ＣＡサーバ装置３００２は、各プログラムを最新バージョンに更新するための更新プログラムを送信し、端末装置３００１は、受信した更新プログラムにより、各プログラムを最新版に更新するとしてもよい。
更新後、端末装置３００１は、再起動して、改めてＡｔｔｅｓｔａｔｉｏｎを行う。
（２）Ａｔｔｅｓｔａｔｉｏｎのタイミング
上記の実施の形態１では、ＯＳがメモリにロードされ実行可能になった時点で、起動通知を送信し、Ａｔｔｅｓｔａｔｉｏｎが開始されるが、これは、一例であって、他のタイミングであっても良い。【０４６２】
例えば、ＯＳに続いて、デバイスドライバ、アプリケーションロードされた時点であっても良いし、ブートローダーがロードされた時点であってもよい。
（３）特定のＰＣＲ値の指定
実施の形態１では、測定値通知部３１０４は、全てのＰＣＲ値を読み出し、読み出したＰＣＲ値群に署名を施して送信しているが、この構成に限るものではない。【０４６３】
具体的には、ＣＡサーバ装置３００２は、乱数と共に、何れか一つ（複数でも良い）のＰＣＲ値を示す識別情報を送信する。
測定値通知部３１０４は、識別情報の示すＰＣＲ値のみを読み出し、読み出したＰＣＲ値と受信した乱数に署名を施して送信する。
これに合わせて、ＴＰＭ制御部３１１８は、ログ情報についても、受信した識別情報のＰＣＲ値に係るログ情報のみを抽出して送信する。【０４６４】
このようにすることで、機器間で送受信されるデータ量を少なくすることができる。
（４）ＲＴＭ機能を実現する構成
上記の実施の形態では、ＢＩＯＳはブートブロックにＣＲＴＭを含み、各プログラムは、ＲＴＭコードを含んでおり、ＣＰＵがＣＲＴＭ及び各プログラムのＲＴＭコードを実行することでＲＴＭの機能を実現しているが、この後世に限定されるものではない。【０４６５】
以下に、一例を紹介する。
端末装置は、ブートブロックにＣＲＴＭを含むＢＩＯＳを記憶している。これに加えて、ＲＴＭ（ソフトウェア、以下機能部であるＲＴＭと区別するためＲＴＭプログラムと呼ぶ）及びＭｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔを記憶している。
ＣＲＴＭは、ＲＴＭのインテグリティ値を計測する手順を含む。【０４６６】
ＲＴＭプログラムは、指定されたプログラムのインテグリティ値を計測する手順を含む。
Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔは、各種のプログラムから呼び出され、ＲＴＭプログラムにインテグリティ値の計測を要求する手順を含むプログラムである。
ＢＩＯＳ、ローダー、ＯＳ、及びその他のプログラムは、Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔを呼び出し、自身が次に呼び出そうとしているプログラムをＭｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔに通知するコードを含む。【０４６７】
以上の構成により、各プログラムは、他のプログラムをメモリにロードする前に、Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔを呼び出して前記他のプログラムを通知し、Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔは、ＲＴＭプログラムを呼び出し、通知されたプログラムのインテグリティ値の計測を要求する。この要求を受けると、ＲＴＭプログラムが、通知されたプログラムのインテグリティ値を算出する。【０４６８】
このような仕組みによりＲＴＭの機能を実現してもよい。
２．  実施の形態２
２．１  概要
実施の形態２に係るコンテンツ再生システムは、図４０に示すようにコンテンツ提供サーバ３２０２、端末装置＃１（３２０１）、端末装置＃３（３２０３）から構成される。コンテンツ提供サーバ３２０２及び端末装置＃１（３２０１）は、インターネット３００５に接続可能である。端末装置＃３（３２０３）は、インターネット通信機能を有していない。【０４６９】
メモリカード＃２（３２０４）は、端末装置＃１（３２０１）及び端末装置＃２（３２０３）の何れにも装着可能であり、コンテンツ及びコンテンツの利用権（鍵、有効期限などを含む）を保持している。
端末装置＃１（３２０１）及び端末装置＃３（３２０３）は、メモリカード＃２（３２０４）に記憶されているコンテンツを復号、伸長し再生する機能を有する。これに先立って、端末装置とメモリカードが交互に検証装置及び証明装置となり、相互にＡｔｔｅｓｔａｔｉｏｎ処理を行う。相互に相手の構成が正当であると認証した場合、端末装置はメモリカード＃２からコンテンツ及び権利情報を取得し、コンテンツを再生することができる。【０４７０】
また、メモリカード＃２（３２０４）は、端末装置＃１（３２０１）に装着された状態で、端末装置＃１（３２０１）の通信機能を利用して、コンテンツ提供サーバ３２０２から、新たなコンテンツ及び権利情報の購入処理を行う。
ところで、各機器の備えるプログラムはインターネットや、記録媒体、他の機器を介してアップグレードされることが考えられる。【０４７１】
その場合、前述のＡｔｔｅｓｔａｔｉｏｎに用いられる検証データを更新する必要が生じる。コンテンツ提供サーバ３２０２は、コンテンツ及び権利情報の販売に関する処理に加えて、前述のＡｔｔｅｓｔａｔｉｏｎ処理に用いられる最新の検証データを保持している。
メモリカード＃２（３２０４）は、端末措置＃１（３２０１）に装着された状態で、端末装置＃１（３２０１）の通信機能を利用して、コンテンツ提供サーバ３２０２と通信し、新たなコンテンツ及びコンテンツ利用権（復号鍵、有効期限などを含む）を取得する。これに先立って、コンテンツ提供サーバから、前述のＡｔｔｅｓｔａｔｉｏｎ処理に用いられる最新の検証データを取得する。このときメモリカードは、自身が用いる検証データのみならず、端末装置＃１及び端末装置＃３の用いる検証データも取得し、それぞれの端末装置機器に装着された際に、取得した検証データを配布する。
２．２  端末装置の構成＃１及び端末装置＃２の構成
端末装置＃１の物理的構成及び機能的構成は実施の形態において説明した端末装置３００１とほぼ同様であるのでここでは、詳細な説明を省略し相違点のみ説明する。【０４７２】
端末装置＃１と端末装置３００１の相違点は、メモリカード＃２を装着可能な入出力部を備えることと、ＯＳ以上のアプリケーションとして音楽データを再生する手順を含む再生制御プログラムを記憶している点である。また、ハードディスクユニットにより構成される検証データ記憶部を有する。検証データ記憶部には、メモリカード＃２の正当性を検証するための情報が記憶されている。【０４７３】
また、端末装置３００１は、ＯＳが起動した時点で、外部のＣＡサーバ装置３００２とＡｔｔｅｓｔａｔｉｏｎ処理を行ったり、ＣＡサーバ装置３００２からＡＩＫ証明書を取得したりしているが、本実施の形態において、これは必須ではなく、端末装置＃１（３２０１）の製造時にＡＩＫ鍵ペア及びＡＩＫ証明書を記録しておいても良い。
端末装置＃１は、電源がＯＮになると、ＢＩＯＳから順に再生制御プログラムまでメモリにロードする。再生制御プログラムがロードされると、先ず、装着しているメモリカード＃２との間で相互に、自身の機器ＩＤを送信し合う。続いて、端末装置＃１が検証装置となってメモリカード＃２との間で第１のＡｔｔｅｓｔａｔｉｏｎ処理を行う。【０４７４】
第１のＡｔｔｅｓｔａｔｉｏｎが成功すれば続いて、端末装置＃１が証明装置となって、第２のＡｔｔｅｓｔａｔｉｏｎ処理を行う。２回のＡｔｔｅｓｔａｔｉｏｎの結果、相互に正当な構成の機器であることが証明されると、端末装置＃１は、続いて再生制御プログラムを実行し、利用者の操作に従って音楽再生をすることができる。
また、新たなコンテンツの購入を要求する利用者の操作を受け付けると、購入要求をメモリカード＃２へ出力し、メモリカード＃２内のＤＲＭ（Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ）アプリ（後述）の実行によるコンテンツ購入処理などにおいて、通信機能を提供する。【０４７５】
また、端末装置＃１は、メモリカード＃２から、最新検証データを受け取ると、受け取った最新検証データにより、検証データ記憶部の記憶している検証データを書き換える。
端末装置＃３も端末装置＃１とほぼ同様の構成であるが、端末装置＃３は、インターネット３００５に接続可能な送受信部を持たない点が端末装置＃１と異なる。
また、端末装置＃３にメモリカード＃２が装着され、相互に機器ＩＤを送信しあう。続いて、端末装置＃３は、先ず、メモリカード＃２から、最新の検証データを受け取り、受け取った最新の検証データにより、自身の記憶している検証データを書き換える。【０４７６】
続いて、端末装置＃１の場合と同様に、相互にＡｔｔｅｓｔａｔｉｏｎを行う。
２．３  コンテンツ提供サーバ
コンテンツ提供サーバ３２０２は、コンテンツプロバイダの所有するサーバ装置であり、主に、インターネット３００５を介して、外部機器との間で、コンテンツ及び利用権（鍵、有効期限などを含む）の販売に係る処理を行う。【０４７７】
図４１は、コンテンツ提供サーバ３２０２の構成を示す機能ブロック図である。図４１に示すように、コンテンツ提供サーバ３２０２は、送受信部３２１１、ＤＲＭ処理部３２１２、コンテンツＤＢ（データベース）３２１３、最新検証データ記憶部３２１４、制御部３２１６、表示部３２１７及び入力部３２１８から構成される。
コンテンツ提供サーバ３２０２は、具体的にはマイクロプロセッサ、ＲＡＭ，ＲＯＭを含んで構成されるコンピュータシステムであって、前記ＲＡＭ、ＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することで、コンテンツ提供サーバ３２０２は、その機能の一部を達成する。【０４７８】
（１）コンテンツＤＢ３２１３
コンテンツＤＢは、大容量のハードディスクユニットから構成され、複数の暗号化コンテンツ及び各暗号化コンテンツに対応する権利情報を記憶している。
暗号化コンテンツは、音楽データを圧縮し暗号化して生成されたものである。権利情報は、暗号化コンテンツを復号するための復号鍵、復号鍵の有効期限、価格情報などを含んでいる。【０４７９】
（２）最新検証データ記憶部３２１４
最新検証データ記憶部３２１４は、複数の最新検証データ３２２１、３２２６・・・を記憶している。各最新検証データは、機器ＩＤ、正規ＰＣＲ値群、正規ＳＭＬ（ログ情報）からなる。最新検証データは、機器ＩＤの示す機器の正当性を検証するための情報である。以下、説明の便宜上、機器ＩＤ：ＩＤ＃ｎ（ｎ＝１、２、３・・・）の機器の正当性を検証するためのデータを検証データ＃ｎ、検証データ＃ｎに含まれる正規ＰＣＲ値群を正規ＰＣＲ＃ｎ、正規ＳＭＬを正規ＳＭＬ＃ｎと記載する。【０４８０】
一例として最新検証データ＃１（３２２１）は、ＩＤ＃１（３２２２）、正規ＰＣＲ＃１（３２２１）及び正規ＳＭＬ＃１を含み、ＩＤ＃１の示す端末装置＃１の正当性の検証に用いられる。
（３）ＤＲＭ処理部３２１２
ＤＲＭ処理部３２１２は、制御部３２１６の制御の下、インターネット３００５を介して接続された外部機器との間で、コンテンツ販売に係る処理を行う機能部である。【０４８１】
具体的には、外部機器から、コンテンツ購入要求を受信し、ユーザ認証、コンテンツリストの送信、コンテンツの選択の受信、課金処理、暗号化コンテンツ及び権利情報の送信などの一連の処理を行う。
（４）送受信部３２１１
送受信部３２１１は、インターネット３００５に接続可能なインタフェースを含んで構成され、インターネット３００５に接続された外部機器と、各機能部との間で、各種の情報の送受信を行う。【０４８２】
（５）制御部３２１６
制御部３２１６は、各機能部へ制御信号（図示していない）を出力し、コンテンツ提供サーバ３２０２を構成する各機能部の動作を制御する。  
また、制御部３２１６は、インターネット３００５及び端末装置＃１を介してメモリカード＃２から、最新検証データ要求を受信する。最新更新データ要求は、１以上の機器ＩＤを含んでおり、前記機器ＩＤの正当性検証に用いられる最新の検証データを要求するものである。【０４８３】
最新検証データ要求を受信すると、制御部３２１６は、最新検証データ記憶部３２１４内で、受信した機器ＩＤと同一の機器ＩＤを含む最新検証データを検出し、検出した最新検証データを読み出す。続いて、制御部３２１６は、読み出した最新検証データを、送受信部３２１１を介して、メモリカード＃２へ送信する。
２．４  メモリカード＃２（３２０４）の構成
図４２は、メモリカード＃２（３２０４）の機能的構成を示した機能ブロック図である。図４２に示すように、メモリカード＃２（３２０４）は、制御部３２３１、メモリ３２３２、ブートプログラム３２３３、コンテンツ記憶部３２３６、ＲＴＭ３２３７、入出力部３２３９、証明書記憶部３２４１、プログラム記憶部３２４４、ログ記憶部３２５１、ＴＰＭチップ３２４７、検証部３２５６、ＩＤ記憶部３２６６及び検証データ記憶部３２５７から構成される。【０４８４】
メモリカード＃２（３２０４）は、具体的には、ＲＡＭ、ＲＯＭを含んだコンピュータシステムであって、ＲＡＭ、ＲＯＭにはコンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、メモリカード＃２（３２０４）は、その機能の一部を達成する。
以下に、各構成要素について、説明する。【０４８５】
なお、証明書記憶部３２４１、メモリ３２３２、ログ記憶部３２５１、ＲＴＭ３２３７については、実施の形態１において説明した証明書記憶部、メモリ、ログ記憶部、ＲＴＭと同様の機能を有するので、ここでは、説明を省略する。
（１）入出力部３２３９
入出力部３２３９は、外部機器と接続可能なインタフェースを備える。ここで、外部機器とは、端末装置＃１及び端末装置＃２とが該当する。入出力部３２３９は、外部機器とメモリカード＃２内の各機能部との間で情報の送受信を行う。【０４８６】
また、入出力部３２３９は、外部機器から電力の供給を受ける電力端子を備えており、電力端子を介して外部機器から供給される電力を各構成要素へ配布する。
（２）コンテンツ記憶部３２３６
コンテンツ記憶部３２３６は、暗号化コンテンツ及び権利情報を記憶するための機能部である。ここに記憶される暗号化コンテンツ及び権利情報は、前述のコンテンツ提供サーバの保持する暗号化コンテンツ及び権利情報と同様である。【０４８７】
（３）プログラム記憶部３２４４
プログラム記憶部３２４４は、フラッシュメモリなどの不揮発性の記憶媒体により構成され、ＯＳ３２４５及びＤＲＭアプリ３２４６を記憶している。端末装置側と同様にＯＳ３２４５はＲＴＭコードを含んでいる。
ＤＲＭアプリ３２４６は、コンテンツ提供サーバとの間で、コンテンツ購入に関する処理を行い、端末装置によるコンテンツの再生要求に対して権利情報の確認、暗号化コンテンツ及び復号鍵の出力などを行う手順を含むプログラムである。【０４８８】
（４）ブートプログラム３２３３
ブートプログラム３２３３は、端末装置におけるＢＩＯＳと同様に、メモリカードのセキュアな領域に記憶され、電力の供給が開始されると最初にロード実行されるプログラムである。ブートプログラム３２３３は、前述のＢＩＯＳと同様にＣＲＴＭ３２６２を含んでいる。【０４８９】
メモリカード＃２に電力が供給されると、ブートプログラム、ＯＳ、ＤＲＭアプリの順にメモリにロードされ、実行される。特に、メモリカード＃２（３２０４）内のプロセッサは、ブートプログラム３２３３内のＣＲＴＭ３２６２を、最初に実行する。
（５）ＩＤ記憶部３２６６
ＩＤ記憶部３２６６は、不揮発性の記憶媒体から構成され、一般領域３２６７とセキュア領域３２６８から構成される。【０４９０】
セキュア領域３２６８には、メモリカード＃２（３２０４）の製造時に書き込まれたメモリカード＃２を一意に示す機器ＩＤ「ＩＤ＃２」３２７３が記憶されている。
一般領域３２６７には、メモリカード＃２が装着された事のある機器の機器ＩＤ３２７１及び機器ＩＤ３２７２が記憶されている。具体的には、端末装置＃１を示す機器ＩＤ「ＩＤ＃１」３２７１と、端末装置＃３を示す機器ＩＤ「ＩＤ＃３」３２７２を記憶している。以下、記述を簡略にするため、これらの機器ＩＤを単にＩＤ＃１、ＩＤ＃２、ＩＤ＃３と記載する。【０４９１】
（６）検証データ記憶部３２５７
検証データ記憶部３２５７は、複数の検証データ３２５８、３２５９、３２６１・・・を記憶している。
各検証データは、機器ＩＤ、正規ＰＣＲ群、正規ＳＭＬを含み、機器ＩＤの示す機器の正当性の検証に用いられる。【０４９２】
検証データ３２５９は、メモリカード＃２の正当性の検証に用いられ、検証データ３２５８、３２６１・・・は、それぞれ、端末装置＃１、端末装置＃３・・・の正当性検証に用いられる。以下、これらを単に検証データ＃ｎ（ｎ＝1、２、３・・・）と記載し、検証データ＃ｎを構成する機器ＩＤ、正規ＰＣＲ群、正規ＳＭＬをそれぞれ、ＩＤ＃１、正規ＰＣＲ＃ｎ、正規ＳＭＬ＃ｎと記載する。【０４９３】
一例として、検証データ＃１は、端末装置＃１を示すＩＤ＃１（３２６２）、端末装置＃１が正当な構成を有する場合に算出されるべき正規ＰＣＲ＃１（３２５９）、及び、端末装置＃１正当な構成を有する場合のＰＣＲ値群の履歴を含む正規ＳＭＬ＃１（３２６４）から構成される。
（７）ＴＰＭ＃２（３２４７）
メモリカード＃２（３２０４）に搭載されている、ＴＰＭチップ３２４７（以下、ＴＰＭ＃２と記載する）は、ネットワークプロバイダにより提供され、メモリカード＃２に実装されたものである。【０４９４】
ＴＰＭ＃２は、実施の形態１のＴＰＭ３１１７と同様に、ＴＰＭ＃２内の各機能部により、メモリカード＃２の正当性を示す情報であるＰＣＲ値の算出及び蓄積を行う。ＴＰＭ＃２の詳細な構成は、実施の形態１のＴＰＭ３１１７と同様であるので、図４２では、省略して記載している。
本実施の形態で、各機器内のＴＰＭチップの保持するＥＫ秘密鍵、ＡＩＫ秘密鍵、ＰＣＲ値群をそれぞれ、ＥＫ＃ｎ、ＡＩＫ＃ｎ、ＰＣＲ＃ｎ（ｎ＝1、２、３・・・）と記載する。また各秘密鍵と対応する公開鍵の証明書を証明書＃ｎ、ログ記憶部の記憶しているＳＭＬをＳＭＬ＃ｎと記載する。【０４９５】
（８）検証部３２５６
検証部３２５６は、制御部３２３１から当該メモリカード＃２（検証装置）の装着されている端末装置（証明装置）とのＡｔｔｅｓｔａｔｉｏｎを指示される。このとき、制御部３２３１から、端末装置の機器ＩＤを受け取る。
Ａｔｔｅｓｔａｔｉｏｎを指示されると、検証部３２５６は、受け取った機器ＩＤを含む検証データを読み出す。続いて、読み出した検証データを用いて、端末装置の正当性検証を行う。検証の詳細は、実施の形態１において説明した検証部３０１３による検証と同様であるのでここでは説明を省略する。【０４９６】
次に検証部３２５６は、Ａｔｔｅｓｔａｔｉｏｎの結果を制御部３２３１へ通知する。
（９）制御部３２３１
制御部３２３１は、各構成要素の構成を制御する機能部である。
制御部３２３１は、いずれかの端末装置に装着されると、ＩＤ記憶部３２６６から、ＩＤ＃２を読み出し、端末装置に出力する。また、端末装置から機器ＩＤを受け取りメモリ３２３２に記憶する。【０４９７】
ここで、機器ＩＤには、通信機能を有する再生装置であるか否か、また、記録媒体であるかを示す情報が含まれる。例えば、通信機能を有するものは先頭ビット「１１」から始まり、通信機能を有さないものは、先頭ビット「１０」から始まり、記録媒体は、先頭ビット「００」から始まる機器ＩＤを有する。
続いて、制御部３２３１は、端末装置から、Ａｔｔｅｓｔａｔｉｏｎ要求と乱数（ノンス）とを受け取る。これらを受け取ると、ＴＰＭ＃２（３２４７）へ、受け取ったノンスを出力しＡｔｔｅｓｔａｔｉｏｎを指示する。【０４９８】
メモリカード＃２の正当性が証明され、端末装置から動作許可通知を受信すると、制御部３２３１は、検証部３２５６へ、端末装置の正当性検証（Ａｔｔｅｓｔａｔｉｏｎ）の指示を出力する。このとき、メモリ３２３２に書き込んだ端末ＩＤを読み出し、Ａｔｔｅｓｔａｔｉｏｎの指示と共に読み出した端末ＩＤを、検証部３２５６へ出力する。
次に、制御部３２３１は、検証部３２５６から、Ａｔｔｅｓｔａｔｉｏｎの結果を通知される。通知された結果により、端末装置が不正であると判断された場合、制御部３２３１は、以後端末装置との通信を停止する。【０４９９】
通知された結果により端末装置が正当であると判断された場合、端末装置の利用者の操作に従って、暗号化コンテンツの出力などの処理を行う。
（９−１）端末装置＃１に装着された場合の処理
以下に、端末装置＃１に装着された場合に行われる処理について説明する。
メモリカード＃２が、端末装置＃１に装着された状態で、端末装置＃１から、コンテンツの購入要求を受け取る。この要求を受け取ると、制御部３２３１は、ＩＤ記憶部３２６６に記憶されている全ての機器ＩＤを読み出す。続いて、最新の検証データの送信を要求する最新検証データ要求を生成し、生成した最新検証データ要求を、端末装置＃１の通信機能を利用してコンテンツ提供サーバ３２０２へ送信する。最新検証データ要求には、読み出した全ての機器ＩＤが含まれている。【０５００】
続いて、端末装置＃１を介して、コンテンツ提供サーバ３２０２から、複数の最新検証データを受信する。受信した最新検証データに含まれる機器ＩＤを基に、検証データ記憶部３２５７に記憶されている検証データを、受信した検証データにより書き換える。
次に、制御部３２３１は、メモリカード＃２自身を示すＩＤ＃２を含む検証データ＃２を読み出し、読み出した検証データ＃２を最新検証データ＃２として端末装置＃１へ出力する。【０５０１】
出力した後、制御部３２３１は、メモリ３２３２にロードされているＤＲＭプログラムの示す手順に従って、コンテンツの購入処理を行う。
（９−２）端末装置＃２に装着された場合の処理
以下に、端末装置＃２に装着された場合に行われる処理について説明する。
制御部３２３１は、受け取った機器ＩＤの先頭の２ビットが「１０」の場合、Ａｔｔｅｓｔａｔｉｏｎに先立って、自身を示すＩＤ＃２を含む検証データ３２５９を読み出し、読み出した検証データ３２５９を最新検証データとして出力する。
２．５  動作
以下に、Ａｔｔｅｓｔａｔｉｏｎに関連する各機器の動作について説明する。【０５０２】
なお、メモリカード＃２と端末装置との相互のＡｔｔｅｓｔａｔｉｏｎ処理に関する動作は、何れの端末装置の場合も同じであるので、ここでは、端末装置＃２とメモリカード＃２との相互Ａｔｔｅｓｔａｔｉｏｎについての説明は省略する。
（１）相互Ａｔｔｅｓｔａｔｉｏｎ
メモリカード＃２が端末装置＃１に装着された状態で、端末装置＃１の電源がＯＮになり、双方のブートプロセスが終了すると、端末装置＃１が検証装置となって、メモリカード＃２の正当性を検証する第１のＡｔｔｅｓｔａｔｉｏｎが行われる（ステップＳ３１０１〜ステップＳ３１０３）
先ず、端末装置＃１の検証部３２８１は、ノンス＃２を生成してメモリカード＃２へ出力する（ステップＳ３１０１）。【０５０３】
メモリカード＃２のＴＰＭ＃２は、ノンス＃２を受け取ると、ＡＩＫ＃２を用いて、受け取ったノンス＃２と、自身が保持しているＰＣＲ＃２とに署名を施して署名データを生成する。生成した署名データ「ＡＩＫ＃１（ノンス＃２、ＰＣＲ＃２）」と、ＡＩＫ証明書＃２とＳＭＬ＃２とを、端末装置＃１へ出力する（ステップＳ３１０２）。以下、その他の実施の形態において鍵Ａを用いて、データＢ、Ｃ・・・に署名を施して生成された署名データを「Ａ（Ｂ、Ｃ・・・）」と記載する。一例として前述の「ＡＩＫ＃１（ノンス＃２、ＰＣＲ＃２）」は、鍵「ＡＩＫ＃１」を用いて「ノンス＃２、ＰＣＲ＃２」に署名を施して生成されたものである。【０５０４】
端末装置＃１の検証部３２８１は、メモリカード＃２から、署名データとＡＩＫ証明書＃２とＳＬＭ＃２とを受け取る。これらを受け取ると、ＡＩＫ証明書＃２の検証、署名データの検証（具体的には、ノンス＃２の検証及びＰＣＲ＃２の検証）、ＳＭＬ＃２の検証を順次行う（ステップＳ３１０３）。これらの検証には、サーバ公開鍵（図示せず）、ＡＩＫ証明書＃２に含まれるＳＩＫ公開鍵＃２、検証データ記憶部３２８２に記憶されている正規ＰＣＲ＃２及び正規ＳＭＬ＃２が用いられる。【０５０５】
第１のＡｔｔｅｓｔａｔｉｏｎが成功であれば、続いて、メモリカード＃２が検証装置となって、端末装置＃１の正当性を検証する第２のＡｔｔｅｓｔａｔｉｏｎが行われる（ステップＳ３１０６〜ステップＳ３１０８）。
先ず、メモリカード＃２の検証部３２５６は、ノンス＃１を生成し、生成したノンス＃１を、端末装置＃１へ出力する（ステップＳ３１０６）。【０５０６】
端末装置＃１のＴＰＭ＃１は、ノンス＃１を受け取ると、ＡＩＫ＃１を用いて、受け取ったノンス＃１及び自身の保持しているＰＣＲ＃１に署名を施して署名データを生成し、ＡＩＫ証明書＃１と、生成した署名データと、ＳＭＬ＃１とをメモリカード＃２へ出力する（ステップＳ３１０７）。
メモリカード＃２の検証部３２５６は、端末装置＃１からＡＩＫ証明書＃１と署名データとＳＭＬ＃１とを受け取る。これらを受け取ると、ＡＩＫ証明書＃１の検証、署名データの検証（具体的には、ノンス＃１の検証及びＰＣＲ＃１）、ＳＭＬ＃１の検証を順次行う（ステップＳ３１０８）。これらの検証には、サーバ公開鍵（図示せず）、ＡＩＫ証明書＃１に含まれるＡＩＫ公開鍵＃１、検証データ記憶部３２５７の記憶している正規ＰＣＲ＃１及び正規ＳＭＬ＃１が用いられる。【０５０７】
第２のＡｔｔｅｓｔａｔｉｏｎが成功であれば、端末装置＃１は、再生制御プログラムを実行し、利用者の操作に従ってコンテンツの再生を開始する。
（２）最新検証データの取得
図４３の太線矢印は、最新の検証データ取得に関する動作を示している。以下に図４３を用いて、最新の検証データ取得処理における各機器の動作を説明する。【０５０８】
利用者による、新たなコンテンツの購入を要求する操作をトリガとして、メモリカード＃２の制御部３２３１は、最新検証データ要求をコンテンツ提供サーバ３２０２へ送信する。この要求を受けて、コンテンツ提供サーバは、最新の検証データをメモリカード＃２へ送信する（ステップＳ３１１１）。
メモリカード＃２の制御部３２３１は、端末装置＃１の通信機能を利用して、最新検証データを受信し（ステップＳ３１１１）、自身の記憶している検証データを、受信した最新の検証データにより書き換える。【０５０９】
続いて、自身の機器ＩＤと対応する最新の検証データ（最新の正規ＰＣＲ＃２及び最新の正規ＳＭＬ）を端末装置＃１へ出力する（ステップＳ３１１２）。
端末装置＃１の制御部は、メモリカード＃２から最新の検証データ（最新の正規ＰＣＲ＃２及び最新の正規ＳＭＬ）を受け取り（ステップＳ３１１２）、受け取った最新の検証データにより、検証データ記憶部３２８２の保持している検証データを書き換える。【０５１０】
双方において検証データの書き換えが終了すると、メモリカード＃２は、メモリ３２３２上のＤＲＭアプリを実行して、利用者の操作に従って新たなコンテンツの購入処理を行う。
また、その後、端末装置＃３に装着されると、メモリカード＃２は、自身の機器ＩＤと対応する最新の正規ＰＣＲ値＃２と最新の正規ＳＭＬ＃２とを、端末装置＃３へ出力する（ステップＳ３１１３）。端末装置＃３は、自身の検証データ記憶部３２８３に記憶している検証データを、受け取った最新の正規ＰＣＲ値＃２と最新の正規ＳＭＬ＃２により、書き換える。
２．６  実施の形態２に関する変形例
（１）特定のＰＣＲ値の指定
実施の形態１の変形例（３）と同様に、本実施の形態のＡｔｔｅｓｔａｔｉｏｎ処理においても、検証側の機器は、ノンスとともに何れか一つ（複数でも良い）のＰＣＲ値を示す識別情報を送信し、証明側の機器は識別情報の示すＰＣＲ値のみを読み出して署名データを生成し送信する。これに合わせて、ログ情報についても、受信した識別情報のＰＣＲ値に係るログ情報のみを抽出して送信するとしてもよい。【０５１１】
（２）複数のメモリカード
本実施の形態では１枚のメモリカード＃２が複数の端末装置に装着される場合を例に説明してきたが、逆に、１台の端末装置＃１に複数のメモリカードが装着される場合も考えられる。
この場合、端末装置＃１は、過去に装着されたメモリカードの機器ＩＤを記憶している。また、各機器ＩＤと対応する検証データ（正規ＰＣＲ値群、正規ＳＭＬ）を記憶している。検証部３２８１は、現在装着されているメモリカードを示す機器ＩＤと対応する検証データを選択し、端末装置が検証装置となるＡｔｔｅｓｔａｔｉｏｎにおいて、選択した検証データを用いる。
３．  実施の形態３
３．１  概要
本実施の形態も、実施の形態２と同様に、アプリケーションとして、再生制御プログラムを有する端末装置３３０１（証明装置）と暗号化コンテンツを保持するメモリカード３３０２（検証装置）から構成される。【０５１２】
端末装置３３０１は、それぞれ個別の提供者から提供された２個のＴＰＭを搭載している。ここでは、一例としてデバイス製造者の提供したＴＰＭとネットワークプロバイダにより提供されたＴＰＭとを搭載している。説明の便宜上前者をＴＰＭ＃１、後者をＴＰＭ＃２と記載する。
このように1台の端末に複数の提供者からのTPMが搭載されるモデルを、ＴＣＧ規格では、マルチステークホルダーモデルと呼ぶ
各ＴＰＭは、それぞれ異なるプログラムのＰＣＲ値及びＳＭＬを管理している。【０５１３】
メモリカード３３０２は、先ず下位層のプログラムを管理しているＴＰＭ＃１との間でＡｔｔｅｓｔａｔｉｏｎを行い、検証の結果、下位層のプログラム群の構成が正当であることが証明されると、上位層のプログラム（アプリケーション）を管理するＴＰＭ＃２との間でＡｔｔｅｓｔａｔｉｏｎを行い、上位層のプログラム構成が正当であることを確認する。【０５１４】
また、端末装置３３０１内においても、下位のプログラム群を管理するＴＰＭ＃１が上位のプログラムを管理するＴＰＭ＃２の正当性を検証し、正当なＴＰＭであるか否かを検証し、正当であると証明されるとＴＰＭ＃１の管理するプログラム群のうち最上位のプログラムと対応するＰＣＲ値を出力し、ＴＰＭ＃２は、受け取ったＰＣＲ値を用いて、ＴＰＭ＃２の管理するプログラムのＰＣＲ値を算出する。【０５１５】
また、検証の結果、ＴＰＭ＃２が不正であると判断すると、ＴＰＭ＃２への電力供給を停止する。
図４４は、各機器の構成及び各構成の動作を示す構成図である。図中の矢印は、各機器内及び機器間のデータフローを示している。また、図中において、各機器の構成及び各構成の保持するデータには、数字のみの参照符号を付しており、動作を示す部分には「Ｓ」で始まるステップ番号を付している。以下、図４４を用いて、各機器の構成及び、動作について説明する。
３．２  端末装置３３０１の構成
端末装置３３０１は、再生制御部３３１１、ＴＰＭ＃２（３３１２）、メモリ３３１３、ＲＴＭ３３１８、ログ記憶部３３１９、証明書記憶部３３２６、ＴＰＭ＃１（３１３４）から構成される。これらの他にも、各種のデータ及びプログラムを記憶している不揮発性の記憶部、利用者の操作を受け付ける入力部、表示部、メモリカードを装着し、各種の情報の入出力及び電力供給を行う入出力部などを備えるが、図４２では、これらを省略し、Ａｔｔｅｓｔａｔｉｏｎに関連する部分のみを記載している。【０５１６】
（１）再生制御部３３１１
再生制御部３３１１は、ＣＰＵが、メモリ３３１３上にロードされた再生制御プログラム３３１４を実行することにより実現される機能部であって、メモリカード３３０２から、暗号化コンテンツを読み出し、読み出した暗号化コンテンツを復号、伸長して再生する。【０５１７】
（２）ＴＰＭ＃２（３３１２）
ＴＰＭ＃２は、自身を示すＴＰＭ識別子「ＩＤ＃２」を記憶している。
また、ＴＰＭ＃２は、上位層のプログラムを示す識別情報を１以上記憶している。ＴＰＭ＃２は、記憶している識別情報の示すプログラムの、正当性を示す情報（ＰＣＲ値及びＳＭＬ）を管理する。ここでは、具体的には再生制御プログラム３３１４を示す識別情報を記憶しており、このプログラムの完全性を示す情報を生成及び管理する。【０５１８】
また、図中の「ＥＫ＃２」は、ＴＰＭ＃２に固有のＥＫ秘密鍵を示しており、「ＡＩＫ＃２」は、ＡＩＫ秘密鍵を示しており、ＰＣＲ＃２は、ＴＰＭ＃２の記憶しているＰＣＲ値群を示す。
ＴＰＭ＃２は、ＲＴＭ３３１８から、各プログラムを示す識別情報とそのプログラムのインテグリティ値を受け取る。受け取った識別情報が、自身の管理するプログラムの識別情報と一致すれば、受け取ったインテグリティ値を用いて、ＰＣＲ値を算出し、記憶する。また、自身の記憶しているＰＣＲ＃２の履歴をログ記憶部３３１９へ書き込む。受け取った識別情報が、自身の管理するプログラムの識別情報と一致しなければ、受け取ったデータを破棄する。【０５１９】
また、ＴＰＭ＃２（証明側）は、ＴＰＭ＃１（検証側）による正当性検証を受ける。ここでの検証方法は任意であっては、一例として、チャレンジ＆レスポンスのような所定の演算を含むものであっても良いし、ＩＤチェックや証明書チェックのような簡単な検証であってもよい。
検証の結果ＴＰＭ＃１から、正当であると認められると、ＴＰＭ＃２は、ＴＰＭ＃１の管理するプログラム群のうち、最上位のプログラムであるＯＳ３３１６と対応するＰＣＲ値を受け取る。これを受け取ると、受け取ったＰＣＲ値をＰＣＲ０として記憶する。【０５２０】
再生制御プログラム３３１４がメモリにロードされるとき、記憶しているＰＣＲ０とＲＴＭ３３１８から受け取った、再生制御プログラム３３１４のインテグリティ値とを基に再生制御プログラムのＰＣＲ値（ＰＣＲ１）を算出して記憶する。
さらに、ＴＰＭ＃２は、メモリカード３３０２から、ＴＰＭ識別子「ＩＤ＃２」、ノンス＃２及びＡｔｔｅｓｔａｔｉｏｎ要求を受ける。これらを受け取ると、上記の実施の形態と同様に、自身が管理するプログラム群に関する正当性を証明するＡｔｔｅｓｔａｔｉｏｎ処理を行う。（詳細は、下記の動作において説明する）
Ａｔｔｅｓｔａｔｉｏｎにより、ＴＰＭ＃２の管理するプログラムの正当性が証明されると、ＴＰＭ＃２は、メモリカード３３０２から暗号化コンテンツ及び、暗号化コンテンツ鍵を受け取る。暗号化コンテンツ鍵は、ＡＩＫ＃２と対になる公開鍵（以下ＡＩＫ＃２Ｐと記載する）を用いて、コンテンツ鍵を暗号化して生成されたものである。暗号化コンテンツは、音楽データを圧縮して生成された圧縮音楽データを、コンテンツ鍵を用いて暗号化したものである。【０５２１】
これらを受け取ると、ＴＰＭ＃２は、ＡＩＫ＃２を用いて暗号化コンテンツ鍵を復号してコンテンツ鍵を生成し、生成したコンテンツ鍵と受け取った暗号化コンテンツとを再生制御部３３１１へ出力する。
なお、暗号化コンテンツ鍵の生成に用いられる暗号鍵はＡＩＫ＃２Ｐに限定されるものではない。例えば、使い捨てのセッション鍵を用いるなど、他の鍵を用いても良い。【０５２２】
（３）メモリ３３１３
メモリ３３１３は、主にＲＡＭから構成され、ＣＰＵにより実行される各種のプログラムを記憶している。
図４４では、一例として再生制御プログラム３３１４、ＯＳ３３１６が記憶されている。【０５２３】
再生制御プログラム３３１４は、メモリカード３３０２に記憶されている暗号化コンテンツを復号、伸長し再生する手順を含む。
ＯＳ３３１６は、アプリケーション（ここでは、音楽再生プログラム）を呼び出す手順を含む。その他にも、利用者による操作の受け付け、メモリカードの検出など、端末装置３３０１の基本的な動作を制御する手順を含むプログラムある。ＯＳ３３１６は、ＴＰＭ＃１により、ＴＰＭ＃２が正当であると判断されると、再生制御プログラム３３１４をメモリ３３１３にロードする。【０５２４】
（４）ＲＴＭ３３１８
ＲＴＭ３３１８は、上記の実施の形態１において説明したＲＴＭ３１０７と同様にＢＩＯＳに含まれるＣＲＴＭ及び各プログラムに含まれるＲＴＭコードをＣＰＵが実行することにより実現される機能部である。なお、その他の実施の形態１における変形例（４）で説明したように、各プログラムがＲＴＭコードを含まない構成であってもよい。【０５２５】
ＲＴＭ３３１８は、次に、メモリ３３１３にロードされるプログラムのインテグリティ値を計測し、計測したインテグリティ値と計測対象となったプログラムを示す識別情報とを、ＴＰＭ＃１及びＴＰＭ＃２双方に出力する。
（５）ログ記憶部３３１９
ログ記憶部３３１９は、ＲＡＭなどの揮発性メモリから構成され、ＳＭＬ＃２（３３２２）及びＳＭＬ＃１（３３２３）を記憶している。【０５２６】
ＳＭＬ＃２（３３２２）は、ＴＰＭ＃２の管理するプログラムと対応するＰＣＲ＃２の履歴情報を含む。
ＳＭＬ＃１（３３２３）は、ＴＰＭ＃１の管理するプログラム群と対応するＰＣＲ値群（以下ＰＣＲ＃１）の履歴情報を含む。
（６）証明書記憶部３３２６
証明書記憶部３３２６は、フラッシュメモリなど不揮発性のメモリにより構成され、一例として、ＥＫ証明書＃２（３３２７）、ＡＩＫ証明書＃２（３３２８）、ＥＫ証明書＃１（３３２９）及びＡＩＫ証明書＃１（３３３１）を記憶している。【０５２７】
ＥＫ証明書＃２（３３２７）は、ＴＰＭ＃２の保持しているＥＫ＃２と対応するＥＫ公開鍵の正当性を証明する証明書である。
ＡＩＫ証明書＃２（３３２８）は、ＴＰＭ＃２の保持しているＡＩＫ＃２と対応する公開鍵（ＡＩＫ＃２Ｐ）の正当性を証明する証明書である。
ＥＫ証明書＃１（３３２９）は、ＴＰＭ＃１の保持しているＥＫ＃１と対応するＥＫ公開鍵の正当性を証明する証明書である。【０５２８】
ＡＩＫ証明書＃１（３３３１）は、ＴＰＭ＃１の保持しているＡＩＫ＃１と対応するＡＩＫ公開鍵の正当性を証明する証明書である。
各証明書の構成については、実施の形態１において説明した通りであるので、ここでは説明を省略する。
また、これらに加えて、各ＴＰＭに対応するＰＦ証明書（具体的には、ネットワークプロバイダの証明書及び端末装置製造者の証明書）を記憶していても良い。【０５２９】
（７）ＴＰＭ＃１（３３３４）
ＴＰＭ＃１（３３３４）は、デバイス製造者により提供されたものであり、自身を識別するＴＰＭ識別子「ＩＤ＃１」及び、ＢＩＯＳからＯＳまでの下位層のプログラム群の識別情報を記憶している。ＴＰＭ＃１は、記憶している識別情報の示す各プログラムの正当性を示す情報（ＰＣＲ値及びＳＭＬ）を管理する。【０５３０】
また、図中の「ＥＫ＃１」は、ＴＰＭ＃１に固有のＥＫ秘密鍵を示しており、「ＡＩＫ＃１」は、ＡＩＫ秘密鍵を示しており、ＰＣＲ＃１は、ＴＰＭ＃１の記憶しているＰＣＲ値群を示す。
ＴＰＭ＃１は、ＲＴＭ３３１８からインテグリティ値とインテグリティ値の計測対象となったプログラムを示す識別情報とを受け取る。受け取った識別情報と記憶している識別情報の何れかと一致すれば、受け取ったインテグリティ値を基に識別情報の示すプログラムのＰＣＲ値を算出し、記憶する。一致しない場合は、受け取ったインテグリティ値を破棄する。【０５３１】
また、メモリ３３１３にＯＳ３３１６がロードされ、かつ、メモリカード３３０２のブート処理が完了すると、ＴＰＭ＃１は、メモリカード３３０２から、ＴＰＭ識別子「ＩＤ＃１」、ノンス＃１及びＡｔｔｅｓｔａｔｉｏｎ要求を受け取る。これらを受け取ると、ＴＰＭ＃１は、メモリカード３３０２（検証装置）との間でＡｔｔｅｓｔａｔｉｏｎｓ処理を行う。【０５３２】
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃１の管理するプログラム群の正当性が証明されると、ＴＰＭ＃１は、次に、ＴＰＭ＃２を検証する。検証の結果、ＴＰＭ＃２が正当であると判断すると、ＴＰＭ＃１の管理するプログラム群のうち、最上位層のプログラムであるＯＳ３３１６と対応するＰＣＲ値（ＰＣＲ（ＯＳ））をＴＰＭ＃２へ出力する。
３．３  メモリカード３３０２の構成
図４４には、メモリカード３３０２の機能的構成を示している。図４４に示すように、メモリカード３３０２は、検証部３３４１、ＤＲＭ処理部３３４２、コンテンツ記憶部３３４３及び検証データ記憶部３３４４から構成される。この他にも、端末装置３３０１との間でデータの入出力を行い電力の供給を受ける入出力部、ブートプログラムを初めとする各種のプログラムを記憶している不揮発性メモリなどを含んでいるが、ここでは、Ａｔｔｅｓｔａｔｉｏｎ処理に関連する部分のみを記載している。【０５３３】
以下に、各機能部について説明する。
（１）検証部３３４１
検証部３３４１は、メモリカード３３０２が装着される端末装置３３０１に搭載されており下位層のプログラム群を管理するＴＰＭのＴＰＭ識別子「ＩＤ＃１」と、上位層のプログラムを管理するＴＰＭのＴＰＭ識別子「ＩＤ＃２」とを記憶している。【０５３４】
メモリカード３３０２のブート処理が終了すると、検証部３３４１は、ノンス＃１を生成し、自身の記憶しているＩＤ＃１と生成したノンス＃１と、Ａｔｔｅｓｔａｔｉｏｎ要求とを端末装置３３０１へ出力する。これをトリガとして、端末装置３３０１内のＴＰＭ＃１との間でＡｔｔｅｓｔａｔｉｏｎ処理行う。
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃１の管理するプログラム群の構成が不正であると判断すると、検証部３３４１は、以後、メモリカード３３０２と端末装置３３０１との通信を禁止する。【０５３５】
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃１の管理するプログラム群の構成が正当であると判断すると、検証部３３４１は、検証が成功であることを端末装置３３０１内のＴＰＭ＃１へ通知する。
前記通知の後、検証部３３４１は、ノンス＃２を生成し、記憶しているＩＤ＃２と生成したノンス＃２と、Ａｔｔｅｓｔａｔｉｏｎ要求を端末装置３３０１へ出力する。これをトリガとして、端末装置３３０１内のＴＰＭ＃２との間でＡｔｔｅｓｔａｔｉｏｎ処理を行う。【０５３６】
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃２の管理するプログラム群の構成が不正であると判断すると、検証部３３４１は、以後、メモリカード３３０２と端末装置３３０１との通信を禁止する。  
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃２の管理するプログラム群の構成が正当であると判断すると、検証部３３４１は、ＴＰＭ＃２とのＡｔｔｅｓｔａｔｉｏｎにおいて受け取ったＡＩＫ証明書＃２からＡＩＫ＃２Ｐを抽出し、抽出したＡＩＫ＃２ＰとＴＰＭ＃２を示すＩＤ＃２とをＤＲＭ処理部３３４２へ出力する。【０５３７】
（２）コンテンツ記憶部３３４３
コンテンツ記憶部３３４３は、フラッシュメモリなどの不揮発性の記憶媒体により構成され、暗号化コンテンツ及び暗号化コンテンツに対応する権利情報を記憶している。権利情報には暗号化コンテンツを復号するためのコンテンツ鍵、コンテンツの視聴が許可される期限などが含まれている。【０５３８】
（３）ＤＲＭ処理部３３４２
ＤＲＭ処理部３３４２は、端末装置３３０１の通信機能を利用して、コンテンツプロバイダのサーバ装置との間でコンテンツ購入に関する処理を行ったり、コンテンツ記憶部３３４３に記憶されている各暗号化コンテンツの有効期限の管理を行ったりする。
また、ＤＲＭ処理部３３４２は、検証部３３４１から、コンテンツ再生に係るプログラムを管理するＴＰＭ＃２を示すＩＤ＃２と公開鍵ＡＰＩ＃２Ｐとを受け取り記憶する。【０５３９】
ＤＲＭ処理部３３４２は、端末装置３３０１を操作する利用者によるコンテンツ視聴要求を受ける。コンテンツの視聴要求を受けると、ＤＲＭ処理部３３４２は、検証部３３４１から受け取ったＡＩＫ＃２Ｐを用いて、コンテンツ鍵を暗号化して暗号化コンテンツ鍵を生成し、生成した暗号化コンテンツ鍵と、ＩＤ＃２と、暗号化コンテンツとを、端末装置３３０１へ出力する。【０５４０】
（４）検証データ記憶部３３４４
検証データ記憶部３３４４は、不揮発性の記憶媒体により構成され、一例として、検証データ３３４７、ＣＡ公開鍵３３５１及び検証データ３３５２とを記憶している。
ＣＡ公開鍵は、ＡＩＫ証明書＃１及びＡＩＫ証明書＃２の発行元である第三者機関の公開鍵であって、これらの証明書に含まれる署名データの生成に用いられたＣＡ秘密鍵と対になる鍵である。【０５４１】
検証データ３３４７は、検証部３３４１と端末装置３３０１内のＴＰＭ＃２とのＡｔｔｅｓｔａｔｉｏｎに用いられる検証データである。以下、検証データ＃２と記載する。
検証データ３３５２は、検証部３３４１と端末装置３３０１内のＴＰＭ＃１とのＡｔｔｅｓｔａｔｉｏｎに用いられる検証データである。以下、検証データ＃１と記載する。
具体的に、検証データ＃１は、ノンス＃１（３３５３）と、正規ＰＣＲ＃１（３３５４）と、正規ＳＭＬ＃１（３３５６）から構成される。これらのデータについては、上記の実施の形態１、実施の形態２において説明した通りであるので詳細な説明は割愛する。
３．４  動作
以下に、端末装置３３０１の起動からコンテンツ再生に至るまでの動作について、図４４を用いて説明する。なお、メモリカード３３０２は、端末装置３３０１に装着されており、端末装置３３０１から電力が供給され、一連のブート処理を終了しているとする。【０５４２】
メモリカード３３０２のブート処理が終了すると、検証部３３４１は、ノンス＃１を生成し（ステップＳ３１３１）、生成したノンス＃１、下位層のプログラムを管理するＴＰＭを示すＩＤ＃１を端末装置３３０１送信し、Ａｔｔｅｓｔａｔｉｏｎを要求する（ステップＳ３１３２）。送信と共に、検証部３３４１は、生成したノンス＃１を検証データ記憶部３３４４へ書き込む（ステップＳ３１３３）。【０５４３】
端末装置３３０１のＴＰＭ＃１は、メモリカード３３０２からＩＤ＃１、ノンス＃１及びＡｔｔｅｓｔａｔｉｏｎ要求を受け取る（ステップＳ３１３２）。これらを受け取ると、ＴＰＭ＃１は、自身の保持するＡＩＫ＃１を用いて、受け取ったノンス＃１及び記憶しているＰＣＲ＃１に署名生成アルゴリズムを施して署名データ「ＡＩＫ＃１（ノンス＃１、ＰＣＲ＃１）」を生成する（ステップＳ３１３４）。【０５４４】
次に、自身を示すＩＤ＃１と、生成した署名データと、ＡＩＫ証明書＃１と、ＳＭＬ＃１とをメモリカード３３０２へ出力する（ステップＳ３１３６）。
メモリカード３３０２の検証部３３４１は、署名データ「ＡＩＫ＃１（ノンス＃１、ＰＣＲ＃１）」と、ＡＩＫ証明書＃１と、ＳＭＬ＃１とを受け取る（ステップＳ３１３６）。これらを受け取ると、検証部３３４１は、検証データ記憶部３３４４から、ＣＡ公開鍵３３５１と検証データ＃１とを読み出し（ステップＳ３１３７）、読み出したＣＡ公開鍵３３５１と検証データ＃１とを用いて、受信したデータを検証する（ステップＳ３１３８）。具体的には、ＡＩＫ証明書＃１の検証、署名データの検証（ノンス＃１及びＰＣＲ＃１の検証）、ＳＭＬ＃１の検証を順次行う。【０５４５】
検証の結果、ＴＰＭ＃１の管理するプログラム群の正当性が証明されると、検証部３３４１は、ＩＤ＃１と検証結果（ＯＫ）を端末装置３３０１へ出力する（ステップＳ３１３９）。
端末装置３３０１のＴＰＭ＃１は、メモリカード３３０２から、ＩＤ＃１と検証結果（ＯＫ）とを受け取る（ステップＳ３１３９）。これらを受け取ると、ＴＰＭ＃１は、ＴＰＭ＃２の正当性を検証し、正当であると判断すると、ＯＳ３３１６と対応するＰＣＲ値（以下、ＰＣＲ（ＯＳ）と記載する）をＴＰＭ＃２へ出力する（ステップＳ３１４１）。【０５４６】
ＴＰＭ＃２は、受け取ったＰＣＲ（ＯＳ）をＰＣＲ０として記憶し、続いて、ＰＣＲ０及び再生制御プログラム３３１４のインテグリティ値から、ＰＣＲ１を算出する。
ＴＰＭ＃１のＡｔｔｅｓｔａｔｉｏｎが成功すると、メモリカード３３０２の検証部３３４１は、ノンス＃２を生成し（ステップＳ３１４４）、生成したノンス＃２と記憶しているＩＤ＃２とを端末装置３３０１へ出力し、Ａｔｔｅｓｔａｔｉｏｎを要求する（ステップＳ３１４６）。【０５４７】
端末装置３３０１のＴＰＭ＃２は、メモリカード３３０２から、ＩＤ＃２とノンス＃２とＡｔｔｅｓｔａｔｉｏｎ要求を受け取る（ステップＳ３１４６）。これらを受け取るとＴＰＭ＃２は、ＡＩＫ＃２を用いて、受け取ったノンス＃２と保持しているＰＣＲ＃２とに署名生成アルゴリズムを施して署名データ「ＡＩＫ＃２（ノンス＃２、ＰＣＲ＃２）」を生成する（ステップＳ３１４９）。【０５４８】
続いて、ＴＰＭ＃２は、ＩＤ＃２と、生成した署名データと、ＡＩＫ証明書＃２と、ＳＭＬ＃２とをメモリカード３３０２へ出力する（ステップＳ３１５１）。
メモリカード３３０２の検証部３３４１は、端末装置３３０１からＩＤ＃２と、署名データと、ＡＩＫ証明書＃２と、ＳＭＬ＃２とを受け取る（ステップＳ３１５１）。これらを受け取ると、検証部３３４１は、検証データ記憶部３３４４から、ＣＡ公開鍵３３５１と検証データ＃２とを読み出し（ステップＳ３１５２）、読み出したＣＡ公開鍵３３５１と検証データ＃２とを用いて受け取ったデータを検証する（ステップＳ３１５３）。具体的には、ＡＩＫ証明書＃２の検証、署名データの検証、ＳＭＬ＃２の検証を順次行う。【０５４９】
検証が成功し、ＴＰＭ＃２の管理するプログラム群の構成が正当であると判断すると、検証部３３４１は、受け取ったＩＤ＃２と、ＡＩＫ証明書＃２に含まれるＡＩＫ＃２ＰとをＤＲＭ処理部３３４２へ出力する（ステップＳ３１５４）。
ＤＲＭ処理部３３４２は、受け取ったＩＤ＃２とＡＩＫ＃２Ｐを記憶しておく。利用者の操作によりコンテンツの再生を要求されると、ＤＲＭ処理部３３４２は、要求に対応する暗号化コンテンツ及びコンテンツ鍵をコンテンツ記憶部３３４３から読み出す（ステップＳ３１５５）。続いて、記憶しているＡＩＫ＃２Ｐを用いてコンテンツ鍵を暗号化する（ステップＳ３１５６）。次に、ＤＲＭ処理部３３４２は、記憶しているＩＤ＃２と、読み出した暗号化コンテンツと、生成した暗号化コンテンツ鍵とを端末装置３３０１へ出力する（ステップＳ３１５８）。【０５５０】
端末装置３３０１のＴＰＭ＃２は、メモリカード３３０２からＩＤ＃２と、暗号化コンテンツと、暗号化コンテンツ鍵とを受け取る（ステップＳ３１５８）。これらを受け取ると、受け取った暗号化コンテンツをそのまま再生制御部３３１１へ出力し、次に、記憶しているＡＩＫ＃２を用いて暗号化コンテンツ鍵を復号してコンテンツ鍵を生成する（ステップＳ３１６１）。次に、ＴＰＭ＃２は、生成したコンテンツ鍵を再生制御部３３１１へ出力する（ステップＳ３１６２）。【０５５１】
再生制御部３３１１は、ＴＰＭ＃２から、暗号化コンテンツ及びコンテンツ鍵を受け取る（ステップＳ３１６２）。これらを受け取ると、受け取ったコンテンツ鍵で暗号化コンテンツを復号してコンテンツを生成し、生成したコンテンツを再生する（ステップＳ３１６３）。復号により生成されたコンテンツが圧縮されていれば、伸長して再生する。
３．５  実施の形態３に関する変形例
（１）ＴＰＭ間の検証
上記の実施の形態では、ＴＰＭ＃１の管理するプログラム群の正当性が証明された後、ＴＰＭ＃１がＴＰＭ＃２を検証するとしたが、これは必須ではない。【０５５２】
ＴＰＭ＃１の管理するプログラム群の正当性が証明された後、ＴＰＭ＃１はＴＰＭ＃２をアクティベイトし、ＯＳのＰＣＲ値を出力するだけでも良い。
逆に、メモリカード３３０２とのＴＰＭ＃１とのＡｔｔｅｓｔａｔｉｏｎに先立って、ＴＰＭ間で相互認証を行うとしても良い。
また、ＴＰＭ＃１が、ＴＰＭ＃２の正当性を検証する方法について、上記の実施の形態３では、詳細には言及していないが、任意の方法で検証すればよい。例えば、チャレンジ＆レスポンスのような、所定の演算により正当性を確認しても良いし、ＴＰＭ識別子をチェックするような簡易な方法でも良い。【０５５３】
また、上記の実施の形態３では、ＴＰＭ＃１によるＴＰＭ＃２の正当性検証が失敗した場合、ＴＰＭ＃１は、ＴＰＭ＃２への電力供給を停止すると記載したが、これに限定されるものではなく、例えばＴＰＭ＃２の起動を停止してもよいし、ＴＰＭ＃２の機能を制限するとしてもよい。
（２）ＴＰＭ＃２が独立して動作 
上記の実施の形態３では、ＴＰＭ＃２は、ＴＰＭ＃１からＯＳ３３１６と対応するＰＣＲ（ＯＳ）を受け取り、これをＰＣＲ０として記憶し、ＰＣＲ０と再生制御プログラム３３１４のインテグリティ値とから再生制御プログラム３３１４のＰＣＲ値（ＰＣＲ１）を算出しているがこの構成に限るものではない。【０５５４】
一例として、ＴＰＭ＃２内の不揮発性のメモリに所定の初期値ＰＣＲ０を記憶しておき、これを用いてＰＣＲ１を算出しても良い。このように、ＴＰＭ＃２は、ＴＰＭ＃１とは独立に動作する構成でも良い。
このようにＴＰＭ＃２が、独自にＰＣＲ値を算出する場合、ＴＰＭ間の検証方法は、ＴＰＭ＃１が検証装置、ＴＰＭ＃２が証明装置となって、Ａｔｔｅｓｔａｔｉｏｎを行っても良い。【０５５５】
（３）ＴＰＭ＃２のソフトウェア実装
上記の実施の形態３では、端末装置３３０１は、ハードウェアであるＴＰＭ＃２を搭載しているとして説明してきた。しかし、ＴＰＭ＃２の機能の一部又は全部をソフトウェアにより実現しても良い。
この場合、ＴＰＭ＃１は、メモリカード３３０２とのＡｔｔｅｓｔａｔｉｏｎが成功すると、ＴＰＭ＃２の機能を担うハードウェア部分及びソフトウェア部分をそれぞれ検証する。具体的な検証方法は任意である。一例として、ＴＰＭ＃１は、予めソフトウェア部分の検証データ（ハッシュ値など）を保持しておき、メモリにロードされる前にソフトウェア部分の証明データ（ハッシュ値など）を算出し、両者を比較することで、ソフトウェア部分の正当性を検証する。【０５５６】
また、ＴＰＭ＃２のハードウェア部分の検証については、上記のＴＰＭ＃２の検証と同様にＩＤの確認、チャレンジ＆レスポンスなどにより正当性を検証する。
（４）検証失敗後の動作
上記の実施の形態３では、Ａｔｔｅｓｔａｔｉｏｎにより、端末装置３３０１の構成が不正であると判断されると、メモリカード３３０２内の検証部３３４１は、端末装置３３０１との通信を禁止するとしているが、このような構成に限定されるものではない。【０５５７】
例えば、メモリカードが端末装置に提供する機能、データを制限するとしても良い。
また、端末装置３３０１は、自身の備えるプログラムを更新する更新制御部を備えていても良い。
この場合、端末装置３３０１の構成が不正であると判断されると更新制御部は、外部サーバ（端末製造者のサーバ、ネットワークプロバイダのサーバ、コンテンツプロバイダのサーバ）から、更新プログラムをダウンロードし、ダウンロードした更新プログラムにより、各プログラムを最新バージョンに書き換えた後、端末装置３３０１を再起動するとしてもよい。【０５５８】
（５）端末装置の構成通知
本実施の形態では、メモリカード３３０２は、予め、端末装置３３０１に２つのＴＰＭが搭載されていることを知っており、各ＴＰＭに対応する検証データを保持しているとしたが、端末装置に装着された時点で、端末装置の内部構成を示す構成情報を取得してもよい。構成情報には、端末装置の搭載するＴＰＭの数及び、ＴＰＭ識別子、さらに、複数のＴＰＭを搭載する場合は、各ＴＰＭの管理するプログラムの上下関係を示す階層情報（上記実施の形態ではＴＰＭ＃１が下位層のプログラム群、ＴＰＭ＃２が上位層のプログラム群と対応している）が含まれる。【０５５９】
この場合、メモリカード３３０２は、さらに、検証データ＃３を記憶している。検証データ＃３は、ＴＰＭを１個のみ搭載している端末装置とのＡｔｔｅｓｔａｔｉｏｎに用いられる正規ＰＣＲ＃３及び正規ＳＭＬ＃３を含む。
メモリカード３３０２の検証部３３４１は、取得した構成情報により検証の手順を選択する。端末装置に２個のＴＰＭが搭載されている場合には、上記の実施の形態３と同様に、下位層プログラム群を管理するＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行った後、上位層のプログラム群を管理するＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行う。【０５６０】
端末装置が１個のＴＰＭを搭載している場合には、検証部３３４１は、検証データ＃３を用いて、端末装置の構成の正当性を検証する。
４．  実施の形態４
４．１  概要
端末装置に記憶されているプログラムを更新する必要が生じたとき、更新プログラムを、メモリカードを介して配布する場合がある。【０５６１】
ここでは、端末装置内のプログラムのうちキャリア３３７３（通信事業者）が提供しているプログラムを更新するための更新プログラムを、メモリカードを介して配布する。端末装置には、コンピュータにより動作の一部又は全部を制御される様々な機器が該当するが、例えば、携帯電話、コンテンツ再生装置、ゲーム機などが該当する。
端末装置３３７１は、上記の実施の形態１と同様にＴＰＭを搭載しており、起動してからメモリにロードされる各プログラムの完全性及びプログラム構成の正当性を示すＰＣＲ値群及びＳＭＬ（ＰＣＲ値群の履歴を含む）を生成し記録する。また、端末装置３３７１は、キャリアにより提供されたプログラム（キャリア提供プログラム）を記憶している。【０５６２】
キャリア３３７３は、メモリカード３３７２に更新プログラムと、メモリカードが正当なキャリアから配布されたことを証明するキャリア証明書とを記録したメモリカードを配布する場合を想定して説明する。
メモリカード３３７２（検証装置）は、端末装置３３７１（証明装置）に装着されると、端末装置３３７１との間でＡｔｔｅｓｔａｔｉｏｎを行い、端末装置３３７１の構成の正当性を検証する。端末装置３３７１の構成が正当であることが証明されると、メモリカード３３７２は、記憶しているデータを端末装置３３７１へ出力する。【０５６３】
端末装置３３７１は、メモリカード３３７２から出力された更新プログラムによる更新を行う前に、キャリア証明書の検証を行い、自身に装着されているメモリカード３３７２が正当なキャリア３３７３から配布されたメモリカードであることを確認する。
４．２  メモリカード３３７２の構成
メモリカード３３７２は、上記の実施の形態と同様に、入出力部、制御部、メモリ、検証部、検証データ記憶部など各機能部により動作するが、これらは、上記の実施の形態と同様であるので、ここでは、具体的な構成の説明は省略し、メモリカード３３７２の保持するデータについて説明する。【０５６４】
（１）更新プログラム３３７６
更新プログラム３３７６は、端末装置３３７１の保持するキャリア提供プログラム３３８４の一部又は全部を書き換える手順や書き換える内容を含む。更新プログラム３３７６は、端末装置３３７１内の更新制御部３３８２により解読され実行される。
（２）キャリア証明書３３７７
キャリア証明書３３７７は、メモリカード３３７２が正当なキャリア３３７３により配布されたことを示す証明書であって、更新プログラム３３７６をハッシュ関数に代入して生成された更新プログラムハッシュ値３３７８と、キャリア３３７３の秘密鍵（以下、キャリア秘密鍵と呼ぶ）を用いて、少なくとも更新プログラムハッシュ値３３７８に署名生成アルゴリズムを施して生成された署名データ３３７９とを含む。これら以外にも、発行元であるキャリア３３７３を示す識別情報、証明書の形式を示す形式情報、署名生成アルゴリズムを示す情報などを含んでいる。
４．３  端末装置３３７１
端末装置３３７１についても、メモリカードと同様に、各機能部を備え、それらが動作することにより各機能を実現するが、ここでは、本実施の形態に特に関係のある構成及びデータのみを記載し、その他の構成及びデータの記載は省略する。【０５６５】
端末装置３３７１は、キャリア３３７３により提供されたキャリア提供ＴＰＭ３３８１を搭載している。また、キャリア３３７３により提供されたキャリア提供プログラム３３８４、キャリア秘密鍵と対になるキャリア公開鍵３３８６を記憶している。また、プログラムの更新を実行する更新制御部３３２８を備える。
以下に、端末装置３３７１の備える構成及びデータについて説明する。【０５６６】
（１）キャリア公開鍵３３８６
キャリア公開鍵３３８６は、キャリア秘密鍵と対なる公開鍵であって、製造時に、端末装置３３７１に書き込まれる。又は、出荷後にネットワーク、メモリカードなどを介して安全に取得しても良い。
キャリア秘密鍵とキャリア公開鍵３３８６の鍵ペアは、ＲＳＡ暗号に対応している。【０５６７】
（２）キャリア提供プログラム３３８４
キャリア提供プログラム３３８４は、キャリア３３７３により提供されるプログラムであって、端末装置３３７１は、このプログラムを実行することで、キャリア３３７３の提供する所定のサービスを利用することができる。  
（３）キャリア提供ＴＰＭ３３８１
キャリア提供ＴＰＭ３３８１は、キャリア３３７３により提供されたＴＰＭであって、少なくともキャリア提供プログラム３３８４と対応するＰＣＲ値及びＳＭＬを生成し、記録する機能を備える。【０５６８】
また、更新制御部３３８２からキャリア証明書を受け取り、キャリア証明書の検証を依頼される。この依頼を受けると、キャリア提供ＴＰＭ３３８１は、キャリア公開鍵３３８６を読み出し、読み出したキャリア公開鍵３３８６を用いて、キャリア証明書に含まれる署名データの検証を行い、検証結果を更新制御部３３８２に通知する。
（４）更新制御部３３８２
更新制御部３３８２は、キャリア提供ＴＰＭ３３８１とメモリカード３３７２によるＡｔｔｅｓｔａｔｉｏｎが成功すると、メモリカード３３７２から更新プログラム３３７６とキャリア証明書３３７７を読み出す。【０５６９】
これらを読み出すと、読み出したキャリア証明書をキャリア提供ＴＰＭ３３８１へ出力し、キャリア証明書の検証を依頼する。
続いて、キャリア提供ＴＰＭ３３８１からキャリア証明書の検証結果を通知される。検証の失敗を示す検証結果を通知された場合、読み出した更新プログラム及びキャリア証明書を削除し、プログラムの更新を中止する。【０５７０】
検証の成功を示す検証結果を通知された場合、更新制御部３３８２は続いて、読み出した更新プログラムのハッシュ値を算出し、算出したハッシュ値とキャリア証明書に含まれる更新プログラムハッシュ値３３７８とを比較する。
両者が一致する場合、更新制御部３３８２は、読み出した更新プログラムに従って、キャリア提供プログラム３３８４の一部又は全部を書き換える。【０５７１】
両者が一致しない場合、読み出した更新プログラムが不正に改竄されている可能性があるので、更新制御部３３８２は更新を中止し、読み出した更新プログラム３３７６及びキャリア証明書を削除する。
４．４  動作
以下に、図４５を用いて、端末装置３３７１によるプログラム更新の動作を、順を追って説明する。なお、ここでは、メモリカード３３７２は、正当なキャリアから発行され、端末装置３３７１に装着されるまでに、記録しているデータに不正な改竄をされていないものとして説明する。【０５７２】
メモリカード３３７２が端末装置３３７１に装着されると、端末装置３３７１内のキャリア提供ＴＰＭ３３８１とメモリカード３３７２（検証装置）はＡｔｔｅｓｔａｔｉｏｎを行う（ステップＳ３１８１）。
Ａｔｔｅｓｔａｔｉｏｎが正常に終了すると、更新制御部３３８２は、メモリカード３３７２は、更新プログラム３３７６及びキャリア証明書３３７７を読み出す（ステップＳ３１８２）。【０５７３】
次に、更新制御部３３８２は、読み出したキャリア証明書をキャリア提供端末へ出力して、検証を依頼する（ステップＳ３１８４）。
キャリア提供ＴＰＭ３３８１は、更新制御部３３８２の依頼を受けると（ステップＳ３１８４）、キャリア公開鍵３３８６を読み出し（ステップＳ３１８６）、読み出した、キャリア公開鍵３３８６を用いてキャリア証明書に含まれる署名データを検証する（ステップＳ３１８７）。【０５７４】
続いて、キャリア提供ＴＰＭ３３８１は、更新制御部３３８２へ検証が成功である旨を通知する（ステップＳ３１８８）。
更新制御部３３８２は、キャリア証明書の検証が成功した旨の通知を受け（ステップＳ３１８８）、続いて、読み出した更新プログラムハッシュ値を算出する。算出したハッシュ値とキャリア証明書に含まれるハッシュ値とが一致することを確認した後、更新プログラムに従ってキャリア提供プログラム３３８４を更新する（ステップＳ３１８２）。
４．５  実施の形態４に関する変形例
（１）コンテンツ再生に関するＴＰＭ
本変形例では、端末装置３３９１は、上記の実施の形態４において説明した端末装置３３７１と同様に、少なくともキャリア提供プログラムを管理するＴＰＭを搭載しており、キャリア３３７３により発行されたメモリカード３３７２を介してキャリア提供プログラム３３８４を更新する。【０５７５】
これに加えて、図４６に示すように、端末装置３３９１はコンテンツプロバイダ（以下ＣＰと記載）３４００により提供されたＣＰ提供再生制御プログラム３３９３を記憶しており、少なくともＣＰ提供再生制御プログラム３３９３の正当性を証明するＰＣＲ値及びＳＭＬを生成、記録するＣＰ提供ＴＰＭ３３９６を搭載している。また、端末装置３３９１にコンテンツカード３３９２が装着されると、所定の検証の後、端末装置３３９１はコンテンツの再生を行う。【０５７６】
端末装置３３９１にメモリカード３３７２が装着された場合の動作は、上記の実施の形態４と同様であるので説明を省略する。
正当なコンテンツプロバイダ３４００により発行されたコンテンツカード３３９２には、暗号化コンテンツ３４０１と暗号化コンテンツ３４０１を復号するための復号鍵３４０２とＣＰ証明書３４０３が記録されている。ＣＰ証明書３４０３は、少なくとも所定の情報と、ＣＰ秘密鍵を用いて前記所定の情報に署名を施して生成された署名データが含まれる。所定の情報とは、一例として、コンテンツプロバイダ３４００を示す識別情報、復号鍵３４０２のハッシュ値などが考えられる。【０５７７】
端末装置３３９１は、ＣＰにより提供され、コンテンツの復号及び再生の手順を含むＣＰ提供再生制御プログラム３３９３と、ＣＰ公開鍵３３９４が記憶されている。ＣＰ公開鍵はＣＰ秘密鍵と対になる鍵である。
以下、端末装置にコンテンツカード３３９２が装着された場合の動作について説明する。【０５７８】
コンテンツカード３３９２が装着されると、端末装置３３９１内のＣＰ提供ＴＰＭ３３９６とコンテンツカード３３９２（検証装置）の間でＡｔｔｅｓｔａｔｉｏｎが行われる（ステップＳ３１９１）。Ａｔｔｅｓｔａｔｉｏｎの結果、ＣＰ提供ＴＰＭ３３９６の管理するプログラム群の構成が正当であることが証明されると、ＣＰ提供再生制御プログラム３３９３は（より正確には、ＣＰＵによりＣＰ提供再生制御プログラム３３９３が実行されることで実現される再生制御部）は、コンテンツカード３３９２から、暗号化コンテンツ３４０１、復号鍵３４０２及びＣＰ証明書３４０３を読み出す（ステップＳ３１９２）。これらを読み出すと、ＣＰ提供再生制御プログラム３３９３は、読み出したＣＰ証明書をＣＰ提供ＴＰＭへ出力し、ＣＰ証明書の検証を依頼する（ステップＳ３１９５）。【０５７９】
ＣＰ提供ＴＰＭ３３９６は、この依頼を受けると、ＣＰ公開鍵を読み出し（ステップＳ）３１９４）、読み出したＣＰ公開鍵を用いてＣＰ証明書に含まれる署名データの検証を行う（ステップＳ３１９５）。続いて、検証の結果をＣＰ提供再生制御プログラムへ通知する（ステップＳ３１９６）。
ＣＰ提供再生制御プログラム３３９３は、ＣＰ証明書が正当である旨の通知を受けると、読み出した復号鍵で暗号化コンテンツを復号し、再生する（ステップＳ３１９７）。【０５８０】
（２）他者の提供したＴＰＭの検証
上記の変形例（１）において、メモリカード及びコンテンツカードは、それぞれ、キャリア提供ＴＰＭ、ＣＰ提供ＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行っているが、例えば、ＣＰにより発行されたコンテンツカード３３９２（検証装置）はキャリア提供ＴＰＭ３３８１ともＡｔｔｅｓｔａｔｉｏｎを行い、メモリカード３３７２（検証装置）は、ＣＰ提供ＴＰＭ３３９６ともＡｔｔｅｓｔａｔｉｏｎを行う構成であっても良い。【０５８１】
また、実施の形態３のように、いずれのカードを装着した場合も、先ず、下位層のプログラムを管理するＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行い、Ａｔｔｅｓｔａｔｉｏｎが成功すると、下位層のプログラムを管理するＴＰＭがもう一方のＴＰＭをアクティベイトし、その後、起動されたＴＰＭ（上位層のプログラム群を管理する）とＡｔｔｅｓｔａｔｉｏｎを行いってもよい。【０５８２】
（３）ＳＩＭカード
実施の形態４において、端末装置はメモリカードに代えてＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ  Ｃａｒｄ）カードを検証装置としてＡｔｔｅｓｔａｔｉｏｎを行い、正当性が証明されるとＳＩＭカード内の情報を取得できる構成であっても良い。図４７は、ＳＩＭカード３４１１の保持する情報、端末装置３４１６（この場合、携帯電話が該当する）の構成及び動作を示している。ここでは、端末装置には、例えば、携帯電話が該当する。【０５８３】
ＳＩＭカード３４１１にはキャリア証明書３４１２とキャリア固有鍵３４１３を記憶している。ＳＩＭカード３４１１には、これらの他に、契約者情報などが記録されている。
キャリア証明書３４１２には、少なくとも、キャリアを識別する識別情報及び、キャリア秘密鍵を用いて、少なくとも前記キャリア識別情報に署名生成アルゴリズムを施して生成された署名データが含まれている。【０５８４】
端末装置３４１６はキャリア提供ＴＰＭ３４１７を搭載しており、暗号化プログラム３４１８及びキャリア公開鍵３４１９を記憶している。
キャリア提供ＴＰＭ３４１７は、共通鍵暗号（例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ））エンジンを搭載している。
暗号化プログラム３４１８は、所定のサービスを提供するプログラムをキャリア固有鍵で暗号化して生成されたものである。【０５８５】
キャリア公開鍵３４１９はキャリア秘密鍵と対なる公開鍵であって、これらの鍵ペアは、ＲＳＡ暗号に対応している。
以下、端末装置３４１６の動作を簡単に説明する。
先ず、キャリア提供ＴＰＭ３４１７（証明装置）とＳＩＭカード３４１１（検証装置）間でＡｔｔｅｓｔａｔｉｏｎを行い、端末装置３４１６内でメモリにロードされたプログラム群の構成の正当性を検証する（ステップＳ３２０１）。Ａｔｔｅｓｔａｔｉｏｎが、正常に終了すると、キャリア提供ＴＰＭ３４１７は、ＳＩＭカード３４１１からキャリア証明書３４１２を読み出す（ステップＳ３２０２）。次に、キャリア公開鍵３４１９を読み出し（ステップＳ３２０４）、読み出したキャリア公開鍵を用いてキャリア証明書に含まれる署名データの検証を行う（ステップＳ３２０６）。検証が成功であれば、キャリア提供ＴＰＭ３４１７は、ＳＩＭカード３４１１から、キャリア固有鍵３４１３を読み出す（ステップＳ３２０７）。次に、自身の備える共通鍵暗号エンジンにより、読み出したキャリア固有鍵を用いて暗号化プログラム３４１８を復号する（ステップＳ３２０８）。【０５８６】
（４）端末固有鍵
上記変形例（３）において、ＳＩＭカードには、キャリア固有鍵が記憶されているとしたが、これに代えて、端末固有鍵を記憶している構成であっても良い。
この場合、端末装置の記憶している暗号化プログラムは、プログラムを前記端末固有鍵により暗号化して生成されたものであって、前記端末装置だけが暗号化プログラムを復号して、前記プログラムを利用することができる。
５．  実施の形態５
５．１  概要
本実施の形態では、端末装置３４３１は、Ａｔｔｅｓｔａｔｉｏｎの検証装置の機能を内部に備える。検証データには、署名が施され改竄されたとしても、容易に改竄の検出をすることができるようになっている。【０５８７】
端末装置３４３１内の検証部３４３８は、先ず、検証データに改竄がないことを確認し、続いて、内部のＴＰＭ（証明者）とＡｔｔｅｓｔａｔｉｏｎを行い、端末内の構成が正当であるか否かを検証する。
５．２  構成
図４８は、端末装置３４３１の機能的構成を示すブロック図である。端末装置３４３１は、図示していない各種の機能部を備えるが、ここでは、Ａｔｔｅｓｔａｔｉｏｎに関連のある部分のみを記載している。【０５８８】
以下に各構成について説明する。
（１）メモリ３４３２
メモリ３４３２は、ＲＡＭ及びＲＯＭから構成され、一例として、図４８に示すようにＢＩＯＳ、ＯＳ、アプリケーションが記憶されている。これらのプログラムには、実施の形態１において説明したようにＣＲＴＭコード又はＲＴＭコードを含んでいるとしても良いし、実施の形態１の変形例（４）のように、各プログラムとは個別に、ＲＴＭプログラムが存在する構成でも良い。【０５８９】
また、ＢＩＯＳには、ＯＳをロードする手順が含まれており、ＯＳにはアプリケーションをロードする手順が含まれている。
（２）ＴＰＭ３４３３
ＴＰＭ３４３３は、実施の形態１と同様に、ＲＴＭ３４３７からインテグリティ値を受け取り、各プログラムに対応するＰＣＲ値を算出し、ＰＣＲ記憶部３４３６に記憶している。また、いずれかのＰＣＲ値が変わるたびに、ＰＣＲ値の履歴を不揮発メモリ３４３９に書き込み、ＳＭＬ３４４３を生成する。なお、本実施の形態の場合、ＡＩＫ鍵ペアの生成及びＡＩＫ証明書の取得は必須ではなく、検証部３４３８による検証においては、ＰＣＲ値群をそのまま出力するが、実施の形態１と同様に、ＡＩＫ証明書を取得し、ＡＩＫ秘密鍵を用いて署名を施したＰＣＲ値群を出力しても良い。【０５９０】
（３）不揮発メモリ３４３９
不揮発メモリ３４３９は、具体的にはハードディスクユニット、フラッシュメモリ、ＲＯＭなどで構成され、図４８に示すようにＥＫ証明書３４４１、ＰＦ証明書３４４２、ＳＭＬ３４４３、検証用公開鍵３４４６、正規ＰＣＲ証明書群３４４５、正規ＳＭＬ証明書３４５１を記憶している。【０５９１】
ＥＫ証明書３４４１、ＰＦ証明書３４４２、ＳＭＬ３４４３は、上記の実施の形態において説明したとおりであるので、ここでは説明を省略する。
検証用公開鍵３４４６、正規ＰＣＲ証明書群３４４５、正規ＳＭＬ証明書３４５１は、端末装置３４３１の製造過程において、不揮発メモリ３４３９の、書き換え不可領域に書き込まれる。【０５９２】
検証用公開鍵３４４６は、ＲＳＡ暗号に対応した公開鍵であって、検証用秘密鍵（後述する）と対になる鍵である。検証用秘密鍵と検証用公開鍵の鍵ペアは、一例としてＲＳＡ暗号に対応している。
正規ＰＣＲ証明書群３４４５は、複数の正規ＰＣＲ証明書３４４７、３４４８、３４４９・・・から構成される、各正規ＰＣＲ証明書は、少なくとも、端末装置３４３１に記憶されている各プログラムの識別情報と、そのプログラムが正当である場合に算出されるべきＰＣＲ値とそのＰＣＲ値に、検証用秘密鍵を用いて署名生成アルゴリズムを施して生成された署名データとを含む。【０５９３】
例えば、正規ＰＣＲ証明書３４４７は、ＢＩＯＳと対応しており、ＢＩＯＳを示す識別情報と、正当なＢＩＯＳコードに基づいて算出されるべき正規ＰＣＲ値（正規ＰＣＲ１）と、検証用秘密鍵を用いて正規ＰＣＲ１に署名生成アルゴリズムを施して生成された署名データとを含んでいる。
正規ＳＭＬ証明書３４５１は、上記の実施の形態において説明した正規ＳＭＬと、検証用秘密鍵を用いて、正規ＳＭＬに署名生成アルゴリズムを施して生成された署名データとを含んでいる。【０５９４】
（４）検証部３４３８
検証部３４３８は、端末装置３４３１が起動すると、不揮発メモリ３４３９から検証用公開鍵３４４６と正規ＰＣＲ証明書群３４４５と正規ＳＭＬ証明書３４５１を読み出し、読み出した検証用公開鍵３４４６を用いて各証明書に含まれる署名データを検証する。何れか一つでも、検証に失敗した場合、端末装置３４３１の動作を停止させる。【０５９５】
各証明書の検証が正常に終了すると、ＴＰＭ３４３３内のＰＣＲ記憶部３４３６からＰＣＲ値群を読み出し、読み出したＰＣＲ値群を構成する各ＰＣＲと、各正規ＰＣＲ証明書に含まれる正規ＰＣＲ値とが一致することを確認する。何れか一組でも、ＰＣＲ値と正規ＰＣＲ値とが一致しなければ、端末装置３４３１の動作を停止させる。
全てのＰＣＲ値につて、読み出したＰＣＲ値と正規ＰＣＲ値とが一致すると、検証部３４３８は、不揮発メモリ３４３９からＳＭＬ３４４３を読み出し、読み出したＳＭＬと正規ＳＭＬ証明書３４５１に含まれる正規ＳＭＬとを比較する。両者が一致しない場合は、端末装置３４３１の動作を停止させる。【０５９６】
両者が一致すれば、検証部３４３８は、検証の処理を終了する。
なお、確実な検証を行うために、検証部３４４８は、メモリ３４３２にロードされるプログラム群及びＣＰＵとは、独立であることが望ましい。従って、ハードウェアとして実装されるか、書き換え不可のセキュア領域に記憶されるプログラムにより実現される、もしくは、耐タンパ実装されていることにより実現される。【０５９７】
また、検証が失敗した場合、端末装置３４５１の動作を停止させると記載しているが、これに限るものではなく、例えば、所定の動作を制限して動作を継続しても良いし、外部機器又はメモリカードから更新用プログラム及び、最新の正規ＰＣＲ証明書群と正規ＳＭＬ証明書を取得しても良い。
５．３  実施の形態５の変形例
（１）階層ごとのＴＰＭ
上記の実施の形態５において、端末装置３４３１は、１個のＴＰＭを搭載しており、検証部３４３８は、このＴＰＭにより算出される各プログラムと対応するＰＣＲ値を検証していたが、プログラムの階層ごとにＴＰＭ及び検証部を備える構成であっても良い。【０５９８】
図４９は、この変形例における端末装置３５００の構成を示している。端末装置３５００これらの他にも、ハードディスクユニット、通信部、入出力部、ＣＰＵなどを含んで構成されるが、図４９では、端末装置３５００の構成の検証に関連する部分のみを記載している。また、図中の矢印は、各構成間のデータフローを示している。
図４９に示すように、端末装置３５００は、メモリ３５０１、ＴＰＭ３５１１、３５１３、３５１６、ＲＴＭ３５２１、３５２３、３５２６、検証部３５２２、３５２４、３５２７及びセキュアメモリ３５３１を含んで構成される。【０５９９】
ＴＰＭ３５１１とＲＴＭ３５２１と検証部３５２２は、アプリケーション３５０２と対応しており、ＴＰＭ３５１３とＲＴＭ３５２３と検証部３５２４は、ＯＳ３５０３と対応しており、ＴＰＭ３５１６とＲＴＭ３５２６と検証部３５２７は、ＢＩＯＳ３５０４と対応している。
以下に、各構成について説明するが上記の実施の形態と重複する説明は省略し、本変形例に特有の部分を中心に説明する。【０６００】
（１−１）メモリ３５０１
メモリ３５０１は、ＲＡＭ、ＲＯＭから構成され、ＣＰＵが実行するプログラムを記憶する。メモリ３５０１には、ＢＩＯＳ３５０４、ＯＳ３５０３、アプリケーション３５０２の順にロードされ、各プログラムには上位のプログラムをメモリ３５０１にロードする手順が含まれる。【０６０１】
（１−２）セキュアメモリ３５３１
セキュアメモリ３５３１は、書き込み及び消去不可のメモリであって、検証用公開鍵３５３２、正規ＰＣＲ証明書３５３３、３５３４及び３５３６を記憶している。これらの構成は、前述の実施の形態５と同様であるので説明を省略する。
正規ＰＣＲ証明書３５３６、３５３４、３５３３はそれぞれ、階層の異なるプログラム、ＢＩＯＳ３５０４、ＯＳ３５０３、アプリケーション３５０２と対応している。【０６０２】
（１−３）ＲＴＭ３５２６、３５２３及び３５２１
ＲＴＭ３５２６は、ＢＩＯＳ３５０４に含まれるＣＲＴＭコードをＣＰＵが実行することにより実現される機能部であって、ＢＩＯＳ自身のインテグリティ値及びＢＩＯＳの呼び出すプログラム（ＯＳ）のインテグリティ値を算出する。
ＲＴＭ３５２３及び３５２１は、それぞれ、ＯＳ３５０３及びアプリケーション３５０２に含まれるＲＴＭコードをＣＰＵが実行することにより実現する機能部であって、それぞれ、対応するプログラムが呼び出そうとするプログラムのインテグリティ値を計測する機能を備える。【０６０３】
（１−４）検証部３５２７、３５２４、３５２２
３つの検証部はそれぞれ、対応するＴＰＭによって算出されたＰＣＲ値の正当性を検証する。検証の手順は、実施の形態５と同様に、セキュアメモリ３５３１から検証用公開鍵３５３２と正規ＰＣＲ証明書（ここでは、各検証部と対応する正規ＰＣＲ証明書のみ）とを読み出し、読み出した正規ＰＣＲ証明書の検証、続いて、対応するＴＰＭの保持するＰＣＲ値と読み出した正規ＰＣＲ証明書に含まれる正規ＰＣＲ値とを比較する。一致しなければ、端末装置３５００の動作を停止させる。又は、対応するプログラムによる次のプログラムのロードを中止するとしてもよい。【０６０４】
対応するＴＰＭの保持するＰＣＲ値と読み出した正規ＰＣＲ証明書に含まれる正規ＰＣＲ値とが一致すれば、検証部は、対応するＲＴＭに、対応するプログラムがロードしようとしているプログラムのインテグリティ値の計測を指示する。これと同時に、対応するＴＰＭへ記憶しているＰＣＲ値を上位のＴＰＭへ出力するように指示する。
（１−５）ＴＰＭ３５１６、３５１３、３５１１
各ＴＰＭは、対応するプログラムのＰＣＲ値を算出し、記憶する機能を有する。また、対応する検証部の指示に従って記憶しているＰＣＲ値を上位のＴＰＭへ出力する。【０６０５】
（１−６）動作
ＢＩＯＳ３５０４から順にアプリケーション３５０２がメモリ３５０１にロードされるまでの、端末装置３５００内の各部の処理を、順を追って説明する。
電源がＯＮになると先ずＢＩＯＳに含まれるＣＲＴＭコードが実行されることで実現される機能部であるＲＴＭ３５２６により、ＢＩＯＳ３５０４内のＣＲＴＭコードのインテグリティ値が算出され、これを基に、ＴＰＭは、ＰＣＲ０を算出する。続いて、ＲＴＭ３５２６は、ＢＩＯＳ３５０４のインテグリティ値を計測し、ＴＰＭ３５１６は、計測されたインテグリティ値とＰＣＲ０とを基に、ＢＩＯＳと対応するＰＣＲ値３５１７（ＰＣＲ１）を算出し、記憶する。ＰＣＲ１が算出されるとＢＩＯＳ３５０４がメモリ３５０１にロードされ、実行される。【０６０６】
また、検証部３５２７は、検証用公開鍵３５３２と正規ＰＣＲ証明書（ＢＩＯＳ用）３５３６をセキュアメモリ３５３１から読み出し、正規ＰＣＲ証明書（ＢＩＯＳ用）３５３６を検証し、続いて、正規ＰＣＲ証明書３５３６に含まれる正規ＰＣＲ値とＰＣＲ１を比較する。両者が一致すると、検証部３５２７は、ＲＴＭ３５２６へ次にロードされるプログラム（ＯＳ３５０３）のインテグリティ値の計測を指示し、ＴＰＭ３５１６へＰＣＲ１の出力を指示する。【０６０７】
ＲＴＭ３５２６は、ＯＳ３５０３のインテグリティ値Ｉｎ（ＯＳ）を計測して、上位のＴＰＭ３５１３へ出力する。また、ＴＰＭ３５１６は、上位のＴＰＭ３５１３へ、記憶しているＰＣＲ１を出力する。
ＴＰＭ３５１３は、ＲＴＭ３５２６からＯＳ３５０３のインテグリティ値Ｉｎ（ＯＳ）を受け取り、ＴＰＭ３５１６からＰＣＲ１を受け取る。これらを受け取ると、受け取ったＩｎ（ＯＳ）とＰＣＲ１からＰＣＲ２を算出し、記憶する。【０６０８】
ＰＣＲ２が算出されると、ＢＩＯＳ３５０４はＯＳ３５０３をメモリ３５０１へロードする。また、検証部３５２４は、セキュアメモリ３５３１から、検証用公開鍵３５３２と正規ＰＣＲ証明書（ＯＳ用）３５３４を読み出し、正規ＰＣＲ証明書（ＯＳ用）３５３４の検証、ＰＣＲ２の検証を順次行う。
ＰＣＲ２が正規ＰＣＲ証明書（ＯＳ用）３５３４に含まれる正規ＰＣＲ値と一致すると判断すると、検証部３５２４は、ＲＴＭ３５２３へＯＳ３５０３がロードしようとしているプログラム（アプリケーション３５０２）のインテグリティ値Ｉｎ（アプリ）の算出を指示し、ＴＰＭ３５１３へ、ＰＣＲ２を上位のＴＰＭ３５１１へ出力するように指示する。【０６０９】
検証部３５２４の指示に従って、ＲＴＭ３５２３はアプリケーションのインテグリティ値Ｉｎ（アプリ）を算出し、ＴＰＭ３５１１へ出力する。同様に、ＴＰＭ３５１３は、記憶しているＰＣＲ２をＴＰＭ３５１１へ出力する。
ＴＰＭ３５１１は、ＲＴＭ３５２３からＩｎ（アプリ）を受け取り、ＴＰＭ３５１３からＰＣＲ２を受け取る。これらを受け取ると、ＴＰＭ３５１１は、アプリケーション３５０２と対応するＰＣＲ値３５１２（ＰＣＲ３）を算出する。【０６１０】
ＰＣＲ３が算出されると、ＯＳ３５０３は、アプリケーション３５０２をメモリ３５０１にロードする。
（２）上位層の検証
上記の変形例（１）では、各検証部は、自身と対応するプログラムの構成が正当であるか否かを検証し、正当であることが証明されると、上位層のＴＰＭへ、演算に必要なパラメータ（具体的には、下位層のＰＣＲ値と上位層のプログラムのハッシュ値）を出力する構成であったが、これに代わって、検証部は、上位の層の検証部及びＲＴＭの正当性を検証する構成であっても良い。以下の説明の便宜上、ＢＩＯＳ３５０４、ＯＳ３５０３、アプリケーションと３５０２の属する層をそれぞれＢＩＯＳ層、ＯＳ層、アプリ層と呼ぶ。【０６１１】
図５０は、この変形例における端末装置３６００の構成のうち、検証に関連する部分のみを記載している。図中の矢印は、下位層の検証部による上位層の検証部及びＲＴＭの検証動作を示している。また、変形例（１）と重複する構成には同一の参照符号を付している。
以下に、変形例（１）と異なる構成及び動作について説明する。【０６１２】
（２−１）ＲＴＭ３６２２、３６２３及び３６２７
ＲＴＭ３６２７、３６２４及び３６２２は、それぞれ、ＢＩＯＳ層、ＯＳ層、アプリケーション層に属し、自身の属する層のプログラムのインテグリティ値を計測する。続いて、計測したインテグリティ値を、それぞれの層のＴＰＭ３５１６、３５１３、３５１１へ出力する。【０６１３】
例えば、ＲＴＭ３６２７は、ＢＩＯＳ３５０４のインテグリティ値を計測し、ＴＰＭ３５１６へ出力する。
また、ＲＴＭ３６２３及び３６２７がハードウェアにより構成されている場合、下位層の検証部から、乱数を受け取る。乱数を受け取ると、ＲＴＭ３６２３及び３６２７は、受け取った乱数に所定の演算を施して、下位層の検証部へ演算結果を出力する。【０６１４】
（２−２）ＴＰＭ３５１６、３５１３及び３５１１
ＴＰＭ３５１６、３５１３及び３５１１は、それぞれ、ＲＴＭ３６２２、３６２３及び３６２７から、自身の属する層のプログラムのインテグリティ値を受け取り、受け取ったインテグリティ値を拡張してＰＣＲ値を算出し、記憶する。
また、同一の層に属する検証部の要求に従って、記憶しているＰＣＲ値を検出部へ出力する。【０６１５】
例えば、ＴＰＭ３５１６は、ＲＴＭ３６２７から、インテグリティ値を受け取り、受け取ったインテグリティ値を拡張してＰＣＲ１を算出し、記憶する。また、検証部３６２６から、ＰＣＲ値出力要求を受けると、ＴＰＭ３５１６は、記憶しているＰＣＲ１を検証部３６２６へ出力する。
（２−３）セキュアメモリ３５３１
セキュアメモリ３５３１は、上記の変形例（１）において説明した情報に加えて、ＯＳ層検証データ３６２２とアプリ層検証データ３６３１とを記憶している。【０６１６】
ＯＳ層検証データ３６２２は及びアプリ層検証データ３６３１は、それぞれ、検証部３６２６及び３６２３上位層の検証部とＲＴＭの正当性を検証するために用いるデータである。
具体的に、検証部及びＲＴＭが、ソフトウェアにより実現されている場合、ＯＳ層検証データ３６２２は、検証部３６２３及びＲＴＭ３６２４の機能を実現する正常なプログラムコードに所定の演算を施して算出されるべき値である。所定の演算は、任意であるが、一例として、ＳＨＡ−１のような一方向関数や、ＡＥＳ暗号化演算、署名演算などが考えられる。アプリ層検証データ３６３１についても同様である。【０６１７】
また、上位層の検証部及びＲＴＭが、ハードウェアにより実現されている場合、ＯＳ層検証データ３６２２は、検証部３６２３及びＲＴＭ３６２４の機能を備える回路により算出されるべき値である。この場合、ＯＳ層検証データは、検証部３６２６により書き込まれる。
アプリ層検証データ３１３１についても、同様であって、検証部３６２３により書き込まれる。【０６１８】
（２−４）検証部３６２６、３６２３及び３６２１
検証部３６２６、３６２３及び３６２１は、変形例（１）の３つ検証部と同様に、それぞれ対応するプログラムの正当性の検証を行う。検証の手順は、変形例（１）と同様であるので、説明は割愛する。
対応するプログラムの正当性が証明されると、検証部３６２６及び３６２３は、上位の層の検証部とＲＴＭの正当性を検証する。【０６１９】
具体的には、各検証部及びＲＴＭがソフトウェアにより実現されている場合、検証部３６２６は、検証部３６２３を実現するプログラムコードとＲＴＭ３６２４を実現するプログラムコードを連結して連結コードを生成し、生成した連結コードに所定の演算を施す。次に、検証部３６２６は、セキュアメモリ３５３１からＯＳ層検証データ３６２３を読み出し、読み出したＯＳ層検証データ３６２３と演算結果とを比較する。両者が一致した場合、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が正当であると判断し、検証部３６２３及びＲＴＭ３６２４をアクティベイトする。【０６２０】
ここで、所定の演算は、どのような演算であっても良いが、一例として、一方向関数、暗号化演算などが考えられる。また、その他の演算であっても良い。
検証部３６２３による検証部３６２１及びＲＴＭ３６２２の検証手順も同様である。
なお、本変形例では、検証部３６２３が所定の演算を施すとあるが、所定の演算をＲＴＭ３６２７が有する関数を利用してもよい。また、検証部３６２３を実現するプログラムコードとＲＴＭ３６２４を実現するプログラムコードを連結した連結コードに対して所定の演算を施しているが、連結せず、それぞれに対して所定の演算を施しても良い。【０６２１】
両者が一致しなかった場合、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が不正であると判断し、端末装置３６００の動作を停止する。又は、所定機能を制限する。
また、各検証部及びＲＴＭがハードウェアにより実現されている場合、検証部３６２６は、乱数を生成し、生成した乱数を検証部３６２３及びＲＴＭ３６２４へ出力する。続いて、検証部３６２６は、生成した乱数に、検証部３６２３及びＲＴＭ３６２４が正当である場合に施されるべき演算を施してＯＳ層検証データを生成し、セキュアメモリ３５３１に書き込む。次に、検証部３６２３及びＲＴＭ３６２４から、所定の演算結果を受け取る。【０６２２】
演算結果を受け取ると、検証部３６２６は、セキュアメモリ３５３１から、ＯＳ層検証データ３６３２を読み出し、受け取った演算結果と読み出したＯＳ層検証データとを比較する。両者が一致すると、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が正当であると判断し、これらをアクティベイトする。
両者が一致しなかった場合、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が不正であると判断し、端末装置３６００の動作を停止する。又は、所定機能を制限する。【０６２３】
検証部３６２３による検証部３６２１及びＲＴＭ３６２２の検証手順も同様であるので説明を省略する。
また、検証部３６２１及び３６２３がハードウェアにより実現されている場合、下位層の検証部から乱数を受け取る。乱数を受け取ると、検証部３６２１及び３６２３は、受け取った乱数に所定の演算を施し、演算結果を下位層の検証部へ出力する。【０６２４】
（２−５）まとめ
以上の構成によると、電源投入後、ＢＩＯＳの正当性検証、ＯＳ層の検証部及びＲＴＭの正当性検証、ＯＳの正当性検証、アプリ層の検証部及びＲＴＭの正当性検証、アプリケーションの正当性検証が順次行われる。
全ての検証が成功であれば、端末装置３６００は、正常に動作することができる。【０６２５】
なお、図５０では、各ＴＰＭは、各自の属する層のプログラムのインテグリティ値を受け取り、受け取ったインテグリティ値を拡張してＰＣＲ値を算出し、記憶しているが、これは、必須ではなく、インテグリティ値をそのまま記憶していても良い。
６．  その他の変形例
以上、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。【０６２６】
（１）上記の実施の形態、及び、その変形例において、端末装置及びメモリカードはＴＣＧ規格に準拠したＴＰＭチップを搭載しているとしてきたが、これに限定されるものではない。規格外であっても、同様に、各機器の正当性を証明する情報を生成、蓄積する機能を有するセキュアな集積回路であれば良い。
（２）各実施の形態において、端末装置はそれぞれ、パーソナルコンピュータ、音楽プレーヤー、携帯端末などであるとして説明してきたが、これらに限るものではなく、メモリ及びメモリにロードされたコンピュータプログラムに従って動作するコンピュータシステムを搭載した様々な機器に適応することができる。【０６２７】
一例としては、サーバ装置を初めとするネットワーク機器、コンピュータ制御された電化製品（ＡＶ機器、調理機器など）、自動車、ロボットなどが挙げられる。
メモリカードに関しても同様に、端末装置に装着されて使用されるものを例に説明してきたが、非接触ＩＣカードのようなものであってもよい。
（３）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭ、ＲＯＭ、前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。【０６２８】
（４）上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。【０６２９】
（５）上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、などから構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。【０６３０】
（６）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。【０６３１】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。【０６３２】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（７）また、上記実施例におけるメモリカード、ＳＩＭカードの機能ブロックの全てが集積回路であるＬＳＩとして実現される場合も本発明に含まれる。また、機能ブロックの全てに限らず一部がＬＳＩとして実現される場合も本発明に含まれる。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。【０６３３】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Field Programmable Gate Array）やＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応などが可能性として有り得る。【０６３４】
（８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０６３５】
本発明を構成する各装置及びカードは、これらを製造する製造業、販売する販売業において、経営的、つまり反復的かつ継続的に利用されうる。
【図１】
2008004524.tif 000003
【図２】
2008004524.tif 000004
【図３】
2008004524.tif 000005
【図４】
2008004524.tif 000006
【図５】
2008004524.tif 000007
【図６】
2008004524.tif 000008
【図７】
2008004524.tif 000009
【図８】
2008004524.tif 000010
【図９】
2008004524.tif 000011
【図１０】
2008004524.tif 000012
【図１１】
2008004524.tif 000013
【図１２】
2008004524.tif 000014
【図１３】
2008004524.tif 000015
【図１４】
2008004524.tif 000016
【図１５】
2008004524.tif 000017
【図１６】
2008004524.tif 000018
【図１７】
2008004524.tif 000019
【図１８】
2008004524.tif 000020
【図１９】
2008004524.tif 000021
【図２０】
2008004524.tif 000022
【図２１】
2008004524.tif 000023
【図２２】
2008004524.tif 000024
【図２３】
2008004524.tif 000025
【図２４】
2008004524.tif 000026
【図２５】
2008004524.tif 000027
【図２６】
2008004524.tif 000028
【図２７】
2008004524.tif 000029
【図２８】
2008004524.tif 000030
【図２９】
2008004524.tif 000031
【図３０】
2008004524.tif 000032
【図３１】
2008004524.tif 000033
【図３２】
2008004524.tif 000034
【図３３】
2008004524.tif 000035
【図３４】
2008004524.tif 000036
【図３５】
2008004524.tif 000037
【図３６】
2008004524.tif 000038
【図３７】
2008004524.tif 000039
【図３８】
2008004524.tif 000040
【図３９】
2008004524.tif 000041
【図４０】
2008004524.tif 000042
【図４１】
2008004524.tif 000043
【図４２】
2008004524.tif 000044
【図４３】
2008004524.tif 000045
【図４４】
2008004524.tif 000046
【図４５】
2008004524.tif 000047
【図４６】
2008004524.tif 000048
【図４７】
2008004524.tif 000049
【図４８】
2008004524.tif 000050
【図４９】
2008004524.tif 000051
【図５０】
2008004524.tif 000052
【手続補正書】
【提出日】平成20年12月8日(2008.12.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
証明装置及び検証装置から構成される検証システムであって、
前記証明装置は、
当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段とを備え、
前記検証装置は、
前記証明情報を取得する取得手段と、
前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段とを備える
ことを特徴とする検証システム。
【請求項２】
前記検証システムは、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、
前記証明手段は、TCGにより仕様化されているTrusted Platform Moduleを構成し、
前記判断手段は、TCGにより仕様化されている検証プロセスにより、前記証明装置の正当性を判断する
ことを特徴とする請求項１に記載の検証システム。
【請求項３】
検証装置に対して自身の正当性を証明する証明装置であって、
当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段と
を備えることを特徴とする証明装置。
【請求項４】
前記証明装置は、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、
前記証明手段は、TCGにより仕様化されているTrusted Platform Moduleを構成する
ことを特徴とする請求項３に記載の証明装置。
【請求項５】
前記証明手段は、
前記特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、
前記検証装置から、複数のプラットフォーム構成レジスタのうちの１個のレジスタの指定を受け取り、受け取った指定により示されるレジスタに記憶されている前記特徴量に基づいて、前記証明情報を生成する
ことを特徴とする請求項３に記載の証明装置。
【請求項６】
前記証明装置は、さらに、
少なくとも前記検証装置を動作対象とする動作プログラムの特徴を示す特徴量に基づいて、生成された前記検証装置の正当性を証明する証明情報を取得する取得手段と、
取得した前記証明情報を用いて、前記検証装置の正当性を判断する判断手段と
を含むことを特徴とする請求項３に記載の証明装置。
【請求項７】
前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンピュータ命令を含む第２動作プログラムを格納しており、
前記証明装置は、さらに、耐タンパ化された第２証明手段を含み、
第２証明手段は、前記証明手段に対して、自身の正当性を証明し、
前記証明手段は、前記第２証明手段の正当性を検証し、
前記測定手段は、さらに、前記第２動作プログラムがロードされるときに前記第２動作プログラムの特徴を示す第２特徴量を測定し、
前記第２証明手段は、前記証明手段により、第２証明手段の正当性が確認された場合に、少なくとも前記第２特徴量に基づいて、当該証明装置の正当性を証明する第２証明情報を生成し、
前記出力手段は、さらに、第２証明情報を出力する
ことを特徴とする請求項３に記載の証明装置。
【請求項８】
前記検証装置は、当該検証装置の正当性を示す第２証明情報を記憶しているカードであり、
前記証明手段は、さらに、前記検証装置による前記証明装置の正当性の確認が成功した場合に、前記検証装置から前記第２証明情報を取得し、取得した前記第２証明情報を用いて、前記検証装置の正当性を判断する
ことを特徴とする請求項３に記載の証明装置。
【請求項９】
前記証明装置は、前記検証装置により、自身の正当性が確認された場合に、さらに、第２検証装置に対して自身の正当性を証明し、
前記格納手段は、さらに、当該証明装置を動作対象とし、階層的な関係を有する複数個の第２動作プログラムを格納しており、
前記測定手段は、さらに、前記第２動作プログラムのそれぞれがロードされるときに、ロードされる前記第２プログラムそれぞれの特徴を示す第２特徴量を測定し、
前記証明装置は、さらに、
耐タンパ化され、前記複数個の第２動作プログラムのうちの１つの第２動作プログラムがロードされているときに、当該１つの第２動作プログラムについて取得した特徴量、及び当該１つの第２動作プログラムを動作させるために必要でありロード済である他の第２動作プログラムそれぞれについて取得した特徴量を反映した第２証明情報を生成する第２証明手段を含み、
前記出力手段は、さらに、生成した前記第２証明情報を第２検証装置へ出力する
ことを特徴とする請求項８に記載の証明装置。
【請求項１０】
前記証明装置は、さらに、
前記検証装置に対して、秘密情報を要求する要求手段と、
前記検証装置における当該証明装置の正当性の確認結果に応じて、秘密情報及び前記動作プログラムの更新のための更新プログラムのいずれか一方を受信する受信手段と、
更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手段に格納されている前記動作プログラムを更新する更新手段と
を含むことを特徴とする請求項３に記載の証明装置。
【請求項１１】
前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵であり、
前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、
前記証明装置は、さらに、
受信した前記暗号化デバイス鍵を、当該証明装置を識別する装置識別子に基づいて、復号して、デバイス鍵を生成する復号手段を含む
ことを特徴とする請求項１０に記載の証明装置。
【請求項１２】
前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別する装置識別子に基づいて、前記証明情報を生成する
ことを特徴とする請求項１０に記載の証明装置。
【請求項１３】
前記秘密情報は、デバイス鍵を暗号化して生成した暗号化デバイス鍵であり、
前記証明装置は、さらに、暗号化手段を含み、
前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、
前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した暗号化デバイス鍵を暗号化して二重暗号化デバイス鍵を生成し、
前記証明装置は、さらに、
生成した二重暗号化デバイス鍵を保持するデバイス鍵保持手段を含む
ことを特徴とする請求項１０に記載の証明装置。
【請求項１４】
前記暗号化手段は、
暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、
前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、
前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認されなかった場合に、前記更新プログラムとして、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを受信し、受信した正規の暗号化プログラムを、前記記憶部に記憶されている暗号化プログラムに上書きし、
前記暗号化手段は、正規の暗号化プログラムに従って、前記マイクロプロセッサが動作することにより、暗号化アルゴリズムの機能を達成する
ことを特徴とする請求項１３に記載の証明装置。
【請求項１５】
前記受信手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが確認された場合、前記検証装置から、受信した暗号化デバイス鍵の復号に必須となる鍵を受け取る
ことを特徴とする請求項１４に記載の証明装置
【請求項１６】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置であって、
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得手段と、
前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段と
を備えることを特徴とする検証装置。
【請求項１７】
前記検証装置は、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、
前記判断手段は、TCGにより仕様化されている検証プロセスにより、前記証明装置の正当性を判断する
ことを特徴とする請求項１６に記載の検証装置。
【請求項１８】
前記検証装置は、カード又はサーバ装置である
ことを特徴とする請求項１６に記載の検証装置。
【請求項１９】
前記取得手段は、当該検証装置の指定に係るプラットフォーム構成レジスタに記憶されている特徴量に基づいて、生成された前記証明情報を取得し、
前記判断手段は、前記プラットフォーム構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項１８に記載の検証装置。
【請求項２０】
前記検証装置は、さらに、
当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段とを含む
ことを特徴とする請求項１８に記載の検証装置。
【請求項２１】
前記取得手段は、さらに、少なくとも前記証明装置を動作対象とする第２動作プログラムの特徴を示す特徴量に基づいて、生成された前記証明装置の正当性を証明する第２証明情報を取得し、
前記判断手段は、さらに、取得した前記第２証明情報を用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項１８に記載の検証装置。
【請求項２２】
前記検証装置は、カードであり、さらに、
当該検証装置の正当性を示す第２証明情報を記憶している証明情報格納手段と、
前記判断手段による前記証明装置の正当性の確認が成功した場合に、前記第２証明情報を出力する出力手段を含む
ことを特徴とする請求項１８に記載の検証装置。
【請求項２３】
前記検証装置は、さらに、
秘密情報を安全に保持する情報保持手段と、
前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、
前記証明装置の正当性が確認された場合に、前記情報保持手段に保持されている前記秘密情報を前記証明装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記証明装置へ出力する出力手段と
を含むことを特徴とする請求項１６に記載の検証装置。
【請求項２４】
前記情報保持手段は、前記秘密情報として、前記証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵を保持しており、
前記出力手段は、前記証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を出力する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２５】
前記取得手段は、前記特徴量、及び前記証明装置を識別する装置識別子に基づいて生成された前記証明情報を取得し、
前記検証装置は、さらに、
正規の動作プログラムの特徴を示す正規特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された検証情報を取得する検証情報取得手段を含み、
前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２６】
前記取得手段は、前記特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された前記証明情報を取得し、
前記検証装置は、さらに、
正規の動作プログラムの特徴を示す正規特徴量を取得する正規特徴量取得手段と、
取得した前記正規特徴量及び前記証明装置を識別する装置識別子に基づいて、前記証明装置の正当性を検証する検証情報を生成する検証情報生成手段とを含み、
前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２７】
前記検証装置は、さらに、
前記証明装置を識別する装置識別子を取得する識別子取得手段と、
前記証明装置に割り当てられるデバイス鍵を、取得した前記装置識別子に基づいて暗号化して暗号化デバイス鍵を生成する暗号化手段と、
生成した暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手段とを含む
ことを特徴とする請求項２３に記載の検証装置。
【請求項２８】
前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、
前記情報保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、
前記判断手段は、前記証明装置の正当性として、前記証明装置が有する前記暗号化手段の正当性を判断し、
前記出力手段は、前記暗号化手段の正当性が確認された場合に、暗号化デバイス鍵を前記証明装置へ出力する
ことを特徴とする請求項２３に記載の検証装置。
【請求項２９】
前記証明装置が有する前記暗号化手段は、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、
前記プログラム格納手段は、前記更新プログラムとして、前記暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを記憶しており、
前記出力手段は、前記暗号化手段が正当でないと確認された場合に、正規の前記暗号化プログラムを前記証明装置へ出力する
ことを特徴とする請求項２８に記載の検証装置。
【請求項３０】
前記出力手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが前記判断手段により確認された場合、前記暗号化デバイス鍵の復号に必須となる鍵を出力する
ことを特徴とする請求項２９に記載の検証装置。
【請求項３１】
検証装置に対して自身の正当性を証明する証明装置で用いられる証明方法であって、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と耐タンパ化された証明手段とを備え、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定ステップと、
前記証明手段を用いて、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明ステップと、
生成した前記証明情報を出力する出力ステップと
を含むことを特徴とする証明方法。
【請求項３２】
検証装置に対して自身の正当性を証明する証明装置で用いられる証明用のコンピュータプログラムを記録しているコンピュータ読み取り可能な記録媒体であって、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と耐タンパ化された証明手段とを備え、
コンピュータに、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定ステップと、
前記証明手段を用いて、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明ステップと、
生成した前記証明情報を出力する出力ステップと
を実行させるためのコンピュータプログラムを記録していることを特徴とする記録媒体。
【請求項３３】
検証装置に対して自身の正当性を証明する証明装置を構成する集積回路であって、
前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段を備え、
前記集積回路は、
前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、
耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、
生成した前記証明情報を出力する出力手段と
を備えることを特徴とする集積回路。
【請求項３４】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置で用いられる検証方法であって、
前記検証装置は、前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段を備え、
前記検証方法は、
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得ステップと、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断ステップと
を含むことを特徴とする検証方法。
【請求項３５】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置で用いられる検証用のコンピュータプログラムを記録している記録媒体であって、
前記検証装置は、前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段を備え、
コンピュータに
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得ステップと、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断ステップと
を実行させるコンピュータプログラム記録していることを特徴とする記録媒体。
【請求項３６】
階層的な関係を有する複数個の動作プログラムが動作する証明装置の正当性を検証する検証装置を構成する集積回路であって、
前記証明装置から、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を取得する取得手段と、
前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、
取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段と
を備えることを特徴とする集積回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータプログラムによって動作する情報処理機器において、自身の正当性を証明し、相手の正当性を検証する技術に関する。
【背景技術】
【０００２】
デジタルコンテンツの普及により、コンテンツの不正コピーが社会問題となっている。コンテンツの処理機能をソフトウェアで実現する場合、不正コピーを試みる悪意のあるユーザからプログラムを保護する必要がある。コンテンツの処理機能を実現するプログラムが悪意のあるユーザから改竄や盗聴された場合、コンテンツが平文状態で抜き取られたり、プログラムからコンテンツを暗号化している鍵を不正取得されコンテンツが復号化される危険性がある。デジタルコンテンツは、インターネットによる再配布が容易なため、平文状態のコンテンツが不正に配布されると権利者の利益が大きく損なわれる。このような事態を防止するため、コンテンツの処理プログラムへの攻撃を防止することは重要である。
【０００３】
しかしながら、処理プログラムのリリース時には、セキュリティホールがない完全なプログラムの提供を保証することは難しいため、悪意のあるユーザがこれらのセキュリティホールを突いてコンテンツ処理用のプログラムを改竄し、デジタルコンテンツを不正にコピーすることなどが予想される。このような事実が判明した場合には、そのプログラムをセキュリティホールへの対策を施した新しいプログラムに更新する必要があるが、そのような技術として以下のようなものがある。
【０００４】
例えば、特許文献１では、更新プログラムを供給するサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった場合に、更新プログラムを渡し、端末内のプログラムをその更新プログラムでアップデートする技術が開示されている。また、特許文献２では、更新プログラムを格納するカードと端末のアップデートモジュールとが相互認証を行った上で、カードに格納されている更新プログラムを端末が取得し、端末自身が端末のプログラムをアップデートする技術が開示されている。
【特許文献１】特開平１０−１９８５７１号公報
【特許文献２】特開２００３−３３０７４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来技術によるプログラムのアップデートは、更新プログラムを供給するカードやサーバと、端末のアップデートモジュールとが相互認証を行い、お互い正しいと認識しあった後、更新プログラムを渡す構成となっている。この仕組みは端末側のアップデートモジュールの信頼性に依存した方法である。
しかし、従来技術では、端末がハッキングされている場合、アップデートモジュールの信頼性が損なわれている可能性があるので、確実なプログラムのアップデートを保証することは困難である。例えば、アップデートモジュールもソフトウェアで構成されている場合、アップデートモジュール自身もハッキングされている可能性がある。この場合、アップデートモジュール自体が改竄されていると、本来のアップデート処理自体を回避したり、アップデートが必要であるか否かの判断を誤らせることができるので、ソフトウェアのアップデートを強制することができなくなる。
【０００６】
アップデートモジュール自身のハッキングを防止するためには、プログラム更新システムに対して更新対象のプログラムより強固な耐タンパシールドが必要となる。従来技術では耐タンパ化の例として、プログラム更新システムをハードウェアによりすべて構成する方法が開示されているが、プログラム更新システムはインターネットとの通信等も含むので大規模なシステムとなることが多く、全体をハードウェアとすることは事実上困難である。
【０００７】
そこで本発明は、上記の問題点に鑑みなされたものであって、正当なコンピュータプログラムを有することを示しつつ自身の正当性を証明することができ、また前記証明に対して検証することができる検証システム、証明装置、検証装置、証明方法、検証方法、コンピュータプログラム及び集積回路を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明は、証明装置及び検証装置から構成される検証システムであって、前記証明装置は、当該証明装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、生成した前記証明情報を出力する出力手段とを備え、前記検証装置は、前記証明情報を取得する取得手段と、前記証明装置において、前記１つの動作プログラム、及び当該１つの動作プログラムを動作させるために必要である他の動作プログラムのそれぞれについて改竄がない場合に得られる特徴量を反映した検証情報を予め記録している記録手段と、取得した前記証明情報及び前記検証情報を用いて、前記証明装置の正当性を判断する判断手段とを備える。
【発明の効果】
【０００９】
この構成によると、証明装置は、耐タンパ化された証明手段により、少なくとも動作プログラムの特徴を示す特徴量を反映した証明情報を生成するので、生成された証明情報は、信頼できるものであり、また、検証装置は、取得した証明情報を用いて、証明装置の正当性を判断するので、確実に正当性の検証を行うことができるという優れた効果を奏する。
【００１０】
ここで、前記検証システムは、Trusted Computing Group(TCG)により仕様化されている構成証明技術を用い、前記証明手段は、TCGにより仕様化されているTrustedPlatform Moduleを構成し、前記判断手段は、TCGにより仕様化されている検証プロセスにより、前記証明装置の正当性を判断するとしてもよい。
この構成によると、証明手段は、TCGにより仕様化されているTrusted Platform Moduleにより構成されるので、生成された証明情報は、信頼できるものであり、また、TCGにより仕様化されている検証プロセスにより、証明装置の正当性を判断するので、確実に正当性の検証を行うことができる。
【００１１】
ここで、前記証明手段は、前記特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、前記検証装置から、複数のプラットフォーム構成レジスタのうちの１個のレジスタの指定を受け取り、受け取った指定により示されるレジスタに記憶されている前記特徴量に基づいて、前記証明情報を生成する。また、前記取得手段は、当該検証装置の指定に係るプラットフォーム構成レジスタに記憶されている特徴量に基づいて、生成された前記証明情報を取得し、前記判断手段は、前記プラットフォーム構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、前記証明装置の正当性を判断してもよい。
【００１２】
これらの構成によると、証明装置は、特徴量を記憶するための複数のプラットフォーム構成レジスタを有し、検証装置の指定により示されるレジスタに記憶されている特徴量に基づいて、前記証明情報を生成し、検証装置は、指定に係るプラットフォーム構成レジスタに記憶されるべき特徴量と、取得した前記証明情報を用いて、証明装置の正当性を判断することにより、ＰＣＲを限定し、証明装置と検証装置との間の通信路で伝送されるデータのサイズを削減し、証明装置と検証装置との間のネットワークの負荷を抑えることができる。また、ＰＣＲが限定されるので、証明装置における証明情報の生成の負荷を小さくすることができる。
【００１３】
ここで、前記証明装置は、さらに、少なくとも前記検証装置を動作対象とする動作プログラムの特徴を示す特徴量に基づいて、生成された前記検証装置の正当性を証明する証明情報を取得する取得手段と、取得した前記証明情報を用いて、前記検証装置の正当性を判断する判断手段とを含むとしてもよい。また、前記検証装置は、さらに、当該検証装置を動作対象とし、階層的な関係を有する複数個の動作プログラムを格納している格納手段と、前記動作プログラムのそれぞれがロードされるときに、ロードされる前記動作プログラムそれぞれの特徴を示す特徴量を測定する測定手段と、耐タンパ化され、前記複数個の動作プログラムのうちの１つの動作プログラムがロードされているときに、当該１つの動作プログラムについて取得した特徴量、及び当該１つの動作プログラムを動作させるために必要でありロード済である他の動作プログラムそれぞれについて取得した特徴量を反映した証明情報を生成する証明手段と、生成した前記証明情報を出力する出力手段とを含むとしてもよい。
【００１４】
これらの構成によると、検証装置と証明装置との間で相互の認証を行うので、より高いセキュリティ環境を提供することが可能となる。
ここで、前記格納手段は、さらに、当該証明装置を動作対象とし、複数のコンピュータ命令を含む第２動作プログラムを格納しており、前記証明装置は、さらに、耐タンパ化された第２証明手段を含み、第２証明手段は、前記証明手段に対して、自身の正当性を証明し、前記証明手段は、前記第２証明手段の正当性を検証し、前記測定手段は、さらに、前記第２動作プログラムがロードされるときに前記第２動作プログラムの特徴を示す第２特徴量を測定し、前記第２証明手段は、前記証明手段により、第２証明手段の正当性が確認された場合に、少なくとも前記第２特徴量に基づいて、当該証明装置の正当性を証明する第２証明情報を生成し、前記出力手段は、さらに、第２証明情報を出力する。また、前記取得手段は、さらに、少なくとも前記証明装置を動作対象とする第２動作プログラムの特徴を示す特徴量に基づいて、生成された前記証明装置の正当性を証明する第２証明情報を取得し、前記判断手段は、さらに、取得した前記第２証明情報を用いて、前記証明装置の正当性を判断してもよい。
【００１５】
これらの構成によると、証明装置が、２個の動作プログラムに対応する２個のＴＰＭを備え、検証装置が、各ＴＰＭに対してそれぞれ、検証することに加えて、第１のＴＰＭが第２のＴＰＭの正当性を検証するので、複数の動作プログラムが連携して動作する証明装置について、より高いセキュリティ環境を提供することが可能となる。
ここで、前記検証装置は、当該検証装置の正当性を示す第２証明情報を記憶しているカードであり、前記証明手段は、さらに、前記検証装置による前記証明装置の正当性の確認が成功した場合に、前記検証装置から前記第２証明情報を取得し、取得した前記第２証明情報を用いて、前記検証装置の正当性を判断する。また、前記検証装置は、カードであり、さらに、当該検証装置の正当性を示す第２証明情報を記憶している証明情報格納手段と、前記判断手段による前記証明装置の正当性の確認が成功した場合に、前記第２証明情報を出力する出力手段を含むとしてもよい。
【００１６】
これらの構成によると、検証装置は、カードであり、証明装置の正当性の確認が成功した場合に、自身の正当性を示す第２証明情報を出力し、証明装置は、取得した第２証明情報を用いて、検証装置の正当性を判断するので、証明装置と、カードである検証装置との間の相互の認証が可能となる。
ここで、前記証明装置は、前記検証装置により、自身の正当性が確認された場合に、さらに、第２検証装置に対して自身の正当性を証明し、前記格納手段は、さらに、当該証明装置を動作対象とし、階層的な関係を有する複数個の第２動作プログラムを格納しており、前記測定手段は、さらに、前記第２動作プログラムのそれぞれがロードされるときに、ロードされる前記第２プログラムそれぞれの特徴を示す第２特徴量を測定し、前記証明装置は、さらに、耐タンパ化され、前記複数個の第２動作プログラムのうちの１つの第２動作プログラムがロードされているときに、当該１つの第２動作プログラムについて取得した特徴量、及び当該１つの第２動作プログラムを動作させるために必要でありロード済である他の第２動作プログラムそれぞれについて取得した特徴量を反映した第２証明情報を生成する第２証明手段を含み、前記出力手段は、さらに、生成した前記第２証明情報を第２検証装置へ出力してもよい。
【００１７】
この構成によると、証明装置が、２個の動作プログラムに対応する２個のＴＰＭを備え、第１の検証装置が、第１のＴＰＭに対して検証し、成功した場合に、さらに、第２の検証装置が第２のＴＰＭに対して検証するので、複数の動作プログラムが連携して動作する証明装置について、より高いセキュリティ環境を提供することが可能となる。
ここで、前記証明装置は、さらに、前記検証装置に対して、秘密情報を要求する要求手段と、前記検証装置における当該証明装置の正当性の確認結果に応じて、秘密情報及び前記動作プログラムの更新のための更新プログラムのいずれか一方を受信する受信手段と、更新プログラムを受信した場合に、受信した更新プログラムに従って、前記格納手段に格納されている前記動作プログラムを更新する更新手段とを含む。また、前記検証装置は、さらに、秘密情報を安全に保持する情報保持手段と、前記証明装置を動作対象とし、複数のコンピュータ命令を含む動作プログラムの更新のための更新プログラムを格納しているプログラム格納手段と、前記証明装置の正当性が確認された場合に、前記情報保持手段に保持されている前記秘密情報を前記証明装置へ出力し、正当でないと確認された場合、前記プログラム格納手段に格納されている前記更新プログラムを前記証明装置へ出力する出力手段とを含むとしてもよい。
【００１８】
これらの構成によると、証明装置が、受信した更新プログラムにより動作プログラムを更新しなければ、証明装置が所望する秘密情報の取得ができないので、証明装置に対して、動作プログラムの更新を強制することができる。
ここで、前記秘密情報は、当該証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵であり、前記受信手段は、前記検証装置により当該証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、前記証明装置は、さらに、受信した前記暗号化デバイス鍵を、当該証明装置を識別する装置識別子に基づいて、復号して、デバイス鍵を生成する復号手段を含む。また、前記情報保持手段は、前記秘密情報として、前記証明装置を識別する装置識別子に基づいて、当該証明装置に割り当てられるデバイス鍵を暗号化して生成した暗号化デバイス鍵を保持しており、前記出力手段は、前記証明装置の正当性が確認された場合に、前記暗号化デバイス鍵を出力してもよい。
【００１９】
これらの構成によると、検証装置から証明装置へ伝送する情報を、証明装置に固有の装置識別子により暗号化しておくことにより、証明装置になりすました不正な装置が、当該情報を不正に取得することを防止することができる。
ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段は、前記特徴量、及び前記証明装置を識別する装置識別子に基づいて生成された前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を示す正規特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された検証情報を取得する検証情報取得手段を含み、前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。
【００２０】
これらの構成によると、証明情報は、測定手段により得られた特徴量及び証明装置を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不正な装置が証明装置になりすますことを防止することができる。
【００２１】
ここで、前記証明手段は、測定手段により得られた前記特徴量及び当該証明装置を識別する装置識別子に基づいて、前記証明情報を生成する。また、前記取得手段は、前記特徴量及び前記証明装置を識別する装置識別子に基づいて、生成された前記証明情報を取得し、前記検証装置は、さらに、正規の動作プログラムの特徴を示す正規特徴量を取得する正規特徴量取得手段と、取得した前記正規特徴量及び前記証明装置を識別する装置識別子に基づいて、前記証明装置の正当性を検証する検証情報を生成する検証情報生成手段とを含み、前記判断手段は、前記証明情報と前記検証情報とを用いて、前記証明装置の正当性を判断してもよい。
【００２２】
これらの構成によると、証明情報は、測定手段により得られた特徴量及び証明装置を識別する装置識別子に基づいて生成され、検証情報は、正規の動作プログラムの特徴を示す正規特徴量及び証明装置を識別する装置識別子に基づいて生成され、前記証明情報と前記検証情報とを用いて、証明装置の正当性が判断されるので、不正な装置が証明装置になりすますことを防止することができる。
【００２３】
ここで、前記検証装置は、さらに、前記証明装置を識別する装置識別子を取得する識別子取得手段と、前記証明装置に割り当てられるデバイス鍵を、取得した前記装置識別子に基づいて暗号化して暗号化デバイス鍵を生成する暗号化手段と、生成した暗号化デバイス鍵を前記情報保持手段に格納するするデバイス鍵格納手段とを含むとしてもよい。
この構成によると、証明装置を識別する装置識別子に基づいて、前記証明装置に割り当てられるデバイス鍵を暗号化して暗号化デバイス鍵を生成し、生成した暗号化デバイス鍵を証明装置へ出力するので、証明装置になりすました不正な装置が、暗号化デバイス鍵を不正に取得したと仮定しても、正しい装置識別子を知らない不正な装置は、暗号化デバイス鍵を正しく復号することができず、デバイス鍵の不正な使用を防止することができる。
【００２４】
ここで、前記秘密情報は、デバイス鍵を暗号化して生成した暗号化デバイス鍵であり、前記証明装置は、さらに、暗号化手段を含み、前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認された場合に、前記暗号化デバイス鍵を受信し、前記暗号化手段は、当該証明装置を識別する装置識別子に基づいて、受信した暗号化デバイス鍵を暗号化して二重暗号化デバイス鍵を生成し、前記証明装置は、さらに、生成した二重暗号化デバイス鍵を保持するデバイス鍵保持手段を含む。また、前記証明装置は、暗号化デバイス鍵を暗号化する暗号化手段を含み、前記情報保持手段は、前記秘密情報として、暗号化デバイス鍵を保持しており、前記判断手段は、前記証明装置の正当性として、前記証明装置が有する前記暗号化手段の正当性を判断し、前記出力手段は、前記暗号化手段の正当性が確認された場合に、暗号化デバイス鍵を前記証明装置へ出力してもよい。
【００２５】
これらの構成によると、証明装置が有する暗号化手段の正当性が確認された場合に、暗号化デバイス鍵が検証装置から証明装置へ伝送され、証明装置が有する前記暗号化手段により、証明装置を識別する装置識別子に基づいて暗号化デバイス鍵が暗号化されて二重暗号化デバイス鍵が生成され、生成された二重暗号化デバイス鍵が保持されるので、証明装置の認証がより確実に行えるとともに、二重暗号化により、デバイス鍵の漏洩の防止をより強化することができる。
【００２６】
ここで、前記暗号化手段は、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、前記受信手段は、前記検証装置により前記暗号化手段の正当性が確認されなかった場合に、前記更新プログラムとして、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを受信し、受信した正規の暗号化プログラムを、前記記憶部に記憶されている暗号化プログラムに上書きし、前記暗号化手段は、正規の暗号化プログラムに従って、前記マイクロプロセッサが動作することにより、暗号化アルゴリズムの機能を達成する。また、前記証明装置が有する前記暗号化手段は、暗号化アルゴリズムを構成する複数のコンピュータ命令を含む暗号化プログラムを記憶している記憶部と、前記暗号化プログラムに従って動作するマイクロプロセッサとから構成され、前記プログラム格納手段は、前記更新プログラムとして、前記暗号化アルゴリズムを構成する複数のコンピュータ命令を含む正規の暗号化プログラムを記憶しており、前記出力手段は、前記暗号化手段が正当でないと確認された場合に、正規の前記暗号化プログラムを前記証明装置へ出力してもよい。
【００２７】
これらの構成によると、証明装置が、受信した正規の暗号化プログラムにより、元の暗号化プログラムを更新しなければ、証明装置が所望するデバイス鍵の取得ができないので、証明装置に対して、正規の暗号化プログラムへの更新を強制することができる。
ここで、前記受信手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが確認された場合、前記検証装置から、受信した暗号化デバイス鍵の復号に必須となる鍵を受け取る。また、前記出力手段は、さらに、個別暗号化を行う前記暗号化プログラムが消去されたことが前記判断手段により確認された場合、前記暗号化デバイス鍵の復号に必須となる鍵を出力してもよい。
【００２８】
これらの構成によると、証明装置が、受信した暗号化プログラムを消去しなければ、デバイス鍵の復号に必須となる鍵の取得ができないので、証明装置に対して、暗号化プログラムの消去を強制することができる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
図１は、コンテンツ配布システム０１００の構成を示している。コンテンツ配布システム０１００は、サーバ０１０１、端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、端末Ｎ０１０５〜端末Ｚ０１０６、カード０１０７から構成されており、サーバ０１０１は、端末Ａ０１０２、端末Ｂ０１０３、および端末Ｍ０１０４とインターネット０１０８を介して接続されている。端末Ｎ０１０５、端末Ｚ０１０６はサーバ０１０１と直接通信する手段を持っていない。端末Ａ０１０２、端末Ｂ０１０３〜端末Ｍ０１０４、および端末Ｎ０１０５〜端末Ｚ０１０６は、後述するようにカードインターフェースを備えており、カード０１０７を介してデータのやり取りが可能となっている。
【００３０】
なお、図１ではサーバ０１０１と接続されている端末として、端末Ａ０１０２、端末Ｂ０１０３、端末Ｍ０１０４しか図示していないが、端末Ａ０１０２等と同一の構成を持つ１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｂ０１０３、端末Ｍ０１０４は端末Ａ０１０２と同様の構成であるため、必要な場合を除いて端末Ａ０１０２以外の端末についての説明は省略する。また、図１では、サーバ０１０１と接続されていない端末として、端末Ｎ０１０５、端末Ｚ０１０６しか図示していないが、端末Ｎ１０５または端末Ｚ０１０６と同一の構成を含む１台以上の端末が、さらに、コンテンツ配布システム０１００に存在してもよい。また、図１に示した台数よりも少ない台数だけ存在していてもよい。以後、端末Ｚ０１０６は端末Ｎ０１０５と同様の構成であるため、必要な場合を除いて端末Ｎ０１０５以外の端末についての説明は省略する。
【００３１】
端末Ａ０１０２は、インターネット０１０８を介してサーバ０１０１と通信し、音楽や映画などのコンテンツをダウンロードする機能とダウンロードしたコンテンツを再生する機能を有している。ここで、コンテンツは著作権保護されており暗号化された形で端末Ａ０１０２にダウンロードされる。
カード０１０７は、端末Ａ０１０２、およびインターネット０１０８を介してサーバ０１０１と通信し、コンテンツを暗号化した鍵を取得し、端末Ａ０１０２の依頼に基づいてコンテンツを暗号化した鍵を端末Ａ０１０２に渡す。ここで、カード０１０７はコンテンツを暗号化した鍵を渡す際に、端末Ａ０１０２が正当な端末かどうかを確かめて、正当な端末でなければ鍵を出力しないよう構成されている。具体的には、公知の相互認証等により、相手の正当性を確認した上で鍵を渡している。
【００３２】
図２は、端末Ａ０１０２の構成を示している。なお、端末Ｂ０１０３、端末Ｍ０１０４も同様の構成をしている。端末Ａ０１０２は、プロセッサ０２０１、ＲＡＭ０２０２、ブートコード０２０３、カードインターフェース０２０４、通信部０２０５、コンテンツ格納部０２０６、セキュアモジュール０２０７、プログラム格納部０２０８で構成されており、バス０２１３で相互に接続されている。プログラム格納部０２０８には、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２が格納されている。
【００３３】
プロセッサ０２０１は、ブートコード０２０３、およびＲＡＭ０２０２にロードされているプログラムを実行し、端末Ａ０１０２の各種処理を行う。
ＲＡＭ０２０２は、プロセッサ０２０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０２０８に格納されている。
ブートコード０２０３は、端末Ａ０１０２がリセットされた後、プロセッサ０２０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０２０３は、プログラム格納部０２０８に格納されているオペレーティングシステム０２０９をＲＡＭ０２０２へ展開する。
【００３４】
カードインターフェース０２０４は、カード０１０７と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、カードインターフェース０２０４と通信することで、カード０１０７と通信することができる。端末Ａ０１０２で動作するプログラムはカード０１０７と通信する時には常にカードインターフェース０２０４を使用する。以下、端末Ａ０１０２で動作するプログラムとカード０１０７の通信について記述する場合はカードインターフェース０２０４の記述は省略する。
【００３５】
通信部０２０５は、インターネット０１０８と端末Ａ０１０２を接続するインターフェースである。プロセッサ０２０１で動作するプログラムは、通信部０２０５と通信することで、インターネット０１０８を介してサーバ０１０１と通信することができる。
コンテンツ格納部０２０６は、端末Ａ０１０２がサーバ０１０１からダウンロードしたコンテンツを格納しておく場所である。
【００３６】
セキュアモジュール０２０７は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）で規格化されているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と同様の機能を有するデバイスである。ＴＰＭの詳細な仕様については、ＴＣＧのホームページ＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｔｒａｓｔｅｄｃｏｍｐｕｔｉｎｇｇｒｏｕｐ．ｏｒｇ＞で公開されている。
【００３７】
セキュアモジュール０２０７は、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒｅｇｉｓｔｏｒ）と呼ばれるレジスタを含んでおり、そのレジスタには端末Ａ０１０２のソフトウェア構成に依存する値が格納される。セキュアモジュール０２０７は、ＰＣＲを更新するコマンドを提供しており、そのコマンドが実行されると現在のＰＣＲの値とそのコマンドの引数を結合し、その結合した値に対して一方向性関数を施した結果でＰＣＲが更新される。以下、このコマンドをＰＣＲ拡張コマンドと呼ぶ。
【００３８】
セキュアモジュール０２０７は、セキュアモジュール０２０７内に外部に取り出されない形で保持されている秘密鍵を用いて、ＰＣＲの値に対し署名を施すサービスを提供することができる。このサービスはＡｔｔｅｓｔａｔｉｏｎと呼ばれる。例えば、端末Ａ０１０２内で動作するプログラムがセキュアモジュール０２０７のＡｔｔｅｓｔａｔｉｏｎサービスに関連するコマンドを用い、署名された現在のＰＣＲ値を取得してサーバ０１０１に送信する。この場合、サーバ０１０１は、認証局から得たセキュアモジュール０２０７の公開鍵を用いて署名検証することによって、送信された値がセキュアモジュール０２０７で生成されたＰＣＲの値であることを確かめることができる。なお、セキュアモジュール０２０７には耐タンパ処理が施されており、セキュアモジュール０２０７内で実行されるＰＣＲ拡張コマンド処理、およびＡｔｔｅｓｔａｔｉｏｎサービスに関連するコマンド処理を不正に変更することはできないようになっている。
【００３９】
プログラム格納部０２０８は、端末Ａ０１０２で動作するプログラムを格納する場所であり、オペレーティングシステム０２０９、権利購入制御プログラム０２１０、再生制御プログラム０２１１、プログラム証明書０２１２を格納している。
オペレーティングシステム０２０９は、一般的な端末Ａ０１０２の基盤ソフトウェアであり、オペレーティングシステム０２０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０２０９は、プログラム格納部０２０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。
【００４０】
続いて、各プログラムが行う処理について説明する。
図３は権利購入制御プログラム０２１０の動作フローを示している。権利購入制御プログラム０２１０はオペレーティングシステム０２０９上で動作するアプリケーションである。権利購入制御プログラム０２１０は、端末Ａ０１０２において、サーバ０１０１から提供されるコンテンツの権利の取得をカード０１０７に依頼する処理とそのコンテンツのダウンロードを行う。以下、この処理の詳細を説明する。
【００４１】
権利購入制御プログラム０２１０は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、まず、サーバ０１０１に問い合わせて購入可能なコンテンツのリストを取得する。そのリストにはコンテンツを識別できる情報、例えば、コンテンツのＩＤやコンテンツのタイトル、コンテンツの概要等が含まれている。次に、そのリストを端末Ａ０１０２のユーザに提示し、購入するコンテンツを選択させ、選択したコンテンツのＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤ（端末Ａ０１０２の端末ＩＤ）を含むコンテンツ購入要求をカードＩ／Ｆ０２０４を介して、カード０１０７に送信する（ステップＳ０３０１）。
【００４２】
次に、権利購入制御プログラム０２１０は、カード０１０７に購入依頼したコンテンツのＩＤをサーバ０１０１に送信し、該当するコンテンツをサーバ０１０１からダウンロードし、コンテンツ格納部０２０６に格納する。ここで、ダウンロードするコンテンツは暗号化されているので、コンテンツ格納部から不正にコピーできたとしても著作権は保護される（ステップＳ０３０２）。
【００４３】
なお、端末Ａ０１０２は、端末Ｎ０１０５等のインターネット０１０８に接続されていない他の端末のためにコンテンツを購入する場合がある。この場合、コンテンツ購入要求に含ませる端末ＩＤは、端末Ｎ０１０５等の端末ＩＤとなる。さらに、コンテンツを端末Ｎ０１０５等に渡すため、ステップＳ０３０２の後にコンテンツをカード０１０７に移動するステップが追加で実行される。
【００４４】
図４は再生制御プログラム０２１１の動作フローを示している。再生制御プログラム０２１１はオペレーティングシステム０２０９上で動作するアプリケーションである。再生制御プログラム０２１１は、再生するコンテンツを暗号化している鍵をカード０１０７から取得し、その鍵でコンテンツを復号化してコンテンツを再生する。また、カードから端末Ａ０１０２内のプログラムの更新を依頼された場合は、プログラム格納部０２０８に格納されているプログラムを更新する。以下、再生制御プログラム０２１１の処理の詳細を述べる。
【００４５】
再生制御プログラム０２１１は、オペレーティングシステム０２０９にローディングされ制御権を取得すると、コンテンツ格納部０２０６に格納されているコンテンツのリストを取得し、カード０１０７に問い合わせて再生可能なコンテンツのリストを作成する。カード０１０７は、カード０１０７に格納されているコンテンツを暗号化している鍵とその鍵に対応するコンテンツＩＤを格納しており、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツを暗号化している鍵に対応するコンテンツＩＤのリストを取得して、コンテンツ格納部０２０６に格納されているコンテンツＩＤのリストと比較して再生可能なコンテンツのリストを作成する。このリストは例えばカードに鍵が格納されているコンテンツのリストとなる（ステップＳ０４０１）。
【００４６】
なお、再生制御プログラム０２１１は、カード０１０７に格納されているコンテンツＩＤのリストもカード０１０７から取得し、再生可能なコンテンツのリストに追加することができる。この追加リストは、端末Ａ０１０２内に格納されているコンテンツに対する再生可能なコンテンツのリストの作成手順と同様の手順で作成される。この追加リストも含めたリストは、カードを含む端末上に存在する鍵に対応したコンテンツのリストとなり、（コンテンツ格納部０２０６に格納されているか否かは問わず）その端末で再生できるコンテンツの一覧を示すリストとなる。
【００４７】
再生制御プログラム０２１１は、ステップＳ０４０１で生成した再生可能なコンテンツのリストを端末Ａ０１０２のユーザに提示し、再生したいコンテンツを選択させ、そのコンテンツのＩＤを取得する。再生制御プログラム０２１１は、コンテンツＩＤを含む鍵出力依頼情報をカード０１０７に送信し、対応するコンテンツを暗号化している鍵の出力を依頼する（ステップＳ０４０２）。鍵出力依頼情報は、コンテンツＩＤ、端末ＩＤ、プログラム証明書、署名された現在のＰＣＲ値を含む。ここで、署名された現在のＰＣＲ値は、再生制御プログラム０２１１がセキュアモジュールに対してＡｔｔｅｓｔａｔｉｏｎサービスに関連するコマンドを用いて取得したものであり、そのＰＣＲの値は現在、端末で動作しているソフトウェアに依存する値となっている。
【００４８】
次に、再生制御プログラム０２１１は、カード０１０７に依頼した鍵が出力されたかどうかをカード０１０７に問い合わせる。（ステップＳ０４０３）もし、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、その鍵を用いてコンテンツ復号処理（ステップＳ０４０４）を行う。もし、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７からプログラムの更新依頼があるかどうかを確かめる処理（ステップＳ０４０６）を行う。ここで、プログラムの更新依頼は、コンテンツの処理プログラムにセキュリティホール等が発見されているとカード０１０７が判断した場合に、鍵を渡す前に、そのプログラムをアップデートすることを要求する依頼である。
【００４９】
再生制御プログラム０２１１は、鍵が出力されているのであれば（ステップＳ０４０３でＹＥＳ）、カード０１０７から鍵を取得し、再生すべきコンテンツをコンテンツ格納部０２０６、もしくはカード０１０７から取得して、コンテンツを復号化する（ステップＳ０４０４）。
再生制御プログラム０２１１は、コンテンツが復号化されるとそのコンテンツを再生する。（ステップＳ０４０５）再生制御プログラム０２１１は、復号化されたコンテンツの種別に応じた再生を行う。以降の再生の手順は一般的な再生方法であるので、説明は省略する。
【００５０】
再生制御プログラム０２１１は、鍵が出力されていないのであれば（ステップＳ０４０３でＮＯ）、カード０１０７にプログラムの更新依頼があるかどうかを問い合わせる。もし、プログラムの更新依頼があれば（ステップＳ０４０６でＹＥＳ）、カードから更新プログラムと後述する正規ＰＣＲ値を取得し、プログラム格納部０２０８のプログラムと後述するプログラム証明書０２１２を更新する（ステップＳ０４０７）。ここで、更新対象のプログラムとそのプログラムの正規ＰＣＲ値は、後述するようにサーバ０１０１から取得され、カードに格納される。なお、この正規ＰＣＲ値には後述するように端末メーカのみ知る秘密鍵を用いて作られた署名が付されており、この署名がプログラム証明書０２１２となる。その後、再生制御プログラム０２１１は、端末Ａ０１０２を再起動するためにシステムリセット依頼をオペレーティングシステム０２０９に送信する（ステップＳ０４０８）。
【００５１】
もし、プログラムの更新依頼がなければ（ステップＳ０４０６でＮＯ）、再生制御プログラム０２１１は、処理を終了する。
以上が再生制御プログラム０２１１が行う処理の説明である。以下、プログラム格納部０２０８が格納している情報の説明に戻る。
プログラム証明書０２１２は、セキュアモジュール０２０７のＰＣＲの値に対して端末Ａ０１０２を製造したメーカのみ知る秘密鍵で署名したデータである。署名するＰＣＲの値は、端末Ａ０１０２が起動し、オペレーティングシステム０２０９や各種アプリケーションがローディングされた後のＰＣＲの値である。この時、メーカはオペレーティングシステム０２０９や各種アプリケーションが各種著作権保護規格の実装要件を満たしているかどうかを確認した後、署名する。ここで、署名に用いる秘密鍵は端末Ａ０１０２には搭載されていないため、プログラム証明書０２１２は端末Ａ０１０２では生成できない。プログラム証明書０２１２は、例えばメーカの工場で生成される。
【００５２】
ＰＣＲの値は、端末Ａ０１０２のソフトウェア構成に依存させるために、端末Ａ０１０２上でローディングされるプログラムのハッシュ値を引数としてＰＣＲ拡張コマンドを実行することで更新される。プログラムのロード時に必ずロード対象のプログラムのハッシュ値を計算し、ＰＣＲ拡張コマンドを用いて、そのハッシュ値でＰＣＲを更新していけば、ＰＣＲ値を端末Ａ０１０２のソフトウェア構成に常に依存させることができる。
【００５３】
図５は、セキュアモジュール０２０７内のＰＣＲを更新し、ＰＣＲに端末Ａ０１０２のソフトウェア構成に依存する値を格納する処理のフローを示している。この処理は、オペレーティングシステム０２０９をローディングするブートコード０２０３、および各種アプリケーションプログラムをローディングするオペレーティングシステム０２０９の動作に共通して含まれる。これは、ブートコード０２０３はオペレーティングシステム０２０９を読み込むことで端末Ａ０１０２内のソフトウェア構成を変更し、オペレーティングシステム０２０９はアプリケーションプログラムを読み込むことで端末Ａ０１０２内のソフトウェア構成を変更するからである。
【００５４】
以下の説明では、別のプログラムを呼び出す側（前者におけるブートコード０２０３と、後者におけるオペレーティングシステム０２０９）を「ロードするプログラム」と、呼び出される側のプログラム（前者におけるオペレーティングシステム０２０９、後者におけるアプリケーションプログラム）を「ロード対象プログラム」と呼ぶ。
ロードするプログラムは、まず、ロード対象プログラムのハッシュ値をハッシュ関数アルゴリズムで計算する（ステップＳ０５０１）。次に、このハッシュ値を引数として、ＰＣＲ拡張コマンドを実行し、セキュアモジュール０２０７内のＰＣＲの値を更新する（ステップＳ０５０２）。ロードするプログラムは、ＰＣＲ更新処理（ステップＳ０５０２）終了後、ロード対象プログラムをＲＡＭ０２０２に展開する（ステップＳ０５０３）。最後に、ロードするプログラムはＲＡＭ０２０２にロードしたプログラムに分岐する（ステップＳ０５０４）。
【００５５】
端末Ａ０１０２は、電源投入後、もしくはリセット解除後、すなわち端末起動時、オペレーティングシステム０２０９や各種アプリケーションをＲＡＭ０２０２にロードしていく。端末Ａ０１０２は、プログラムをロードする時、図５で説明したようにＰＣＲの更新を行う。
図６は、端末Ａ０１０２の起動時の動作を表すフローチャートである。
【００５６】
電源投入後、もしくはリセット解除後、プロセッサ０２０１は、ブートコード０２０３を実行する（ステップＳ０６０１）。ブートコード０２０３は、端末Ａ０１０２のハードウェアの初期設定を行った後、ブートコード０２０３自身のハッシュ値を計算し、このハッシュ値をＰＣＲ拡張コマンドの引数として、セキュアモジュール０２０７のＰＣＲを更新する。ここで、セキュアモジュール０２０７のＰＣＲは、電源投入、もしくはリセット解除後には初期化されているものとする。
【００５７】
次にブートコード０２０３は、オペレーティングシステム０２０９をＲＡＭ０２０２にローディングする。ブートコード０２０３は、オペレーティングシステム０２０９をローディングする際、図５に示す手順で、オペレーティングシステム０２０９のハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。その後、プロセッサ０２０１は、オペレーティングシステム０２０９を実行し、オペレーティングシステム０２０９の初期化を行う。
【００５８】
オペレーティングシステム０２０９は、その後、各種アプリケーションのローディングを行う（ステップＳ０６０３）。各種アプリケーションがローディングされる際、図５に示す手順で、各種アプリケーションのハッシュ値を計算し、セキュアモジュール０２０７のＰＣＲを更新する。
その後、端末Ａ０１０２は、ユーザからの入力を待ち、その入力に応じたアプリケーションプログラムの処理を実行する（Ｓ０６０４）。
【００５９】
このように、端末Ａ０１０２は、電源投入後、もしくはリセット後、ブートコード０２０３を含む端末Ａ０１０２で動作するプログラムのハッシュ値でＰＣＲ拡張コマンドを用い、セキュアモジュール０２０７のＰＣＲを更新していく。その結果、セキュアモジュール０２０７のＰＣＲは、端末Ａ０１０２で動作しているプログラムに依存した値となる。
以上で端末Ａ０１０２の構成の説明を終わる。続いて、端末Ｎ０１０５の構成の説明に移る。
【００６０】
図７は、端末Ｎ０１０５の構成を示している。なお、端末Ｚ０１０６も同様の構成をしている。端末Ｎ０１０５は、プロセッサ０７０１、ＲＡＭ０７０２、ブートコード０７０３、カードインターフェース０７０４、コンテンツ格納部０７０６、セキュアモジュール０７０７、プログラム格納部０７０８で構成されており、これらの要素はバス０７１３で相互に接続されている。プログラム格納部０７０８には、オペレーティングシステム０７０９、再生制御プログラム０７１１、プログラム証明書０７１２が格納されている。
【００６１】
端末Ｎ０１０５のこれらの構成要素は、図２に示す端末Ａ０１０２の構成要素と同一の機能を有するため説明は省略する。ただし、端末Ｎ０１０５には、端末Ａ０１０２の通信部０２０５、権利購入制御プログラム０２１０に相当する構成要素は存在しない。
以上で端末Ｎ０１０５の構成の説明を終わる。続いて、サーバ０１０１の構成の説明を行う。
【００６２】
図１２は、サーバ０１０１の構成を示している。サーバ０１０１は、通信部１２０１、ＣＲＬデータベース１２０２、ＣＲＬ管理部１２０３、権利管理部１２０４で構成されている。ＣＲＬデータベース１２０２はＣＲＬ管理部１２０３と接続されている。また、ＣＲＬ管理部１２０３、権利管理部１２０４は、通信部１２０１と接続されている。
通信部１２０１は、インターネット０１０８と接続されており、端末Ａ０１０２〜端末Ｍ０１０４と通信を行う。ＣＲＬ管理部１２０３、および権利管理部１２０４は、この通信部１２０１を介して端末Ａ０１０２〜端末Ｍ０１０４、および端末Ａ０１０２等に接続されたカード０１０７と通信する。
【００６３】
ＣＲＬデータベース１２０２は、リボーク（無効化）されている端末の端末ＩＤ、その端末のリボークされた原因を取り除いた後の更新プログラム、およびその更新プログラムが端末上で実行された時のＰＣＲ値が格納されている。なお、端末のリボークは、一般的には、悪意の利用者の端末が特定できている場合にその端末を無効化することなど、プログラムの更新によって回復できない欠陥を持った端末の無効化も示すが、本実施の形態では、プログラムの更新によって回復できる欠陥を持った端末をリボーク対象として説明する。具体的には、本実施の形態では、セキュリティホールを持った古いソフトウェアを使用し続けている端末などが、リボーク対象としてＣＲＬデータベースに記録される。
【００６４】
図１３は、ＣＲＬデータベース１２０２の構成を示した図である。ＣＲＬデータベース１２０２は、ＣＲＬエントリＴ１３０１、Ｔ１３０２、Ｔ１３０３・・・から構成され、各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。ＣＲＬデータベース１２０２は、リボークされている端末の情報により構成される。
【００６５】
端末ＩＤエリアには、リボークされている端末のＩＤが格納される。更新プログラムエリアには、リボークされた端末の更新プログラムが格納される。リボークされた原因がソフトウェアにある場合、この更新プログラムを用いて端末をアップデートすれば、端末は動作し続けることができる。このようなケースの具体例としては、ソフトウェアがハッキングされたことが判明した場合や、ソフトウェアにセキュリティホールが発見された場合などである。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値に端末メーカのみ知る秘密鍵で作られた署名が付した情報が格納される。
【００６６】
この正規ＰＣＲ値を用い、端末側でプログラムが正しくアップデートされているかどうかを確かめることができる。
ＣＲＬ管理部１２０３は、通信部１２０１および端末Ａ０１０２を介してカード０１０７と相互認証を行い正規のカードであることを確かめ、ＣＲＬ情報を通信部１２０１を介して提供する。より具体的には、ＣＲＬ管理部１２０３は、カード０１０７から送られてくる端末ＩＤがＣＲＬデータベース１２０２に存在するかどうか確かめ、存在していれば該当するエントリの更新プログラムおよび正規ＰＣＲ値をカード０１０７に提供する。
【００６７】
権利管理部１２０４は、コンテンツの権利情報を管理し、端末の要求に応じて課金処理を行い、コンテンツの権利情報を提供する。権利管理部１２０４は、カード０１０７と相互認証を行い、正当なカード０１０７であることを確かめた後に課金処理および権利情報の提供を行う。権利管理部１２０４は、通信部１２０１を介してインターネット０１０８と接続される。
【００６８】
以上でサーバ０１０１の構成の説明を終わる。続いて、カード０１０７の構成の説明に移る。
図８は、カード０１０７の構成を示している。カード０１０７は、プロセッサ０８０１、ＲＡＭ０８０２、ブートコード０８０３、端末Ｉ／Ｆ０８０４、ＣＲＬデータベース０８０５、コンテンツ格納部０８０７、プログラム格納部０８０８で構成されており、これらの構成要素はバス０８１３で相互に結合されている。また、カード０１０７は、耐タンパ性を有しており、カード内のプログラムやデータを容易に暴露されることは無いようになっている。
【００６９】
プロセッサ０８０１は、ブートコード０８０３、およびＲＡＭ０８０２にロードされているプログラムを実行し、カード０１０７の各種処理を行う。
ＲＡＭ０８０２は、プロセッサ０８０１で実行するプログラムがロードされる。ロードされるプログラムはプログラム格納部０８０８に格納されている。
ブートコード０８０３は、カード０１０７がリセットされた後、プロセッサ０８０１が初めに実行するコード（ブートコード）が格納されている。ブートコード０８０３は、プログラム格納部０８０８に格納されているオペレーティングシステム０８０９をＲＡＭ０８０２へ展開する。なお、カード０１０７は、端末に挿入され電力が供給された時点でリセットされる。
【００７０】
端末Ｉ／Ｆ０８０４は、カード０１０７と端末を接続するインターフェースである。プロセッサ０８０１で動作するプログラムは、端末Ｉ／Ｆ０８０４と通信することで、端末と通信することができる。カード０１０７で動作するプログラムは端末Ｉ／Ｆ０８０４と通信する時には常に端末Ｉ／Ｆ０８０４を使用する。以下、カード０１０７で動作するプログラムと端末との通信について記述する場合は端末Ｉ／Ｆ０８０４の記述は省略する。
【００７１】
図１４は、ＣＲＬデータベース０８０５の構成を示した図である。ＣＲＬデータベース０８０５は、ＣＲＬエントリＴ１４０１、Ｔ１４０２、Ｔ１４０３・・・から構成され、各ＣＲＬエントリには、端末ＩＤ、更新プログラム、および正規ＰＣＲ値のエリアが存在する。
端末ＩＤエリアには、カード０１０７が取得した端末のＩＤが格納される。なお、端末ＩＤのエリアに書かれている「ＩＤ＿Ａ」「ＩＤ＿Ｂ」「ＩＤ＿Ｎ」はそれぞれ、端末Ａ１０２、端末Ｂ１０３、端末Ｎ１０５の端末ＩＤである。更新プログラムエリアには、該当する端末ＩＤを持つ端末がリボークされている場合、その端末の更新プログラムが格納される。正規ＰＣＲ値エリアには、端末が更新プログラムエリアに格納されている更新プログラムでアップデートされ、正常に動作している時のＰＣＲ値が格納される。ここで正規ＰＣＲ値には、前述したように端末メーカのみ知る秘密鍵を用いて作られた署名が付されている。なお、Ｔ１４０３では、更新プログラムがＮＵＬＬに、正規のＰＣＲ値が現状のＰＣＲ値となっている。このエントリはカード０１０７が鍵出力依頼情報を受け取った後の状態でありかつ更新プログラムを取得していない状態である。例えば、カード０１０７が初めて端末Ｎ０１０５に挿入されて、鍵出力依頼情報を受け取った直後の状態である。
【００７２】
コンテンツ格納部０８０７には、暗号化されたコンテンツとコンテンツの権利が格納される。このコンテンツは端末Ａ０１０２のようなサーバ０１０１に接続可能な端末でダウンロードされ、コンテンツ格納部０８０７に格納される。コンテンツ格納部０８０７は、端末Ｎ０１０５のようなインターネット０１０８を経由してサーバ０１０１にアクセスできない端末にコンテンツを供給するために用いられる。また、コンテンツの権利は、後述する権利購入プログラム０８１０によってサーバ０１０１から取得されてコンテンツ格納部０８０７に格納される。
【００７３】
コンテンツ格納部０８０７に格納されるコンテンツの権利は、カード０１０７の外部から直接アクセスすることはできず、後述する権利確認・鍵生成プログラム０８１１しかアクセスできないような実装となっている。具体的には、権利確認・鍵生成プログラム０８１１でしか復号できないように暗号化したりすることで、このような実装を行うことができる。
【００７４】
プログラム格納部０８０８は、オペレーティングシステム０８０９、権利購入プログラム０８１０、権利確認・鍵生成プログラム０８１１を格納している。
オペレーティングシステム０８０９は、一般的なカード０１０７の基盤ソフトウェアであり、オペレーティングシステム０８０９上で動作するアプリケーションにサービスを提供する。オペレーティングシステム０８０９は、プログラム格納部０８０８内に格納されているアプリケーションをＲＡＭ０２０２にロードする。
【００７５】
権利購入プログラム０８１０は、端末の権利購入制御プログラム０２１０から受け取ったコンテンツ購入要求に基づき、サーバ０１０１と端末の通信機能を用いて通信して権利の購入およびカード０１０７のＣＲＬデータベース０８０５の更新を行う。なお、コンテンツ購入要求には、端末Ａ０１０２の説明で述べたように、購入対象のコンテンツＩＤおよびそのコンテンツを購入する端末を識別する端末ＩＤが含まれている。
【００７６】
図９は、権利購入プログラム０８１０の動作を示すフローチャートである。権利購入プログラム０８１０は、コンテンツ購入要求に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ０９０１）。権利購入プログラム０８１０は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利購入プログラム０８１０は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。
【００７７】
権利購入プログラム０８１０は、サーバ０１０１と相互認証を行い、コンテンツの購入処理およびコンテンツの権利の取得を行う（ステップＳ０９０２）。取得したコンテンツの権利は、コンテンツ格納部０８０７に安全に保存される。コンテンツの権利には、コンテンツの利用期限、利用回数などのコンテンツ利用条件、およびコンテンツを暗号化している鍵が格納されている。コンテンツの権利は暗号化された形でコンテンツ格納部０８０７に保持される。
【００７８】
次に、権利購入プログラム０８１０は、サーバ０１０１に問い合わせ、ＣＲＬデータベース０８０５の更新を行う（ステップＳ０９０３）。ここで、権利購入プログラム０８１０は、ＣＲＬデータベース０８０５のＣＲＬエントリに格納されているすべての端末ＩＤをサーバ０１０１に送信する。サーバ０１０１のＣＲＬ管理部１２０３は、受け取った端末ＩＤがＣＲＬデータベース１２０２に格納されているかどうかを確かめ、該当する端末ＩＤが存在する場合、その端末ＩＤが格納されているＣＲＬエントリ内の更新プログラムと正規ＰＣＲ値を権利購入プログラム０８１０に送信する。権利購入プログラム０８１０は、受け取った更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５の該当する端末ＩＤを含むＣＲＬエントリに格納する。
【００７９】
図１０は、権利確認・鍵生成プログラム０８１１の動作を示すフローチャートである。
権利確認・鍵生成プログラム０８１１は、端末がリボークされていないかどうか確認し、されていなければ、コンテンツ利用条件をチェックして再生可能な状態であればコンテンツの暗号鍵を端末に出力する。また、リボークされている場合、更新プログラムを端末に出力する。
【００８０】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれる端末ＩＤを取得してＣＲＬデータベース０８０５に格納する（ステップＳ１００１）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を操作し、ＣＲＬエントリを作成して端末ＩＤエリアに取得した端末ＩＤを格納する。権利確認・鍵生成プログラム０８１１は、既に取得した端末ＩＤを端末ＩＤエリアに持つＣＲＬエントリが存在する場合にはＣＲＬエントリの作成は行わない。権利購入プログラム０８１０にも同様の処理を行う機能があるが、このステップは端末Ｎ０１０５のようなインターネット０１０８に接続されない端末で端末ＩＤを取得するために実行される。端末Ｎ０１０５のような端末は、権利購入プログラム０８１０を実行することはないからである。なお、これらの端末については、端末Ａ０１０２等のインターネット０１０８に接続された機器がカード０１０７を用いて事前に購入したコンテンツを再生することを想定している。
【００８１】
権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるＡｔｔｅｓｔａｔｉｏｎサービスにより署名されたＰＣＲ値の署名検証を行う（ステップＳ１００２）。署名検証の結果、ＰＣＲ値が正規のものでないと判断された場合（ステップＳ１００２でＮＯ）、権利確認・鍵生成プログラム０８１１は処理を終了する。
署名検証の結果、ＰＣＲの値が正規のものであると確認された場合（ステップＳ１００２でＯＫ）、権利確認・鍵生成プログラム０８１１は、端末の正当性確認をＰＣＲ値を用いて行う（ステップＳ１００３）。権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値と、端末より取得したＰＣＲ値を比較する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。ここで、比較結果がＯＫとはＰＣＲ値と正規ＰＣＲ値とが一致することを意味し、比較結果がＮＧとはＰＣＲ値と正規ＰＣＲ値とが一致しないことを意味する。
【００８２】
なお、鍵出力依頼情報に含まれる端末ＩＤと一致するＣＲＬエントリ内の正規ＰＣＲ値が存在しない場合、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるプログラム証明書に含まれるＰＣＲ値を、そのＰＣＲ値が端末メーカにより生成されたものであるかどうかを端末メーカの公開鍵で確認した後、正規ＰＣＲ値の替わりに用いて端末の正当性を確認する。比較結果がＯＫの場合（ステップＳ１００３でＯＫ）、権利確認処理に移る。比較結果がＮＧの場合（ステップＳ１００３でＮＧ）、プログラム更新処理に移る。
【００８３】
ここで、権利確認・鍵生成プログラム０８１１は、正規ＰＣＲ値をサーバから取得していない場合に限って、鍵出力依頼情報に含まれるプログラム証明書中のＰＣＲ値をＣＲＬエントリに格納し、その後の端末の正当性確認に用いる。このプログラム証明書はメーカが出荷時に機器のソフトウェア構成を表すＰＣＲ値を含む状態で署名しているものであるため、実質的にはカード０１０７は端末が出荷時のソフトウェア構成であるかどうかの検証しかできないこととなる。しかしながら、後述するが、本実施の形態では、権利を購入する処理の中でＣＲＬエントリに格納されている端末ＩＤすべてについて更新プログラムが存在するかどうかの確認が行われ、更新プログラムが存在している場合は更新プログラムおよびその更新プログラムに対応した正規ＰＣＲがカード０１０７のＣＲＬエントリに格納される。そのため、一度端末ＩＤがＣＲＬエントリに格納され、権利購入処理が発生すると正規ＰＣＲ値を用いた端末の正当性検証が完全に機能することとなる。端末の利用者はコンテンツ配信サービスを受け続けるためには権利購入処理の実行が不可欠となるため、正規ＰＣＲ値の取得操作を避けることは困難である。
【００８４】
端末が正当であると判断された場合（ステップＳ１００３でＯＫ）、権利確認・鍵生成プログラム０８１１は、鍵出力依頼情報に含まれるコンテンツＩＤに該当するコンテンツの権利情報をコンテンツ格納部０８０７から取得し、利用条件をチェックする（ステップＳ１００４）。利用条件のチェックがＮＧの場合（ステップＳ１００４でＮＧ）、権利確認・鍵生成プログラム０８１１は処理を終了する。
【００８５】
利用条件のチェックがＯＫの場合（ステップＳ１００４でＯＫ）、権利確認・鍵生成プログラム０８１１は、コンテンツの権利情報に含まれるコンテンツ暗号鍵を端末に出力し、権利確認・鍵生成プログラムの処理を終了する（ステップＳ１００５）。
端末の正当性確認ステップで端末が正当でないと判断された場合（ステップＳ１００３でＮＧ）、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、鍵出力要求に含まれる端末ＩＤに該当するＣＲＬエントリの更新プログラムエリアに更新プログラムが存在するかどうかを確かめる（ステップＳ１００６）。更新プログラムが存在しない場合（ステップＳ１００６でＮＧ）、権利確認・鍵生成プログラム０８１１は、処理を終了する。
【００８６】
更新プログラムが存在する場合（ステップＳ１００６でＯＫ）、更新プログラムと正規ＰＣＲの値の出力処理を行う（ステップＳ１００７）。ここで、更新プログラムおよび正規ＰＣＲ値は、ＣＲＬデータベース０８０５内に格納されている鍵出力依頼情報に含まれる端末ＩＤに該当するＣＲＬエントリのものである。
次に、コンテンツ配布システム０１００の動作を説明する。
【００８７】
まず、インターネット０１０８を介してサーバ０１０１に接続されている端末（端末Ａ０１０２〜端末Ｍ０１０４）についての動作を説明する。以下、端末Ａ０１０２を例として説明するが、端末Ｂ０１０３〜端末Ｍ０１０４も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１１は、端末Ａ０１０２においてカード０１０７を用いてサーバ０１０１から権利を購入し、サーバ０１０１から取得したコンテンツを端末Ａ０１０２で再生する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ａ０１０２はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。以下、図１１に示すフローチャートに従ってコンテンツ配布システム０１００の動作ついて説明する。
【００８８】
端末Ａ０１０２は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１１０１）。その結果、端末０１０２のセキュアモジュール０２０７内のＰＣＲが端末０１０２で動作しているプログラムに依存する値となる。カード０１０７は、ブートコード０８０３を用いてオペレーティングシステム０８０９をＲＡＭ０８０２にローディングし、その後、オペレーティングシステム０８０９が各種アプリケーションを起動することでカード０１０７を利用可能な状態にする。
【００８９】
次に端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１１０２）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。
ここで、端末Ａ０１０２はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１１０３）。
【００９０】
次に端末Ａ０１０２は、図４に示すように再生制御プログラム０２１１を動作させコンテンツの再生を行う。再生制御プログラム０２１１がカード０１０７に対し鍵の出力を依頼すると図１０に示すように権利確認・鍵生成プログラム０８１１が動作する。ここで、権利確認・鍵生成プログラム０８１１は、端末の正当性確認（Ｓ１００３）を行う。ここで、端末Ａ０１０２はリボークされているので、端末の正当性確認はＮＧとなる（Ｓ１００３でＮＧ）。そのため、カード０１０７は、ＣＲＬデータベース０８０５内に端末Ａ０１０２の端末ＩＤを含むＣＲＬエントリがあり、また更新プログラムおよび正規ＰＣＲ値が存在するため、更新プログラムおよび正規ＰＣＲ値を端末Ａ０１０２に出力する。再生制御プログラム０２１１は、受け取った更新プログラムおよび正規ＰＣＲ値をそれぞれプログラム格納部０２０８に格納し、端末Ａ０１０２を再起動する（ステップＳ１１０４）。その後、端末Ａ０１０２は、ステップＳ１１０１と同様に起動する。
【００９１】
次に端末Ａ０１０２は、再生制御プログラム０２１１を動作させ、再度、カード０１０７の権利確認・鍵生成プログラム０８１１に鍵出力処理を依頼する。権利確認・鍵生成プログラム０８１１のステップＳ１００３で端末の正当性の確認が行われる（ステップＳ１１０５）。もし、正しくプログラムが更新されているならば（ステップＳ１１０５のＯＫ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値が一致することから、端末Ａ０１０２が正当であることが確認され、鍵が出力される。
【００９２】
一方、プログラムの更新処理を行う端末Ａ０１０２の再生制御プログラム０２１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１１０５のＮＧ）、端末Ａ０１０２のセキュアモジュール０２０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ａ０１０２は正当でないと判断され、端末Ａ０１０２の処理は終了する。
【００９３】
プログラムの更新が正しく行われた場合（ステップＳ１１０５でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１１０６）。
鍵が出力されると、再生制御プログラム０２１１は、コンテンツ格納部０２０６から暗号化されたコンテンツを取り出し、鍵を用いて復号化した後に再生する（ステップＳ１１０７）。
【００９４】
このように、ＰＣＲ値を用いてプログラムが正しく更新されたことを確認しないとコンテンツ暗号鍵を出力しない構成とすることで、もし、正しくアップデートされていないならば、端末の正当性チェックがＮＧとなり、コンテンツを暗号化した鍵は端末に出力されないので、コンテンツを正しく再生するためには、プログラムをアップデートすることが必要となる。また、アップデートしたプログラムが改竄された場合であっても端末の正当性チェックがＮＧとなり、コンテンツが再生できなくなるため、コンテンツの著作権を適切に保護することができる。
【００９５】
さらに、本発明では、従来技術のようにプログラムアップデート手段全体を耐タンパ実装することなく、プログラムのアップデートを強制することができる。つまり、上述の処理を実現するためには、カード０１０７とセキュアモジュール０２０７のみを耐タンパ実装していればよくなるため、耐タンパ実装すべき箇所を大きく削減することができる。
また、コンテンツを再生する権利を要求する際に、必ずカード０１０７が端末の正当性を確認し、ＮＧの場合に端末のプログラムをアップデートするので、コンテンツを再生しようとする限り、必ずアップデートが行われることとなる。これにより、リボークされた端末のソフトウェアのアップデートを確実に行うことができる。なお、本実施の形態では、コンテンツの再生時に上記の処理を行ったが、これを記録時等に変更することで、他のタイミングでもソフトウェアのアップデートを強制することができることは言うまでもない。
【００９６】
続いて、インターネット０１０８と接続できない端末（端末Ｎ０１０５〜Ｚ０１０６）についての動作の説明を行う。以下では端末Ｎ０１０５を例として説明するが、端末Ｚ０１０６も同様の構成を備えているため、以下で説明するものと同様の動作を行う。
図１５は、インターネット０１０８を介してサーバ０１０１に接続することができない端末Ｎ０１０５のプログラムを更新する場合のコンテンツ配布システム０１００の動作を示すフローチャートである。ここで、端末Ｎ０１０５はリボークされており、サーバ０１０１のＣＲＬデータベース１２０２には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在していると仮定する。また、更新プログラムとそれに対応する正規ＰＣＲ値もＣＲＬデータベース１２０２の該当するＣＲＬエントリ内に格納されているとする。ここで、端末Ｎ０１０５は、インターネット０１０８を介してサーバ０１０１に接続することができないため、権利の購入は端末Ａ０１０２を用いて行い、コンテンツとその権利はカード０１０７を用いることで端末Ｎ０１０５で利用可能となる。以下、図１５に示すフローチャートに従ってコンテンツ配布システム０１００の動作について説明する。
【００９７】
端末Ａ０１０２は、端末起動処理、および権利購入処理をそれぞれ図１１のステップＳ１１０１、およびステップＳ１１０２で説明したように行う。ここで、端末Ｎ０１０５でもダウンロードしたコンテンツを再生できるようにするため、端末Ａ０１０２はカード０１０７のコンテンツ格納部０８０７にダウンロードしたコンテンツを格納する。
端末Ｎ０１０５は、図６で説明した端末起動フローに基づき端末の起動処理を行う（ステップＳ１５０３）。その結果、端末０１０５のセキュアモジュール０７０７内のＰＣＲが端末Ｎ０１０５で動作しているプログラムに依存する値となる。
【００９８】
次に、端末Ａ０１０２で購入したコンテンツを端末Ｎ０１０５で再生するためにカード０１０７を端末Ａ０１０２から端末Ｎ０１０５に移動させる。端末Ｎ０１０５は、再生制御プログラム０７１１を動作させ、カード０１０７に対し、コンテンツ鍵出力依頼を行う。カード０１０７は、図１０に示すような動作を行う権利確認・鍵生成プログラム０８１１を動作させる。ここで、権利確認・鍵生成プログラムは、ステップＳ１００１で端末Ｎ０１０５の端末ＩＤをＣＲＬデータベースに追加し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを作成する（ステップＳ１５０４）。
【００９９】
権利確認・鍵生成プログラム０８１１はその後、ステップＳ１００３で端末Ｎ０１０５の正当性確認を行う（ステップＳ１５０５）。ここで、権利確認・鍵生成プログラム０８１１は、ＣＲＬデータベース０８０５を参照し、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリを発見するが、正規ＰＣＲ値が存在しないため、端末Ｎ０１０５のプログラム証明書０７１２に格納されているＰＣＲ値を用いて端末の正当性を確認する。端末Ｎ０１０５のセキュアモジュール０７０７のＰＣＲ値とプログラム証明書０７１２のＰＣＲ値が一致しなければ（ステップＳ１５０５でＮＧ）、端末は正当で無いと判断し、権利確認・鍵生成プログラムは処理を終了する。
【０１００】
端末の正当性が確認された場合（ステップＳ１５０５でＯＫ）、権利確認・鍵生成プログラム０８１１は、権利確認処理Ｓ１００４を行った後、コンテンツ格納部０８０７に格納されているコンテンツの権利内のコンテンツ暗号化鍵を復号化し、端末Ｎ０１０５に出力する（ステップＳ１５０６）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５０７）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。
【０１０１】
次に、カード０１０７を用いて新たにコンテンツの権利を購入するために、カード０１０７は端末Ａ０１０２に挿入される。以下、端末Ａ０１０２においてコンテンツの権利を購入するフローについて説明する。
端末Ａ０１０２は、図３に示すように権利購入制御プログラム０２１０を用い、権利の購入処理をカード０１０７を用いて行う（ステップＳ１５０８）。カード０１０７は、図９に示すように権利購入プログラムを動作させ権利購入処理を行う。権利購入の際にダウンロードされたコンテンツは、カード０１０７のコンテンツ格納部０８０７に格納される。
【０１０２】
ここで、端末Ｎ０１０５はリボークされているので、権利購入プログラム０８１０は、サーバ０１０１から該当する更新プログラムと正規ＰＣＲ値をＣＲＬデータベース０８０５に格納する（ステップＳ１５０９）。カード０１０７のＣＲＬデータベース０８０５には、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリが存在しているので、権利購入プログラム０８１０のＣＲＬ更新処理（ステップＳ０９０３）において、端末Ｎ１００５の端末ＩＤでサーバ０１０１のＣＲＬデータベース１２０２が検索される。検索の結果、端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリがＣＲＬデータベース１２０２に存在するので、権利購入プログラム０８１０は、そのＣＲＬエントリから端末Ｎ０１０５の更新プログラムと正規ＰＣＲ値をカード０１０７のＣＲＬデータベース０８０５に存在する端末Ｎ０１０５の端末ＩＤを含むＣＲＬエントリに格納する。
【０１０３】
次に、カード０１０７は、端末Ｎ０１０５でコンテンツを再生するために端末Ｎ０１０５に挿入される。以下、端末Ｎ０１０５におけるコンテンツ再生動作について説明する。
端末Ｎ０１０５は、図１１のステップＳ１１０４において端末Ａ０１０２が行ったように端末Ｎ０１０５のプログラムを更新する（ステップＳ１５１０）。
端末Ｎ０１０５は、図１１のステップＳ１１０５において端末Ａ０１０２が行ったようにカード０１０７に対し鍵出力依頼を行うことで、カード０１０７によって正当性の確認を行われる（ステップＳ１５１１）。正当性が確認された場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号化鍵がカード０１０７から端末Ｎ０１０５に出力される。
【０１０４】
一方、プログラムの更新処理を行う端末Ｎ０１０５の再生制御プログラム０７１１が悪意のあるものから改竄され、プログラムの更新が行われなかった場合（ステップＳ１５１１のＮＧ）、端末Ｎ０１０５のセキュアモジュール０７０７から取得したＰＣＲ値とカード０１０７のＣＲＬデータベース０８０５に格納されているＰＣＲ値は一致することなく、端末Ｎ０１０５は正当でないと判断され、端末Ｎ０１０５の処理は終了する。
【０１０５】
プログラムの更新が正しく行われた場合（ステップＳ１５１１でＯＫ）、カード０１０７からコンテンツの暗号鍵が出力される（ステップＳ１５１２）。
端末Ｎ０１０５の再生制御プログラム０７１１は、カード０１０７から受け取ったコンテンツ暗号鍵を用いて、カード０１０７のコンテンツ格納部０８０７に格納されているコンテンツを復号化した後、再生する（ステップＳ１５１３）。なお、カード０１０７のコンテンツ格納部０８０７から端末Ｎ０１０５のコンテンツ格納部０７０６にコンテンツを転送した後にコンテンツの再生を行っても良い。
【０１０６】
これにより、インターネット０１０８経由でサーバ０１０１に接続できない端末Ｎ０１０５のような端末であっても、端末のリボークおよびプログラムの更新が可能となる。
また、一度カード０１０７が使用された端末に対応するリボケーションリストのみカード０１０７に取得するため、カード０１０７の少ないリソースでもリボケーションリストが取り扱える。
【０１０７】
また、端末がネットワーク接続されている場合の動作説明で述べたものと同様の効果が得られることは言うまでもない。
（変形例）
なお、本発明を上記実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０１０８】
（１）  上述した実施の形態では、更新対象はソフトウェアであったが、ハードウェアの構成情報を更新するシステムに適用してもよい。このようなハードウェアの具体的な例としてはリコンフィギュアラブルプロセッサなどが考えられる。
（２）  上述した実施の形態では、カード、端末、サーバのいずれを制御するプログラムもオペレーティングシステムの上で動作していたが、これに限られるものではない。アプリケーションプログラム等が直接プロセッサで処理できる言語で書かれている場合には、必ずしもオペレーティングシステムはなくてもよい。
【０１０９】
（３）  ＰＣＲはハッシュ値であるとしたが、これに限られるものではない。改竄検出に用いることのできる値であれば、どのようなものであってもよい。例えば、プログラムの一部を暗号化した値であったり、プログラムのチェックサム等であってもよい。
（４）  上述した実施の形態では、カード０１０７は、鍵の要求があった場合に端末がリボークされているか否かを確認するとしたが、これに限られるものではない。鍵情報以外にも、不正な端末に渡すと不利益のある情報であれば、他の情報であってもよい。さらに、端末が行う処理もコンテンツの再生に限るものではない。例えば、端末は、個人情報を取り扱うデータベースの処理を行うとしてもよい。この場合、端末がリボークされているか否かを確認するタイミングは、個人情報の要求が端末からあった場合などになる。
【０１１０】
（５）  上述した実施の形態では、カード０１０７が端末がリボークされているか否かを確認するとしたが、これに限られるものではない。例えば、サーバが、権利情報を提供する際に、端末がリボークされているか否かを確認しても良い。この場合、端末は、権利情報の要求と共にＰＣＲを送信する。また、サーバは、正規ＰＣＲを記憶しており、端末から送られてきたＰＣＲと正規ＰＣＲとが不一致の場合（すなわち、ＮＧの場合）に端末のプログラムをアップデートさせる。なお、詳細な処理については、端末とカードとの間でのアップデートの処理と同様であるので省略する。
【０１１１】
（６）  上述した実施の形態では、プログラムがアップデートされた後、端末は再起動されるとしたが、これに限られるものではない。再起動を必要としない小さなアップデートであれば、そのまま処理を続行してもよい。すなわち、アップデートが完了した後、再起動を行わずに、鍵情報が端末に出力され、コンテンツの復号及び再生処理が行われるとしてもよい。
【０１１２】
（７）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０１１３】
（８）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０１１４】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０１１５】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
（９）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０１１６】
（１０）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０１１７】
また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０１１８】
また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１１）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（まとめ）
（１）本発明は、端末と端末から分離可能なカードによって構成される情報処理装置であって、端末は、端末で動作しているプログラムの特徴を測定し、保存する端末測定手段と、端末で動作するプログラムを格納するプログラム格納手段と、プログラム格納手段に格納されているプログラムを更新するプログラム更新手段から構成され、カードは、端末の更新プログラムを格納する更新プログラム格納手段と、端末測定手段から得た情報を用い端末の正当性を確認する正当性確認手段と、正当性確認手段により端末が正当であると判断された場合のみ、カード内に保持されている秘密情報を端末に提供する秘密情報提供手段と、正当性確認手段により端末が正当でないと判断された場合のみ、更新プログラム格納手段に格納された更新プログラムをプログラム更新手段に出力するプログラム出力手段から構成されることを特徴とする。
【０１１９】
また、本発明のデータ処理装置において、カードはさらに、一度接続された端末の端末ＩＤを格納する端末ＩＤ格納手段と、接続されている端末がネットワークに接続できる場合、端末ＩＤ格納手段に格納されている端末ＩＤに関連付けられている更新プログラムをサーバから取得し、更新プログラム格納手段に格納する更新プログラム取得手段と、更新プログラム取得手段で取得した更新プログラムに関連付けられている端末の正当性確認情報を格納する正当性確認情報格納手段と、接続されている端末がネットワークに接続できる場合、更新プログラム取得手段で取得した更新プログラムに関連付けられている正当性確認情報をサーバから取得し、正当性確認情報格納手段に格納する正当性確認情報取得手段を具備し、正当性確認手段が正当性確認情報格納手段より取得した正当性確認情報を用いて、端末の正当性を確認することを特徴とする。
【０１２０】
アップデートモジュール自体の信頼性に依存しない、プログラムのアップデート方法を提供することが可能となる。
さらに、リボークされた端末を動作不能にすることなく、不正な端末をプログラムのアップデートにより正当な端末にすることができるので、コンテンツの再生を継続できる。リボークして動作不能にすることによるユーザへの被害を防止しつつ、コンテンツ配布システムの健全性を保つことが可能となる。
【０１２１】
また、カード内部の機構によってプログラムをアップデートしているので、インターネットに接続できない端末でもプログラムのアップデートが可能となる。
（２）また、本発明に係る情報記録装置は、プログラムによって動作する情報処理装置とともに用いられ、情報処理装置により利用される情報を記録している情報記録装置であって、情報処理装置から情報へのアクセス要求を受け付ける受付手段と、情報処理装置を動作させる更新プログラムを格納する更新プログラム格納手段と、アクセス要求が受け付けられた場合に、アクセス要求を行った情報処理装置を動作させているプログラムの特徴情報を取得する取得手段と、特徴情報に基づいて、情報処理装置を動作させているプログラムの正当性を確認する正当性確認手段と、プログラムが正当でないと確認された場合に、情報処理装置に対して更新プログラムを出力する出力手段とを備えることを特徴とする。
【０１２２】
この構成によれば、情報記録装置に対して情報を要求している情報処理装置を動作させているプログラムが正当なものでないと確認された場合、そのプログラムが更新プログラムにアップデートされる。したがって、情報を利用しようとする装置に対して、プログラムのアップデートを強制することができる。
（３）本発明に係る情報記録装置は、出力手段は、さらに、プログラムが正当であると確認された場合にのみ、情報を情報処理装置に出力することを特徴とする。
【０１２３】
この構成によれば、情報処理装置は、プログラムが正当であると判定されない限り、要求している情報を得ることができない。このことから、アクセス要求を出している情報を得るためには、情報処理装置はプログラムのアップデートを行わざるを得なくなるので、プログラムのアップデートを強制することができる。
（４）本発明に係る情報記録装置は、さらに、情報処理装置を動作させる正当なプログラムの特徴情報である正規特徴情報を格納する正規特徴情報格納手段を備え、正当性確認手段は、情報処理装置から受信した特徴情報と正規特徴情報とを比較することにより、プログラムが正当であるか否かを確認することを特徴とする。
【０１２４】
この構成によれば、情報記録装置は、情報処理装置のプログラムが正当であるか否かを特徴情報に基づいて確認することができる。
（５）本発明に係る情報記録装置は、受信手段は、さらに、アクセス要求と共に情報処理装置の識別情報を取得し、更新プログラム格納手段は、過去にアクセス要求を行った１以上の情報処理装置の識別情報と、情報処理装置のそれぞれに向けた更新プログラムとを対応付けて格納し、出力手段は、アクセス要求とともに受信した識別情報に対応する情報処理装置向けの更新プログラムを出力することを特徴とする。
【０１２５】
この構成によれば、情報記録装置が複数の情報処理装置で共有される場合でも、各情報処理装置に対して適切な更新プログラムを出力することができる。
（６）本発明に係る情報記録装置は、更新プログラム格納手段は、さらに、新たな情報処理装置からのアクセス要求が受け付けられると、新たな情報処理装置の識別情報を格納内容に追加することを特徴とする。
【０１２６】
この構成によれば、情報記録装置は、過去にアクセス要求を受け付けた情報処理装置の全てについて、更新プログラムの管理を行うことができる。
（７）本発明に係る情報記録装置は、さらに、更新プログラムを提供するサーバに対して、更新プログラム格納手段が格納している情報処理装置の識別情報を送信する送信手段と、サーバから送信した識別情報に対応する情報処理装置用の更新プログラムを取得する取得手段とを備え、更新プログラム格納手段は、取得した更新プログラムを識別情報と対応付けて記録することを特徴とする。
【０１２７】
この構成によれば、情報記録装置は、自身が管理している情報処理装置について、更新プログラムのバージョンアップがあった場合、バージョンアップ後の更新プログラムを取得して記録することができる。
（８）本発明に係る情報記録装置は、可搬型の記録媒体であることを特徴とする。
この構成によれば、可搬型の記録媒体内部の機構によって、情報処理装置内のプログラムをアップデートしているので、インターネットに接続できない情報処理装置に対してもプログラムのアップデートを強制することができる。
【０１２８】
（９）また、本発明に係る情報処理装置は、プログラムによって動作し、プログラムの特徴情報によりプログラムの正当性を確認する情報記録装置と共に用いられる情報処理装置であって、プログラムの特徴情報を算出する特徴情報算出手段と、情報記録装置が記録する情報へのアクセス要求を行う際に、算出した特徴情報を情報記録装置へ送信する送信手段と、情報記録装置による確認に応じて、情報もしくは情報処理装置用の更新プログラムを受信する受信手段と更新プログラムを受信した場合、受信した更新プログラムによりプログラムを更新する更新手段とを備えることを特徴とする。
【０１２９】
この構成によれば、情報処理装置は、情報記録媒体に情報の要求を行う際に、自身を動作させているプログラムが不正なものであれば、アップデートすることができる。
（１０）本発明に係る情報記録装置は、特徴情報算出手段は、耐タンパ化により保護されていることを特徴とする。
この構成によれば、不正解析者による特徴情報の改ざんを防止できるので、情報処理装置を動作させているプログラムが不正なものである場合に、より確実に更新プログラムへのアップデートを行わせることができる。また、特徴情報算出手段さえ保護していれば、上述した不正を防止できるので、装置全体を耐タンパ化する場合に比べて、低コストでプログラムのアップデートを強制することができる。
【０１３０】
（１１）また、本発明を、上述した特徴を持つ情報記録装置および情報処理装置から構成されるシステム、プログラムアップデート方法、プログラム、および集積回路として実現した場合もそれぞれ同様の効果を発揮することができる。
（その他の変形例）
（Ａ−１）第１の変形例
上記実施の形態では、カードによる正当性の確認（図１０のステップＳ１００３）がＯＫである場合に、カードは、コンテンツを復号する鍵を出力したが、これに限定されない。
【０１３１】
正当性の確認がＯＫである場合に、カードは、端末固有のデバイス鍵を更新するために新しいデバイス鍵を出力してもよい。
ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、デバイス鍵とは各端末に固有の鍵であり、ここではコンテンツを暗号化及び復号するための鍵（以下、コンテンツ鍵という。）を暗号化及び復号するために用いる。
【０１３２】
以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム２０００は、図１６にて示すように、端末（証明装置）２００１、カード（検証装置）２００２、ネットワーク接続端末２００３及びサーバ２００４から構成されている。
端末２００１は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末Ｎ０１０５、・・・、端末Ｚ０１０６に相当する。端末２００１は、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。
【０１３３】
カード２００２は、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。ここでは、カード２００２は、端末２００１を識別するための端末ＩＤを予め記憶している。つまり、カード２００２は、過去に一度、端末２００１に装着されたものとする。カード２００２は、上記実施の形態にて示すＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２００３へ出力する。
【０１３４】
ネットワーク接続端末２００３は、端末ＩＤをサーバ２００４へネットワークを介して送信する。ネットワーク接続端末２００３は、サーバ２００４から、コンテンツ鍵復号プログラムに対する更新プログラム、正当性確認情報（上記実施の形態における正規のＰＣＲ値）、及び送信した端末ＩＤにより個別暗号化された正規のデバイス鍵（以下、秘密情報若しくは個別暗号化秘密情報という。）を受け取り、受け取った各情報をカード２００２へ出力する。
【０１３５】
サーバ２００４は、端末ＩＤをネットワーク接続端末２００３から受け取ると、更新プログラム、正当性確認情報、及び受信した端末ＩＤに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号化について説明する。
サーバ２００４は、図１７にて示すように、端末ＩＤと端末共通鍵とから変換された値（以下、暗号用変換値）を算出する（ステップＳ２０００）。端末ＩＤは各端末に固有の識別情報であり、端末共通鍵は端末に共通の鍵である。ここで、暗号用変換値の算出方法は、例えば、端末ＩＤに端末共通鍵を連結させて、その結果に一方向性関数を施すことで得られる。また、別の算出方法として、端末共通鍵を暗号化鍵として端末ＩＤを秘密鍵暗号化方式にて暗号化してもよい。いずれの場合でも、暗号用変換値は、端末ＩＤに依存する値となる。
【０１３６】
サーバ２００４は、算出した暗号用変換値を暗号化鍵として、秘密情報（デバイス鍵）を秘密鍵暗号化方式にて暗号化して個別暗号化秘密情報を生成する（ステップＳ２００５）。
（Ａ−１−１）端末２００１
端末２００１は、図１６にて示すように、ＩＤ格納部２０１０、プログラム格納部２０１１、端末測定部２０１２、プログラム更新部２０１３、及び秘密情報復号部２０１４から構成されている。
【０１３７】
なお、端末２００１の構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているものとし、システムＬＳＩには端末２００１と同種の端末と共通の鍵（上記の端末共通鍵）が記憶されている。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
（Ａ−１−１−１）ＩＤ格納部２０１０、プログラム格納部２０１１
ＩＤ格納部２０１０は、当該端末の端末ＩＤ２０１５を予め記憶している。
【０１３８】
ここで、ＩＤ格納部２０１０は、耐タンパ性を有しており、端末ＩＤ２０１５の改竄はできない。
プログラム格納部２０１１は、上記実施の形態におけるプログラム格納部０７０８に相当する。プログラム格納部２０１１は、上記実施の形態におけるプログラム格納部０７０８が記憶している各プログラムに加えて、個別暗号化された正規のデバイス鍵を復号するためのプログラム（以下、秘密情報復号プログラム）、及びコンテンツ鍵復号プログラムを予め記憶している。
【０１３９】
（Ａ−１−１−２）端末測定部２０１２
端末測定部２０１２は、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
端末測定部２０１２は、コンテンツ鍵復号プログラムのＰＣＲ値を測定（算出）し、測定したＰＣＲ値をカード２００２へ出力する。
【０１４０】
なお、測定のタイミングは、上記実施の形態と同様に、コンテンツ鍵復号プログラムのロード時であり、出力のタイミングは、コンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略する。
（Ａ−１−１−３）プログラム更新部２０１３
プログラム更新部２０１３は、上記実施の形態における図４にて示すステップＳ０４０７及びＳ０４０８に相当する処理を行う。
【０１４１】
プログラム更新部２０１３は、カード２００２からコンテンツ鍵復号プログラムに対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号プログラムを更新する。
プログラム更新部２０１３は、コンテンツ鍵復号プログラムの更新後、ステップＳ０４０８と同様に、システムのリセットを端末２００１のオペレーティングシステムに依頼する。
【０１４２】
（Ａ−１−１−４）秘密情報復号部２０１４
秘密情報復号部２０１４は、プログラム格納部２０１１にて格納されている秘密情報復号プログラムが起動され、実行されることで実現される。
秘密情報復号部２０１４は、カード２００２から当該端末に対応する個別暗号化秘密情報を取得する。
【０１４３】
秘密情報復号部２０１４は、ＩＤ格納部２０１０から端末ＩＤを、システムＬＳＩから端末共通鍵を、それぞれ取得する。
秘密情報復号部２０１４は、取得した端末ＩＤと端末共通鍵とを用いて、サーバ２００４による暗号用変換値の算出方法と同様の方法にて、復号用変換値を算出する。
秘密情報復号部２０１４は、算出した復号用変換値を用いて、個別暗号化秘密情報を復号し、デバイス鍵を生成する。秘密情報復号部２０１４は、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。
【０１４４】
なお、端末２００１は、更新対象のデバイス鍵が含まれる個別暗号化秘密情報をカードから受け取った後に格納しておき、新しいデバイス鍵が必要となった時点で前述した方法を用いて復号化してもよい。
（Ａ−１−２）カード２００２
カード２００２は、図１６にて示すように、秘密情報提供部２０２０、端末ＩＤ格納部２０２１、正当性確認情報格納部２０２２、更新プログラム格納部２０２３、秘密情報取得部２０２４、正当性確認情報取得部２０２５、更新プログラム取得部２０２６、正当性確認部２０２７、及びプログラム出力部２０２８から構成されている。
【０１４５】
（Ａ−１−２−１）秘密情報提供部２０２０
秘密情報提供部２０２０は、図１６にて示すように、秘密情報蓄積部２０２９及びスイッチ２０３０を有している。
秘密情報蓄積部２０２９は、上記実施の形態にて示すコンテンツ格納部０８０７に相当している。秘密情報蓄積部２０２９は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った個別暗号化秘密情報を蓄積している。ここでは、秘密情報蓄積部２０２９は、端末２００１の端末ＩＤを用いて暗号化された秘密情報を蓄積しているものとする。
【０１４６】
スイッチ２０３０は、上記実施の形態にて示す図１０のステップＳ１００５におけるコンテンツの鍵を出力する動作に相当し、正当性確認部２０２７の制御により動作する。端末が正当であると判断される場合には、スイッチ２０３０は、端末が個別暗号化秘密情報を取得できるように、端末と秘密情報蓄積部２０２９とを接続する。端末が正当でないと判断される場合には、スイッチ２０３０は、端末と秘密情報蓄積部２０２９とを接続しない。
【０１４７】
秘密情報提供部２０２０は、端末２００１と秘密情報蓄積部２０２９とが接続されると、端末２００１に対応する個別暗号化秘密情報を出力するとともに、端末２００１のオペレーティングシステムに対して秘密情報復号プログラムの起動を要求する。
ここで、スイッチ２０３０による接続・非接続の動作は、正当性確認部２０２７にて制御される。なお、スイッチ２０３０は、正当性確認部２０２７の確認結果に基づいて、秘密情報提供部２０２０にて制御してもよい。
【０１４８】
（Ａ−１−２−２）端末ＩＤ格納部２０２１
端末ＩＤ格納部２０２１は、上記実施の形態にて示すＣＲＬデータベース０８０５の端末ＩＤの格納部位に相当する。
端末ＩＤ格納部２０２１は、過去に装着された端末が有する端末ＩＤを記憶している。ここでは、端末２００１の端末ＩＤを記憶している。
【０１４９】
また、カード２００２がネットワーク接続端末２００３に装着されている場合には、ネットワーク接続端末２００３は、端末ＩＤ格納部２０２１にて格納されている端末ＩＤを取得する。
（Ａ−１−２−３）正当性確認情報格納部２０２２
正当性確認情報格納部２０２２は、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。
【０１５０】
正当性確認情報格納部２０２２は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った正当性確認情報を、端末ＩＤ格納部２０２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、正当性確認情報格納部２０２２は、コンテンツ鍵復号プログラムに対する正当性確認情報（ＰＣＲ値）を、端末２００１の端末ＩＤ２０１５と対応付けて記憶しているものとする。
【０１５１】
（Ａ−１−２−４）更新プログラム格納部２０２３
更新プログラム格納部２０２３は、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
更新プログラム格納部２０２３は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った更新プログラムを、端末ＩＤ格納部２０２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、更新プログラム格納部２０２３は、コンテンツ鍵復号プログラムに対する更新プログラムを、端末２００１の端末ＩＤ２０１５と対応付けて記憶しているものとする。
【０１５２】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２０２１、正当性確認情報格納部２０２２及び更新プログラム格納部２０２３から構成されていることが分かる。
（Ａ−１−２−５）秘密情報取得部２０２４
秘密情報取得部２０２４は、上記実施の形態にて示す図９における権利購入処理に相当する処理を行う。
【０１５３】
秘密情報取得部２０２４は、ネットワーク接続端末２００３を介してサーバ２００４から個別暗号化秘密情報を受け取ると、受け取った個別暗号化秘密情報を秘密情報蓄積部２０２９へ格納する。
ここで、秘密情報取得部２０２４による個別暗号化秘密情報の受け取り、及び格納のタイミングは、例えば、コンテンツの購入時である。
【０１５４】
（Ａ−１−２−６）正当性確認情報取得部２０２５
正当性確認情報取得部２０２５は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する処理を行う。
正当性確認情報取得部２０２５は、ネットワーク接続端末２００３を介してサーバ２００４から正当性確認情報を受け取ると、受け取った正当性確認情報を正当性確認情報格納部２０２２へ格納する。
【０１５５】
（Ａ−１−２−７）更新プログラム取得部２０２６
更新プログラム取得部２０２６は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの更新プログラムの更新に相当する処理を行う。
更新プログラム取得部２０２６は、ネットワーク接続端末２００３を介してサーバ２００４から更新プログラムを受け取ると、受け取った更新プログラムを更新プログラム格納部２０２３へ格納する。
【０１５６】
（Ａ−１−２−８）正当性確認部２０２７
正当性確認部２０２７は、上記実施の形態にて示す図１０におけるＳ１００３の処理に相当する処理を行う。
正当性確認部２０２７は、端末２００１からコンテンツ鍵復号プログラムのＰＣＲ値を受け取ると、端末２００１と対応付けられたコンテンツ鍵復号プログラムの正当性確認情報を、正当性確認情報格納部２０２２から取得する。
【０１５７】
正当性確認部２０２７は、受け取ったＰＣＲ値と正当性確認情報とが一致するか否かを判断する。
一致すると判断する場合には、正当性確認部２０２７は、上述したように、端末と秘密情報蓄積部２０２９とを接続するようにスイッチ２０３０を閉じる。
一致しないと判断する場合には、正当性確認部２０２７は、一致しない旨を示すＮＧ情報をプログラム出力部２０２８へ出力する。
【０１５８】
なお、本変形例では、正当性確認部２０２７はステップＳ１００３のみに相当するとしたが、これに限定されない。
正当性確認部２０２７はステップＳ１００２及びＳ１００３に相当するとしてもよい。この場合、正当性確認部２０２７は、上記実施の形態と同様に、ＰＣＲ値の署名検証を行い、署名検証がＯＫである場合に、端末２００１から受け取ったＰＣＲ値と、正当性確認情報とを比較する。
【０１５９】
（Ａ−１−２−９）プログラム出力部２０２８
プログラム出力部２０２８は、正当性確認部２０２７からＮＧ情報を受け取ると、端末２００１に対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部２０２３から取得する。
プログラム出力部２０２８は、取得した更新プログラムを端末２００１のプログラム更新部２０１３へ出力する。
【０１６０】
（Ａ−１−３）ネットワーク接続端末２００３
ネットワーク接続端末２００３は、自身に装着されたカード２００２の端末ＩＤ格納部２０２１から端末２００１の端末ＩＤを取得すると、取得した端末ＩＤを、ネットワークを介してサーバ２００４へ出力する。
その後、ネットワーク接続端末２００３は、サーバ２００４からネットワークを介して、出力した端末ＩＤと対応付けられた更新プログラム、正当性確認情報、及び個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２へ格納する。
【０１６１】
（Ａ−１−４）サーバ２００４
サーバ２００４は、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき更新プログラム及び正規のＰＣＲ値（正当性確認情報）を管理している。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。すなわち、更新プログラム及び正当性確認情報は、同一の端末機種同士であれば共通であり、異なる端末の機種同士では異なるものとする。
【０１６２】
また、サーバ２００４は、端末共通鍵を予め記憶し、管理している。
サーバ２００４は、複数の秘密情報（デバイス鍵）を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２００４は、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２００４が管理している複数の秘密情報それぞれは、互いに異なる。さらに、サーバ２００４は、管理している全ての秘密情報を配布した場合、これまでに管理していた複数の秘密情報それぞれとは異なる複数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互いに異なる。
【０１６３】
サーバ２００４は、ネットワーク接続端末２００３からネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（更新プログラム、正当性確認情報、及び端末共通鍵）を取得する。
サーバ２００４は、取得した端末共通鍵と、受け取った端末ＩＤとを用いて、暗号用変換値を生成する。
【０１６４】
サーバ２００４は、予め記憶している複数の秘密情報（デバイス鍵）のうち１つの秘密情報（デバイス鍵）を取得し、暗号用変換値を暗号鍵として、取得した秘密情報を暗号化して個別暗号化秘密情報を生成する。
サーバ２００４は、端末個別データ一式（生成した個別暗号化秘密情報と、取得した更新プログラム及び正当性確認情報）を、ネットワークを介してネットワーク接続端末２００３へ出力する。
【０１６５】
（Ａ−１−５）デバイス鍵配布システム２０００の動作
デバイス鍵配布システム２０００の動作について、図１８にて示す流れ図を用いて説明する。
カード２００２は、端末２００１に装着されると、端末２００１の端末ＩＤを取得し、取得した端末ＩＤを端末ＩＤ格納部２０２１に格納する（ステップＳ２０１０）。
【０１６６】
カード２００２は、ネットワーク接続端末２００３に装着され、且つデバイス鍵をサーバ２００４から取得する時において、端末ＩＤ格納部２０２１に格納された端末２００１の端末ＩＤを、ネットワーク接続端末２００３を介してサーバ２００４へ送信する（ステップＳ２０１５）。
サーバ２００４は、カード２００２からネットワーク接続端末２００３を介して端末２００１の端末ＩＤを受信すると、受信した端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（更新プログラム、正当性確認情報、及び端末共通鍵）を取得する（ステップＳ２０２０）。
【０１６７】
サーバ２００４は、秘密情報（デバイス鍵）に個別暗号化処理を施して個別暗号化秘密情報を生成する（ステップＳ２０２５）。具体的には、サーバ２００４は、取得した端末共通鍵と、受け取った端末ＩＤとを用いて、暗号用変換値を生成する。サーバ２００４は、秘密情報（デバイス鍵）を生成し、暗号用変換値を暗号鍵として、秘密情報を暗号化して個別暗号化秘密情報を生成する。
【０１６８】
サーバ２００４は、端末個別データ一式（生成した個別暗号化秘密情報と、取得した更新プログラム及び正当性確認情報）を、ネットワークを介してネットワーク接続端末２００３へ出力する（ステップＳ２０３０）。
カード２００２は、サーバ２００４からネットワーク接続端末２００３を介して、端末個別データ一式を受信すると、各情報（データ）を格納する（ステップＳ２０３５）、具体的には、カード２００２の秘密情報取得部２０２４は、個別暗号化秘密情報を受信し、受信した個別暗号化秘密情報を秘密情報蓄積部２０２９へ格納する。正当性確認情報取得部２０２５は、正当性確認情報を受信すると、受信した正当性確認情報を正当性確認情報格納部２０２２へ格納する。更新プログラム取得部２０２６は、更新プログラムを受信すると、受信した更新プログラムを更新プログラム格納部２０２３へ格納する。
【０１６９】
カード２００２は、更新プログラムを端末２００１へ出力する（ステップＳ２０４０）。
端末２００１は、更新プログラムをインストールする（ステップＳ２０４５）。
カード２００２の正当性確認部２０２７は、端末２００１から秘密情報（デバイス鍵）出力要求を受け取ると、端末２００１の正当性を判断する（ステップＳ２０５０）。秘密情報出力要求は、上記実施の形態における図４にて示すステップＳ０４０２に相当し、コンテンツ鍵復号プログラムのＰＣＲ値を含む。ここでは、カード２００２の正当性確認部２０２７は、サーバ２００４から受け取った最新の更新プログラムに対する正当性確認情報と、端末２００１から受け取った秘密情報出力要求に含まれるＰＣＲ値との比較を行う。
【０１７０】
正当でないと判断する場合（ステップＳ２０５０における「ＮＧ」）、カード２００２は、更新プログラムを端末２００１へ出力する（ステップＳ２０５５）。具体的には、正当性確認部２０２７は、ＮＧ情報をプログラム出力部２０２８へ出力する。プログラム出力部２０２８は、正当性確認部２０２７からＮＧ情報を受け取ると、端末２００１に対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部２０２３から取得し、取得した更新プログラムを端末２００１のプログラム更新部２０１３へ出力する。なお、ここではコンテンツ鍵復号プログラムのみを更新対象としているが、端末２００１に搭載されるプログラム全体を更新対象としてもよい。以下でも、コンテンツ復号プログラムを更新対象として説明をするが、プログラム全体を更新対象としてもよい。
【０１７１】
正当であると判断する場合（ステップＳ２０５０における「ＯＫ」）、カード２００２は個別暗号化秘密情報を端末２００１へ出力する（ステップＳ２０６０）。具体的には、正当性確認部２０２７の制御により秘密情報蓄積部２０２９によって更新プログラムが正しくインストールされたと確認され、秘密情報を出力可能である旨が通知されると、秘密情報提供部２０２０は端末２００１に対応する個別暗号化秘密情報を出力する。
【０１７２】
端末２００１のプログラム更新部２０１３は、カード２００２から更新プログラムを受け取ると、受け取った更新プログラムのインストールを行う（ステップＳ２０６５）。具体的には、プログラム更新部２０１３は、カード２００２からコンテンツ鍵復号プログラムに対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号プログラムを更新する。プログラム更新部２０１３は、コンテンツ鍵復号プログラムの更新後、ステップＳ０４０８と同様に、システムのリセットを端末２００１のオペレーティングシステムに依頼する。
【０１７３】
端末２００１の秘密情報復号部２０１４は、個別暗号化秘密情報を、カード２００２から受け取ると、個別暗号化秘密情報のインストールを行う（ステップＳ２０７０）。具体的には、秘密情報復号部２０１４は、カード２００２から当該端末に対応する個別暗号化秘密情報を取得する。秘密情報復号部２０１４は、ＩＤ格納部２０１０から端末ＩＤを、システムＬＳＩから端末共通鍵を、それぞれ取得する。秘密情報復号部２０１４は、取得した端末ＩＤと端末共通鍵とを用いて、サーバ２００４による暗号用変換値の算出方法と同様の方法にて、復号用変換値を算出する。秘密情報復号部２０１４は、算出した復号用変換値を用いて、個別暗号化秘密情報を復号してデバイス鍵を生成し、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。
【０１７４】
以降、例えば、端末２００１が図４にて示すステップＳ０４０３以降の動作を行い、カード２００２が図１０にて示す権利確認・鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップＳ２０１０の動作は、カード２００２が端末２００１に装着された場合に実行される。
【０１７５】
ステップＳ２０１５からステップＳ２０３５までの動作は、カード２００２がネットワーク接続端末２００３に装着された場合に実行される。
ステップＳ２０４０からＳ２０４５までの動作は、サービスマンにより端末２００１のプログラムのアップデートを行う場合に実行される。
ステップＳ２０５０以降の動作は、端末２００１の利用者によりコンテンツの再生の要求があった場合に実行される。
【０１７６】
（Ａ−１−６）その他の変形例
なお、本発明を上記第１の変形例に基づいて説明してきたが、本発明は、上記第１の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
（１）上記第１の変形例において、サーバ２００４が管理している複数の秘密情報は、平文（暗号化前の状態）で管理するとしたが、これに限定されない。
【０１７７】
サーバ２００４は、管理する複数の秘密情報それぞれを、予め個別暗号化された状態で管理してもよい。
この場合、サーバ２００４は、複数の秘密情報それぞれを、異なる端末ＩＤを用いて、上記第１の変形例と同様の暗号化方法によって暗号化する。サーバ２００４は、生成した複数の個別暗号化秘密情報を管理する場合には、暗号化に用いた端末ＩＤと対応付けて管理する。サーバ２００４は、ネットワーク接続端末から端末ＩＤを受け取ると、受け取った端末ＩＤに対応する個別暗号化秘密情報を取得する。
【０１７８】
（２）上記第１の変形例において、サーバ２００４は、複数の秘密情報を予め記憶・管理しているとしたが、これに限定されない。
サーバ２００４は、ネットワーク接続端末から端末ＩＤを受け取る度に、秘密情報を生成してもよい。
（３）上記第１の変形例において、デバイス鍵配布システム２０００は、図１８にて示すステップＳ２０４０からＳ２０４５により、サービスマンによる端末２００１のコンテンツ鍵復号プログラムのアップデートを行うとしたが、これに限定されない。
【０１７９】
デバイス鍵配布システム２０００の動作において、ステップＳ２０４０からＳ２０４５を行わなくてもよい。
（４）上記第１の変形例において、秘密情報の暗号化及び復号時には、端末ＩＤと端末共通鍵とから生成された変換値（暗号用変換値、復号用変換値）を用いたが、これに限定されない。
【０１８０】
秘密情報の暗号化及び復号時には、端末ＩＤのみを鍵として用いてもよい。
（５）上記第１の実施の形態において、変換値は、端末ＩＤと端末共通鍵とから生成されたが、これに限定されない。
変換値は、端末ＩＤに一意に紐づいている値であってもよい。
（６）上記実施の形態において、カード２００２は、端末２００１の端末ＩＤ２０１５そのものを格納するとしたが、これに限定されない。
【０１８１】
（６−１）カード２００２は、端末ＩＤ（以下、第１の端末ＩＤ）に一方向性関数（例えば、ＳＨＡ−１）を施して得られる値（以下、第２の端末ＩＤという。）を格納してもよい。
この場合、第１の端末ＩＤ（端末ＩＤ２０１５）から第２の端末ＩＤへの変換は、カード２００２にて行ってもよいし、端末２００１にて行ってもよい。
【０１８２】
また、この場合、サーバ２００４は、図１９にて示す管理テーブルＴ２０００を有している。
管理テーブルＴ２０００は、変換前端末ＩＤと変換後端末ＩＤとからなる組を１個以上記憶するための領域を有している。変換前端末ＩＤは、端末に対する端末ＩＤ、つまり第１の端末ＩＤを示し、変換後端末ＩＤは、端末ＩＤに一方向性関数（例えば、ＳＨＡ−１）を施して得られる第２の端末ＩＤを示す。
【０１８３】
カード２００２は、ネットワーク接続端末２００３を介してサーバ２００４へ第２の端末ＩＤを送信する。
サーバ２００４は、カード２００２からネットワーク接続端末２００３を介して、第２の端末ＩＤを受信すると、受信した第２の端末ＩＤに対応する第１の端末ＩＤを管理テーブルＴ２０００から取得する。サーバ２００４は、取得した第１の端末ＩＤを用いて個別暗号化秘密情報を生成する。
【０１８４】
例えば、サーバ２００４は、第２の端末ＩＤ「ＩＤＡ−１」をカード２００２から受信すると、第２の端末ＩＤ「ＩＤＡ−１」に対応する第１の端末ＩＤ「ＩＤＡ」（つまり、端末ＩＤ２０１５と同一のＩＤ）を取得し、取得した第１の端末ＩＤ「ＩＤＡ」（端末ＩＤ２０１５）を用いて個別暗号化秘密情報を生成する。
（６−２）第２の端末ＩＤを用いて個別暗号化秘密鍵を生成してもよい。
【０１８５】
この場合、カード２００２は、上記と同様に、ネットワーク接続端末２００３を介してサーバ２００４へる第２の端末ＩＤを送信する。
サーバ２００４は、カード２００２からネットワーク接続端末２００３を介して、第２の端末ＩＤを受信すると、受信した第２の端末ＩＤを用いて個別暗号化秘密情報を生成する。
【０１８６】
端末２００１では、第２の端末ＩＤを生成し、生成した第２の端末ＩＤを用いて、個別暗号化秘密鍵を復号する。
（７）上記第１の変形例において、端末２００１は、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２００１は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２００１は、上記第１の変形例にて示すネットワーク接続端末２００３が行う動作をも兼ね備えることで実現できる。
【０１８７】
（８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（Ａ−１−７）まとめ
通常、更新対象のプログラムは、機種ごとに共通である。したがって、上記実施の形態の仕組みをデバイス鍵配布にそのまま適用すると、正当性確認手段による確認のみでは、クローン端末に対してもデバイス鍵を配布してしまい、クローン端末は配布されたデバイス鍵を使用することができる。ここで、クローン端末とは、正規の端末とは、端末ＩＤのみが異なり、他の構成要素等は同一である不正な端末である。
【０１８８】
しかしながら、上記第１の変形例によると、送り込むデータ（ここでは、デバイス鍵）を、端末ＩＤを用いて個別暗号化するので、カードがクローン端末に対して正当であると判断し、デバイス鍵を配布しても、クローン端末では暗号化されたデバイス鍵を復号することはできない。
また、プログラムの更新が確認された後でのみデバイス鍵を送り込むので、送り込んだデバイス鍵が不正またはセキュリティホールのあるプログラムによって利用されることがなく、デバイス鍵を安全に更新することができる。
【０１８９】
（Ｂ−１）第２の変形例
ここでは、正当性確認の変形例について、上記第１の変形例と異なる点を中心に説明する。
以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム２０００ａは、図２０にて示すように、端末（証明装置）２００１ａ、カード（検証装置）２００２ａ、ネットワーク接続端末２００３ａ及びサーバ２００４ａから構成されている。
【０１９０】
端末２００１ａは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末２００１と同様に、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。
カード２００２ａは、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。カード２００２ａは、第１の変形例にて示すカード２００２と同様に、端末２００１ａの端末ＩＤを予め記憶している。カード２００２ａは、ＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２００３ａへ出力する。
【０１９１】
ネットワーク接続端末２００３ａは、端末ＩＤをサーバ２００４ａへネットワークを介して送信する。ネットワーク接続端末２００３ａは、サーバ２００４ａから、復号プログラムに対する更新プログラム、正当性確認情報、及び送信した端末ＩＤにより個別暗号化された個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２ａへ出力する。
【０１９２】
サーバ２００４ａは、端末ＩＤをネットワーク接続端末２００３ａから受け取ると、更新プログラム、正当性確認情報、及び受信した端末ＩＤに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号化は、上記第１の変形例と同様であるので、ここでの説明は省略する。
（Ｂ−１−１）端末２００１ａ
端末２００１ａは、図２０にて示すように、ＩＤ格納部２０１０ａ、プログラム格納部２０１１ａ、端末測定部２０１２ａ、プログラム更新部２０１３ａ、及び秘密情報復号部２０１４ａから構成されている。
【０１９３】
なお、端末２００１ａは、第１の変形例にて示す端末２００１と同様に、端末共通鍵を記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
（Ｂ−１−１−１）ＩＤ格納部２０１０ａ、プログラム格納部２０１１ａ
ＩＤ格納部２０１０ａは、当該端末の端末ＩＤ２０１５ａを予め記憶している。
ここで、ＩＤ格納部２０１０ａは、耐タンパ性を有しており、端末ＩＤ２０１５ａの改竄はできない。
【０１９４】
プログラム格納部２０１１ａは、上記第１の変形例と同様であるので、ここでの説明は省略する。
（Ｂ−１−１−２）端末測定部２０１２ａ
端末測定部２０１２ａは、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
【０１９５】
端末測定部２０１２ａは、先ず、上記実施の形態と同様に、コンテンツ鍵復号プログラムのＰＣＲ値を測定（算出）する。次に、端末測定部２０１２ａは、ＩＤ格納部２０１０ａに格納されている端末ＩＤ２０１５ａと、算出したＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤ２０１５ａを反映したＰＣＲ値（以下、ＩＤ付ＰＣＲ値という。）を生成する。なお、ここではコンテンツ鍵復号プログラムのＰＣＲ値を測定した後に端末ＩＤを反映しているが、端末ＩＤを反映した後にコンテンツ鍵復号プログラムを反映してもよい。
【０１９６】
端末測定部２０１２ａは、生成したＩＤ付ＰＣＲ値をカード２００２ａへ出力する。
なお、ＰＣＲ値拡張コマンドについては、上記実施の形態にて説明しているので、ここでの説明は省略する。
また、測定のタイミング、及び出力のタイミングのそれぞれは、上記第１の変形例と同様である。
【０１９７】
（Ｂ−１−１−３）プログラム更新部２０１３ａ
プログラム更新部２０１３ａは、上記第１の変形例にて示すプログラム更新部２０１３と同様であるので、ここでの説明は省略する。
（Ｂ−１−１−４）秘密情報復号部２０１４ａ
秘密情報復号部２０１４ａは、上記第１の変形例にて示す秘密情報復号部２０１４と同様であるので、ここでの説明は省略する。
【０１９８】
（Ｂ−１−２）カード２００２ａ
カード２００２ａは、図２０にて示すように、秘密情報提供部２０２０ａ、端末ＩＤ格納部２０２１ａ、正当性確認情報格納部２０２２ａ、更新プログラム格納部２０２３ａ、秘密情報取得部２０２４ａ、正当性確認情報取得部２０２５ａ、更新プログラム取得部２０２６ａ、及び正当性確認部２０２７ａから構成されている。
【０１９９】
（Ｂ−１−２−１）秘密情報提供部２０２０ａ
秘密情報提供部２０２０ａは、図２０にて示すように、秘密情報蓄積部２０２９ａ及びスイッチ２０３０ａを有している。
秘密情報蓄積部２０２９ａ及びスイッチ２０３０ａのそれぞれは、上記第１の変形例にて示す秘密情報蓄積部２０２９及びスイッチ２０３０のそれぞれと同様であるので、ここでの説明は省略する。
【０２００】
（Ｂ−１−２−２）端末ＩＤ格納部２０２１ａ
端末ＩＤ格納部２０２１ａは、上記第１の変形例にて示す端末ＩＤ格納部２０２１と同様であるので、ここでの説明は省略する。
（Ｂ−１−２−３）正当性確認情報格納部２０２２ａ
正当性確認情報格納部２０２２ａは、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。
【０２０１】
正当性確認情報格納部２０２２ａは、ネットワーク接続端末２００３ａを介してサーバ２００４ａから受け取った正当性確認情報（正規のＩＤ付ＰＣＲ値）を、端末ＩＤ格納部２０２１ａにて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、正当性確認情報格納部２０２２ａは、コンテンツ鍵復号プログラム及び端末ＩＤ２０１５ａに対する正当性確認情報（正規のＩＤ付ＰＣＲ値）を、端末２００１ａの端末ＩＤ２０１５ａと対応付けて記憶しているものとする。
【０２０２】
（Ｂ−１−２−４）更新プログラム格納部２０２３ａ
更新プログラム格納部２０２３ａは、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
更新プログラム格納部２０２３ａは、上記第１の変形例にて示す更新プログラム格納部２０２３と同様であるので、ここでの説明は省略する。
【０２０３】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２０２１ａ、正当性確認情報格納部２０２２ａ及び更新プログラム格納部２０２３ａから構成されていることが分かる。
（Ｂ−１−２−５）秘密情報取得部２０２４ａ
秘密情報取得部２０２４ａは、上記第１の変形例にて示す秘密情報取得部２０２４と同様であるので、ここでの説明は省略する。
【０２０４】
（Ｂ−１−２−６）正当性確認情報取得部２０２５ａ
正当性確認情報取得部２０２５ａは、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する処理を行う。
正当性確認情報取得部２０２５ａは、ネットワーク接続端末２００３ａを介してサーバ２００４ａから正当性確認情報（正規のＩＤ付ＰＣＲ値）を受け取ると、受け取った正当性確認情報を正当性確認情報格納部２０２２ａへ格納する。
【０２０５】
（Ｂ−１−２−７）更新プログラム取得部２０２６ａ
更新プログラム取得部２０２６ａは、上記第１の変形例にて示す更新プログラム取得部２０２６と同様であるので、ここでの説明は省略する。
（Ｂ−１−２−８）正当性確認部２０２７ａ
正当性確認部２０２７ａは、上記実施の形態にて示す図１０におけるＳ１００３の処理に相当する処理を行う。
【０２０６】
正当性確認部２０２７ａは、端末２００１ａからコンテンツ鍵復号プログラムと端末ＩＤ２０１５ａに対するＩＤ付ＰＣＲ値を受け取ると、端末２００１ａと対応付けられたコンテンツ鍵復号プログラムと端末ＩＤ２０１５ａに対する正当性確認情報（正規のＩＤ付ＰＣＲ値）を、正当性確認情報格納部２０２２ａから取得する。
正当性確認部２０２７ａは、受け取ったＩＤ付ＰＣＲ値と正当性確認情報とが一致するか否かを判断する。
【０２０７】
以下、判断結果に応じた動作は、第１の変形例にて示す正当性確認部２０２７の判断結果に応じた動作と同様であるので、ここでの説明は省略する。
なお、正当性確認部２０２７ａをステップＳ１００２及びＳ１００３に相当するとしてもよいことも第１の変形例と同様である。
（Ｂ−１−２−９）プログラム出力部２０２８ａ
プログラム出力部２０２８ａは、上記第１の変形例にて示すプログラム出力部２０２８と同様であるので、ここでの説明は省略する。
【０２０８】
（Ｂ−１−３）ネットワーク接続端末２００３ａ
ネットワーク接続端末２００３ａは、自身に装着されたカード２００２ａの端末ＩＤ格納部２０２１ａから端末２００１ａの端末ＩＤを取得すると、取得した端末ＩＤを、ネットワークを介してサーバ２００４ａへ出力する。
その後、ネットワーク接続端末２００３ａは、サーバ２００４ａからネットワークを介して、出力した端末ＩＤと対応付けられた更新プログラム、正当性確認情報（ＩＤ付ＰＣＲ値）、及び個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２ａへ格納する。
【０２０９】
（Ｂ−１−４）サーバ２００４ａ
サーバ２００４ａは、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき更新プログラム及び正規のＰＣＲ値（正当性確認情報）を管理している。なお、更新プログラム及び正当性確認情報は、第１の変形例と同様に端末の機種毎に異なるとする。
【０２１０】
また、サーバ２００４ａは、端末共通鍵を予め記憶し、管理している。
サーバ２００４ａは、複数の秘密情報（デバイス鍵）を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２００４ａは、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２００４ａが管理している複数の秘密情報それぞれは、互いに異なる。さらに、サーバ２００４ａは、管理している全ての秘密情報を配布した場合、これまでに管理していた複数の秘密情報それぞれとは異なる複数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互いに異なる。
【０２１１】
サーバ２００４ａは、ネットワーク接続端末２００３ａからネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応するコンテンツ鍵復号プログラムに対する更新プログラム、そのＰＣＲ値、及び端末共通鍵を取得する。
サーバ２００４ａは、ネットワーク接続端末２００３ａから受け取った端末ＩＤと、取得したＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤが反映された正当性確認情報（正規のＩＤ付ＰＣＲ値）を生成する。
【０２１２】
サーバ２００４ａは、上記第１の変形例にて示すサーバ２００４と同様の方法により、個別暗号化秘密情報を生成する。
サーバ２００４ａは、端末個別データ一式（生成した個別暗号化秘密情報と、取得した更新プログラム及び正当性確認情報（正規のＩＤ付ＰＣＲ値））を、ネットワークを介してネットワーク接続端末２００３ａへ出力する。
【０２１３】
（Ｂ−１−５）デバイス鍵配布システム２０００ａの動作
デバイス鍵配布システム２０００ａの動作は、図１８にて示すデバイス鍵配布システム２０００の動作と比べて、正当性確認情報のデータの内容のみが異なり、システムの動作については、同一の流れで実現できるので、ここでの説明は省略する。
（Ｂ−１−６）その他の変形例
なお、本発明を上記第２の変形例に基づいて説明してきたが、本発明は、上記第２の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
【０２１４】
（１）上記第２の変形例において、ＩＤ付ＰＣＲ値は、コンテンツ鍵復号プログラムのＰＣＲ値と、端末ＩＤ２０１５ａとに対して、ＰＣＲ値拡張コマンドを施すことで生成されたが、これに限定されない。
ＩＤ付ＰＣＲ値は、コンテンツ鍵復号プログラムのＰＣＲ値に、端末ＩＤ２０１５ａに一方向性関数を施して得られたハッシュ値を加算することで、生成されてもよい。
【０２１５】
（２）上記第２の変形例において、端末２００１ａは、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２００１ａは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２００１ａは、上記第２の変形例にて示すネットワーク接続端末２００３ａが行う動作をも兼ね備えることで実現できる。
【０２１６】
（３）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（Ｂ−１−７）まとめ
上記第２の変形例では、プログラムのＰＣＲ値と端末ＩＤとを用いて、ＩＤ付ＰＣＲ値を算出し、算出したＰＣＲ値を用いて端末の正当性を確認するので、他の端末ＩＤを詐取した不正な端末は、デバイス鍵を入手することができない。
【０２１７】
これにより、クローン端末の生成を防止することができる。
また、第１の変形例と同様、プログラムの更新が確認された後でのみデバイス鍵を送り込むので、デバイス鍵を安全に更新することができる。
（Ｃ−１）第３の変形例
上記第２の実施の形態では、端末ＩＤを反映したＰＣＲ値をサーバで生成したが、これに限定されない。
【０２１８】
端末ＩＤを反映したＰＣＲ値は、カードで生成してもよい。
以下、この場合のこの場合のシステムの構成及び、各装置の構成について、上記第１及び第２の変形例と異なる点を中心に説明する。
デバイス鍵配布システム２０００ｂは、図２１にて示すように、端末（証明装置）２００１ｂ、カード（検証装置）２００２ｂ、ネットワーク接続端末２００３ｂ及びサーバ２００４ｂから構成されている。
【０２１９】
端末２００１ｂは、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末２００１と同様に、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。
端末２００１ｂは、カード２００２ｂから端末２００１ｂの端末ＩＤに関連づけられた値で暗号化されたデバイス鍵（以下、個別暗号化デバイス鍵）を受け取り、受け取った個別暗号化デバイス鍵を復号することにより、当該端末に対応するデバイス鍵を取得する。
【０２２０】
カード２００２ｂは、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。カード２００２ｂは、第２の変形例にて示すカード２００２ａと同様に、端末２００１ｂの端末ＩＤを予め記憶している。カード２００２ｂは、ＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２００３ｂへ出力する。
ネットワーク接続端末２００３ｂは、端末ＩＤをサーバ２００４ｂへネットワークを介して送信する。ネットワーク接続端末２００３ｂは、サーバ２００４ｂから、復号プログラムに対する更新プログラム、正当性確認情報、及び送信した端末ＩＤにより個別暗号化された個別暗号化秘密情報を受け取り、受け取った各情報をカード２００２ｂへ出力する。
【０２２１】
サーバ２００４ｂは、端末ＩＤをネットワーク接続端末２００３ｂから受け取ると、更新プログラム、正当性確認情報、及び受信した端末ＩＤに基づく秘密情報を送信する。
ここで、正規のデバイス鍵の個別暗号化は、上記第１の変形例と同様であるので、ここでの説明は省略する。つまり、正規のデバイス鍵は、端末ＩＤと端末共通鍵とから変換された変換値を秘密鍵として、暗号化される。
【０２２２】
（Ｃ−１−１）端末２００１ｂ
端末２００１ｂは、図２１にて示すように、ＩＤ格納部２０１０ｂ、プログラム格納部２０１１ｂ、端末測定部２０１２ｂ、プログラム更新部２０１３ｂ、及び秘密情報復号部２０１４ｂから構成されている。
なお、端末２００１ｂは、第１の変形例にて示す端末２００１と同様に、端末共通鍵を記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
【０２２３】
（Ｃ−１−１−１）ＩＤ格納部２０１０ｂ、プログラム格納部２０１１ｂ
ＩＤ格納部２０１０ｂは、当該端末の端末ＩＤ２０１５ｂを予め記憶している。
ここで、ＩＤ格納部２０１０ｂは、耐タンパ性を有しており、端末ＩＤ２０１５ｂの改竄はできない。
プログラム格納部２０１１ｂは、上記第１の変形例と同様であるので、ここでの説明は省略する。
【０２２４】
（Ｃ−１−１−２）端末測定部２０１２ｂ
端末測定部２０１２ｂは、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
端末測定部２０１２ｂは、上記第２の変形例と同様の動作にてＩＤ付ＰＣＲ値を生成する。なお、詳細な動作については、上記第２の変形例にて示しているので、ここでの説明は省略する。
【０２２５】
（Ｃ−１−１−３）プログラム更新部２０１３ｂ
プログラム更新部２０１３ｂは、上記第１の変形例にて示すプログラム更新部２０１３と同様であるので、ここでの説明は省略する。
（Ｃ−１−１−４）秘密情報復号部２０１４ｂ
秘密情報復号部２０１４ｂは、プログラム格納部２０１１ｂにて格納されている秘密情報復号プログラムが起動され、実行されることで実現される。
【０２２６】
秘密情報復号部２０１４ｂは、カード２００２ｂから個別暗号化デバイス鍵を取得する。
秘密情報復号部２０１４ｂは、ＩＤ格納部２０１０ｂから端末ＩＤを、システムＬＳＩから端末共通鍵を、それぞれ取得する。
秘密情報復号部２０１４ｂは、取得した端末ＩＤ及び端末共通鍵を用いて、個別暗号化デバイス鍵を復号し、デバイス鍵を生成する。秘密情報復号部２０１４ｂは、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。
【０２２７】
（Ｃ−１−２）カード２００２ｂ
カード２００２ｂは、図２１にて示すように、秘密情報提供部２０２０ｂ、端末ＩＤ格納部２０２１ｂ、正当性確認情報格納部２０２２ｂ、更新プログラム格納部２０２３ｂ、秘密情報取得部２０２４ｂ、正当性確認情報取得部２０２５ｂ、更新プログラム取得部２０２６ｂ、正当性確認部２０２７ｂ、確認情報個別化部２０４０ｂ、デバイス鍵個別化部２０４１ｂ、カードＩＤ格納部２０４２ｂ、及び端末共通鍵格納部２０４３ｂから構成されている。
【０２２８】
（Ｃ−１−２−１）カードＩＤ格納部２０４２ｂ
カードＩＤ格納部２０４２ｂは、カード２００２ｂに固有のカードＩＤを格納している。
ここで、カードＩＤ格納部２０４２ｂは、耐タンパ性を有しており、カードＩＤの改竄はできない。
【０２２９】
（Ｃ−１−２−２）秘密情報提供部２０２０ｂ
秘密情報提供部２０２０ｂは、図２１にて示すように、秘密情報蓄積部２０２９ｂ及びスイッチ２０３０ｂを有している。
秘密情報蓄積部２０２９ｂは、カードＩＤ格納部２０４２ｂにて格納されているカードＩＤにて暗号化された複数のデバイス鍵（以下、秘密情報、若しくは配布用暗号化デバイス鍵という。）を格納している。
【０２３０】
スイッチ２０３０ｂは、上記第１の変形例にて示すスイッチ２０３０と同様であるので、ここでの説明は省略する。
秘密情報提供部２０２０ｂは、過去に、端末へ出力した秘密情報を、再度出力しないように管理している。
例えば、複数の秘密情報それぞれに、フラグを対応付ける。具体的には、秘密情報提供部２０２０ｂは、未出力の秘密情報には値「０」を、出力済の秘密情報には値「１」を、それぞれ対応付ける。
【０２３１】
また、配布用暗号化デバイス鍵は、カードＩＤを秘密鍵とする秘密鍵暗号化方式によって生成される。
（Ｃ−１−２−３）端末ＩＤ格納部２０２１ｂ、端末共通鍵格納部２０４３ｂ
端末ＩＤ格納部２０２１ｂは、上記第１の変形例にて示す端末ＩＤ格納部２０２１と同様であるので、ここでの説明は省略する。
【０２３２】
端末共通鍵格納部２０４３ｂは、１以上の端末共通鍵それぞれを、当該端末共通鍵が格納される端末の機種と対応付けて格納している。なお、ここでは、端末２００１ｂに対応する端末共通鍵を格納しているものとする。
ここで、端末共通鍵格納部２０４３ｂは、耐タンパ性を有しており、端末共通鍵の改竄はできない。
【０２３３】
（Ｃ−１−２−４）正当性確認情報格納部２０２２ｂ
正当性確認情報格納部２０２２ｂは、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。
正当性確認情報格納部２０２２ｂは、サーバ２００４ｂにて管理されているコンテンツ鍵復号プログラムに対する正当性確認情報（正規のＰＣＲ値）と、端末ＩＤ２０１５ｂとから生成された正規のＩＤ付ＰＣＲ値（以下、個別化確認情報ともいう。）を、端末ＩＤ格納部２０２１ｂにて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、正当性確認情報格納部２０２２ｂは、コンテンツ鍵復号プログラム及び端末ＩＤ２０１５ｂに対する個別化確認情報（正規のＩＤ付ＰＣＲ値）を、端末２００１ｂの端末ＩＤ２０１５ｂと対応付けて記憶しているものとする。
【０２３４】
（Ｃ−１−２−５）更新プログラム格納部２０２３ｂ
更新プログラム格納部２０２３ｂは、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
更新プログラム格納部２０２３ｂは、上記第１の変形例にて示す更新プログラム格納部２０２３と同様であるので、ここでの説明は省略する。
【０２３５】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２０２１ｂ、正当性確認情報格納部２０２２ｂ及び更新プログラム格納部２０２３ｂから構成されていることが分かる。
（Ｃ−１−２−６）秘密情報取得部２０２４ｂ
秘密情報取得部２０２４ｂは、複数の配布用暗号化デバイス鍵（秘密情報）を、サーバ２００４ｂからネットワーク接続端末２００３ｂを介して受け取ると、受け取った複数の配布用暗号化デバイス鍵（秘密情報）を秘密情報蓄積部２０２９ｂへ格納する。
【０２３６】
（Ｃ−１−２−７）正当性確認情報取得部２０２５ｂ
正当性確認情報取得部２０２５ｂは、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する。
正当性確認情報取得部２０２５ｂは、ネットワーク接続端末２００３ｂを介してサーバ２００４ｂから正当性確認情報（正規のＰＣＲ値）を受け取ると、受け取った正当性確認情報を確認情報個別化部２０４０ｂへ出力する。
【０２３７】
（Ｃ−１−２−８）更新プログラム取得部２０２６ｂ
更新プログラム取得部２０２６ｂは、上記第１の変形例にて示す更新プログラム取得部２０２６と同様であるので、ここでの説明は省略する。
（Ｃ−１−２−９）正当性確認部２０２７ｂ
正当性確認部２０２７ｂは、上記実施の形態にて示す図１０におけるＳ１００３に相当する処理を行う。
【０２３８】
正当性確認部２０２７ｂは、端末２００１ｂからコンテンツ鍵復号プログラムと端末ＩＤ２０１５ｂとに対するＩＤ付ＰＣＲ値を受け取ると、端末２００１ｂと対応付けられたコンテンツ鍵復号プログラムと端末ＩＤ２０１５ｂとに対する正当性確認情報（正規のＩＤ付ＰＣＲ値）を、正当性確認情報格納部２０２２ｂから取得する。
正当性確認部２０２７ｂは、受け取ったＩＤ付ＰＣＲ値と正当性確認情報とが一致するか否かを判断する。
【０２３９】
一致すると判断する場合には、正当性確認部２０２７ｂは、端末と秘密情報蓄積部２０２９ｂとを接続するようにスイッチ２０３０ｂを閉じ、一致した旨を示すＯＫ情報をデバイス鍵個別化部２０４１ｂへ出力する。
一致しないと判断する場合には、正当性確認部２０２７ｂは、一致しない旨を示すＮＧ情報をプログラム出力部２０２８ｂへ出力する。
【０２４０】
なお、本変形例では、正当性確認部２０２７ｂはステップＳ１００３のみに相当するとしたが、これに限定されない。
なお、第１の変形例と同様、正当性確認部２０２７ｂをステップＳ１００２及びＳ１００３に相当するとしてもよい。
（Ｃ−１−２−１０）プログラム出力部２０２８ｂ
プログラム出力部２０２８ｂは、上記第１の変形例にて示すプログラム出力部２０２８と同様であるので、ここでの説明は省略する。
【０２４１】
（Ｃ−１−２−１１）確認情報個別化部２０４０ｂ
確認情報個別化部２０４０ｂは、正当性確認情報取得部２０２５ｂから正当性確認情報（正規のＰＣＲ値）を受け取ると、端末ＩＤ格納部２０２１ｂから端末ＩＤ２０１５ｂを取得する。ここで、サーバ２００４ｂから受け取った正規のＰＣＲ値は、まだ端末ＩＤに関連付けられていない。
【０２４２】
確認情報個別化部２０４０ｂは、正当性確認情報と、端末ＩＤ２０１５ｂとからＰＣＲ値拡張コマンドと同等の処理を施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤが反映された個別化確認情報（正規のＩＤ付ＰＣＲ値）を生成する。
確認情報個別化部２０４０ｂは、生成した個別化確認情報を正当性確認情報格納部２０２２ｂへ格納する。
【０２４３】
（Ｃ−１−２−１２）デバイス鍵個別化部２０４１ｂ
デバイス鍵個別化部２０４１ｂは、正当性確認部２０２７ｂからＯＫ情報（正当性が確認された旨を示す）を受け取ると、端末ＩＤ格納部２０２１ｂから端末ＩＤ２０１５ｂを、秘密情報蓄積部２０２９ｂからフラグの値が「０」である１個の配布用暗号化デバイス鍵（秘密情報）を、カードＩＤ格納部２０４２ｂからカードＩＤをそれぞれ取得する。
【０２４４】
デバイス鍵個別化部２０４１ｂは、取得した１個の配布用暗号化デバイス鍵を、カードＩＤを用いて復号してデバイス鍵を生成する。
デバイス鍵個別化部２０４１ｂは、予めカード２００２ｂに格納してある端末共通鍵（端末共通鍵格納部２０４３ｂにて格納）と端末ＩＤ２０１５ｂ（端末ＩＤ格納部２０２１ｂにて格納）を用いて上記実施の形態にて示す図１７における変換方式で生成した値を秘密鍵として秘密暗号方式によりデバイス鍵を暗号化して、個別暗号化デバイス鍵を生成する。
【０２４５】
デバイス鍵個別化部２０４１ｂは、生成した個別暗号化デバイス鍵を端末２００１ｂへ出力するともに、端末２００１ｂのオペレーティングシステムに対して秘密情報復号プログラムの起動を要求する。
（Ｃ−１−３）ネットワーク接続端末２００３ｂ
ネットワーク接続端末２００３ｂは、自身に装着されたカード２００２ｂの端末ＩＤ格納部２０２１ａから端末２００１ａの端末ＩＤを、カードＩＤ格納部２０４２ｂからカードＩＤをそれぞれ取得すると、取得した端末ＩＤ及びカードＩＤを、ネットワークを介してサーバ２００４ｂへ出力する。この時、カードＩＤ格納部２０４２ｂでは、カード２００２ｂとサーバ２００４ｂとの通信路でカードＩＤの秘匿性が損なわれないようカードＩＤを暗号化した上で出力される。具体的には、公知の安全な通信路を構築する方法等により、サーバ２００４ｂと共通の鍵で暗号化した上で出力する。
【０２４６】
その後、ネットワーク接続端末２００３ｂは、サーバ２００４ｂからネットワークを介して、出力した端末ＩＤと対応付けられた更新プログラムと、その正当性確認情報（ＰＣＲ値）と、複数の秘密情報（配布用暗号化デバイス鍵）とを受け取り、受け取った各情報をカード２００２ｂへ格納する。
（Ｃ−１−４）サーバ２００４ｂ
サーバ２００４ｂは、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき更新プログラム及び正規のＰＣＲ値（正当性確認情報）を管理している。なお、更新プログラム及び正当性確認情報は、端末の機種毎に異なるとする。
【０２４７】
サーバ２００４ｂは、複数のデバイス鍵を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２００４ｂは、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２００４ｂが管理している複数のデバイス鍵それぞれは、互いに異なる。さらに、サーバ２００４ｂは、管理している全ての秘密情報を配布した場合、これまでに管理していた複数のデバイス鍵それぞれとは異なる複数のデバイス鍵を生成する。上述したように、再度生成された複数のデバイス鍵それぞれについても、互いに異なる。
【０２４８】
サーバ２００４ｂは、ネットワーク接続端末２００３ｂからネットワークを介して、端末ＩＤ及びカードＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応するコンテンツ鍵復号プログラムに対する更新プログラム、及びそのＰＣＲ値を取得する。
サーバ２００４ｂは、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵を取得する。
【０２４９】
サーバ２００４ｂは、取得した所定数のデバイス鍵それぞれを、カード２００２ｂから安全な通信路を経由してカードＩＤを秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の配布用暗号化デバイス鍵（秘密情報）を生成する。
サーバ２００４ｂは、端末個別データ一式（生成した複数の秘密情報と、取得した更新プログラム及びその正当性確認情報（正規のＰＣＲ値））を、ネットワークを介してネットワーク接続端末２００３ｂへ出力する。
【０２５０】
（Ｃ−１−５）デバイス鍵配布システム２０００ｂの動作
デバイス鍵配布システム２０００ｂの動作について、図２２にて示す流れ図を用いて説明する。
カード２００２ｂは、端末２００１ｂに装着されると、端末２００１ｂの端末ＩＤを取得し、取得した端末ＩＤ２０１５ｂを端末ＩＤ格納部２０２１ｂに格納する（ステップＳ２１００）。
【０２５１】
カード２００２ｂは、ネットワーク接続端末２００３ｂに装着され、且つＣＲＬデータの更新時において、カードＩＤ格納部２０４２ｂからカードＩＤを取得し、取得したカードＩＤと、端末ＩＤ格納部２０２１ｂに格納された端末２００１ｂの端末ＩＤ２０１５ｂとを、ネットワーク接続端末２００３ｂを介してサーバ２００４ｂへ送信する（ステップＳ２１０５）。
【０２５２】
サーバ２００４ｂは、カード２００２ｂからネットワーク接続端末２００３ｂを介して、カード２００２ｂのカードＩＤと、端末２００１ｂの端末ＩＤとを受信すると、受信した端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（更新プログラム、及びその正当性確認情報（ＰＣＲ値））を取得する（ステップＳ２１１０）。
サーバ２００４ｂは、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵を取得し、取得した所定数のデバイス鍵それぞれを、受信したカードＩＤを秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の秘密情報（配布用暗号化デバイス鍵）を生成する（ステップＳ２１１５）。
【０２５３】
サーバ２００４ｂは、端末個別データ一式（生成した複数の秘密情報（配布用暗号化デバイス鍵）と、取得した更新プログラム及びその正当性確認情報）を、ネットワークを介してネットワーク接続端末２００３ｂへ出力する（ステップＳ２１２０）。
カード２００２ｂは、サーバ２００４ｂからネットワーク接続端末２００３ｂを介して、端末個別データ一式を受信すると、各情報（データ）を格納する（ステップＳ２１２５）、具体的には、カード２００２ｂの秘密情報取得部２０２４ｂは、複数の秘密情報（配布用暗号化デバイス鍵）を受信し、受信した複数の秘密情報を秘密情報蓄積部２０２９ｂへ格納する。正当性確認情報取得部２０２５ｂは、正当性確認情報を受信すると、受信した正当性確認情報を正当性確認情報格納部２０２２ｂへ格納する。更新プログラム取得部２０２６ｂは、更新プログラムを受信すると、受信した更新プログラムを更新プログラム格納部２０２３ｂへ格納する。
【０２５４】
カード２００２ｂは、更新プログラムを端末２００１ｂへ出力する（ステップＳ２１３０）。
端末２００１ｂは、更新プログラムをインストールする（ステップＳ２１３５）。
カード２００２ｂの正当性確認部２０２７ｂは、秘密情報（デバイス鍵）出力要求を受け取ると、端末２００１ｂの正当性を判断する（ステップＳ２１４０）。秘密情報出力要求は、上記実施の形態における図４にて示すステップＳ０４０２に相当し、コンテンツ鍵復号プログラムのＩＤ付ＰＣＲ値を含む。ここでは、カード２００２ｂの正当性確認部２０２７ｂは、コンテンツ鍵復号プログラムに対する正当性確認情報と、受け取った秘密情報出力要求に含まれるＩＤ付ＰＣＲ値との比較を行う。
【０２５５】
正当でないと判断する場合（ステップＳ２１４０における「ＮＧ」）、カード２００２ｂは、更新プログラムを端末２００１ｂへ出力する（ステップＳ２１４５）。具体的には、正当性確認部２０２７ｂは、ＮＧ情報をプログラム出力部２０２８ｂへ出力する。プログラム出力部２０２８ｂは、正当性確認部２０２７ｂからＮＧ情報を受け取ると、端末２００１ｂに対するコンテンツ鍵復号プログラムの更新プログラムを更新プログラム格納部２０２３ｂから取得し、取得した更新プログラムを端末２００１ｂのプログラム更新部２０１３ｂへ出力する。
【０２５６】
正当であると判断する場合（ステップＳ２１４０における「ＯＫ」）、カード２００２ｂは、個別暗号化デバイス鍵を生成し、生成した個別暗号化デバイス鍵を端末２００１ｂへ出力する（ステップＳ２１５０）。具体的には、正当性確認部２０２７ｂは、ＯＫ情報をデバイス鍵個別化部２０４１ｂへ出力する。デバイス鍵個別化部２０４１ｂは、正当性確認部２０２７ｂからＯＫ情報を受け取ると、端末ＩＤ格納部２０２１ｂから端末ＩＤ２０１５ｂを、秘密情報蓄積部２０２９ｂからフラグの値が「０」である１個の配布用暗号化デバイス鍵（秘密情報）を、カードＩＤ格納部２０４２ｂからカードＩＤをそれぞれ取得する。デバイス鍵個別化部２０４１ｂは、取得した１個の配布用暗号化デバイス鍵を、カードＩＤを用いて復号してデバイス鍵を生成する。デバイス鍵個別化部２０４１ｂは、予めカード２００２ｂに格納してある端末共通鍵と端末ＩＤ２０１５ｂを用いて上記実施の形態にて示す図１７における変換方式で生成した値を秘密鍵として秘密暗号方式によりデバイス鍵を暗号化して、個別暗号化デバイス鍵を生成する。デバイス鍵個別化部２０４１ｂは、生成した個別暗号化デバイス鍵を端末２００１ｂへ出力する。
【０２５７】
端末２００１ｂのプログラム更新部２０１３ｂは、カード２００２ｂから更新プログラムを受け取ると、受け取った更新プログラムのインストールを行う（ステップＳ２１５５）。具体的には、プログラム更新部２０１３ｂは、カード２００２ｂからコンテンツ鍵復号プログラムに対する更新プログラムを受け取ると、受け取った更新プログラムを用いてコンテンツ鍵復号プログラムを更新する。プログラム更新部２０１３ｂは、復号プログラムの更新後、ステップＳ０４０８と同様に、システムのリセットを端末２００１ｂのオペレーティングシステムに依頼する。
【０２５８】
端末２００１ｂの秘密情報復号部２０１４ｂは、個別暗号化秘密情報を、カード２００２ｂから受け取ると、個別暗号化デバイス鍵のインストールを行う（ステップＳ２１６０）。具体的には、秘密情報復号部２０１４ｂは、カード２００２ｂから当該端末に対応する個別暗号化デバイス鍵を、ＩＤ格納部２０１０ｂから端末ＩＤをそれぞれ取得する。秘密情報復号部２０１４ｂは、取得した端末ＩＤと端末共通鍵を用いて、個別暗号化デバイス鍵を復号し、デバイス鍵を生成する。秘密情報復号部２０１４ｂは、現在記憶しているデバイス鍵から、生成したデバイス鍵へと更新する。
【０２５９】
以降、例えば、端末２００１ｂが図４にて示すステップＳ０４０３以降の動作を行い、カード２００２ｂが図１０にて示す権利確認・鍵生成プログラムを実行する。
以下、各ステップが実行されるタイミングの一例を示す。
ステップＳ２０１０の動作は、カード２００２ｂが端末２００１ｂに装着された場合に実行される。
【０２６０】
ステップＳ２０１５からステップＳ２０３５までの動作は、カード２００２ｂがネットワーク接続端末２００３ｂに装着された場合に実行される。
ステップＳ２０４０からＳ２０４５までの動作は、サービスマンにより端末２００１ｂのプログラムのアップデートを行う場合に実行される。
ステップＳ２０５０以降の動作は、端末２００１ｂの利用者によりコンテンツの再生の要求があった場合に実行される。
【０２６１】
（Ｃ−１−６）その他の変形例
なお、本発明を上記第３の変形例に基づいて説明してきたが、本発明は、上記第３の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
（１）上記第３の実施の形態において、サーバ２００４ｂが、取得するデバイス鍵の個数（所定数）は２個以上としたが、これに限定されない。
【０２６２】
サーバ２００４ｂが、取得するデバイス鍵の個数は１個以上であればよい。
（２）上記第３の実施の形態において、サーバ２００４ｂが、取得するデバイス鍵の個数は予め決められた個数（所定数）としたが、これに限定されない。
サーバ２００４ｂが、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を送信する際に、ユーザが指定してもよい。
【０２６３】
この場合、ネットワーク接続端末２００３ｂは、ユーザから指定された取得個数を、サーバ２００４ｂへ送信する。サーバ２００４ｂは、ネットワーク接続端末２００３ｂから取得個数を受信すると、受信した取得個数分のデバイス鍵を取得する。
（３）上記第３の実施の形態において、秘密情報蓄積部２０２９ｂは、複数の配布用暗号化デバイス鍵を格納するとしたが、これに限定されない。
【０２６４】
秘密情報蓄積部２０２９ｂは、復号された複数のデバイス鍵を格納してもよい。
この場合におけるカード２００２ｂの動作について、以下に説明する。
秘密情報取得部２０２４ｂは、サーバ２００４ｂから複数の配布用暗号化デバイス鍵を受け取ると、カードＩＤ格納部２０４２ｂからカードＩＤを取得する。
秘密情報取得部２０２４ｂは、取得したカードＩＤを用いて、配布用暗号化デバイス鍵それぞれを復号して、デバイス鍵を生成する。秘密情報取得部２０２４ｂは、この復号の動作を受信した配布用暗号化デバイス鍵の個数分行い、受信した配布用暗号化デバイス鍵の個数と同数のデバイス鍵を生成する。
【０２６５】
秘密情報取得部２０２４ｂは、生成した複数のデバイス鍵を秘密情報蓄積部２０２９ｂへ格納する。
（４）上記第３の変形例において、端末２００１ｂは、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２００１ｂは、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２００１ｂは、上記第３の変形例にて示すネットワーク接続端末２００３ｂが行う動作をも兼ね備えることで実現できる。
【０２６６】
（５）上記第３の変形例において、デバイス鍵配布システム２０００ｂは、図２２にて示すステップＳ２１３０からＳ２１３５により、サービスマンによる端末２００１ｂのコンテンツ鍵復号プログラムのアップデートを行うとしたが、これに限定されない。
デバイス鍵配布システム２０００ｂの動作において、ステップＳ２１３０からＳ２１３５を行わなくてもよい。
【０２６７】
（６）上記第３の変形例において、秘密情報提供部２０２０ｂは、過去に、端末へ出力した秘密情報を、再度出力しないように、秘密情報蓄積部２０２９ｂにて格納されている複数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部２０２０ｂは、出力した１以上の秘密情報からなるリストを生成し、生成したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管理してもよい。
【０２６８】
または、秘密情報提供部２０２０ｂは、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい。
（７）上記第３の変形例において、デバイス鍵個別化部２０４１ｂは、個別暗号化デバイス鍵を生成する際に、端末ＩＤを用いたがこれに限定されない。
【０２６９】
デバイス鍵個別化部２０４１ｂは、正当性確認部２０２７ｂで用いた個別化確認情報（つまり、ＩＤ付ＰＣＲ値）を秘密鍵として用いて、デバイス鍵を暗号化して、個別暗号化デバイス鍵を生成してもよい。
（８）上記第３の実施の形態において、サーバ２００４ｂは、カードＩＤを用いて配布用暗号化デバイス鍵を生成したが、これに限定されない。
【０２７０】
サーバ２００４ｂは、第１、及び第２の変形例と同様に、端末ＩＤと端末共通鍵とから生成された変換値（暗号用変換値）を用いて配布用暗号化デバイス鍵を生成してもよいし、端末ＩＤのみを用いて配布用暗号化デバイス鍵を生成してもよい。
このとき、カード２００２ｂのデバイス鍵個別化部２０４１ｂは、暗号用変換値若しくは端末ＩＤで暗号化された配布用暗号化デバイス鍵を復号した後、端末ＩＤで暗号化して個別暗号化デバイス鍵を生成してもよいし、配布用暗号化デバイス鍵そのものを端末ＩＤで暗号化、つまり２重の暗号化をして個別暗号化デバイス鍵を生成してもよい。
【０２７１】
２重の暗号化した場合、端末２００１ｂは、先ず、個別暗号化デバイス鍵を端末ＩＤで復号して、配布用暗号化デバイス鍵を生成する。次に、端末２００１ｂは、端末ＩＤと端末共通鍵とから復号用変換値を生成し、生成した復号用変換値を用いて、生成した配布用暗号化デバイス鍵を復号してデバイス鍵を生成する。
また、カード２００２ｂとサーバ２００４ｂで予め共有している秘密鍵で配布用暗号化デバイス鍵を生成してもよい。
【０２７２】
（９）上記第３の実施の形態において、カード２００２ｂが予め端末共通鍵を格納している構成としたが、これに限定されない。
カード２００２ｂは、端末共通鍵を、サーバ２００４ｂから受け取ってもよい。
この場合、サーバ２００４ｂは、カード２００２ｂから端末ＩＤ及びカードＩＤを受け取ると、受け取った端末ＩＤにより特定される機種に対応する端末共通鍵を取得し、取得した端末共通鍵を、受け取ったカードＩＤにて暗号化して、暗号化した端末共通鍵をカード２００２ｂへ送信する。
【０２７３】
カード２００２ｂは、暗号化された端末共通鍵を受け取ると、受け取った暗号化された端末共通鍵を端末共通鍵格納部２０４３ｂへ格納する。
カード２００２ｂは、個別暗号化デバイス鍵の生成時に、暗号化された端末共通鍵を復号する。
（１０）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０２７４】
（Ｃ−１−７）まとめ
上記第３の変形例では、上記第２の変形例により生じる効果に加え、複数のデバイス鍵をカードＩＤにて暗号化するので、カード毎に格納すべき複数のデバイス鍵を個別化することができる。これにより、１枚のカードを用いて複数の端末それぞれに、異なるデバイス鍵を配布することができる。
【０２７５】
また、１枚のカードは、複数のデバイス鍵（ここでは、配布用暗号化デバイス鍵）を格納するので、サーバへのアクセス回数を減らすことができる。
（Ｄ−１）第４の変形例
上記第３の変形例では、カードにてデバイス鍵の個別化を行ったが、これに限定されない。デバイス鍵の個別化は、デバイス鍵の配送対象である端末で行ってもよい。
【０２７６】
ここで、本変形例では、情報の暗号化方法として、秘密暗号方式を用いる。また、デバイス鍵とは、コンテンツを暗号化及び復号するための鍵（以下、コンテンツ鍵という。）を暗号化及び復号するための鍵である。
以下、この場合のシステムの構成及び、各装置の構成について説明する。
デバイス鍵配布システム２１００は、図２３にて示すように、端末（証明装置）２１０１、カード（検証装置）２１０２、ネットワーク接続端末２１０３及びサーバ２１０４から構成されている。
【０２７７】
端末２１０１は、ネットワークとは非接続の端末であり、上記実施の形態にて示す端末Ｎ０１０５、・・・、端末Ｚ０１０６に相当する。端末２１０１は、デバイス鍵と、暗号化されたコンテンツ鍵を復号するためのプログラム（以下、コンテンツ鍵復号プログラム）とを有している。また、端末２１０１は、デバイス鍵の取得（更新）時に、カード２１０２からデバイス鍵を暗号化するための個別暗号化プログラムを受け取る。個別暗号化プログラムについては後述する。
【０２７８】
カード２１０２は、端末に装着されると、当該端末を識別するための端末ＩＤを取得し、記憶する。ここでは、カード２１０２は、端末２１０１を識別するための端末ＩＤを予め記憶している。つまり、カード２１０２は、過去に一度、端末２１０１に装着されたものとする。カード２１０２は、上記実施の形態にて示すＣＲＬ更新時にて、予め記憶している端末ＩＤをネットワーク接続端末２１０３へ出力する。
【０２７９】
ネットワーク接続端末２１０３は、端末ＩＤをサーバ２１０４へネットワークを介して送信する。ネットワーク接続端末２１０３は、サーバ２１０４から、個別暗号化プログラムに対する更新プログラム（以下、第１の更新プログラムという。）、コンテンツ鍵復号プログラムに対する更新プログラム（以下、第２の更新プログラムという。）、個別暗号化プログラムに対する第１の正当性確認情報、コンテンツ鍵復号プログラムに対する第２の正当性確認情報、及び複数の秘密情報を受け取り、受け取った各情報をカード２１０２へ出力する。
【０２８０】
ここで、秘密情報とは、配布用暗号化デバイス鍵と暗号化個別配送鍵との組からなる。配布用暗号化デバイス鍵は、デバイス鍵を、デバイス鍵毎に個別に割り当てられた個別配送鍵にて暗号化したものである。暗号化個別配送鍵は、個別配送鍵を、端末共通鍵にて暗号化したものである。ここでの、暗号化方式は、上述したように秘密鍵暗号化方式である。
【０２８１】
サーバ２１０４は、端末ＩＤをネットワーク接続端末２１０３から受け取ると、端末ＩＤに対応する更新プログラム、及び正当性確認情報と、複数の秘密情報とを送信する。
ここで、正規のデバイス鍵、及び個別配送鍵の暗号化について説明する。
サーバ２１０４は、図２４にて示すように、デバイス鍵を、対応する個別配送鍵にて暗号化して、配布用暗号化デバイス鍵を生成する（ステップＳ２２００）。
【０２８２】
サーバ２１０４は、個別配送鍵を、端末共通鍵にて暗号化して、暗号化個別配送鍵を生成する（ステップＳ２２０５）。
サーバ２１０４は、生成した配布用暗号化デバイス鍵と暗号化個別配送鍵との組からなる秘密情報をカード２１０２へ送信する。
（Ｄ−１−１）端末２１０１
端末２１０１は、図２３にて示すように、ＩＤ格納部２１１０、第１のプログラム格納部２１１１、第２のプログラム格納部２１１２、端末測定部２１１３、第１のプログラム更新部２１１４、第２のプログラム更新部２１１５、デバイス鍵個別化部２１１６、個別化デバイス鍵蓄積部２１１７、デバイス鍵復号部２１１８から構成されている。
【０２８３】
なお、端末２１０１の構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているものとし、システムＬＳＩには、端末２１０１と同種の端末と共通の鍵（以下、端末共通鍵）を記憶している。ここで、端末共通鍵は、耐タンパ性により秘匿性を有している。
（Ｄ−１−１−１）ＩＤ格納部２１１０、第１のプログラム格納部２０１１、第２のプログラム格納部２１１２
ＩＤ格納部２１１０は、当該端末の端末ＩＤ２２００を予め記憶している。
【０２８４】
ここで、ＩＤ格納部２１１０は、耐タンパ性を有しており、端末ＩＤ２２００の改竄はできない。
第１のプログラム格納部２１１１及び第２のプログラム格納部２１１２は、上記実施の形態におけるプログラム格納部０７０８に相当する。
第１のプログラム格納部２１１１は、個別暗号化プログラムを記憶するための領域を有している。
【０２８５】
第１のプログラム格納部２１１１は、デバイス鍵の受信時に、個別暗号化プログラムが格納され、その後、第２のプログラム更新部２１１５の動作開始時には、個別暗号化プログラムは消去される。
第２のプログラム格納部２１１２は、上記実施の形態におけるプログラム格納部０７０８が記憶している各プログラムに加えて、個別暗号化された正規のデバイス鍵を復号するためのプログラム（以下、デバイス鍵復号プログラム）、及びコンテンツ鍵復号プログラムを予め記憶している。
【０２８６】
（Ｄ−１−１−２）端末測定部２１１３
端末測定部２１１３は、上記実施の形態におけるセキュアモジュール０７０７、およびブートコード０７０３、オペレーティングシステム０７０９、再生制御プログラム０７１１のセキュアモジュール０７０７制御部分に相当する。
端末測定部２１１３は、個別暗号化プログラムのＰＣＲ値（以下、第１のＰＣＲ値）を測定（算出）する。端末測定部２１１３は、ＩＤ格納部２１１０に格納されている端末ＩＤ２２００を取得する。端末測定部２１１３は、取得した端末ＩＤ２２００と、算出した第１のＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、個別暗号化プログラムのＰＣＲ値に端末ＩＤ２２００が反映されたＰＲＣ値（以下、第１のＩＤ付ＰＣＲ値という。）を生成する。端末測定部２１１３は、生成した第１のＩＤ付ＰＣＲ値をカード２１０２へ出力する。
【０２８７】
端末測定部２１１３は、コンテンツ鍵復号プログラムのＰＣＲ値（以下、第２のＰＣＲ値）を測定（算出）する。端末測定部２１１３は、ＩＤ格納部２１１０に格納されている端末ＩＤ２２００を取得する。端末測定部２１１３は、取得した端末ＩＤ２２００と、算出した第２のＰＣＲ値とに対して、ＰＣＲ値拡張コマンドを施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤ２２００が反映されたＰＲＣ値（以下、第２のＩＤ付ＰＣＲ値という。）を生成する。端末測定部２１１３は、生成した第１のＩＤ付ＰＣＲ値をカード２１０２へ出力する。
【０２８８】
なお、各測定のタイミングは、上記実施の形態と同様に、個別暗号化プログラムのロード時、コンテンツ鍵復号プログラムのロード時であり、各出力のタイミングは、共にコンテンツの再生時である。
測定方法については、上記実施の形態と同様であるので、ここでの説明は省略する。
（Ｄ−１−１−３）第１のプログラム更新部２１１４、第２のプログラム更新部２１１５
第１のプログラム更新部２１１４は、カード２１０２から個別暗号化プログラム（以下、第１の更新プログラムともいう。）を受け取ると、受け取った第１の更新プログラムを第１のプログラム格納部２１１１へ格納する。
【０２８９】
第１のプログラム更新部２１１４は、個別暗号化プログラムの格納後、ステップＳ０４０８と同様に、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。
第２のプログラム更新部２１１５は、カード２１０２からコンテンツ鍵復号プログラムに対する更新プログラム（以下、第２の更新プログラム）を受け取ると、第１のプログラム格納部２１１１に格納されている個別暗号化プログラムを消去する。
【０２９０】
第２のプログラム更新部２１１５は、受け取った第２の更新プログラムを用いてコンテンツ鍵復号プログラムを更新し、その後、ステップＳ０４０８と同様に、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。
（Ｄ−１−１−４）デバイス鍵個別化部２１１６
デバイス鍵個別化部２１１６は、第１のプログラム格納部２０１１にて格納されている個別暗号化プログラムが起動され、実行されることで実現される。
【０２９１】
デバイス鍵個別化部２１１６は、カード２１０２から１個の配布用暗号化デバイス鍵を受け取ると、ＩＤ格納部２１１０から端末ＩＤ２２００を取得する。
デバイス鍵個別化部２１１６は、取得した端末ＩＤを用いて、受け取った配布用暗号化デバイス鍵を暗号化して、個別暗号化デバイス鍵を生成する。
デバイス鍵個別化部２１１６は、生成した個別暗号化デバイス鍵を、個別化デバイス鍵蓄積部２１１７に格納する。
【０２９２】
（Ｄ−１−１−５）個別化デバイス鍵蓄積部２１１７
個別化デバイス鍵蓄積部２１１７は、デバイス鍵個別化部２１１６にて生成された個別暗号化デバイス鍵を格納する領域を有している。
（Ｄ−１−１−６）デバイス鍵復号部２１１８
デバイス鍵復号部２１１８は、第２のプログラム格納部２０１１にて格納されているデバイス鍵復号プログラムが起動され、実行されることで実現される。
【０２９３】
デバイス鍵復号部２１１８は、カード２１０２から、個別化デバイス鍵蓄積部２１１７に格納されている個別暗号化デバイス鍵に対応する暗号化個別配送鍵を受け取る。
デバイス鍵個別化部２１１６は、受け取った暗号化個別配送鍵を、所定の格納領域（例えば、個別化デバイス鍵蓄積部２１１７）に格納する。
デバイス鍵復号部２１１８は、受け取った暗号化個別配送鍵に対応する個別暗号化デバイス鍵を、個別化デバイス鍵蓄積部２１１７から取得する。
【０２９４】
デバイス鍵復号部２１１８は、ＩＤ格納部２１１０から端末ＩＤ２２００を取得し、取得した端末ＩＤ２２００を用いて、個別化デバイス鍵蓄積部２１１７から取得した個別暗号化デバイス鍵を復号して、配布用暗号化デバイス鍵を生成する。
デバイス鍵復号部２１１８は、当該端末の端末共通鍵を取得し、取得した端末共通鍵を用いて、受け取った暗号化個別配送鍵を復号して、個別配送鍵を生成する。
【０２９５】
デバイス鍵個別化部２１１６は、生成した個別配送鍵を用いて、配布用暗号化デバイス鍵を復号して、デバイス鍵を生成する。
（Ｄ−１−２）カード２１０２
カード２１０２は、図２３にて示すように、秘密情報提供部２１２０、端末ＩＤ格納部２１２１、正当性確認情報格納部２１２２、第１の更新プログラム格納部２１２３、第２の更新プログラム格納部２１２４、秘密情報取得部２１２５、正当性確認情報取得部２１２６、第１の更新プログラム取得部２１２７、第２の更新プログラム取得部２１２８、正当性確認部２１２９、第１のプログラム出力部２１３０、第２のプログラム出力部２１３１、及び確認情報個別化部２１４０から構成されている。
【０２９６】
（Ｄ−１−２−１）秘密情報提供部２１２０
秘密情報提供部２１２０は、図２３にて示すように、秘密情報蓄積部２１３２及びスイッチ２１３３を有している。
秘密情報蓄積部２１３２は、上記実施の形態にて示すコンテンツ格納部０８０７に相当している。秘密情報蓄積部２１３２は、ネットワーク接続端末２１０３を介してサーバ２１０４から受け取った複数の秘密情報を蓄積している。具体的には、秘密情報蓄積部２１３２は、図２５にて示すように秘密情報管理テーブルＴ２１００を有している。
【０２９７】
秘密情報管理テーブルＴ２１００は、配布用暗号化デバイス鍵と暗号化個別配送鍵とからなる組を１個以上記憶するための領域を有している。
配布用暗号化デバイス鍵及び暗号化個別配送鍵については、上述しているので、ここでの説明は省略する。
ここで、Ｅ（ｘ、ｙ）は、データｙを暗号化鍵ｘで暗号した結果を示す。ＤＫ１、ＤＫ２，ＤＫ３、・・・は、デバイス鍵を、Ｄｅｌｉ−Ｋｅｙ１、Ｄｅｌｉ−Ｋｅｙ２、Ｄｅｌｉ−Ｋｅｙ３、・・・は、ＤＫ１、ＤＫ２，ＤＫ３、・・・に対応する個別配送鍵を、ＭＫは、端末共通鍵を、それぞれ示す。
【０２９８】
スイッチ２１３３は、上記実施の形態にて示す図１０のステップＳ１００５におけるコンテンツの鍵を出力する動作に相当し、正当性確認部２１２９の制御により動作する。端末が正当であると判断される場合には、スイッチ２１３３は、端末が１つの配布用暗号化デバイス鍵と、それに対応する暗号化個別配送鍵とを取得できるように、端末と秘密情報蓄積部２１３２とを接続する。端末が正当でないと判断される場合には、スイッチ２１３３は、端末と秘密情報蓄積部２１３２とを接続しない。具体的に、接続するとは端末２１０１が秘密情報蓄積部２１３２から情報を取得できる状態にすることである。
【０２９９】
秘密情報提供部２１２０は、正当性確認部２１２９から第１のＰＣＲ値を用いた正当性確認により端末２１０１が正当であることを示す第１のＯＫ情報を受け取ると、端末２１０１と秘密情報蓄積部２１３２とが接続するようスイッチを制御し、端末２１０１のオペレーティングシステムに対して個別暗号化プログラムの起動を要求する。
秘密情報提供部２１２０は、正当性確認部２１２９から第２のＰＣＲ値を用いた正当性確認により端末２１０１が正当であることを示す第２のＯＫ情報を受け取ると、端末２１０１と秘密情報蓄積部２１３２とが接続するようスイッチを制御し、端末２１０１のオペレーティングシステムに対してデバイス鍵復号プログラムの起動を要求する。
【０３００】
秘密情報提供部２１２０は、正当性確認部２１２９から端末２１０１が正当でないことを示すＮＧ情報を受け取ると、端末２１０１と秘密情報蓄積部２１３２とが接続しないようにスイッチを制御する。
秘密情報提供部２１２０は、過去に、端末へ出力した配布用暗号化デバイス鍵を、再度出力しないように管理している。例えば、複数の秘密情報それぞれに、フラグを対応付ける。具体的には、秘密情報提供部２１２０は、未出力の配布用暗号化デバイス鍵には値「０」を、出力済の配布用暗号化デバイス鍵には値「１」を、それぞれ対応付ける。
【０３０１】
秘密情報提供部２１２０は、配布用暗号化デバイス鍵を、当該配布用暗号化デバイス鍵の出力先である端末の端末ＩＤとを対応付けて管理している。
これにより、上記にて示すデバイス鍵復号部２１１８は、出力済であり、且つ当該端末２１０１と対応付けられた配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を取得することにより、デバイス鍵を生成することができる。
【０３０２】
（Ｄ−１−２−２）端末ＩＤ格納部２１２１
端末ＩＤ格納部２１２１は、上記第１の変形例にて示す端末ＩＤ格納部２０２１と同様であるので、ここでの説明は省略する。
（Ｄ−１−２−３）正当性確認情報格納部２１２２
正当性確認情報格納部２１２２は、上記実施の形態におけるＣＲＬデータベース０８０５の正当なＰＣＲ値の格納部位に相当する。
【０３０３】
正当性確認情報格納部２１２２は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った第１の正当性確認情報と、端末ＩＤ２２００とから生成された第１のＩＤ付ＰＣＲ値（以下、第１の個別化確認情報ともいう。）を、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。
正当性確認情報格納部２１２２は、ネットワーク接続端末２００３を介してサーバ２００４から受け取った第２の正当性確認情報と、端末ＩＤ２２００とから生成された第２のＩＤ付ＰＣＲ値（以下、第２の個別化確認情報ともいう。）を、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。
【０３０４】
ここでは、正当性確認情報格納部２１２２は、第１及び第２の個別化確認情報それぞれを、端末２１０１の端末ＩＤ２２００と対応付けて記憶しているものとする。
（Ｄ−１−２−４）第１の更新プログラム格納部２１２３、第２の更新プログラム格納部２１２４
第１の更新プログラム格納部２１２３及び第２の更新プログラム格納部２１２４は、上記実施の形態におけるＣＲＬデータベース０８０５の更新プログラムの格納部位に相当する。
【０３０５】
第１の更新プログラム格納部２１２３は、ネットワーク接続端末２１０３を介してサーバ２１０４から受け取った第１の更新プログラム（個別暗号化プログラム）を、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、第１の更新プログラム格納部２１２３は、第１の更新プログラムを、端末２１０１の端末ＩＤ２２００と対応付けて記憶しているものとする。
【０３０６】
第２の更新プログラム格納部２１２４は、ネットワーク接続端末２１０３を介してサーバ２１０４から受け取った第２の更新プログラムを、端末ＩＤ格納部２１２１にて記憶されている端末ＩＤと対応付けて蓄積している。ここでは、第２の更新プログラム格納部２１２４は、第２の更新プログラムを、端末２１０１の端末ＩＤ２２００と対応付けて記憶しているものとする。
【０３０７】
なお、上記にて示すＣＲＬデータベース０８０５は、本変形例にて示す端末ＩＤ格納部２１２１、正当性確認情報格納部２１２２、第１の更新プログラム格納部２１２３及び第２の更新プログラム格納部２１２４から構成されていることが分かる。
（Ｄ−１−２−５）秘密情報取得部２１２５
秘密情報取得部２１２５は、上記実施の形態にて示す図９における権利購入処理に相当する。
【０３０８】
秘密情報取得部２１２５は、ネットワーク接続端末２１０３を介してサーバ２１０４から複数の秘密情報を受け取ると、受け取った複数の秘密情報を秘密情報蓄積部２１３２の秘密情報管理テーブルＴ２１００へ格納する。
ここで、秘密情報取得部２１２５による個別暗号化秘密情報の受け取り、及び格納のタイミングは、例えば、コンテンツの購入時である。
【０３０９】
（Ｄ−１−２−６）正当性確認情報取得部２１２６
正当性確認情報取得部２１２６は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの正規のＰＣＲ値の更新に相当する。
正当性確認情報取得部２１２６は、ネットワーク接続端末２００３を介してサーバ２００４から、個別暗号化プログラムに対する第１の正当性確認情報、及びコンテンツ鍵復号プログラムに対する第２の正当性確認情報を受け取ると、受け取った第１及び第２の正当性確認情報を確認情報個別化部２１４０へ出力する。
【０３１０】
（Ｄ−１−２−７）第１の更新プログラム取得部２１２７、第２の更新プログラム取得部２１２８
第１の更新プログラム取得部２１２７、及び第２の更新プログラム取得部２１２８は、上記実施の形態にて示す図９におけるＣＲＬ更新処理、特にＣＲＬデータベースの更新プログラムの更新に相当する。
【０３１１】
第１の更新プログラム取得部２１２７は、ネットワーク接続端末２１０３を介してサーバ２１０４から第１の更新プログラム（個別暗号化プログラム）を受け取ると、受け取った第１の更新プログラムを第１の更新プログラム格納部２１２３へ格納する。
第２の更新プログラム取得部２１２８は、ネットワーク接続端末２１０３を介してサーバ２１０４から第２の更新プログラムを受け取ると、受け取った第２の更新プログラムを第２の更新プログラム格納部２１２４へ格納する。
【０３１２】
（Ｄ−１−２−８）正当性確認部２１２９
正当性確認部２１２９は、上記実施の形態にて示す図１０におけるＳ１００３に相当する。
正当性確認部２１２９は、端末２１０１から第１のＩＤ付ＰＣＲ値を受け取ると、端末２１０１と対応付けられた第１の個別化確認情報を、正当性確認情報格納部２１２２から取得する。正当性確認部２１２９は、受け取った第１のＩＤ付ＰＣＲ値と第１の個別化確認情報とが一致するか否かを判断する。一致すると判断する場合には、正当性確認部２１２９は、第１のＯＫ情報を秘密情報提供部２１２０へ出力する。一致しないと判断する場合には、正当性確認部２１２９は、ＮＧ情報を秘密情報提供部２１２０及び第１のプログラム出力部２１３０へ出力する。
【０３１３】
正当性確認部２１２９は、端末２１０１から第２のＩＤ付ＰＣＲ値を受け取ると、端末２１０１の第１のプログラム格納部２１１１に第１の更新プログラム（個別暗号化プログラム）が消去されているか否かを判断する。なお、消去されているか否かの判断に第２の個別化確認情報を用いてもよい。端末２１０１から受け取った第２のＩＤ付ＰＣＲ値と第２の個別化確認情報との比較を行い、一致していれば消去されていると判断してもよい。ここで、個別暗号化プログラムが消去されているか否かを判断できるのは、第２の個別化確認情報を生成するために用いた対象となるプログラムに個別暗号化プログラムが含まれないからである。
【０３１４】
消去されていないと判断する場合には、正当性確認部２１２９は、端末２１０１のオペレーティングシステムに第１の更新プログラム（個別暗号化プログラム）を消去するように依頼し、その後、再度、端末２１０１の第１のプログラム格納部２１１１に第１の更新プログラム（個別暗号化プログラム）が消去されているか否かを判断する。
消去されていると判断する場合には、正当性確認部２１２９は、端末２１０１と対応付けられた第２の個別化確認情報を、正当性確認情報格納部２１２２から取得する。正当性確認部２１２９は、受け取った第２のＩＤ付ＰＣＲ値と第２の個別化確認情報とが一致するか否かを判断する。一致すると判断する場合には、正当性確認部２１２９は、第２のＯＫ情報を秘密情報提供部２１２０へ出力する。一致しないと判断する場合には、正当性確認部２１２９は、ＮＧ情報を秘密情報提供部２１２０及び第２のプログラム出力部２１３１へ出力する。
【０３１５】
なお、第１の変形例と同様、正当性確認部２１２９をステップＳ１００２及びＳ１００３に相当するとしてもよい。
（Ｄ−１−２−９）第１のプログラム出力部２１３０、第２のプログラム出力部２１３１
第１のプログラム出力部２１３０は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する第１の更新プログラム（個別暗号化プログラム）を第１の更新プログラム格納部２１２３から取得する。第１のプログラム出力部２１３０は、取得した第１の更新プログラムを端末２１０１の第１のプログラム更新部２１１４へ出力する。
【０３１６】
第２のプログラム出力部２１３１は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する第２の更新プログラムを第２の更新プログラム格納部２１２４から取得する。第２のプログラム出力部２１３０は、取得した第２の更新プログラムを端末２１０１の第２のプログラム更新部２１１５へ出力する。
（Ｄ−１−２−１０）確認情報個別化部２１４０
確認情報個別化部２１４０は、正当性確認情報取得部２１２６から第１の正当性確認情報、及び第２の正当性確認情報を受け取ると、端末ＩＤ格納部２１２１から端末ＩＤ２２００を取得する。
【０３１７】
確認情報個別化部２１４０は、第１の正当性確認情報と、端末ＩＤ２２００とにＰＣＲ値拡張コマンドと等価な処理を施して、個別暗号化プログラムのＰＣＲ値に端末ＩＤが付加された第１の個別化確認情報を生成する。確認情報個別化部２１４０は、生成した第１の個別化確認情報を正当性確認情報格納部２１２２へ格納する。
確認情報個別化部２１４０は、第２の正当性確認情報と、端末ＩＤ２２００とにＰＣＲ値拡張コマンドと等価な処理を施して、コンテンツ鍵復号プログラムのＰＣＲ値に端末ＩＤが付加された第２の個別化確認情報を生成する。確認情報個別化部２１４０は、生成した第２の個別化確認情報を正当性確認情報格納部２１２２へ格納する。
【０３１８】
（Ｄ−１−３）ネットワーク接続端末２１０３
ネットワーク接続端末２１０３は、自身に装着されたカード２１０２の端末ＩＤ格納部２１２１から端末２１０１の端末ＩＤを取得すると、取得した端末ＩＤを、ネットワークを介してサーバ２１０４へ出力する。
その後、ネットワーク接続端末２１０３は、サーバ２１０４からネットワークを介して、出力した端末ＩＤと対応付けられた第１及び第２の更新プログラムと、第１及び第２の正当性確認情報と、複数の秘密情報を受け取り、受け取った各情報をカード２１０２へ格納する。
【０３１９】
（Ｄ−１−４）サーバ２１０４
サーバ２１０４は、上記実施の形態と同様に、ＣＲＬデータベースを有しており、端末毎に配布すべき第１及び第２の更新プログラム及び第１及び第２の正当性確認情報を管理している。なお、第１、第２の更新プログラム及び第１、第２の正当性確認情報は、端末の機種毎に異なるとする。
【０３２０】
また、サーバ２１０４は、端末共通鍵を予め記憶し、管理している。
サーバ２００４は、複数のデバイス鍵を予め生成しており、生成した秘密情報を記憶・管理している。サーバ２１０４は、端末に一度配布した秘密情報を再度配布しないように管理している。なお、サーバ２１０４が管理している複数の秘密情報それぞれは、互いに異なる。さらに、サーバ２１０４は、管理している全ての秘密情報を配布した場合、これまでに管理していた複数の秘密情報それぞれとは異なる複数の秘密情報を生成する。上述したように、再度生成された複数の秘密情報それぞれについても、互いに異なる。
【０３２１】
サーバ２１０４は、ネットワーク接続端末２１０３からネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（第１、第２の更新プログラム、第１、第２の正当性確認情報、及び端末共通鍵）を取得する。
サーバ２１０４は、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ２１０４は、取得した所定数のデバイス鍵それぞれを、対応する個別配送鍵を秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の配布用暗号化デバイス鍵を生成する。
【０３２２】
サーバ２１０４は、配布用暗号化デバイス鍵の生成に用いた所定数の個別配送鍵それぞれを、端末共通鍵を秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の暗号化個別配送鍵を生成する。
サーバ２１０４は、端末個別データ一式（生成した複数の秘密情報と、取得した第１、第２の更新プログラム及び第１、第２の正当性確認情報）を、ネットワークを介してネットワーク接続端末２１０３へ出力する。
【０３２３】
ここで、秘密鍵とは、上述したように、配布用暗号化デバイス鍵と暗号化個別配送鍵とからなる組である。
（Ｄ−１−５）デバイス鍵配布システム２１００の動作
デバイス鍵配布システム２１００の動作について、図２６及び図２７にて示す流れ図を用いて説明する。
【０３２４】
以下の説明では、カード２１０２が、図１８にて示すステップＳ２０１０、Ｓ２０１５を実行し、端末２１０１の端末ＩＤ２２００をサーバ２１０４へ送信した後の動作について説明する。
サーバ２１０４は、ネットワーク接続端末２１０３からネットワークを介して、端末ＩＤを受け取ると、受け取った端末ＩＤから機種を特定し、特定した機種に対応する機種共通情報（第１、第２の更新プログラム、第１、第２の正当性確認情報、及び端末共通鍵）を取得する。サーバ２１０４は、管理している複数のデバイス鍵のうち所定数（２個以上）のデバイス鍵と、それぞれに対応する個別配送鍵を取得する。サーバ２１０４は、取得した所定数のデバイス鍵それぞれを、対応する個別配送鍵を用いて暗号化して、所定数の配布用暗号化デバイス鍵を生成する。サーバ２１０４は、配布用暗号化デバイス鍵の生成に用いた所定数の個別配送鍵それぞれを、端末共通鍵を秘密鍵とする秘密鍵暗号化方式により暗号化して、所定数の暗号化個別配送鍵を生成する（ステップＳ２５００）。
【０３２５】
サーバ２１０４は、端末個別データ一式（生成した複数の秘密情報と、取得した第１、第２の更新プログラム及び第１、第２の正当性確認情報）を、ネットワーク接続端末２１０３を介してカード２１０２へ出力する（ステップＳ２５０５、Ｓ２５１０、Ｓ２５１５、Ｓ２５２０）。カードは、サーバ２１０４からネットワーク接続端末２１０３を介して、端末個別データ一式を受け取ると、所定の格納領域へ格納する。具体的には、秘密情報取得部２１２５は、サーバ２１０４から複数の秘密情報を受け取ると、受け取った複数の秘密情報を秘密情報管理テーブルＴ２１００へ格納する。正当性確認情報取得部２１２６は、サーバ２００４から第１及び第２の正当性確認情報を受け取ると、受け取った第１及び第２の正当性確認情報を確認情報個別化部２１４０へ出力する。第１の更新プログラム取得部２１２７は、サーバ２１０４から第１の更新プログラム（個別暗号化プログラム）を受け取ると、受け取った第１の更新プログラムを第１の更新プログラム格納部２１２３へ格納する。第２の更新プログラム取得部２１２８は、サーバ２１０４から第２の更新プログラムを受け取ると、受け取った第２の更新プログラムを第２の更新プログラム格納部２１２４へ格納する。
【０３２６】
確認情報個別化部２１４０は、第１及び第２の正当性確認情報を受け取ると、端末２１０１の端末ＩＤ２２００を取得する（ステップＳ２５３０）。具体的には、確認情報個別化部２１４０は、端末ＩＤ格納部２１２１から端末ＩＤ２２００を取得する。
確認情報個別化部２１４０は、取得した端末ＩＤ２２００を用いて、第１及び第２の正当性確認情報それぞれに対する第１及び第２の個別化確認情報を生成する（ステップＳ２５２５）。具体的には、確認情報個別化部２１４０は、第１の正当性確認情報と端末ＩＤ２２００とに対して、ＰＣＲ値拡張コマンドを施して、第１の個別化確認情報を生成する。確認情報個別化部２１４０は、第２の正当性確認情報と、端末ＩＤ２２００とにＰＣＲ値拡張コマンドを施して、第２の個別化確認情報を生成する。確認情報個別化部２１４０は、生成した第１及び第２の個別化確認情報を正当性確認情報格納部２１２２へ格納する。
【０３２７】
カード２１０２は、個別暗号化プログラムを端末２１０１へ出力する（ステップＳ２５４０）。
端末２１０１は、個別暗号化プログラムをインストールする（ステップＳ２５４５）。
端末２１０１は、デバイス鍵取得要求と、第１のＩＤ付ＰＣＲ値をカード２１０２の正当性確認部２１２９へ出力する（ステップＳ２５５０）。正当性確認部２１２９は、端末２１０１からデバイス鍵取得要求と、第１のＩＤ付ＰＣＲ値とを受け取ると、端末２１０１の正当性を判断する（ステップＳ２５５５）。ここでは、カード２１０２の正当性確認部２１２９は、第１の個別化確認情報と、受け取った第１のＩＤ付ＰＣＲ値との比較を行う。
【０３２８】
正当でないと判断する場合（ステップＳ２５５５における「ＮＧ」）、カード２１０２は、個別暗号化プログラムを端末２１０１へ出力する（ステップＳ２５６０）。端末２１０１は、個別暗号化プログラムを受け取ると（ステップＳ２５６５）、ステップＳ２５４５へ戻る。具体的には、正当性確認部２１２９は、ＮＧ情報を第１のプログラム出力部２１３０へ出力する。第１のプログラム出力部２１３０は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する個別暗号化プログラムを第１の更新プログラム格納部２１２３から取得し、取得した個別暗号化プログラムを端末２１０１の第１のプログラム更新部２１１４へ出力する。第１のプログラム更新部２１１４は、カード２１０２から個別暗号化プログラムを受け取ると、受け取った個別暗号化プログラムを、第１のプログラム格納部２１１１に格納されている個別暗号化プログラムに上書きして更新し、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。
【０３２９】
正当であると判断する場合（ステップＳ２５５５における「ＯＫ」）、カード２１０２の秘密情報提供部２１２０は、１個の配布用暗号化デバイス鍵を端末２１０１へ出力する（ステップＳ２５７０）。具体的には、正当性確認部２１２９は、第１のＯＫ情報を秘密情報提供部２１２０へ出力する。秘密情報提供部２１２０は、正当性確認部２１２９から第１のＯＫ情報を受け取ると、秘密情報蓄積部２１３２からフラグの値が「０」である１個の配布用暗号化デバイス鍵を取得する。秘密情報提供部２１２０は、取得した１個の配布用暗号化デバイス鍵を端末２１０１へ出力する。
【０３３０】
端末２１０１のデバイス鍵個別化部２１１６は、カード２１０２から１個の配布用暗号化デバイス鍵を受け取ると（ステップＳ２５７５）、受け取った配布用暗号化デバイス鍵を用いて個別暗号化デバイス鍵を生成し、生成した個別暗号化デバイス鍵を個別化デバイス鍵蓄積部２１１７に格納する（ステップＳ２５８０）。具体的には、デバイス鍵個別化部２１１６は、１個の配布用暗号化デバイス鍵を受け取ると、ＩＤ格納部２１１０から端末ＩＤ２２００を取得する。デバイス鍵個別化部２１１６は、取得した端末ＩＤを用いて、受け取った配布用暗号化デバイス鍵を暗号化して、個別暗号化デバイス鍵を生成し、生成した個別暗号化デバイス鍵を個別化デバイス鍵蓄積部２１１７に格納する。
【０３３１】
カード２１０２は、第２の更新プログラムを端末２１０１へ出力する（ステップＳ２５８５）。
端末２１０１は、第２の更新プログラムをインストールし（ステップＳ２５９０）、その後、第１のプログラム格納部２１１１にて格納されている個別暗号化プログラムを消去する（ステップＳ２５９５）。
【０３３２】
端末２１０１は、暗号化個別配送鍵取得要求と、第２のＩＤ付ＰＣＲ値をカード２１０２の正当性確認部２１２９へ出力する（ステップＳ２６００）。
正当性確認部２１２９は、端末２１０１から暗号化個別配送鍵取得要求と、第２のＩＤ付ＰＣＲ値とを受け取ると、端末２１０１の第１のプログラム格納部２１１１に第１の更新プログラム（個別暗号化プログラム）が消去されているか否かを判断する（ステップＳ２６０５）。
【０３３３】
消去されていないと判断する場合には（ステップＳ２６０５における「ＮＯ」）、正当性確認部２１２９は、端末２１０１のオペレーティングシステムに第１の更新プログラム（個別暗号化プログラム）を消去するように依頼し（ステップＳ２６１０）、その後、ステップＳ２６０５に戻る。
消去されていると判断する場合には（ステップＳ２６０５における「ＹＥＳ」）、端末２１０１の正当性を判断する（ステップＳ２６１５）。ここでは、カード２１０２の正当性確認部２１２９は、第２の個別化確認情報と、受け取った第２のＩＤ付ＰＣＲ値との比較を行う。
【０３３４】
正当でないと判断する場合（ステップＳ２６１５における「ＮＧ」）、カード２１０２は、第２の更新プログラムを端末２１０１へ出力する（ステップＳ２６２０）。端末２１０１は、第２の更新プログラムを受け取ると（ステップＳ２６２５）、ステップＳ２５９０へ戻る。具体的には、正当性確認部２１２９は、ＮＧ情報を第２のプログラム出力部２１３１へ出力する。第２のプログラム出力部２１３１は、正当性確認部２１２９からＮＧ情報を受け取ると、端末２１０１に対する第２の更新プログラムを第２の更新プログラム格納部２１２４から取得し、取得した第２の更新プログラムを端末２１０１の第２のプログラム更新部２１１５へ出力する。第２のプログラム更新部２１１５は、カード２１０２から第２の更新プログラムを受け取ると、受け取った第２の更新プログラムを用いてコンテンツ鍵復号プログラムを更新し、システムのリセットを端末２１０１のオペレーティングシステムに依頼する。
【０３３５】
正当であると判断する場合（ステップＳ２６１５における「ＯＫ」）、カード２１０２の秘密情報提供部２１２０は、ステップＳ２５７０にて出力した配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を、端末２１０１へ出力する（ステップＳ２６３０）。具体的には、正当性確認部２１２９は、第２のＯＫ情報を秘密情報提供部２１２０へ出力する。秘密情報提供部２１２０は、正当性確認部２１２９から第２のＯＫ情報を受け取ると、秘密情報蓄積部２１３２からフラグの値が「１」であり、且つ端末２１０１の端末ＩＤ２２００と対応付けられた配布用暗号化デバイス鍵に対応する暗号化個別配送鍵を取得し、取得した暗号化個別配送鍵を端末２１０１のデバイス鍵復号部２１１８へ出力する。
【０３３６】
デバイス鍵復号部２１１８は、カード２１０２から、暗号化個別配送鍵を受け取ると（ステップＳ２６３５）、受け取った暗号化個別配送鍵を所定の格納領域（例えば、個別化デバイス鍵蓄積部２１１７）に格納する（ステップＳ２６４０）。
デバイス鍵復号部２１１８は、個別化デバイス鍵蓄積部２１１７に格納されている個別暗号化デバイス鍵からデバイス鍵を生成する（ステップＳ２６４５）。具体的には、デバイス鍵復号部２１１８は、受け取った暗号化個別配送鍵に対応する個別暗号化デバイス鍵を、個別化デバイス鍵蓄積部２１１７から取得する。デバイス鍵復号部２１１８は、ＩＤ格納部２１１０から端末ＩＤ２２００を取得し、取得した端末ＩＤ２２００を用いて、個別化デバイス鍵蓄積部２１１７から取得した個別暗号化デバイス鍵を復号して、配布用暗号化デバイス鍵を生成する。デバイス鍵復号部２１１８は、当該端末の端末共通鍵を取得し、取得した端末共通鍵を用いて、受け取った暗号化個別配送鍵を復号して、個別配送鍵を生成する。デバイス鍵個別化部２１１６は、生成した個別配送鍵を用いて、配布用暗号化デバイス鍵を復号して、デバイス鍵を生成する。
【０３３７】
以下、各ステップが実行されるタイミングの一例を示す。
ステップＳ２５００からＳ２５３５までの動作は、カード２１０２がネットワーク接続端末２１０３に装着された場合に実行される。
ステップＳ２５４０からＳ２５４５までの動作、及びステップＳ２５８５からＳ２５９５までの動作は、サービスマンにより端末２１０１のプログラムのアップデートを行う場合に実行される。
【０３３８】
ステップＳ２５５０からＳ２５８０までの動作、ステップＳ２５５５におけるＮＧ時のステップＳ２５４５の動作、ステップＳ２６００からＳ２６４５までの動作、ステップＳ２６１５におけるＮＧ時のステップＳ２５９０からＳ２５９５までの動作は、端末２１０１の利用者によりコンテンツの再生の要求があった場合に実行される。
（Ｄ−１−６）その他の変形例
なお、本発明を上記第４の変形例に基づいて説明してきたが、本発明は、上記第４の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
【０３３９】
（１）上記第４の実施の形態において、サーバ２１０４が、取得するデバイス鍵の個数（所定数）は２個以上としたが、これに限定されない。
サーバ２１０４が、取得するデバイス鍵の個数は１個以上であればよい。
（２）上記第４の実施の形態において、サーバ２１０４が、取得するデバイス鍵の個数は予め決められた個数（所定数）としたが、これに限定されない。
【０３４０】
サーバ２１０４が、取得するデバイス鍵の個数は、ネットワーク接続端末にて情報を送信する際に、ユーザが指定してもよい。
この場合、ネットワーク接続端末２１０３は、ユーザから指定された取得個数を、サーバ２１０４へ送信する。サーバ２１０４は、ネットワーク接続端末２１０３から取得個数を受信すると、受信した取得個数分のデバイス鍵を取得する。
【０３４１】
（３）上記第４の変形例において、端末２１０１は、非ネットワーク接続の端末であるとしたが、これに限定されない。
端末２１０１は、ネットワーク接続可能な端末であるとしてもよい。つまり、端末２１０１は、上記第４の変形例にて示すネットワーク接続端末２１０３が行う動作をも兼ね備えることで実現できる。
【０３４２】
（４）上記第４の変形例において、デバイス鍵配布システム２１００は、図２６にて示すステップＳ２５４０からＳ２５４５、及びステップＳ２５８５からＳ２５９０により、サービスマンによる端末２１０１の個別暗号化プログラム及びコンテンツ鍵復号プログラムのアップデートを行うとしたが、これに限定されない。
デバイス鍵配布システム２０００ｂの動作において、ステップＳ２５４０からＳ２５４５、及びステップＳ２５８５からＳ２５９０を行わなくてもよい。
【０３４３】
（５）上記第４の変形例において、秘密情報提供部２１２０は、過去に、端末へ出力した秘密情報を、再度出力しないように、秘密情報蓄積部２１３２にて格納されている複数の秘密情報それぞれに、フラグを対応付けたが、これに限定されない。
秘密情報提供部２１２０は、出力した１以上の秘密情報からなるリストを生成し、生成したリストを用いて、過去に、端末へ出力した秘密情報を、再度出力しないように管理してもよい。
【０３４４】
または、秘密情報提供部２１２０は、出力した秘密情報を、消去してもよい。
つまり、端末に対する秘密情報のインストール状況をアップロードして、出力済の秘密情報の管理、未出力に秘密情報の管理、若しくはその双方の管理ができればよい。
（６）上記第４の実施の形態において、端末２１０１は、個別暗号化プログラムの利用後、個別暗号化プログラムを消去したが、これに限定されない。
【０３４５】
端末２１０１は、個別暗号化プログラムを消去しなくてもよい。
この場合、端末２１０１は、カード２１０２による正当性確認時に正当でないと判断される場合、つまり不正な個別暗号化プログラムが格納されている場合に、新しい個別暗号化プログラム（正規の個別暗号化プログラム）を受け取る。この場合、カードは、個別暗号化プログラムを更新したことが確認された後でなくては配布用暗号化デバイス鍵を端末に出力しないので、不正な個別暗号化プログラムが配布暗号化デバイス鍵を漏洩することを防げる。
【０３４６】
（７）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
（Ｄ−１−７）まとめ
上記第４の変形例において、正規の端末であれば、デバイス鍵の個別暗号化も正しく実施することができるので、正当性確認後に、デバイス鍵（ここでは、配布用暗号化デバイス鍵）を出力することで、個別暗号化時の不正を防止することができる。
【０３４７】
また、端末２１０１は、個別暗号化には専用にプログラム（個別暗号化プログラム）を用い、個別暗号化後に、使用した個別暗号化プログラムを消去するので、個別暗号化方法の漏洩を防止することができる。
また、カード２１０２は、端末２１０１内の個別暗号化プログラムが消去されていないと、暗号化個別配送鍵を、端末２１０１に出力しないようにしているので、個別暗号化プログラムの消去を強制することができる。
【０３４８】
（Ｅ−１）その他の変形例
なお、本発明を上記実施の形態及び第１から第４の変形例に基づいて説明してきたが、本発明は、上記実施の形態及び第１から第４の変形例に限定されないのは、もちろんである。以下のような場合も本発明に含まれる。
（１）上記各変形例において、デバイス鍵はサーバにて予め生成されるとしたが、これに限定されない。
【０３４９】
デバイス鍵はカードにて生成してもよい。
この場合、カードは、装着された端末に、生成したデバイス鍵を出力するとともに、出力先の端末を識別する端末ＩＤと出力したデバイス鍵とを対応付けて、所定の記憶領域に格納しておく。カードは、ネットワーク接続端末を介してサーバとデータの送受信を行う際に、格納しているデバイス鍵と対応する端末ＩＤとをサーバへ送信する。
【０３５０】
サーバは、デバイス鍵と対応する端末ＩＤとを受け取ると、受け取ったデバイス鍵と端末ＩＤとを管理する。
（２）上記各実施の形態において、端末の正当性を確認するために、カードは、実際に端末にロードされたプログラムのＰＣＲ値と、正規のＰＣＲ値との比較による認証（Ａｔｔｅｓｔａｔｉｏｎによる認証）を行ったが、これに限定されない。
【０３５１】
カードは、プログラムのバージョンチェックによる端末の正当性を確認してもよい。
または、カードは、プログラムに固有の鍵（ファームフェアに固有の鍵）を取得して、端末の正当性を確認してもよい。
または、カードは、チャレンジレスポンス認証により端末の正当性を確認してもよい。
（３）上記各実施の形態において、カードは、サーバからネットワークを介して、更新プログラムを受け取ったが、これに限定されない。
【０３５２】
カードは、サーバから放送波にて送信された更新プログラムを、カードを装着することができ、且つ放送波を受信することのできる端末（放送受信端末）を介して受け取ってもよい。
または、サーバは、放送波にて、プログラムの更新が必要である旨の情報（更新情報）のみを送信してもよい。この場合、カードは、放送受信端末を介して、更新情報を受け取り、放送受信端末を介してユーザへ更新情報を受け取った旨のメッセージを出力（表示）する。その後、カードは、ユーザの操作にて、サーバから、ネットワーク及びネットワーク接続端末を介して、更新プログラムを受け取る。
【０３５３】
また、ネットワークを介さずに、サーバへ直接カードを差し込んで更新プログラムを受け取るとしてもよい。サーバとしてキオスク端末を用いる場合などが考えられる。
（４）上記各変形例において、カードによる端末の正当性の確認にて端末が正当であると判断された場合にデバイス鍵を出力したが、これに限定されない。
端末が正当であると判断された場合に、カードから端末に出力するデータは、他のデータであってもよい。
【０３５４】
例えば、音楽データ、画像データ、他の鍵（ワーク鍵、コンテンツ鍵、鍵のチケット）、新しい機能を有するプログラム（新プログラム）などである。つまり、端末が正当であると判断された場合に、カードから端末に出力するデータは、著作権が保護されるデータ（上記の音楽データや画像データに相当）や、機密性の高いデータ（上記の他の鍵や新プログラムに相当）であればよい。
【０３５５】
このとき、カードは、サーバからネットワーク接続端末を介して、デバイス鍵の代わりに、著作権が保護されるデータや、機密性の高いデータを受け取ることとなる。
（５）上記第２、第３及び第４の変形例において、各デバイス鍵配布システムは、「Ａ−１−６（その他の変形例）」の（６−１）、若しくは（６−２）と同様に、第２の端末ＩＤを用いた構成であってもよい。
【０３５６】
（６）上記各変形例にて示すシステムは、端末に固有のデバイス鍵を配布し、端末に対するデバイス鍵の更新（リニューアル）を行ったが、これに限定されない。
システムは、端末に対する他の情報の更新（リニューアル）を行ってもよい。
ここで、端末測定部は上述したように、上記実施の形態におけるセキュアモジュールに相当しているので、端末測定部は、ＴＣＧ（Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ）で規格化されているＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）と同様の機能を有している。
【０３５７】
他の情報の更新（リニューアル）の一例として、ＴＰＭに含まれるプラットフォーム（Ｐｌａｔｆｏｒｍ）証明書の更新（リニューアル）について、説明する。
上記第１の変形例における端末共有鍵を、ＴＰＭにて含まれるエンドースメントキー（ＥＫ秘密鍵）に変更し、デバイス鍵をプラットフォーム証明書と変更することで、端末のＴＰＭ（端末測定部）へ送り込むことができる。
【０３５８】
もちろんプラットフォーム証明書の更新に限らず、ＥＫ秘密鍵を用いて他の情報を更新してもよい。
（７）上記各変形例にて示すシステムは、カードを具備する構成としたが、これに限定されない。
カードの代わりに、当該カードと同様の構成要素を有する装置（以下、認証装置）であってもよい。
【０３５９】
ここで、認証装置は、上記にて示すサーバに組み込まれてもよいし、サーバとは異なる装置であってもよい。
この場合、例えば、端末は、ネットワーク接続端末と専用のケーブルにて接続され、更新端末からネットワーク接続端末を介して、更新プログラム、デバイス鍵（秘密情報）を受け取る。
【０３６０】
（８）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０３６１】
（９）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０３６２】
また、上記の各装置を構成する構成要素の各部は、個別に１チップ化されていても良いし、一部又は全てを含むように１チップ化されてもよい。
また、ここでは、システムＬＳＩとしたが、集積度の違いにより、ＩＣ、ＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０３６３】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてありえる。
（１０）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０３６４】
（１１）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
（１２）また、本発明は、前記コンピュータプログラムまたは前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記デジタル信号であるとしてもよい。
【０３６５】
（１３）また、本発明は、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
（１４）また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０３６６】
（１５）また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１６）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
＜その他の実施の形態＞
以下に、本発明に関する他の実施の形態について図面を用いて説明する。ここでは、特にＴＣＧ規格に準拠した機器認証に着目した実施形態について説明する。
１．実施の形態１
１．１  概要
実施の形態１に係る検証システム３０００は、図２８に示すように、インターネット３００５に相互に接続された端末装置（証明装置）３００１、ＣＡサーバ装置（検証装置）３００２、ＴＰＭサーバ装置３００３により構成される。
【０３６７】
端末装置３００１はＴＰＭ（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）を搭載しており、初起動時又は初期化直後に、ＣＡサーバ装置から、正当な構成（ハードウェア及びソフトウェア）を有する機器であることを証明するＡＩＫ（Ａｔｔｅｓｔａｔｉｏｎ  Ｉｄｅｎｔｉｔｙ  Ｋｅｙ）クレデンシャル（ＡＩＫ証明書）を取得する。
ＴＰＭは、端末装置３００１の有するプログラムの完全性を示すインテグリティ値（後述する）に、拡張処理を施して記録する機能を有するハードウェアモジュールである。
【０３６８】
また、端末装置３００１が実際に動作する際にも、所定のタイミングで、ＣＡサーバ装置３００２が検証装置となって、端末装置３００１の正当性を検証（ＴＣＧ規格におけるこのような検証をＡｔｔｅｓｔａｔｉｏｎと呼ぶ）する。具体的には、プログラムに不正な改竄が加えられていないか、正常に動作しているかなどを検証する。なお、本実施の形態では、端末装置３００１にＡＩＫクレデンシャルを発行するＣＡサーバ装置３００２が、Ａｔｔｅｓｔａｔｉｏｎにおける検証装置となっているが、ＣＡサーバ装置３００２とは、個別の装置が、端末装置３００１の動作時におけるＡｔｔｅｓｔａｔｉｏｎの検証装置の役割を果たす構成であっても良い。
１．２  端末装置３００１の構成
（１）ハードウェア構成
ここで、端末装置３００１のハードウェア構成について図２９を用いて説明する。
【０３６９】
端末装置３００１は、内部バス３１６０により、送受信部３１０３、ＣＰＵ３１４１、ＲＡＭ３１４５、ハードディスクユニット３１４２、セキュアＲＯＭ３１４３及びＴＰＭ３１１７を接続して構成される。
（１−１）送受信部３１０３
送受信部３１０３は、インターネット３００５に接続可能なインタフェースを備えており、インターネット３００５に接続された外部機器との間で情報の送受信を行う。
【０３７０】
（１−２）セキュアＲＯＭ３１４３
セキュアＲＯＭ３１４３には、機器固有の情報（機器ＩＤ、機種番号など）、及び、ＢＩＯＳ３１０９、ブートローダー３１６２といった端末装置３００１を起動する一連のプログラム群を記憶している。
ＢＩＯＳ３１０９は、コンピュータに接続されたディスクドライブ、キーボード、ビデオカードなどの周辺機器を制御するプログラム群であって、起動時に最初に実行されるプログラムである。ＢＩＯＳ３１０９は、複数のブロックから構成されるが、図２９に示すように、電源投入直後に実行されるブートブロック３１６５にＣＲＴＭ３１６３（後述する）が記述されている。
【０３７１】
ブートローダー３１６２は、ＯＳのカーネルを呼び出す手順を含む。
これらのプログラム及び、ハードディスクユニット３１４２に、記憶されている各プログラムには、ＲＴＭ（Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  Ｍｅａｓｕｒｅｍｅｎｔｓ）３１６１が含まれている。これは、各プログラムが呼び出すプログラムのインテグリティ値を計測する機能を実現するコードである。インテグリティ値とは、そのプログラムの完全性を示す値であって、ここでは一例として、呼び出されるプログラムコードのハッシュ値をインテグリティ値とする。ハッシュ関数にはＳＨＡ−１を用いる。これは、一例であって、他の一方向関数を用いても良いし、呼び出すプログラムのビット数を計数するなど、他の方法でインテグリティ値を計測しても良い。
【０３７２】
特に、ＢＩＯＳ３１０９は、最初に実行されるプログラムであり、ＢＩＯＳ３１０９に含まれるＲＴＭコード（図２９のＣＲＴＭ１３６３）は、他のプログラムに含まれるＲＴＭコードとは異なり、ＢＩＯＳ３１０９自体のインテグリティ値を計測する手順、及び、ＢＩＯＳ３１０９により呼び出されるプログラムのインテグリティ値を計測する手順を含む。
【０３７３】
ＢＩＯＳ３１０９は、書き換え不能なセキュアＲＯＭ３１４３に記録されており、ＢＩＯＳ３１０のブートブロック３１５６に含まれるＲＴＭコードによって計測されたＢＩＯＳ３１０９のインテグリティ値の信頼性を根拠として、ＰＣＲ値（後述する）の、信頼性が保証される。そのため、ＢＩＯＳ３１０９に含まれるＲＴＭコードは、他のプログラムのＲＴＭコードと区別してＣＲＴＭ（Ｃｏｒｅ  Ｒｏｏｔ  ｏｆ  Ｔｒｕｓｔ  ｆｏｒ  Ｍａｓｕｒｅｍｅｎｔ）と呼ばれる。
【０３７４】
（１−３）ＣＰＵ３１４１
ＣＰＵ３１４１は、セキュアＲＯＭ３１４３、ハードディスクユニット３１４２、ＲＡＭ３１４５に記憶されている各種のプログラムを実行することで、下記の各種の機能部を実現する。
（１−４）ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３１４５
ＲＡＭ３１４５は、揮発性の記憶媒体であって、ＣＰＵ３１４１により実行されるプログラムを、ハードディスクユニット３１４２又はセキュアＲＯＭ３１４３からロードし、記憶している。
【０３７５】
（１−５）ハードディスクユニット３１４２
ハードディスクユニット３１４２は、不揮発性で、書き込み及び消去可能な記録媒体である。ハードディスクユニット３１４２は、一例として、図２９に示すようなＯＳ及び検証プログラム等のアプリケーションを記憶している。
図２９には図示していないが、ハードディスクユニット３１４２は、プログラムの他にもＣＰＵ３１４１により用いられる各種のデータ、ユーザデータなどを記憶している。
【０３７６】
（１−６）ＴＰＭ３１１７
ＴＰＭ３１１７は、インタフェース３１４４、ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｌａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）３１４６、不揮発メモリ３１１０、実行エンジン３１４８、乱数生成器３１５１、ＳＨＡ−１演算器３１５２、ＲＳＡ演算器３１５３、鍵生成器３１５４及びプログラムコード格納部３１５６を１チップ上に形成したものである。
【０３７７】
ＰＣＲは、揮発性のメモリで構成され、図３０は、ＰＣＲ３１４６内部を示している。ＰＣＲ３１４６は、複数の記憶領域３１７１、３１７２、３１７３・・・を含んでいる。説明の便宜上、記憶領域３１７１、３１７２、３１７３・・・に記憶されるＰＣＲ値を、それぞれ、ＰＣＲ０、ＰＣＲ１、ＰＣＲ２・・・と記載する。各記憶領域は、ハードディスクユニット３１４２又はセキュアＲＯＭ３１４３に記憶されている各プログラムと一意に対応している。例えば、記憶領域３１７１は、ＢＩＯＳと対応している。
【０３７８】
不揮発メモリ３１１０は、各種の鍵が記憶されている。これらの鍵については、機能部の説明において説明する。不揮発メモリ３１１０は、各種の鍵を、階層構造を形成して記憶しており、下位の鍵を上位の鍵を用いて暗号化して保持している。また、階層構造のルート鍵となるＳＲＫ（ＳｔｏｒａｇｅＲｏｏｔＫｅｙ）を記憶している。
実行エンジン３１４８は、プログラムコード格納部３１５６に記憶されているプログラムに従って動作し、各演算器を制御することで、各種の機能を実現する。
【０３７９】
乱数生成器３１５１は、乱数（ノンス）を生成して出力する。
ＳＨＡ−１演算器３１５２は、入力されたデータをハッシュ関数に代入してハッシュ値を算出する。ここでは、一例としてＳＨＡ−１を用いるが、他の一方向関数でも良い。
ＲＳＡ演算器３１５３は、入力されたデータ及び鍵を用いてＲＳＡ暗号方式に従った暗号化演算又は復号演算を行う。
【０３８０】
鍵生成器３１５４は、ＲＳＡ暗号に用いられる鍵ペアを生成する回路である。
プログラムコード格納部３１５６は、一例として、図３１に示すようにストレージアクセスプログラム３１５７、ログ保存プログラム３１５８、ＰＣＲ値算出プログラム３１５９・・・など各種のプログラムを記憶している。これらのプログラムは、実行エンジン３１４８により実行可能な機械語形式で述されている。また、実行エンジン３１４８が各プログラムを実行する際に必要なデータ、演算途中のデータなど、各種のデータを一時的に記憶する。
【０３８１】
上記のストレージアクセスプログラム３１５７は、ＴＰＭ３１１７外の記憶媒体（ここでは、ＲＡＭ３１４５、ハードディスクユニット３１４２、セキュアＲＯＭ）にアクセスする手順を含むプログラムである。
ログ保存プログラム３１５８は、ＰＣＲ３１４６の記憶しているＰＣＲ値の何れかの値が変わるたびに、ＰＣＲ３１４６の記憶しているＰＣＲ値群を取得し、ストレージアクセスプログラム３１５７により、取得したＰＣＲ値群をハードディスクユニット３１４２に蓄積し、ログ情報を生成する手順を含むプログラムである。
【０３８２】
ＰＣＲ値算出プログラム３１５９は、ＳＨＡ−１演算器３１５２を用いて、メモリ３１０８（後述）に新たにロードされるプログラムに対応するＰＣＲ値を算出し、算出したＰＣＲ値を、ＰＣＲ３１４６内の適切な領域に書き込む手順を含むプログラムである。
（１−７）入力部３１６６及び表示部３１６７
入力部３１６６は、キーボード、マウスなどの入力機器と接続されており、これらの機器の利用者の操作を受け付け、受け付けた操作を示す操作情報をＣＰＵ３１４１へ通知する。
【０３８３】
表示部３１６７は、モニタと接続されており、ＣＰＵ３１４１から出力される各種の画像をモニタへ出力する。
（２）機能的構成
図３２は、端末装置３００１及びＣＡサーバ装置の機能的構成を示した機能ブロック図である。図中の矢印は、端末装置３００１のＡｔｔｅｓｔａｔｉｏｎにおけるデータフローを示している。
【０３８４】
図３２に示すように、端末装置３００１は、ＩＤ記憶部３１０１、制御部３１０２、送受信部３１０３、測定値通知部３１０４、プログラム記憶部３１０６、ＲＴＭ３１０７、メモリ３１０８、ＢＩＯＳ３１０９、鍵記憶部３１２０、ＰＣＲ値記憶部３１１１、ログ取得部３１１２、ＰＣＲ値算出部３１１３、証明書記憶部３１１４及びログ記憶部３１１６から構成される。ここで、測定値通知部３１０４、ＴＰＭ制御部３１１８、鍵記憶部３１２０、ＰＣＲ値記憶部３１１１、ログ取得部３１１２及びＰＣＲ値算出部３１１３がＴＰＭ上に形成される回路により実現される。
【０３８５】
上述したハードウェアが適切に動作することにより、ＩＤ記憶部３１０１、制御部３１０２、送受信部３１０３、測定値通知部３１０４、プログラム記憶部３１０６、ＲＴＭ３１０７、メモリ３１０８、ＢＩＯＳ３１０９、鍵記憶部３１２０、ＴＰＭ制御部３１１８、ＰＣＲ値記憶部３１１１、ログ取得部３１１２、ＰＣＲ値算出部３１１３、証明書記憶部３１１４、ログ記憶部３１１６及び検証部３１１９は実現される。
【０３８６】
以下に、各機能部について説明する。
（２−１）ＩＤ記憶部３１０１
ＩＤ記憶部３１０１は、セキュアＲＯＭ３１４３により構成されており、当該端末装置３００１を一意に識別する機器ＩＤを記憶している。
（２−２）制御部３１０２
制御部３１０２は、メモリ３１０８にロードされている各種のプログラムに従って、各構成要素の動作を制御する。このとき制御部３１０２は、具体的には図示していないが、各機能部へ制御信号を出力している。また、利用者によるデータ及び指示の入力を受け付け、受け付けた指示に従って各部を制御する。
【０３８７】
また、制御部３１０２は、ＡＩＫクレデンシャル（後述する）を取得済みであるか否かを記憶しており、未取得の状態で端末装置３００１が起動された場合、ＴＰＭ制御部３１１８へ、ＡＬＫクレデンシャルが未取得であることを通知する。ここで、起動とは、ＯＳがメモリ３１０８にロードされ実行可能な状態であるとする。
続いて、制御部３１０２は、ＴＰＭ制御部３１１８から、新たに生成されたＡＩＫ公開鍵を受け取る。ＡＩＫ公開鍵を受け取ると、ＴＰＭ３１１７内において新たに生成されたＡＩＫ秘密鍵とＡＩＫ公開鍵（以下、必要に応じてＡＩＫ鍵ペアと呼ぶ）に割り当てるＩＤを生成する。
【０３８８】
次に、制御部３１０２は、証明書記憶部３１１４から、ＥＫクレデンシャル３１２１とＰＦ（プラットフォーム）クレデンシャル３１２２（後述する）とを読み出す。続いて、送受信部３１０３を介して、生成されたＩＤ、ＡＩＫ公開鍵、読み出したＥＫクレデンシャル、ＰＦクレデンシャルを、ＣＡサーバ装置３００２に送信し、ＡＩＫクレデンシャルの発行を要求する。
【０３８９】
要求が認められると、制御部３１０２は、送受信部３１０３を介して暗号化ＡＩＫクレデンシャルを受信する。暗号化ＡＩＫクレデンシャルは、ＥＫ公開鍵を用いてＡＩＫクレデンシャルを暗号化したものである。制御部３１０２は、ＥＫ秘密鍵を用いて受信した暗号化ＡＩＫクレデンシャルを復号し、ＡＩＫクレデンシャルを生成する。制御部３１０２は、生成したＡＩＫクレデンシャルを証明書記憶部３１１４に書き込む。図３３は、既にＡＩＫクレデンシャル３１２３取得後の証明書記憶部３１１４を示している。
【０３９０】
なお、制御部３１０２自身がＥＫ秘密鍵を読み出し、暗号化ＡＩＫクレデンシャルの復号を行う代わりに、ＴＰＭ３１１７内ＴＰＭ制御部へ、暗号化ＡＩＫクレデンシャルを出力し、復号を依頼してもよい。このようにすれば、ＥＫ秘密鍵が、ＴＰＭチップ外へ出力されることがなくなり、より安全性が高まる。
ＡＩＫクレデンシャルを取得済みの状態で、端末装置３００１が起動された場合、自機が起動したことを示す起動通知を、送受信部３１０３を介して、ＣＡサーバ装置３００２へ送信する。続いて、ＣＡサーバ装置３００２から、動作許可通知又は動作禁止通知を受信する。動作許可通知を受信した場合は、そのまま、各構成要素の動作の制御を続行する。動作禁止通知を受信した場合は、当該端末装置３００１が不正な構成であるか、不正動作をしている旨を通知する警告画面をモニタに表示し、端末装置３００１の動作を停止させる。
【０３９１】
制御部３１０２は、具体的にはＣＰＵ３１４１が、メモリ３１０８、セキュアＲＯＭ３１４３、ハードディスクユニット３１４２に記憶されているコンピュータプログラムに従って動作することで、その機能を達成する。
（２−３）送受信部３１０３
送受信部３１０３は、インターネット３００５に接続された外部機器と、端末装置３００１内の各機能部との間で各種の情報の送受信を行う。ここで、前記外部機器には、ＣＡサーバ装置３００２が該当する。実際に、機器間で通信を行う際には、使い捨ての鍵（セッション鍵）を生成し、生成したセッション鍵でデータを暗号化して、安全に送受信を行うが、これは、公知の技術により実現可能であり、本発明には直接関係が無いので、以下の説明において、通信時におけるセッション鍵による暗号化、復号の処理についての説明は省略する。
【０３９２】
（２−４）プログラム記憶部３１０６
プログラム記憶部３１０６は、具体的にはハードディスクユニット３１４２により構成され、オペレーティングシステム（以下ＯＳ）を初めとする各種のプログラムを記憶している。これらのプログラムが、メモリ３１０８にロードされ、実行されることで、いくつかの機能部は実現される。
【０３９３】
（２−５）メモリ３１０８
メモリ３１０８は、主にＲＡＭ３１４５から構成され、ハードディスクユニット３１４２の一部、セキュアＲＯＭ３１４３を含む。メモリ３１０８は、ＣＰＵ３１４１の実行する各種のプログラムを、プログラム記憶部３１０６などからロードし、実行可能な状態で記憶している。
【０３９４】
（２−６）ＢＩＯＳ３１０９
ＢＩＯＳ３１０９は、ＩＰＬの一種であり、具体的には、セキュアＲＯＭ３１４３内に記憶されているプログラムである。端末装置３００１が、起動されると、最初にメモリ３１０８にロードされ実行される。
（２−７）ＲＴＭ３１０７
ＲＴＭ３１０７は、メモリ３１０８に新たなプログラムがロードされる前、そのプログラムのインテグリティ値を計測し、計測したインテグリティ値とロードされるプログラムを示す識別子をＰＣＲ値算出部３１１３へ出力する。ここでは、計測対象のプログラムコードのハッシュ値をインテグリティ値とする。ハッシュ値関数には、ＳＨＡ−１を用いる。
【０３９５】
ＲＴＭ３１０７は、ＢＩＯＳ３１０９に含まれるＣＲＴＭ３１６３、及びメモリ３１０８にロードされている各プログラム内のＲＴＭコードをＣＰＵ３１４１が実行することで実現される機能部である。また、最初にロード実行されるプログラムであるＢＩＯＳ３１０９に関しては、ブートブロック３１５６に含まれるＣＲＴＭ３１６３がＢＩＯＳ３１０９自身のインテグリティ値を計測して出力する。
【０３９６】
なお、ここでは、各プログラムにＲＴＭコードが含まれているとしたが、ＴＣＧ規格では、これは必須ではなく、ＣＰＵ３１４１が、ＢＩＯＳ３１０９に埋め込まれている、ＣＲＴＭ３１６３を実行することで、新たにメモリ３１０８にロードされるプログラムのインテグリティ値を計測する構成であっても良い。
（２−８）証明書記憶部３１１４
証明書記憶部３１１４は、具体的にはハードディスクユニット３１４２により構成され、一例として、図３３に示すようにＥＫ（Ｅｎｄｏｒｓｅｍｅｎｔ  Ｋｅｙ）クレデンシャル（証明書）３１２１、ＰＦクレデンシャル３１２２、ＡＩＫ（Ａｔｔｅｓｔａｔｉｏｎ  Ｉｄｅｎｔｉｔｙ  Ｋｅｙ）クレデンシャル３１２３を記憶している。
【０３９７】
ＥＫクレデンシャル３１２１は、ＴＰＭ製造者又は端末装置製造者によって発行される証明書であって、ＥＫ公開鍵の正当性を証明する。ＥＫ公開鍵と後述するＥＫ秘密鍵３１２６は、ＲＳＡ暗号に対応する鍵ペアである。ＥＫ秘密鍵３１２６及び前記ＥＫ公開鍵は、ＴＰＭチップに対応する鍵ペアであって、ＥＫクレデンシャル３１２１は、ＴＰＭ製造者又は端末装置製造者によって、端末装置３００１の製造過程おいて生成され、証明書記憶部３１１４に書き込まれる。
【０３９８】
ＰＦクレデンシャル３１２２は、プラットフォーム（例えば、端末装置３００１自体、端末装置３００１内のＴＰＭチップを搭載した部品）の構成及び製造者を明確にし、プラットフォームの特性を明らかにする属性証明書である。また、プラットフォームが正当なＴＰＭを搭載していることを証明するものである。具体的には、プラットフォームを端末装置３００１自体とすると、端末装置３００１の製造業者を示す識別情報、搭載しているＴＰＭ及びＣＰＵの識別番号、ＯＳの種類、ソフトウェア構成を示す情報などを含む。また、プラットフォームをマザーボードとすると、マザーボードの製造業者を示す識別情報、マザーボードに搭載されているＴＰＭ及びＣＰＵの機種番号、ＯＳの種類などを含む。ＰＦクレデンシャル３１２２は、プラットフォーム製造者により発行され、端末装置３００１の製造過程において、証明書記憶部３１１４に書き込まれる。
【０３９９】
各クレデンシャルは、一例としてＸ．５０９形式で記述され、クレデンシャルを一意に示す識別番号、発行者名、有効期限、発行者（発行装置）の秘密鍵（以下、サーバ秘密鍵）を用いて生成された書名データ、前記署名データの生成に用いられたアルゴリズムを示す情報などを含んでいる。
なお、ここでは、証明書記憶部３１１４はハードディスクユニット３１４２により構成されるとしているが、ＴＰＭ３１１７内に実装されても良い。
【０４００】
（２−９）ログ記憶部３１１６
ログ記憶部３１１６は、具体的にはハードディスクユニット３１４２により構成される。ログ記憶部３１１６は、端末装置３００１が起動してから現在までの、ＰＣＲ値群の履歴を記憶している。以下、この履歴をログ情報と呼ぶ。ログ情報は、少なくとも各ＰＣＲ値と対応するプログラムを示す識別情報と各ＰＣＲ値の履歴を含むが、他にも、プログラムのバージョン情報、プログラムの挙動を示す情報を含んでも良い。なお、ＴＣＧ規格では、このログ情報をＳＭＬ（Ｓｔｏｒｅｄ  Ｍｅａｓｕｒｅｍｅｎｔ  Ｌｏｇ）と呼ぶ。以下の説明及び図面において、必要に応じてログ情報をＳＭＬと略して記載する。
【０４０１】
なお、ここでは、ログ記憶部３１１６は、ハードディスクユニット３１４２により構成されるとしているが、ＴＰＭ３１１７内に実装されても良い。  
（２−１０）鍵記憶部３１２０
鍵記憶部３１２０は、一例として、図３４に示すようにＥＫ秘密鍵３１２６、ＡＩＫ秘密鍵３１２７、ＡＩＫ公開鍵３１２８、ＳＲＫ３１２９・・・を記憶している。ハードウェア構成の説明において述べたように、これらの鍵は、ＳＲＫ３１２９をルート鍵とする階層構造を形成して記憶されているが、ここでは、説明の便宜上、前述の階層構造に関する説明は省略する。
【０４０２】
ＥＫ秘密鍵３１２６は、ＥＫクレデンシャル３１２１に含まれるＥＫ公開鍵と対になる秘密鍵であって、ＲＳＡ暗号に用いられる鍵ペアの一方に当たる。ＥＫ秘密鍵３１２６及び前記ＥＫ公開鍵は、ＴＰＭチップに一意に対応する鍵であり、ＥＫ秘密鍵３１２６及びＥＫクレデンシャル３１２１は、ＴＰＭ製造者又は端末装置３００１の製造者によって、出荷前に書き込まれる。
【０４０３】
ＡＩＫ秘密鍵３１２７及びＡＩＫ公開鍵３１２８は、当該端末装置３００１の初起動時及び初期化直後の起動時に、ＴＰＭ３１１７内の鍵生成器３１５４により生成された鍵ペアであって、ＲＳＡ暗号に対応している。ＡＩＫ公開鍵３１２８は、ＡＩＫクレデンシャル３１２３に含まれる公開鍵と同一であるので、鍵記憶部３１２０に必ずしも書き込まれている必要はない。また、ＡＩＫ鍵ペアの取得のタイミングは、初起動時及び初期化直後に限定されるものではなく、製造過程において、書き込まれるとしてもよい。
【０４０４】
ＳＲＫ３１２９については、既に述べた通りであるので、説明を省略する。
ここでは、初起動時にＡＩＫ鍵ペアが生成され、ＡＩＫクレデンシャル３１２３の取得後の状態の鍵記憶部３１２０について説明した。
（２−１１）ＰＣＲ値記憶部３１１１
ＰＣＲ値記憶部３１１１は、ＰＣＲ３１４６がその機能を担っており、ＰＣＲ０、ＰＣＲ１、ＰＣＲ２・・・を記憶している。
【０４０５】
各ＰＣＲ値は、それぞれ、ＢＩＯＳ３１０９、プログラム記憶部３１０６に記憶されている各プログラムと対応している。つまり、図３０の各記憶領域は、それぞれ、異なるプログラムと対応しており、具体的には、記憶領域３１７１、３１７２、３１７３・・・は、それぞれ、起動される順に、ＢＩＯＳ３１０９、ブートローダー、ＯＳ・・・と対応している。従って、ＰＣＲ０は、ＢＩＯＳ３１０９と対応しており、ＰＣＲ１は、ブートローダーと対応しており、ＰＣＲ２は、ＯＳと対応している。
【０４０６】
なお、上述の各ＰＣＲ値とプログラムとの対応は、一例であって、これに限定されるものではない。
（２−１２）ＴＰＭ制御部３１１８
ＴＰＭ制御部３１１８は、ＴＰＭ３１１７内の各機能部の動作を制御する。図示していないが、ＴＰＭ制御部３１１８は、ＴＰＭ内外の各部へ制御信号を出力している。
【０４０７】
具体的には、送受信部３１０３を介して、ＣＡサーバ装置３００２から、乱数とＡｔｔｅｓｔａｔｉｏｎ（構成証明）要求を受信する。Ａｔｔｅｓｔａｔｉｏｎ要求を受信すると、受信した乱数を測定値通知部３１０４（後述）へ出力する。次に、ログ記憶部３１１６からログ情報を読み出し、証明書記憶部３１１４からＡＩＫクレデンシャル３１２３を読み出す。続いて、測定値通知部３１０４により生成された署名データと、読み出したＡＩＫクレデンシャル３１２３とログ情報とを、送受信部３１０３を介して、ＣＡサーバ装置３００２へ送信する。
【０４０８】
また、ＴＰＭ制御部３１１８は、端末装置３００１の初起動時又は初期化直後の起動時に、制御部３１０２からＡＩＫクレデンシャルが未取得である旨を通知される。この通知を受けると、ＴＰＭ制御部３１１８は、ＡＩＫ鍵ペアを生成し、生成したＡＩＫ鍵ペアを、鍵記憶部３１２０に書き込む。続いて、生成されたＡＩＫ公開鍵を制御部３１０２へ出力する。
【０４０９】
ＴＰＭ制御部３１１８は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
（２−１３）ＰＣＲ値算出部３１１３
ＰＣＲ値算出部３１１３は、ＲＴＭ３１０７から、新たにメモリ３１０８にロードされるプログラムの識別子とインテグリティ値（ハッシュ値）とを受け取る。
【０４１０】
これらを受け取ると、ＰＣＲ値算出部３１１３は、ＰＣＲ値記憶部３１１１において、受け取った識別子と対応するＰＣＲ値が格納される領域の直前領域に記憶されているＰＣＲ値を読み出す。次に、ＰＣＲ値算出部３１１３は、読み出したＰＣＲ値と受け取ったインテグリティ値を結合してハッシュ関数に代入する。算出されたハッシュ値をＰＣＲ値として、ＰＣＲ値記憶部３１１１内において、受け取った識別子と対応する領域に書き込む。
【０４１１】
ただし、ＢＩＯＳ３１０９と対応するＰＣＲ０を算出する場合、記憶領域３１７１が先頭の記憶領域であるので、受け取ったインテグリティ値をそのままハッシュ関数に代入する。若しくは、予め決められた初期値とＣＲＴＭ３１６３のインテグリティ値を結合した値をハッシュ関数に代入し、ハッシュ値を算出しても良い。
ＴＣＧ規格において、計測されたインテグリティ値にこのような演算を施してＰＣＲ値を算出することを、拡張処理という。
【０４１２】
以下に、具体例を挙げて説明する。
ＢＩＯＳ、ブートローダー、ＯＳは、それぞれ、ＰＣＲ０、ＰＣＲ１、ＰＣＲ２と対応している。各プログラムは、ＢＩＯＳ、ブートローダー、ＯＳ、デバイスドライバ・・・の順にメモリ３１０８にロードされ実行される。ＯＳをメモリ３１０８にロードするとき、ＰＣＲ値算出部３１１３は、ＲＴＭ３１０７から、ＯＳを示す識別子とＯＳから計測されたインテグリティ値を受け取る。これらを受け取ると、ＰＣＲ値算出部３１１３は、受け取った識別子を基に、ＰＣＲ１を読み出し、読み出したＰＣＲ１と受け取ったインテグリティ値とを結合してハッシュ関数に代入する（拡張処理）。次に、ＰＣＲ値算出部３１１３は、算出されたハッシュ値（ＰＣＲ２）を所定の記憶領域３１７３に書き込む。
【０４１３】
なお、端末装置３００１が複数のアプリケーションを備えており、各アプリケーションのロードの順序が決まっておらず、アプリケーションが、ロードされる順序は、利用者の操作によって決まる場合が考えられる。このような場合、一例として、ＯＳと対応するＰＣＲ３を用いて、ロードされるアプリケーションから計測されたインテグリティ値を拡張し、各アプリケーションに対応するＰＣＲ値を算出する。
【０４１４】
なお、ＰＣＲ値算出部３１１３は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
（２−１４）ログ取得部３１１２
ログ取得部３１１２は、ＰＣＲ値記憶部３１１１の記憶しているＰＣＲ値群を監視しており、何れかのＰＣＲ値が変化すると、ＰＣＲ値記憶部３１１１からＰＣＲ値群を読み出し、読み出したＰＣＲ値群をログ記憶部３１１６へ書き込む。また、メモリ３１０８の内容を監視し、プログラムの動作状態を示す情報を生成してログ記憶部３１１６に書き込む。
【０４１５】
ログ取得部３１１２は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
（２−１５）測定値通知部３１０４
測定値通知部３１０４は、インターネット３００５及び送受信部３１０３を介して、ＣＡサーバ装置３００２から、乱数（ノンス）を受信する。
【０４１６】
乱数を受信すると、測定値通知部３１０４は、鍵記憶部３１２０からＡＩＫ秘密鍵を読み出し、ＰＣＲ値記憶部３１１１からＰＣＲ値群を読み出す。次に、読み出したＡＩＫ秘密鍵を用いて、受信した乱数とＰＣＲ値群に署名生成アルゴリズムを施して署名データを生成する。ここでは、一例として署名生成アルゴリズムとしてＲＳＡ暗号を利用するが、他のアルゴリズムを用いても良い。
【０４１７】
次に、ＴＰＭ制御部３１１８の制御に従って、生成した署名データを、送受信部３１０３を介して、ＣＡサーバ装置３００２へ送信する。
測定値通知部３１０４は、具体的には、実行エンジン３１４８が、プログラムコード格納部３１５６に格納されているプログラムに従って動作し、各演算機を操作することにより、その機能を達成する。
【０４１８】
（２−１６）検証部３１１９
検証部３１１９は、端末装置３００１が、検証装置となって他の機器との間でＡｔｔｅｓｔａｔｉｏｎ処理を行う場合に、前記他の機器の正当性を検証する機能部である。具体的な構成は、ＣＡサーバ装置３００２内の検証部３０１３（後述する）同様であるので、ここでは詳細な説明は省略する。なお、検証部３０１３内は乱数生成部３０１２を備えているが、検証部３１１９は、内部に乱数生成部を備えていても良いし、乱数生成をＴＰＭチップに依頼する構成でも良い。また、検証部３０１３は、検証データ記憶部３０１８の記憶している各種の情報を用いた検証を行っているので、検証部３１１９も同様の情報（検証データ）が必要である。ここで、この情報は、図３２の機能ブロック図には示されていないが、ハードディスクユニット３１４２に同様の検証データが記憶されているとする。
１．３  ＣＡサーバ装置３００２の構成
ＣＡサーバ装置３００２は、図２８に示すように、公正な第三者機関であるプライバシーＣＡの保持する装置である。
【０４１９】
ＣＡサーバ装置３００２は、図３２に示すように、送受信部３０１５、制御部３０１１、検証部３０１３、検証データ記憶部３０１８から構成される。さらに、検証部３０１３は、乱数生成部３０１２、証明書検証部３０１４、署名検証部３０１６、ログ検証部３０１７を含む。また、図示していないが、操作者によるデータ及び指示の入力を受け付ける入力部、各種の情報を表示する表示部を含んでいる。
【０４２０】
ＣＡサーバ装置３００２は、具体的には、マイクロプロセッサ、ＲＡＭ、ＲＯＭを含んで構成されるコンピュータシステムであって、前記ＲＡＭ、ＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することで、ＣＡサーバ装置３００２は、その機能の一部を達成する。
（１）送受信部３０１５
送受信部３０１５は、インターネット３００５に接続可能なインタフェースを備えており、制御部３０１１の制御の下、インターネット３００５を介して接続された外部機器と、各機能部との間のデータの送受信を行う。
【０４２１】
（２）検証データ記憶部３０１８
検証データ記憶部３０１８は、検証部３０１３によるＡｔｔｅｓｔａｔｉｏｎ処理に用いられる検証データを記憶している。図３２では、その一例として、サーバ公開鍵３０２１、乱数３０２２、正規ＰＣＲ値群３０２３、正規ログ情報３０２４を記憶している。
サーバ公開鍵３０２１は、サーバ秘密鍵と対応する鍵であって、これらはＲＳＡ暗号に対応している。
【０４２２】
乱数３０２２は、Ａｔｔｅｓｔａｔｉｏｎの過程において、乱数生成部３０１２により生成された擬似乱数である。
正規ＰＣＲ値群３０２３は、端末装置３００１が、正常に動作した場合に算出される各ＰＣＲ値を含む。
正規ログ情報３０２４は、証明装置が正常に動作した場合に生成されるべきログ情報であって、少なくとも、正常に動作した場合の各ＰＣＲ値群の履歴を含む。
【０４２３】
（３）制御部３０１１
制御部３０１１は、ＣＡサーバ装置３００２内の各構成要素の動作を制御する。
制御部３０１１は、インターネット３００５及び送受信部３０１５を介して、端末装置３００１から、起動通知を受信する。
また、制御部３０１１は、インターネット３００５及び送受信部３０１５を介して、端末装置３００１から、ＡＩＫ鍵ペアを示すＩＤと、ＡＩＫ公開鍵と、ＥＫクレデンシャルと、ＰＦクレデンシャルと、ＡＩＫクレデンシャル発行要求とを受信する。
【０４２４】
（３-１）Ａｔｔｅｓｔａｔｉｏｎの制御
起動通知を受信すると、制御部３０１１は、検証部３０１３へ端末装置３００１との間のＡｔｔｅｓｔａｔｉｏｎの開始を指示する。
次に、検証部３０１３からＡｔｔｅｓｔａｔｉｏｎの結果を通知される。Ａｔｔｅｓｔａｔｉｏｎの結果、端末装置３００１が正当であると通知されると、制御部３０１１は、送受信部３０１５を介して、端末装置３００１に動作許可通知を送信する。
【０４２５】
Ａｔｔｅｓｔａｔｉｏｎの結果、端末装置３００１が不正であると通知されると、制御部３０１１は、送受信部３０１５を介して、端末装置３００１に動作禁止通知を送信する。
（３−２）ＡＩＫクレデンシャルの発行
制御部３０１１は、ＡＩＫクレデンシャル発行要求を受信すると、受信したＥＫクレデンシャル及びＰＦクレデンシャルの発行元へ、それぞれ、ＥＫクレデンシャル及びＰＦクレデンシャルを送信し、クレデンシャルが有効であるか否かを問い合わせる。ここでは、図２８に示すＴＰＭサーバ装置３００３へ、ＥＫクレデンシャルを送信し、ＰＦクレデンシャルを端末サーバ装置３００４へ送信する。
【０４２６】
問合せの結果、ＥＫクレデンシャル及びＰＦクレデンシャルが何れも有効であれば、制御部３０１１は、ＡＩＫクレデンシャルを生成する。ここで生成されるＡＩＫクレデンシャルは、ＡＣサーバ装置の秘密鍵（以下、サーバ秘密鍵）を用いて、少なくともＡＩＫ公開鍵に署名生成アルゴリズムを施して生成された署名データを含む。
続いて、制御部３０１１は、送受信部３０１５を介して、生成したＡＩＫクレデンシャルをＥＫクレデンシャルに含まれるＥＫ公開鍵で暗号化し、暗号化ＡＩＫクレデンシャルを生成する。次に、送受信部３０１５を介して、生成した暗号化ＡＩＫクレデンシャルを、端末装置３００１へ送信する。
【０４２７】
問合せの結果、端末装置３００１から受信したいずれかのクレデンシャルが無効であれば、制御部３０１１は、ＡＩＫクレデンシャルの発行ができない旨を示す発行不可通知を送信する。
（４）検証部３０１３
検証部３０１３は、図３２に示すように乱数生成部３０１２、証明書検証部３０１４、署名検証部３０１６及びログ検証部３０１７から構成される。
【０４２８】
（４−１）乱数生成部３０１２
乱数生成部３０１２は、擬似乱数生成エンジンを備え、制御部３０１１から、Ａｔｔｅｓｔａｔｉｏｎの開始の指示を受け取ると乱数を生成する。
次に、生成した乱数を検証データ記憶部３０１８に書き込むとともに、送受信部３０１５を介して、生成した乱数及びＡｔｔｅｓｔａｔｉｏｎ要求を送信する。
【０４２９】
（４−２）証明書検証部３０１４
証明書検証部３０１４は、乱数生成部３０１２によるＡｔｔｅｓｔａｔｉｏｎ要求の送信後、所定時間内に、端末装置３００１から、ＡＩＫ証明書と署名データとログ情報とを受信する。
ＣＡサーバ装置３００２は、無効になったＡＩＫクレデンシャルを示すＡＩＫクレデンシャルＣＲＬを記憶している外部ストレージ３０２６と接続されている。
【０４３０】
証明書検証部３０１４は、受信したＡＩＫ証明書がＡＩＫクレデンシャルＣＲＬに登録されているか否かを検証する。
登録されていない場合、証明書検証部３０１４は、検証データ記憶部３０１８からサーバ公開鍵を読み出し、読み出したサーバ公開鍵を用いて、受信したＡＩＫ証明書に含まれる署名データを検証する。検証の結果、ＡＩＫ証明書が正当であると証明されると、証明書検証部３０１４は、受信した署名データ、ログ情報及びＡＩＫ証明書に含まれるＡＩＫ公開鍵を署名検証部３０１６へ出力する。
【０４３１】
受信したＡＩＫクレデンシャルがＡＩＫクレデンシャルＣＲＬに登録されている場合、及び、受信したＡＩＫクレデンシャルに含まれる署名データの検証、ＡＩＫクレデンシャルが正当でない場合、端末装置３００１が不正である旨を示す検証結果を制御部３０１１へ出力する。
（４−３）署名検証部３０１６
署名検証部３０１６は、証明書検証部３０１４から署名データとログ情報とＡＩＫ公開鍵とを受け取る。これらを受け取ると、署名検証部３０１６は、受け取ったＡＩＫ公開鍵を用いて、署名データに署名検証アルゴリズムを施して乱数とＰＣＲ値群を生成する。ここで生成された乱数、ＰＣＲ値群をそれぞれ、証明用乱数、証明用ＰＣＲ値群と呼ぶ。なお署名検証アルゴリズムには、ＲＳＡ暗号を用いる。
【０４３２】
署名検証部３０１６は、検証データ記憶部３０１８から乱数３０２２と正規ＰＣＲ値群３０２３とを読み出す。生成した証明用乱数と読み出した乱数３０２２とを比較する。両者が一致すれば、続いて、生成した証明用ＰＣＲ値群を構成する各証明用ＰＣＲ値と、読み出した正規ＰＣＲ値群３０２３を構成する各正規ＰＣＲ値とを、それぞれ比較する。全ての証明用ＰＣＲ値と正規ＰＣＲ値とが一致すると、署名検証部３０１６は、受信したログ情報をログ検証部３０１７へ出力する。
【０４３３】
生成した証明用乱数と読み出した乱数３０２２とが一致しない場合、及び、何れか一組でも、証明用ＰＣＲ値と正規ＰＣＲ値とが一致しない場合、署名検証部３０１６は、端末装置３００１が不正である旨を示す検証結果を制御部３０１１へ出力する。
（４−４）ログ検証部３０１７
ログ検証部３０１７は、署名検証部３０１６から、受信されたログ情報を受け取る。ログ情報を受け取ると、ログ検証部３０１７は、検証データ記憶部３０１８から、正規ログ情報３０２４を読み出し、受け取ったログ情報と読み出した正規ログ情報３０２４とを比較する。
【０４３４】
比較の結果、両者が一致すると、ログ検証部３０１７は、端末装置３００１が正当である旨を示す検証結果を制御部３０１１へ出力する。
比較の結果、両者が一致しなければ、ログ検証部３０１７は、端末装置３００１が不正である旨を示す検証結果を制御部３０１１へ出力する。
１．４  ＴＰＭサーバ装置３００３
ＴＰＭサーバ装置３００３は、ＴＰＭベンダの所有する装置であって、各ＴＰＭチップに固有のＥＫ鍵ペア及びＥＫ公開鍵を証明するＥＫクレデンシャルを管理する。
【０４３５】
ＴＰＭサーバ装置３００３は、無効になったＥＫクレデンシャルを示すＥＫクレデンシャルＣＲＬを記憶している外部ストレージと接続されており、ＣＡサーバ装置３００２から、ＥＫクレデンシャルの有効性の問合せを受け付ける。
１．５  端末サーバ装置３００４
端末サーバ装置３００４は、端末装置ベンダの所有する装置であって、端末装置（又は装置内のプラットフォーム）に固有のＰＦクレデンシャルを管理する。
【０４３６】
端末サーバ装置３００４は、無効になったＰＦクレデンシャルを示すＰＦクレデンシャルＣＲＬを記憶している外部ストレージと接続されており、ＣＡサーバ装置３００２からＰＦクレデンシャルの有効性の問合せを受け付ける。
１．６  動作
以下に、フローチャートを用いて、各装置の動作について説明する。
【０４３７】
（１）Ａｔｔｅｓｔａｔｉｏｎ処理における動作
図３５〜図３７はＡｔｔｅｓｔａｔｉｏｎ処理における各機器の動作を示したフローチャートである。以下に、図３５〜図３７を用いてＡｔｔｅｓｔａｔｉｏｎ処理における各機器の動作について説明する。以下、記載を簡単にするためプログラムＡのインテグリティ値をＩｎ（Ａ）と記載する。なお、図３２中データフローと図３５〜図３７の動作のうち対応するものには、同一のステップ番号を付している。
【０４３８】
端末装置３００１に電源が入ると（ステップＳ３０００）、ＢＩＯＳ３１０９のブートブロック３１６５に記述されているＣＲＴＭ３１６３が実行され（ステップＳ３００１）、その結果、ＢＩＯＳのインテグリティ値Ｉｎ（ＢＩＯＳ）が計測される（ステップＳ３００４）。ＣＲＴＭ及びＲＴＭコードにより実現される機能部ＲＴＭ３１０７は、計測したインテグリティ値Ｉｎ（ＢＩＯＳ）とＢＩＯＳを示す識別子とを、ＰＣＲ値算出部３１１３へ出力する。
【０４３９】
ＰＣＲ値算出部３１１３は、インテグリティ値Ｉｎ（ＢＩＯＳ）を受け取り、以下の演算によりＢＩＯＳと対応するＰＣＲ０を算出する（ステップＳ３００６）。
ＰＣＲ０＝ＳＨＡ１（Ｉｎ（ＢＩＯＳ））
続いて、ＰＣＲ値算出部３１１３は、算出したＰＣＲ０をＰＣＲ値記憶部３１１１に書き込む（ステップＳ３００８）。
【０４４０】
ＢＩＯＳのＰＣＲ値が記憶されると、ＢＩＯＳは、メモリ３１０８にロードされ、実行される（ステップＳ３００９）。
ＢＩＯＳの実行過程において、ブートローダーをメモリ３１０８に読み出す必要が生じると、ＲＴＭ３１０７は、ブートローダーのインテグリティ値Ｉｎ（ＢＬ）を計測し、ＰＣＲ値算出部３１１３へ出力する（ステップＳ３０１２）。
【０４４１】
ＰＣＲ値算出部３１１３は、インテグリティ値Ｉｎ（ＢＬ）を受け取り、以下の演算により、ブートローダーのＰＣＲ値を算出する（ステップＳ３０１３）。
ＰＣＲ１＝ＳＨＡ１（ＰＣＲ０＋Ｉｎ（ＢＬ））
ここで、上記の式の「＋」は連結を意味する。
ＰＣＲ値算出部３１１３は、算出したＰＣＲ１をＰＣＲ値記憶部３１１１に書き込む（ステップＳ３０１４）。
【０４４２】
ＰＣＲ１がＰＣＲ値記憶部３１１１に書き込まれると、ブートローダーは、メモリ３１０８にロードされ、実行される（ステップＳ３０１６）。
同様にして、ＲＴＭ３１０７及びＰＣＲ値算出部３１１３は、ＯＳと対応するＰＣＲ値を算出し（ＰＣＲ２＝ＳＨＡ１（ＰＣＲ１＋Ｉｎ（ＯＳ）））、算出したＰＣＲ２をＰＣＲ値記憶部３１１１に書き込む（ステップＳ３０１８）。
【０４４３】
ここで、上記の式の「＋」は連結を意味する。
ＰＣＲ２がＰＣＲ値記憶部３１１１に書き込まれると、ＯＳは、メモリ３１０８にロードされ実行される（ステップＳ３０２１）。
ここで、当該端末装置３００１が既に、ＡＩＫクレデンシャルを取得済みであれば（ステップＳ３０２２のＹＥＳ）、制御部３１０２は、端末装置３００１が起動したことを示す起動通知を、ＣＡサーバ装置３００２へ送信する（ステップＳ３０２４）。
【０４４４】
ＡＩＫクレデンシャルを未取得であれば（ステップＳ３０２２のＮＯ）、制御部３１０２は、ステップＳ３０２３へ処理を移す。
ＣＡサーバ装置３００２の制御部３０１１は、端末装置３００１から起動通知を受信する（ステップＳ３０２４）。起動通知を受信すると、制御部３０１１は、検証部３０１３へＡｔｔｅｓｔａｔｉｏｎの開始を指示する。
【０４４５】
Ａｔｔｅｓｔａｔｉｏｎの開始を指示されると、検証部３０１３内の乱数生成部３０１２は、乱数を生成する（ステップＳ３０２６）。次に、乱数生成部３０１２は、生成した乱数とＡｔｔｅｓｔａｔｉｏｎ要求とを端末装置３００１へ送信すると共に（ステップＳ３０２７）、生成した乱数を検証データ記憶部３０１８へ書き込む（ステップＳ３０２８）。
【０４４６】
端末装置３００１のＴＰＭ制御部３１１８は、乱数及びＡｔｔｅｓｔａｔｉｏｎ要求を受信し（ステップＳ３０２７）、受信した乱数を測定値通知部３１０４へ出力する。
測定値通知部３１０４は、乱数を受け取ると、鍵記憶部３１２０からＡＩＫ秘密鍵３１２７を読み出す（ステップＳ３０２９）。続いて、ＰＣＲ値記憶部３１１１から各ＰＣＲ値を読み出す（ステップＳ３０３０）。次に、測定値通知部３１０４は、読み出した秘密鍵を用いて、受け取った乱数と、読み出したＰＣＲ値群に署名生成アルゴリズムを施して、署名データを生成する（ステップＳ３０３１）。
【０４４７】
ＴＰＭ制御部３１１８は、証明書記憶部３１１４からＡＩＫクレデンシャル３１２３を読み出し、ログ記憶部３１１６からログ情報を読み出す（ステップＳ３０３２）。
次に、ＴＰＭ制御部３１１８は、測定値通知部３１０４により生成された署名データと、読み出したＡＩＫクレデンシャルとログ情報とをＣＡサーバ装置３００２へ送信する（ステップＳ３０３３）。
【０４４８】
ＣＡサーバ装置３００２内の証明書検証部３０１４は、端末装置３００１から、署名データとＡＩＫクレデンシャルとログ情報とを受信すると（ステップＳ３０３３）、受信したＡＩＫクレデンシャルがＡＩＫクレデンシャルＣＲＬに登録されているか否かを確認し、登録されている場合（ステップＳ３０３４のＹＥＳ）、ステップＳ３０４１へ処理を移す。
【０４４９】
受信したＡＩＫクレデンシャルが、ＡＩＫクレデンシャルＣＲＬに登録されていない場合（ステップＳ３０３４のＮＯ）、証明書検証部３０１４は、検証データ記憶部３０１８に記憶されているサーバ公開鍵３０２１を用いてＡＩＫクレデンシャルを検証する（ステップＳ３０３６）。
署名検証部３０１６は、受信したＡＩＫクレデンシャルに含まれるＡＩＫ公開鍵を用いて受信した署名データに署名検証アルゴリズムを施して証明用乱数と、証明用ＰＣＲ値群を生成する（ステップＳ３０３７）。続いて、検証データ記憶部３０１８に記憶されている乱数３０２２及び正規ＰＣＲ値群３０２３を基に、証明用乱数と証明用ＰＣＲ値群とを検証する（ステップＳ３０３８）。
【０４５０】
ログ検証部３０１７は、検証データ記憶部３０１８に記憶されている正規ログ情報３０２４を基に受信したログ情報を検証する（ステップＳ３０４１）。ステップＳ３０３６〜ステップＳ３０４１までの全ての検証のうち、いずれか一つでも失敗であれば（ステップＳ３０４２のＮＯ）、制御部３０１１は、端末装置３００１に動作禁止通知を送信する（ステップＳ３０４３）。全ての検証が成功であれば（ステップＳ３０４２のＹＥＳ）、制御部３０１１は、端末装置３００１へ動作許可通知を送信する（ステップＳ３０４６）。
【０４５１】
端末装置３００１は、ＣＡサーバ装置３００２から、動作禁止通知又は動作許可通知を受信する。
動作許可通知を受信した場合（ステップＳ３０４７のＹＥＳ）、制御部３１０２は、メモリにロードされているプログラムを実行し、必要に応じて他のプログラムをメモリにロードし実行する（ステップＳ３０４９）。
【０４５２】
動作禁止通知を受信した場合（ステップＳ３０４７のＮＯ）、制御部３１０２は、当該端末装置３００１の構成が不正であることを示す警告画面を表示した後、端末装置３００１の動作を停止させ、電源をＯＦＦにする（ステップＳ３０５２）。
（２)ＡＩＫクレデンシャルの取得動作
起動前の端末装置３００１はＡＩＫクレデンシャルを保持しておらず、初起動時にＣＡサーバ装置３００２からＡＩＫクレデンシャルを取得する。図３８、図３９はＡＩＫクレデンシャルの取得における各機器の動作を示すフローチャートである。なお、これは、図３６のステップＳ３０２３の詳細である。
【０４５３】
以下に、図３８及び図３９を用いてＡＩＫクレデンシャルの取得動作について説明する。
先ず、ＴＰＭ制御部３１１８は、ＲＳＡ暗号に対応した新たなＡＩＫ鍵ペアを生成し（ステップＳ３０６１）、生成したＡＩＫ鍵ペアを鍵記憶部３１２０に書き込む（ステップＳ３０６２）。次に、生成したＡＩＫ公開鍵を制御部３１０２へ出力する。
【０４５４】
制御部３１０２は、証明書記憶部３１１４からＥＫクレデンシャル３１２１とＰＦクレデンシャル３１２２とを読み出す（ステップＳ３０６３）。続いて、新たに生成されたＡＩＫ鍵ペアを識別するＩＤを生成する（ステップＳ３０６６）。
次に、制御部３１０２は、ＩＤ、ＥＫクレデンシャル、ＰＦクレデンシャル、ＡＩＫ公開鍵をＣＡサーバ装置３００２へ送信し、ＡＩＫクレデンシャルの発行を要求する（ステップＳ３０６７）。
【０４５５】
ＣＡサーバ装置３００２の制御部３０１１は、端末装置３００１からＩＤ、ＥＫクレデンシャル、ＰＦクレデンシャル、ＡＩＫ公開鍵及びＡＩＫクレデンシャルの発行要求を受信する（ステップＳ３０６７）。
これらを受信すると、制御部３０１１は、ＴＰＭサーバ装置３００３及び端末サーバ装置３００４へ、それぞれ、ＥＫクレデンシャル及びＰＦクレデンシャルの正当性を問い合わせる（ステップＳ３０６９）。
【０４５６】
問合せの結果、ＥＫクレデンシャル及びＰＦクレデンシャルのうち一方でも正当なければ（ステップＳ３０７１のＮＯ）、制御部３０１１は、ＡＩＫクレデンシャル発行に関する処理を終了する。
問合せの結果、ＥＫクレデンシャル及びＰＦクレデンシャルの両方が正当であれば（ステップＳ３０７１のＹＥＳ）、制御部３０１１は、受信したＩＤ及びＡＩＫ公開鍵を含むＡＩＫクレデンシャルを生成し（ステップＳ３０７２）、受信したＥＫクレデンシャルに含まれるＥＫ公開鍵を用いて、生成したＡＩＫクレデンシャルを暗号化する（ステップＳ３０７３）。
【０４５７】
次に、制御部３０１１は、生成した暗号化ＡＩＫクレデンシャルを端末装置３００１へ送信する（ステップＳ３０４７）。
端末装置３００１の制御部３１０２は、ＣＡサーバ装置３００２から暗号化ＡＩＫクレデンシャルを受信すると（ステップＳ３０７４）、鍵記憶部３１２０からＥＫ秘密鍵３１２６を読み出し（ステップＳ３０７６）、読み出したＥＫ秘密鍵を用いて暗号化ＡＩＫクレデンシャルを復号して、ＡＩＫクレデンシャルを生成する（ステップＳ３０７７）。
【０４５８】
続いて、制御部３１０２は、生成したＡＩＫクレデンシャルを証明書記憶部３１１４へ書き込む（ステップＳ３０７９）。
１．７  実施の形態１に関する変形例
（１）更新プログラムの取得
上記の実施の形態１において、Ａｔｔｅｓｔａｔｉｏｎが失敗した場合、ＣＡサーバ装置３００２は動作禁止通知を送信し、端末装置３００１は、これを受信すると、動作を停止し、電源をＯＦＦにするとしたが、これに限るものではなく、一部機能を制限した形で起動するとしても良い。
【０４５９】
また、上記の実施の形態及び変形例と同様に、ＣＡサーバ装置３００２は、各プログラムを最新バージョンに更新するための更新プログラムを送信し、端末装置３００１は、受信した更新プログラムにより、各プログラムを最新版に更新するとしてもよい。
更新後、端末装置３００１は、再起動して、改めてＡｔｔｅｓｔａｔｉｏｎを行う。
（２）Ａｔｔｅｓｔａｔｉｏｎのタイミング
上記の実施の形態１では、ＯＳがメモリにロードされ実行可能になった時点で、起動通知を送信し、Ａｔｔｅｓｔａｔｉｏｎが開始されるが、これは、一例であって、他のタイミングであっても良い。
【０４６０】
例えば、ＯＳに続いて、デバイスドライバ、アプリケーションロードされた時点であっても良いし、ブートローダーがロードされた時点であってもよい。
（３）特定のＰＣＲ値の指定
実施の形態１では、測定値通知部３１０４は、全てのＰＣＲ値を読み出し、読み出したＰＣＲ値群に署名を施して送信しているが、この構成に限るものではない。
【０４６１】
具体的には、ＣＡサーバ装置３００２は、乱数と共に、何れか一つ（複数でも良い）のＰＣＲ値を示す識別情報を送信する。
測定値通知部３１０４は、識別情報の示すＰＣＲ値のみを読み出し、読み出したＰＣＲ値と受信した乱数に署名を施して送信する。
これに合わせて、ＴＰＭ制御部３１１８は、ログ情報についても、受信した識別情報のＰＣＲ値に係るログ情報のみを抽出して送信する。
【０４６２】
このようにすることで、機器間で送受信されるデータ量を少なくすることができる。
（４）ＲＴＭ機能を実現する構成
上記の実施の形態では、ＢＩＯＳはブートブロックにＣＲＴＭを含み、各プログラムは、ＲＴＭコードを含んでおり、ＣＰＵがＣＲＴＭ及び各プログラムのＲＴＭコードを実行することでＲＴＭの機能を実現しているが、この後世に限定されるものではない。
【０４６３】
以下に、一例を紹介する。
端末装置は、ブートブロックにＣＲＴＭを含むＢＩＯＳを記憶している。これに加えて、ＲＴＭ（ソフトウェア、以下機能部であるＲＴＭと区別するためＲＴＭプログラムと呼ぶ）及びＭｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔを記憶している。
ＣＲＴＭは、ＲＴＭのインテグリティ値を計測する手順を含む。
【０４６４】
ＲＴＭプログラムは、指定されたプログラムのインテグリティ値を計測する手順を含む。
Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔは、各種のプログラムから呼び出され、ＲＴＭプログラムにインテグリティ値の計測を要求する手順を含むプログラムである。
ＢＩＯＳ、ローダー、ＯＳ、及びその他のプログラムは、Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔを呼び出し、自身が次に呼び出そうとしているプログラムをＭｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔに通知するコードを含む。
【０４６５】
以上の構成により、各プログラムは、他のプログラムをメモリにロードする前に、Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔを呼び出して前記他のプログラムを通知し、Ｍｅａｓｕｒｅｍｅｎｔ  Ａｇｅｎｔは、ＲＴＭプログラムを呼び出し、通知されたプログラムのインテグリティ値の計測を要求する。この要求を受けると、ＲＴＭプログラムが、通知されたプログラムのインテグリティ値を算出する。
【０４６６】
このような仕組みによりＲＴＭの機能を実現してもよい。
２．  実施の形態２
２．１  概要
実施の形態２に係るコンテンツ再生システムは、図４０に示すようにコンテンツ提供サーバ３２０２、端末装置＃１（３２０１）、端末装置＃３（３２０３）から構成される。コンテンツ提供サーバ３２０２及び端末装置＃１（３２０１）は、インターネット３００５に接続可能である。端末装置＃３（３２０３）は、インターネット通信機能を有していない。
【０４６７】
メモリカード＃２（３２０４）は、端末装置＃１（３２０１）及び端末装置＃２（３２０３）の何れにも装着可能であり、コンテンツ及びコンテンツの利用権（鍵、有効期限などを含む）を保持している。
端末装置＃１（３２０１）及び端末装置＃３（３２０３）は、メモリカード＃２（３２０４）に記憶されているコンテンツを復号、伸長し再生する機能を有する。これに先立って、端末装置とメモリカードが交互に検証装置及び証明装置となり、相互にＡｔｔｅｓｔａｔｉｏｎ処理を行う。相互に相手の構成が正当であると認証した場合、端末装置はメモリカード＃２からコンテンツ及び権利情報を取得し、コンテンツを再生することができる。
【０４６８】
また、メモリカード＃２（３２０４）は、端末装置＃１（３２０１）に装着された状態で、端末装置＃１（３２０１）の通信機能を利用して、コンテンツ提供サーバ３２０２から、新たなコンテンツ及び権利情報の購入処理を行う。
ところで、各機器の備えるプログラムはインターネットや、記録媒体、他の機器を介してアップグレードされることが考えられる。
【０４６９】
その場合、前述のＡｔｔｅｓｔａｔｉｏｎに用いられる検証データを更新する必要が生じる。コンテンツ提供サーバ３２０２は、コンテンツ及び権利情報の販売に関する処理に加えて、前述のＡｔｔｅｓｔａｔｉｏｎ処理に用いられる最新の検証データを保持している。
メモリカード＃２（３２０４）は、端末措置＃１（３２０１）に装着された状態で、端末装置＃１（３２０１）の通信機能を利用して、コンテンツ提供サーバ３２０２と通信し、新たなコンテンツ及びコンテンツ利用権（復号鍵、有効期限などを含む）を取得する。これに先立って、コンテンツ提供サーバから、前述のＡｔｔｅｓｔａｔｉｏｎ処理に用いられる最新の検証データを取得する。このときメモリカードは、自身が用いる検証データのみならず、端末装置＃１及び端末装置＃３の用いる検証データも取得し、それぞれの端末装置機器に装着された際に、取得した検証データを配布する。
２．２  端末装置の構成＃１及び端末装置＃２の構成
端末装置＃１の物理的構成及び機能的構成は実施の形態において説明した端末装置３００１とほぼ同様であるのでここでは、詳細な説明を省略し相違点のみ説明する。
【０４７０】
端末装置＃１と端末装置３００１の相違点は、メモリカード＃２を装着可能な入出力部を備えることと、ＯＳ以上のアプリケーションとして音楽データを再生する手順を含む再生制御プログラムを記憶している点である。また、ハードディスクユニットにより構成される検証データ記憶部を有する。検証データ記憶部には、メモリカード＃２の正当性を検証するための情報が記憶されている。
【０４７１】
また、端末装置３００１は、ＯＳが起動した時点で、外部のＣＡサーバ装置３００２とＡｔｔｅｓｔａｔｉｏｎ処理を行ったり、ＣＡサーバ装置３００２からＡＩＫ証明書を取得したりしているが、本実施の形態において、これは必須ではなく、端末装置＃１（３２０１）の製造時にＡＩＫ鍵ペア及びＡＩＫ証明書を記録しておいても良い。
端末装置＃１は、電源がＯＮになると、ＢＩＯＳから順に再生制御プログラムまでメモリにロードする。再生制御プログラムがロードされると、先ず、装着しているメモリカード＃２との間で相互に、自身の機器ＩＤを送信し合う。続いて、端末装置＃１が検証装置となってメモリカード＃２との間で第１のＡｔｔｅｓｔａｔｉｏｎ処理を行う。
【０４７２】
第１のＡｔｔｅｓｔａｔｉｏｎが成功すれば続いて、端末装置＃１が証明装置となって、第２のＡｔｔｅｓｔａｔｉｏｎ処理を行う。２回のＡｔｔｅｓｔａｔｉｏｎの結果、相互に正当な構成の機器であることが証明されると、端末装置＃１は、続いて再生制御プログラムを実行し、利用者の操作に従って音楽再生をすることができる。
また、新たなコンテンツの購入を要求する利用者の操作を受け付けると、購入要求をメモリカード＃２へ出力し、メモリカード＃２内のＤＲＭ（Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ）アプリ（後述）の実行によるコンテンツ購入処理などにおいて、通信機能を提供する。
【０４７３】
また、端末装置＃１は、メモリカード＃２から、最新検証データを受け取ると、受け取った最新検証データにより、検証データ記憶部の記憶している検証データを書き換える。
端末装置＃３も端末装置＃１とほぼ同様の構成であるが、端末装置＃３は、インターネット３００５に接続可能な送受信部を持たない点が端末装置＃１と異なる。
また、端末装置＃３にメモリカード＃２が装着され、相互に機器ＩＤを送信しあう。続いて、端末装置＃３は、先ず、メモリカード＃２から、最新の検証データを受け取り、受け取った最新の検証データにより、自身の記憶している検証データを書き換える。
【０４７４】
続いて、端末装置＃１の場合と同様に、相互にＡｔｔｅｓｔａｔｉｏｎを行う。
２．３  コンテンツ提供サーバ
コンテンツ提供サーバ３２０２は、コンテンツプロバイダの所有するサーバ装置であり、主に、インターネット３００５を介して、外部機器との間で、コンテンツ及び利用権（鍵、有効期限などを含む）の販売に係る処理を行う。
【０４７５】
図４１は、コンテンツ提供サーバ３２０２の構成を示す機能ブロック図である。図４１に示すように、コンテンツ提供サーバ３２０２は、送受信部３２１１、ＤＲＭ処理部３２１２、コンテンツＤＢ（データベース）３２１３、最新検証データ記憶部３２１４、制御部３２１６、表示部３２１７及び入力部３２１８から構成される。
コンテンツ提供サーバ３２０２は、具体的にはマイクロプロセッサ、ＲＡＭ，ＲＯＭを含んで構成されるコンピュータシステムであって、前記ＲＡＭ、ＲＯＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することで、コンテンツ提供サーバ３２０２は、その機能の一部を達成する。
【０４７６】
（１）コンテンツＤＢ３２１３
コンテンツＤＢは、大容量のハードディスクユニットから構成され、複数の暗号化コンテンツ及び各暗号化コンテンツに対応する権利情報を記憶している。
暗号化コンテンツは、音楽データを圧縮し暗号化して生成されたものである。権利情報は、暗号化コンテンツを復号するための復号鍵、復号鍵の有効期限、価格情報などを含んでいる。
【０４７７】
（２）最新検証データ記憶部３２１４
最新検証データ記憶部３２１４は、複数の最新検証データ３２２１、３２２６・・・を記憶している。各最新検証データは、機器ＩＤ、正規ＰＣＲ値群、正規ＳＭＬ（ログ情報）からなる。最新検証データは、機器ＩＤの示す機器の正当性を検証するための情報である。以下、説明の便宜上、機器ＩＤ：ＩＤ＃ｎ（ｎ＝１、２、３・・・）の機器の正当性を検証するためのデータを検証データ＃ｎ、検証データ＃ｎに含まれる正規ＰＣＲ値群を正規ＰＣＲ＃ｎ、正規ＳＭＬを正規ＳＭＬ＃ｎと記載する。
【０４７８】
一例として最新検証データ＃１（３２２１）は、ＩＤ＃１（３２２２）、正規ＰＣＲ＃１（３２２１）及び正規ＳＭＬ＃１を含み、ＩＤ＃１の示す端末装置＃１の正当性の検証に用いられる。
（３）ＤＲＭ処理部３２１２
ＤＲＭ処理部３２１２は、制御部３２１６の制御の下、インターネット３００５を介して接続された外部機器との間で、コンテンツ販売に係る処理を行う機能部である。
【０４７９】
具体的には、外部機器から、コンテンツ購入要求を受信し、ユーザ認証、コンテンツリストの送信、コンテンツの選択の受信、課金処理、暗号化コンテンツ及び権利情報の送信などの一連の処理を行う。
（４）送受信部３２１１
送受信部３２１１は、インターネット３００５に接続可能なインタフェースを含んで構成され、インターネット３００５に接続された外部機器と、各機能部との間で、各種の情報の送受信を行う。
【０４８０】
（５）制御部３２１６
制御部３２１６は、各機能部へ制御信号（図示していない）を出力し、コンテンツ提供サーバ３２０２を構成する各機能部の動作を制御する。  
また、制御部３２１６は、インターネット３００５及び端末装置＃１を介してメモリカード＃２から、最新検証データ要求を受信する。最新更新データ要求は、１以上の機器ＩＤを含んでおり、前記機器ＩＤの正当性検証に用いられる最新の検証データを要求するものである。
【０４８１】
最新検証データ要求を受信すると、制御部３２１６は、最新検証データ記憶部３２１４内で、受信した機器ＩＤと同一の機器ＩＤを含む最新検証データを検出し、検出した最新検証データを読み出す。続いて、制御部３２１６は、読み出した最新検証データを、送受信部３２１１を介して、メモリカード＃２へ送信する。
２．４  メモリカード＃２（３２０４）の構成
図４２は、メモリカード＃２（３２０４）の機能的構成を示した機能ブロック図である。図４２に示すように、メモリカード＃２（３２０４）は、制御部３２３１、メモリ３２３２、ブートプログラム３２３３、コンテンツ記憶部３２３６、ＲＴＭ３２３７、入出力部３２３９、証明書記憶部３２４１、プログラム記憶部３２４４、ログ記憶部３２５１、ＴＰＭチップ３２４７、検証部３２５６、ＩＤ記憶部３２６６及び検証データ記憶部３２５７から構成される。
【０４８２】
メモリカード＃２（３２０４）は、具体的には、ＲＡＭ、ＲＯＭを含んだコンピュータシステムであって、ＲＡＭ、ＲＯＭにはコンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、メモリカード＃２（３２０４）は、その機能の一部を達成する。
以下に、各構成要素について、説明する。
【０４８３】
なお、証明書記憶部３２４１、メモリ３２３２、ログ記憶部３２５１、ＲＴＭ３２３７については、実施の形態１において説明した証明書記憶部、メモリ、ログ記憶部、ＲＴＭと同様の機能を有するので、ここでは、説明を省略する。
（１）入出力部３２３９
入出力部３２３９は、外部機器と接続可能なインタフェースを備える。ここで、外部機器とは、端末装置＃１及び端末装置＃２とが該当する。入出力部３２３９は、外部機器とメモリカード＃２内の各機能部との間で情報の送受信を行う。
【０４８４】
また、入出力部３２３９は、外部機器から電力の供給を受ける電力端子を備えており、電力端子を介して外部機器から供給される電力を各構成要素へ配布する。
（２）コンテンツ記憶部３２３６
コンテンツ記憶部３２３６は、暗号化コンテンツ及び権利情報を記憶するための機能部である。ここに記憶される暗号化コンテンツ及び権利情報は、前述のコンテンツ提供サーバの保持する暗号化コンテンツ及び権利情報と同様である。
【０４８５】
（３）プログラム記憶部３２４４
プログラム記憶部３２４４は、フラッシュメモリなどの不揮発性の記憶媒体により構成され、ＯＳ３２４５及びＤＲＭアプリ３２４６を記憶している。端末装置側と同様にＯＳ３２４５はＲＴＭコードを含んでいる。
ＤＲＭアプリ３２４６は、コンテンツ提供サーバとの間で、コンテンツ購入に関する処理を行い、端末装置によるコンテンツの再生要求に対して権利情報の確認、暗号化コンテンツ及び復号鍵の出力などを行う手順を含むプログラムである。
【０４８６】
（４）ブートプログラム３２３３
ブートプログラム３２３３は、端末装置におけるＢＩＯＳと同様に、メモリカードのセキュアな領域に記憶され、電力の供給が開始されると最初にロード実行されるプログラムである。ブートプログラム３２３３は、前述のＢＩＯＳと同様にＣＲＴＭ３２６２を含んでいる。
【０４８７】
メモリカード＃２に電力が供給されると、ブートプログラム、ＯＳ、ＤＲＭアプリの順にメモリにロードされ、実行される。特に、メモリカード＃２（３２０４）内のプロセッサは、ブートプログラム３２３３内のＣＲＴＭ３２６２を、最初に実行する。
（５）ＩＤ記憶部３２６６
ＩＤ記憶部３２６６は、不揮発性の記憶媒体から構成され、一般領域３２６７とセキュア領域３２６８から構成される。
【０４８８】
セキュア領域３２６８には、メモリカード＃２（３２０４）の製造時に書き込まれたメモリカード＃２を一意に示す機器ＩＤ「ＩＤ＃２」３２７３が記憶されている。
一般領域３２６７には、メモリカード＃２が装着された事のある機器の機器ＩＤ３２７１及び機器ＩＤ３２７２が記憶されている。具体的には、端末装置＃１を示す機器ＩＤ「ＩＤ＃１」３２７１と、端末装置＃３を示す機器ＩＤ「ＩＤ＃３」３２７２を記憶している。以下、記述を簡略にするため、これらの機器ＩＤを単にＩＤ＃１、ＩＤ＃２、ＩＤ＃３と記載する。
【０４８９】
（６）検証データ記憶部３２５７
検証データ記憶部３２５７は、複数の検証データ３２５８、３２５９、３２６１・・・を記憶している。
各検証データは、機器ＩＤ、正規ＰＣＲ群、正規ＳＭＬを含み、機器ＩＤの示す機器の正当性の検証に用いられる。
【０４９０】
検証データ３２５９は、メモリカード＃２の正当性の検証に用いられ、検証データ３２５８、３２６１・・・は、それぞれ、端末装置＃１、端末装置＃３・・・の正当性検証に用いられる。以下、これらを単に検証データ＃ｎ（ｎ＝1、２、３・・・）と記載し、検証データ＃ｎを構成する機器ＩＤ、正規ＰＣＲ群、正規ＳＭＬをそれぞれ、ＩＤ＃１、正規ＰＣＲ＃ｎ、正規ＳＭＬ＃ｎと記載する。
【０４９１】
一例として、検証データ＃１は、端末装置＃１を示すＩＤ＃１（３２６２）、端末装置＃１が正当な構成を有する場合に算出されるべき正規ＰＣＲ＃１（３２５９）、及び、端末装置＃１正当な構成を有する場合のＰＣＲ値群の履歴を含む正規ＳＭＬ＃１（３２６４）から構成される。
（７）ＴＰＭ＃２（３２４７）
メモリカード＃２（３２０４）に搭載されている、ＴＰＭチップ３２４７（以下、ＴＰＭ＃２と記載する）は、ネットワークプロバイダにより提供され、メモリカード＃２に実装されたものである。
【０４９２】
ＴＰＭ＃２は、実施の形態１のＴＰＭ３１１７と同様に、ＴＰＭ＃２内の各機能部により、メモリカード＃２の正当性を示す情報であるＰＣＲ値の算出及び蓄積を行う。ＴＰＭ＃２の詳細な構成は、実施の形態１のＴＰＭ３１１７と同様であるので、図４２では、省略して記載している。
本実施の形態で、各機器内のＴＰＭチップの保持するＥＫ秘密鍵、ＡＩＫ秘密鍵、ＰＣＲ値群をそれぞれ、ＥＫ＃ｎ、ＡＩＫ＃ｎ、ＰＣＲ＃ｎ（ｎ＝1、２、３・・・）と記載する。また各秘密鍵と対応する公開鍵の証明書を証明書＃ｎ、ログ記憶部の記憶しているＳＭＬをＳＭＬ＃ｎと記載する。
【０４９３】
（８）検証部３２５６
検証部３２５６は、制御部３２３１から当該メモリカード＃２（検証装置）の装着されている端末装置（証明装置）とのＡｔｔｅｓｔａｔｉｏｎを指示される。このとき、制御部３２３１から、端末装置の機器ＩＤを受け取る。
Ａｔｔｅｓｔａｔｉｏｎを指示されると、検証部３２５６は、受け取った機器ＩＤを含む検証データを読み出す。続いて、読み出した検証データを用いて、端末装置の正当性検証を行う。検証の詳細は、実施の形態１において説明した検証部３０１３による検証と同様であるのでここでは説明を省略する。
【０４９４】
次に検証部３２５６は、Ａｔｔｅｓｔａｔｉｏｎの結果を制御部３２３１へ通知する。
（９）制御部３２３１
制御部３２３１は、各構成要素の構成を制御する機能部である。
制御部３２３１は、いずれかの端末装置に装着されると、ＩＤ記憶部３２６６から、ＩＤ＃２を読み出し、端末装置に出力する。また、端末装置から機器ＩＤを受け取りメモリ３２３２に記憶する。
【０４９５】
ここで、機器ＩＤには、通信機能を有する再生装置であるか否か、また、記録媒体であるかを示す情報が含まれる。例えば、通信機能を有するものは先頭ビット「１１」から始まり、通信機能を有さないものは、先頭ビット「１０」から始まり、記録媒体は、先頭ビット「００」から始まる機器ＩＤを有する。
続いて、制御部３２３１は、端末装置から、Ａｔｔｅｓｔａｔｉｏｎ要求と乱数（ノンス）とを受け取る。これらを受け取ると、ＴＰＭ＃２（３２４７）へ、受け取ったノンスを出力しＡｔｔｅｓｔａｔｉｏｎを指示する。
【０４９６】
メモリカード＃２の正当性が証明され、端末装置から動作許可通知を受信すると、制御部３２３１は、検証部３２５６へ、端末装置の正当性検証（Ａｔｔｅｓｔａｔｉｏｎ）の指示を出力する。このとき、メモリ３２３２に書き込んだ端末ＩＤを読み出し、Ａｔｔｅｓｔａｔｉｏｎの指示と共に読み出した端末ＩＤを、検証部３２５６へ出力する。
次に、制御部３２３１は、検証部３２５６から、Ａｔｔｅｓｔａｔｉｏｎの結果を通知される。通知された結果により、端末装置が不正であると判断された場合、制御部３２３１は、以後端末装置との通信を停止する。
【０４９７】
通知された結果により端末装置が正当であると判断された場合、端末装置の利用者の操作に従って、暗号化コンテンツの出力などの処理を行う。
（９−１）端末装置＃１に装着された場合の処理
以下に、端末装置＃１に装着された場合に行われる処理について説明する。
メモリカード＃２が、端末装置＃１に装着された状態で、端末装置＃１から、コンテンツの購入要求を受け取る。この要求を受け取ると、制御部３２３１は、ＩＤ記憶部３２６６に記憶されている全ての機器ＩＤを読み出す。続いて、最新の検証データの送信を要求する最新検証データ要求を生成し、生成した最新検証データ要求を、端末装置＃１の通信機能を利用してコンテンツ提供サーバ３２０２へ送信する。最新検証データ要求には、読み出した全ての機器ＩＤが含まれている。
【０４９８】
続いて、端末装置＃１を介して、コンテンツ提供サーバ３２０２から、複数の最新検証データを受信する。受信した最新検証データに含まれる機器ＩＤを基に、検証データ記憶部３２５７に記憶されている検証データを、受信した検証データにより書き換える。
次に、制御部３２３１は、メモリカード＃２自身を示すＩＤ＃２を含む検証データ＃２を読み出し、読み出した検証データ＃２を最新検証データ＃２として端末装置＃１へ出力する。
【０４９９】
出力した後、制御部３２３１は、メモリ３２３２にロードされているＤＲＭプログラムの示す手順に従って、コンテンツの購入処理を行う。
（９−２）端末装置＃２に装着された場合の処理
以下に、端末装置＃２に装着された場合に行われる処理について説明する。
制御部３２３１は、受け取った機器ＩＤの先頭の２ビットが「１０」の場合、Ａｔｔｅｓｔａｔｉｏｎに先立って、自身を示すＩＤ＃２を含む検証データ３２５９を読み出し、読み出した検証データ３２５９を最新検証データとして出力する。
２．５  動作
以下に、Ａｔｔｅｓｔａｔｉｏｎに関連する各機器の動作について説明する。
【０５００】
なお、メモリカード＃２と端末装置との相互のＡｔｔｅｓｔａｔｉｏｎ処理に関する動作は、何れの端末装置の場合も同じであるので、ここでは、端末装置＃２とメモリカード＃２との相互Ａｔｔｅｓｔａｔｉｏｎについての説明は省略する。
（１）相互Ａｔｔｅｓｔａｔｉｏｎ
メモリカード＃２が端末装置＃１に装着された状態で、端末装置＃１の電源がＯＮになり、双方のブートプロセスが終了すると、端末装置＃１が検証装置となって、メモリカード＃２の正当性を検証する第１のＡｔｔｅｓｔａｔｉｏｎが行われる（ステップＳ３１０１〜ステップＳ３１０３）
先ず、端末装置＃１の検証部３２８１は、ノンス＃２を生成してメモリカード＃２へ出力する（ステップＳ３１０１）。
【０５０１】
メモリカード＃２のＴＰＭ＃２は、ノンス＃２を受け取ると、ＡＩＫ＃２を用いて、受け取ったノンス＃２と、自身が保持しているＰＣＲ＃２とに署名を施して署名データを生成する。生成した署名データ「ＡＩＫ＃１（ノンス＃２、ＰＣＲ＃２）」と、ＡＩＫ証明書＃２とＳＭＬ＃２とを、端末装置＃１へ出力する（ステップＳ３１０２）。以下、その他の実施の形態において鍵Ａを用いて、データＢ、Ｃ・・・に署名を施して生成された署名データを「Ａ（Ｂ、Ｃ・・・）」と記載する。一例として前述の「ＡＩＫ＃１（ノンス＃２、ＰＣＲ＃２）」は、鍵「ＡＩＫ＃１」を用いて「ノンス＃２、ＰＣＲ＃２」に署名を施して生成されたものである。
【０５０２】
端末装置＃１の検証部３２８１は、メモリカード＃２から、署名データとＡＩＫ証明書＃２とＳＬＭ＃２とを受け取る。これらを受け取ると、ＡＩＫ証明書＃２の検証、署名データの検証（具体的には、ノンス＃２の検証及びＰＣＲ＃２の検証）、ＳＭＬ＃２の検証を順次行う（ステップＳ３１０３）。これらの検証には、サーバ公開鍵（図示せず）、ＡＩＫ証明書＃２に含まれるＳＩＫ公開鍵＃２、検証データ記憶部３２８２に記憶されている正規ＰＣＲ＃２及び正規ＳＭＬ＃２が用いられる。
【０５０３】
第１のＡｔｔｅｓｔａｔｉｏｎが成功であれば、続いて、メモリカード＃２が検証装置となって、端末装置＃１の正当性を検証する第２のＡｔｔｅｓｔａｔｉｏｎが行われる（ステップＳ３１０６〜ステップＳ３１０８）。
先ず、メモリカード＃２の検証部３２５６は、ノンス＃１を生成し、生成したノンス＃１を、端末装置＃１へ出力する（ステップＳ３１０６）。
【０５０４】
端末装置＃１のＴＰＭ＃１は、ノンス＃１を受け取ると、ＡＩＫ＃１を用いて、受け取ったノンス＃１及び自身の保持しているＰＣＲ＃１に署名を施して署名データを生成し、ＡＩＫ証明書＃１と、生成した署名データと、ＳＭＬ＃１とをメモリカード＃２へ出力する（ステップＳ３１０７）。
メモリカード＃２の検証部３２５６は、端末装置＃１からＡＩＫ証明書＃１と署名データとＳＭＬ＃１とを受け取る。これらを受け取ると、ＡＩＫ証明書＃１の検証、署名データの検証（具体的には、ノンス＃１の検証及びＰＣＲ＃１）、ＳＭＬ＃１の検証を順次行う（ステップＳ３１０８）。これらの検証には、サーバ公開鍵（図示せず）、ＡＩＫ証明書＃１に含まれるＡＩＫ公開鍵＃１、検証データ記憶部３２５７の記憶している正規ＰＣＲ＃１及び正規ＳＭＬ＃１が用いられる。
【０５０５】
第２のＡｔｔｅｓｔａｔｉｏｎが成功であれば、端末装置＃１は、再生制御プログラムを実行し、利用者の操作に従ってコンテンツの再生を開始する。
（２）最新検証データの取得
図４３の太線矢印は、最新の検証データ取得に関する動作を示している。以下に図４３を用いて、最新の検証データ取得処理における各機器の動作を説明する。
【０５０６】
利用者による、新たなコンテンツの購入を要求する操作をトリガとして、メモリカード＃２の制御部３２３１は、最新検証データ要求をコンテンツ提供サーバ３２０２へ送信する。この要求を受けて、コンテンツ提供サーバは、最新の検証データをメモリカード＃２へ送信する（ステップＳ３１１１）。
メモリカード＃２の制御部３２３１は、端末装置＃１の通信機能を利用して、最新検証データを受信し（ステップＳ３１１１）、自身の記憶している検証データを、受信した最新の検証データにより書き換える。
【０５０７】
続いて、自身の機器ＩＤと対応する最新の検証データ（最新の正規ＰＣＲ＃２及び最新の正規ＳＭＬ）を端末装置＃１へ出力する（ステップＳ３１１２）。
端末装置＃１の制御部は、メモリカード＃２から最新の検証データ（最新の正規ＰＣＲ＃２及び最新の正規ＳＭＬ）を受け取り（ステップＳ３１１２）、受け取った最新の検証データにより、検証データ記憶部３２８２の保持している検証データを書き換える。
【０５０８】
双方において検証データの書き換えが終了すると、メモリカード＃２は、メモリ３２３２上のＤＲＭアプリを実行して、利用者の操作に従って新たなコンテンツの購入処理を行う。
また、その後、端末装置＃３に装着されると、メモリカード＃２は、自身の機器ＩＤと対応する最新の正規ＰＣＲ値＃２と最新の正規ＳＭＬ＃２とを、端末装置＃３へ出力する（ステップＳ３１１３）。端末装置＃３は、自身の検証データ記憶部３２８３に記憶している検証データを、受け取った最新の正規ＰＣＲ値＃２と最新の正規ＳＭＬ＃２により、書き換える。
２．６  実施の形態２に関する変形例
（１）特定のＰＣＲ値の指定
実施の形態１の変形例（３）と同様に、本実施の形態のＡｔｔｅｓｔａｔｉｏｎ処理においても、検証側の機器は、ノンスとともに何れか一つ（複数でも良い）のＰＣＲ値を示す識別情報を送信し、証明側の機器は識別情報の示すＰＣＲ値のみを読み出して署名データを生成し送信する。これに合わせて、ログ情報についても、受信した識別情報のＰＣＲ値に係るログ情報のみを抽出して送信するとしてもよい。
【０５０９】
（２）複数のメモリカード
本実施の形態では１枚のメモリカード＃２が複数の端末装置に装着される場合を例に説明してきたが、逆に、１台の端末装置＃１に複数のメモリカードが装着される場合も考えられる。
この場合、端末装置＃１は、過去に装着されたメモリカードの機器ＩＤを記憶している。また、各機器ＩＤと対応する検証データ（正規ＰＣＲ値群、正規ＳＭＬ）を記憶している。検証部３２８１は、現在装着されているメモリカードを示す機器ＩＤと対応する検証データを選択し、端末装置が検証装置となるＡｔｔｅｓｔａｔｉｏｎにおいて、選択した検証データを用いる。
３．  実施の形態３
３．１  概要
本実施の形態も、実施の形態２と同様に、アプリケーションとして、再生制御プログラムを有する端末装置３３０１（証明装置）と暗号化コンテンツを保持するメモリカード３３０２（検証装置）から構成される。
【０５１０】
端末装置３３０１は、それぞれ個別の提供者から提供された２個のＴＰＭを搭載している。ここでは、一例としてデバイス製造者の提供したＴＰＭとネットワークプロバイダにより提供されたＴＰＭとを搭載している。説明の便宜上前者をＴＰＭ＃１、後者をＴＰＭ＃２と記載する。
このように1台の端末に複数の提供者からのTPMが搭載されるモデルを、ＴＣＧ規格では、マルチステークホルダーモデルと呼ぶ
各ＴＰＭは、それぞれ異なるプログラムのＰＣＲ値及びＳＭＬを管理している。
【０５１１】
メモリカード３３０２は、先ず下位層のプログラムを管理しているＴＰＭ＃１との間でＡｔｔｅｓｔａｔｉｏｎを行い、検証の結果、下位層のプログラム群の構成が正当であることが証明されると、上位層のプログラム（アプリケーション）を管理するＴＰＭ＃２との間でＡｔｔｅｓｔａｔｉｏｎを行い、上位層のプログラム構成が正当であることを確認する。
【０５１２】
また、端末装置３３０１内においても、下位のプログラム群を管理するＴＰＭ＃１が上位のプログラムを管理するＴＰＭ＃２の正当性を検証し、正当なＴＰＭであるか否かを検証し、正当であると証明されるとＴＰＭ＃１の管理するプログラム群のうち最上位のプログラムと対応するＰＣＲ値を出力し、ＴＰＭ＃２は、受け取ったＰＣＲ値を用いて、ＴＰＭ＃２の管理するプログラムのＰＣＲ値を算出する。
【０５１３】
また、検証の結果、ＴＰＭ＃２が不正であると判断すると、ＴＰＭ＃２への電力供給を停止する。
図４４は、各機器の構成及び各構成の動作を示す構成図である。図中の矢印は、各機器内及び機器間のデータフローを示している。また、図中において、各機器の構成及び各構成の保持するデータには、数字のみの参照符号を付しており、動作を示す部分には「Ｓ」で始まるステップ番号を付している。以下、図４４を用いて、各機器の構成及び、動作について説明する。
３．２  端末装置３３０１の構成
端末装置３３０１は、再生制御部３３１１、ＴＰＭ＃２（３３１２）、メモリ３３１３、ＲＴＭ３３１８、ログ記憶部３３１９、証明書記憶部３３２６、ＴＰＭ＃１（３１３４）から構成される。これらの他にも、各種のデータ及びプログラムを記憶している不揮発性の記憶部、利用者の操作を受け付ける入力部、表示部、メモリカードを装着し、各種の情報の入出力及び電力供給を行う入出力部などを備えるが、図４２では、これらを省略し、Ａｔｔｅｓｔａｔｉｏｎに関連する部分のみを記載している。
【０５１４】
（１）再生制御部３３１１
再生制御部３３１１は、ＣＰＵが、メモリ３３１３上にロードされた再生制御プログラム３３１４を実行することにより実現される機能部であって、メモリカード３３０２から、暗号化コンテンツを読み出し、読み出した暗号化コンテンツを復号、伸長して再生する。
【０５１５】
（２）ＴＰＭ＃２（３３１２）
ＴＰＭ＃２は、自身を示すＴＰＭ識別子「ＩＤ＃２」を記憶している。
また、ＴＰＭ＃２は、上位層のプログラムを示す識別情報を１以上記憶している。ＴＰＭ＃２は、記憶している識別情報の示すプログラムの、正当性を示す情報（ＰＣＲ値及びＳＭＬ）を管理する。ここでは、具体的には再生制御プログラム３３１４を示す識別情報を記憶しており、このプログラムの完全性を示す情報を生成及び管理する。
【０５１６】
また、図中の「ＥＫ＃２」は、ＴＰＭ＃２に固有のＥＫ秘密鍵を示しており、「ＡＩＫ＃２」は、ＡＩＫ秘密鍵を示しており、ＰＣＲ＃２は、ＴＰＭ＃２の記憶しているＰＣＲ値群を示す。
ＴＰＭ＃２は、ＲＴＭ３３１８から、各プログラムを示す識別情報とそのプログラムのインテグリティ値を受け取る。受け取った識別情報が、自身の管理するプログラムの識別情報と一致すれば、受け取ったインテグリティ値を用いて、ＰＣＲ値を算出し、記憶する。また、自身の記憶しているＰＣＲ＃２の履歴をログ記憶部３３１９へ書き込む。受け取った識別情報が、自身の管理するプログラムの識別情報と一致しなければ、受け取ったデータを破棄する。
【０５１７】
また、ＴＰＭ＃２（証明側）は、ＴＰＭ＃１（検証側）による正当性検証を受ける。ここでの検証方法は任意であっては、一例として、チャレンジ＆レスポンスのような所定の演算を含むものであっても良いし、ＩＤチェックや証明書チェックのような簡単な検証であってもよい。
検証の結果ＴＰＭ＃１から、正当であると認められると、ＴＰＭ＃２は、ＴＰＭ＃１の管理するプログラム群のうち、最上位のプログラムであるＯＳ３３１６と対応するＰＣＲ値を受け取る。これを受け取ると、受け取ったＰＣＲ値をＰＣＲ０として記憶する。
【０５１８】
再生制御プログラム３３１４がメモリにロードされるとき、記憶しているＰＣＲ０とＲＴＭ３３１８から受け取った、再生制御プログラム３３１４のインテグリティ値とを基に再生制御プログラムのＰＣＲ値（ＰＣＲ１）を算出して記憶する。
さらに、ＴＰＭ＃２は、メモリカード３３０２から、ＴＰＭ識別子「ＩＤ＃２」、ノンス＃２及びＡｔｔｅｓｔａｔｉｏｎ要求を受ける。これらを受け取ると、上記の実施の形態と同様に、自身が管理するプログラム群に関する正当性を証明するＡｔｔｅｓｔａｔｉｏｎ処理を行う。（詳細は、下記の動作において説明する）
Ａｔｔｅｓｔａｔｉｏｎにより、ＴＰＭ＃２の管理するプログラムの正当性が証明されると、ＴＰＭ＃２は、メモリカード３３０２から暗号化コンテンツ及び、暗号化コンテンツ鍵を受け取る。暗号化コンテンツ鍵は、ＡＩＫ＃２と対になる公開鍵（以下ＡＩＫ＃２Ｐと記載する）を用いて、コンテンツ鍵を暗号化して生成されたものである。暗号化コンテンツは、音楽データを圧縮して生成された圧縮音楽データを、コンテンツ鍵を用いて暗号化したものである。
【０５１９】
これらを受け取ると、ＴＰＭ＃２は、ＡＩＫ＃２を用いて暗号化コンテンツ鍵を復号してコンテンツ鍵を生成し、生成したコンテンツ鍵と受け取った暗号化コンテンツとを再生制御部３３１１へ出力する。
なお、暗号化コンテンツ鍵の生成に用いられる暗号鍵はＡＩＫ＃２Ｐに限定されるものではない。例えば、使い捨てのセッション鍵を用いるなど、他の鍵を用いても良い。
【０５２０】
（３）メモリ３３１３
メモリ３３１３は、主にＲＡＭから構成され、ＣＰＵにより実行される各種のプログラムを記憶している。
図４４では、一例として再生制御プログラム３３１４、ＯＳ３３１６が記憶されている。
【０５２１】
再生制御プログラム３３１４は、メモリカード３３０２に記憶されている暗号化コンテンツを復号、伸長し再生する手順を含む。
ＯＳ３３１６は、アプリケーション（ここでは、音楽再生プログラム）を呼び出す手順を含む。その他にも、利用者による操作の受け付け、メモリカードの検出など、端末装置３３０１の基本的な動作を制御する手順を含むプログラムある。ＯＳ３３１６は、ＴＰＭ＃１により、ＴＰＭ＃２が正当であると判断されると、再生制御プログラム３３１４をメモリ３３１３にロードする。
【０５２２】
（４）ＲＴＭ３３１８
ＲＴＭ３３１８は、上記の実施の形態１において説明したＲＴＭ３１０７と同様にＢＩＯＳに含まれるＣＲＴＭ及び各プログラムに含まれるＲＴＭコードをＣＰＵが実行することにより実現される機能部である。なお、その他の実施の形態１における変形例（４）で説明したように、各プログラムがＲＴＭコードを含まない構成であってもよい。
【０５２３】
ＲＴＭ３３１８は、次に、メモリ３３１３にロードされるプログラムのインテグリティ値を計測し、計測したインテグリティ値と計測対象となったプログラムを示す識別情報とを、ＴＰＭ＃１及びＴＰＭ＃２双方に出力する。
（５）ログ記憶部３３１９
ログ記憶部３３１９は、ＲＡＭなどの揮発性メモリから構成され、ＳＭＬ＃２（３３２２）及びＳＭＬ＃１（３３２３）を記憶している。
【０５２４】
ＳＭＬ＃２（３３２２）は、ＴＰＭ＃２の管理するプログラムと対応するＰＣＲ＃２の履歴情報を含む。
ＳＭＬ＃１（３３２３）は、ＴＰＭ＃１の管理するプログラム群と対応するＰＣＲ値群（以下ＰＣＲ＃１）の履歴情報を含む。
（６）証明書記憶部３３２６
証明書記憶部３３２６は、フラッシュメモリなど不揮発性のメモリにより構成され、一例として、ＥＫ証明書＃２（３３２７）、ＡＩＫ証明書＃２（３３２８）、ＥＫ証明書＃１（３３２９）及びＡＩＫ証明書＃１（３３３１）を記憶している。
【０５２５】
ＥＫ証明書＃２（３３２７）は、ＴＰＭ＃２の保持しているＥＫ＃２と対応するＥＫ公開鍵の正当性を証明する証明書である。
ＡＩＫ証明書＃２（３３２８）は、ＴＰＭ＃２の保持しているＡＩＫ＃２と対応する公開鍵（ＡＩＫ＃２Ｐ）の正当性を証明する証明書である。
ＥＫ証明書＃１（３３２９）は、ＴＰＭ＃１の保持しているＥＫ＃１と対応するＥＫ公開鍵の正当性を証明する証明書である。
【０５２６】
ＡＩＫ証明書＃１（３３３１）は、ＴＰＭ＃１の保持しているＡＩＫ＃１と対応するＡＩＫ公開鍵の正当性を証明する証明書である。
各証明書の構成については、実施の形態１において説明した通りであるので、ここでは説明を省略する。
また、これらに加えて、各ＴＰＭに対応するＰＦ証明書（具体的には、ネットワークプロバイダの証明書及び端末装置製造者の証明書）を記憶していても良い。
【０５２７】
（７）ＴＰＭ＃１（３３３４）
ＴＰＭ＃１（３３３４）は、デバイス製造者により提供されたものであり、自身を識別するＴＰＭ識別子「ＩＤ＃１」及び、ＢＩＯＳからＯＳまでの下位層のプログラム群の識別情報を記憶している。ＴＰＭ＃１は、記憶している識別情報の示す各プログラムの正当性を示す情報（ＰＣＲ値及びＳＭＬ）を管理する。
【０５２８】
また、図中の「ＥＫ＃１」は、ＴＰＭ＃１に固有のＥＫ秘密鍵を示しており、「ＡＩＫ＃１」は、ＡＩＫ秘密鍵を示しており、ＰＣＲ＃１は、ＴＰＭ＃１の記憶しているＰＣＲ値群を示す。
ＴＰＭ＃１は、ＲＴＭ３３１８からインテグリティ値とインテグリティ値の計測対象となったプログラムを示す識別情報とを受け取る。受け取った識別情報と記憶している識別情報の何れかと一致すれば、受け取ったインテグリティ値を基に識別情報の示すプログラムのＰＣＲ値を算出し、記憶する。一致しない場合は、受け取ったインテグリティ値を破棄する。
【０５２９】
また、メモリ３３１３にＯＳ３３１６がロードされ、かつ、メモリカード３３０２のブート処理が完了すると、ＴＰＭ＃１は、メモリカード３３０２から、ＴＰＭ識別子「ＩＤ＃１」、ノンス＃１及びＡｔｔｅｓｔａｔｉｏｎ要求を受け取る。これらを受け取ると、ＴＰＭ＃１は、メモリカード３３０２（検証装置）との間でＡｔｔｅｓｔａｔｉｏｎｓ処理を行う。
【０５３０】
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃１の管理するプログラム群の正当性が証明されると、ＴＰＭ＃１は、次に、ＴＰＭ＃２を検証する。検証の結果、ＴＰＭ＃２が正当であると判断すると、ＴＰＭ＃１の管理するプログラム群のうち、最上位層のプログラムであるＯＳ３３１６と対応するＰＣＲ値（ＰＣＲ（ＯＳ））をＴＰＭ＃２へ出力する。
３．３  メモリカード３３０２の構成
図４４には、メモリカード３３０２の機能的構成を示している。図４４に示すように、メモリカード３３０２は、検証部３３４１、ＤＲＭ処理部３３４２、コンテンツ記憶部３３４３及び検証データ記憶部３３４４から構成される。この他にも、端末装置３３０１との間でデータの入出力を行い電力の供給を受ける入出力部、ブートプログラムを初めとする各種のプログラムを記憶している不揮発性メモリなどを含んでいるが、ここでは、Ａｔｔｅｓｔａｔｉｏｎ処理に関連する部分のみを記載している。
【０５３１】
以下に、各機能部について説明する。
（１）検証部３３４１
検証部３３４１は、メモリカード３３０２が装着される端末装置３３０１に搭載されており下位層のプログラム群を管理するＴＰＭのＴＰＭ識別子「ＩＤ＃１」と、上位層のプログラムを管理するＴＰＭのＴＰＭ識別子「ＩＤ＃２」とを記憶している。
【０５３２】
メモリカード３３０２のブート処理が終了すると、検証部３３４１は、ノンス＃１を生成し、自身の記憶しているＩＤ＃１と生成したノンス＃１と、Ａｔｔｅｓｔａｔｉｏｎ要求とを端末装置３３０１へ出力する。これをトリガとして、端末装置３３０１内のＴＰＭ＃１との間でＡｔｔｅｓｔａｔｉｏｎ処理行う。
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃１の管理するプログラム群の構成が不正であると判断すると、検証部３３４１は、以後、メモリカード３３０２と端末装置３３０１との通信を禁止する。
【０５３３】
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃１の管理するプログラム群の構成が正当であると判断すると、検証部３３４１は、検証が成功であることを端末装置３３０１内のＴＰＭ＃１へ通知する。
前記通知の後、検証部３３４１は、ノンス＃２を生成し、記憶しているＩＤ＃２と生成したノンス＃２と、Ａｔｔｅｓｔａｔｉｏｎ要求を端末装置３３０１へ出力する。これをトリガとして、端末装置３３０１内のＴＰＭ＃２との間でＡｔｔｅｓｔａｔｉｏｎ処理を行う。
【０５３４】
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃２の管理するプログラム群の構成が不正であると判断すると、検証部３３４１は、以後、メモリカード３３０２と端末装置３３０１との通信を禁止する。  
Ａｔｔｅｓｔａｔｉｏｎの結果、ＴＰＭ＃２の管理するプログラム群の構成が正当であると判断すると、検証部３３４１は、ＴＰＭ＃２とのＡｔｔｅｓｔａｔｉｏｎにおいて受け取ったＡＩＫ証明書＃２からＡＩＫ＃２Ｐを抽出し、抽出したＡＩＫ＃２ＰとＴＰＭ＃２を示すＩＤ＃２とをＤＲＭ処理部３３４２へ出力する。
【０５３５】
（２）コンテンツ記憶部３３４３
コンテンツ記憶部３３４３は、フラッシュメモリなどの不揮発性の記憶媒体により構成され、暗号化コンテンツ及び暗号化コンテンツに対応する権利情報を記憶している。権利情報には暗号化コンテンツを復号するためのコンテンツ鍵、コンテンツの視聴が許可される期限などが含まれている。
【０５３６】
（３）ＤＲＭ処理部３３４２
ＤＲＭ処理部３３４２は、端末装置３３０１の通信機能を利用して、コンテンツプロバイダのサーバ装置との間でコンテンツ購入に関する処理を行ったり、コンテンツ記憶部３３４３に記憶されている各暗号化コンテンツの有効期限の管理を行ったりする。
また、ＤＲＭ処理部３３４２は、検証部３３４１から、コンテンツ再生に係るプログラムを管理するＴＰＭ＃２を示すＩＤ＃２と公開鍵ＡＰＩ＃２Ｐとを受け取り記憶する。
【０５３７】
ＤＲＭ処理部３３４２は、端末装置３３０１を操作する利用者によるコンテンツ視聴要求を受ける。コンテンツの視聴要求を受けると、ＤＲＭ処理部３３４２は、検証部３３４１から受け取ったＡＩＫ＃２Ｐを用いて、コンテンツ鍵を暗号化して暗号化コンテンツ鍵を生成し、生成した暗号化コンテンツ鍵と、ＩＤ＃２と、暗号化コンテンツとを、端末装置３３０１へ出力する。
【０５３８】
（４）検証データ記憶部３３４４
検証データ記憶部３３４４は、不揮発性の記憶媒体により構成され、一例として、検証データ３３４７、ＣＡ公開鍵３３５１及び検証データ３３５２とを記憶している。
ＣＡ公開鍵は、ＡＩＫ証明書＃１及びＡＩＫ証明書＃２の発行元である第三者機関の公開鍵であって、これらの証明書に含まれる署名データの生成に用いられたＣＡ秘密鍵と対になる鍵である。
【０５３９】
検証データ３３４７は、検証部３３４１と端末装置３３０１内のＴＰＭ＃２とのＡｔｔｅｓｔａｔｉｏｎに用いられる検証データである。以下、検証データ＃２と記載する。
検証データ３３５２は、検証部３３４１と端末装置３３０１内のＴＰＭ＃１とのＡｔｔｅｓｔａｔｉｏｎに用いられる検証データである。以下、検証データ＃１と記載する。
具体的に、検証データ＃１は、ノンス＃１（３３５３）と、正規ＰＣＲ＃１（３３５４）と、正規ＳＭＬ＃１（３３５６）から構成される。これらのデータについては、上記の実施の形態１、実施の形態２において説明した通りであるので詳細な説明は割愛する。
３．４  動作
以下に、端末装置３３０１の起動からコンテンツ再生に至るまでの動作について、図４４を用いて説明する。なお、メモリカード３３０２は、端末装置３３０１に装着されており、端末装置３３０１から電力が供給され、一連のブート処理を終了しているとする。
【０５４０】
メモリカード３３０２のブート処理が終了すると、検証部３３４１は、ノンス＃１を生成し（ステップＳ３１３１）、生成したノンス＃１、下位層のプログラムを管理するＴＰＭを示すＩＤ＃１を端末装置３３０１送信し、Ａｔｔｅｓｔａｔｉｏｎを要求する（ステップＳ３１３２）。送信と共に、検証部３３４１は、生成したノンス＃１を検証データ記憶部３３４４へ書き込む（ステップＳ３１３３）。
【０５４１】
端末装置３３０１のＴＰＭ＃１は、メモリカード３３０２からＩＤ＃１、ノンス＃１及びＡｔｔｅｓｔａｔｉｏｎ要求を受け取る（ステップＳ３１３２）。これらを受け取ると、ＴＰＭ＃１は、自身の保持するＡＩＫ＃１を用いて、受け取ったノンス＃１及び記憶しているＰＣＲ＃１に署名生成アルゴリズムを施して署名データ「ＡＩＫ＃１（ノンス＃１、ＰＣＲ＃１）」を生成する（ステップＳ３１３４）。
【０５４２】
次に、自身を示すＩＤ＃１と、生成した署名データと、ＡＩＫ証明書＃１と、ＳＭＬ＃１とをメモリカード３３０２へ出力する（ステップＳ３１３６）。
メモリカード３３０２の検証部３３４１は、署名データ「ＡＩＫ＃１（ノンス＃１、ＰＣＲ＃１）」と、ＡＩＫ証明書＃１と、ＳＭＬ＃１とを受け取る（ステップＳ３１３６）。これらを受け取ると、検証部３３４１は、検証データ記憶部３３４４から、ＣＡ公開鍵３３５１と検証データ＃１とを読み出し（ステップＳ３１３７）、読み出したＣＡ公開鍵３３５１と検証データ＃１とを用いて、受信したデータを検証する（ステップＳ３１３８）。具体的には、ＡＩＫ証明書＃１の検証、署名データの検証（ノンス＃１及びＰＣＲ＃１の検証）、ＳＭＬ＃１の検証を順次行う。
【０５４３】
検証の結果、ＴＰＭ＃１の管理するプログラム群の正当性が証明されると、検証部３３４１は、ＩＤ＃１と検証結果（ＯＫ）を端末装置３３０１へ出力する（ステップＳ３１３９）。
端末装置３３０１のＴＰＭ＃１は、メモリカード３３０２から、ＩＤ＃１と検証結果（ＯＫ）とを受け取る（ステップＳ３１３９）。これらを受け取ると、ＴＰＭ＃１は、ＴＰＭ＃２の正当性を検証し、正当であると判断すると、ＯＳ３３１６と対応するＰＣＲ値（以下、ＰＣＲ（ＯＳ）と記載する）をＴＰＭ＃２へ出力する（ステップＳ３１４１）。
【０５４４】
ＴＰＭ＃２は、受け取ったＰＣＲ（ＯＳ）をＰＣＲ０として記憶し、続いて、ＰＣＲ０及び再生制御プログラム３３１４のインテグリティ値から、ＰＣＲ１を算出する。
ＴＰＭ＃１のＡｔｔｅｓｔａｔｉｏｎが成功すると、メモリカード３３０２の検証部３３４１は、ノンス＃２を生成し（ステップＳ３１４４）、生成したノンス＃２と記憶しているＩＤ＃２とを端末装置３３０１へ出力し、Ａｔｔｅｓｔａｔｉｏｎを要求する（ステップＳ３１４６）。
【０５４５】
端末装置３３０１のＴＰＭ＃２は、メモリカード３３０２から、ＩＤ＃２とノンス＃２とＡｔｔｅｓｔａｔｉｏｎ要求を受け取る（ステップＳ３１４６）。これらを受け取るとＴＰＭ＃２は、ＡＩＫ＃２を用いて、受け取ったノンス＃２と保持しているＰＣＲ＃２とに署名生成アルゴリズムを施して署名データ「ＡＩＫ＃２（ノンス＃２、ＰＣＲ＃２）」を生成する（ステップＳ３１４９）。
【０５４６】
続いて、ＴＰＭ＃２は、ＩＤ＃２と、生成した署名データと、ＡＩＫ証明書＃２と、ＳＭＬ＃２とをメモリカード３３０２へ出力する（ステップＳ３１５１）。
メモリカード３３０２の検証部３３４１は、端末装置３３０１からＩＤ＃２と、署名データと、ＡＩＫ証明書＃２と、ＳＭＬ＃２とを受け取る（ステップＳ３１５１）。これらを受け取ると、検証部３３４１は、検証データ記憶部３３４４から、ＣＡ公開鍵３３５１と検証データ＃２とを読み出し（ステップＳ３１５２）、読み出したＣＡ公開鍵３３５１と検証データ＃２とを用いて受け取ったデータを検証する（ステップＳ３１５３）。具体的には、ＡＩＫ証明書＃２の検証、署名データの検証、ＳＭＬ＃２の検証を順次行う。
【０５４７】
検証が成功し、ＴＰＭ＃２の管理するプログラム群の構成が正当であると判断すると、検証部３３４１は、受け取ったＩＤ＃２と、ＡＩＫ証明書＃２に含まれるＡＩＫ＃２ＰとをＤＲＭ処理部３３４２へ出力する（ステップＳ３１５４）。
ＤＲＭ処理部３３４２は、受け取ったＩＤ＃２とＡＩＫ＃２Ｐを記憶しておく。利用者の操作によりコンテンツの再生を要求されると、ＤＲＭ処理部３３４２は、要求に対応する暗号化コンテンツ及びコンテンツ鍵をコンテンツ記憶部３３４３から読み出す（ステップＳ３１５５）。続いて、記憶しているＡＩＫ＃２Ｐを用いてコンテンツ鍵を暗号化する（ステップＳ３１５６）。次に、ＤＲＭ処理部３３４２は、記憶しているＩＤ＃２と、読み出した暗号化コンテンツと、生成した暗号化コンテンツ鍵とを端末装置３３０１へ出力する（ステップＳ３１５８）。
【０５４８】
端末装置３３０１のＴＰＭ＃２は、メモリカード３３０２からＩＤ＃２と、暗号化コンテンツと、暗号化コンテンツ鍵とを受け取る（ステップＳ３１５８）。これらを受け取ると、受け取った暗号化コンテンツをそのまま再生制御部３３１１へ出力し、次に、記憶しているＡＩＫ＃２を用いて暗号化コンテンツ鍵を復号してコンテンツ鍵を生成する（ステップＳ３１６１）。次に、ＴＰＭ＃２は、生成したコンテンツ鍵を再生制御部３３１１へ出力する（ステップＳ３１６２）。
【０５４９】
再生制御部３３１１は、ＴＰＭ＃２から、暗号化コンテンツ及びコンテンツ鍵を受け取る（ステップＳ３１６２）。これらを受け取ると、受け取ったコンテンツ鍵で暗号化コンテンツを復号してコンテンツを生成し、生成したコンテンツを再生する（ステップＳ３１６３）。復号により生成されたコンテンツが圧縮されていれば、伸長して再生する。
３．５  実施の形態３に関する変形例
（１）ＴＰＭ間の検証
上記の実施の形態では、ＴＰＭ＃１の管理するプログラム群の正当性が証明された後、ＴＰＭ＃１がＴＰＭ＃２を検証するとしたが、これは必須ではない。
【０５５０】
ＴＰＭ＃１の管理するプログラム群の正当性が証明された後、ＴＰＭ＃１はＴＰＭ＃２をアクティベイトし、ＯＳのＰＣＲ値を出力するだけでも良い。
逆に、メモリカード３３０２とのＴＰＭ＃１とのＡｔｔｅｓｔａｔｉｏｎに先立って、ＴＰＭ間で相互認証を行うとしても良い。
また、ＴＰＭ＃１が、ＴＰＭ＃２の正当性を検証する方法について、上記の実施の形態３では、詳細には言及していないが、任意の方法で検証すればよい。例えば、チャレンジ＆レスポンスのような、所定の演算により正当性を確認しても良いし、ＴＰＭ識別子をチェックするような簡易な方法でも良い。
【０５５１】
また、上記の実施の形態３では、ＴＰＭ＃１によるＴＰＭ＃２の正当性検証が失敗した場合、ＴＰＭ＃１は、ＴＰＭ＃２への電力供給を停止すると記載したが、これに限定されるものではなく、例えばＴＰＭ＃２の起動を停止してもよいし、ＴＰＭ＃２の機能を制限するとしてもよい。
（２）ＴＰＭ＃２が独立して動作 
上記の実施の形態３では、ＴＰＭ＃２は、ＴＰＭ＃１からＯＳ３３１６と対応するＰＣＲ（ＯＳ）を受け取り、これをＰＣＲ０として記憶し、ＰＣＲ０と再生制御プログラム３３１４のインテグリティ値とから再生制御プログラム３３１４のＰＣＲ値（ＰＣＲ１）を算出しているがこの構成に限るものではない。
【０５５２】
一例として、ＴＰＭ＃２内の不揮発性のメモリに所定の初期値ＰＣＲ０を記憶しておき、これを用いてＰＣＲ１を算出しても良い。このように、ＴＰＭ＃２は、ＴＰＭ＃１とは独立に動作する構成でも良い。
このようにＴＰＭ＃２が、独自にＰＣＲ値を算出する場合、ＴＰＭ間の検証方法は、ＴＰＭ＃１が検証装置、ＴＰＭ＃２が証明装置となって、Ａｔｔｅｓｔａｔｉｏｎを行っても良い。
【０５５３】
（３）ＴＰＭ＃２のソフトウェア実装
上記の実施の形態３では、端末装置３３０１は、ハードウェアであるＴＰＭ＃２を搭載しているとして説明してきた。しかし、ＴＰＭ＃２の機能の一部又は全部をソフトウェアにより実現しても良い。
この場合、ＴＰＭ＃１は、メモリカード３３０２とのＡｔｔｅｓｔａｔｉｏｎが成功すると、ＴＰＭ＃２の機能を担うハードウェア部分及びソフトウェア部分をそれぞれ検証する。具体的な検証方法は任意である。一例として、ＴＰＭ＃１は、予めソフトウェア部分の検証データ（ハッシュ値など）を保持しておき、メモリにロードされる前にソフトウェア部分の証明データ（ハッシュ値など）を算出し、両者を比較することで、ソフトウェア部分の正当性を検証する。
【０５５４】
また、ＴＰＭ＃２のハードウェア部分の検証については、上記のＴＰＭ＃２の検証と同様にＩＤの確認、チャレンジ＆レスポンスなどにより正当性を検証する。
（４）検証失敗後の動作
上記の実施の形態３では、Ａｔｔｅｓｔａｔｉｏｎにより、端末装置３３０１の構成が不正であると判断されると、メモリカード３３０２内の検証部３３４１は、端末装置３３０１との通信を禁止するとしているが、このような構成に限定されるものではない。
【０５５５】
例えば、メモリカードが端末装置に提供する機能、データを制限するとしても良い。
また、端末装置３３０１は、自身の備えるプログラムを更新する更新制御部を備えていても良い。
この場合、端末装置３３０１の構成が不正であると判断されると更新制御部は、外部サーバ（端末製造者のサーバ、ネットワークプロバイダのサーバ、コンテンツプロバイダのサーバ）から、更新プログラムをダウンロードし、ダウンロードした更新プログラムにより、各プログラムを最新バージョンに書き換えた後、端末装置３３０１を再起動するとしてもよい。
【０５５６】
（５）端末装置の構成通知
本実施の形態では、メモリカード３３０２は、予め、端末装置３３０１に２つのＴＰＭが搭載されていることを知っており、各ＴＰＭに対応する検証データを保持しているとしたが、端末装置に装着された時点で、端末装置の内部構成を示す構成情報を取得してもよい。構成情報には、端末装置の搭載するＴＰＭの数及び、ＴＰＭ識別子、さらに、複数のＴＰＭを搭載する場合は、各ＴＰＭの管理するプログラムの上下関係を示す階層情報（上記実施の形態ではＴＰＭ＃１が下位層のプログラム群、ＴＰＭ＃２が上位層のプログラム群と対応している）が含まれる。
【０５５７】
この場合、メモリカード３３０２は、さらに、検証データ＃３を記憶している。検証データ＃３は、ＴＰＭを１個のみ搭載している端末装置とのＡｔｔｅｓｔａｔｉｏｎに用いられる正規ＰＣＲ＃３及び正規ＳＭＬ＃３を含む。
メモリカード３３０２の検証部３３４１は、取得した構成情報により検証の手順を選択する。端末装置に２個のＴＰＭが搭載されている場合には、上記の実施の形態３と同様に、下位層プログラム群を管理するＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行った後、上位層のプログラム群を管理するＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行う。
【０５５８】
端末装置が１個のＴＰＭを搭載している場合には、検証部３３４１は、検証データ＃３を用いて、端末装置の構成の正当性を検証する。
４．  実施の形態４
４．１  概要
端末装置に記憶されているプログラムを更新する必要が生じたとき、更新プログラムを、メモリカードを介して配布する場合がある。
【０５５９】
ここでは、端末装置内のプログラムのうちキャリア３３７３（通信事業者）が提供しているプログラムを更新するための更新プログラムを、メモリカードを介して配布する。端末装置には、コンピュータにより動作の一部又は全部を制御される様々な機器が該当するが、例えば、携帯電話、コンテンツ再生装置、ゲーム機などが該当する。
端末装置３３７１は、上記の実施の形態１と同様にＴＰＭを搭載しており、起動してからメモリにロードされる各プログラムの完全性及びプログラム構成の正当性を示すＰＣＲ値群及びＳＭＬ（ＰＣＲ値群の履歴を含む）を生成し記録する。また、端末装置３３７１は、キャリアにより提供されたプログラム（キャリア提供プログラム）を記憶している。
【０５６０】
キャリア３３７３は、メモリカード３３７２に更新プログラムと、メモリカードが正当なキャリアから配布されたことを証明するキャリア証明書とを記録したメモリカードを配布する場合を想定して説明する。
メモリカード３３７２（検証装置）は、端末装置３３７１（証明装置）に装着されると、端末装置３３７１との間でＡｔｔｅｓｔａｔｉｏｎを行い、端末装置３３７１の構成の正当性を検証する。端末装置３３７１の構成が正当であることが証明されると、メモリカード３３７２は、記憶しているデータを端末装置３３７１へ出力する。
【０５６１】
端末装置３３７１は、メモリカード３３７２から出力された更新プログラムによる更新を行う前に、キャリア証明書の検証を行い、自身に装着されているメモリカード３３７２が正当なキャリア３３７３から配布されたメモリカードであることを確認する。
４．２  メモリカード３３７２の構成
メモリカード３３７２は、上記の実施の形態と同様に、入出力部、制御部、メモリ、検証部、検証データ記憶部など各機能部により動作するが、これらは、上記の実施の形態と同様であるので、ここでは、具体的な構成の説明は省略し、メモリカード３３７２の保持するデータについて説明する。
【０５６２】
（１）更新プログラム３３７６
更新プログラム３３７６は、端末装置３３７１の保持するキャリア提供プログラム３３８４の一部又は全部を書き換える手順や書き換える内容を含む。更新プログラム３３７６は、端末装置３３７１内の更新制御部３３８２により解読され実行される。
（２）キャリア証明書３３７７
キャリア証明書３３７７は、メモリカード３３７２が正当なキャリア３３７３により配布されたことを示す証明書であって、更新プログラム３３７６をハッシュ関数に代入して生成された更新プログラムハッシュ値３３７８と、キャリア３３７３の秘密鍵（以下、キャリア秘密鍵と呼ぶ）を用いて、少なくとも更新プログラムハッシュ値３３７８に署名生成アルゴリズムを施して生成された署名データ３３７９とを含む。これら以外にも、発行元であるキャリア３３７３を示す識別情報、証明書の形式を示す形式情報、署名生成アルゴリズムを示す情報などを含んでいる。
４．３  端末装置３３７１
端末装置３３７１についても、メモリカードと同様に、各機能部を備え、それらが動作することにより各機能を実現するが、ここでは、本実施の形態に特に関係のある構成及びデータのみを記載し、その他の構成及びデータの記載は省略する。
【０５６３】
端末装置３３７１は、キャリア３３７３により提供されたキャリア提供ＴＰＭ３３８１を搭載している。また、キャリア３３７３により提供されたキャリア提供プログラム３３８４、キャリア秘密鍵と対になるキャリア公開鍵３３８６を記憶している。また、プログラムの更新を実行する更新制御部３３２８を備える。
以下に、端末装置３３７１の備える構成及びデータについて説明する。
【０５６４】
（１）キャリア公開鍵３３８６
キャリア公開鍵３３８６は、キャリア秘密鍵と対なる公開鍵であって、製造時に、端末装置３３７１に書き込まれる。又は、出荷後にネットワーク、メモリカードなどを介して安全に取得しても良い。
キャリア秘密鍵とキャリア公開鍵３３８６の鍵ペアは、ＲＳＡ暗号に対応している。
【０５６５】
（２）キャリア提供プログラム３３８４
キャリア提供プログラム３３８４は、キャリア３３７３により提供されるプログラムであって、端末装置３３７１は、このプログラムを実行することで、キャリア３３７３の提供する所定のサービスを利用することができる。  
（３）キャリア提供ＴＰＭ３３８１
キャリア提供ＴＰＭ３３８１は、キャリア３３７３により提供されたＴＰＭであって、少なくともキャリア提供プログラム３３８４と対応するＰＣＲ値及びＳＭＬを生成し、記録する機能を備える。
【０５６６】
また、更新制御部３３８２からキャリア証明書を受け取り、キャリア証明書の検証を依頼される。この依頼を受けると、キャリア提供ＴＰＭ３３８１は、キャリア公開鍵３３８６を読み出し、読み出したキャリア公開鍵３３８６を用いて、キャリア証明書に含まれる署名データの検証を行い、検証結果を更新制御部３３８２に通知する。
（４）更新制御部３３８２
更新制御部３３８２は、キャリア提供ＴＰＭ３３８１とメモリカード３３７２によるＡｔｔｅｓｔａｔｉｏｎが成功すると、メモリカード３３７２から更新プログラム３３７６とキャリア証明書３３７７を読み出す。
【０５６７】
これらを読み出すと、読み出したキャリア証明書をキャリア提供ＴＰＭ３３８１へ出力し、キャリア証明書の検証を依頼する。
続いて、キャリア提供ＴＰＭ３３８１からキャリア証明書の検証結果を通知される。検証の失敗を示す検証結果を通知された場合、読み出した更新プログラム及びキャリア証明書を削除し、プログラムの更新を中止する。
【０５６８】
検証の成功を示す検証結果を通知された場合、更新制御部３３８２は続いて、読み出した更新プログラムのハッシュ値を算出し、算出したハッシュ値とキャリア証明書に含まれる更新プログラムハッシュ値３３７８とを比較する。
両者が一致する場合、更新制御部３３８２は、読み出した更新プログラムに従って、キャリア提供プログラム３３８４の一部又は全部を書き換える。
【０５６９】
両者が一致しない場合、読み出した更新プログラムが不正に改竄されている可能性があるので、更新制御部３３８２は更新を中止し、読み出した更新プログラム３３７６及びキャリア証明書を削除する。
４．４  動作
以下に、図４５を用いて、端末装置３３７１によるプログラム更新の動作を、順を追って説明する。なお、ここでは、メモリカード３３７２は、正当なキャリアから発行され、端末装置３３７１に装着されるまでに、記録しているデータに不正な改竄をされていないものとして説明する。
【０５７０】
メモリカード３３７２が端末装置３３７１に装着されると、端末装置３３７１内のキャリア提供ＴＰＭ３３８１とメモリカード３３７２（検証装置）はＡｔｔｅｓｔａｔｉｏｎを行う（ステップＳ３１８１）。
Ａｔｔｅｓｔａｔｉｏｎが正常に終了すると、更新制御部３３８２は、メモリカード３３７２は、更新プログラム３３７６及びキャリア証明書３３７７を読み出す（ステップＳ３１８２）。
【０５７１】
次に、更新制御部３３８２は、読み出したキャリア証明書をキャリア提供端末へ出力して、検証を依頼する（ステップＳ３１８４）。
キャリア提供ＴＰＭ３３８１は、更新制御部３３８２の依頼を受けると（ステップＳ３１８４）、キャリア公開鍵３３８６を読み出し（ステップＳ３１８６）、読み出した、キャリア公開鍵３３８６を用いてキャリア証明書に含まれる署名データを検証する（ステップＳ３１８７）。
【０５７２】
続いて、キャリア提供ＴＰＭ３３８１は、更新制御部３３８２へ検証が成功である旨を通知する（ステップＳ３１８８）。
更新制御部３３８２は、キャリア証明書の検証が成功した旨の通知を受け（ステップＳ３１８８）、続いて、読み出した更新プログラムハッシュ値を算出する。算出したハッシュ値とキャリア証明書に含まれるハッシュ値とが一致することを確認した後、更新プログラムに従ってキャリア提供プログラム３３８４を更新する（ステップＳ３１８２）。
４．５  実施の形態４に関する変形例
（１）コンテンツ再生に関するＴＰＭ
本変形例では、端末装置３３９１は、上記の実施の形態４において説明した端末装置３３７１と同様に、少なくともキャリア提供プログラムを管理するＴＰＭを搭載しており、キャリア３３７３により発行されたメモリカード３３７２を介してキャリア提供プログラム３３８４を更新する。
【０５７３】
これに加えて、図４６に示すように、端末装置３３９１はコンテンツプロバイダ（以下ＣＰと記載）３４００により提供されたＣＰ提供再生制御プログラム３３９３を記憶しており、少なくともＣＰ提供再生制御プログラム３３９３の正当性を証明するＰＣＲ値及びＳＭＬを生成、記録するＣＰ提供ＴＰＭ３３９６を搭載している。また、端末装置３３９１にコンテンツカード３３９２が装着されると、所定の検証の後、端末装置３３９１はコンテンツの再生を行う。
【０５７４】
端末装置３３９１にメモリカード３３７２が装着された場合の動作は、上記の実施の形態４と同様であるので説明を省略する。
正当なコンテンツプロバイダ３４００により発行されたコンテンツカード３３９２には、暗号化コンテンツ３４０１と暗号化コンテンツ３４０１を復号するための復号鍵３４０２とＣＰ証明書３４０３が記録されている。ＣＰ証明書３４０３は、少なくとも所定の情報と、ＣＰ秘密鍵を用いて前記所定の情報に署名を施して生成された署名データが含まれる。所定の情報とは、一例として、コンテンツプロバイダ３４００を示す識別情報、復号鍵３４０２のハッシュ値などが考えられる。
【０５７５】
端末装置３３９１は、ＣＰにより提供され、コンテンツの復号及び再生の手順を含むＣＰ提供再生制御プログラム３３９３と、ＣＰ公開鍵３３９４が記憶されている。ＣＰ公開鍵はＣＰ秘密鍵と対になる鍵である。
以下、端末装置にコンテンツカード３３９２が装着された場合の動作について説明する。
【０５７６】
コンテンツカード３３９２が装着されると、端末装置３３９１内のＣＰ提供ＴＰＭ３３９６とコンテンツカード３３９２（検証装置）の間でＡｔｔｅｓｔａｔｉｏｎが行われる（ステップＳ３１９１）。Ａｔｔｅｓｔａｔｉｏｎの結果、ＣＰ提供ＴＰＭ３３９６の管理するプログラム群の構成が正当であることが証明されると、ＣＰ提供再生制御プログラム３３９３は（より正確には、ＣＰＵによりＣＰ提供再生制御プログラム３３９３が実行されることで実現される再生制御部）は、コンテンツカード３３９２から、暗号化コンテンツ３４０１、復号鍵３４０２及びＣＰ証明書３４０３を読み出す（ステップＳ３１９２）。これらを読み出すと、ＣＰ提供再生制御プログラム３３９３は、読み出したＣＰ証明書をＣＰ提供ＴＰＭへ出力し、ＣＰ証明書の検証を依頼する（ステップＳ３１９５）。
【０５７７】
ＣＰ提供ＴＰＭ３３９６は、この依頼を受けると、ＣＰ公開鍵を読み出し（ステップＳ）３１９４）、読み出したＣＰ公開鍵を用いてＣＰ証明書に含まれる署名データの検証を行う（ステップＳ３１９５）。続いて、検証の結果をＣＰ提供再生制御プログラムへ通知する（ステップＳ３１９６）。
ＣＰ提供再生制御プログラム３３９３は、ＣＰ証明書が正当である旨の通知を受けると、読み出した復号鍵で暗号化コンテンツを復号し、再生する（ステップＳ３１９７）。
【０５７８】
（２）他者の提供したＴＰＭの検証
上記の変形例（１）において、メモリカード及びコンテンツカードは、それぞれ、キャリア提供ＴＰＭ、ＣＰ提供ＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行っているが、例えば、ＣＰにより発行されたコンテンツカード３３９２（検証装置）はキャリア提供ＴＰＭ３３８１ともＡｔｔｅｓｔａｔｉｏｎを行い、メモリカード３３７２（検証装置）は、ＣＰ提供ＴＰＭ３３９６ともＡｔｔｅｓｔａｔｉｏｎを行う構成であっても良い。
【０５７９】
また、実施の形態３のように、いずれのカードを装着した場合も、先ず、下位層のプログラムを管理するＴＰＭとＡｔｔｅｓｔａｔｉｏｎを行い、Ａｔｔｅｓｔａｔｉｏｎが成功すると、下位層のプログラムを管理するＴＰＭがもう一方のＴＰＭをアクティベイトし、その後、起動されたＴＰＭ（上位層のプログラム群を管理する）とＡｔｔｅｓｔａｔｉｏｎを行いってもよい。
【０５８０】
（３）ＳＩＭカード
実施の形態４において、端末装置はメモリカードに代えてＳＩＭ（Ｓｕｂｓｃｒｉｂｅｒ  Ｉｄｅｎｔｉｔｙ  Ｍｏｄｕｌｅ  Ｃａｒｄ）カードを検証装置としてＡｔｔｅｓｔａｔｉｏｎを行い、正当性が証明されるとＳＩＭカード内の情報を取得できる構成であっても良い。図４７は、ＳＩＭカード３４１１の保持する情報、端末装置３４１６（この場合、携帯電話が該当する）の構成及び動作を示している。ここでは、端末装置には、例えば、携帯電話が該当する。
【０５８１】
ＳＩＭカード３４１１にはキャリア証明書３４１２とキャリア固有鍵３４１３を記憶している。ＳＩＭカード３４１１には、これらの他に、契約者情報などが記録されている。
キャリア証明書３４１２には、少なくとも、キャリアを識別する識別情報及び、キャリア秘密鍵を用いて、少なくとも前記キャリア識別情報に署名生成アルゴリズムを施して生成された署名データが含まれている。
【０５８２】
端末装置３４１６はキャリア提供ＴＰＭ３４１７を搭載しており、暗号化プログラム３４１８及びキャリア公開鍵３４１９を記憶している。
キャリア提供ＴＰＭ３４１７は、共通鍵暗号（例えばＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ））エンジンを搭載している。
暗号化プログラム３４１８は、所定のサービスを提供するプログラムをキャリア固有鍵で暗号化して生成されたものである。
【０５８３】
キャリア公開鍵３４１９はキャリア秘密鍵と対なる公開鍵であって、これらの鍵ペアは、ＲＳＡ暗号に対応している。
以下、端末装置３４１６の動作を簡単に説明する。
先ず、キャリア提供ＴＰＭ３４１７（証明装置）とＳＩＭカード３４１１（検証装置）間でＡｔｔｅｓｔａｔｉｏｎを行い、端末装置３４１６内でメモリにロードされたプログラム群の構成の正当性を検証する（ステップＳ３２０１）。Ａｔｔｅｓｔａｔｉｏｎが、正常に終了すると、キャリア提供ＴＰＭ３４１７は、ＳＩＭカード３４１１からキャリア証明書３４１２を読み出す（ステップＳ３２０２）。次に、キャリア公開鍵３４１９を読み出し（ステップＳ３２０４）、読み出したキャリア公開鍵を用いてキャリア証明書に含まれる署名データの検証を行う（ステップＳ３２０６）。検証が成功であれば、キャリア提供ＴＰＭ３４１７は、ＳＩＭカード３４１１から、キャリア固有鍵３４１３を読み出す（ステップＳ３２０７）。次に、自身の備える共通鍵暗号エンジンにより、読み出したキャリア固有鍵を用いて暗号化プログラム３４１８を復号する（ステップＳ３２０８）。
【０５８４】
（４）端末固有鍵
上記変形例（３）において、ＳＩＭカードには、キャリア固有鍵が記憶されているとしたが、これに代えて、端末固有鍵を記憶している構成であっても良い。
この場合、端末装置の記憶している暗号化プログラムは、プログラムを前記端末固有鍵により暗号化して生成されたものであって、前記端末装置だけが暗号化プログラムを復号して、前記プログラムを利用することができる。
５．  実施の形態５
５．１  概要
本実施の形態では、端末装置３４３１は、Ａｔｔｅｓｔａｔｉｏｎの検証装置の機能を内部に備える。検証データには、署名が施され改竄されたとしても、容易に改竄の検出をすることができるようになっている。
【０５８５】
端末装置３４３１内の検証部３４３８は、先ず、検証データに改竄がないことを確認し、続いて、内部のＴＰＭ（証明者）とＡｔｔｅｓｔａｔｉｏｎを行い、端末内の構成が正当であるか否かを検証する。
５．２  構成
図４８は、端末装置３４３１の機能的構成を示すブロック図である。端末装置３４３１は、図示していない各種の機能部を備えるが、ここでは、Ａｔｔｅｓｔａｔｉｏｎに関連のある部分のみを記載している。
【０５８６】
以下に各構成について説明する。
（１）メモリ３４３２
メモリ３４３２は、ＲＡＭ及びＲＯＭから構成され、一例として、図４８に示すようにＢＩＯＳ、ＯＳ、アプリケーションが記憶されている。これらのプログラムには、実施の形態１において説明したようにＣＲＴＭコード又はＲＴＭコードを含んでいるとしても良いし、実施の形態１の変形例（４）のように、各プログラムとは個別に、ＲＴＭプログラムが存在する構成でも良い。
【０５８７】
また、ＢＩＯＳには、ＯＳをロードする手順が含まれており、ＯＳにはアプリケーションをロードする手順が含まれている。
（２）ＴＰＭ３４３３
ＴＰＭ３４３３は、実施の形態１と同様に、ＲＴＭ３４３７からインテグリティ値を受け取り、各プログラムに対応するＰＣＲ値を算出し、ＰＣＲ記憶部３４３６に記憶している。また、いずれかのＰＣＲ値が変わるたびに、ＰＣＲ値の履歴を不揮発メモリ３４３９に書き込み、ＳＭＬ３４４３を生成する。なお、本実施の形態の場合、ＡＩＫ鍵ペアの生成及びＡＩＫ証明書の取得は必須ではなく、検証部３４３８による検証においては、ＰＣＲ値群をそのまま出力するが、実施の形態１と同様に、ＡＩＫ証明書を取得し、ＡＩＫ秘密鍵を用いて署名を施したＰＣＲ値群を出力しても良い。
【０５８８】
（３）不揮発メモリ３４３９
不揮発メモリ３４３９は、具体的にはハードディスクユニット、フラッシュメモリ、ＲＯＭなどで構成され、図４８に示すようにＥＫ証明書３４４１、ＰＦ証明書３４４２、ＳＭＬ３４４３、検証用公開鍵３４４６、正規ＰＣＲ証明書群３４４５、正規ＳＭＬ証明書３４５１を記憶している。
【０５８９】
ＥＫ証明書３４４１、ＰＦ証明書３４４２、ＳＭＬ３４４３は、上記の実施の形態において説明したとおりであるので、ここでは説明を省略する。
検証用公開鍵３４４６、正規ＰＣＲ証明書群３４４５、正規ＳＭＬ証明書３４５１は、端末装置３４３１の製造過程において、不揮発メモリ３４３９の、書き換え不可領域に書き込まれる。
【０５９０】
検証用公開鍵３４４６は、ＲＳＡ暗号に対応した公開鍵であって、検証用秘密鍵（後述する）と対になる鍵である。検証用秘密鍵と検証用公開鍵の鍵ペアは、一例としてＲＳＡ暗号に対応している。
正規ＰＣＲ証明書群３４４５は、複数の正規ＰＣＲ証明書３４４７、３４４８、３４４９・・・から構成される、各正規ＰＣＲ証明書は、少なくとも、端末装置３４３１に記憶されている各プログラムの識別情報と、そのプログラムが正当である場合に算出されるべきＰＣＲ値とそのＰＣＲ値に、検証用秘密鍵を用いて署名生成アルゴリズムを施して生成された署名データとを含む。
【０５９１】
例えば、正規ＰＣＲ証明書３４４７は、ＢＩＯＳと対応しており、ＢＩＯＳを示す識別情報と、正当なＢＩＯＳコードに基づいて算出されるべき正規ＰＣＲ値（正規ＰＣＲ１）と、検証用秘密鍵を用いて正規ＰＣＲ１に署名生成アルゴリズムを施して生成された署名データとを含んでいる。
正規ＳＭＬ証明書３４５１は、上記の実施の形態において説明した正規ＳＭＬと、検証用秘密鍵を用いて、正規ＳＭＬに署名生成アルゴリズムを施して生成された署名データとを含んでいる。
【０５９２】
（４）検証部３４３８
検証部３４３８は、端末装置３４３１が起動すると、不揮発メモリ３４３９から検証用公開鍵３４４６と正規ＰＣＲ証明書群３４４５と正規ＳＭＬ証明書３４５１を読み出し、読み出した検証用公開鍵３４４６を用いて各証明書に含まれる署名データを検証する。何れか一つでも、検証に失敗した場合、端末装置３４３１の動作を停止させる。
【０５９３】
各証明書の検証が正常に終了すると、ＴＰＭ３４３３内のＰＣＲ記憶部３４３６からＰＣＲ値群を読み出し、読み出したＰＣＲ値群を構成する各ＰＣＲと、各正規ＰＣＲ証明書に含まれる正規ＰＣＲ値とが一致することを確認する。何れか一組でも、ＰＣＲ値と正規ＰＣＲ値とが一致しなければ、端末装置３４３１の動作を停止させる。
全てのＰＣＲ値につて、読み出したＰＣＲ値と正規ＰＣＲ値とが一致すると、検証部３４３８は、不揮発メモリ３４３９からＳＭＬ３４４３を読み出し、読み出したＳＭＬと正規ＳＭＬ証明書３４５１に含まれる正規ＳＭＬとを比較する。両者が一致しない場合は、端末装置３４３１の動作を停止させる。
【０５９４】
両者が一致すれば、検証部３４３８は、検証の処理を終了する。
なお、確実な検証を行うために、検証部３４４８は、メモリ３４３２にロードされるプログラム群及びＣＰＵとは、独立であることが望ましい。従って、ハードウェアとして実装されるか、書き換え不可のセキュア領域に記憶されるプログラムにより実現される、もしくは、耐タンパ実装されていることにより実現される。
【０５９５】
また、検証が失敗した場合、端末装置３４５１の動作を停止させると記載しているが、これに限るものではなく、例えば、所定の動作を制限して動作を継続しても良いし、外部機器又はメモリカードから更新用プログラム及び、最新の正規ＰＣＲ証明書群と正規ＳＭＬ証明書を取得しても良い。
５．３  実施の形態５の変形例
（１）階層ごとのＴＰＭ
上記の実施の形態５において、端末装置３４３１は、１個のＴＰＭを搭載しており、検証部３４３８は、このＴＰＭにより算出される各プログラムと対応するＰＣＲ値を検証していたが、プログラムの階層ごとにＴＰＭ及び検証部を備える構成であっても良い。
【０５９６】
図４９は、この変形例における端末装置３５００の構成を示している。端末装置３５００これらの他にも、ハードディスクユニット、通信部、入出力部、ＣＰＵなどを含んで構成されるが、図４９では、端末装置３５００の構成の検証に関連する部分のみを記載している。また、図中の矢印は、各構成間のデータフローを示している。
図４９に示すように、端末装置３５００は、メモリ３５０１、ＴＰＭ３５１１、３５１３、３５１６、ＲＴＭ３５２１、３５２３、３５２６、検証部３５２２、３５２４、３５２７及びセキュアメモリ３５３１を含んで構成される。
【０５９７】
ＴＰＭ３５１１とＲＴＭ３５２１と検証部３５２２は、アプリケーション３５０２と対応しており、ＴＰＭ３５１３とＲＴＭ３５２３と検証部３５２４は、ＯＳ３５０３と対応しており、ＴＰＭ３５１６とＲＴＭ３５２６と検証部３５２７は、ＢＩＯＳ３５０４と対応している。
以下に、各構成について説明するが上記の実施の形態と重複する説明は省略し、本変形例に特有の部分を中心に説明する。
【０５９８】
（１−１）メモリ３５０１
メモリ３５０１は、ＲＡＭ、ＲＯＭから構成され、ＣＰＵが実行するプログラムを記憶する。メモリ３５０１には、ＢＩＯＳ３５０４、ＯＳ３５０３、アプリケーション３５０２の順にロードされ、各プログラムには上位のプログラムをメモリ３５０１にロードする手順が含まれる。
【０５９９】
（１−２）セキュアメモリ３５３１
セキュアメモリ３５３１は、書き込み及び消去不可のメモリであって、検証用公開鍵３５３２、正規ＰＣＲ証明書３５３３、３５３４及び３５３６を記憶している。これらの構成は、前述の実施の形態５と同様であるので説明を省略する。
正規ＰＣＲ証明書３５３６、３５３４、３５３３はそれぞれ、階層の異なるプログラム、ＢＩＯＳ３５０４、ＯＳ３５０３、アプリケーション３５０２と対応している。
【０６００】
（１−３）ＲＴＭ３５２６、３５２３及び３５２１
ＲＴＭ３５２６は、ＢＩＯＳ３５０４に含まれるＣＲＴＭコードをＣＰＵが実行することにより実現される機能部であって、ＢＩＯＳ自身のインテグリティ値及びＢＩＯＳの呼び出すプログラム（ＯＳ）のインテグリティ値を算出する。
ＲＴＭ３５２３及び３５２１は、それぞれ、ＯＳ３５０３及びアプリケーション３５０２に含まれるＲＴＭコードをＣＰＵが実行することにより実現する機能部であって、それぞれ、対応するプログラムが呼び出そうとするプログラムのインテグリティ値を計測する機能を備える。
【０６０１】
（１−４）検証部３５２７、３５２４、３５２２
３つの検証部はそれぞれ、対応するＴＰＭによって算出されたＰＣＲ値の正当性を検証する。検証の手順は、実施の形態５と同様に、セキュアメモリ３５３１から検証用公開鍵３５３２と正規ＰＣＲ証明書（ここでは、各検証部と対応する正規ＰＣＲ証明書のみ）とを読み出し、読み出した正規ＰＣＲ証明書の検証、続いて、対応するＴＰＭの保持するＰＣＲ値と読み出した正規ＰＣＲ証明書に含まれる正規ＰＣＲ値とを比較する。一致しなければ、端末装置３５００の動作を停止させる。又は、対応するプログラムによる次のプログラムのロードを中止するとしてもよい。
【０６０２】
対応するＴＰＭの保持するＰＣＲ値と読み出した正規ＰＣＲ証明書に含まれる正規ＰＣＲ値とが一致すれば、検証部は、対応するＲＴＭに、対応するプログラムがロードしようとしているプログラムのインテグリティ値の計測を指示する。これと同時に、対応するＴＰＭへ記憶しているＰＣＲ値を上位のＴＰＭへ出力するように指示する。
（１−５）ＴＰＭ３５１６、３５１３、３５１１
各ＴＰＭは、対応するプログラムのＰＣＲ値を算出し、記憶する機能を有する。また、対応する検証部の指示に従って記憶しているＰＣＲ値を上位のＴＰＭへ出力する。
【０６０３】
（１−６）動作
ＢＩＯＳ３５０４から順にアプリケーション３５０２がメモリ３５０１にロードされるまでの、端末装置３５００内の各部の処理を、順を追って説明する。
電源がＯＮになると先ずＢＩＯＳに含まれるＣＲＴＭコードが実行されることで実現される機能部であるＲＴＭ３５２６により、ＢＩＯＳ３５０４内のＣＲＴＭコードのインテグリティ値が算出され、これを基に、ＴＰＭは、ＰＣＲ０を算出する。続いて、ＲＴＭ３５２６は、ＢＩＯＳ３５０４のインテグリティ値を計測し、ＴＰＭ３５１６は、計測されたインテグリティ値とＰＣＲ０とを基に、ＢＩＯＳと対応するＰＣＲ値３５１７（ＰＣＲ１）を算出し、記憶する。ＰＣＲ１が算出されるとＢＩＯＳ３５０４がメモリ３５０１にロードされ、実行される。
【０６０４】
また、検証部３５２７は、検証用公開鍵３５３２と正規ＰＣＲ証明書（ＢＩＯＳ用）３５３６をセキュアメモリ３５３１から読み出し、正規ＰＣＲ証明書（ＢＩＯＳ用）３５３６を検証し、続いて、正規ＰＣＲ証明書３５３６に含まれる正規ＰＣＲ値とＰＣＲ１を比較する。両者が一致すると、検証部３５２７は、ＲＴＭ３５２６へ次にロードされるプログラム（ＯＳ３５０３）のインテグリティ値の計測を指示し、ＴＰＭ３５１６へＰＣＲ１の出力を指示する。
【０６０５】
ＲＴＭ３５２６は、ＯＳ３５０３のインテグリティ値Ｉｎ（ＯＳ）を計測して、上位のＴＰＭ３５１３へ出力する。また、ＴＰＭ３５１６は、上位のＴＰＭ３５１３へ、記憶しているＰＣＲ１を出力する。
ＴＰＭ３５１３は、ＲＴＭ３５２６からＯＳ３５０３のインテグリティ値Ｉｎ（ＯＳ）を受け取り、ＴＰＭ３５１６からＰＣＲ１を受け取る。これらを受け取ると、受け取ったＩｎ（ＯＳ）とＰＣＲ１からＰＣＲ２を算出し、記憶する。
【０６０６】
ＰＣＲ２が算出されると、ＢＩＯＳ３５０４はＯＳ３５０３をメモリ３５０１へロードする。また、検証部３５２４は、セキュアメモリ３５３１から、検証用公開鍵３５３２と正規ＰＣＲ証明書（ＯＳ用）３５３４を読み出し、正規ＰＣＲ証明書（ＯＳ用）３５３４の検証、ＰＣＲ２の検証を順次行う。
ＰＣＲ２が正規ＰＣＲ証明書（ＯＳ用）３５３４に含まれる正規ＰＣＲ値と一致すると判断すると、検証部３５２４は、ＲＴＭ３５２３へＯＳ３５０３がロードしようとしているプログラム（アプリケーション３５０２）のインテグリティ値Ｉｎ（アプリ）の算出を指示し、ＴＰＭ３５１３へ、ＰＣＲ２を上位のＴＰＭ３５１１へ出力するように指示する。
【０６０７】
検証部３５２４の指示に従って、ＲＴＭ３５２３はアプリケーションのインテグリティ値Ｉｎ（アプリ）を算出し、ＴＰＭ３５１１へ出力する。同様に、ＴＰＭ３５１３は、記憶しているＰＣＲ２をＴＰＭ３５１１へ出力する。
ＴＰＭ３５１１は、ＲＴＭ３５２３からＩｎ（アプリ）を受け取り、ＴＰＭ３５１３からＰＣＲ２を受け取る。これらを受け取ると、ＴＰＭ３５１１は、アプリケーション３５０２と対応するＰＣＲ値３５１２（ＰＣＲ３）を算出する。
【０６０８】
ＰＣＲ３が算出されると、ＯＳ３５０３は、アプリケーション３５０２をメモリ３５０１にロードする。
（２）上位層の検証
上記の変形例（１）では、各検証部は、自身と対応するプログラムの構成が正当であるか否かを検証し、正当であることが証明されると、上位層のＴＰＭへ、演算に必要なパラメータ（具体的には、下位層のＰＣＲ値と上位層のプログラムのハッシュ値）を出力する構成であったが、これに代わって、検証部は、上位の層の検証部及びＲＴＭの正当性を検証する構成であっても良い。以下の説明の便宜上、ＢＩＯＳ３５０４、ＯＳ３５０３、アプリケーションと３５０２の属する層をそれぞれＢＩＯＳ層、ＯＳ層、アプリ層と呼ぶ。
【０６０９】
図５０は、この変形例における端末装置３６００の構成のうち、検証に関連する部分のみを記載している。図中の矢印は、下位層の検証部による上位層の検証部及びＲＴＭの検証動作を示している。また、変形例（１）と重複する構成には同一の参照符号を付している。
以下に、変形例（１）と異なる構成及び動作について説明する。
【０６１０】
（２−１）ＲＴＭ３６２２、３６２３及び３６２７
ＲＴＭ３６２７、３６２４及び３６２２は、それぞれ、ＢＩＯＳ層、ＯＳ層、アプリケーション層に属し、自身の属する層のプログラムのインテグリティ値を計測する。続いて、計測したインテグリティ値を、それぞれの層のＴＰＭ３５１６、３５１３、３５１１へ出力する。
【０６１１】
例えば、ＲＴＭ３６２７は、ＢＩＯＳ３５０４のインテグリティ値を計測し、ＴＰＭ３５１６へ出力する。
また、ＲＴＭ３６２３及び３６２７がハードウェアにより構成されている場合、下位層の検証部から、乱数を受け取る。乱数を受け取ると、ＲＴＭ３６２３及び３６２７は、受け取った乱数に所定の演算を施して、下位層の検証部へ演算結果を出力する。
【０６１２】
（２−２）ＴＰＭ３５１６、３５１３及び３５１１
ＴＰＭ３５１６、３５１３及び３５１１は、それぞれ、ＲＴＭ３６２２、３６２３及び３６２７から、自身の属する層のプログラムのインテグリティ値を受け取り、受け取ったインテグリティ値を拡張してＰＣＲ値を算出し、記憶する。
また、同一の層に属する検証部の要求に従って、記憶しているＰＣＲ値を検出部へ出力する。
【０６１３】
例えば、ＴＰＭ３５１６は、ＲＴＭ３６２７から、インテグリティ値を受け取り、受け取ったインテグリティ値を拡張してＰＣＲ１を算出し、記憶する。また、検証部３６２６から、ＰＣＲ値出力要求を受けると、ＴＰＭ３５１６は、記憶しているＰＣＲ１を検証部３６２６へ出力する。
（２−３）セキュアメモリ３５３１
セキュアメモリ３５３１は、上記の変形例（１）において説明した情報に加えて、ＯＳ層検証データ３６２２とアプリ層検証データ３６３１とを記憶している。
【０６１４】
ＯＳ層検証データ３６２２は及びアプリ層検証データ３６３１は、それぞれ、検証部３６２６及び３６２３上位層の検証部とＲＴＭの正当性を検証するために用いるデータである。
具体的に、検証部及びＲＴＭが、ソフトウェアにより実現されている場合、ＯＳ層検証データ３６２２は、検証部３６２３及びＲＴＭ３６２４の機能を実現する正常なプログラムコードに所定の演算を施して算出されるべき値である。所定の演算は、任意であるが、一例として、ＳＨＡ−１のような一方向関数や、ＡＥＳ暗号化演算、署名演算などが考えられる。アプリ層検証データ３６３１についても同様である。
【０６１５】
また、上位層の検証部及びＲＴＭが、ハードウェアにより実現されている場合、ＯＳ層検証データ３６２２は、検証部３６２３及びＲＴＭ３６２４の機能を備える回路により算出されるべき値である。この場合、ＯＳ層検証データは、検証部３６２６により書き込まれる。
アプリ層検証データ３１３１についても、同様であって、検証部３６２３により書き込まれる。
【０６１６】
（２−４）検証部３６２６、３６２３及び３６２１
検証部３６２６、３６２３及び３６２１は、変形例（１）の３つ検証部と同様に、それぞれ対応するプログラムの正当性の検証を行う。検証の手順は、変形例（１）と同様であるので、説明は割愛する。
対応するプログラムの正当性が証明されると、検証部３６２６及び３６２３は、上位の層の検証部とＲＴＭの正当性を検証する。
【０６１７】
具体的には、各検証部及びＲＴＭがソフトウェアにより実現されている場合、検証部３６２６は、検証部３６２３を実現するプログラムコードとＲＴＭ３６２４を実現するプログラムコードを連結して連結コードを生成し、生成した連結コードに所定の演算を施す。次に、検証部３６２６は、セキュアメモリ３５３１からＯＳ層検証データ３６２３を読み出し、読み出したＯＳ層検証データ３６２３と演算結果とを比較する。両者が一致した場合、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が正当であると判断し、検証部３６２３及びＲＴＭ３６２４をアクティベイトする。
【０６１８】
ここで、所定の演算は、どのような演算であっても良いが、一例として、一方向関数、暗号化演算などが考えられる。また、その他の演算であっても良い。
検証部３６２３による検証部３６２１及びＲＴＭ３６２２の検証手順も同様である。
なお、本変形例では、検証部３６２３が所定の演算を施すとあるが、所定の演算をＲＴＭ３６２７が有する関数を利用してもよい。また、検証部３６２３を実現するプログラムコードとＲＴＭ３６２４を実現するプログラムコードを連結した連結コードに対して所定の演算を施しているが、連結せず、それぞれに対して所定の演算を施しても良い。
【０６１９】
両者が一致しなかった場合、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が不正であると判断し、端末装置３６００の動作を停止する。又は、所定機能を制限する。
また、各検証部及びＲＴＭがハードウェアにより実現されている場合、検証部３６２６は、乱数を生成し、生成した乱数を検証部３６２３及びＲＴＭ３６２４へ出力する。続いて、検証部３６２６は、生成した乱数に、検証部３６２３及びＲＴＭ３６２４が正当である場合に施されるべき演算を施してＯＳ層検証データを生成し、セキュアメモリ３５３１に書き込む。次に、検証部３６２３及びＲＴＭ３６２４から、所定の演算結果を受け取る。
【０６２０】
演算結果を受け取ると、検証部３６２６は、セキュアメモリ３５３１から、ＯＳ層検証データ３６３２を読み出し、受け取った演算結果と読み出したＯＳ層検証データとを比較する。両者が一致すると、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が正当であると判断し、これらをアクティベイトする。
両者が一致しなかった場合、検証部３６２６は、上位層の検証部３６２３及びＲＴＭ３６２４が不正であると判断し、端末装置３６００の動作を停止する。又は、所定機能を制限する。
【０６２１】
検証部３６２３による検証部３６２１及びＲＴＭ３６２２の検証手順も同様であるので説明を省略する。
また、検証部３６２１及び３６２３がハードウェアにより実現されている場合、下位層の検証部から乱数を受け取る。乱数を受け取ると、検証部３６２１及び３６２３は、受け取った乱数に所定の演算を施し、演算結果を下位層の検証部へ出力する。
【０６２２】
（２−５）まとめ
以上の構成によると、電源投入後、ＢＩＯＳの正当性検証、ＯＳ層の検証部及びＲＴＭの正当性検証、ＯＳの正当性検証、アプリ層の検証部及びＲＴＭの正当性検証、アプリケーションの正当性検証が順次行われる。
全ての検証が成功であれば、端末装置３６００は、正常に動作することができる。
【０６２３】
なお、図５０では、各ＴＰＭは、各自の属する層のプログラムのインテグリティ値を受け取り、受け取ったインテグリティ値を拡張してＰＣＲ値を算出し、記憶しているが、これは、必須ではなく、インテグリティ値をそのまま記憶していても良い。
６．  その他の変形例
以上、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
【０６２４】
（１）上記の実施の形態、及び、その変形例において、端末装置及びメモリカードはＴＣＧ規格に準拠したＴＰＭチップを搭載しているとしてきたが、これに限定されるものではない。規格外であっても、同様に、各機器の正当性を証明する情報を生成、蓄積する機能を有するセキュアな集積回路であれば良い。
（２）各実施の形態において、端末装置はそれぞれ、パーソナルコンピュータ、音楽プレーヤー、携帯端末などであるとして説明してきたが、これらに限るものではなく、メモリ及びメモリにロードされたコンピュータプログラムに従って動作するコンピュータシステムを搭載した様々な機器に適応することができる。
【０６２５】
一例としては、サーバ装置を初めとするネットワーク機器、コンピュータ制御された電化製品（ＡＶ機器、調理機器など）、自動車、ロボットなどが挙げられる。
メモリカードに関しても同様に、端末装置に装着されて使用されるものを例に説明してきたが、非接触ＩＣカードのようなものであってもよい。
（３）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレィユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭ、ＲＯＭ、前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、各装置は、その機能を達成する。ここで、コンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０６２６】
（４）上記の各装置を構成する構成要素の一部又は全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムＬＳＩは、その機能を達成する。
【０６２７】
（５）上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なＩＣカード又は単体のモジュールから構成されているとしてもよい。前記ＩＣカード又は前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、などから構成されるコンピュータシステムである。前記ＩＣカード又は前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ＩＣカード又は前記モジュールは、その機能を達成する。このＩＣカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
【０６２８】
（６）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０６２９】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０６３０】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（７）また、上記実施例におけるメモリカード、ＳＩＭカードの機能ブロックの全てが集積回路であるＬＳＩとして実現される場合も本発明に含まれる。また、機能ブロックの全てに限らず一部がＬＳＩとして実現される場合も本発明に含まれる。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０６３１】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（FieldProgrammable Gate Array）やＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応などが可能性として有り得る。
【０６３２】
（８）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【産業上の利用可能性】
【０６３３】
本発明を構成する各装置及びカードは、これらを製造する製造業、販売する販売業において、経営的、つまり反復的かつ継続的に利用されうる。
【図面の簡単な説明】
【０６３４】
【図１】本発明の実施の形態１におけるコンテンツ配布システムの構成を示すブロック図
【図２】本発明の実施の形態１における端末Ａのハードウェア構成を示すブロック図
【図３】本発明の実施の形態１における権利購入制御プログラムの動作を示すフローチャート
【図４】本発明の実施の形態１における再生制御プログラムの動作を示すフローチャート
【図５】本発明の実施の形態１におけるＰＣＲ拡張コマンド処理の動作を示すフローチャート
【図６】本発明の実施の形態１における端末起動時の動作を示すフローチャート
【図７】本発明の実施の形態１における端末Ｎのハードウェア構成を示すブロック図
【図８】本発明の実施の形態１におけるカードのハードウェア構成を示すブロック図
【図９】本発明の実施の形態１における権利購入プログラムの動作を示すフローチャート
【図１０】本発明の実施の形態１における権利確認・鍵生成プログラムの動作を示すフローチャート
【図１１】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【図１２】本発明の実施の形態１におけるサーバの構成を示すブロック図
【図１３】本発明の実施の形態１におけるサーバ上に存在するＣＲＬデータベースのデータ構造を示す図
【図１４】本発明の実施の形態１におけるカード上に存在するＣＲＬデータベースのデータ構造を示す図
【図１５】本発明の実施の形態１におけるコンテンツ配布システム全体の動作を示すフローチャート
【図１６】第１の変形例におけるデバイス鍵配布システム２０００の構成を示すブロック図である。
【図１７】個別暗号化秘密情報の生成の流れを示す図である。
【図１８】デバイス鍵配布システム２０００の動作を示す流れ図である。
【図１９】管理テーブルＴ２０００のデータ構造の一例を示す図である。
【図２０】第２の変形例におけるデバイス鍵配布システム２０００ａの構成を示すブロック図である。
【図２１】第３の変形例におけるデバイス鍵配布システム２０００ｂの構成を示すブロック図である。
【図２２】デバイス鍵配布システム２０００ｂの動作を示す流れ図である。
【図２３】第４の変形例におけるデバイス鍵配布システム２１００の構成を示すブロック図である。
【図２４】秘密情報の生成の流れを示す図である。
【図２５】秘密情報管理テーブルＴ２１００のデータ構造の一例を示す図である。
【図２６】デバイス鍵配布システム２１００の動作を示す流れ図である。図２７へ続く。
【図２７】デバイス鍵配布システム２１００の動作を示す流れ図である。図２６から続く。
【図２８】その他の実施の形態１における構成を示す構成図である。
【図２９】端末装置３００１のハードウェア構成を示す構成図である。
【図３０】ＰＣＲ（Ｐｌａｔｆｏｒｍ  Ｃｏｎｆｉｇｕｌａｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）３１４６の内部構成を示した図である。
【図３１】ＴＰＭプログラム格納部３１５６に記憶されているプログラムの一例を示す。
【図３２】端末装置３００１及びＣＡサーバ装置３００２の機能的構成を示した機能ブロック図である。
【図３３】証明書記憶部３１１４に記憶されている情報の一例を示す。
【図３４】鍵記憶部３１２０に記憶されている情報の一例を示す。
【図３５】Ａｔｔｅｓｔａｔｉｏｎ処理における、端末装置３００１（証明装置）及びＣＡサーバ装置３００２（検証装置）の動作を示すフローチャートである。
【図３６】Ａｔｔｅｓｔａｔｉｏｎ処理における、端末装置３００１（証明装置）及びＣＡサーバ装置３００２（検証装置）の動作を示すフローチャートである。
【図３７】Ａｔｔｅｓｔａｔｉｏｎ処理における、端末装置３００１（証明装置）及びＣＡサーバ装置３００２（検証装置）の動作を示すフローチャートである。
【図３８】ＡＩＫクレデンシャル取得処理における端末装置３００１及びＣＡサーバ装置３００２の動作を示すフローチャートである。
【図３９】ＡＩＫクレデンシャル取得処理における端末装置３００１及びＣＡサーバ装置３００２の動作を示すフローチャートである。
【図４０】その他の実施の形態２における構成を示す構成図である。
【図４１】コンテンツ提供サーバ３２０２の機能的構成を示すブロック図である。
【図４２】メモリカード３２０４の機能的構成を示すブロック図である。
【図４３】端末装置＃１（３２０１）及びメモリカード＃２（３２０４）による相互認証の動作及びデータフロー、検証データの更新処理におけるデータフローを示す。
【図４４】その他の実施の形態３における端末装置３３０１及びメモリカード３３０２の機能的構成及びメモリカード３３０２による端末装置３３０１の検証動作を示す図である。
【図４５】その他の実施の形態４における端末装置３３７１及びメモリカード３３７２の構成及び動作を示す図である。
【図４６】その他の実施の形態４の変形例における端末装置３３９２、メモリカード３３７２及びコンテンツカード３３９２の構成及び動作を示す図である。
【図４７】その他の実施の形態４の変形例における端末装置３４１６及びＳＩＭカード３４１１の構成と動作を示す図である。
【図４８】その他の実施の形態５に係る端末装置３４３１の機能的構成を示すブロック図である。
【図４９】その他の実施の形態５の変形例に係る端末装置３５００の機能的構成を示すブロック図である。
【図５０】その他の実施の形態５の変形例に係る端末装置３６００の機能的構成を示すブロック図である。
【符号の説明】
【０６３５】
２０００、２０００ａ、２０００ｂ、２１００    デバイス鍵配布システム
２００１、２００１ａ、２００１ｂ、２１０１    端末
２００２、２００２ａ、２００２ｂ、２１０２    カード
２００３、２００３ａ、２００３ｂ、２１０３    ネットワーク接続端末
２００４、２００４ａ、２００４ｂ、２１０４    サーバ
２０１０、２０１０ａ、２０１０ｂ、２１１０    ＩＤ格納部
２０１１、２０１１ａ、２０１１ｂ    プログラム格納部
２０１２、２０１２ａ、２０１２ｂ、２１１３    端末測定部
２０１３、２０１３ａ、２０１３ｂ    プログラム更新部
２０１４、２０１４ａ、２０１４ｂ    秘密情報復号部
２０２０、２０２０ａ、２０２０ｂ、２１２０    秘密情報提供部
２０２１、２０２１ａ、２０２１ｂ、２１２１    端末ＩＤ格納部
２０２２、２０２２ａ、２０２２ｂ、２１２２    正当性確認情報格納部
２０２３、２０２３ａ、２０２３ｂ    更新プログラム格納部
２０２４、２０２４ａ、２０２４ｂ、２１２５    秘密情報取得部
２０２５、２０２５ａ、２０２５ｂ、２１２６    正当性確認情報取得部
２０２６、２０２６ａ、２０２６ｂ    更新プログラム取得部
２０２７、２０２７ａ、２０２７ｂ、２１２９    正当性確認部
２０２８、２０２８ａ、２０２８ｂ    プログラム出力部
２０２９、２０２９ａ、２０２９ｂ、２１３２    秘密情報蓄積部
２０３０、２０３０ａ、２０３０ｂ、２１３３    スイッチ
２０４０ｂ  確認情報個別化部
２０４１ｂ  デバイス鍵個別化部
２０４２ｂ  カードＩＤ格納部
２０４３ｂ  端末共通鍵格納部
２１１１    第１のプログラム格納部
２１１２    第２のプログラム格納部
２１１４    第１のプログラム更新部
２１１５    第２のプログラム更新部
２１１６    デバイス鍵個別化部
２１１７    個別化デバイス鍵蓄積部
２１１８    デバイス鍵復号部
２１２３    第１の更新プログラム格納部
２１２４    第２の更新プログラム格納部
２１２７    第１の更新プログラム取得部
２１２８    第２の更新プログラム取得部
２１３０    第１のプログラム出力部
２１３１    第２のプログラム出力部
２１４０    確認情報個別化部
３０００    検証システム
３００１    端末装置
３００２    ＣＡサーバ装置
３００３    ＴＰＭサーバ装置
３００４    端末サーバ装置
３００５    インターネット
３１０２    制御部
３１０３    送受信部
３１０４    測定値通知部
３１０６    プログラム記憶部
３１０７    ＲＴＭ
３１０８    メモリ
３１１１    ＰＣＲ値記憶部
３１１２    ログ取得部
３１１３    ＰＣＲ値算出部
３１１４    証明書記憶部
３１１６    ログ記憶部
３１１７    ＴＰＭ
３１１８    ＴＰＭ制御部
３１１９    検証部
３１２０    鍵記憶部
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008004524.tif 000053
【図２】
2008004524.tif 000054
【図３】
2008004524.tif 000055
【図４】
2008004524.tif 000056
【図５】
2008004524.tif 000057
【図６】
2008004524.tif 000058
【図７】
2008004524.tif 000059
【図８】
2008004524.tif 000060
【図９】
2008004524.tif 000061
【図１０】
2008004524.tif 000062
【図１１】
2008004524.tif 000063
【図１２】
2008004524.tif 000064
【図１３】
2008004524.tif 000065
【図１４】
2008004524.tif 000066
【図１５】
2008004524.tif 000067
【図１６】
2008004524.tif 000068
【図１７】
2008004524.tif 000069
【図１８】
2008004524.tif 000070
【図１９】
2008004524.tif 000071
【図２０】
2008004524.tif 000072
【図２１】
2008004524.tif 000073
【図２２】
2008004524.tif 000074
【図２３】
2008004524.tif 000075
【図２４】
2008004524.tif 000076
【図２５】
2008004524.tif 000077
【図２６】
2008004524.tif 000078
【図２７】
2008004524.tif 000079
【図２８】
2008004524.tif 000080
【図２９】
2008004524.tif 000081
【図３０】
2008004524.tif 000082
【図３１】
2008004524.tif 000083
【図３２】
2008004524.tif 000084
【図３３】
2008004524.tif 000085
【図３４】
2008004524.tif 000086
【図３５】
2008004524.tif 000087
【図３６】
2008004524.tif 000088
【図３７】
2008004524.tif 000089
【図３８】
2008004524.tif 000090
【図３９】
2008004524.tif 000091
【図４０】
2008004524.tif 000092
【図４１】
2008004524.tif 000093
【図４２】
2008004524.tif 000094
【図４３】
2008004524.tif 000095
【図４４】
2008004524.tif 000096
【図４５】
2008004524.tif 000097
【図４６】
2008004524.tif 000098
【図４７】
2008004524.tif 000099
【図４８】
2008004524.tif 000100
【図４９】
2008004524.tif 000101
【図５０】
2008004524.tif 000102
【国際調査報告】
2008004524.tif 000103
2008004524.tif 000104
2008004524.tif 000105
2008004524.tif 000106
2008004524.tif 000107
2008004524.tif 000108
2008004524.tif 000109
2008004524.tif 000110
2008004524.tif 000111