(57)【特許請求の範囲】
【請求項１】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置であって、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段と、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段と、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記プログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする情報処理装置。
【請求項２】
前記秘密鍵取得手段は、複数のアプリケーションプログラムのそれぞれに対応する複数の秘密鍵ＳＫを生成し、
前記公開鍵生成手段は、楕円曲線ｙ２＝ｘ３＋ａｘ＋ｂと、素数ｐと、前記楕円曲線上の元Ｇとに基づき、ＳＫ＊Ｇ（ｍｏｄｐ）を計算することにより、前記複数の秘密鍵に対応する複数の公開鍵を生成し、
前記鍵共有プログラムは、前記公開鍵暗号方式として楕円曲線暗号を用い、サーバ装置と前記共有鍵を共有することを示し、
前記プログラム実行手段は、楕円曲線暗号を用いて、前記共有鍵を共有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記秘密鍵生成手段は、複数のアプリケーションプログラムに対応するＲＳＡ暗号の秘密鍵ｄを複数受信し、
前記公開鍵生成手段は、素数の組（Ｐ、Ｑ）を取得し、Ｎ＝ＰＱを計算し、更に、ｅｄ≡１ｍｏｄ(Ｐ−１)(Ｑ−１)から、ｅを計算することにより、複数の秘密鍵のそれぞれに対応する複数の公開鍵（Ｎ、ｅ）を生成し、
前記鍵共有プログラムは、前記公開鍵暗号方式としてＲＳＡ暗号を用い、サーバ装置と前記共有鍵を共有することを示し、
前記プログラム実行手段は、ＲＳＡ暗号を用いて、前記共有鍵を共有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記情報処理装置は、ＣＰＵを有するメモリカードであって、
当該メモリカードは、ネットワークに接続された端末に装着することにより、前記端末を介して前記サーバ装置から前記サービスを受ける
ことを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記記憶手段は、
内部のＣＰＵからのみアクセスが可能な耐タンパー性を有する内部メモリと、
前記端末からのアクセスに認証処理を要する認証領域と、
前記端末からのアクセスに認証処理を要しない非認証領域とから構成される
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記初期秘密鍵は、前記内部メモリに記憶されており、
前記秘密鍵は、前記認証領域に記憶されており、
前記初期証明書及び前記公開鍵証明書は、前記非認証領域に記憶されている
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置であって、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段と、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段と、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記プログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする情報処理装置。
【請求項８】
前記秘密鍵取得手段は、複数のアプリケーションプログラムのそれぞれに対応する複数の秘密鍵ＳＫを生成し、
前記公開鍵生成手段は、楕円曲線ｙ２＝ｘ３＋ａｘ＋ｂと、素数ｐと、前記楕円曲線上の元Ｇとに基づき、ＳＫ＊Ｇ（ｍｏｄｐ）を計算することにより、前記複数の秘密鍵に対応する複数の公開鍵を生成し、
前記鍵共有プログラムは、前記公開鍵暗号方式として楕円曲線暗号を用い、サーバ装置と前記共有鍵を共有することを示し、
前記プログラム実行手段は、楕円曲線暗号を用いて、前記共有鍵を共有する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記秘密鍵生成手段は、複数のアプリケーションプログラムに対応するＲＳＡ暗号の秘密鍵ｄを複数受信し、
前記公開鍵生成手段は、素数の組（Ｐ、Ｑ）を取得し、Ｎ＝ＰＱを計算し、更に、ｅｄ≡１ｍｏｄ(Ｐ−１)(Ｑ−１)から、ｅを計算することにより、複数の秘密鍵のそれぞれに対応する複数の公開鍵（Ｎ、ｅ）を生成し、
前記鍵共有プログラムは、前記公開鍵暗号方式としてＲＳＡ暗号を用い、サーバ装置と前記共有鍵を共有することを示し、
前記プログラム実行手段は、ＲＳＡ暗号を用いて、前記共有鍵を共有する
ことを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記情報処理装置は、ＣＰＵを有するメモリカードであって、
当該メモリカードは、ネットワークに接続された端末に装着することにより、前記端末を介して前記サーバ装置から前記サービスを受ける
ことを特徴とする請求項７記載の情報処理装置。
【請求項１１】
前記記憶手段は、
内部のＣＰＵからのみアクセスが可能な耐タンパー性を有する内部メモリと、
前記端末からのアクセスに認証処理を要する認証領域と、
前記端末からのアクセスに認証処理を要しない非認証領域とから構成される
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記初期秘密鍵は、前記内部メモリに記憶されており、
前記秘密鍵は、前記認証領域に記憶されており、
前記初期証明書及び前記公開鍵証明書は、前記非認証領域に記憶されている
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
サーバ装置と、前記サーバ装置とネットワークを介して接続された情報処理装置とから構成されるコンテンツ提供システムであって、
前記サーバ装置は、
コンテンツを記憶しているコンテンツ記憶手段と、
前記情報処理装置へ前記コンテンツを安全に送信するコンテンツ提供手段とを備え、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段と、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段と、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記プログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とするコンテンツ提供システム。
【請求項１４】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置の集積回路であって、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段と、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段と、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記プログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする集積回路。
【請求項１５】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置の制御方法であって、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段を備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記制御方法は、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得ステップと、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得ステップと、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信ステップと、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得ステップと、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行ステップとを含み、
前記プログラム実行ステップは、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする制御方法。
【請求項１６】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置で用いられるコンピュータプログラムであって、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段を備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記コンピュータプログラムは、前記情報処理装置に、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得ステップと、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得ステップと、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信ステップと、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得ステップと、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行ステップとを実行させ、
前記プログラム実行ステップは、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とするコンピュータプログラム。
【請求項１７】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置で用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段を備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記コンピュータプログラムは、前記情報処理装置に、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得ステップと、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得ステップと、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信ステップと、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得ステップと、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行ステップとを実行させ、
前記プログラム実行ステップは、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする記録媒体。
【請求項１８】
サーバ装置と、前記サーバ装置とネットワークを介して接続された情報処理装置とから構成されるコンテンツ提供システムであって、
前記サーバ装置は、
コンテンツを記憶しているコンテンツ記憶手段と、
前記情報処理装置へ前記コンテンツを安全に送信するコンテンツ提供手段とを備え、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段と、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段と、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記プログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とするコンテンツ提供システム。
【請求項１９】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置の集積回路であって、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段と、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段と、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記プログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする集積回路。
【請求項２０】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置の制御方法であって、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段を備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記制御方法は、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得ステップと、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得ステップと、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信ステップと、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得ステップと、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行ステップとを含み、
前記プログラム実行ステップは、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする制御方法。
【請求項２１】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置で用いられるコンピュータプログラムであって、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段を備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記コンピュータプログラムは、前記情報処理装置に、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得ステップと、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得ステップと、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信ステップと、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得ステップと、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行ステップとを実行させ、
前記プログラム実行ステップは、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とするコンピュータプログラム。
【請求項２２】
ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置で用いられるコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記情報処理装置は、
複数のアプリケーションプログラムと、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶している記憶手段を備え、
前記アプリケーションプログラムは、
公開鍵暗号方式を用いて、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、
前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、
送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを含み、
前記コンピュータプログラムは、前記情報処理装置に、
前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得ステップと、
前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得ステップと、
取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信ステップと、
前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得ステップと、
前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行ステップとを実行させ、
前記プログラム実行ステップは、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、実行中のアプリケーションプログラムに対応する秘密鍵および公開鍵を前記記憶手段から読み出し、読み出した前記秘密鍵および前記公開鍵に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行い、
前記公開鍵送信ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、
前記公開鍵証明書取得ステップは、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信し、受信した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納する
ことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツを安全に送受信する技術に関し、特に、メモリカードを用いてコンテンツの提供を受ける技術に関する。
【背景技術】
【０００２】
機器がコンテンツ配信業者のサービスを利用する場合、機器とコンテンツ配信業者が有するサーバ装置とは、相互認証を行い、相互認証が成功した場合に安全に鍵を共有して、安全な通信路、所謂ＳＡＣ（Secure  Authentication  Channel）を確立し、ＳＡＣを介してコンテンツを送受信する技術が特許文献１に開示されている。
近年、コンテンツ配信サービスを提供する業者が増加してきており、１台の機器で複数業者のサービスを利用する場合に対応できるシステムが要望されている。
【特許文献１】特開平１１‐２３４２５９号公報
【非特許文献１】池野信一、小山謙二、「現代暗号理論」、電子通信学会
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、一般的に１つの機器に対して、１つの秘密鍵及び１つの公開鍵のペアが割り当てられるため、１つの公開鍵ペアを用いて複数のサーバ装置とＳＡＣを確立し、複数のサービスを受けようとする場合、秘密鍵が暴露され無効になると、その影響が全てのサービスに及ぶという問題点がある。
そこで、本発明は上記の問題点に鑑みなされたものであって、１つの機器で複数のサービスを利用する場合に、秘密鍵が暴露され無効になった場合であっても、その影響を最低限に抑え、安全性の高いシステムを提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記の目的を達成するために、本発明は、ネットワークを介して接続されたサーバ装置と安全に通信を行うアプリケーションプログラムを用いて、前記サーバ装置からサービスを受ける情報処理装置であって、複数のアプリケーションプログラムと、前記複数のアプリケーションプログラムのそれぞれに対応付けられた複数の鍵情報とを記憶している記憶手段と、前記記憶手段から１のアプリケーションプログラムを読み出し、実行するプログラム実行手段とを備え、前記プログラム実行手段は、実行中のアプリケーションプログラムに対応する鍵情報を前記記憶手段から読み出し、読み出した鍵情報を用いて、前記サーバ装置と安全に通信を行うことを特徴とする。
【発明の効果】
【０００５】
上記の構成によると、情報処理装置は、アプリケーションプログラム毎に固有の鍵情報を用いるので、ある１つのアプリケーションプログラムで鍵情報が無効になった場合であっても、他のアプリケーションプログラムで用いる鍵情報は継続して使用することができる。このような情報処理装置を用いることにより、１つの情報処理装置で、複数のアプリケーションプログラムを用いて複数のサーバ装置からサービスを受ける場合であっても、安全性の高いシステムを構築することができる。
【０００６】
ここで、前記情報処理装置は、ＣＰＵを有するメモリカードであって、当該メモリカードは、ネットワークに接続された端末に装着することにより、前記端末を介して前記サーバ装置から前記サービスを受けるように構成してもよい。
この構成によると、情報処理装置に替えて、メモリカードを用いても上記のような安全性の高いシステムを構築することができる。
【０００７】
また、前記アプリケーションプログラムは、前記鍵情報に基づき、前記サーバ装置と安全に共有鍵を共有する鍵共有プログラムと、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信する通信プログラムと、送信するデータの暗号化、又は受信したデータの復号を行う暗号処理プログラムとを備え、前記情報処理装置及び前記メモリカードのプログラム実行手段は、前記鍵共有プログラム、前記通信プログラム及び前記暗号処理プログラムを実行することにより、前記鍵情報に基づき、前記サーバ装置と安全に前記共有鍵を共有し、前記共有鍵に基づき暗号化されたデータを、前記サーバ装置との間で送受信し、送信するデータの暗号化、又は受信したデータの復号を行うように構成してもよい。
【０００８】
この構成によると、情報処理装置及びメモリカードは、アプリケーションプログラム毎に異なる鍵情報を用いてサーバ装置とＳＡＣを確立し、データを安全に送受信することができる。
ここで、前記記憶手段は、公開鍵暗号方式で用いられる秘密鍵と公開鍵とを含む鍵セットである前記鍵情報を記憶しており、前記鍵共有プログラムは、公開鍵暗号方式を用いて、前記サーバ装置と前記共有鍵を共有することを示し、前記情報処理装置及び前記メモリカードのプログラム実行手段は、公開鍵暗号方式を用いて、前記共有鍵を共有するように構成してもよい。
【０００９】
この構成によると、情報処理装置及びメモリカードは、暗号アルゴリズムとして公開鍵暗号方式を用いることにより、サーバ装置と安全性の高い通信を行うことができる。
ここで、前記情報処理装置及び前記メモリカードは、前記記憶手段に記憶されているアプリケーションプログラム毎に、１の秘密鍵を受信又は生成することにより取得し、取得した複数の秘密鍵を前記記憶手段に書き込む秘密鍵取得手段と、前記複数の秘密鍵のそれぞれに対応する複数の公開鍵を受信又は生成することにより取得する公開鍵取得手段と、取得された複数の公開鍵を、各公開鍵に対応するアプリケーションプログラムを用いて受けるサービスを提供している１以上のサーバ装置へ送信する公開鍵送信手段と、前記１以上のサーバ装置から複数の公開鍵証明書を取得し、取得した複数の公開鍵証明書を前記記憶手段に書き込む公開鍵証明書取得手段とを備え、前記記憶手段は、秘密鍵と公開鍵証明書とから成る前記鍵セットを記憶するように構成してもよい。
【００１０】
この構成によると、情報処理装置及びメモリカードは、アプリケーションプログラム毎の公開鍵に対し、対応するサーバ装置から署名データを取得することにより、サーバ装置とより安全性の高い通信を行うことができる。
ここで、前記情報処理装置及び前記メモリカードの前記記憶手段は、当該情報処理装置に固有の１の初期秘密鍵と、前記初期秘密鍵に対応する１の公開鍵及び当該公開鍵に係る認証局による署名データを含む初期証明書とを記憶しており、前記公開鍵送信手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置へ安全に前記公開鍵を送信し、前記公開鍵証明書取得手段は、前記初期秘密鍵と前記初期証明書とを用いて、サーバ装置から安全に前記公開鍵証明書を受信するように構成してもよい。
【００１１】
この構成によると、情報処理装置及びメモリカードは、全てのアプリケーションプログラムに対して基本となる初期秘密鍵と初期証明書とを保持することにより、初期秘密鍵と初期証明書とを用いて、サーバ装置とＳＡＣを確立し、サーバ装置から安全に公開鍵証明書を受信することができる。
ここで、前記情報処理装置の前記公開鍵証明書取得手段は、サーバ装置から取得した前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納するように構成してもよいし、前記公開鍵証明書取得手段は、サーバ装置から取得した前記公開鍵証明書に、自機の署名データを付加するか否か判断し、付加すると判断した場合に、前記公開鍵証明書に対し、前記初期秘密鍵に基づく署名データを生成し、生成した前記署名データを前記公開鍵証明書に付加し、前記記憶手段に格納するように構成してもよい。
【００１２】
この構成によると、情報処理装置は、サーバ装置から取得した公開鍵証明書に自機の署名データを付加することにより、当該公開鍵証明書をサーバ装置へ送信することにより、自機がネットワーク上の正当な機器であることを示すことができる。
ここで、前記メモリカードの前記記憶手段は、内部のＣＰＵからのみアクセスが可能な耐タンパー性を有する内部メモリと、前記端末からのアクセスに認証処理を要する認証領域と、前記端末からのアクセスに認証処理を要しな非認証領域とから構成されてもよい。この場合、前記初期秘密鍵は、前記内部メモリに記憶され、前記秘密鍵は、前記認証領域に記憶され、前記初期証明書及び前記公開鍵証明書は、前記非認証領域に記憶されるように構成してもよい。
【００１３】
この構成によると、メモリカードは、秘密鍵、公開鍵証明書、初期秘密鍵、及び初期証明書を、そのセキュリティレベルに応じた記憶領域に格納でき、セキュリティレベルの異なる記憶領域を有効に活用することができる。
【発明を実施するための最良の形態】
【００１４】
〔実施例１〕
本発明の実施例であるコンテンツ提供システム１について図面を参照して説明する。
＜構成＞
ここでは、コンテンツ提供システム１の構成について説明する。
図１は、コンテンツ提供システム１のシステム構成を示す図である。同図に示すように、コンテンツ提供システム１は、メモリカード１０、端末２０、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）、決済サーバ２（６０）及び認証局７０から構成される。
【００１５】
メモリカード１０は、端末２０に挿入して用いられる。端末２０、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）、決済サーバ２（６０）及び認証局７０は、ネットワーク８０に接続しており、メモリカード１０は、端末２０及びネットワーク８０を介して、各サーバ及び認証局７０と、相互に通信が可能である。ここで、ネットワーク８０の一例はインターネットであるが、ネットワーク８０は、インターネットに限定されず、アナログ放送、ＢＳデジタル放送、地上波デジタル放送、ケーブルテレビ網などでもよい。
【００１６】
コンテンツ提供システム１は、端末２０に挿入されたメモリカード１０を用いて、複数のコンテンツプロバイダからサービスを受けるシステムである。
図１に示したコンテンツサーバ１（３０）とコンテンツサーバ２（５０）とは、それぞれ異なるコンテンツプロバイダが有する機器であるとする。決済サーバ１（４０）は、メモリカード１０がコンテンツサーバ１から取得したコンテンツの代金の決済を行う機器であり、決済サーバ２（６０）は、メモリカード１０がコンテンツサーバ２から取得したコンテンツの代金の決済を行う機器である。
【００１７】
以下では、システムを構成する機器ごとに詳細に説明する。
１．メモリカード１０
ここでは、メモリカード１０の構成について説明する。
メモリカード１０は、ＣＰＵを備える半導体メモリカードであって、セキュリティレベルの異なる３つの記憶領域を有する。具体的に、メモリカード１０が有する記憶領域は、端末２０など外部の機器から自由にアクセスが可能であるユーザ領域、認証に成功した機器のみにアクセスを許可するセキュア領域、及び、外部の機器からはその存在を知ることができずアクセスが不可能な耐タンパー性モジュール（TamperResistant Module：ＴＲＭ）である。
【００１８】
図２は、メモリカード１０の構成を機能的に示す機能ブロック図である。同図に示すように、メモリカード１０は、入出力部１０１、制御部１０２、ＴＲＭ１０３及び記憶部１０４から構成される。
制御部１０２は、更に、コマンド処理部１０５、認証部１０６、公開鍵暗号処理部１０７、復号部１０８及びアクセス制御部１０９から構成され、ＴＲＭ１０３は、ＴＲＭ入出力部１１１、ＴＲＭ制御部１１２、内部メモリ入出力部１１３及び内部メモリ１１４から構成され、記憶部１０４は、セキュア領域１１５及びユーザ領域１１６から構成される。
【００１９】
（１）入出力部１０１
入出力部１０１は、複数のピン端子を有する。入出力部１０１は、メモリカード１０が後述する端末２０のメモリカード入出力部２０４に挿入された状態において、前記複数のピン端子により、端末２０との間でコマンド及びデータの入出力を行う。
具体的には、入出力部１０１は、端末２０のメモリカード入出力部２０４から受信するコマンドを、制御部１０２のコマンド処理部１０５へ出力し、メモリカード入出力部２０４から受信するデータを、アクセス制御部１０９へ出力する。
【００２０】
また、入出力部１０１は、制御部１０２のアクセス制御部１０９から受け取るデータを、端末２０のメモリカード入出力部２０４へ出力する。
（２）制御部１０２
制御部１０２は、端末２０及びネットワーク８０を介して各サーバとＳＡＣを確立する。また、制御部１０２は、端末２０によるＴＲＭ１０３及び記憶部１０４へのアクセスを制御する。以下では、制御部１０２の詳細について説明する。
【００２１】
（ａ）コマンド処理部１０５は、入出力部１０１を介してコマンドを受け取り、受け取ったコマンドを解釈し、コマンドに応じた処理を行う。
例えば、コマンド処理部１０５は、認証部１０６に対し認証処理を指示したり、公開鍵暗号処理部１０７に対しＳＡＣ確立を指示したり、復号部１０８に対し暗号化コンテンツ、暗号化支払額通知情報、暗号化電子レシートの復号を指示したり、復号部１０８に対し暗号化コンテンツの復号を指示したり、アクセス制御部１０９に対し、アプリケーションプログラムの読み出しを指示する。
【００２２】
（ｂ）認証部１０６は、予め端末２０により登録されたパスワード情報ＰＷ＿０を記憶している。認証部１０６は、コマンド処理部１０５から指示を受け付けると、以下に示すようにして、メモリカード１０が挿入されている機器を認証する
認証部１０６は、５６ビットの乱数Ｒ＿０を生成し、生成した乱数Ｒ＿０を、入出力部１０１を介して端末２０へ出力すると共に、乱数Ｒ＿０を暗号鍵として用い、ＰＷ＿０に暗号アルゴリズムＥを施して暗号文Ｅ１を生成し、生成した暗号文Ｅ１を記憶する。なお、ここで用いられる暗号アルゴリズムＥの一例はＤＥＳ（DataEncryption Standard）である。
【００２３】
認証部１０６は、入出力部１０１を介して、端末２０から暗号文Ｅ２を受け取ると、受け取った暗号文Ｅ２と記憶している暗号文Ｅ１とを比較する。Ｅ１とＥ２とが一致する場合、認証部１０６は、「認証ＯＫ」を示す信号をコマンド処理部１０５へ返し、Ｅ１とＥ２とが一致しない場合、認証部１０６は、「認証ＮＧ」を示す信号をコマンド処理部１０５へ返す。
【００２４】
（ｃ）公開鍵暗号処理部１０７
公開鍵暗号処理部１０７は、メモリカード１０がコンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）との間でサービス加入処理を行うとき、各サーバとの間でＳＡＣを確立する。また、公開鍵暗号処理部１０７は、メモリカード１０がコンテンツサーバ１（３０）及びコンテンツサーバ２（５０）との間でコンテンツ送受信処理を行うとき、コンテンツサーバ１（３０）及びコンテンツサーバ２（５０）との間でＳＡＣを確立する。また、公開鍵暗号処理部１０７は、メモリカード１０が決済サーバ１（４０）及び決済サーバ２（６０）との間で決済処理を行うとき、決済サーバ１（４０）及び決済サーバ２（６０）との間でＳＡＣを確立する。
【００２５】
なお、公開鍵暗号処理部１０７で用いられる公開鍵暗号方式の具体例は、楕円曲線暗号及びＲＳＡ暗号である。
（楕円曲線上の離散対数問題）
ここでは、先ず、公開鍵暗号処理部１０７で用いられる楕円曲線暗号の安全性の根拠として用いられる楕円曲線上の離散対数問題について簡単に説明する。
【００２６】
楕円曲線上の離散対数問題とは、Ｅ（ＧＦ（ｐ））を有限体ＧＦ（ｐ）上で定義された楕円曲線とし、楕円曲線Ｅの位数が大きな素数で割り切れる場合に、楕円曲線Ｅに含まれる元Ｇをベースポイントとする。このとき、楕円曲線Ｅに与えられた元Ｙに対して、
Ｙ＝ｘ＊Ｇ
となる整数ｘが存在するならば、ｘを求めよ、という問題である。
【００２７】
ここで、ｐは素数、ＧＦ（ｐ）はｐ個の元を持つ有限体である。また、この明細書において、記号「＊」は、楕円曲線に含まれる元を複数回加算する演算を示し、ｘ＊Ｇは、次式に示すように、楕円曲線に含まれる元Ｇをｘ回加算することを意味する。
ｘ＊Ｇ＝Ｇ＋Ｇ＋Ｇ＋・・・＋Ｇ
離散対数問題を公開鍵暗号の安全性の根拠とするのは、多くの元を有する有限体ＧＦ（ｐ）に対して、上記問題は極めて難しいからである。
【００２８】
なお、離散対数問題については、ニイルコブリッツ著  ”ア  コウス  イン  ナンバア  セオリイ  アンド  クリプトグラヒイ”(Neal Koblitz ," A Course in Number theory and Cryptography", Springer-Verlag,1987)に詳しく述べられている。
（楕円曲線の演算公式についての説明）
次に、楕円曲線の演算公式について、以下に説明する。
【００２９】
楕円曲線の方程式を
ｙ2＝ｘ3＋ａｘ＋ｂとし、
任意の点Ｐの座標を（ｘ1，ｙ1）とし、任意の点Ｑの座標を（ｘ2，ｙ2）とする。ここで、Ｒ＝Ｐ＋Ｑで定まる点Ｒの座標を（ｘ3，ｙ3）とする。
Ｐ≠Ｑの場合、Ｒ＝Ｐ＋Ｑは、加算の演算となる。加算の公式を以下に示す。
【００３０】
ｘ3＝｛（ｙ2−ｙ1）／（ｘ2−ｘ1）｝2−ｘ1−ｘ2
ｙ3＝｛（ｙ2−ｙ1）／（ｘ2−ｘ1）｝（ｘ1−ｘ3）−ｙ1
Ｐ＝Ｑの場合、Ｒ＝Ｐ＋Ｑ＝Ｐ＋Ｐ＝２×Ｐとなり、Ｒ＝Ｐ＋Ｑは、２倍算の演算となる。２倍算の公式を以下に示す。
ｘ3＝｛（３ｘ12＋ａ）／２ｙ1｝2−２ｘ1
ｙ3＝｛（３ｘ12＋ａ）／２ｙ1｝（ｘ1−ｘ3）−ｙ1
なお、上記演算は、楕円曲線が定義される有限体上での演算である。また、楕円曲線の演算公式については、"Efficient ellipticcurve exponentiation"（Miyaji, Ono, and Cohen著、Advances incryptology-proceedings of ICICS'97,   Lecture notes in computer science, 1997,Springer-verlag, 282-290.）に詳しく説明されている。
【００３１】
（サービス加入処理）
ここでは、各サーバが提供するサービスへの加入処理を行う際の公開鍵暗号処理部１０７について説明する。公開鍵暗号処理部１０７は、メモリカード１０にダウンロードされたアプリケーションプログラム毎に、対応するサーバとの間でサービス加入処理を行う。ここで、サービス加入処理とは、各サーバに対し公開鍵を送信し、送信した自機の公開鍵に対する公開鍵証明書を取得することをいう。
【００３２】
なお、メモリカード１０には、アプリケーションプログラムＡ、アプリケーションプログラムＢ、アプリケーションプログラムＣ及びアプリケーションプログラムＤがダウンロードされたものとする。
アプリケーションプログラムＡは、コンテンツサーバ１（３０）から暗号化コンテンツＥＣＮＴ＿１を取得し、取得した暗号化コンテンツＥＣＮＴ＿１を復号するためのプログラムであり、アプリケーションプログラムＢは、決済サーバ１（４０）との間で決済処理を行うプログラムであり、アプリケーションプログラムＣは、コンテンツサーバ２（５０）から暗号化コンテンツＥＣＮＴ＿２を取得し、取得した暗号化コンテンツＥＣＮＴ＿２を復号するためのプログラムであり、アプリケーションプログラムＤは、決済サーバ２（６０）との間で決済処理を行うプログラムである。
【００３３】
公開鍵暗号処理部１０７は、アプリケーションプログラムＡ専用の秘密鍵としてＳＫ＿Ａを生成し、アプリケーションプログラムＢ専用の秘密鍵としてＳＫ＿Ｂを生成し、アプリケーションプログラムＣ専用の秘密鍵としてＳＫ＿Ｃを生成し、アプリケーションプログラムＤ専用の秘密鍵としてＳＫ＿Ｄを生成する。具体的に、各秘密鍵は乱数生成器により生成される。
【００３４】
公開鍵暗号処理部１０７は、生成したそれぞれの秘密鍵に基づき、公開鍵暗号方式として楕円曲線暗号を用いて、以下のように公開鍵ＰＫ＿Ａ、ＰＫ＿Ｂ、ＰＫ＿Ｃ及びＰＫ＿Ｄを生成する。なお、公開鍵暗号処理部１０７には、予め楕円曲線の方程式Ｅ：ｙ2＝ｘ3＋ａｘ＋ｂ（ｍｏｄ  ｐ）が与えられているものとする。
ＰＫ＿Ａ＝ＳＫ＿Ａ＊Ｇ（ｍｏｄ  ｐ）、
ＰＫ＿Ｂ＝ＳＫ＿Ｂ＊Ｇ（ｍｏｄ  ｐ）、
ＰＫ＿Ｃ＝ＳＫ＿Ｃ＊Ｇ（ｍｏｄ  ｐ）、
ＰＫ＿Ｄ＝ＳＫ＿Ｄ＊Ｇ（ｍｏｄ  ｐ）。
【００３５】
公開鍵暗号処理部１０７は、生成した秘密鍵ＳＫ＿Ａ、ＳＫ＿Ｂ、ＳＫ＿Ｃ及びＳＫ＿Ｄを、記憶部１０４のセキュア領域１１５に格納する旨を示す信号と共にアクセス制御部１０９へ出力する。
公開鍵暗号処理部１０７は、公開鍵暗号のアルゴリズムとして、ＲＳＡ暗号を用い、コンテンツサーバ１（３０）との間でＳＡＣを確立し、ＳＡＣを介してコンテンツサーバ１（３０）へ、公開鍵ＰＫ＿Ａを送信する。同様に、公開鍵暗号処理部１０７は、決済サーバ１（４０）との間でＳＡＣを確立し、ＳＡＣを介して決済サーバ１（４０）へ、公開鍵ＰＫ＿Ｂを送信する。また、公開鍵暗号処理部１０７は、コンテンツサーバ２（５０）との間でＳＡＣを確立し、ＳＡＣを介してコンテンツサーバ２（５０）へ、公開鍵ＰＫ＿Ｃを送信する。また、公開鍵暗号処理部１０７は、決済サーバ２（６０）との間でＳＡＣを確立し、ＳＡＣを介して決済サーバ２（６０）へ、公開鍵ＰＫ＿Ｄを送信する。  公開鍵暗号処理部１０７は、コンテンツサーバ１（３０）から、ＳＡＣを介して公開鍵証明書Ｃｅｒｔ＿Ａと公開鍵ＫP＿Ａとを受け取る。Ｃｅｒｔ＿Ａは、公開鍵ＰＫ＿Ａに対するコンテンツサーバ１（３０）による証明書であり、ＫP＿Ａは、コンテンツサーバ１（３０）の公開鍵である。同様に、公開鍵暗号処理部１０７は、決済サーバ１（４０）から、ＳＡＣを介して公開鍵証明書Ｃｅｒｔ＿Ｂと公開鍵ＫP＿Ｂとを受け取る。Ｃｅｒｔ＿Ｂは、公開鍵ＰＫ＿Ｂに対する決済サーバ１（４０）による証明書であり、ＫP＿Ｂは、決済サーバ１（４０）の公開鍵である。同様に、公開鍵暗号処理部１０７は、コンテンツサーバ２（５０）から、ＳＡＣを介して公開鍵証明書Ｃｅｒｔ＿Ｃと公開鍵ＫP＿Ｃとを受け取る。Ｃｅｒｔ＿Ｃは、公開鍵ＰＫ＿Ｃに対するコンテンツサーバ２（５０）による証明書であり、ＫP＿Ｃは、コンテンツサーバ２（５０）の公開鍵である。同様に、公開鍵暗号処理部１０７は、決済サーバ２（６０）から、ＳＡＣを介して公開鍵証明書Ｃｅｒｔ＿Ｄと公開鍵ＫP＿Ｄとを受け取る。Ｃｅｒｔ＿Ｄは、公開鍵ＰＫ＿Ｄに対する決済サーバ２（６０）による証明書であり、ＫP＿Ｄは、決済サーバ２（６０）の公開鍵である。
【００３６】
公開鍵暗号処理部１０７は、各サーバから公開鍵証明書Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄを受け取ると、受け取ったＣｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄを、署名データを付加する指示と共に、アクセス制御部１０９へ出力する。公開鍵暗号処理部１０７は、各サーバから受け取った公開鍵ＫP＿Ａ、ＫP＿Ｂ、ＫP＿Ｃ及びＫP＿Ｄを、記憶部１０４のユーザ領域１１６に格納する指示と共にアクセス制御部１０９へ出力する。なお、公開鍵証明書Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄのデータ構成については後述する。
【００３７】
なお、公開鍵暗号処理部１０７は、サービス加入処理におけるＳＡＣの確立に、後述する初期秘密鍵ＳＫ＿００１０と、図３に示す初期証明書Ｃｅｒｔ＿００１０（１２０）を用いる。
初期証明書Ｃｅｒｔ＿００１０（１２０）は、メモリカード１０が認証局７０から受け取る公開鍵証明書である。同図に示すように、Ｃｅｒｔ＿００１０（１２０）は、メモリカード１０を一意に識別する識別子である機器ＩＤ「ＩＤ＿００１０」（１２１）、上述した公開鍵「ＰＫ＿００１０」（１２２）及び機器ＩＤ１２１と公開鍵１２２とに対し、認証局７０により生成された署名データ「ＳＩＧ＿００１０ＣＡ」（１２３）から成る。
【００３８】
初期証明書Ｃｅｒｔ＿００１０（１２０）は、郵送や安全な通信路を用いて認証局７０から安全に送付され、記憶部１０４のセキュア領域１１５に格納されている。
（サービス利用要求）
次に、メモリカード１０が、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）に対してサービスの利用を要求するときの公開鍵暗号処理部１０７について説明する。
【００３９】
公開鍵暗号処理部１０７は、アクセス制御部１０９を介して、記憶部１０４のユーザ領域１１６から、Ｃｅｒｔ＿Ａ´及びＫP＿Ａを読み出し、セキュア領域１１５から秘密鍵ＳＫ＿Ａを読み出す。公開鍵暗号処理部１０７は、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、コンテンツサーバ１（３０）とＳＡＣを確立する。具体的には、公開鍵暗号処理部１０７は、ユーザ領域１１６に格納されているアプリケーションプログラムＡを読み出し、実行することにより、ＳＡＣの確立処理を行う。
【００４０】
同様に、公開鍵暗号処理部１０７は、アクセス制御部１０９を介して、記憶部１０４のユーザ領域１１６から、Ｃｅｒｔ＿Ｂ´及びＫP＿Ｂを読み出し、セキュア領域１１５から秘密鍵ＳＫ＿Ｂを読み出す。公開鍵暗号処理部１０７は、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、決済サーバ１（４０）とＳＡＣを確立する。具体的には、公開鍵暗号処理部１０７は、ユーザ領域１１６に格納されているアプリケーションプログラムＢを読み出し、実行することにより、ＳＡＣの確立処理を行う。
【００４１】
同様に、公開鍵暗号処理部１０７は、アクセス制御部１０９を介して、記憶部１０４のユーザ領域１１６から、Ｃｅｒｔ＿Ｃ´及びＫP＿Ｃを読み出し、セキュア領域１１５から秘密鍵ＳＫ＿Ｃを読み出す。公開鍵暗号処理部１０７は、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、コンテンツサーバ２（５０）とＳＡＣを確立する。具体的には、公開鍵暗号処理部１０７は、ユーザ領域１１６に格納されているアプリケーションプログラムＣを読み出し、実行することにより、ＳＡＣの確立処理を行う。
【００４２】
同様に、公開鍵暗号処理部１０７は、アクセス制御部１０９を介して、記憶部１０４のユーザ領域１１６から、Ｃｅｒｔ＿Ｄ´及びＫP＿Ｄを読み出し、セキュア領域１１５から秘密鍵ＳＫ＿Ｄを読み出す。公開鍵暗号処理部１０７は、公開鍵暗号のアルゴリズムとして楕円曲線暗号を用いて、決済サーバ２（６０）とＳＡＣを確立する。具体的には、公開鍵暗号処理部１０７は、ユーザ領域１１６に格納されているアプリケーションプログラムＤを読み出し、実行することにより、ＳＡＣの確立処理を行う。
【００４３】
公開鍵暗号処理部１０７は、ＳＡＣ確立処理により各サーバと共有したセッション鍵を、コマンド処理部１０５を介して復号部１０８へ出力する。なお、ＳＡＣ確立処理の詳細については後述する。
（ｄ）復号部１０８
復号部１０８は、コマンド処理部１０５を介して、公開鍵暗号処理部１０７からセッション鍵を受け取り、受け取ったセッション鍵を用いて、アクセス制御部１０９から取得する暗号化データを復号する。なお、セッション鍵は、ＳＡＣにより各サーバと共有する鍵データである。
【００４４】
具体的に、復号部１０８は、コンテンツサーバ１（３０）から取得した暗号化コンテンツ鍵ＥＫCNT＿１をアクセス制御部１０９から受け取り、コンテンツサーバ１（３０）と共有したセッション鍵を用いて復号し、コンテンツ鍵ＫCNT＿１を生成する。復号部１０８は、生成したコンテンツ鍵ＫCNT＿１を記憶部１０４のセキュア領域１１５に格納する指示と共にアクセス制御部１０９へ出力する。
【００４５】
同様に、復号部１０８は、コンテンツサーバ２（５０）から取得した暗号化コンテンツ鍵ＥＫCNT＿２をアクセス制御部１０９から受け取り、コンテンツサーバ２（５０）と共有したセッション鍵を用いて復号し、コンテンツ鍵ＫCNT＿２を生成する。復号部１０８は、生成したコンテンツ鍵ＫCNT＿２を記憶部１０４のセキュア領域１１５に格納する指示と共にアクセス制御部１０９へ出力する。
【００４６】
また、復号部１０８は、決済サーバ１（４０）から取得した暗号化支払額通知情報、及び暗号化電子レシートＥＲＥＣ＿１を、決済サーバ１（４０）と共有したセッション鍵を用いて復号し、支払額通知情報、及び電子レシートＲＥＣ＿１を生成する。復号部１０８は、生成した支払額通知情報を、ＴＲＭ１０３へ出力する指示と共にアクセス制御部１０９へ出力し、電子レシートＲＥＣ＿１を記憶部１０４のセキュア領域１１５に格納する旨を示す信号と共にアクセス制御部１０９へ出力する。
【００４７】
同様に、復号部１０８は、決済サーバ２（６０）から取得した暗号化支払額通知情報、及び暗号化電子レシートＥＲＥＣ＿２を、決済サーバ２（６０）と共有したセッション鍵を用いて復号し、支払額通知情報、及び電子レシートＲＥＣ＿２を生成する。復号部１０８は、生成した支払額通知情報を、ＴＲＭ１０３ヘ出力する指示と共にアクセス制御部１０９へ出力し、電子レシートＲＥＣ＿２を記憶部１０４のセキュア領域１１５に格納する旨を示す信号と共にアクセス制御部１０９へ出力する。
【００４８】
なお、上記の復号処理は、復号部１０８が、ユーザ領域１１６に格納されているアプリケーションプログラムＡ、Ｂ、Ｃ及びＤをそれぞれ読み出し、実行することにより実現される。
更に、復号部１０８は、コマンド処理部１０５から暗号化コンテンツの復号を示す指示を受け取ると、アクセス制御部１０９を介してユーザ領域１１６から指定の暗号化コンテンツＥＣＮＴ＿１又はＥＣＮＴ＿２を読み出す。また、復号部１０８は、アクセス制御部１０９を介してセキュア領域１１５から、暗号化コンテンツに対応するコンテンツ鍵ＫCNT＿１又はＫCNT＿２を読み出す。
【００４９】
復号部１０８は、コンテンツ鍵ＫCNT＿１を復号鍵として用い、暗号化コンテンツＥＣＮＴ＿１に復号アルゴリズムＤ1を施し、コンテンツＣＮＴ＿１を復号する。ここで、復号アルゴリズムＤ1は、暗号アルゴリズムＥ1で暗号化された暗号文を平文に変換するアルゴリズムである。復号部１０８は、コマンド処理部１０５及び入出力部１０１を介して、コンテンツＣＮＴ＿１を、端末２０へ出力する。
【００５０】
同様に、復号部１０８は、暗号化コンテンツＥＣＮＴ＿２をコンテンツ鍵ＫCNT＿２で復号し、コンテンツＣＮＴ＿２を生成する。復号部１０８は、コンテンツＣＮＴ＿２を、コマンド処理部１０５及び入出力部１０１を介して、端末２０へ出力する。
（ｅ）アクセス制御部１０９
アクセス制御部１０９は、コマンド処理部１０５からアプリケーションプログラムの起動が指示されると、指示されたアプリケーションプログラムをユーザ領域１１６から読み出す。
【００５１】
また、アクセス制御部１０９は、ＴＲＭ１０３、記憶部１０４のセキュア領域１１５及びユーザ領域１１６へのデータの入力、並びに記憶部１０４のセキュア領域１１５及びユーザ領域１１６からのデータの出力を制御する。
具体的には、アクセス制御部１０９は、ユーザ領域１１６からのデータ読み出し及びユーザ領域１１６へのデータ書き込みについては、制限なく読み出し及び書き込みを行う。アクセス制御部１０９は、セキュア領域１１５からのデータ読み出し及びセキュア領域１１５へのデータ書き込みについては、コマンド処理部１０５に対し、機器認証の結果を問い合わせる。機器認証の結果が「認証ＯＫ」の場合に限り、アクセス制御部１０９は、読み出し及び書き込みを行う。
【００５２】
また、アクセス制御部１０９は、ＴＲＭ１０３の内部メモリ１１４に格納されている初期秘密鍵ＳＫ＿００１０に基づく公開鍵の生成が指示された場合に、その旨をＴＲＭ１０３のＴＲＭ入出力部１１１を介してＴＲＭ制御部１１２へ出力する。更に、アクセス制御部１０９は、公開鍵暗号処理部１０７から、署名データの生成指示と共に、Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄを受け取ると、署名データの生成指示と、Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄとを、ＴＲＭ１０３のＴＲＭ入出力部１１１を介してＴＲＭ制御部１１２へ出力する。
【００５３】
また、アクセス制御部１０９は、ＴＲＭ入出力部１１１から、Ｃｅｒｔ＿Ａ´、Ｃｅｒｔ＿Ｂ´、Ｃｅｒｔ＿Ｃ´、及びＣｅｒｔ＿Ｄ´を受け取ると、それぞれを、アプリケーションプログラムＡ、アプリケーションプログラムＢ、アプリケーションプログラムＣ、及びアプリケーションプログラムＤと対応付けて、記憶部１０４のユーザ領域１１６に格納する。
【００５４】
また、アクセス制御部１０９は、支払額通知情報を受け付けた場合、電子マネーの支払い指示と支払額通知情報とを、ＴＲＭ入出力部１１１を介してＴＲＭ制御部１１２へ出力する。
（３）ＴＲＭ１０３
ＴＲＭ１０３は、端末２０のＣＰＵからアクセスすることができない耐タンパー性を有する。
【００５５】
（ａ）ＴＲＭ入出力部１１１は、アクセス制御部１０９から受け取る指示をＴＲＭ制御部１１２へ出力し、ＴＲＭ制御部１１２から受け取るデータをアクセス制御部１０９へ出力する。
（ｂ）ＴＲＭ制御部１１２は、ＴＲＭ入出力部１１１から指示を受け取り、受け取った指示に応じて、以下に示すような処理を行う。
【００５６】
ＴＲＭ制御部１１２は、ＴＲＭ入出力部１１１から初期秘密鍵ＳＫ＿００１０に基づく公開鍵の生成指示を受け付けると、内部メモリ入出力部１１３を介して内部メモリ１１４から初期秘密鍵ＳＫ＿００１０を読み出す。本実施例では、初期秘密鍵ＳＫ＿００１０として、メモリカード１０の製造時に内部メモリ１１４に書き込まれたメモリカード１０の固有番号を用いるものとするが、初期秘密鍵ＳＫ＿００１０は、製造時に決まる機器の固有番号に限定されず、認証局７０から与えられるメモリカード１０に固有の情報を用いてもよい。ＴＲＭ制御部１１２は、内部メモリ１１４から読み出した初期秘密鍵ＳＫ＿００１０に基づき公開鍵ＰＫ＿００１０を生成する。
【００５７】
生成された公開鍵ＰＫ＿００１０は、ＴＲＭ入出力部１１１を介して、アクセス制御部１０９へ出力される。なお、公開鍵ＰＫ＿００１０は、認証局７０から初期証明書Ｃｅｒｔ＿００１０（図３参照）を受けるために認証局７０に通知される。
また、ＴＲＭ制御部１１２は、ＴＲＭ入出力部１１１から、Ｃｅｒｔ＿Ａと署名データ生成指示とを受け取ると、内部メモリ入出力部１１３を介して、内部メモリ１１４から初期秘密鍵ＳＫ＿００１０を読み出す。ＴＲＭ制御部１１２は、ＳＫ＿００１０を用いてＣｅｒｔ＿Ａから署名データを生成し、生成した署名データをＣｅｒｔ＿Ａに付加し、Ｃｅｒｔ＿Ａ´を生成する。ＴＲＭ制御部１１２は、生成したＣｅｒｔ＿Ａ´を、ＴＲＭ入出力部１１１を介してアクセス制御部１０９へ出力する。同様に、ＴＲＭ制御部１１２は、内部メモリ１１４から読み出したＳＫ＿００１０を用いて、Ｃｅｒｔ＿Ｂに基づき、Ｃｅｒｔ＿Ｂ´を生成し、生成したＣｅｒｔ＿Ｂ´をアクセス制御部１０９へ出力する。同様に、ＴＲＭ制御部１１２は、Ｃｅｒｔ＿Ｃに基づきＣｅｒｔ＿Ｃ´を生成し、生成したＣｅｒｔ＿Ｃ´を、アクセス制御部１０９へ出力する。同様に、ＴＲＭ制御部１１２は、Ｃｅｒｔ＿Ｄに基づきＣｅｒｔ＿Ｄ´を生成し、生成したＣｅｒｔ＿Ｄ´を、アクセス制御部１０９へ出力する。
【００５８】
なお、Ｃｅｒｔ＿Ａ´、Ｃｅｒｔ＿Ｂ´、Ｃｅｒｔ＿Ｃ´、及びＣｅｒｔ＿Ｄ´のデータ構成については後述する。
また、ＴＲＭ制御部１１２は、ＴＲＭ入出力部１１１から電子マネーの支払い指示及び支払額通知情報とを受け取ると、内部メモリ入出力部１１３を介して内部メモリ１１４に格納されている電子マネー情報の残高から、支払額通知情報により示される金額を減算する。減算処理が終了すると、ＴＲＭ制御部１１２は、その旨を示す信号をＴＲＭ入出力部１１１を介してアクセス制御部１０９へ出力する。具体的に、これらの処理は、ＴＲＭ制御部１１２が内部にアプリケーションプログラムＢ又はＤを起動し、アプリケーションプログラムＢ及びＤを実行することにより実現される。
【００５９】
（ｃ）内部メモリ入出力部１１３は、ＴＲＭ制御部１１２と内部メモリ１１４との間で情報の受け渡しを行う。
（ｄ）内部メモリ１１４は、具体的にはＥＥＰＲＯＭで構成される。内部メモリには、予め初期秘密鍵ＳＫ＿００１０を記憶している。初期秘密鍵ＳＫ＿００１０は、先に述べた様にメモリカード１０の固有番号である。
【００６０】
更に、内部メモリ１１４は、電子マネー情報を記憶している。電子マネー情報は、物品やサービスの購入時に、決済に用いることができる金銭的価値を有する情報である。なお、電子マネー情報は、予めチャージ機などにより内部メモリ１１４に安全に格納されたものとする。
（４）記憶部１０４
記憶部１０４は、ＴＲＭ１０３の内部メモリ１１４よりセキュリティレベルの低いセキュア領域１１５とユーザ領域１１６とから成る。記憶部１０４は、具体的にはフラッシュメモリで構成される。
【００６１】
（ａ）セキュア領域１１５は、公開鍵暗号処理部１０７により生成された秘密鍵ＳＫ＿Ａ、ＳＫ＿Ｂ、ＳＫ＿Ｃ及びＳＫ＿Ｄを記憶する。秘密鍵ＳＫ＿Ａは、アプリケーションプログラムＡ及び公開鍵証明書Ｃｅｒｔ＿Ａ´に関連付けられて記憶され、秘密鍵ＳＫ＿Ｂは、アプリケーションプログラムＢ及び公開鍵証明書Ｃｅｒｔ＿Ｂ´に関連付けられて記憶され、秘密鍵ＳＫ＿Ｃは、アプリケーションプログラムＣ及び公開鍵証明書Ｃｅｒｔ＿Ｃ´に関連付けられて記憶され、秘密鍵ＳＫ＿Ｄは、アプリケーションプログラムＤ及び公開鍵証明書Ｃｅｒｔ＿Ｄ´に関連付けられて記憶されるものとする。
【００６２】
また、セキュア領域１１５は、コンテンツ鍵ＫCNT＿１及びコンテンツ鍵ＫCNT＿２を記憶する。コンテンツ鍵ＫCNT＿１は、コンテンツサーバ１（３０）から取得した暗号化コンテンツＥＣＮＴ＿１を復号するための復号鍵である。コンテンツ鍵ＫCNT＿２は、コンテンツサーバ２（５０）から取得した暗号化コンテンツＥＣＮＴ＿２を復号するための復号鍵である。ここで、コンテンツ鍵ＫCNT＿１は、暗号化コンテンツＥＣＮＴ＿１と関連付けられて記憶され、コンテンツ鍵ＫCNT＿２は、暗号化コンテンツＥＣＮＴ＿２と関連付けられて記憶されるものとする。
【００６３】
また、セキュア領域１１５は、決済サーバ１（４０）から取得した電子レシートＲＥＣ＿１及び決済サーバ２（６０）から取得した電子レシートＲＥＣ＿２を記憶する。
（ｂ）ユーザ領域１１６は、ＣＲＬ（Certification Revocation List）を記憶する。ＣＲＬは、不正を行った機器や、秘密鍵が暴露された機器など、無効化された機器のＩＤが登録されたリストであり、認証局７０により作成される。メモリカード１０は、ネットワーク８０及び端末２０を介して、認証局７０から常に最新のＣＲＬを受信し、受信した最新のＣＲＬを、それまでユーザ領域１１６に記憶していたＣＲＬに替えて記憶する。ＣＲＬは、メモリカード１０と各サーバとがＳＡＣを確立する際、公開鍵暗号処理部１０７により用いられる。
【００６４】
図４は、ＣＲＬの具体例であるＣＲＬ１２５のデータ構成を示す図である。同図に示すように、ＣＲＬ１２５は、無効化された機器のＩＤとして、ＩＤ＿００１２、ＩＤ＿００５８、ＩＤ＿０３７９、・・・が登録されている。
なお、ＣＲＬについては、「American National Standards Institute, American National Standardfor financial Services,ANSX9.57:Public Key Cryptography For the FinancialIndustry: Certificate Management,1997.」に詳しく開示されている。
【００６５】
また、ユーザ領域１１６は、初期証明書Ｃｅｒｔ＿００１０（１２０）を記憶する。初期証明書Ｃｅｒｔ＿００１０（１２０）は、先に述べたとおりメモリカード１０が認証局７０から取得した公開鍵証明書である。
また、ユーザ領域１１６は、公開鍵証明書Ｃｅｒｔ＿Ａ´を記憶する。公開鍵証明書Ｃｅｒｔ＿Ａ´は、コンテンツサーバ１（３０）から取得した公開鍵証明書Ｃｅｒｔ＿Ａに、ＴＲＭ制御部１１２が署名データを付加して生成した公開鍵証明書である。
【００６６】
図５（ａ）は、Ｃｅｒｔ＿Ａ（１３０）のデータ構成を示す図である。同図に示すように、Ｃｅｒｔ＿Ａ（１３０）は、サービスＩＤ「ＳＩＤ＿０１２３Ａ」（１３１）、会員番号「ＮＯ＿００１０」（１３２）、公開鍵「ＰＫ＿Ａ」（１３３）及び署名データ１「Ｓｉｇ＿００１０Ａ」（１３４）から構成される。
サービスＩＤ「ＳＩＤ＿０１２３Ａ」（１３１）は、コンテンツサーバ１（３０）が提供するサービスの内、メモリカード１０が登録し、利用するサービスの種類を示す。「ＳＩＤ＿０１２３Ａ」は、例えば、アプリケーションプログラムＡを用いて利用可能な映画の配信サービスであるとする。会員番号「ＮＯ＿００１０」（１３２）は、コンテンツサーバ１（３０）に登録される複数の機器から、メモリカード１０を識別するために割り振られた番号である。公開鍵「ＰＫ＿Ａ」（１３３）は、メモリカード１０が、アプリケーションプログラムＡ専用の秘密鍵ＳＫ＿Ａから生成した鍵データである。署名データ１「Ｓｉｇ＿００１０Ａ」（１３４）は、コンテンツサーバ１（３０）が、「ＳＩＤ＿０１２３Ａ」（１３１）、「ＮＯ＿００１０」（１３２）及び「ＰＫ＿Ａ」（１３３）に対し、署名アルゴリズムを施して生成したデータである。
【００６７】
図５（ｂ）は、セキュア領域１１５に記憶されるＣｅｒｔ＿Ａ´（１３５）のデータ構成を示す図である。同図に示す様に、Ｃｅｒｔ＿Ａ´（１３５）は、サービスＩＤ「ＳＩＤ＿０１２３Ａ」（１３１）、会員番号「ＮＯ＿００１０」（１３２）、公開鍵「ＰＫ＿Ａ」（１３３）、署名データ１「Ｓｉｇ＿００１０Ａ」（１３４）及び署名データ２「Ｓｉｇ＿ＡＳＤｅＸ」（１３６）から構成される。Ｃｅｒｔ＿Ａ´は、Ｃｅｒｔ＿Ａに署名データ２「Ｓｉｇ＿ＡＳＤｅＸ」（１３６）を付加した構成を有する。
【００６８】
署名データ２「Ｓｉｇ＿ＡＳＤｅＸ」（１３６）は、ＴＲＭ制御部１１２が「ＳＩＤ＿０１２３Ａ」（１３１）、「ＮＯ＿００１０」（１３２）、「ＰＫ＿Ａ」（１３３）及び「Ｓｉｇ＿００１０Ａ」（１３４）に対し、署名アルゴリズムを施して生成したデータである。
また、ユーザ領域１１６は、公開鍵証明書Ｃｅｒｔ＿Ｂ´を記憶する。公開鍵証明書Ｃｅｒｔ＿Ｂ´は、決済サーバ１（４０）から取得した公開鍵証明書Ｃｅｒｔ＿Ｂに、ＴＲＭ制御部１１２が署名データを付加して生成した公開鍵証明書である。
【００６９】
図６（ａ）は、Ｃｅｒｔ＿Ｂ（１４０）のデータ構成を示す図である。同図に示すように、Ｃｅｒｔ＿Ｂ（１４０）は、サービスＩＤ「ＳＩＤ＿０３２１Ｂ」（１４１）、会員番号「ＮＯ＿００１０」（１４２）、公開鍵「ＰＫ＿Ｂ」（１４３）及び署名データ１「Ｓｉｇ＿００１０Ｂ」（１４４）から構成される。
サービスＩＤ「ＳＩＤ＿０３２１Ｂ」（１４１）は、決済サーバ１（４０）が提供するサービスの内、メモリカード１０が利用するサービスの種類を示す。「ＳＩＤ＿０３２１Ｂ」は、例えば、アプリケーションプログラムＢを用いて利用可能な電子マネーの決済サービスであるとする。会員番号「ＮＯ＿００１０」（１４２）は、決済サーバ１（４０）に登録される複数の機器から、メモリカード１０を識別するために割り振られた番号である。公開鍵「ＰＫ＿Ｂ」（１４３）は、メモリカード１０が、アプリケーションプログラムＢ専用の秘密鍵ＳＫ＿Ｂから生成した鍵データである。署名データ１「Ｓｉｇ＿００１０Ｂ」（１４４）は、決済サーバ１（４０）が、「ＳＩＤ＿０１２３Ｂ」（１４１）、「ＮＯ＿００１０」（１４２）及び「ＰＫ＿Ｂ」（１４３）に対し、署名アルゴリズムを施して生成したデータである。
【００７０】
図６（ｂ）は、セキュア領域１１５に記憶されるＣｅｒｔ＿Ｂ´（１４５）のデータ構成を示す図である。同図に示す様に、Ｃｅｒｔ＿Ｂ´（１４５）は、サービスＩＤ「ＳＩＤ＿０３２１Ｂ」（１４１）、会員番号「ＮＯ＿００１０」（１４２）、公開鍵「ＰＫ＿Ｂ」（１４３）、署名データ１「Ｓｉｇ＿００１０Ｂ」（１４４）及び署名データ２「Ｓｉｇ＿ＢＳＤｅＸ」（１４６）から構成される。Ｃｅｒｔ＿Ｂ´は、Ｃｅｒｔ＿Ｂに署名データ２「Ｓｉｇ＿ＢＳＤｅＸ」（１４６）を付加した構成を有する。
【００７１】
署名データ２「Ｓｉｇ＿ＢＳＤｅＸ」（１４６）は、ＴＲＭ制御部１１２が「ＳＩＤ＿０３２１Ｂ」（１４１）、「ＮＯ＿００１０」（１４２）、「ＰＫ＿Ｂ」（１４３）及び「Ｓｉｇ＿００１０Ｂ」（１４４）に対し、署名アルゴリズムを施して生成したデータである。
また、ユーザ領域１１６は、公開鍵証明書Ｃｅｒｔ＿Ｃ´を記憶する。公開鍵証明書Ｃｅｒｔ＿Ｃ´は、コンテンツサーバ２（５０）から取得した公開鍵証明書Ｃｅｒｔ＿Ｃに、ＴＲＭ制御部１１２が署名データを付加して生成した公開鍵証明書である。
【００７２】
図７（ａ）は、Ｃｅｒｔ＿Ｃ（１５０）のデータ構成を示す図である。同図に示すように、Ｃｅｒｔ＿Ｃ（１５０）は、サービスＩＤ「ＳＩＤ＿０１２３Ｃ」（１５１）、会員番号「ＮＯ＿００２５」（１５２）、公開鍵「ＰＫ＿Ｃ」（１５３）及び署名データ１「Ｓｉｇ＿００１０Ｃ」（１５４）から構成される。
サービスＩＤ「ＳＩＤ＿０１２３Ｃ」（１５１）は、コンテンツサーバ２（５０）が提供するサービスの内、メモリカード１０が利用するサービスの種類を示す。「ＳＩＤ＿０１２３Ｃ」は、例えば、アプリケーションプログラムＣを用いて利用可能な音楽の配信サービスであるとする。会員番号「ＮＯ＿００２５」（１５２）は、コンテンツサーバ２（５０）に登録される複数の機器から、メモリカード１０を識別するために割り振られた番号である。公開鍵「ＰＫ＿Ｃ」（１５３）は、メモリカード１０が、アプリケーションプログラムＣ専用の秘密鍵ＳＫ＿Ｃから生成した鍵データである。署名データ１「Ｓｉｇ＿００１０Ｃ」（１５４）は、コンテンツサーバ２（５０）が、「ＳＩＤ＿０１２３Ｃ」（１５１）、「ＮＯ＿００２５」（１５２）及び「ＰＫ＿Ｃ」（１５３）に対し、署名アルゴリズムを施して生成したデータである。
【００７３】
図７（ｂ）は、セキュア領域１１５に記憶されるＣｅｒｔ＿Ｃ´（１５５）のデータ構成を示す図である。同図に示す様に、Ｃｅｒｔ＿Ｃ´（１５５）は、サービスＩＤ「ＳＩＤ＿０１２３Ｃ」（１５１）、会員番号「ＮＯ＿００２５」（１５２）、公開鍵「ＰＫ＿Ｃ」（１５３）、署名データ１「Ｓｉｇ＿００１０Ｃ」（１５４）及び署名データ２「Ｓｉｇ＿ＣＳＤｅＸ」（１５６）から構成される。Ｃｅｒｔ＿Ｃ´は、Ｃｅｒｔ＿Ｃに署名データ２「Ｓｉｇ＿ＣＳＤｅＸ」（１５６）を付加した構成を有する。
【００７４】
署名データ２「Ｓｉｇ＿ＣＳＤｅＸ」（１５６）は、ＴＲＭ制御部１１２が「ＳＩＤ＿０１２３Ｃ」（１５１）、「ＮＯ＿００２５」（１５２）、「ＰＫ＿Ｃ」（１５３）及び「Ｓｉｇ＿００１０Ｃ」（１５４）に対し、署名アルゴリズムを施して生成したデータである。
また、ユーザ領域１１６は、公開鍵証明書Ｃｅｒｔ＿Ｄ´を記憶する。公開鍵証明書Ｃｅｒｔ＿Ｄ´は、決済サーバ２（６０）から取得した公開鍵証明書Ｃｅｒｔ＿Ｄに、ＴＲＭ制御部１１２が署名データを付加して生成した公開鍵証明書である。
【００７５】
図８（ａ）は、Ｃｅｒｔ＿Ｄ（１６０）のデータ構成を示す図である。同図に示すように、Ｃｅｒｔ＿Ｄ（１６０）は、サービスＩＤ「ＳＩＤ＿０３２１Ｄ」（１６１）、会員番号「ＮＯ＿００２５」（１６２）、公開鍵「ＰＫ＿Ｄ」（１６３）及び署名データ１「Ｓｉｇ＿００１０Ｄ」（１６４）から構成される。
サービスＩＤ「ＳＩＤ＿０３２１Ｄ」（１６１）は、決済サーバ２（６０）が提供するサービスの内、メモリカード１０が利用するサービスの種類を示す。「ＳＩＤ＿０３２１Ｄ」は、例えば、アプリケーションプログラムＤを用いて利用可能な電子マネーの決済サービスであるとする。会員番号「ＮＯ＿００２５」（１６２）は、決済サーバ２（６０）に登録される複数の機器から、メモリカード１０を識別するために割り振られた番号である。公開鍵「ＰＫ＿Ｄ」（１６３）は、メモリカード１０が、アプリケーションプログラムＤ専用の秘密鍵ＳＫ＿Ｄから生成した鍵データである。署名データ１「Ｓｉｇ＿００１０Ｄ」（１６４）は、決済サーバ２（６０）が、「ＳＩＤ＿０３２１Ｄ」（１６１）、「ＮＯ＿００２５」（１６２）及び「ＰＫ＿Ｄ」（１６３）に対し、署名アルゴリズムを施して生成したデータである。
【００７６】
図８（ｂ）は、セキュア領域１１５に記憶されるＣｅｒｔ＿Ｄ´（１６５）のデータ構成を示す図である。同図に示す様に、Ｃｅｒｔ＿Ｄ´（１６５）は、サービスＩＤ「ＳＩＤ＿０３２１Ｄ」（１６１）、会員番号「ＮＯ＿００２５」（１６２）、公開鍵「ＰＫ＿Ｄ」（１６３）、署名データ１「Ｓｉｇ＿００１０Ｄ」（１６４）及び署名データ２「Ｓｉｇ＿ＤＳＤｅＸ」（１６６）から構成される。Ｃｅｒｔ＿Ｄ´は、Ｃｅｒｔ＿Ｄに署名データ２「Ｓｉｇ＿ＤＳＤｅＸ」（１６６）を付加した構成を有する。
【００７７】
署名データ２「Ｓｉｇ＿ＤＳＤｅＸ」（１６６）は、ＴＲＭ制御部１１２が「ＳＩＤ＿０３２１Ｄ」（１６１）、「ＮＯ＿００２５」（１６２）、「ＰＫ＿Ｄ」（１６３）及び「Ｓｉｇ＿００１０Ｄ」（１６４）に対し、署名アルゴリズムを施して生成したデータである。
また、ユーザ領域１１６は、コンテンツサーバ１（３０）の公開鍵ＫP＿Ａ、決済サーバ１（４０）の公開鍵ＫP＿Ｂ、コンテンツサーバ２（５０）の公開鍵ＫP＿Ｃ、及び決済サーバ２（６０）の公開鍵ＫP＿Ｄを記憶する。
【００７８】
また、ユーザ領域１１６は、コンテンツサーバ１（３０）から取得した暗号化コンテンツＥＣＮＴ＿１及びコンテンツサーバ２（５０）から取得した暗号化コンテンツＥＣＮＴ＿２を記憶する。
また、ユーザ領域１１６は、アプリケーションプログラムＡ、アプリケーションプログラムＢ、アプリケーションプログラムＣ、及びアプリケーションプログラムＤを記憶する。
【００７９】
図９は、メモリカード１０に記憶されている秘密鍵及び公開鍵証明書と、アプリケーションプログラムとの関係を説明する図である。
同図は、最上層に記述したアプリケーションプログラムが、下層にある全ての秘密鍵と公開鍵証明書とを用いて、各サーバとの間でサービス加入処理及びサービス利用処理を行うことを示している。
【００８０】
即ち、アプリケーションプログラムＡ（１７１）は、秘密鍵ＳＫ＿Ａ、公開鍵証明書Ｃｅｒｔ＿Ａ´初期秘密鍵ＳＫ＿００１０（１７０）及び初期証明書Ｃｅｒｔ＿００１０（１２０）を用いる。アプリケーションプログラムＢ（１７２）は、秘密鍵ＳＫ＿Ｂ、公開鍵証明書Ｃｅｒｔ＿Ｂ´、初期秘密鍵ＳＫ＿００１０（１７０）及び初期証明書Ｃｅｒｔ＿００１０（１２０）を用いる。アプリケーションプログラムＣは、秘密鍵ＳＫ＿Ｃ、公開鍵証明書Ｃｅｒｔ＿Ｃ´、初期秘密鍵ＳＫ＿００１０（１２０）及び初期証明書Ｃｅｒｔ００１０（１７０）を用いる。アプリケーションプログラムＤは、秘密鍵ＳＫ＿Ｄ、公開鍵証明書Ｃｅｒｔ＿Ｄ´、初期秘密鍵ＳＫ＿００１０（１７０）及び初期証明書Ｃｅｒｔ＿００１０（１７０）を用いる。
【００８１】
なお、破線１７５で囲まれたアプリケーションプログラムは、記憶部１０４のユーザ領域１１６に記憶されている。破線１７６で囲まれた秘密鍵は、記憶部１０４のセキュア領域１１５に記憶されている。破線１７７で囲まれた公開鍵証明書は、記憶部１０４のユーザ領域１１６に記憶されている。初期秘密鍵１７０は、ＴＲＭ１０３の内部メモリ１１４に記憶されている。初期証明書１２０は、記憶部１０４のユーザ領域１１６に記憶されている。
【００８２】
２．端末２０
ここでは、端末２０の構成について詳細に説明する。
図１０は、端末２０の構成を機能的に示す機能ブロック図である。同図に示す様に、端末２０は、通信部２０１、操作入力部２０２、制御部２０３、メモリカード入出力部２０４、認証部２０５及び再生部２０６から構成される。
【００８３】
端末２０は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクドライブユニット、ネットワーク接続ユニット、デコーダ、エンコーダ及びメモリカードスロット等から構成されるコンピュータシステムである。
（１）通信部２０１
通信部２０１は、Ｗｅｂブラウザを備えるネットワーク接続ユニットであって、ネットワーク８０を介してコンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）と接続されている。
【００８４】
通信部２０１は、ネットワーク８０を介して各サーバから情報を受信し、受信した情報を制御部２０３へ出力する。また、通信部２０１は、制御部２０３から情報を受け取り、受け取った情報をネットワーク８０を介して各サーバへ送信する。
ここで、通信部２０１が各サーバへ送信する情報の具体例は、サービス加入要求、サービス利用要求、各サーバとのＳＡＣ確立に用いる署名データ、鍵情報などである。また、通信部２０１が各サーバから受信する情報の具体例は、各サーバとのＳＡＣ確立に用いる署名データ、鍵情報、認証及び鍵共有処理の後に各サーバ装置から送信される暗号化コンテンツ、暗号化コンテンツ鍵、暗号化電子レシートなどである。
【００８５】
更に、通信部２０１は、ネットワーク８０を介して、認証局７０と接続されており、  認証局７０から常に最新のＣＲＬを受信し、受信した最新のＣＲＬを、制御部２０３及びメモリカード入出力部２０４を介してメモリカード１０へ出力する。
（２）操作入力部２０２
操作入力部２０２は、利用者からの操作を受け付けるボタンなどを備える。操作入力部２０２は、利用者からの操作を受け付け、受け付けた操作に対応するコマンドを生成し、生成したコマンドを制御部２０３へ出力する。コマンドの具体例は、サービス加入要求、サービス利用要求、コンテンツ再生要求などである。
【００８６】
（３）制御部２０３
制御部２０３は、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成され、マイクロプロセッサがコンピュータプログラムを実行することにより端末２０の全体を制御する。
制御部２０３は、通信部２０１から受け取る各種データを、メモリカード入出力部２０４を介してメモリカード１０へ出力する。また、制御部２０３は、操作入力部２０２からコンテンツの再生を示すコマンドを受け取ると、受け取ったコマンドをメモリカード入出力部２０４を介してメモリカード１０へ出力する。
【００８７】
また、制御部２０３は、メモリカード入出力部２０４を介してメモリカード１０からコンテンツを受け取ると、受け取ったコンテンツを再生部２０６へ出力する。
（４）メモリカード入出力部２０４
メモリカード入出力部２０４は、メモリカードスロットなどから構成される。メモリカード入出力部２０４は、メモリカードスロットにメモリカード１０が挿入されている状態において、制御部２０３とメモリカード１０との間で情報の入出力を行う。
【００８８】
（５）認証部２０５
認証部２０５は、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成される。ＲＯＭ又はＲＡＭには、認証用プログラムが記憶されており、マイクロプロセッサにより前記認証用プログラムが実行される。なお、ＲＯＭには予め認証用パスワードＰＷ＿０が記憶されている。ＰＷ＿０は、メモリカード１０と共有している秘密のデータであって、メモリカード１０の認証部１０６との間で行われるチャレンジ‐レスポンス型の認証処理に用いられる。
【００８９】
認証部２０５は、メモリカード入出力部２０４を介して、メモリカード１０から乱数Ｒ＿０を受信し、受信した乱数Ｒ＿０を暗号鍵として用い、認証用パスワードＰＷ＿０に暗号アルゴリズムＥを施して暗号文Ｅ２を生成する。認証部２０５は、生成した暗号文Ｅ２を、制御部２０３及びメモリカード入出力部２０４を介してメモリカード１０へ送信する。
【００９０】
なお、ここで用いられる暗号アルゴリズムＥの一例は、ＤＥＳである。
（６）再生部２０６
再生部２０６は、デコーダ、バッファなどから構成される。再生部２０６は、制御部２０３及びメモリカード入出力部２０４を介してメモリカード１０からコンテンツＣＮＴ＿１を受け取ると、受け取ったコンテンツＣＮＴ＿１をデコードし、映像信号及び音声信号を生成する。再生部２０６は、生成した映像信号及び音声信号を、外部に接続された出力装置に出力する。
【００９１】
また、再生部２０６は、メモリカード１０からコンテンツＣＮＴ＿２を受け取ると、受け取ったコンテンツＣＮＴ＿２をデコードし、音声信号を生成する。再生部２０６は、生成した音声信号を、出力装置に出力する。出力装置は、具体的にはモニタ及びスピーカである。
３．コンテンツサーバ１（３０）
ここでは、コンテンツサーバ１（３０）の構成について説明する。
【００９２】
図１１は、コンテンツサーバ１（３０）の構成を機能的に示す機能ブロック図である。同図に示すように、コンテンツサーバ１（３０）は、通信部３０１、制御部３０２、ＣＲＬ格納部３０３、Ｃｅｒｔ管理部３０４、登録情報管理部３０５、公開鍵暗号処理部３０６、暗号化コンテンツ格納部３０７及びコンテンツ鍵格納部３０８から構成される。
コンテンツサーバ１（３０）は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ネットワーク接続ユニットなどから構成されるコンピュータシステムである。
【００９３】
（１）通信部３０１
通信部３０１は、ネットワーク接続ユニットであって、ネットワーク８０を介して他の機器と通信を行う。
通信部３０１は、端末２０を介してメモリカード１０から、公開鍵ＰＫ＿Ａ、Ｃｅｒｔ＿Ａ´、ＳＡＣ確立に用いる署名データ及び鍵情報などを受信し、受信したこれらの情報を制御部３０２へ出力する。また、通信部３０１は、制御部３０２から公開鍵証明書Ｃｅｒｔ＿Ａ、ＳＡＣ確立に用いる署名データ、鍵情報、暗号化コンテンツＥＣＮＴ＿１、暗号化コンテンツ鍵ＥＫCNT＿１などを受け取り、受け取ったこれらの情報を、端末２０を介してメモリカード１０へ送信する。
【００９４】
更に、通信部３０１は、ネットワーク８０を介して、認証局７０と接続されている。通信部３０１は、ネットワーク８０を介して認証局７０から常に最新のＣＲＬを受信し、受信した最新のＣＲＬを、制御部３０２を介してＣＲＬ格納部３０３に格納する。
また、通信部３０１は、制御部３０２を介して公開鍵暗号処理部３０６から公開鍵ＰＫ＿００３０を受け取り、受け取った公開鍵ＰＫ＿００３０を、ネットワーク８０を介して認証局７０へ送信する。また、通信部３０１は、ネットワーク８０を介して認証局７０から公開鍵ＰＫ＿００３０に対応する公開鍵証明書である初期証明書Ｃｅｒｔ＿００３０を受信し、受信した初期証明書Ｃｅｒｔ＿００３０を、制御部３０２を介してＣｅｒｔ管理部３０４へ出力する。ここで、初期証明書Ｃｅｒｔ＿００３０は、認証局７０との間で安全に送受信されるものとする。
【００９５】
なお、ネットワーク８０を介して初期証明書Ｃｅｒｔ＿００３０を安全に送受信する構成は一例であって、初期証明書Ｃｅｒｔ＿００３０は、認証局７０からコンテンツサーバ１（３０）へ、郵送などにより通知されてもよい。
また、通信部３０１は、制御部３０２から決済依頼情報を受け取り、受け取った決済依頼情報を、ネットワーク８０を介して決済サーバ１（４０）へ送信する。決済依頼情報の詳細は後述する。
【００９６】
（２）制御部３０２
制御部３０２は、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成され、コンピュータプログラムをマイクロプロセッサが実行することにより、制御部３０２は、コンテンツサーバ１（３０）の全体を制御する。
（ａ）制御部３０２は、メモリカード１０からサービス加入要求を受け付けると、Ｃｅｒｔ管理部３０４に格納されている初期証明書Ｃｅｒｔ＿００３０を読み出す。更に、制御部３０２は、公開鍵暗号処理部３０６へＳＡＣ確立処理の指示を出す。
【００９７】
（ｂ）制御部３０２は、メモリカード１０からＣｅｒｔ＿Ａ´を含むサービス利用要求を受け取る。Ｃｅｒｔ＿Ａ´は、図５（ｂ）に示したように、署名データ１（１３４）及び署名データ２（１３５）を含む。制御部３０２は、署名データ１（１３４）及び署名データ２（１３５）を検証する。署名データ１（１３４）及び署名データ２（１３５）の検証に失敗した場合、制御部３０２は処理を終了し、署名データ１（１３４）及び署名データ２（１３５）の検証に成功した場合、制御部３０２は、公開鍵暗号処理部３０６へ、ＳＡＣ確立処理の指示を出す。
【００９８】
（ｃ）制御部３０２は、コンテンツサーバ１（３０）とメモリカード１０とがＳＡＣを確立した後、メモリカード１０との間で情報を送受信する際に、公開鍵暗号処理部３０６からセッション鍵を受け取り、受け取ったセッション鍵を暗号鍵又は復号鍵として用い、情報を暗号化してメモリカード１０へ送信したり、メモリカード１０から受信する暗号化された情報を復号したりする。
【００９９】
具体例として、制御部３０２は、サービス提供時に公開鍵暗号処理部３０６からセッション鍵を受け取り、暗号化コンテンツ格納部３０７から暗号化コンテンツＥＣＮＴ＿１を読み出し、コンテンツ鍵格納部３０８から暗号化コンテンツＥＣＮＴ＿１に対応するコンテンツ鍵ＫCNT＿１を読み出す。制御部３０２は、読み出したコンテンツ鍵ＫCNT＿１をセッション鍵で暗号化し暗号化コンテンツ鍵ＥＫCNT＿１を生成する。制御部３０２は、生成した暗号化コンテンツ鍵ＥＫCNT＿１を、暗号化コンテンツＥＣＮＴ＿１と共に通信部３０１を介してメモリカード１０へ送信する。
【０１００】
（ｄ）制御部３０２は、１の取引につき１の決済依頼情報を生成する。具体的には、制御部３０２は、暗号化コンテンツＥＣＮＴ＿１及び暗号化コンテンツ鍵ＥＫCNT＿１を、メモリカード１０へ送信した後、図１４に示す決済依頼情報４１０を生成する。ここでは、暗号化コンテンツＥＣＮＴ＿１及び暗号化コンテンツ鍵ＥＫCNT＿１を、メモリカード１０へ送信することを「取引」とよぶ。
【０１０１】
決済依頼情報４１０は、サービスＩＤ（ＳＩＤ＿０１２３Ａ）、会員番号（ＮＯ＿００１０）、利用番号（３２２００１）、金額（１２００）、及び利用日（２００５／３／２２）から構成される。
サービスＩＤ（ＳＩＤ＿０１２３Ａ）は、メモリカード１０が登録しているサービスの種類を示す。会員番号（ＮＯ＿００１０）は、メモリカード１０の会員番号である。利用番号（０３２２００１）は、当該取引が、メモリカード１０と３月２２日において行われた１回目の取引であることを示している。金額（１２００）は、当該取引の対価である。利用日（２００５／３／２２）は当該取引が行われた日付である。
【０１０２】
制御部３０２は、生成した決済依頼情報４１０を、通信部３０１及びネットワーク８０を介して、決済サーバ１（４０）へ送信する。
（３）ＣＲＬ格納部３０３
ＣＲＬ格納部３０３は、ＲＡＭで構成され、内部に最新のＣＲＬを格納している。ＣＲＬ格納部３０３が記憶しているＣＲＬは、図４に示したＣＲＬ１２５と同様に不正を行った機器や、秘密鍵が暴露された機器など、無効化された機器のＩＤが登録されたリストである。
【０１０３】
ＣＲＬ格納部３０３は、制御部３０２から新たなＣＲＬを受け取ると、それまで記憶していたＣＲＬに替えて新たなＣＲＬを記憶する。
（４）Ｃｅｒｔ管理部３０４
Ｃｅｒｔ管理部３０４は、制御部３０２から初期証明書Ｃｅｒｔ＿００３０を受け取り、受け取った初期証明書Ｃｅｒｔ＿００３０を内部に格納する。初期証明書Ｃｅｒｔ＿００３０は、認証局７０から受け取る公開鍵証明書である。
【０１０４】
図１３（ａ）は、初期証明書Ｃｅｒｔ＿００３０（３１０）のデータ構成を示す図である。同図に示すように、Ｃｅｒｔ＿００３０（３１０）は、コンテンツサーバ１（３０）を一意に識別する識別子である機器ＩＤ（ＩＤ＿００３０）と、コンテンツサーバ１（３０）の公開鍵ＰＫ＿００３０と、機器ＩＤ（ＩＤ＿００３０）及び公開鍵ＰＫ＿００３０に対し、認証局７０により生成された署名データＳＩＧ＿００３０ＣＡから成る。
【０１０５】
（５）登録情報管理部３０５
登録情報管理部３０５は、公開鍵暗号処理部３０６により公開鍵証明書が発行された機器の登録情報を管理する。登録情報は、登録された機器の公開鍵、機器に割り振った会員番号、機器のネットワークアドレス、ユーザに関する情報などを含み、登録された機器及びユーザの管理に用いられる。また、登録情報は、制御部３０２がメモリカード１０から送信される公開鍵証明書Ｃｅｒｔ＿Ａ´を検証するときに用いられる。
【０１０６】
（６）公開鍵暗号処理部３０６
（初期証明書Ｃｅｒｔ＿００３０の要求）
公開鍵暗号処理部３０６は、メモリカード１０との通信に先立ち、認証局７０から公開鍵証明書の発行を受ける。
より具体的には、公開鍵暗号処理部３０６は、予め内部に記憶している初期秘密鍵ＳＫ＿００３０から、公開鍵ＰＫ＿００３０を生成する。公開鍵暗号処理部３０６は、予め内部に記憶している自身のデバイスＩＤ「ＩＤ＿００３０」と生成した公開鍵ＰＫ＿００３０とを、制御部３０２及び通信部３０１を介して、認証局７０へ送信する。
【０１０７】
（メモリカード１０の登録）
公開鍵暗号処理部３０６は、サービス加入・登録処理において、制御部３０２から指示を受けてメモリカード１０との間でＳＡＣを確立し、メモリカード１０とセッション鍵を共有する。公開鍵暗号処理部３０６は、メモリカード１０と共有したセッション鍵を、制御部３０２へ出力する。
【０１０８】
公開鍵暗号処理部３０６は、秘密鍵ＫS＿Ａを生成し、更に、ＫP＿Ａ＝ＫS＿Ａ＊Ｇ（ｍｏｄ  ｐ）を計算し、公開鍵ＫP＿Ａを生成する。公開鍵暗号処理部３０６は、生成した公開鍵ＫP＿Ａを、ＳＡＣを介してメモリカード１０へ送信する。ここで、公開鍵暗号処理部３０６は、予め楕円曲線の方程式Ｅ：ｙ2＝ｘ3＋ａｘ＋ｂ（ｍｏｄ  ｐ）が与えられているものとする。
【０１０９】
公開鍵暗号処理部３０６は、ＳＡＣを介してメモリカード１０から公開鍵ＰＫ＿Ａを受け取り、受け取った公開鍵ＰＫ＿Ａに基づき、公開鍵証明書Ｃｅｒｔ＿Ａ（１３０）を生成する。Ｃｅｒｔ＿Ａ（１３０）のデータ構成は、図５（ａ）に示したとおりである。公開鍵暗号処理部３０６は、生成したＣｅｒｔ＿Ａ（１３０）を、ＳＡＣを介してメモリカード１０へ送信する。
【０１１０】
（メモリカード１０へサービス提供）
公開鍵暗号処理部３０６は、メモリカード１０へのサービス提供処理において、制御部３０２からの指示を受けてメモリカード１０との間でＳＡＣを確立し、メモリカード１０とセッション鍵を共有する。公開鍵暗号処理部３０６は、メモリカード１０と共有したセッション鍵を、制御部３０２へ出力する。なお、ＳＡＣ確立処理の詳細については、後述する。
【０１１１】
（７）暗号化コンテンツ格納部３０７
暗号化コンテンツ格納部３０７は、ハードディスクユニットから構成されており、内部に暗号化コンテンツＥＣＮＴ＿１を格納している。
暗号化コンテンツＥＣＮＴ＿１は、コンテンツ鍵ＫCNT＿１を暗号鍵として用い、コンテンツＣＮＴ＿１に暗号アルゴリズムＥ1を施して生成されたデータである。ここで、コンテンツＣＮＴ＿１は、映像信号及び音声信号が、ＭＰＥＧなど所定の規格又は規則に基づき圧縮符号化された圧縮符号化されたデジタルデータである。また、暗号アルゴリズムＥ1の具体例は、ＤＥＳである。
【０１１２】
（８）コンテンツ鍵格納部３０８
コンテンツ鍵格納部３０８は、ＲＯＭ又はＲＡＭから構成されており、内部にコンテンツ鍵ＫCNT＿１を格納している。
なお、暗号化コンテンツ格納部３０７及びコンテンツ鍵格納部３０８には、複数の暗号化コンテンツ及びコンテンツ鍵が記憶されていてもよい。この場合、暗号化コンテンツとコンテンツ鍵とは１対１に対応しており、相互に関連付けられて、暗号化コンテンツ格納部３０７及びコンテンツ鍵格納部３０８に記憶されているものとする。
【０１１３】
４．決済サーバ１（４０）
ここでは、決済サーバ１（４０）の構成について説明する。
図１２は、決済サーバ１（４０）の構成を機能的に示す機能ブロック図である。同図に示すように、決済サーバ１（４０）は、通信部４０１、制御部４０２、ＣＲＬ格納部４０３、Ｃｅｒｔ管理部４０４、公開鍵暗号処理部４０５及び決済部４０６から構成される。
【０１１４】
決済サーバ１（４０）は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ネットワーク接続ユニットなどから構成されるコンピュータシステムであって、コンテンツサーバ１（３０）によってメモリカード１０に提供されたコンテンツの決済を行う機器である。
（１）通信部４０１
通信部４０１は、ネットワーク接続ユニットであって、ネットワーク８０を介して他の機器と通信を行う。
【０１１５】
通信部４０１は、端末２０を介してメモリカード１０から、公開鍵ＰＫ＿Ｂ、Ｃｅｒｔ＿Ｂ´、ＳＡＣ確立に用いる署名データ、鍵情報、減算済通知などを受信し、受信したこれらの情報を制御部４０２へ出力する。また、通信部４０１は、制御部４０２から公開鍵証明書Ｃｅｒｔ＿Ｂ、ＳＡＣ確立に用いる署名データ、鍵情報、支払額通知情報、暗号化電子レシートＥＲＥＣ＿１などを受け取り、受け取ったこれらの情報をメモリカード１０へ送信する。
【０１１６】
更に、通信部４０１は、ネットワーク８０を介して、認証局７０と接続されている。通信部４０１は、ネットワーク８０を介して認証局７０から常に最新のＣＲＬを受信し、受信した最新のＣＲＬを、制御部４０２を介してＣＲＬ格納部４０３に格納する。
また、通信部４０１は、制御部４０２を介して公開鍵暗号処理部４０５から公開鍵ＰＫ＿００４０を受け取り、受け取った公開鍵ＰＫ＿００４０を、ネットワーク８０を介して認証局７０へ送信する。また、通信部４０１は、ネットワーク８０を介して認証局７０から公開鍵ＰＫ＿００４０に対応する公開鍵証明書である初期証明書Ｃｅｒｔ＿００４０を受信し、受信した初期証明書Ｃｅｒｔ＿００４０を、制御部４０２を介してＣｅｒｔ管理部４０４へ出力する。ここで、初期証明書Ｃｅｒｔ＿００４０は、認証局７０との間で安全に送受信されるものとする。なお、初期証明書Ｃｅｒｔ＿００４０は、ネットワーク８０を介して送受信せずに郵送などで通知されてもよい。
【０１１７】
また、通信部４０１は、ネットワーク８０を介してコンテンツサーバ１（３０）から決済依頼情報４１０を受信し、受信した決済依頼情報４１０を、制御部４０２へ出力する。
また、通信部４０１は、制御部３０２から暗号化された支払額通知情報及び暗号化された電子レシートＥＲＥＣ＿１を受け取り、受け取った暗号化支払額通知情報及び暗号化電子レシートＥＲＥＣ＿１を、ネットワーク８０を介してメモリカード１０へ送信する。
【０１１８】
（２）制御部４０２
制御部４０２は、各構成要素に対し指示を与え、決済サーバ１（４０）全体を制御する。
制御部４０２が行う処理の具体例として、公開鍵暗号処理部４０５によりメモリカード１０との間でＳＡＣが確立されたのち、メモリカード１０との間で情報を送受信する際に、制御部４０２は、公開鍵暗号処理部４０５から、メモリカード１０と共有したセッション鍵を受け取り、受け取ったセッション鍵を暗号鍵として用い、決済部４０６から受け取る支払額通知及び電子レシートＲＥＣ＿１を暗号化し、暗号化支払額通知及び暗号化電子レシートＥＲＥＣ＿１を生成する。制御部４０２は、生成した暗号化支払額通知及び暗号化電子レシートＥＲＥＣ＿１を、通信部４０１を介して、メモリカード１０へ送信する。
【０１１９】
（３）ＣＲＬ格納部４０３
ＣＲＬ格納部４０３は、コンテンツサーバ１（３０）の構成要素であるＣＲＬ格納部３０３と同様の機能を有するため説明を省略する。
（４）Ｃｅｒｔ管理部４０４
Ｃｅｒｔ管理部４０４は、認証局７０から初期証明書Ｃｅｒｔ＿００４０を受け取り、受け取った初期証明書Ｃｅｒｔ＿００４０を内部に格納する。
【０１２０】
図１３（ｂ）は、決済サーバ１（４０）が認証局７０から受け取る公開鍵証明書である初期証明書Ｃｅｒｔ＿００４０（３２０）のデータ構成を示す図である。同図に示すように、Ｃｅｒｔ＿００４０（３２０）は、決済サーバ１（４０）を一意に識別する識別子である機器ＩＤ（ＩＤ＿００４０）と、上述した公開鍵ＰＫ＿００４０と、機器ＩＤ（ＩＤ＿００４０）及び公開鍵ＰＫ＿００４０に対し、認証局７０により生成された署名データＳＩＧ＿００４０ＣＡから成る。
【０１２１】
また、Ｃｅｒｔ管理部４０４は、公開鍵暗号処理部４０５により公開鍵証明書が発行された機器の登録情報を管理する。登録情報は、登録された機器の公開鍵、機器に割り振った会員番号、機器のネットワークアドレス、ユーザに関する情報などを含み、登録された機器及びユーザの管理に用いられる。また、登録情報は、メモリカード１０とＳＡＣを確立するときに用いられる。
【０１２２】
ここで、決済サーバ１（４０）は、コンテンツサーバ１（３０）が提供したコンテンツの決済を処理するサーバであるため、コンテンツサーバ１（３０）が会員番号を割り振った機器には、同一の会員番号を割り振るものとする。具体的には、コンテンツサーバ１（３０）と決済サーバ１（４０）とは、メモリカード１０に対し「ＮＯ＿００１０」という同一の会員番号を割り振る。
【０１２３】
（５）公開鍵暗号処理部４０５
（初期証明書Ｃｅｒｔ＿００４０の要求）
公開鍵暗号処理部４０５は、メモリカード１０との通信に先立ち、認証局７０から公開鍵証明書の発行を受ける。
より具体的には、公開鍵暗号処理部４０５は、予め内部に記憶している初期秘密鍵ＳＫ＿００４０から、公開鍵ＰＫ＿００４０を生成する。公開鍵暗号処理部４０５は、予め内部に記憶している自身のデバイスＩＤ「ＩＤ＿００４０」と生成した公開鍵ＰＫ＿００３０とを、制御部４０２及び通信部４０１を介して、認証局７０へ送信する。
【０１２４】
（メモリカード１０の登録）
公開鍵暗号処理部４０５は、サービス加入・登録処理において、制御部４０２から指示を受けてメモリカード１０との間でＳＡＣを確立する。
公開鍵暗号処理部４０５は、秘密鍵ＫS＿Ｂを生成し、更に、ＫP＿Ｂ＝ＫS＿Ｂ＊Ｇ（ｍｏｄ  ｐ）を計算し、公開鍵ＫP＿Ｂを生成する。公開鍵暗号処理部４０５は、生成した公開鍵ＫP＿Ｂを、ＳＡＣを介してメモリカード１０へ送信する。ここで、公開鍵暗号処理部４０５は、予め楕円曲線の方程式Ｅ：ｙ2＝ｘ3＋ａｘ＋ｂ（ｍｏｄ  ｐ）が与えられているものとする。
【０１２５】
公開鍵暗号処理部４０５は、ＳＡＣを介してメモリカード１０から公開鍵ＰＫ＿Ｂを受け取り、受け取った公開鍵ＰＫ＿Ｂに基づき、公開鍵証明書Ｃｅｒｔ＿Ｂ（１４０）を生成する。Ｃｅｒｔ＿Ｂ（１４０）のデータ構成は、図５（ａ）に示したとおりである。公開鍵暗号処理部４０５は、生成したＣｅｒｔ＿Ｂ（１４０）を、ＳＡＣを介してメモリカード１０へ送信する。
【０１２６】
（決済処理）
公開鍵暗号処理部４０５は、メモリカード１０との間で行う決済処理において、制御部４０２からの指示を受けてメモリカード１０との間でＳＡＣを確立する。
（６）決済部４０６
決済部４０６は、制御部４０２から図１４に示した決済依頼情報４１０を受け取る。決済部４０６は、決済依頼情報４１０から金額１２００を読み出す。決済部４０６は、「１２００円」を示す支払額通知情報を生成し、生成した支払額通知情報を制御部４０２へ出力する。
【０１２７】
また、決済部４０６は、制御部４０２及び通信部４０１を介して、メモリカード１０から、電子マネー情報が減算済みであることを示す減算済情報を受け取る。決済部４０６は、減算済情報を受け取ると、図１５に示す電子レシート（ＲＥＣ＿１）４２０を生成し、生成した電子レシート（ＲＥＣ＿１）４２０を、制御部４０２へ出力する。
電子レシート（ＲＥＣ＿１）４２０は、サービスＩＤ（ＳＩＤ＿０３２１Ｂ）、会員番号ＮＯ＿００１０、決済番号０３２２００１、金額１２００及び決済日２００５／３／２２から構成される。
【０１２８】
サービスＩＤ（ＳＩＤ＿０３２１Ｂ）は、メモリカード１０が登録しているサービスの種類を示す。会員番号（ＮＯ＿００１０）は、メモリカード１０の会員番号である。利用番号（０３２２００１）は、当該決済処理が、メモリカード１０と３月２２日において行われた１回目の決済処理であることを示している。金額（１２００）は、決済処理された金額である。利用日（２００５／３／２２）は当該決済処理が行われた日付である。
【０１２９】
５．コンテンツサーバ２（５０）
コンテンツサーバ２（５０）は、ネットワーク８０を介して音楽データであるコンテンツを配信するサーバ装置である。
図１３（ｃ）は、コンテンツサーバ２（５０）が認証局７０から受け取る初期証明書Ｃｅｒｔ＿００５０（３４０）のデータ構成を示す図である。同図に示す様に、初期証明書Ｃｅｒｔ＿００５０（３４０）は、コンテンツサーバ２（５０）を一意に識別する識別子である機器ＩＤ（ＩＤ＿００５０）と、コンテンツサーバ２（５０）の公開鍵ＰＫ＿００５０と、機器ＩＤ（ＩＤ＿００５０）及び公開鍵ＰＫ＿００５０に対し、認証局７０により生成された署名データＳＩＧ＿００５０ＣＡから成る。
【０１３０】
コンテンツサーバ２（５０）は、先ず、初期証明書Ｃｅｒｔ＿００５０を用いて、メモリカード１０とＳＡＣを確立し、ＳＡＣを介して、メモリカード１０へ公開鍵証明書Ｃｅｒｔ＿Ｃ（図７（ａ）参照）を送信する。次に、コンテンツサーバ２（５０）は、Ｃｅｒｔ＿Ｃに基づき、メモリカード１０が生成したＣｅｒｔ＿Ｃ´（図７（ｂ）参照）を用いて、メモリカード１０とＳＡＣを確立し、ＳＡＣを介して、メモリカード１０へ暗号化コンテンツ及び暗号化コンテンツ鍵を送信する。
【０１３１】
コンテンツサーバ２（５０）の構成及び機能は、コンテンツサーバ１（３０）と同様であるため、その構成については図示しておらず、詳細な説明は省略する。
６．決済サーバ２（６０）
決済サーバ２（６０）は、コンテンツサーバ２（５０）によってメモリカード１０に提供されたコンテンツの決済を行う機器である。
【０１３２】
図１３（ｄ）は、決済サーバ２（６０）が認証局７０から受け取る初期証明書Ｃｅｒｔ＿００６０（３６０）のデータ構成を示す図である。同図に示す様に、初期証明書Ｃｅｒｔ＿００６０（３６０）は、決済サーバ２（６０）を一意に識別する識別子である機器ＩＤ（ＩＤ＿００６０）と、決済サーバ２（６０）の公開鍵ＰＫ＿００６０と、機器ＩＤ（ＩＤ＿００６０）及び公開鍵ＰＫ＿００６０に対し、認証局７０により生成された署名データＳＩＧ＿００６０ＣＡから成る。
【０１３３】
決済サーバ２（６０）は、先ず、初期証明書Ｃｅｒｔ＿００６０を用いて、メモリカード１０とＳＡＣを確立し、ＳＡＣを介して、メモリカード１０へ公開鍵証明書Ｃｅｒｔ＿Ｄ（図８（ａ）参照）を送信する。次に、決済サーバ２（６０）は、Ｃｅｒｔ＿Ｄに基づき、メモリカード１０が生成したＣｅｒｔ＿Ｄ´（図８（ｂ）参照）を用いて、メモリカード１０とＳＡＣを確立し、ＳＡＣを介して、メモリカード１０との間で決済処理を行う。
【０１３４】
決済サーバ２（６０）の構成及び機能は、決済サーバ１（４０）と同様であるため、その構成については図示しておらず、詳細な説明は省略する。
７．認証局７０
認証局７０は、ネットワーク８０上において、データを交換する際、データの発行元が信頼のおける組織又は機器であることを証明するための署名を発行する装置である。
【０１３５】
＜動作＞
ここでは、コンテンツ提供システム１の動作について説明する。
１．システム全体
図１６はコンテンツ提供システム１全体の動作を示すフローチャートである。
先ず、メモリカード１０、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）の各機器は、認証局７０（ＣＡ）から、初期証明書を取得する（ステップＳ１）。続いて、各機器は、アプリケーションプログラム毎にステップＳ２からステップＳ４まで繰り返す。
【０１３６】
アプリケーションプログラム毎に、メモリカード１０と対応するサーバとの間でサービス加入・登録処理を行う（ステップＳ３）。メモリカード１０にダウンロードされている全てのアプリケーションプログラムについて、ステップＳ３の処理が終了すると（ステップＳ４）、メモリカード１０とサーバとは、サービス利用処理を行う（ステップＳ５）。その後、端末２０によりコンテンツ再生を行う（ステップＳ６）。
【０１３７】
２．初期証明書取得処理
図１７は、各機器と認証局７０との間で行われる初期証明書取得処理の動作を示すフローチャートである。なお、ここに示す動作は、図１６に示したフローチャートの、ステップＳ１の詳細である。各機器とは、メモリカード１０、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）をさす。
【０１３８】
先ず、各機器は、初期秘密鍵ＳＫ＿Ｌを読み出す。ここで、Ｌ＝００１０，００３０，００４０，００５０又は００６０である（ステップS１０１）。次に、各機器は、読み出した初期秘密鍵ＳＫ＿Ｌに基づき公開鍵ＰＫ＿Ｌを生成する（ステップＳ１０２）。ここで、初期秘密鍵ＳＫ＿Ｌから公開鍵ＰＫ＿Ｌを生成するアルゴリズムは限定しない。一例としては、ＲＳＡ暗号である。
【０１３９】
各機器は、公開鍵ＰＫ＿Ｌと、内部に記憶している自身のデバイスＩＤとを含む情報を、認証局７０へ送信し、認証局７０は、公開鍵ＰＫ＿ＬとデバイスＩＤとを含む情報を受信する（ステップＳ１０３）。
認証局７０は、ステップＳ１０３で受信した情報の送信元（公開鍵証明書の依頼元）について、公開鍵、メールアドレス、ユーザ、ユーザが属する組織などが確かに存在し、且つ、正しいことを検証する（ステップＳ１０４）。
【０１４０】
依頼元が不正な場合（ステップＳ１０５でＮＯ）、認証局７０は処理を終了する。
依頼元が正当な場合（ステップＳ１０５でＹＥＳ）、認証局７０は、受信した公開鍵ＰＫ＿Ｌ及びデバイスＩＤに署名データＳｉｇ＿ＬＣＡを付加し、初期証明書Ｃｅｒｔ＿Ｌを生成する（ステップＳ１０６）。認証局７０は、生成した初期証明書Ｃｅｒｔ＿Ｌを依頼元の各機器へ送信し、各機器は、初期証明書Ｃｅｒｔ＿Ｌを受信する（ステップＳ１０７）。
【０１４１】
各機器は、受信した初期証明書Ｃｅｒｔ＿Ｌを格納する（ステップＳ１０８）。具体的には、メモリカード１０は、Ｃｅｒｔ＿００１０を、記憶部１０４のユーザ領域１１６に格納し、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）は、Ｃｅｒｔ＿００３０、Ｃｅｒｔ＿００４０、Ｃｅｒｔ＿００５０及びＣｅｒｔ＿００６０を、それぞれのＣｅｒｔ管理部に格納する。
【０１４２】
認証局７０から公開鍵証明書を取得すると、メモリカード１０、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）は、ステップＳ２の処理に続く。
３．サービス加入・登録処理
図１８及び図１９は、メモリカード１０と、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）とにおけるサービス加入・登録処理の動作を示すフローチャートである。なお、ここに示す動作は、図１６に示したフローチャートのステップＳ３の詳細である。
【０１４３】
メモリカード１０において、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）に対するサービス加入要求が発生する（ステップＳ１５０）。サービス加入要求は、具体的には、アプリケーションプログラムがメモリカード１０にダウンロードされたことなどにより発生するものとする。
なお、ここでは説明の便宜上、コンテンツサーバ１（３０）、決済サーバ１（４０）、コンテンツサーバ２（５０）及び決済サーバ２（６０）を、単に「サーバ」又は「各サーバ」ということがある。
【０１４４】
メモリカード１０の認証部１０６は、メモリカード１０が挿入されている端末２０を認証する（ステップＳ１５１）。その後、メモリカード１０と各サーバとの間でＳＡＣ確立の処理を行う（ステップＳ１５２）。
メモリカード１０は、乱数生成器により、各アプリケーションプログラムに固有の秘密鍵ＳＫ＿Ｘ（Ｘ＝Ａ、Ｂ、Ｃ、及びＤ）を生成する（ステップＳ１５３）。
【０１４５】
公開鍵暗号処理部１０７は、生成した秘密鍵ＳＫ＿Ｘに基づき、ＰＫ＿Ｘ＝ＳＫ＿Ｘ＊Ｇ（ｍｏｄ  ｐ）を計算することにより、公開鍵ＰＫ＿Ｘを生成する（ステップＳ１５４）。次に、メモリカード１０は、セッション鍵を暗号鍵として用い、生成した公開鍵ＰＫ＿Ｘを暗号化し（ステップＳ１５５）、暗号化した公開鍵ＰＫ＿Ｘを、端末２０及びネットワーク８０を介して各サーバへ送信し、各サーバは、暗号化された公開鍵ＰＫ＿Ｘを受信する（ステップＳ１５６）。
【０１４６】
各サーバは、暗号化された公開鍵ＰＫ＿Ｘを、セッション鍵を用いて復号する（ステップＳ１５７）。
続いて、各サーバは、メモリカード１０から受信した公開鍵ＰＫ＿Ｘに対して公開鍵証明書Ｃｅｒｔ＿Ｘを生成する（ステップＳ１５８）、次に、各サーバは、乱数生成器を用いて秘密鍵ＫS＿Ｘを生成し（ステップＳ１５９）、生成した秘密鍵ＫS＿Ｘから公開鍵ＫP＿Ｘ＝ＫS＿Ｘ＊Ｇを生成する（ステップＳ１６０）。各サーバは、セッション鍵を暗号鍵として用い、公開鍵証明書Ｃｅｒｔ＿Ｎ及び公開鍵ＫP＿Ｘを暗号化し（ステップＳ１６１）、暗号化したＣｅｒｔ＿Ｘ及びＫP＿Ｘをネットワーク８０及び端末２０を介して、メモリカード１０へ送信し、メモリカード１０は、暗号化されたＣｅｒｔ＿Ｘ及びＫP＿Ｘを受信する（ステップＳ１６２）。
【０１４７】
各サーバは、メモリカード１０に関する登録情報を生成して管理する（ステップＳ１６３）。
メモリカード１０は、受信したＣｅｒｔ＿Ｘ及びＫP＿Ｘを、セッション鍵を用いて復号し（ステップＳ１６４）、復号した公Ｃｅｒｔ＿Ｘに含まれる署名データＳｉｇ００１０Ｘを、復号したＫP＿Ｘを用いて検証する（ステップＳ１６５）。
【０１４８】
署名検証に失敗した場合（ステップＳ１６６でＮＯ）、メモリカード１０は、ステップＳ３の処理に戻る。署名検証に成功した場合（ステップＳ１６６でＹＥＳ）、メモリカード１０は、Ｃｅｒｔ＿Ｘに対する署名データＳｉｇ＿ＸＳＤｅＸを生成し（ステップＳ１６７）、Ｃｅｒｔ＿Ｘに署名データＳｉｇ＿ＸＳＤｅＸを付加し、Ｃｅｒｔ＿Ｘ´を生成する（ステップＳ１６８）。
【０１４９】
メモリカード１０は、生成したＣｅｒｔ＿Ｘ´を、記憶部１０４のユーザ領域１１６に格納する（ステップＳ１６９）。
４．ＳＡＣ確立処理１
図２０及び図２１は、サービス加入・登録処理のおけるメモリカード１０と各サーバとにおけるＳＡＣ確立処理の動作を示すフローチャートである。なお、ここに示す動作は、図１８に示したフローチャートにおけるステップＳ１５２の詳細である。
【０１５０】
ここで、Ｇｅｎ（）を鍵生成関数とし、Ｙをシステム固有のパラメータとする。また、鍵生成関数Ｇｅｎ（）は、Ｇｅｎ（Ｘ、Ｇｅｎ（Ｙ，Ｚ））＝Ｇｅｎ（Ｙ，Ｇｅｎ（Ｘ，Ｚ））の関係を満たすものとする。なお、鍵生成関数は、任意の公知技術で実現可能なため、詳細については省略する。
先ず、メモリカード１０のアクセス制御部１０９は、ユーザ領域１１６から初期証明書Ｃｅｒｔ＿００１０を読み出す（ステップＳ２０１）。アクセス制御部１０９は、入出力部１０１、端末２０及びネットワーク８０を介して初期証明書Ｃｅｒｔ＿００１０を各サーバへ送信し、各サーバの通信部、初期証明書Ｃｅｒｔ＿００１０を受信する（ステップＳ２０２）。
【０１５１】
各サーバの公開鍵暗号処理部は、認証局７０の公開鍵ＰＫ＿ＣＡを用いて初期証明書Ｃｅｒｔ＿００１０に含まれる署名データＳｉｇ＿００１０ＣＡに対して、署名検証アルゴリズムを施して署名検証する（ステップＳ２０３）。なお、各サーバは、認証局７０の公開鍵ＰＫ＿ＣＡを既知であるとする。検証結果が失敗の場合（ステップＳ２０４でＮＯ）、各サーバは処理を終了する。検証結果が成功の場合（ステップＳ２０４でＹＥＳ）、各サーバの公開鍵暗号処理部は、制御部を介してＣＲＬ格納部からＣＲＬを読み出し（ステップＳ２０５）、公開鍵証明書Ｃｅｒｔ＿００１０に含まれるＩＤ＿００１０がＣＲＬに登録されているか否かを判断する。
【０１５２】
ＩＤ＿００１０がＣＲＬに登録されていると判断する場合（ステップＳ２０６でＹ              ＥＳ）、各サーバは処理を終了する。ＩＤ＿００１０がＣＲＬに登録されていないと判断する場合（ステップＳ２０６でＮＯ）、各サーバの公開鍵暗号処理部は、制御部を介してＣｅｒｔ管理部から初期証明書Ｃｅｒｔ＿Ｌを読み出す（ステップＳ２０７）。各サーバは、ネットワーク８０及び端末２０を介して初期証明書Ｃｅｒｔ＿Ｌをメモリカード１０へ送信し、メモリカード１０の入出力部１０１は、Ｃｅｒｔ＿Ｌを受信する（ステップＳ２０８）。
【０１５３】
メモリカード１０の公開鍵暗号処理部１０７は、公開鍵証明書Ｃｅｒｔ＿Ｌを受け取ると、認証局７０の公開鍵ＰＫ＿ＣＡを用いてＣｅｒｔ＿Ｌに含まれる署名データＳｉｇ＿ＬＣＡに対して、署名検証アルゴリズムを施して署名検証する（ステップＳ２０９）。なお、メモリカード１０は、認証局７０の公開鍵ＰＫ＿ＣＡを既知であるとする。検証結果が失敗の場合（ステップＳ２１０でＮＯ）、メモリカード１０は処理を終了する。検証結果が成功の場合（ステップＳ２１０でＹＥＳ）、公開鍵暗号処理部１０７は、内部のＣＲＬを読み出し（ステップＳ２１１）、公開鍵証明書Ｃｅｒｔ＿Ｌに含まれるＩＤ＿ＬがＣＲＬに登録されているか否かを判断する。
【０１５４】
ＩＤ＿ＬがＣＲＬに登録されていると判断する場合（ステップＳ２１２でＹＥＳ）、メモリカード１０は処理を終了する。ＩＤ＿ＬがＣＲＬに登録されていないと判断する場合（ステップＳ２１２でＮＯ）、メモリカード１０は処理を継続する。
ステップＳ２０７の処理に続いて、各サーバの公開鍵暗号処理部は、乱数Ｃｈａ＿Ｂを生成する（ステップＳ２１３）。各サーバの通信部は、ネットワーク８０及び端末２０を介して、乱数Ｃｈａ＿Ｂをメモリカード１０へ送信し、メモリカード１０の入出力部１０１は、乱数Ｃｈａ＿Ｂを受信する（ステップＳ２１４）。
【０１５５】
メモリカード１０の公開鍵暗号処理部１０７は、乱数Ｃｈａ＿Ｂを受け取ると、アクセス制御部１０９を介してＴＲＭ制御部１１２へ乱数Ｃｈａ＿Ｂを出力する。ＴＲＭ制御部１１２は、内部メモリ入出力部１１３を介して、内部メモリ１１４から初期秘密鍵ＳＫ＿００１０を読み出す。ＴＲＭ制御部１１２は、乱数Ｃｈａ＿Ｂに、初期秘密鍵ＳＫ＿００１０を用いて署名アルゴリズムを施し、署名データＳｉｇ＿ａを生成する（ステップＳ２１５）。ＴＲＭ制御部１１２は、生成した署名データＳｉｇ＿ａを、アクセス制御部１０９へ出力する。
【０１５６】
アクセス制御部１０９は、入出力部１０１、端末２０及びネットワーク８０を介して、生成した署名データＳｉｇ＿ａを、各サーバへ送信し、各サーバの通信部は、署名データＳｉｇ＿ａを受信する（ステップＳ２１６）。
各サーバの公開鍵暗号処理部は、署名データＳｉｇ＿ａを受け取ると、ステップＳ２０２でＣｅｒｔ＿００１０に含んで受け取った公開鍵ＰＫ＿００１０を用いて、署名データＳｉｇ＿ａに署名検証アルゴリズムを施して署名検証する（ステップＳ２１７）。検証結果が失敗の場合（ステップＳ２１８でＮＯ）、各サーバは処理を終了する。検証結果が成功の場合（ステップＳ２１８でＹＥＳ）、各サーバは処理を継続する。
【０１５７】
一方、メモリカード１０は、ステップＳ２１５の処理に続いて、公開鍵暗号処理部１０７において乱数Ｃｈａ＿Ａを生成する（ステップＳ２１９）。公開鍵暗号処理部１０７は、生成した乱数Ｃｈａ＿Ａを、端末２０及びネットワーク８０を介して各サーバへ送信し、各サーバの通信部は、乱数Ｃｈａ＿Ａを受信する（ステップＳ２２０）。
各サーバの公開鍵暗号処理部は、乱数Ｃｈａ＿Ａを受け取り、受け取った乱数Ｃｈａ＿Ａに、内部に保持している秘密鍵ＳＫ＿Ｌを用い、署名アルゴリズムを施して署名データＳｉｇ＿ｂを生成する（ステップＳ２２１）。各サーバは、生成した署名データＳｉｇ＿ｂを、ネットワーク８０及び端末２０を介してメモリカード１０へ送信し、メモリカード１０の入出力部１０１は、署名データＳｉｇ＿ｂを受け取る（ステップＳ２２２）。
【０１５８】
メモリカード１０の公開鍵暗号処理部１０７は、署名データＳｉｇ＿ｂを受け取ると、ステップＳ２０８でＣｅｒｔ＿Ｌに含んで受け取った公開鍵ＰＫ＿Ｌを用いて署名データＳｉｇ＿ｂに署名検証アルゴリズムを施して署名検証する（ステップＳ２２３）。検証結果が失敗の場合（ステップＳ２２４でＮＯ）、メモリカード１０は処理を終了する。検証結果が成功の場合（ステップＳ２２４でＹＥＳ）、メモリカード１０の公開鍵暗号処理部１０７は、乱数「ａ」を生成し（ステップＳ２２５）、生成した乱数「ａ」を用いてＫｅｙ＿Ａ＝Ｇｅｎ（ａ，Ｙ）を生成する（ステップＳ２２６）。メモリカード１０は、生成したＫｅｙ＿Ａを、端末２０及びネットワーク８０を介して各サーバへ送信し、各サーバの通信部は、Ｋｅｙ＿Ａを受信する（ステップＳ２２７）。
【０１５９】
各サーバの公開鍵暗号処理部は、Ｋｅｙ＿Ａを受け取ると、乱数「ｂ」を生成し（ステップＳ２２８）、生成した乱数「ｂ」を用いてＫｅｙ＿Ｂ＝Ｇｅｎ（ｂ，Ｙ）を生成する（ステップＳ２２９）。各サーバの通信部は、公開鍵暗号処理部により生成されたＫｅｙ＿Ｂをネットワーク８０及び端末２０を介して、メモリカード１０へ送信し、メモリカード１０の入出力部１０１は、Ｋｅｙ＿Ｂを受け取る（ステップＳ２３０）。
【０１６０】
また、各サーバの公開鍵暗号処理部は、ステップＳ２２８で生成した乱数「ｂ」と、ステップＳ２２７で受け取ったＫｅｙ＿Ａとを用いて、Ｋｅｙ＿ＡＢ＝Ｇｅｎ（ｂ，Ｋｅｙ＿Ａ）＝Ｇｅｎ（ｂ，Ｇｅｎ（ａ，Ｙ））を生成し（ステップＳ２３１）、生成したＫｅｙ＿ＡＢをセッション鍵として制御部へ出力する（ステップＳ２３２）。その後、各サーバは、図１８のステップＳ１５７に戻り、処理を続ける。
【０１６１】
一方、メモリカード１０の公開鍵暗号処理部１０７は、ステップＳ２３０でＫｅｙ＿Ｂを受け取ると、Ｋｅｙ＿ＢとステップＳ２２５で生成した乱数「ａ」とからＫｅｙ＿ＡＢ＝Ｇｅｎ（ａ,Ｋｅｙ＿Ｂ）＝Ｇｅｎ（ａ,Ｇｅｎ（ｂ，Ｙ））を生成し（ステップＳ２３３）、生成したＫｅｙ＿ＡＢをセッション鍵とする（ステップＳ２３４）。その後メモリカード１０は、図１８のステップＳ１５３に戻り、処理を続ける。
【０１６２】
５．サービス利用処理の動作
図２２及び図２３は、サービス利用処理の動作を示すフローチャートである。なお、ここに示す動作は、図１６に示したフローチャートのステップＳ５の詳細である。
メモリカード１０は、端末２０からコンテンツ要求を受け付けると（ステップＳ３０１）、要求されたコンテンツに応じてアプリケーションプログラムＡ又はアプリケーションプログラムＣを起動させる（ステップＳ３０２）。
【０１６３】
メモリカード１０は、端末２０の認証処理を行い（ステップＳ３０３）、その後、アプリケーションＡ及びアプリケーションＣの何れかに対応するコンテンツサーバ１（３０）又はコンテンツサーバ２（４０）とＳＡＣ確立処理を行う（ステップＳ３０４）。
メモリカード１０とＳＡＣを確立したコンテンツサーバ１（３０）又はコンテンツサーバ２（４０）は、暗号化コンテンツ格納部から暗号化コンテンツを読み出し（ステップＳ３０５）、コンテンツ鍵格納部から、コンテンツ鍵を読み出す（ステップＳ３０６）。
【０１６４】
続いて、コンテンツサーバ１（３０）又はコンテンツサーバ２（４０）は、ＳＡＣで共有したセッション鍵を暗号鍵として用いてコンテンツ鍵を暗号化し、暗号化コンテンツ鍵を生成する（ステップＳ３０７）。コンテンツサーバ１（３０）又はコンテンツサーバ２（４０）は、暗号化コンテンツと暗号化コンテンツ鍵とを、ネットワーク８０及び端末２０を介してメモリカード１０へ送信し、メモリカード１０は、暗号化コンテンツと暗号化コンテンツ鍵とを受信する（ステップＳ３０８）。
【０１６５】
メモリカード１０のアクセス制御部１０９は、暗号化コンテンツをユーザ領域１１６へ格納する（ステップＳ３０９）。公開鍵暗号処理部１０７は、暗号化コンテンツ鍵を、セッション鍵を用いて復号し、コンテンツ鍵を生成する（ステップＳ３１０）。続いて、アクセス制御部１０９は、復号したコンテンツ鍵をセキュア領域１１５へ格納する（ステップＳ３１１）。
【０１６６】
コンテンツサーバ１（３０）又はコンテンツサーバ２（４０）は、決済依頼情報を生成する（ステップＳ３１２）。コンテンツサーバ１（３０）は、生成した決済依頼情報を、ネットワーク８０を介して決済サーバ１（５０）へ送信し、コンテンツサーバ２（４０）は、生成した決済依頼情報を、ネットワーク８０を介して決済サーバ２へ送信する（ステップＳ３１３）。その後、コンテンツサーバ１（３０）及びコンテンツサーバ２（４０）は、図１６のフローチャートに戻る。
【０１６７】
決済サーバ１（５０）又は決済サーバ２（６０）は、決済依頼情報を受信する（ステップＳ４０１）。決済サーバ１（５０）又は決済サーバ２（６０）は、受信した決済依頼情報からメモリカード１０を特定し、メモリカード１０に対し決済要求を送信し、メモリカード１０は決済要求を受信する（ステップＳ４０２）。
メモリカード１０は、決済サーバ１（５０）から決済要求を受信する場合には、アプリケーションプログラムＢを起動させ、決済サーバ２（６０）から決済要求を受信する場合には、アプリケーションプログラムＤを起動させる（ステップＳ４０３）。
【０１６８】
次に、メモリカード１０は、端末２０の認証処理を行い（ステップＳ４０４）、続いて、決済サーバ１（５０）又は決済サーバ２（６０）と、ＳＡＣ確立処理を行う（ステップＳ４０５）。
メモリカード１０とＳＡＣを確立した決済サーバ１（５０）又は決済サーバ２（６０）は、支払額通知情報を生成し（ステップＳ４０６）、生成した支払額通知情報をＳＡＣで共有したセッション鍵を暗号鍵として用い暗号化し、暗号化支払額通知情報を生成する（ステップＳ４０７）。決済サーバ１（５０）又は決済サーバ２（６０）は、生成した暗号化支払額通知情報を、メモリカード１０へ送信し、メモリカード１０は、暗号化支払額通知情報を受信する（ステップＳ４０８）。
【０１６９】
メモリカード１０の公開鍵暗号処理部１０７は、セッション鍵を用いて支払額通知情報を復号し（ステップＳ４０９）、アクセス制御部１０９に対し、電子マネー情報の減算を指示する。アクセス制御部１０９は、ＴＲＭ制御部１１２に対し電子マネー情報の減算を指示し、ＴＲＭ制御部１１２は、内部メモリ１１４に格納されている電子マネー情報の残高から支払額を減算する（ステップＳ４１０）。
【０１７０】
その後メモリカード１０は、決済サーバ１（５０）又は決済サーバ２（６０）に対し、減算済通知を送信し、決済サーバ１（５０）又は決済サーバ２（６０）は、減算済通知を受信する（ステップＳ４１１）。
減算済通知を受信した決済サーバ１（５０）又は決済サーバ２（６０）の決済部は、電子レシートを生成し（ステップＳ４１２）、生成した電子レシートをセッション鍵を用いて暗号化し、暗号化電子レシートを生成する（ステップＳ４１３）。決済サーバ１（５０）又は決済サーバ２（６０）は、暗号化電子レシートを、メモリカード１０へ送信し、メモリカード１０は、暗号化電子レシートを受信する（ステップＳ４１４）。
【０１７１】
メモリカード１０の公開鍵暗号処理部１０７は、暗号化電子レシートを、セッション鍵を用いて復号し（ステップＳ４１５）、アクセス制御部１０９は、電子レシートをセキュア領域１１５に格納する（ステップＳ４１６）。
メモリカード１０、決済サーバ１（５０）及び決済サーバ２（６０）は、図１６のフローチャートに戻る。
【０１７２】
６．ＳＡＣ確立処理２
図２４、２５及び２６は、サービス利用時におけるメモリカード１０と各サーバとにおけるＳＡＣ確立処理の動作を示すフローチャートである。なお、ここに示す動作は、図２２に示したフローチャートのステップＳ３０４及び図２３に示したフローチャートのステップＳ４０５の詳細である。
【０１７３】
ここで、Ｇｅｎ（）を鍵生成関数とし、Ｙをシステム固有のパラメータとする。また、鍵生成関数Ｇｅｎ（）は、Ｇｅｎ（Ｘ、Ｇｅｎ（Ｙ，Ｚ））＝Ｇｅｎ（Ｙ，Ｇｅｎ（Ｘ，Ｚ））の関係を満たすものとする。
先ず、メモリカード１０は、ユーザ領域１１６に格納されている公開鍵証明書Ｃｅｒｔ＿Ｘ´を読み出す（ステップＳ６０１）。ここで、ＸはＡ，Ｂ，Ｃ又はＤであり、メモリカード１０は、起動されているアプリケーションプログラムに応じた公開鍵証明書を読み出す。
【０１７４】
メモリカード１０は、端末２０及びネットワーク８０を介して、Ｃｅｒｔ＿Ｘ´を各サーバへ送信し、各サーバの通信部はＣｅｒｔ＿Ｘ´を受信する（ステップＳ６０２）。
各サーバは、受信したＣｅｒｔ＿Ｘ´に含まれる署名データ１を検証し、自身の署名データであるか否か判断する（ステップ６０３）。署名データ１の検証に失敗すると（ステップＳ６０４でＮＯ）、各サーバは処理を終了する。署名データ１の検証に成功すると（ステップＳ６０４でＹＥＳ）、続いて各サーバは、メモリカード１０の公開鍵ＰＫ＿００１０を用いて、Ｃｅｒｔ＿Ｘ´に含まれる署名データ２を検証する（ステップＳ６０５）。
【０１７５】
署名データ２の検証に失敗すると（ステップＳ６０６でＮＯ）、各サーバは処理を終了する。署名データ２の検証に成功すると（ステップＳ６０６でＹＥＳ）、各サーバは、登録情報を用いてＣｅｒｔ＿Ｘ´に含まれるサービスＩＤや会員番号の確認を行う（ステップＳ７０５）。メモリカード１０が登録されていない場合（ステップＳ７０６でＮＯ）、各サーバは処理を終了する。
【０１７６】
メモリカード１０が確かに登録済みである場合（ステップＳ７０６でＹＥＳ）、各サーバは、Ｃｅｒｔ管理部から自身の初期証明書Ｃｅｒｔ＿Ｌを読み出す（ステップＳ７０７）。各サーバは、ネットワーク８０及び端末２０を介して初期証明書Ｃｅｒｔ＿Ｌをメモリカード１０へ送信し、メモリカード１０は、Ｃｅｒｔ＿Ｌを受信する（ステップＳ７０８）。
【０１７７】
メモリカード１０の公開鍵暗号処理部１０７は、初期証明書Ｃｅｒｔ＿Ｌを受け取ると、認証局７０の公開鍵ＰＫ＿ＣＡを用いて、Ｃｅｒｔ＿Ｌに含まれる署名データＳｉｇ＿ＬＣＡを検証する（ステップＳ７０９）。検証結果が失敗の場合（ステップＳ７１０でＮＯ）、メモリカード１０は処理を終了する。検証結果が成功の場合（ステップＳ７１０でＹＥＳ）、公開鍵暗号処理部１０７は、アクセス制御部１０９を介してユーザ領域１１６からＣＲＬを読み出し（ステップＳ７１１）、初期証明書Ｃｅｒｔ＿Ｌに含まれるＩＤ＿ＬがＣＲＬに登録されているか否かを判断する。
【０１７８】
ＩＤ＿ＬがＣＲＬに登録されていると判断する場合（ステップＳ７１２でＹＥＳ）、メモリカード１０は処理を終了する。ＩＤ＿ＬがＣＲＬに登録されていないと判断する場合（ステップＳ７１２でＮＯ）、メモリカード１０は処理を継続する。
ステップＳ７０７の処理に続いて、各サーバの公開鍵暗号処理部は、乱数Ｃｈａ＿Ｄを生成する（ステップＳ７１３）。各サーバは、ネットワーク８０及び端末２０を介して乱数Ｃｈａ＿Ｄをメモリカード１０へ送信し、メモリカード１０は、乱数Ｃｈａ＿Ｄを受信する（ステップＳ７１４）。
【０１７９】
メモリカード１０の公開鍵暗号処理部１０７は、Ｃｈａ＿Ｄを受け取ると、
Ｒ１＝（ｒｘ，ｒｙ）＝Ｃｈａ＿Ｄ＊Ｇ
を計算し（ステップＳ７１５）、
Ｓ×Ｃｈａ＿Ｄ＝ｍ＋ｒｘ×ＳＫ＿Ｘ  （ｍｏｄ  ｑ）
から、Ｓを計算する（ステップＳ７１６）。ここで、ｑは、楕円曲線Ｅの位数であり、ｍは、メモリカード１０が各サーバへ送信するメッセージであり、ＳＫ＿Ｘは、各アプリケーションプログラムに対応する、即ち各サーバに対応するメモリカード１０の秘密鍵である。
【０１８０】
メモリカード１０は、得られたＲ１とＳとから署名データＳｉｇ＿ｄ＝（Ｒ１，Ｓ）を生成し（ステップＳ７１７）、生成した署名データＳｉｇ＿ｄとメッセージｍと共に各サーバへ送信し、各サーバは署名データＳｉｇ＿ｄとメッセージｍとを受信する（ステップＳ７１８）。
各サーバの公開鍵暗号処理部は、
ｍ＊Ｇ＋ｒｘ＊ＰＫ＿Ｘ
を計算し、更に、
Ｓ＊Ｒ１
を計算する（ステップＳ７１９）。
【０１８１】
公開鍵暗号処理部は、Ｓ＊Ｒ１＝ｍ＊Ｇ＋ｒｘ＊ＰＫ＿Ｘ
が成立するかどうか判定することにより、送信者であるメモリカード１０の身元を確認する（ステップＳ７２０）。これは、
Ｓ＊Ｒ１＝｛（（ｍ＋ｒｘ×ＳＫ＿Ｘ）／Ｃｈａ＿Ｄ）×Ｃｈａ＿Ｄ｝＊Ｇ
＝（ｍ＋ｒｘ×ＳＫ＿Ｘ）＊Ｇ
＝ｍ＊Ｇ＋（ｒｘ×ＳＫ＿Ｘ）＊Ｇ
＝ｍ＊Ｇ＋ｒｘ＊ＰＫ＿Ｘ
となることから明らかである。
【０１８２】
Ｓ＊Ｒ１≠ｍ＊Ｇ＋ｒｘ＊ＰＫ＿Ｘの場合（ステップＳ７２０でＮＯ）、各サーバは処理を終了する。Ｓ＊Ｒ１＝ｍ＊Ｇ＋ｒｘ＊ＰＫ＿Ｘの場合（ステップＳ７２０でＹＥＳ）、各サーバは、処理を継続する。
一方で、メモリカード１０は、ステップＳ７１８においてＳｉｇ＿ｄ及びｍを各サーバへ送信した後、公開鍵暗号処理部１０７は、乱数Ｃｈａ＿Ｅを生成し（ステップＳ７２１）、生成した乱数Ｃｈａ＿Ｅを、端末２０及びネットワーク８０を介して、各サーバへ送信し、各サーバの通信部はＣｈａ＿Ｅを受信する（ステップＳ７２２）。
【０１８３】
各サーバの公開鍵暗号処理部は、制御部を介して乱数Ｃｈａ＿Ｅを受け取ると、
Ｒ２＝（ｒｘ，ｒｙ）＝Ｃｈａ＿Ｅ＊Ｇ
を計算し（ステップＳ７２３）、
Ｓ´×Ｃｈａ＿Ｅ＝ｍ´＋ｒｘ×Ｋｓ＿Ｘ  （ｍｏｄ  ｑ）
から、Ｓ´を計算する（ステップＳ７２４）。ここで、ｍ´は、各サーバがメモリカード１０へ送信するメッセージであり、Ｋｓ＿Ｘは、各サーバの秘密鍵である。
【０１８４】
各サーバは、得られたＲ２とＳ´とから、署名データＳｉｇ＿ｅ＝（Ｒ２，Ｓ´）を生成し（ステップＳ７２５）、生成した署名データＳｉｇ＿ｅをメッセージｍ´と共にメモリカード１０へ送信し、メモリカード１０は署名データＳｉｇ＿ｅとメッセージｍ´とを受信する（ステップＳ７２６）。
メモリカード１０の公開鍵暗号処理部１０７は、
ｍ´＊Ｇ＋ｒｘ＊Ｋｐ＿Ｘ
を計算する（ステップＳ７３１）。ここで、Ｋｐ＿Ｘは、Ｋｐ＿Ｘ＝Ｋｓ＿Ｘ＊Ｇを計算することにより生成された各サーバ装置の公開鍵である。
【０１８５】
公開鍵暗号処理部１０７は、更に、
Ｓ´＊Ｒ２
を計算する（ステップＳ７３１）。
公開鍵暗号処理部１０７は、Ｓ´＊Ｒ２＝ｍ´＊Ｇ＋ｒｘ＊Ｋｐ＿Ｘ
が成立するかどうか判定することにより、送信者である各サーバの身元を確認する（ステップＳ７３２）。これは、
Ｓ´＊Ｒ２＝｛（（ｍ´＋ｒｘ×Ｋｓ＿Ｘ）／Ｃｈａ＿Ｅ）×Ｃｈａ＿Ｅ｝＊Ｇ
＝（ｍ´＋ｒｘ×Ｋｓ＿Ｘ）＊Ｇ
＝ｍ´＊Ｇ＋（ｒｘ×Ｋｓ＿Ｘ）＊Ｇ
＝ｍ´＊Ｇ＋ｒｘ＊Ｋｐ＿Ｘ
となることから明らかである。
【０１８６】
Ｓ´＊Ｒ２≠ｍ´＊Ｇ＋ｒｘ＊Ｋｐ＿Ｘの場合（ステップＳ７３２でＮＯ）、メモリカード１０は処理を終了する。Ｓ´＊Ｒ２＝ｍ＊Ｇ＋ｒｘ＊Ｋｐ＿Ｘの場合（ステップＳ７３２でＹＥＳ）、公開鍵暗号処理部１０７は、乱数「ｄ」を生成し（ステップＳ７３３）、生成した乱数「ｄ」を用いてＫｅｙ＿Ｄ＝Ｇｅｎ（ｄ，Ｙ）を生成する（ステップＳ７３４）。メモリカード１０は、公開鍵暗号処理部１０７により生成されたＫｅｙ＿Ｄを、端末２０及びネットワーク８０を介して各サーバへ送信し、各サーバの通信部は、Ｋｅｙ＿Ｄを受信する（ステップＳ７３５）。
【０１８７】
各サーバの公開鍵暗号処理部は、Ｋｅｙ＿Ｄを受け取ると、乱数「ｅ」を生成し（ステップＳ７３６）、生成した乱数「ｅ」を用いてＫｅｙ＿Ｅ＝Ｇｅｎ（ｅ，Ｙ）を生成する（ステップＳ７３７）。各サーバの通信部は、公開鍵暗号処理部により生成されたＫｅｙ＿Ｅを、端末２０及びネットワーク８０を介してメモリカード１０へ送信し、メモリカード１０は、Ｋｅｙ＿Ｅを受信する（ステップＳ７３８）。
【０１８８】
また、各サーバの公開鍵暗号処理部は、ステップＳ７３５で生成した乱数「ｅ」と、ステップＳ７３５で受け取ったＫｅｙ＿Ｄとを用いて、Ｋｅｙ＿ＤＥ＝Ｇｅｎ（ｅ，Ｋｅｙ＿Ｄ）＝Ｇｅｎ（ｅ，Ｇｅｎ（ｄ，Ｙ））を生成し（ステップＳ７４１）、生成したＫｅｙ＿ＤＥをセッション鍵として制御部へ出力する（ステップＳ７４２）。その後、各サーバは、図２２又は図２３に戻り処理を続ける。
【０１８９】
一方、メモリカード１０の公開鍵暗号処理部１０７は、ステップＳ７３８でＫｅｙ＿Ｅを受け取ると、Ｋｅｙ＿ＥとステップＳ７３３で生成した乱数「ｄ」とからＫｅｙ＿ＤＥ＝Ｇｅｎ（ｄ,Ｋｅｙ＿Ｅ）＝Ｇｅｎ（ｄ,Ｇｅｎ（ｅ，Ｙ））を生成し（ステップＳ７３９）、生成したＫｅｙ＿ＤＥをセッション鍵とする（ステップＳ７４０）。その後メモリカード１０は、図２２又は図２３に戻り処理を続ける。
【０１９０】
７．端末２０の認証処理
図２７は、メモリカード１０による端末２０の認証処理を示すフローチャートである。なお、ここに示す動作は、図１８に示したフローチャートにおけるステップＳ１５１、図２２に示したフローチャートにおけるステップＳ２０３、図２３に示したフローチャートにおけるステップＳ４０４の詳細である。
【０１９１】
メモリカード１０の認証部１０６は、乱数Ｒ＿０を生成する（ステップＳ５０１）。認証部１０６は、生成した乱数Ｒ＿０を、内部に保持すると共に、端末２０へ出力し、端末２０は、Ｒ＿０を受け取る（ステップＳ５０２）。
端末２０の認証部２０５は、乱数Ｒ＿０を受け取ると、Ｒ＿０を暗号鍵として用い、内部に保持している認証用パスワードＰＷ＿０に暗号アルゴリズムＥを施して暗号文Ｅ２を生成する（ステップＳ５０３）。一方、認証部１０６は、ステップＳ５０１で生成した乱数Ｒ＿０を暗号鍵として用い、端末２０と共有している認証用パスワードＰＷ＿０に暗号アルゴリズムＥを施して暗号文Ｅ１を生成する（ステップＳ５０４）。
【０１９２】
端末２０の認証部２０５は、ステップＳ５０３で生成した暗号文Ｅ２をメモリカード１０へ出力し、メモリカード１０は、暗号文Ｅ２を受け取る（ステップＳ５０５）。メモリカード１０の認証部１０６は、暗号文Ｅ２を受け取ると、受け取った暗号文Ｅ２と、ステップＳ５０４で生成した暗号文Ｅ１とを比較する（ステップＳ５０６）。
暗号文Ｅ１と暗号文Ｅ２とが一致する場合（ステップＳ５０７でＹＥＳ）、メモリカード１０は端末２０の認証に成功であり、認証部１０６は、コマンド処理部１０５へ「認証ＯＫ」を示す信号を出力する（ステップＳ５０８）。
【０１９３】
暗号文Ｅ１と暗号文Ｅ２とが一致しない場合（ステップＳ５０７でＮＯ）、メモリカード１０は、端末２０の認証に失敗であり、認証部１０６は、コマンド処理部１０５へ「認証ＮＧ」を示す信号を出力し（ステップＳ５０９）、処理を終了する。
＜その他の変形例＞
なお、本発明を上記実施例に基づき説明してきたが、上記実施例は、発明を実施するための１形態に過ぎず、本発明は上記実施例に限定されないのは勿論であり、以下のような場合も本発明に含まれる。
【０１９４】
（１）上記実施例では、メモリカード１０がアプリケーションプログラム毎に秘密鍵と公開鍵とのペアを生成する構成を有するが、この構成は必須ではない。メモリカード１０は、認証局など外部の機器で生成された秘密鍵と公開鍵とのペアを取得するように構成してもよい。
（２）上記実施例では、メモリカード１０は、コンテンツ鍵を暗号化せずに格納する構成を有するが、この構成は必須ではない。メモリカード１０は、取得した暗号化コンテンツ鍵をセッション鍵で復号したのち、別途異なる鍵で暗号化したのち格納するように構成してもよい。
【０１９５】
（３）上記実施例では、暗号化コンテンツを格納する領域と暗号化コンテンツを復号する復号部とがメモリカード１０に存在する構成を有するが、この構成は必須ではない。暗号化コンテンツを格納する領域と暗号化コンテンツを復号する復号部とが端末２０の内部に存在する構成も本発明に含まれる。また、メモリカード１０及び端末２０以外の機器や可搬媒体などを用いて、上記実施例と同様の機能を実現できる構成であれば如何なる構成であってもよい。
【０１９６】
また、このように構成される場合、メモリカード１０及び端末２０で行うコンテンツの送受信、メモリカード１０と他の機器及び他の可搬媒体とで行うコンテンツの送受信は、ＳＡＣを介して安全に行うように構成してもよい。
（３）上記実施例では、メモリカード１０を端末２０に挿入し、メモリカード１０は端末２０を介して各サーバからサービスを受ける構成を有するが、本発明は、端末２０自身が各サーバとＳＡＣを確立し、各サーバからサービスを受ける構成であってもよい。また、端末２０は、メモリカード１０と同等の機能を有するＬＳＩを実装するように構成してもよい。
【０１９７】
（４）上記実施例では、公開鍵暗号方式を用いてＳＡＣを確立する構成を有するが、本発明は、この構成に限定されるものではない。公開鍵暗号方式の代わりに共通鍵暗号方式を利用してもよい。
この場合、署名生成／検証の代わりに共通鍵暗号を利用したＭＡＣ（Message Authentication Code）の生成／検証処理を用いる。ＭＡＣ生成／検証処理については、非特許文献１に開示された公知の技術で実現可能である。
【０１９８】
（５）上記実施例では、メモリカード１０は、各サーバから受信した公開鍵証明書Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄは、各サーバの署名データを検証してから、検証結果に基づいて格納する構成を有するが、この構成は必須ではなく、署名データの検証を行わずに格納する（上記実施例のフローチャートにおいて、図１８のステップＳ１６５及び図１９のステップＳ１６６を省略する）構成も本発明に含まれる。
【０１９９】
（６）メモリカード１０が、各サーバから取得した公開鍵証明書Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄに自身の署名データ（実施例では「署名データ２」）を付し、Ｃｅｒｔ＿Ａ´、Ｃｅｒｔ＿Ｂ´、Ｃｅｒｔ＿Ｃ´及びＣｅｒｔ＿Ｄ´を生成する構成を有する。これにより、サービス利用時には、各サーバは、署名データ１と署名データ２とを検証することにより、Ｃｅｒｔ＿Ａ´、Ｃｅｒｔ＿Ｂ´、Ｃｅｒｔ＿Ｃ´及びＣｅｒｔ＿Ｄ´が、自機が与えた証明書であるか否かの判断と、メモリカード１０が正当な機器であるか否かの判断とを行うことができる。
【０２００】
しかしながら、上記の構成は必須ではない。メモリカード１０は、各サーバから取得した公開鍵証明書Ｃｅｒｔ＿Ａ、Ｃｅｒｔ＿Ｂ、Ｃｅｒｔ＿Ｃ及びＣｅｒｔ＿Ｄをそのまま格納してもよい。この場合、各サーバは、サービス提供時には署名データ１のみ検証を行う。
また、上記実施例のように署名データ２を付加する場合には、ＳＡＣ確立処理におけるチャレンジ‐レスポンス認証を省略するように構成してもよい。
【０２０１】
また、メモリカード１０は、署名データ２を付加するか、又は、ＳＡＣ確立処理においてチャレンジ‐レスポンス認証を行うか、又は、署名データ２を付加し且つＳＡＣ確立処理においてチャレンジ‐レスポンス認証を行うかの何れかを選択し、選択された方法に応じて処理を行うように制御してもよい。
（７）上記実施例では、コンテンツのデコードを端末２０の再生部２０６で行う構成を有するが、コンテンツのデコードは、メモリカード１０内部で行ってもよい。
【０２０２】
（８）上記実施例では、コンテンツサーバと決済サーバとは独立した二つの装置で構成されるが、これら二つのサーバの機能を備えた一つの装置で構成去れる場合も本発明に含まれる。またコンテンツサーバと決済サーバとはＬＡＮを介して通信し、各サーバとメモリカード１０とはネットワーク８０を介して通信するように構成してもよい。
一つの装置が複数に機能を担い、複数のアプリケーションプログラムに対応する複数の機能を担っていてもよい。
【０２０３】
（９）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ‐ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ‐ＲＯＭ、ＤＶＤ‐ＲＡＭ、ＢＤ（Ｂｌｕ‐ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０２０４】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０２０５】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（１０）また、図２８に示すように、上記実施例におけるメモリカード１０の機能ブロックの全てが集積回路であるＬＳＩ１０００として実現される場合も本発明に含まれる。また、機能ブロックの全てに限らず一部がＬＳＩとして実現される場合も本発明に含まれる。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０２０６】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（FieldProgrammable Gate Array）やＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
更には、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応などが可能性として有り得る。
【０２０７】
（１１）上記実施例及び上記変形例をそれぞれ組み合わせる構成も本発明に含まれる。
【産業上の利用可能性】
【０２０８】
本発明は、映画、音楽などのデジタルコンテンツを放送やネットワークを介して流通させる産業において、ユーザが複数のサービス業者を利用する仕組みとして利用できる。
【図面の簡単な説明】
【０２０９】
【図１】コンテンツ提供システム１のシステム構成を示す図である。
【図２】メモリカード１０の構成を機能的に示す機能ブロック図である。
【図３】メモリカード１０が認証局７０から取得する初期証明書Ｃｅｒｔ＿００１０（１２０）のデータ構成を示す図である。
【図４】メモリカード１０が保持するＣＲＬ１２５のデータ構成を示す図である。
【図５】（ａ）メモリカード１０がコンテンツサーバ１（３０）から取得するＣｅｒｔ＿Ａ（１３０）のデータ構成を示す図である。（ｂ）メモリカード１０のユーザ領域１１６に格納されるＣｅｒｔ＿Ａ´（１３５）のデータ構成を示す図である。
【図６】（ａ）メモリカード１０が決済サーバ１（４０）から取得するＣｅｒｔ＿Ｂ（１４０）のデータ構成を示す図である。（ｂ）メモリカード１０のユーザ領域１１６に格納されるＣｅｒｔ＿Ｂ´（１４５）のデータ構成を示す図である。
【図７】（ａ）メモリカード１０がコンテンツサーバ２（５０）から取得するＣｅｒｔ＿Ｃ（１５０）のデータ構成を示す図である。（ｂ）メモリカード１０のユーザ領域１１６に格納されるＣｅｒｔ＿Ｃ´（１５５）のデータ構成を示す図である。
【図８】（ａ）メモリカード１０が決済サーバ２（６０）から取得するＣｅｒｔ＿Ｄ（１６０）のデータ構成を示す図である。（ｂ）メモリカード１０のユーザ領域１１６に格納されるＣｅｒｔ＿Ｄ´（１６５）のデータ構成を示す図である。
【図９】メモリカード１０に記憶されている秘密鍵、公開鍵証明書、初期秘密鍵及び初期証明書と、アプリケーションプログラムとの関係を説明する図である。
【図１０】端末２０の構成を機能的に示す機能ブロック図である。
【図１１】コンテンツサーバ１（３０）の構成を機能的に示す機能ブロック図である。
【図１２】決済サーバ１（４０）の構成を機能的に示す機能ブロック図である。
【図１３】（ａ）コンテンツサーバ１（３０）が認証局７０から取得する初期証明書Ｃｅｒｔ＿００３０（３１０）のデータ構成を示す図である。（ｂ）決済サーバ１（４０）が認証局７０から取得する初期証明書Ｃｅｒｔ＿００４０（３２０）のデータ構成を示す図である。（ｃ）コンテンツサーバ２（５０）が認証局７０から取得する初期証明書Ｃｅｒｔ＿００５０（３４０）のデータ構成を示す図である。（ｄ）決済サーバ２（６０）が認証局７０から取得する初期証明書Ｃｅｒｔ＿００６０（３６０）のデータ構成を示す図である。
【図１４】コンテンツサーバ１（３０）が決済サーバ１（４０）へ送信する決済依頼情報４１０のデータ構成を示す図である。
【図１５】決済サーバ１（４０）がメモリカード１０へ送信する電子レシート４２０のデータ構成を示す図である。
【図１６】コンテンツ提供システム１全体の動作を示すフローチャートである。
【図１７】各機器が認証局７０から初期証明書を取得する動作を示すフローチャートである。
【図１８】サービス加入・登録処理の動作を示すフローチャートであり、図１９に続く。
【図１９】サービス加入・登録処理の動作を示すフローチャートであり、図１８から続く。
【図２０】サービス加入・登録処理における各サーバとメモリカード１０とのＳＡＣ確立処理の動作を示すフローチャートであり、図２１に続く。
【図２１】サービス加入・登録処理における各サーバとメモリカード１０とのＳＡＣ確立処理の動作を示すフローチャートであり、図２０から続く。
【図２２】サービス利用処理の動作を示すフローチャートであり、図２３に続く。
【図２３】サービス利用処理の動作を示すフローチャートであり、図２２から続く。
【図２４】サービス利用処理における各サーバとメモリカード１０とのＳＡＣ確立処理の動作を示すフローチャートであり、図２５に続く。
【図２５】サービス利用処理における各サーバとメモリカード１０とのＳＡＣ確立処理の動作を示すフローチャートであり、図２４から続き、図２６に続く。
【図２６】サービス利用処理における各サーバとメモリカード１０とのＳＡＣ確立処理の動作を示すフローチャートであり、図２５から続く。
【図２７】メモリカード１０による端末２０の認証処理の動作を示すフローチャートである。
【図２８】メモリカード１０の機能をＬＳＩ１０００で実現する変形例を説明する図である。
【符号の説明】
【０２１０】
１    コンテンツ提供システム
１０    メモリカード
２０    端末
３０    コンテンツサーバ１
４０    コンテンツサーバ２
５０    決済サーバ１
６０    決済サーバ２
７０    認証局
８０    ネットワーク
１０１    入出力部
１０２    制御部
１０３    ＴＲＭ
１０４    記憶部
１０５    コマンド処理部
１０６    認証部
１０７    公開鍵暗号処理部
１０８    復号部
１０９    アクセス制御部
１１１    ＴＲＭ入出力部
１１２    ＴＲＭ制御部
１１３    内部メモリ入出力部
１１４    内部メモリ
１１５    セキュア領域
１１６    ユーザ領域
２０１    通信部
２０２    操作入力部
２０３    制御部
２０４    メモリカード入出力部
２０５    認証部
２０６    再生部
３０１    通信部
３０２    制御部
３０３    ＣＲＬ格納部
３０４    Ｃｅｒｔ管理部
３０５    登録情報管理部
３０６    公開鍵暗号処理部
３０７    暗号化コンテンツ格納部
３０８    コンテンツ鍵格納部
４０１    通信部
４０２    制御部
４０３    ＣＲＬ格納部
４０４    Ｃｅｒｔ管理部
４０５    公開鍵暗号処理部
４０６    決済部
１０００    ＬＳＩ
【図１】
0004750695.tif 000002
【図２】
0004750695.tif 000003
【図３】
0004750695.tif 000004
【図４】
0004750695.tif 000005
【図５】
0004750695.tif 000006
【図６】
0004750695.tif 000007
【図７】
0004750695.tif 000008
【図８】
0004750695.tif 000009
【図９】
0004750695.tif 000010
【図１０】
0004750695.tif 000011
【図１１】
0004750695.tif 000012
【図１２】
0004750695.tif 000013
【図１３】
0004750695.tif 000014
【図１４】
0004750695.tif 000015
【図１５】
0004750695.tif 000016
【図１６】
0004750695.tif 000017
【図１７】
0004750695.tif 000018
【図１８】
0004750695.tif 000019
【図１９】
0004750695.tif 000020
【図２０】
0004750695.tif 000021
【図２１】
0004750695.tif 000022
【図２２】
0004750695.tif 000023
【図２３】
0004750695.tif 000024
【図２４】
0004750695.tif 000025
【図２５】
0004750695.tif 000026
【図２６】
0004750695.tif 000027
【図２７】
0004750695.tif 000028
【図２８】
0004750695.tif 000029