(57)【要約】  【課題】  記録媒体上の改竄がされにくく、インストールの対象の端末装置と記録媒体との間の通信路における不当な攻撃を避けることができ、またソフトウェアとライセンス情報との対応関係を不正に更新することができない記録媒体を提供する。  【解決手段】  記録媒体は、セキュア記憶領域及び通常記憶領域を含む情報記憶部と、耐タンパモジュール部とを備えている。通常記憶領域には、ソフトウェアが、セキュア記憶領域には、前記ソフトウェアの使用許可数を示すライセンス数と、前記ソフトウェアの署名データとが対応付けて記録されている。耐タンパモジュール部は、端末装置との間で相互に機器認証を行い、セキュア記憶領域のライセンス数が所定数以内であれば、ソフトウェアと署名データとを端末装置へ出力する。【選択図】  図３
2004272893.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体と情報処理装置とから構成されるソフトウェア管理システムであって、
前記記録媒体は、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、前記情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段とを含み、
前記情報処理装置は、
前記記録媒体から前記許可指示を取得する取得手段と、
取得した前記許可指示に応じて、前記記録媒体から前記ソフトウェアを取得して内部に導入し、又は導入されている前記ソフトウェアを非活性化する制御手段とを含む
ことを特徴とするソフトウェア管理システム。
【請求項２】
前記ソフトウェア管理システムは、さらに、ソフトウェア書込装置を含み、
前記ソフトウェア書込装置は、
コンピュータデータであるソフトウェアと、前記ソフトウェアの使用条件に係るライセンス情報とを記憶している情報記憶手段と、
前記情報記憶手段から前記ソフトウェア及び前記ライセンス情報を読み出す読出手段と、
読み出した前記ソフトウェア及び前記ライセンス情報を出力する出力手段とを含み、
前記記録媒体は、さらに、
前記ソフトウェア及び前記ライセンス情報を取得する取得手段と、
取得した前記ソフトウェアを前記通常記憶手段に書き込み、取得した前記ライセンス情報を前記セキュア記憶手段に書き込む書込手段とを含む
ことを特徴とする請求項１に記載のソフトウェア管理システム。
【請求項３】
前記ソフトウェア管理システムにおいて、
前記ソフトウェア書込装置及び前記情報処理装置は、ネットワークを介して、相互に接続されており、
前記ソフトウェア書込装置の前記出力手段は、ネットワークを介して、安全に前記ソフトウェアを出力し、
前記情報処理装置は、さらに、
ネットワークを介して、安全に前記ソフトウェアを取得する取得手段と、
取得した前記ソフトウェアを前記記録媒体へ出力する出力手段とを含み、
前記記録媒体の取得手段は、前記情報処理装置から前記ソフトウェアを取得する
ことを特徴とする請求項２に記載のソフトウェア管理システム。
【請求項４】
前記ソフトウェア管理システムは、さらに、配信装置を含み、
前記ソフトウェア書込装置、前記情報処理装置及び前記配信装置は、ネットワークを介して、相互に接続されており、
前記ソフトウェア書込装置の前記出力手段は、ネットワークを介して、安全に前記ライセンス情報を出力し、
前記情報処理装置は、さらに、
ネットワークを介して、安全に前記ライセンス情報を取得する取得手段と、
取得した前記ライセンス情報を前記記録媒体へ出力する出力手段とを含み、
前記記録媒体の取得手段は、前記ソフトウェア書込装置から前記ソフトウェアを取得する
ことを特徴とする請求項２に記載のソフトウェア管理システム。
【請求項５】
記録媒体であって、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段と
を備えることを特徴とする記録媒体。
【請求項６】
前記記録媒体において、
前記通常記憶手段は、コンピュータプログラム又はデジタルデータである前記ソフトウェアを記憶しており、
前記セキュア記憶手段は、前記コンピュータプログラム又はデジタルデータの使用条件に係る前記ランセンス情報を記憶しており、
前記耐タンパモジュール手段は、前記情報処理装置への前記コンピュータプログラムのインストール又はアンインストール、又はデジタルデータの複製又は削除の可否を判断する
ことを特徴とする請求項５に記載の記録媒体。
【請求項７】
前記記録媒体において、
前記通常記憶手段は、コンピュータプログラム又はデジタルデータが、ソフトキーを用いて暗号化された前記ソフトウェアを記憶しており、
前記セキュア記憶手段は、前記ソフトキーを含む前記ライセンス情報を記憶しており、
前記耐タンパモジュール手段は、導入可と判断する場合に、前記セキュア記憶領域に記憶されているライセンス情報からソフトキーを抽出し、抽出した前記ソフトキーを含む前記許可指示をセキュアに出力する
ことを特徴とする請求項５に記載の記録媒体。
【請求項８】
前記記録媒体において、
前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、
前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、抽出した前記署名データを含む前記許可指示を出力する
ことを特徴とする請求項５に記載の記録媒体。
【請求項９】
前記記録媒体において、
前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、
前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、前記許可指示の出力に代えて、抽出した前記署名データを出力する
ことを特徴とする請求項５に記載の記録媒体。
【請求項１０】
前記記録媒体において、
前記セキュア記憶手段は、前記使用条件が所定のキー情報を用いて暗号化されて生成された前記ライセンス情報を記憶しており、
前記耐タンパモジュール手段は、前記キー情報を記憶しており、前記キー情報を用いて、前記ライセンス情報を復号して前記使用条件を生成し、生成した使用条件に基づいて、判断する
ことを特徴とする請求項５に記載の記録媒体。
【請求項１１】
前記記録媒体において、
前記セキュア記憶手段は、前記ライセンス情報に代えて、前記ライセンス情報の一部分を記憶しており、
前記耐タンパモジュール手段は、さらに、前記ライセンス情報の他の部分を記憶しており、前記セキュア記憶手段に記憶されているライセンス情報の前記一部分を抽出し、抽出した前記一部分と記憶している前記他の部分とからライセンス情報を生成し、生成したライセンス情報に基づいて、判断する
ことを特徴とする請求項５に記載の記録媒体。
【請求項１２】
前記記録媒体において、
前記セキュア記憶手段が記憶しているライセンス情報は、前記ソフトウェアの使用許可回数であり、
前記耐タンパモジュール手段は、前記使用許可回数が０より大きいか否かを判断することにより、前記導入の可否を判断し、０より大きいと判断する場合に、前記ソフトウェアの導入が許可されたとみなして、前記許可指示を出力し、前記使用許可回数から１減じて前記セキュア記憶手段に書き込む
ことを特徴とする請求項５に記載の記録媒体。
【請求項１３】
前記記録媒体において、
前記セキュア記憶手段が記憶しているライセンス情報は、前記ソフトウェアの使用許可回数であり、
前記耐タンパモジュール手段は、前記ソフトウエアの非活性化が許可された場合に、前記許可指示を出力し、さらに、前記使用許可回数を１加算して前記セキュア記憶手段に書き込む
ことを特徴とする請求項５に記載の記録媒体。
【請求項１４】
前記記録媒体において、
前記セキュア記憶手段が記憶しているライセンス情報は、前記ソフトウェアの使用許可期間であり、
前記耐タンパモジュール手段は、現在日時が前記使用許可期間内であるか否かを判断することにより、前記導入の可否を判断し、前記使用許可期間内であると判断する場合に、前記ソフトウェアの導入が許可されたとみなして、前記許可指示を出力する
ことを特徴とする請求項５に記載の記録媒体。
【請求項１５】
ソフトウェアを導入し、又は非活性化する情報処理装置であって、
記録媒体は、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、前記情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段とを含み、
前記情報処理装置は、
前記記録媒体から前記許可指示を取得する取得手段と、
取得した前記許可指示に応じて、前記記録媒体から前記ソフトウェアを取得して内部に導入し、又は導入されている前記ソフトウェアを非活性化する制御手段とを含む
ことを特徴とする情報処理装置。
【請求項１６】
前記情報処理装置において、
前記記録媒体の前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、
前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、抽出した前記署名データを含む前記許可指示を出力し、
前記取得手段は、前記署名データを含む前記許可指示を取得し、
前記制御手段は、取得した許可指示に含まれる前記署名データ及び取得した前記ソフトウェアを用いて、取得した前記ソフトウェアの正当性の検証を行い、又は取得した前記署名データ及び導入されている前記ソフトウェアを用いて、前記ソフトウェアの正当性の検証を行い、検証が成功した場合に、取得した前記許可指示に応じて、取得した前記ソフトウェアを導入し、又は導入されている前記ソフトウェアを非活性化する
ことを特徴とする請求項１５に記載の情報処理装置。
【請求項１７】
前記情報処理装置において、
前記記録媒体の前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、
前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、前記許可指示の出力に代えて、抽出した前記署名データを出力し、
前記取得手段は、前記署名データを取得し、
前記制御手段は、取得した前記署名データを用いて、取得した前記ソフトウェアの検証を行い、検証が成功した場合に、取得した前記ソフトウェアを内部に導入する
ことを特徴とする請求項１５に記載の情報処理装置。
【請求項１８】
記録媒体で用いられる制御方法であって、
前記記録媒体は、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有する耐タンパモジュール手段とを含み、
前記制御方法は、
前記セキュア記憶手段に記憶されているライセンス情報に基づいて、情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断する判断ステップと、
可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力する出力ステップと、
導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える書換ステップと
を含むことを特徴とする制御方法。
【請求項１９】
記録媒体で用いられる制御用のコンピュータプログラムであって、
前記記録媒体は、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有する耐タンパモジュール手段とを含み、
前記制御用のコンピュータプログラムは、
前記セキュア記憶手段に記憶されているライセンス情報に基づいて、情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断する判断ステップと、
可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力する出力ステップと、
導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える書換ステップと
を含むことを特徴とするコンピュータプログラム。
【請求項２０】
前記コンピュータプログラムは、
コンピュータ読み取り可能なプログラム記録媒体に記録されている
ことを特徴とする請求項１９に記載のコンピュータプログラム。
【請求項２１】
ソフトウェアを導入し、又は非活性化する情報処理装置で用いられるソフトウェア管理方法であって、
記録媒体は、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、前記情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段とを含み、
前記ソフトウェア管理方法は、
前記記録媒体から前記許可指示を取得する取得ステップと、
取得した前記許可指示に応じて、前記記録媒体から前記ソフトウェアを取得して内部に導入し、又は導入されている前記ソフトウェアを非活性化する制御ステップと
を含むことを特徴とするソフトウェア管理方法。
【請求項２２】
ソフトウェアを導入し、又は非活性化する情報処理装置で用いられるソフトウェア管理用のコンピュータプログラムであって、
記録媒体は、
コンピュータデータであるソフトウェアを記憶している通常記憶手段と、
外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、
耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、前記情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段とを含み、
前記ソフトウェア管理用のコンピュータプログラムは、
前記記録媒体から前記許可指示を取得する取得ステップと、
取得した前記許可指示に応じて、前記記録媒体から前記ソフトウェアを取得して内部に導入し、又は導入されている前記ソフトウェアを非活性化する制御ステップと
を含むことを特徴とするコンピュータプログラム。
【請求項２３】
前記ソフトウェア管理用のコンピュータプログラムは、コンピュータ読み取り可能なプログラム記録媒体に記録されている
ことを特徴とする請求項２２に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータソフトウェアのライセンス管理技術に関する。
【背景技術】
【０００２】
従来よりコンピュータプログラムのライセンスを管理する様々な技術が提案されている。
特許文献１は、記録媒体に記録されているアプリケーションプログラムが無制限にインストールされることを防止し、不正な使用を解消することを目的として、インストール実行に応じてインストール回数を記録媒体の記録再生領域に記録しておき、アプリケーションプログラムを他の記録媒体へインストールする要求があった場合に、記録されている過去のインストール回数を確認し、そのインストール回数が所定回数未満であったときのみ、インストールを実行するインストール制御技術を開示している。
【０００３】
また、特許文献２は、ＩＣカードに格納された情報に基づいて、ソフトウェアの不正使用を防止するソフトウェアライセンス管理システムを開示している。前記管理システムは、ソフトウェア記録媒体と、該ソフトウェアのライセンス管理情報を格納したＩＣカードと、カードリーダライタを接続した情報処理端末機とを具備しており、前記管理システムは、ソフトウェア購入者が個々に保持する前記情報処理端末機のカードリーダライタを介して前記ＩＣカードからライセンス管理情報を読み出す手段と、該ライセンス管理情報に基づいてインストールまたはアンインストールする手段からなり、前記ＩＣカードにインストールした情報処理端末機を特定する情報を記録する。
【０００４】
さらに、特許文献３は、ソフトウェアのライセンス不正利用を抑止することを目的とするソフトウェアコピーガード実現方法を開示している。前記コピーガード実現方法は、揮発性記憶領域と不揮発性記憶領域が内蔵されたカートリッジに着脱可能な記録媒体が挿入され、カートリッジ内の不揮発性記憶領域に格納された認証アルゴリズムと、ソフトウェアのインストールプログラムと、ソフトウェアをインストールするシステム装置固有のシステム情報と、記録媒体が持つソフトウェア固有の情報と、カートリッジアクセス装置とを利用する。カートリッジは、記録媒体が持つソフトウェア固有の情報及び端末装置に固有の端末固有情報を用いて、認証データを生成して内部に記録し、認証データに基づいてソフトウェアの端末装置へのインストールの可否を判断する。
【特許文献１】特開平１０−２７４２６号公報
【特許文献２】特開２００２−２６８７６４号公報
【特許文献３】特開２００２−１８２７６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、第１に、特許文献１により開示されているインストール制御技術によると、記録媒体に記録されているインストール回数によりインストールを実行するか否かを判断するので、無制限にアプリケーションプログラムがインストールされることを防止できるものの、悪意のある第三者が、記録媒体の記録再生領域に記録されているインストール回数を改竄すれば、無制限にアプリケーションプログラムをインストールすることができるという問題点（課題１）がある。
【０００６】
また、前記インストール制御技術によると、前記記録媒体からインストール回数が、前記記録媒体とインストールの対象となる端末装置との間の通信路上を流れることにより、端末装置に伝達され、端末装置においてインストール回数を受け取り、受け取ったインストール回数を用いて、端末装置が、インストールの可否を判定する。ここで、悪意のある第三者が、前記通信路上において、インストール回数を改竄すれば、上記と同様に、無制限にアプリケーションプログラムをインストールすることができるという問題点（課題２）がある。
【０００７】
さらに、前記インストール制御技術によると、記録媒体上においてアプリケーションプログラムとインストール回数とが対応付けて記録されているので、悪意のある第三者が、記録媒体上におけるアプリケーションプログラムとインストール回数との対応付けを不正に改竄すれば、例えば、安価なプログラムを正規に購入し、購入した安価なプログラムとインストール回数との対応付けを、正規に購入していない高価なプログラムと前記インストール回数との対応付けに変更すれば、前記高価なプログラムを、インストールすることができるという問題点（課題３）がある。
【０００８】
第２に、特許文献２により開示された管理システムによると、該ソフトウェアのライセンス管理情報がＩＣカードに格納されているので、悪意のある第三者によっても、ＩＣカードに格納されているライセンス管理情報の改竄は容易ではない。従って課題１に指摘するような問題点が発生する可能性は低い。
また、前記管理システムによると、前記ＩＣカードからライセンス管理情報が、前記ＩＣカードとインストールの対象となる情報処理端末機との間の通信路上を流れることにより、情報処理端末機に伝達され、情報処理端末機においてライセンス管理情報を受け取り、受け取ったライセンス管理情報を用いて、情報処理端末機が、インストールの可否を判定する。ここで、悪意のある第三者が、前記通信路上において、ライセンス管理情報を改竄すれば、特許文献１により開示されているインストール制御技術による場合と同様に、無制限にアプリケーションプログラムをインストールすることができるという問題点（課題２）がある。
【０００９】
さらに、前記管理システムによると、ソフトウェア記録媒体とＩＣカードとが対応付けられているので、悪意のある第三者が、例えば、安価なソフトウェアが記録されている第１のソフトウェア記録媒体及び１００台分のライセンス管理情報を記録した第１のＩＣカードと、高価なソフトウェアが記録されている第２のソフトウェア記録媒体及び１台分のライセンス管理情報を記録した第２のＩＣカードとを正規に購入し、第２のソフトウェア記録媒体が第１のＩＣカードに対応付くように、第２のソフトウェア記録媒体を改竄すれば、前記高価なソフトウェアを、インストールすることができるという問題点（課題３）がある。
【００１０】
第３に、特許文献３により開示されたコピーガード実現方法によると、ソフトウェアのインストールの可否を判断するために用いられる認証データがカートリッジ内に記録されているので、悪意のある第三者によっても、カートリッジに記録されている認証データの改竄は容易ではない。従って課題１に指摘するような問題点が発生する可能性は低い。
また、前記コピーガード実現方法によると、悪意のある第三者が、カートリッジアクセス装置とカートリッジの間の通信路上を流れるライセンス関連情報を改竄すれば、特許文献１により開示されているインストール制御技術による場合と同様に、無制限にアプリケーションプログラムをインストールすることができるという問題点（課題２）がある。
【００１１】
さらに、前記コピーガード実現方法によると、悪意のある第三者が、記録媒体とカートリッジとの対応付けを改竄すれば、特許文献２により開示された管理システムの場合と同様に、例えば、正規に購入していない高価なソフトウェアを、インストールすることができるという問題点（課題３）がある。
本発明は、上記の問題点（課題１〜３）を解決し、コンピュータソフトウェアが記録されている記録媒体上の改竄がされにくく、ソフトウェアがインストールされる対象となる端末装置と前記記録媒体との間の通信路における不当な攻撃を避けることができ、またソフトウェアとライセンス情報との対応関係を不正に更新することができないソフトウェア管理システム、記録媒体、情報処理装置、制御方法、ソフトウェア管理方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明は、コンピュータソフトウェアを記録している記録媒体である。前記記録媒体は、セキュア記憶領域及び通常記憶領域を含む情報記憶部と、耐タンパモジュール部とを備えている。
通常記憶領域には、コンピュータ命令の実行手順を示すコンピュータソフトウェアが記憶されており、セキュア記憶領域には、前記コンピュータソフトウェアの使用許可数を示すライセンス数と、前記コンピュータソフトウェアの署名データとが対応付けて記録されている。
【００１３】
耐タンパモジュール部は、前記コンピュータソフトウェアのインストール対象となる端末装置との間で、相互に機器認証を行い、相手が正当な装置であることを確認する。
相手が正当な装置があると確認された場合に、耐タンパモジュール部は、端末装置から暗号化端末固有情報を取得する。暗号化端末固有情報は、端末固有情報が暗号化されたものであり、端末固有情報は、前記端末装置に固有の情報である。耐タンパモジュール部は、取得した暗号化端末固有情報を復号して端末固有情報を得、得られた端末固有情報がセキュア記憶領域にすでに記憶されているなら、ソフトウェアの再インストールとみなす。記憶されていないなら、新規インストールとみなし、前記端末固有情報をセキュア記憶領域に書き込む。耐タンパモジュール部は、セキュア記憶領域に記憶されているライセンス数をチェックし、ライセンス数が所定数以内であれば、コンピュータソフトウェアとコンピュータソフトウェアの署名データとを端末装置へ出力する。
【００１４】
端末装置は、コンピュータソフトウェアと署名データとを受け取り、受け取った署名データを検証し、検証が成功すれば、受け取ったコンピュータソフトウェアを内部にインストールする。
一方、耐タンパモジュール部は、ライセンス数を１だけ減じるように更新する。
【発明の効果】
【００１５】
以上説明したように、本発明は、記録媒体と情報処理装置とから構成されるソフトウェア管理システムである。
前記記録媒体は、コンピュータデータであるソフトウェアを記憶している通常記憶手段と、外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、前記情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段とを含む。
【００１６】
前記情報処理装置は、前記記録媒体から前記許可指示を取得する取得手段と、取得した前記許可指示に応じて、前記記録媒体から前記ソフトウェアを取得して内部に導入し、又は導入されている前記ソフトウェアを非活性化する制御手段とを含む。
これらの構成によると、外部から直接アクセスできないセキュア記憶手段にライセンス情報が記憶されているので、ライセンス情報の改竄が容易ではない。また、記録媒体から相手の情報処理装置へライセンス情報が伝送されないので、記録媒体から相手装置への通信路上においてライセンス情報が漏洩して改竄されることはない。さらに、ソフトウェアの使用条件に係るライセンス情報がセキュア記憶手段に記憶されているので、ライセンス情報とソフトウェアとの対応関係が不当に改竄されることはない。
【発明を実施するための最良の形態】
【００１７】
１．実施の形態１
本発明に係る１個の実施の形態としてのソフトウェア管理システム１０について説明する。
１．１  ソフトウェア管理システム１０の構成
ソフトウェア管理システム１０は、図１に示すように、ソフトウェア書込装置１００、可搬型のメモリカード２００及び情報処理装置３００から構成されている。
【００１８】
ソフトウェア書込装置１００は、ソフトウェア提供者が有しているパーソナルコンピュータ等により構成されるコンピュータシステムであり、ソフトウェア販売店や、ＣＥ（コンシューマエレクトロニクス）機器メーカの顧客サービスセンターにおいて利用される。ソフトウェア書込装置１００は、コンピュータにより実行されるアプリケーションプログラム、前記アプリケーションプログラムの不具合などを修正するためのバグ修正プログラム、前記アプリケーションプログラムの新機能追加のためのバージョンアッププログラムなどのソフトウェアをメモリカード２００に書き込む。前記ソフトウェアは、複数のコンピュータ命令から構成され、これらのコンピュータ命令の実行手順を示すものである。前記ソフトウェアの書き込まれたメモリカード２００は、利用者に有償又は無償で提供される。
【００１９】
情報処理装置３００は、利用者が有しているパーソナルコンピュータや家庭電化製品などのＣＥ機器である。利用者により前記ソフトウェアが書き込まれたメモリカード２００が情報処理装置３００に挿入される。情報処理装置３００は、メモリカード２００に書き込まれているソフトウェアを読み出して、内部に記憶、つまりインストールする。情報処理装置３００は、内部に記憶しているソフトウェアに従って動作する。このようにして、利用者は、そのソフトウェアを利用することができる。
【００２０】
また、情報処理装置３００は、内部に記憶しているソフトウェアをアンインストールする。こうして、利用者のそのソフトウェアを非活性化することができる。
１．２  ソフトウェア書込装置１００の構成
ソフトウェア書込装置１００は、図２に示すように、認証部１１１、暗号化部１１２、情報記憶部１１３、制御部１１４、暗号化部１１８及び入出力部１０１から構成されている。また、ソフトウェア書込装置１００には、入力部１１５及び表示部１１６が接続されている。
【００２１】
ソフトウェア書込装置１００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。また、入力部１１５は、具体的には、キーボードであり、表示部１１６は、ディスプレィユニットである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、ソフトウェア書込装置１００は、その機能を達成する。
【００２２】
なお、図２において、各ブロックは、接続線により他のブロックと接続されている。ただし、一部の接続線を省略している。ここで、各接続線は、信号や情報が伝達される経路を示している。また、暗号化部１１２を示すブロックに接続している複数の接続線のうち、接続線上に鍵マークが付されているものは、暗号化部１１２へ鍵としての情報が伝達される経路を示している。また、他の図面についても同様である。
【００２３】
（１）情報記憶部１１３
情報記憶部１１３は、図２に示すように、ソフトウェア管理テーブル１２１、ソフトウェア１２２、ソフトウェア１２３、・・・をセキュアに記憶している。
ソフトウェア管理テーブル１２１は、ソフトＩＤ、ソフトキー及びインストール回数情報から構成されるソフトウェア管理情報を複数個含むデータテーブルである。
【００２４】
ソフトＩＤは、当該ソフトウェアを識別するための識別番号であり、６４ビット長である。
ソフトキーは、当該ソフトウェアを暗号化する際に用いられる暗号鍵であり、５６ビット長である。
インストール回数情報は、１６ビット長であり、当該ソフトウェアに割り当てられたインストール許可回数である。例えば、インストール回数情報が「１０」である場合に、利用者に対して、当該ソフトウェアを最大１０回までインストールすることが許可される。また、インストール回数情報として「ＦＦＦＦ」（１６進数）が指定された場合には、無制限にインストールが可能であることを示すものとする。ここでは、インストール回数情報は、固定値をとるとしているが、利用者の購入数に応じて可変であるように設定してもよい。
【００２５】
ソフトウェア１２２、ソフトウェア１２３、・・・は、それぞれ、コンピュータプログラムであり、ソフトＩＤにより識別される。
（２）入力部１１５
入力部１１５は、ソフトウェア書込装置１００の操作者からソフトウェアの指定を受け付け、指定を受け付けたソフトウェアを識別するソフトＩＤを情報記憶部１１３から取得し、取得したソフトＩＤを制御部１１４へ出力する。
【００２６】
（３）認証部１１１
メモリカード２００が操作者によりソフトウェア書込装置１００に挿入されると、認証部１１１は、メモリカード２００が有する認証部２１１との間で、チャレンジ−レスポンス型の相互の機器認証を行う。
具体的には、認証部１１１は、認証部２１１を認証する。次に、認証部１１１は、認証部２１１により、認証を受ける。
【００２７】
認証部１１１及び認証部２１１の認証が共に成功した場合に、認証部１１１と認証部２１１との間での上記チャレンジーレスポンス型の認証のプロセスにおいて使用される乱数情報に基づいて、相互の認証の都度異なる６４ビット長のセッション鍵を生成し、生成したセッション鍵を認証部２１１との間で秘密に共有する。次に認証部１１１は、生成したセッション鍵を暗号化部１１８へ出力する。なお、セッション鍵は、認証の都度、異なるものが生成される。これは、他の認証部においても同様である。
【００２８】
認証部１１１は、両者の認証が成功した場合に、認証の成功を示す認証成功情報を制御部１１４へ出力し、認証が失敗した場合に、認証の失敗を示す認証失敗情報を制御部１１４へ出力する。
なお、チャレンジ−レスポンス型の機器認証については、公知であるので、説明を省略する。
【００２９】
（４）制御部１１４
制御部１１４は、入力部１１５からソフトＩＤを受け取る。また、制御部１１４は、認証部１１１から認証成功情報又は認証失敗情報を受け取る。
認証部１１１から認証成功情報を受け取ると、制御部１１４は、暗号化部１１８に対して受け取ったソフトＩＤを出力し、また暗号化部１１８に対してソフトウェア管理情報を暗号化してメモリカード２００へ書き込む旨の暗号化指示を出力する。また、制御部１１４は、暗号化部１１２に対して受け取ったソフトＩＤを出力し、暗号化部１１２に対してソフトウェアを暗号化してメモリカード２００へ書き込む旨の暗号化指示を出力する。
【００３０】
（５）暗号化部１１８
暗号化部１１８は、制御部１１４からソフトＩＤ及び暗号化指示を受け取る。また、暗号化部１１８は、認証部１１１からセッション鍵を受け取る。
制御部１１４からソフトＩＤ及び暗号化指示を受け取ると、暗号化部１１８は、ソフトウェア管理テーブル１２１から、前記ソフトＩＤを含むソフトウェア管理情報を読み出し、認証部１１１から受け取ったセッション鍵を用いて、読み出したソフトウェア管理情報に暗号化アルゴリズムＥ３を施し、暗号化ソフトウェア管理情報を生成する。次に、暗号化部１１８は、生成した暗号化ソフトウェア管理情報をメモリカード２００へ出力する。
【００３１】
（６）暗号化部１１２
暗号化部１１２は、制御部１１４からソフトＩＤ及び暗号化指示を受け取る。
制御部１１４からソフトＩＤ及び暗号化指示を受け取ると、ソフトウェア管理テーブル１２１から前記ソフトＩＤを含むソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報からソフトキーを抽出する。次に、暗号化部１１２は、情報記憶部１１３から受け取ったソフトＩＤにより識別されるソフトウェアを読み出し、抽出したソフトキーを鍵として用いて、読み出したソフトウェアに暗号化アルゴリズムＥ１を施し、暗号化ソフトウェアを生成する。
【００３２】
ここで、暗号化アルゴリズムＥ１は、ＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）により規定されたものである。
なお、ソフトキーのビット長、暗号化アルゴリズムについては、上記に説明したものに限定されない。
次に、暗号化部１１２は、生成した暗号化ソフトウェアをメモリカード２００へ出力する。
【００３３】
（７）表示部１１６
表示部１１６は、制御部１１４の制御により各種情報を表示する。
（８）入出力部１０１
入出力部１０１は、制御部１１４の制御により、認証部１１１、暗号化部１１８及び暗号化部１１２と、メモリカード２００との間で情報の入出力を行う。
【００３４】
１．３  メモリカード２００の構成
メモリカード２００は、図２及び図３に示すように、特別に許可された経路を除いて、外部から読み書きできない耐タンパモジュール部２１０、情報記憶部２２０及び入出力部２０１から構成されている。耐タンパモジュール部２１０は、認証部２１１、復号部２１２、暗号化部２１３及び判定部２１４から構成され、情報記憶部２２０は、第１記憶領域２２１及び第２記憶領域２２２から構成されている。
【００３５】
ここで、耐タンパモジュール部２１０は、具体的には、耐タンパ性を有する耐タンパハードウェアにより構成されている。なお、耐タンパモジュール部２１０は、耐タンパソフトウェア、又は耐タンパハードウェア及び耐タンパソフトウェアの組み合わせから構成されているとしてもよい。
また、耐タンパモジュール部２１０は、具体的には、マイクロプロセッサ、及びＲＯＭ、ＲＡＭなどのメモリ部から構成され、前記メモリ部には、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、耐タンパモジュール部２１０は、その機能を達成する。
【００３６】
情報記憶部２２０は、具体的には、大容量のフラッシュメモリにより構成されている。
（１）第１記憶領域２２１
第１記憶領域２２１は、特別の許可がなくとも、外部からアクセスすることが許されている領域である。
第１記憶領域２２１は、１個以上の暗号化ソフトウェアを記憶するための領域を備えている。
【００３７】
（２）第２記憶領域２２２
第２記憶領域２２２は、ソフトウェア管理情報テーブル２３１を有している。
ソフトウェア管理情報テーブル２３１は、図４に示すように、複数個のソフトウェア管理情報２４１、２４２、・・・を記憶するための領域を含んでいる。
ソフトウェア管理情報２４１は、この図に示すように、ソフトＩＤ、ソフトキー、インストール回数情報及び複数の装置ＩＤを含む。ソフトＩＤ、ソフトキー及びインストール回数情報については、上述した通りであるので説明を省略する。
装置ＩＤは、ソフトウェアがインストールされる対象となる情報処理装置を一意に識別するための識別番号である。
【００３８】
なお、図４に示すソフトウェア管理情報２４１において、括弧内に表示されている文字列「ＳＩＤ１」、「ＸＹＺ１２３」、「１０」、「＃１」及び「＃２」は、それぞれ、ソフトＩＤ、ソフトキー、インストール回数情報及び２個の装置ＩＤの具体例としての値である。
なお、図４に示すソフトウェア管理情報２４１は、複数の装置ＩＤを含むように示されているが、ソフトウェア書込装置１００からメモリカード２００に、ソフトウェア管理情報が書き込まれる時点においては、まだ、ソフトウェア管理情報２４１は、複数の装置ＩＤを含んでいない。装置ＩＤは、ソフトウェアが情報処理装置にインストールされたときに、ソフトウェア管理情報２４１内に書き込まれる。利用者は、提供されたメモリカードを用いて、初めてソフトウェアをインストールする際には、任意の情報処理装置に、ソフトウェアのインストールを実行することができる。
【００３９】
ソフトウェア管理情報２４２、・・・については、ソフトウェア管理情報２４１と同様であるので、説明を省略する。
（３）認証部２１１
メモリカード２００がソフトウェア書込装置１００に挿入されると、認証部２１１は、ソフトウェア書込装置１００が有する認証部１１１との間で、チャレンジ−レスポンス型の相互の機器認証を行う。
【００４０】
具体的には、認証部２１１は、認証部１１１により認証を受ける。次に、認証部２１１は、認証部１１１の認証を行う。
認証部２１１は、両者の認証が成功した場合に、認証部１１１との間で上記チャレンジ−レスポンス型の認証のプロセスにおいて使用される乱数情報に基づいて、相互認証の都度、異なるセッション鍵を生成し、認証部２１１は、生成したセッション鍵を復号部２１２へ出力し、さらに認証の成功を示す第１認証成功情報を判定部２１４へ出力する。一方、認証が失敗した場合に、認証部２１１は、認証の失敗を示す第１認証失敗情報を判定部２１４へ出力する。
【００４１】
また、メモリカード２００が情報処理装置３００に挿入されると、認証部２１１は、情報処理装置３００が有する認証部３１１との間で、チャレンジ−レスポンス型の相互の認証を行う。具体的には、認証部２１１は、認証部３１１により認証を受ける。次に、認証部２１１は、認証部３１１の認証を行う。
両者の認証が成功した場合に、認証部２１１は、認証部３１１との間で上記チャレンジ−レスポンス型の認証のプロセスにおいて使用される乱数情報に基づいて、相互の認証の都度、異なるセッション鍵を生成し、認証部３１１との間で生成したセッション鍵を秘密に共有する。認証部２１１は、生成したセッション鍵を復号部２１２及び暗号化部２１３へ出力し、さらに、認証の成功を示す第２認証成功情報を判定部２１４へ出力する。
【００４２】
認証が失敗した場合に認証部２１１は、認証の失敗を示す第２認証失敗情報を判定部２１４へ出力する。メモリカード２００よる以降の処理は中止される。従って、この場合、情報処理装置３００に、メモリカード２００からソフトウェアがインストールされることはない。インストール処理が中止されたことは、メモリカード２００から情報処理装置３００に通知され、情報処理装置３００の利用者に知らされる。
【００４３】
なお、相互の機器認証のプロセスにおけるセッション鍵の共有方法については、公知であるので、説明を省略する。
（４）復号部２１２
復号部２１２は、認証部２１１からセッション鍵を受け取る。
また、復号部２１２は、ソフトウェア書込装置１００から暗号化ソフトウェア管理情報を受け取り、受け取ったセッション鍵を用いて受け取った暗号化ソフトウェア管理情報に復号アルゴリズムＤ３を施してソフトウェア管理情報を生成し、生成したソフトウェア管理情報を判定部２１４へ出力する。
【００４４】
さらに、復号部２１２は、情報処理装置３００の暗号化部３１２から、暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤを受け取り、受け取ったセッション鍵を用いて、受け取った暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤに、復号アルゴリズムＤ３を施して、それぞれ、区分、ソフトＩＤ及び装置ＩＤを生成し、生成した区分、ソフトＩＤ及び装置ＩＤを判定部２１４へ出力する。
【００４５】
ここで、復号アルゴリズムＤ３は、暗号化アルゴリズムＥ３に対応するものであり、暗号化アルゴリズムＥ３を用いて生成された暗号文を、復号するために用いられる。
また、アンインストールの際に、復号部２１２は、暗号化部３１２から暗号化完了情報を受け取り、認証部２１１から受け取ったセッション鍵を用いて、受け取った暗号化完了情報に復号アルゴリズムＤ３を施して、完了情報及び乱数Ｒ’を生成し、生成した完了情報及び乱数Ｒ’を判定部２１４へ出力する。
【００４６】
（５）暗号化部２１３
暗号化部２１３は、認証部２１１からセッション鍵を受け取る。また、暗号化部２１３は、判定部２１４より、ソフトキーを受け取る。次に、暗号化部２１３は、受け取ったセッション鍵を用いて、受け取ったソフトキーに暗号化アルゴリズムＥ４を施して、暗号化ソフトキーを生成する。
【００４７】
ここで、暗号化アルゴリズムＥ４は、ＤＥＳにより規定されたものである。
次に、暗号化部２１３は、生成した暗号化ソフトキーを情報処理装置３００へ出力する。
また、アンインストールの際には、暗号化部２１３は、判定部２１４から、乱数Ｒ及びアンインストール可否情報を受け取り、認証部２１１から受け取ったセッション鍵を用いて、受け取った乱数Ｒ及びアンインストール可否情報に暗号化アルゴリズムＥ４を施して、暗号化アンインストール可否情報を生成し、生成した暗号化アンインストール可否情報を情報処理装置３００へ出力する。
【００４８】
（６）判定部２１４
判定部２１４は、認証部２１１から第１認証成功情報又は第１認証失敗情報を受け取り、また認証部２１１から第２認証成功情報又は第２認証失敗情報を受け取る。
（Ａ）第１認証成功情報を受け取った場合に、判定部２１４は、さらに復号部２１２からソフトウェア管理情報を受け取り、受け取ったソフトウェア管理情報をソフトウェア管理情報テーブル２３１内に追加して書き込む。
【００４９】
（Ｂ）また、第２認証成功情報を受け取った場合に、判定部２１４は、さらに、復号部２１２から区分、ソフトＩＤ及び装置ＩＤを受け取る。
次に、判定部２１４は、受け取った区分がインストールを示すか又はアンインストールを示すかを判断する。
（Ｂ１）インストールを示す場合
受け取った区分がインストールを示すと判断する場合に、判定部２１４は、次に、受け取ったソフトＩＤを含むソフトウェア管理情報をソフトウェア管理情報テーブル２３１から抽出し、抽出したソフトウェア管理情報に、受け取った装置ＩＤが含まれているか否かを判断する。
【００５０】
（ａ１）装置ＩＤが含まれていないと判断する場合には、判定部２１４は、新しい情報処理装置へのインストールの要請であると判断し、次に、前記ソフトウェア管理情報に含まれるインストール回数情報をチェックする。
このとき、（ａ１−１）インストール回数情報が１以上であれば、判定部２１４は、インストールを許可すると判定し、前記復号部２１２より受取った装置ＩＤを前記ソフトウェア管理情報に追加して書き込み、前記ソフトウェア管理情報に含まれるインストール回数情報から１を減算して得られる値を、新たにインストール回数情報として、ソフトウェア管理情報テーブル２３１内の前記ソフトウェア管理情報内に上書きする。さらに、判定部２１４は、前記ソフトウェア管理情報に含まれるソフトキーを暗号化部２１３に出力する。
【００５１】
一方、（ａ１−２）前記インストール回数情報のチェックにおいて、インストール回数情報が零であれば、判定部２１４は、インストールを許可しないと判定し、以降の処理を中止する。従って、この場合、情報処理装置３００に、メモリカード２００からソフトウェアがインストールされることはない。インストール処理が中止されたことは、メモリカード２００から情報処理装置３００に通知され、情報処理装置３００は、この旨を表示することにより、利用者に通知する。
【００５２】
（ａ２）装置ＩＤが含まれていると判断する場合には、判定部２１４は、既にインストール済みの情報処理装置への再インストールの要請であると判断し、前記ソフトウェア管理情報に含まれるソフトキーを暗号化部２１３に出力する。
（Ｂ２）アンインストールを示す場合
受け取った区分がアンインストールを示すと判断する場合に、判定部２１４は、さらに、受け取ったソフトＩＤを含むソフトウェア管理情報をソフトウェア管理情報テーブル２３１から抽出し、抽出したソフトウェア管理情報に、復号部２１２から受け取った装置ＩＤが含まれているか否か判断する。
【００５３】
ここで、装置ＩＤが含まれないと判断する場合に、判定部２１４は、アンインストール不可と判定してアンインストール不可を示す８ビット長のアンインストール可否情報を生成する。
一方、装置ＩＤが含まれると判断する場合は、判定部２１４は、アンインストール可と判定してアンインストール可を示す８ビット長のアンインストール可否情報を生成する。
【００５４】
次に、判定部２１４は、５６ビット長の乱数Ｒを生成し、生成した乱数Ｒを保持する。次に、判定部２１４は、生成した乱数Ｒ及びアンインストールの可否を示すアンインストール可否情報を暗号化部２１３へ出力する。
また、判定部２１４は、完了情報及び乱数Ｒ’を受け取り、受け取った乱数Ｒ’と保持している乱数Ｒとが一致するか否かを判断する。ここで、一致しない場合には、アンインストール処理を中止する。一方、一致する場合には、判定部２１４は、さらに、完了情報がアンインストールが完了したことを示しているか否かを判断し、完了情報がアンインストールが完了したことを示していない場合は、以降のアンインストール処理を中止する。
【００５５】
ここで、完了情報がアンインストールが完了したことを示している場合は、判定部２１４は、ソフトウェア管理情報に含まれるインストール回数情報に「１」の値を加算し、得られた値を、新たにインストール回数情報として、ソフトウェア管理情報テーブル２３１内の前記ソフトウェア管理情報内に上書きする。
（Ｃ）第１認証失敗情報又は第２認証失敗情報を受け取った場合に、判定部２１４は、以降の処理を中止する。
【００５６】
なお、実施の形態１では、判定部２１４は、まずソフトウェア管理テーブルに装置ＩＤが含まれているか否かをチェックし、次に、インストール回数情報のチェックを行うとしているが、これに限定されるものではない。まずインストール回数情報のチェックを行い、次に装置ＩＤのチェックを行うように構成しても良い。
（７）入出力部２０１
入出力部２０１は、認証部２１１、復号部２１２、暗号化部２１３及び情報記憶部２２０の第１記憶領域２２１と、外部の装置との間で情報の入出力を行う。
【００５７】
１．４  情報処理装置３００の構成
情報処理装置３００は、図３に示すように、インストール処理部３１０、ソフトウェア格納部３２０、制御部３２１、表示部３２２、入力部３２３、ソフトウェア実行部３２４、復号部３２５及び入出力部３０１から構成されている。インストール処理部３１０は、さらに、認証部３１１、暗号化部３１２、復号部３１３、復号部３１４、暗号化部３１５、装置ＩＤ格納部３１６、装置固有鍵生成部３１７、ソフトＩＤ取得部３１８及び乱数格納部３２６から構成されている。
【００５８】
情報処理装置３００は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどのメモリ部、キーボード、マウスなどの入力部、ディスプレイユニットなどの表示部から構成されるコンピュータシステムである。前記メモリ部には、インストール処理用のコンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記インストール処理用のコンピュータプログラムに従って動作することにより、情報処理装置３００は、インストール処理の機能を達成する。また、メモリカードから、ソフトウェアがインストールされた暁には、前記マイクロプロセッサが、前記インストールされたソフトウェアに従って動作することにより、情報処理装置３００は、インストールされたソフトウェアが提供する機能を達成する。
【００５９】
（１）ソフトウェア格納部３２０
ソフトウェア格納部３２０は、具体的には、ハードディスクユニットから構成され、メモリカード２００からインストールされる暗号化ソフトウェアを１個以上記憶する領域を備えている。
（２）装置ＩＤ格納部３１６
装置ＩＤ格納部３１６は、情報処理装置３００に固有の装置ＩＤを、書き換え不可能な形で記憶している。装置ＩＤは、６４ビット長のデータであり、情報処理装置３００を一意に識別する識別情報である。
【００６０】
（３）ソフトＩＤ取得部３１８
ソフトＩＤ取得部３１８は、利用者がインストールを指定したソフトウェアのソフトＩＤを取得する。
ソフトＩＤの取得の具体的な方法としては、例えば、利用者により情報処理装置３００にメモリカード２００が装着された際に、情報処理装置３００が有する表示部３２２は、メモリカード２００内に記憶されている暗号化ソフトウェアの一覧を表示する。入力部３２３は、その一覧からインストールしたいソフトウェアの指定を利用者のマウスの操作により、受け付ける。その結果として、ソフトＩＤ取得部３１８は、指定を受け付けたソフトウェアに対応するソフトＩＤを取得する。
【００６１】
（４）認証部３１１
メモリカード２００が利用者により情報処理装置３００に挿入されると、認証部３１１は、メモリカード２００が有する認証部２１１との間で、チャレンジ−レスポンス型の相互の機器認証を行う。具体的には、認証部３１１は、認証部２１１を認証する。次に、認証部３１１は、認証部２１１により、認証を受ける。両方の装置の認証が成功した場合にのみ、相互の認証が成功したものと見倣される。
【００６２】
両者の認証が成功した場合に、認証部３１１及び認証部２１１との間での上記チャレンジーレスポンス型の認証のプロセスにおいて使用される乱数情報に基づいて、相互の認証の都度、異なるセッション鍵を生成し、生成したセッション鍵を認証部２１１との間で秘密に共有する。
次に、認証部３１１は、生成したセッション鍵を暗号化部３１２及び復号部３１３へ出力する。
【００６３】
認証に失敗した場合に、認証部３１１は、以降の処理を中止する。従って、この場合に、情報処理装置３００が、メモリカード２００からソフトウェアを読み出すことはない。なお、チャレンジ−レスポンス型の認証、及びセッション鍵の共有方法については、公知であるので、説明を省略する。
（５）暗号化部３１２
暗号化部３１２は、認証部３１１からセッション鍵を受け取る。
【００６４】
次に、暗号化部３１２は、制御部３２１からソフトウェアのインストール又はアンインストールを示す区分を受け取り、ソフトＩＤ取得部３１８からソフトＩＤを受け取り、装置ＩＤ格納部３１６から装置ＩＤを読み出し、認証部３１１より受け取ったセッション鍵を用いて、前記区分、前記ソフトＩＤ及び前記装置ＩＤに暗号化アルゴリズムＥ３をそれぞれ施して暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤを生成する。
【００６５】
ここで、暗号化アルゴリズムＥ３は、ＤＥＳにより規定されたものである。
次に、暗号化部３１２は、生成した暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤをメモリカード２００へ出力する。
また、アンインストールの際に、暗号化部３１２は、完了情報及び乱数Ｒ’を受け取り、認証部３１１から受け取ったセッション鍵を用いて、受け取った完了情報及び乱数Ｒ’に暗号化アルゴリズムＥ３を施して、暗号化完了情報を生成し、生成した暗号化完了情報を、復号部２１２へ出力する。
【００６６】
（６）復号部３１３
復号部３１３は、認証部３１１からセッション鍵を受け取る。
次に、復号部３１３は、メモリカード２００から、暗号化ソフトキーを受け取り、受け取ったセッション鍵を用いて、受け取った暗号化ソフトキーに復号アルゴリズムＤ４を施して、ソフトキーを生成する。
【００６７】
ここで、復号アルゴリズムＤ４は、ＤＥＳにより規定されたものであり、暗号化アルゴリズムＥ４に対応するものである。復号アルゴリズムＤ４は、暗号化アルゴリズムＥ４を用いて生成された暗号文を復号する。
次に、復号部３１３は、生成したソフトキーを復号部３１４へ出力する。
また、アンインストールの際には、復号部３１３は、メモリカード２００から暗号化アンインストール可否情報を受け取り、認証部３１１から受け取ったセッション鍵を用いて、受け取った暗号化アンインストール可否情報に復号アルゴリズムＤ４を施して、アンインストール可否情報及び乱数Ｒ’を生成し、生成したアンインストール可否情報及び乱数Ｒ’を制御部３２１へ出力する。
【００６８】
（７）復号部３１４
復号部３１４は、メモリカード２００から、前記ソフトＩＤに対応する暗号化ソフトウェアを受け取る。また、復号部３１３からソフトキーを受け取る。
次に、復号部３１４は、受け取ったソフトキーを用いて、受け取った暗号化ソフトウェアに復号アルゴリズムＤ１を施して、ソフトウェアを生成する。
【００６９】
ここで、復号アルゴリズムＤ１は、ＤＥＳにより規定されたものであり、暗号化アルゴリズムＥ１に対応するものである。復号アルゴリズムＤ１は、暗号化アルゴリズムＥ１を用いて生成された暗号文を復号する。
次に、復号部３１４は、生成したソフトウェアを暗号化部３１５へ出力する。
（８）乱数格納部３２６
乱数格納部３２６は、６４ビット長の乱数を格納している。
【００７０】
（９）装置固有鍵生成部３１７
装置固有鍵生成部３１７は、装置ＩＤ格納部３１６から、装置ＩＤを読み出し、次に、乱数格納部３２６から６４ビット長の乱数を読み出し、読み出した乱数をキーとして、読み出した装置ＩＤに暗号化アルゴリズムＦを施して、装置ＩＤに対応する装置固有鍵を秘密に生成し、生成した装置固有鍵を暗号化部３１５及び復号部３２５へ出力する。
【００７１】
ここで暗号化アルゴリズムＦはＤＥＳにより規定されたものである。なお、乱数のビット長、暗号化アルゴリズムについては上記に説明したものに限定されない。
（１０）暗号化部３１５
暗号化部３１５は、装置固有鍵生成部３１７から装置固有鍵を受け取り、復号部３１４からソフトウェアを受け取る。
【００７２】
次に、暗号化部３１５は、受け取った装置固有鍵を用いて、受け取ったソフトウェアに暗号化アルゴリズムＥ２を施して、暗号化ソフトウェアを生成する。
ここで、暗号化アルゴリズムＥ２は、ＤＥＳにより規定されたものである。
次に、暗号化部３１５は、生成した暗号化ソフトウェアをソフトウェア格納部３２０へ書き込む。
【００７３】
（１１）復号部３２５
復号部３２５は、装置固有鍵生成部３１７から装置固有鍵を受け取る。また、復号部３２５は、利用者の指示により、ソフトウェア格納部３２０から暗号化ソフトウェアを読み出す。次に、復号部３２５は、受け取った装置固有鍵を用いて、読み出した暗号化ソフトウェアに復号アルゴリズムＤ２を施して、ソフトウェアを生成する。
【００７４】
ここで、復号アルゴリズムＤ２は、ＤＥＳにより規定されたものであり、暗号化アルゴリズムＥ２に対応するものである。復号アルゴリズムＤ２は、暗号化アルゴリズムＥ２を用いて生成された暗号文を復号する。
次に、復号部３２５は、生成したソフトウェアをソフトウェア実行部３２４へ出力する。
【００７５】
（１２）ソフトウェア実行部３２４
ソフトウェア実行部３２４は、復号部３２５からソフトウェアを受け取り、受け取ったソフトウェアに従って動作する。
（１３）制御部３２１
制御部３２１は、情報処理装置３００を構成する各構成部を制御する。
【００７６】
アンインストールの際には、制御部３２１は、復号部３１３から、アンインストール可否情報及び乱数Ｒ’を受け取り、受け取ったアンインストール可否情報を用いて、アンインストールの可否を判断する。
アンインストールが不可であると判断する場合に、制御部３２１は、アンインストール処理を行わず、アンインストールが未完了であることを示す８ビット長の完了情報を生成する。
【００７７】
アンインストールが可であると判断する場合に、制御部３２１は、ソフトウェア格納部３２０に格納されている暗号化ソフトウェアが実行できないように暗号化ソフトウェアを非活性化処理することにより、該ソフトウェアをアンインストールする。
ここでソフトウェアを非活性化処理するためには、例えば、乱数格納部３２６に格納されている乱数を他の乱数に更新する。
【００７８】
次に、制御部３２１は、ソフトウェアのアンインストールが完了したことを示す８ビット長の完了情報を生成し、生成した完了情報及び乱数Ｒ’を暗号化部３１２へ出力する。
（１４）入力部３２３
入力部３２３は、利用者から入力を受け付ける。具体的には、情報処理装置３００にメモリカード２００が装着されると、入力部３２３は、利用者からソフトウェアのインストール又はアンインストールを示す区分を受け付け、受け付けた区分を制御部３２１を介して、暗号化部３１２へ出力する。
【００７９】
インストールを示す区分を受け付けた場合には、入力部３２３は、さらに、利用者からインストールするソフトウェアの指定を受け付ける。一方、アンインストールを示す区分を受け付けた場合には、入力部３２３は、利用者からアンインストールする暗号化ソフトウェアの指定を受け付ける。
（１５）表示部３２２
表示部３２２は、制御部３２１の制御により、各種情報を表示する。具体的には、入力部３２３がインストールを示す区分を受け付けた場合には、表示部３２２は、メモリカード２００に記憶されているソフトウェアの一覧を表示する。一方、入力部３２３がアンインストールを示す区分を受け付けた場合には、表示部３２２は、情報処理装置３００のソフトウェア格納部３２０に格納されている暗号化ソフトウェアの一覧を表示する。
【００８０】
（１６）入出力部３０１
入出力部３０１は、インストール処理部３１０とメモリカード２００との間で情報の入出力を行う。
１．５  ソフトウェア管理システム１０の動作
利用者が情報処理装置３００にメモリカード２００を装着した後に、メモリカード２００に記憶されているソフトウェアを情報処理装置３００へインストールする場合及び情報処理装置３００に既にインストールされている暗号化ソフトウェアをアンインストールする場合のソフトウェア管理システム１０の動作について、図５〜９に示すフローチャートを用いて説明する。
【００８１】
情報処理装置３００にメモリカード２００が装着されると、入力部３２３は、利用者からソフトウェアのインストール又はアンインストールを示す区分を受け付け、受け付けた区分を制御部３２１を介して、暗号化部３１２へ出力し、入力部３２３がインストールを示す区分を受け付けた場合には、表示部３２２は、メモリカード２００に記憶されているソフトウェアの一覧を表示し、入力部３２３は、利用者からインストールするソフトウェアの指定を受け付け、入力部３２３がアンインストールを示す区分を受け付けた場合には、表示部３２２は、情報処理装置３００のソフトウェア格納部３２０に格納されている暗号化ソフトウェアの一覧を表示し、入力部３２３は、利用者からアンインストールする暗号化ソフトウェアの指定を受け付ける（ステップＳ１００）。
【００８２】
情報処理装置３００は、ソフトウェア又は暗号化ソフトウェアの指定を受け付けると、情報処理装置３００が有する認証部３１１とメモリカード２００が有する認証部２１１との間で、相互に認証を行う（ステップＳ１０１、ステップＳ１０２）。
認証に成功すると（ステップＳ１０４）、暗号化部３１２は、認証部３１１よりセッション鍵を受け取り、ソフトＩＤ取得部３１８よりソフトＩＤを受け取り、装置ＩＤ格納部より装置ＩＤを読み出し、受け取ったセッション鍵を用いて、区分、ソフトＩＤ及び装置ＩＤを暗号化して暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤを生成し（ステップＳ１０５）、生成した暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤをメモリカード２００に送信する（ステップＳ１０６）。
【００８３】
認証に成功すると（ステップＳ１０３）、復号部２１２は、認証部２１１よりセッション鍵を受け取り、受け取ったセッション鍵を用いて、情報処理装置３００より受信した暗号化区分、暗号化ソフトＩＤ及び暗号化装置ＩＤを復号し、生成した区分、ソフトＩＤ及び装置ＩＤを判定部２１４に送る（ステップＳ１０７）。
認証に失敗すると（ステップＳ１０３又はＳ１０４）、メモリカード２００又は情報処理装置３００は、以降の処理を中止する。
【００８４】
次に、判定部２１４は、第２記憶領域２２２から、前記生成されたソフトＩＤに対応するソフトウェア管理情報を読出し（ステップＳ１０８）、生成された区分がソフトウェアのインストール又はアンインストールのいずれを示すかを判断する（ステップＳ１０９）。
（インストール時の処理）
区分がソフトウェアのインストールを示すと判断する場合に（ステップＳ１０９）、判定部２１４は、読み出したソフトウェア管理情報に基づいて、インストールを許可するか否かを判定する（ステップＳ１１０）。なおステップＳ１１０の詳細は後述する。
【００８５】
インストールを許可しないと判定した場合に（ステップＳ１１０）、判定部２１４は、不許可を示す不許可メッセージを情報処理装置３００に送信し（ステップＳ１２０）、その後、メモリカード２００は、処理を中止する。
メモリカード２００から前記不許可メッセージを受け取ると（ステップＳ１２１）、制御部３２１は、表示部３２２に対して前記不許可メッセージを表示するように制御し、表示部３２２は、前記不許可メッセージを表示し（ステップＳ１２２）、その後、情報処理装置３００は、処理を中止する。
【００８６】
インストールを許可すると判定した場合に（ステップＳ１１０）、判定部２１４は、ソフト管理情報に含まれるソフトキーを暗号化部２１３に送り、暗号化部２１３は、ソフトキーを、認証部２１１より受け取ったセッション鍵を用いて暗号化して暗号化ソフトキーを生成し（ステップＳ１１１）、生成した暗号化ソフトキーを情報処理装置３００に送信し（ステップＳ１１２）、制御部３２１が前記不許可メッセージを受け取っていない場合に（ステップＳ１２１）、復号部３１３は、メモリカード２００から受け取った暗号化ソフトキーを、認証部３１１より受け取ったセッション鍵を用いて復号する（ステップＳ１１３）。
【００８７】
また、第１記憶領域２２１から暗号化ソフトウェアが読み出され（ステップＳ１１４）、読み出された暗号化ソフトウェアが情報処理装置３００へ送信される（ステップＳ１１５）。復号部３１４は、復号部３１３から受取った復号されたソフトキーを用いて、暗号化ソフトウェアを復号し（ステップＳ１１６）、復号されたソフトウェアを暗号化部３１５へ送り、装置固有鍵生成部３１７は、装置ＩＤ格納部３１６より装置ＩＤを読み出し、読み出した装置ＩＤを用いて装置固有鍵を生成し（ステップＳ１１７）、暗号化部３１５は、復号部３１４より受け取ったソフトウェアを、装置固有鍵生成部３１７より受け取った装置固有鍵を用いて暗号化して暗号化ソフトウェアを生成し（ステップＳ１１８）、暗号化部３１５は、生成した暗号化ソフトウェアをソフトウェア格納部３２０に書き込むことにより、インストールする（ステップＳ１１９）。
【００８８】
以上のようにして、暗号化ソフトウェアのインストールが完了する。
（アンインストール時の処理）
区分がソフトウェアのアンインストールを示すと判断する場合に（ステップＳ１０９）、さらに、判定部２１４は、復号部２１２から受け取った装置ＩＤが、第２記憶領域２２２から読み出したソフトウェア管理情報に含まれるかどうかを判断し、装置ＩＤが含まれない場合は（ステップＳ２０１）、アンインストール不可と判定してアンインストール不可を示す８ビット長のアンインストール可否情報を生成する（ステップＳ２０３）。一方、装置ＩＤが含まれる場合は（ステップＳ２０１）、判定部２１４は、アンインストール可と判定してアンインストール可を示す８ビット長のアンインストール可否情報を生成する（ステップＳ２０２）。
【００８９】
次に、判定部２１４は、５６ビット長の乱数Ｒを生成し、生成した乱数Ｒを保持し（ステップＳ２０４）、生成した乱数Ｒ及びアンインストールの可否を示すアンインストール可否情報を暗号化部２１３へ出力し、暗号化部２１３は、乱数Ｒ及びアンインストール可否情報を受け取り、認証部２１１から受け取ったセッション鍵を用いて、受け取った乱数Ｒ及びアンインストール可否情報に暗号化アルゴリズムＥ４を施して、暗号化アンインストール可否情報を生成し（ステップＳ２０５）、生成した暗号化アンインストール可否情報を情報処理装置３００へ出力する（ステップＳ２０６）。
【００９０】
復号部３１３は、メモリカード２００から暗号化アンインストール可否情報を受け取り（ステップＳ２０６）、認証部３１１から受け取ったセッション鍵を用いて、受け取った暗号化アンインストール可否情報に復号アルゴリズムＤ４を施して、アンインストール可否情報及び乱数Ｒ’を生成し、生成したアンインストール可否情報及び乱数Ｒ’を制御部３２１へ出力する（ステップＳ２０７）。
【００９１】
次に、制御部３２１は、アンインストール可否情報及び乱数Ｒ’を受け取り、受け取ったアンインストール可否情報を用いて、アンインストールの可否を判断し、アンインストールが不可であると判断する場合に（ステップＳ２０８）、アンインストール処理を行わず、アンインストールが未完了であることを示す８ビット長の完了情報を生成し（ステップＳ２１１）、次に、ステップＳ２１２へ制御を移す。
【００９２】
アンインストールが可であると判断する場合に（ステップＳ２０８）、制御部３２１は、ソフトウェア格納部３２０に格納されている暗号化ソフトウェアが実行できないように暗号化ソフトウェアを非活性化処理することにより、該ソフトウェアをアンインストールする。ここでソフトウェアを非活性化処理するためには、例えば、乱数格納部３２６に格納されている乱数を他の乱数に更新すればよい（ステップＳ２０９）。次に、制御部３２１は、ソフトウェアのアンインストールが完了したことを示す８ビット長の完了情報を生成する（ステップＳ２１０）。
【００９３】
次に、制御部３２１は、完了情報及び乱数Ｒ’を暗号化部３１２へ出力し、暗号化部３１２は、完了情報及び乱数Ｒ’を受け取り、認証部３１１から受け取ったセッション鍵を用いて、受け取った完了情報及び乱数Ｒ’に暗号化アルゴリズムＥ３を施して、暗号化完了情報を生成し（ステップＳ２１２）、生成した暗号化完了情報を、復号部２１２へ出力する（ステップＳ２１３）。
【００９４】
復号部２１２は、暗号化部３１２から暗号化完了情報を受け取り（ステップＳ２１３）、認証部２１１から受け取ったセッション鍵を用いて、受け取った暗号化完了情報に復号アルゴリズムＤ３を施して、完了情報及び乱数Ｒ’を生成し、生成した完了情報及び乱数Ｒ’を判定部２１４へ出力する（ステップＳ２１４）。
次に、判定部２１４は、完了情報及び乱数Ｒ’を受け取り、受け取った乱数Ｒ’と保持している乱数Ｒとが一致するか否かを判断し、一致しない場合には（ステップＳ２１５）、アンインストール処理を中止する。
【００９５】
一致する場合には（ステップＳ２１５）、判定部２１４は、さらに、完了情報がアンインストールが完了したことを示しているか否かを判断し、完了情報がアンインストールが完了したことを示していない場合は（ステップＳ２１６）、以降のアンインストール処理を中止する。
一方、完了情報がアンインストールが完了したことを示している場合は、（ステップＳ２１６）、判定部２１４は、ソフトウェア管理情報に含まれるインストール回数情報に「１」の値を加算し、得られた値を、新たにインストール回数情報として、ソフトウェア管理情報テーブル２３１内の前記ソフトウェア管理情報内に上書きする（ステップＳ２１７）。
【００９６】
このようにして、アンインストールが完了する。
以上で説明したアンインストールの手順を利用すれば、例えば、利用者が、暗号化ソフトウェアをインストールしていたハードディスクユニットを、新規のハードディスクユニットに交換したいような場合に、メモリカードに記録されているインストール回数情報が、例え「０」を示している場合であっても、アンインストールを実行することにより新規のハードディスクユニットに新たにインストールすることが可能となる。
【００９７】
なお、複数の暗号化ソフトウェアがソフトウェア格納部３２０にインストールされている場合は、前記ステップＳ２０９において、前記乱数格納部３２６に格納されている乱数を更新する前に、アンインストール対象の暗号化ソフトウェア以外の暗号化ソフトウェアに対して、復号部３２５で、更新前の乱数より生成される装置固有鍵を用いて復号してソフトウェアを生成し、生成したソフトウェアを、暗号化部３１５で更新後の乱数より生成される装置固有鍵を用いて、再び暗号化して再暗号化ソフトウェアを生成し、生成した再暗号化ソフトウェアをソフトウェア格納部３２０に格納すればよい（ステップＳ２０９ａ）。
【００９８】
（ステップ１１０の詳細の動作）
次に、判定部２１４における前記ステップ１１０の詳細の動作について、図９に示すフローチャートを用いて説明する。
判定部２１４は、復号部２１２より受け取った装置ＩＤが、第２記憶領域２２２より受取ったソフトウェア管理情報に含まれるかどうかチェックし（ステップＳ１５１）、装置ＩＤが含まれない場合は（ステップＳ１５１）、新しい情報処理装置へのインストールの要請と判断し、ソフトウェア管理情報に含まれるインストール回数をチェックし（ステップＳ１５３）、１以上であれば（ステップＳ１５３）インストール可と判定する。このとき、前記第２記憶領域２２２より読み出したソフトウェア管理情報に、前記復号部２１２より受け取った装置ＩＤを追加して書き込むとともに、インストール回数を１減算した値に更新したソフトウェア管理情報を第２記憶領域２２２に書き込む（ステップＳ１５５）。インストール回数が零であれば（ステップＳ１５３）、インストール不可と判定する。また、前記ステップ１５１において、装置ＩＤが含まれる場合は（ステップＳ１５１）、既にインストール済みの情報処理装置への再インストールの要請と判断し、インストール可と判定する。
【００９９】
なお、ソフトウェア管理情報は、インストール期間情報を含むとしてもよい。ここで、インストール期間情報は、６４ビット長であり、利用者に対して、当該ソフトウェア管理情報に対応するソフトウェアをインストールすることができる期間を制限するものであり、インストール期間の開始日時を示すインストール許可開始日時と、インストール期間の終了日時を示すインストール許可終了日時とから構成される。利用者に対して、インストール許可開始日時からインストール許可終了日時までの期間内においてのみ、当該ソフトウェアのインストールが許可される。この期間内であれば、利用者は、当該ソフトウェアを何回でもインストールすることができる。ここで、インストール期間情報とインストール回数情報の両方が指定されている場合には、許可されている期間が終了するか、インストール回数までインストールした後には、ソフトウェアをインストールすることはできないものとする。
【０１００】
１．６  その他の例
ソフトウェア管理システム１０は、以下のように構成してもよい。
（１）実施の形態１においては、ソフトウェア書込装置１００は、パーソナルコンピュータ等で構成されるコンピュータシステムとしているが、この構成に限定されるものではない。例えば、ソフトウェア書込装置１００は、ＫＩＯＳＫ端末により構成されるとしても良い。
【０１０１】
このとき、入力部１１５及び表示部１１６は、タッチパネル式のディスプレィユニットであるとしても良い。
（２）実施の形態１では、ソフトウェアの書き込まれたメモリカード２００は、利用者に提供されるとしているが、この構成に限定されるものではない。
ソフトウェアの書き込まれたメモリカード２００は、ソフトウェア販売店やＣＥ機器メーカの顧客サービスセンターのサービスマンに提供され、このサービスマンにより、利用者の情報処理装置にメモリカード２００が挿入されるとしても良い。
【０１０２】
（３）実施の形態１では、ソフトウェア書込装置１００がメモリカード２００にソフトウェア管理情報を書き込む時点においては、ソフトウェア管理情報２４１は、装置ＩＤを含まないとしているが、この構成に限定されるものではない。
ソフトウェア書込装置１００がメモリカード２００にソフトウェア管理情報を書き込む時点において、ソフトウェア管理情報２４１は、装置ＩＤを含んでいるとしても良い。
【０１０３】
このように構成することにより、利用者が提供されたメモリカードを用いて初めてソフトウェアをインストールする際に、ソフトウェア提供者は、利用者に対して、ソフトウェアをインストールする情報処理装置を限定できる。
（４）実施の形態１では、ソフトウェアをインストールする際に、復号部３１４は、ソフトキーを用いて、メモリカード２００から受け取った暗号化ソフトウェアを復号し（ステップＳ１１６）、暗号化部３１５は、装置固有鍵を用いて、復号されたソフトウェアを暗号化し（ステップＳ１１７〜Ｓ１１８）、生成した暗号化ソフトウェアをソフトウェア格納部３２０に書き込むことによりソフトウェアをインストールする（ステップＳ１１９）としているが、この構成に限定されるものではない。
【０１０４】
装置固有鍵生成部３１７は、装置固有鍵を生成し（ステップＳ１１７）、暗号化部３１５は、生成された装置固有鍵を用いて、復号部３１３から受け取ったソフトキーを暗号化して暗号化ソフトキーを生成し（ステップＳ１１８’）、生成した暗号化ソフトキーと、メモリカード２００から受け取った暗号化ソフトウェアをソフトウェア格納部３２０に書き込むことによりインストールする（ステップＳ１１９’）ように構成にしても良い。
【０１０５】
このとき、情報処理装置３００は、さらに復号部３２７（図示していない）を備え、ソフトウェアの実行時には、復号部３２５は、受け取った装置固有鍵を用いて、暗号化ソフトキーを復号してソフトキーを生成し、生成したソフトキーを復号部３２７へ出力し、復号部３２７は、復号部３２５からソフトキーを受け取り、受け取ったソフトキーを用いて、暗号化ソフトウェアを復号してソフトウェアを生成し、生成したソフトウェアをソフトウェア実行部３２４へ出力する。ソフトウェア実行部３２４は、復号部３２７からソフトウェアを受け取り、受け取ったソフトウェアに従って、ソフトウェア実行部３２４は、動作する。
【０１０６】
（５）実施の形態１では、インストール時及びソフトウェア実行時において、装置固有鍵生成部３１７は、乱数格納部３２６から６４ビット長の乱数を読出すものとし、アンインストール時において、乱数格納部３２６の前記乱数を更新するとしているが、この構成に限定されるものではない。
乱数格納部３２６は、インストールするソフトウェアに対応付けて、６４ビット長の乱数を記憶しており、インストール時及びソフトウェア実行時において、乱数格納部３２６から、インストールするソフトウェアに対応する６４ビット長の乱数を読み出すものとし、アンインストール時において、乱数格納部３２６の前記ソフトウェアに対応する乱数を更新する構成としても良い。
【０１０７】
この構成により、前記ステップＳ２０９において、複数の暗号化ソフトウェアがソフトウェア格納部３２０にインストールされている場合において、実施の形態１で必要であった暗号化ソフトウェアの復号、再暗号化処理（ステップＳ２０９ａ）は不要となる。
（６）実施の形態１では、認証の方法としてチャレンジ−レスポンス型の認証を利用し、セッション鍵の共有方法として、チャレンジ−レスポンス型の認証のプロセスにおいて使用される乱数情報に基づいてセッション鍵を生成することにより行うものとしているが、この構成に限定されるものではない。
【０１０８】
例えば認証の方法として、デジタル署名を利用する方法を利用し、セッション鍵の共有方法としては、ディフィーヘルマン（ＤＨ）型鍵共有方法を利用しても良い。
デジタル署名を利用する認証方法については、「現代暗号理論」（池野信一、小山謙二共著、電子情報通信学会）、Ｐ８３，５．３，（２）に、また、ＤＨ型鍵共有方法については、同Ｐ１７５に詳細に説明されている。
【０１０９】
（７）実施の形態１では、ソフトウェアをソフトウェア書込装置がメモリカードに書き込む際に、ソフトキーは、予めソフトウェア管理情報に含まれるものとし、暗号化部１１２により、ソフトウェア管理テーブル１２１から、前記ソフトＩＤを含むソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報からソフトキーを抽出するものとしたが、この構成に限定されるものではない。
【０１１０】
例えば、ソフトキーは、ソフトウェア管理情報に含まれないものとし、暗号化部１１２は、ソフトウェア管理テーブル１２１から、前記ソフトＩＤを含むソフトウェア管理情報を読み出すとともに、ソフトキーを生成するものとしても良い。
また、実施の形態１では、ソフトウェア書込装置１００の情報記憶部１１３は、ソフトウェアを格納しており、暗号化部１１２は、前記ソフトウェアを暗号化して、メモリカード２００に記録するとしているが、これには限定されない。
【０１１１】
例えば、情報記憶部１１３は、予め、ソフトウェアをソフトキーで暗号化して得られた暗号化ソフトウェアを記憶しており、ソフトウェア書込装置１００は、情報記憶部１１３から暗号化ソフトウェアを読み出し、読み出した暗号化ソフトウェアをそのままメモリカード２００に記録するとしても良い。
（８）実施の形態１では、アンインストール処理において、アンインストール可否情報と、完了情報をそれぞれ８ビットとし、乱数Ｒを５６ビットとしたがこれらのビット長に限定されるものではない。  
【０１１２】
（９）実施の形態１では、アンインストール処理のステップＳ２１２において、セッション鍵を用いて、完了情報及び乱数Ｒ’に暗号化アルゴリズムＥ３を施すとしたが、この構成に限定されるものではない。
例えば、完了情報、及び、乱数Ｒ’のビット反転値（Ｒ”）に、暗号化アルゴリズムＥ３を施すとしてもよい。この場合、ステップＳ２１５においては、受け取った乱数Ｒ”と、保持している乱数Ｒのビット反転値が一致するか否かを判断するものとする。
【０１１３】
（１０）実施の形態１では、ソフトウェアは、コンピュータプログラムなどであるとしているが、コンピュータプログラムの動作に付随するデータであっても良い。
（１１）実施の形態１のソフトウェア管理テーブルに、機種ＩＤ（グループＩＤ）を含める構成としても良い。ここで、機種ＩＤ（グループＩＤ）は、情報処理装置の種類を識別する識別情報である。また、同一の種類の情報処理装置とは、例えば、同一の処理性能を有するマイクロプロセッサを内蔵するもの、同一の容量のハードディスクを内蔵するもの、同一の容量のメモリを内蔵するもの、同一メーカにより製造されたものなどを言う。
【０１１４】
この場合、情報処理装置は、自身の種類を識別する機種ＩＤ（グループＩＤ）を備え、メモリカードは、機種ＩＤ（グループＩＤ）に基づいて、同一機種（同一グループ）へのインストール、アンインストールの判定を行う。この構成によりインストールを特定機種の情報処理装置に限定することも可能である
（１２）実施の形態１のソフトウェア管理テーブルに、ソフトウェアのバージョン情報を含める構成としても良い。
【０１１５】
この場合、情報処理装置において、インストール対象のソフトＩＤとともに、バージョン情報を受け付け、メモリカードでは、ソフトＩＤとともに、バージョン情報に基づいて、インストールやアンインストールの可否の判定や、該バージョンのソフトウェアのインストールやアンインストールを行う。
（１３）実施の形態１では、メモリカードの第１記憶領域に暗号化ソフトウェアを記憶する構成としたが、これに限定されるものではない。
【０１１６】
暗号化ソフトウェアを、別途、通信回線や、別の記録媒体を介して、情報処理装置が取得する構成としても良い。
（１４）実施の形態１では、メモリカード２００は、ソフトウェア書込装置１００に装着されるとしているが、メモリカード２００は、非接触式のメモリカードであり、ソフトウェア書込装置１００は、非接触式の前記メモリカード２００に対して、非接触に情報の読み書きができるリーダ／ライタ部を備えているとしても良い。この場合、利用者は、メモリカード２００をソフトウェア書込装置１００に装着する必要はなく、メモリカード２００をソフトウェア書込装置１００にかざすだけで、ソフトウェア書込装置１００とメモリカード２００とは、上述した処理を行うことができる。
【０１１７】
２．変形例（１）
実施の形態１の変形例としてのソフトウェア管理システム１０ｂ（図示していない）について説明する。
ソフトウェア管理システム１０ｂは、ソフトウェア書込装置１００ｂ、可搬型のメモリカード２００ｂ及び情報処理装置３００ｂから構成されている。ソフトウェア書込装置１００ｂ、メモリカード２００ｂ及び情報処理装置３００ｂは、それぞれソフトウェア書込装置１００、メモリカード２００及び情報処理装置３００と同様の構成を有している。
【０１１８】
ここでは、ソフトウェア書込装置１００、メモリカード２００及び情報処理装置３００との相違点を中心として、ソフトウェア書込装置１００ｂ、メモリカード２００ｂ及び情報処理装置３００ｂについて説明する。
２．１  ソフトウェア書込装置１００ｂの構成
ソフトウェア書込装置１００ｂは、図１０に示すように、認証部１１１、暗号化部１１２、情報記憶部１１３、制御部１１４、署名生成部１１７、暗号化部１１８及び入出力部１０１から構成されている。また、ソフトウェア書込装置１００ｂには、入力部１１５及び表示部１１６が接続されている。
【０１１９】
このように、ソフトウェア書込装置１００ｂは、ソフトウェア書込装置１００と同様の構成を有しており、ソフトウェア書込装置１００ｂは、さらに、署名生成部１１７を備えている点において、ソフトウェア書込装置１００と相違する。
（１）署名生成部１１７
署名生成部１１７は、暗号化部１１２から暗号化ソフトウェアを受け取る。暗号化ソフトウェアを受け取ると、署名生成部１１７は、受け取った暗号化ソフトウェアに、デジタル署名生成アルゴリズムＳＩＧを施して、ソフト署名データを生成する。
【０１２０】
ここで、デジタル署名生成アルゴリズムＳＩＧは、１６０ビット長の楕円曲線暗号によるデジタル署名の生成法に基づくものであり、ソフト署名データは、３２０ビット長である。なお、楕円曲線暗号については、「暗号理論の基礎」（Ｄｏｕｇｌａｓ  Ｒ．Ｓｔｉｎｓｏｎ著、共立出版株式会社）に詳細に説明されている。
次に、署名生成部１１７は、生成したソフト署名データを、入出力部１０１を介して、メモリカード２００ｂの判定部２１４へ出力する。
【０１２１】
２．２  メモリカード２００ｂの構成
メモリカード２００ｂは、図１０及び図１２に示すように、耐タンパモジュール部２１０、情報記憶部２２０及び入出力部２０１から構成されている。耐タンパモジュール部２１０及び情報記憶部２２０は、メモリカード２００が有する耐タンパモジュール部２１０及び情報記憶部２２０と同様の構成を有している。
【０１２２】
ここでは、メモリカード２００との相違点を中心として説明する。
（１）判定部２１４
判定部２１４は、認証部２１１から第１認証成功情報を受け取ると、さらに、ソフト署名データを受け取る。次に、判定部２１４は、受け取ったソフト署名データを、受け取ったソフトウェア管理情報内に書き込み、ソフト署名データを含むソフトウェア管理情報をソフトウェア管理情報テーブル２３１内に追加して書き込む。
【０１２３】
ソフト署名データが書き込まれたソフトウェア管理情報の一例を図１１に示す。この図に示すソフトウェア管理情報２４１ｂは、ソフトＩＤ、ソフトキー、インストール回数情報、ソフト署名データ及び複数の装置ＩＤを含む。
なお、図１１に示すソフトウェア管理情報２４１ｂは、複数の装置ＩＤを含むように構成されているが、ソフトウェア書込装置１００ｂからメモリカード２００ｂに、ソフトウェア管理情報が書き込まれる時点においては、まだ、ソフトウェア管理情報２４１ｂは、複数の装置ＩＤを含んでいないものとする。
【０１２４】
判定部２１４が第２認証成功情報を受け取った場合であって、インストールを許可すると判定したときに、受け取ったソフト署名データを情報処理装置３００ｂへ出力する。
２．３  情報処理装置３００ｂの構成
情報処理装置３００ｂは、図１２に示すように、インストール処理部３１０、ソフトウェア格納部３２０、制御部３２１、表示部３２２、入力部３２３、ソフトウェア実行部３２４、復号部３２５及び入出力部３０１から構成されている。インストール処理部３１０は、さらに、認証部３１１、暗号化部３１２、復号部３１３、復号部３１４、暗号化部３１５、装置ＩＤ格納部３１６、装置固有鍵生成部３１７、ソフトＩＤ取得部３１８及び署名検証部３１９から構成されている。
【０１２５】
このように、情報処理装置３００ｂは、情報処理装置３００と同様の構成を有しており、さらに署名検証部３１９を備えている点において、情報処理装置３００と異なる。
（１）署名検証部３１９
署名検証部３１９は、メモリカード２００ｂの判定部２１４からソフトウェア管理情報に含まれるソフト署名データを受け取る。また、署名検証部３１９は、メモリカード２００ｂの第１記憶領域２２１から暗号化ソフトウェアを読み出す。
【０１２６】
次に、署名検証部３１９は、受け取ったソフト署名データ及び読み出した暗号化ソフトウェアに、デジタル署名検証アルゴリズムＶＲＦを施し、検証成功を示す検証成功情報、又は検証失敗を示す検証失敗情報を生成する。
ここで、デジタル署名検証アルゴリズムＶＲＦは、楕円暗号によるデジタル署名の検証法に基づくものである。
【０１２７】
次に、署名検証部３１９は、検証成功情報又は検証失敗情報を復号部３１４へ出力する。
（２）復号部３１４
復号部３１４は、署名検証部３１９から検証成功情報又は検証失敗情報を受け取る。
検証失敗情報を受け取ると、復号部３１４は、以降の復号処理を中止する。
【０１２８】
検証成功情報を受け取ると、復号部３１４は、暗号化ソフトウェアの復号を継続して行う。
２．４  その他の例
（１）変形例（１）において、署名生成部１１７は、暗号化ソフトウェアにデジタル署名生成アルゴリズムＳＩＧを施してソフト署名データを生成するとしているが、この構成には限定されない。
【０１２９】
署名生成部１１７は、暗号化ソフトウェアとソフトキーとインストール回数情報とにデジタル署名生成アルゴリズムＳＩＧを施してソフト署名データを生成するとしてもよい。
この場合、ソフトウェアのインストール時に、暗号化部２１３は、セッション鍵を用いて、ソフトキー及びインストール回数情報を暗号化して暗号化情報を生成し、生成した暗号化情報を情報処理装置３００ｂへ送信する。情報処理装置３００ｂの復号部３１３は、セッション鍵を用いて、受け取った暗号化情報を復号して、ソフトキー及びインストール回数情報を生成し、署名検証部３１９は、ソフト署名データ、暗号化ソフトウェア、生成されたソフトキー及び生成されたインストール回数情報に、署名検証アルゴリズムＶＲＦを施して、ソフト署名データを検証するものとする。
【０１３０】
また、署名生成部１１７は、ソフトウェアにデジタル署名アルゴリズムＳＩＧを施してソフト署名データを生成するとしても良い。
この場合、インストール時に、署名検証部３１９は、ソフト署名データと、前記ソフトウェアに、署名検証アルゴリズムＶＲＦを施して、ソフト署名データを検証するものとする。なお、この場合、メモリカード２００ｂの第１記憶領域２２１には、暗号化されていないソフトウェアが書き込まれる。
【０１３１】
３．変形例（２）
ソフトウェア管理システム１０ｂの変形例としてのソフトウェア管理システム１０ｃ（図示していない）について説明する。
ソフトウェア管理システム１０ｃは、ソフトウェア書込装置１００ｃ（図示していない）、可搬型のメモリカード２００ｃ及び情報処理装置３００ｃから構成されている。ソフトウェア書込装置１００ｃは、ソフトウェア書込装置１００ｂと同一の構成を有している。メモリカード２００ｃ及び情報処理装置３００ｃは、それぞれメモリカード２００ｂ及び情報処理装置３００ｂと同様の構成を有している。
【０１３２】
ここでは、メモリカード２００ｂ及び情報処理装置３００ｂとの相違点を中心として、メモリカード２００ｃ及び情報処理装置３００ｃについて説明する。
３．１  メモリカード２００ｃの構成
メモリカード２００ｃは、図１３に示すように、耐タンパモジュール部２１０、情報記憶部２２０及び入出力部２０１から構成されている。耐タンパモジュール部２１０及び情報記憶部２２０は、メモリカード２００ｂが有する耐タンパモジュール部２１０及び情報記憶部２２０と同様の構成を有している。
【０１３３】
ここでは、メモリカード２００ｂとの相違点を中心として説明する。
耐タンパモジュール部２１０は、認証部２１１、復号部２１２、暗号化部２１３及び判定部２１４、復号部２１５、暗号化部２１６及びキー情報記憶部２１７から構成されている。このように、耐タンパモジュール部２１０は、さらに、復号部２１５、暗号化部２１６及びキー情報記憶部２１７を備える点において、メモリカード２００ｂの耐タンパモジュール部２１０と相違する。
【０１３４】
（１）判定部２１４
判定部２１４は、認証部２１１から第１認証成功情報を受け取ると、さらに、ソフト署名データを受け取る。次に、判定部２１４は、受け取ったソフト署名データを、受け取ったソフトウェア管理情報内に書き込み、次に、ソフト署名データを含むソフトウェア管理情報を暗号化部２１６へ出力する。
【０１３５】
ソフト署名データが書き込まれたソフトウェア管理情報の一例は、図１１に示す通りである。
また、判定部２１４は、復号部２１５からソフトウェア管理情報を受け取る。
（２）キー情報記憶部２１７
キー情報記憶部２１７は、キー情報を記憶している。キー情報は、５６ビット長のデータであり、ソフトウェア管理情報を暗号化又は復号するために用いられる。
【０１３６】
（３）暗号化部２１６
暗号化部２１６は、判定部２１４からソフトウェア管理情報を受け取り、キー情報記憶部２１７からキー情報を読み出す。
次に、暗号化部２１６は、読み出したキー情報を用いて、受け取ったソフトウェア管理情報に暗号化アルゴリズムＥ５を施して、暗号化ソフトウェア管理情報を生成し、生成した暗号化ソフトウェア管理情報を第２記憶領域２２２が有する暗号化ソフトウェア管理情報テーブル２３１ｃに書き込む。
【０１３７】
ここで、暗号化アルゴリズムＥ５は、ＤＥＳにより規定されたものである。
（４）復号部２１５
復号部２１５は、第２記憶領域２２２が有する暗号化ソフトウェア管理情報テーブル２３１ｃから暗号化ソフトウェア管理情報を読み出し、キー情報記憶部２１７からキー情報を読み出す。
【０１３８】
次に、復号部２１５は、読み出したキー情報を用いて、読み出した暗号化ソフトウェア管理情報に復号アルゴリズムＤ５を施して、ソフトウェア管理情報を生成し、生成したソフトウェア管理情報を判定部２１４へ出力する。
ここで、復号アルゴリズムＤ５は、ＤＥＳにより規定されたものであり、暗号化アルゴリズムＥ５に対応するものである。復号アルゴリズムＤ５は、暗号化アルゴリズムＥ５を用いて生成された暗号文を復号する。
【０１３９】
３．２  情報処理装置３００ｃの構成
情報処理装置３００ｃは、図１３に示すように、インストール処理部３１０、ソフトウェア格納部３２０、制御部３２１、表示部３２２、入力部３２３、ソフトウェア実行部３２４、復号部３２５及び入出力部３０１から構成されている。インストール処理部３１０は、さらに、認証部３１１、暗号化部３１２、復号部３１３、復号部３１４、暗号化部３１５、装置ＩＤ格納部３１６、装置固有鍵生成部３１７、ソフトＩＤ取得部３１８及び署名検証部３１９から構成されている。
【０１４０】
このように、情報処理装置３００ｃは、情報処理装置３００ｂと同様の構成を有しているので、詳細についての説明を省略する。
３．３  その他の例
変形例（２）では、キー情報記憶部２１７に記憶されているキー情報は固定値であるとしているが、これに限定されることなく、キー情報は、可変値であるとしてもよい。
【０１４１】
この場合、第２記憶領域２２２から判定部２１４へソフトウェア管理情報を出力する際に、復号部２１５は、暗号化ソフトウェア情報管理テーブル２３１ｃから全ての暗号化ソフトウェア管理情報を読み出し、キー情報記憶部２１７からキー情報を読み出し、次に復号部２１５は、読み出したキー情報を用いて読み出した全暗号化ソフトウェア管理情報に復号アルゴリズムＤ５を施してソフトウェア管理情報を生成する。次に、判定部２１４から第２記憶領域２２２へソフトウェア管理情報を出力する際に、判定部２１４は、キー情報を更新してキー情報記憶部２１７に格納し、暗号化部２１６は、更新されたキー情報を用いて、復号された全ソフトウェア管理情報に、暗号化アルゴリズムＥ５を施して暗号化ソフトウェア管理情報を生成し、第２記憶領域２２２の暗号化ソフトウェア管理情報テーブル２３１ｃに書き込むとしても良い。
【０１４２】
また、変形例（２）では、メモリカード２００ｃにおいて、暗号化部２１６は、キー情報記憶部２１７に記憶されているキー情報を用いて、ソフトウェア管理情報を暗号化して生成した暗号化ソフトウェア管理情報を第２記憶領域２２２に書き込み、復号部２１５は、前記キー情報を用いて、第２記憶領域２２２に記憶されている暗号化ソフトウェア管理情報を復号してソフトウェア管理情報を生成し、生成したソフトウェア管理情報を判定部２１４へ出力するとしているが、この構成には限定されない。
【０１４３】
例えば、次のように構成してもよい。
メモリカード２００ｃは、キー情報記憶部２１７に記憶されているキー情報を、メモリカード２００ｃにアクセスする装置（ソフトウェア書込装置、又はコンテンツ配信装置）に秘密に転送する。
アクセスする装置は、自身の暗号化部において、受け取ったキー情報を用いて、ソフトウェア管理情報を暗号化して、暗号化ソフトウェア管理情報をメモリカード２００ｃへ転送する。
【０１４４】
メモリカード２００ｃは、受け取った暗号化ソフトウェア管理情報を第２記憶領域２２２に書き込む。メモリカード２００ｃの復号部２１５は、前記キー情報を用いて、第２記憶領域２２２に記憶されている暗号化ソフトウェア管理情報を復号してソフトウェア管理情報を生成し、生成したソフトウェア管理情報を判定部２１４へ出力する。
また、前記キー情報は、メモリカード２００ｃに固有のキー情報としてもよい。
【０１４５】
また、前記キー情報は、メモリカード２００ｃに固有の公開鍵及び秘密鍵のペアとしてもよい。このとき、メモリカード２００ｃは、前記公開鍵を、アクセスする装置に転送する。アクセスする装置は、前記公開鍵を受信し、内部に記憶しているソフトウェア管理情報を、この公開鍵を用いて暗号化して、暗号化ソフトウェア管理情報を生成し、生成した暗号化ソフトウェア管理情報をメモリカード２００ｃに転送する。メモリカード２００ｃは、受け取った暗号化ソフトウェア管理情報を第２記憶領域２２２に書き込む。メモリカード２００ｃの復号部２１５は、前記秘密鍵を用いて、暗号化ソフトウェア管理情報を復号してソフトウェア管理情報を生成し、生成したソフトウェア管理情報を判定部２１４へ出力する。
【０１４６】
４．変形例（３）
変形例（１）に示すソフトウェア管理システム１０ｂの変形例としてのソフトウェア管理システム１０ｄ（図示していない）について説明する。
ソフトウェア管理システム１０ｄは、ソフトウェア書込装置１００ｄ（図示していない）、可搬型のメモリカード２００ｄ及び情報処理装置３００ｄから構成されている。ソフトウェア書込装置１００ｄ、メモリカード２００ｄ及び情報処理装置３００ｄは、それぞれソフトウェア書込装置１００ｂ、メモリカード２００ｂ及び情報処理装置３００ｂと同様の構成を有している。
【０１４７】
ここでは、メモリカード２００ｂとの相違点を中心として、メモリカード２００ｄについて説明する。
メモリカード２００ｄは、図１４に示すように、耐タンパモジュール部２１０、情報記憶部２２０及び入出力部２０１から構成されている。耐タンパモジュール部２１０は、認証部２１１、復号部２１２、暗号化部２１３、判定部２１４及び情報記憶部２１８から構成されている。メモリカード２００ｂが有する耐タンパモジュール部２１０とは、メモリカード２００ｄが有する耐タンパモジュール部２１０がさらに情報記憶部２１８を有している点において、相違している。
【０１４８】
（１）情報記憶部２１８
情報記憶部２１８は、図１５に一例として示す部分ソフトウェア管理テーブル２１９を有している。
部分ソフトウェア管理テーブル２１９は、複数個の部分ソフトウェア管理情報を記憶するための領域を備えている。各部分ソフトウェア管理情報は、ソフトＩＤ及び前半ソフト署名データから構成されている。
【０１４９】
ここで、ソフトＩＤについては、上述した通りであるので、説明を省略する。
前半ソフト署名データは、上述したソフト署名データを構成するビット列のうち、前半の部分のビット列から構成されている。具体的には、前半ソフト署名データは、１６０ビット長のビット列から構成されている。
（２）ソフトウェア管理情報テーブル２３１
ソフトウェア管理情報テーブル２３１は、図１５に示すように、一例として、ソフトウェア管理情報２４１ｄ、・・・を記憶するための領域を備えている。
【０１５０】
ソフトウェア管理情報２４１ｄは、ソフトＩＤ、ソフトキー、インストール回数情報、後半ソフト署名データ、及び複数の装置ＩＤを含んでいる。
ここで、ソフトＩＤ、ソフトキー、インストール回数情報及び複数の装置ＩＤについては、上述した通りであるので説明を省略する。
後半ソフト署名データは、上述したソフト署名データを構成するビット列のうち、後半の部分のビット列から構成されている。具体的には、後半ソフト署名データは、１６０ビット長のビット列から構成されている。
【０１５１】
（３）判定部２１４
判定部２１４は、認証部２１１から第１認証成功情報を受け取ると、さらに、ソフト署名データを受け取る。次に、判定部２１４は、受け取ったソフト署名データを、２個のビット列に分割して、前半ソフト署名データ及び後半ソフト署名データを生成する。分割して生成された前半のビット列が前半ソフト署名データであり、後半のビット列が後半ソフト署名データである。前半ソフト署名データ及び後半ソフト署名データは、それぞれ、１６０ビット長である。
【０１５２】
次に、判定部２１４は、生成した前半ソフト署名データ及び受け取ったソフトＩＤから構成される部分ソフトウェア管理情報を生成し、生成した部分ソフトウェア管理情報を情報記憶部２１８が有する部分ソフトウェア管理テーブル２１９内に書き込む。また、判定部２１４は、生成した後半ソフト署名データを含むソフトウェア管理情報をソフトウェア管理情報テーブル２３１内に追加して書き込む。
【０１５３】
また、判定部２１４は、部分ソフトウェア管理テーブル２１９から、ソフトＩＤを含む部分ソフトウェア管理情報を読み出し、ソフトウェア管理情報テーブル２３１から、ソフトＩＤを含むソフトウェアか管理情報を読み出す。次に、判定部２１４は、読み出した部分ソフトウェア管理情報から前半ソフト署名データを抽出し、読み出したソフトウェア管理情報から後半ソフト署名データを抽出し、抽出した前半ソフト署名データ及び抽出した後半ソフト署名データを結合してソフト署名データを生成する。
【０１５４】
以上説明したように、耐タンパモジュール部２１０は、さらに、情報記憶部２１８を備え、情報記憶部２１８は、ソフトウェア管理テーブルの一部を格納する。
具体的には、一例として、情報記憶部２１８は、ソフト署名データの少なくとも一部を格納する。第２記憶領域２２２が有するソフトウェア管理情報テーブル２３１は、ソフト署名データの残りの部分を格納する。判定部２１４は、情報記憶部２１８に含まれるソフト署名データの少なくとも一部と、第２記憶領域２２２から読み出したソフト管理情報に含まれるソフト署名データの残りの部分より、ソフト署名データ全体を復元して使用する。
【０１５５】
なお、ここでは、情報記憶部２１８にソフト署名データの前半部分を格納する構成について説明したが、この構成に限定されるものではない。
５．変形例（４）
ここでは、図１に示すソフトウェア管理システム１０の変形例としてのソフトウェア管理システム１０ｅについて説明する。
【０１５６】
ソフトウェア管理システム１０ｅは、図１６に示すように、ソフトウェア書込装置１００ｅ、可搬型のメモリカード２００及び情報処理装置３００ｅから構成されており、ソフトウェア書込装置１００ｅ及び情報処理装置３００ｅは、それぞれ、インターネット２０に接続されている。
ソフトウェア管理システム１０ｅを構成するメモリカード２００は、ソフトウェア管理システム１０を構成するメモリカード２００と同一の構造を有している。
【０１５７】
また、ソフトウェア書込装置１００ｅ及び情報処理装置３００ｅは、それぞれ、ソフトウェア管理システム１０を構成するソフトウェア書込装置１００及び情報処理装置３００と類似の構造を有している。
ソフトウェア管理システム１０ｅにおいて、暗号化ソフトウェアは、ソフトウェア書込装置１００ｅからインターネット２０及び情報処理装置３００ｅを介して、メモリカード２００へ送信されて書き込まれる。ソフトウェア管理情報は、ソフトウェア管理システム１０と同様に、ソフトウェア書込装置１００ｅにより直接メモリカード２００に書き込まれる。
【０１５８】
ここでは、ソフトウェア書込装置１００ｅ及び情報処理装置３００ｅについて、ソフトウェア書込装置１００及び情報処理装置３００との相違点を中心として説明する。
（１）ソフトウェア書込装置１００ｅ
ソフトウェア書込装置１００ｅは、図１７に示すように、認証部１１１、暗号化部１１２、情報記憶部１１３、制御部１１４、暗号化部１１８、送受信部１０２及び入出力部１０１から構成されている。また、ソフトウェア書込装置１００ｅには、入力部１１５及び表示部１１６が接続されている。
【０１５９】
各構成要素は、ソフトウェア書込装置１００の構成要素と類似している。ここでは、ソフトウェア書込装置１００の各構成要素との相違点を中心として説明する。
（送受信部１０２）
送受信部１０２は、インターネット２０に接続されており、暗号化部１１２及び認証部１１１とインターネット２０を介して接続された外部の装置との間で情報の送受信を行う。ここで、外部の装置とは、情報処理装置３００ｅである。
【０１６０】
（暗号化部１１２）
暗号化部１１２は、生成した暗号化ソフトウェアを、送受信部１０２、インターネット２０及び情報処理装置３００ｅを介して、メモリカード２００へ出力する。
（認証部１１１）
認証部１１１は、メモリカード２００がソフトウェア書込装置１００ｅに装着された場合に、入出力部１０１及びメモリカード２００の入出力部２０１を介して、認証部２１１との間で相互の機器認証を行う。
【０１６１】
また、認証部１１１は、メモリカード２００が装着された情報処理装置３００ｅとソフトウェア書込装置１００ｅとがインターネット２０により接続された場合に、送受信部１０２、インターネット２０、情報処理装置３００ｅ及びメモリカード２００の入出力部２０１を介して、認証部２１１との間で相互の機器認証を行う。
（２）情報処理装置３００ｅ
情報処理装置３００ｅは、図１８に示すように、インストール処理部３１０、ソフトウェア格納部３２０、制御部３２１、表示部３２２、入力部３２３、ソフトウェア実行部３２４、復号部３２５、入出力部３０１及び送受信部３０２から構成されている。
【０１６２】
各構成要素は、情報処理装置３００の構成要素と類似している。ここでは、情報処理装置３００の各構成要素との相違点を中心として説明する。
（送受信部３０２）
送受信部３０２は、インターネット２０に接続されており、入出力部３０１とインターネット２０を介して接続された外部の装置との間で情報の送受信を行う。ここで、外部の装置とは、ソフトウェア書込装置１００ｅである。
【０１６３】
具体的には、送受信部３０２は、ソフトウェア書込装置１００ｅからインターネット２０を介して、暗号化ソフトウェアを受信し、受信した暗号化ソフトウェアを入出力部３０１へ出力する。
（入出力部３０１）
入出力部３０１は、送受信部３０２から暗号化ソフトウェアを受け取り、受け取った暗号化ソフトウェアをメモリカード２００が有する情報記憶部２２０の第１記憶領域２２１へ書き込む。
【０１６４】
（３）ソフトウェア書込装置１００ｅによるソフトウェア管理情報のメモリカード２００への書込みの動作
ここでは、ソフトウェア書込装置１００ｅによるソフトウェア管理情報のメモリカード２００への書込みの動作について、図１９に示すフローチャートを用いて説明する。上記の書込みの動作に先立って、ソフトウェア書込装置１００ｅの操作者により、メモリカード２００がソフトウェア書込装置１００ｅに装着される。
【０１６５】
制御部１１４は、操作者の操作により入力部１１５からソフトウェアの指定を受け付る（ステップＳ３０１）。
次に、認証部１１１と認証部２１１とは、入出力部１０１及び入出力部２０１を介して、相互に機器認証を行い（ステップＳ３０２、Ｓ３１１）、認証に失敗すると（ステップＳ３０３、Ｓ３１２）、ソフトウェア書込装置１００ｅ及びメモリカード２００は、それぞれ処理を終了する。
【０１６６】
認証に成功すると（ステップＳ３０３）、暗号化部１１８は、ソフトウェア管理テーブル１２１から、指定を受け付けたソフトウェアを識別するソフトＩＤを含むソフトウェア管理情報を読み出し、認証部１１１から受け取ったセッション鍵を用いて、読み出したソフトウェア管理情報に暗号化アルゴリズムＥ３を施し、暗号化ソフトウェア管理情報を生成する（ステップＳ３０４）。次に、暗号化部１１８は、生成した暗号化ソフトウェア管理情報を、入出力部１０１を介して、メモリカード２００へ出力する（ステップＳ３０５）。
【０１６７】
認証に成功すると（ステップＳ３１２）、復号部２１２は、入出力部２０１を介して、暗号化ソフトウェア管理情報を受け取り（ステップＳ３０５）、認証部２１１から受け取ったセッション鍵を用いて受け取った暗号化ソフトウェア管理情報に復号アルゴリズムＤ３を施してソフトウェア管理情報を生成し、生成したソフトウェア管理情報を判定部２１４へ出力する（ステップＳ３１３）。
【０１６８】
判定部２１４は、復号部２１２からソフトウェア管理情報を受け取り、受け取ったソフトウェア管理情報をソフトウェア管理情報テーブル２３１内に追加して書き込む（ステップＳ３１４）。
（４）ソフトウェア書込装置１００ｅによる暗号化ソフトウェアの送信の動作
ここでは、ソフトウェア書込装置１００ｅからインターネット２０及び情報処理装置３００ｅを介して、メモリカード２００へ暗号化ソフトウェアを送信する際の動作について、図２０に示すフローチャートを用いて、説明する。上記の暗号化ソフトウェアの送信の動作に先立って、情報処理装置３００ｅの操作者により、メモリカード２００が情報処理装置３００ｅに装着される。
【０１６９】
情報処理装置３００ｅの制御部３２１は、操作者の操作により入力部３２３からソフトウェアの指定を受け付る（ステップＳ３５１）。次に、制御部３２１は、指定を受け付けたソフトウェアを識別するソフトＩＤを送受信部３０２及びインターネット２０を介して、ソフトウェア書込装置１００ｅへ送信する。ソフトウェア書込装置１００ｅの暗号化部１１２は、送受信部１０２を介して、ソフトＩＤを受け取る（ステップＳ３５２）。
【０１７０】
認証部１１１と認証部２１１とは、送受信部１０２、インターネット２０、情報処理装置３００ｅ及び入出力部２０１を介して、相互に機器認証を行い（ステップＳ３６１、Ｓ３７１）、認証に失敗すると（ステップＳ３６２、Ｓ３７２）、ソフトウェア書込装置１００ｅ及びメモリカード２００は、それぞれ処理を終了する。
認証に成功すると（ステップＳ３６２）、暗号化部１１２は、ソフトウェア管理テーブル１２１から、受け取ったソフトＩＤを含むソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報からソフトキーを抽出する。次に、暗号化部１１２は、受け取ったソフトＩＤにより識別されるソフトウェアを情報記憶部１１３から読み出し（ステップＳ３６３）、抽出したソフトキーを鍵として用いて、読み出したソフトウェアに暗号化アルゴリズムＥ１を施し、暗号化ソフトウェアを生成し（ステップＳ３６４）、生成した暗号化ソフトウェアを送受信部１０２、インターネット２０を介して情報処理装置３００ｅへ送信し（ステップＳ３６５）、情報処理装置３００ｅの送受信部３０２は、暗号化ソフトウェアを受信し、受信した暗号化ソフトウェアを入出力部３０１を介して、メモリカード２００へ出力する（ステップＳ３７３）。
【０１７１】
入出力部２０１は、暗号化ソフトウェアを受け取り（ステップＳ３７３）、受け取った暗号化ソフトウェアを情報記憶部２２０の第１記憶領域２２１へ書き込む（ステップＳ３７４）。
（５）その他
変形例（４）では、ソフトウェア書込装置１００ｅと情報処理装置３００ｅとは、インターネット２０に接続されているとしているが、インターネット以外のネットワークに接続されているとしてもよい。
【０１７２】
また、変形例（４）では、ソフトウェア書込装置１００ｅによるメモリカード２００への暗号化ソフトウェアの送信に先立ち、ソフトウェア書込装置１００ｅとメモリカード２００との間で、相互に認証するとしているが、この認証は行なわないとしても良い。
６．変形例（５）
ここでは、図１に示すソフトウェア管理システム１０の変形例としてのソフトウェア管理システム１０ｆについて説明する。
【０１７３】
６．１  ソフトウェア管理システム１０ｆの構成
ソフトウェア管理システム１０ｆは、図２１に示すように、ソフトウェア書込装置１００ｆ、可搬型のメモリカード２００ｆ、情報処理装置３００ｆ、コンテンツ配信装置４００ｆ及び携帯電話５００ｆから構成されており、ソフトウェア書込装置１００ｆ及びコンテンツ配信装置４００ｆは、それぞれ、インターネット２０に接続されており、コンテンツ配信装置４００ｆ及び携帯電話５００ｆは、モバイルネットワーク２１を介して接続されている。
【０１７４】
ソフトウェア書込装置１００ｆは、様々なソフトウェアを記憶している。これらのソフトウェアには、映画や音楽などのコンテンツや、映画などを再生する手順が記述された映像再生プログラムなどのコンピュータプログラムなどが含まれる。ソフトウェア書込装置１００ｆにメモリカード２００ｆが装着され、ソフトウェア書込装置１００ｆは、いずれかのソフトウェアを暗号化し、暗号化ソフトウェアを装着されたメモリカード２００ｆに書き込む。
【０１７５】
暗号化ソフトウェアが書き込まれたメモリカード２００ｆは、販売店３０において販売され、利用者は、メモリカード２００ｆを購入することにより入手する。
また、ソフトウェア書込装置１００ｆは、様々なライセンス情報を含むソフトウェア管理情報を記憶している。これらのライセンス情報は、前記コンテンツや前記コンピュータプログラムが利用者により利用される際に、守られるべき条件などを定めたものである。ソフトウェア書込装置１００ｆは、各ソフトウェア管理情報を、第三者に知られないように秘密に、コンテンツ配信装置４００ｆに送信する。コンテンツ配信装置４００ｆは、各ソフトウェア管理情報を秘密に受信し、記憶する。
【０１７６】
利用者は、入手したメモリカード２００ｆを携帯電話５００ｆに装着する。携帯電話５００ｆは、利用者の操作によりモバイルネットワーク２１を介して、コンテンツ配信装置４００ｆへソフトウェア管理情報の送信を要求する。
コンテンツ配信装置４００ｆは、携帯電話５００ｆからの要求に応じて、有償で又は無償で、ライセンス情報を含むソフトウェア管理情報を携帯電話５００ｆに送信し、携帯電話５００ｆは、ソフトウェア管理情報を受信し、受信したソフトウェア管理情報をメモリカード２００ｆに書き込む。
【０１７７】
その後、利用者は、ソフトウェア管理情報が書き込まれたメモリカード２００ｆを携帯電話５００ｆから抜き出し、メモリカード２００ｆを情報処理装置３００ｆに装着する。
情報処理装置３００ｆは、利用者の操作により、メモリカード２００ｆに記憶されているソフトウェア管理情報に含まれるライセンス情報に従って、記憶されている暗号化ソフトウェアを内部に導入して記憶する。ここで、暗号化ソフトウェアがコンピュータプログラムである場合には、前記導入は、一般に、コンピュータプログラムのインストールと呼ばれる。また、暗号化ソフトウェアがコンテンツである場合には、前記導入は、一般に、コンテンツの複製と呼ばれる。その後、情報処理装置３００ｆは、利用者の指示に従って、記憶している暗号化ソフトウェアを復号して、ソフトウェアを生成し、生成したソフトウェアを利用する。ここで、ソフトウェアがコンテンツである場合には、利用とは、コンテンツを再生することである。また、ソフトウェアがコンピュータプログラムである場合には、利用とは、コンピュータプログラムを実行することである。
【０１７８】
また、情報処理装置３００ｆは、メモリカード２００ｆに記憶されているソフトウェア管理情報に含まれているライセンス情報に従って、メモリカード２００ｆから暗号化ソフトウェアを読み出し、読み出した暗号化ソフトウェアを復号してソフトウェアを生成し、生成したソフトウェアを利用する。ここで、利用とは、上述した通りである。
ソフトウェア管理システム１０ｆを構成するソフトウェア書込装置１００ｆ、メモリカード２００ｆ及び情報処理装置３００ｆは、それぞれ、ソフトウェア管理システム１０を構成するソフトウェア書込装置１００、メモリカード２００及び情報処理装置３００ｆと類似の構造を有している。
【０１７９】
以下において、ソフトウェア管理システム１０ｆを構成する各構成要素について説明するが、ソフトウェア書込装置１００ｆ、メモリカード２００ｆ及び情報処理装置３００ｆについては、それぞれ、ソフトウェア書込装置１００、メモリカード２００及び情報処理装置３００との相違点を中心として説明する。
６．２  ソフトウェア書込装置１００ｆ
ソフトウェア書込装置１００ｆは、図２２に示すように、認証部１１１、暗号化部１１２、情報記憶部１１３、制御部１１４、暗号化部１１８、送受信部１０２及び入出力部１０１から構成されている。また、ソフトウェア書込装置１００ｆには、入力部１１５及び表示部１１６が接続されている。
【０１８０】
ソフトウェア書込装置１００ｆは、記憶している全てのソフトウェア管理情報をインターネット２０を介してコンテンツ配信装置４００ｆへ秘密に送信する。また、操作者の操作に応じて、記憶しているソフトウェアを暗号化して、ソフトウェア書込装置１００ｆに装着されたメモリカード２００ｆに書き込む。
ここでは、ソフトウェア書込装置１００の各構成要素との相違点を中心として説明する。
【０１８１】
（１）情報記憶部１１３
情報記憶部１１３は、ソフトウェア管理テーブル１２１、ソフトウェア１２２、１２３、１２４、・・・に代えて、図２３に示すように、ソフトウェア管理テーブル１２１ｆ、ソフトウェア１２２ｆ、１２３ｆ、１２４ｆ、１２５ｆ、・・・をセキュアに記憶している。
【０１８２】
ソフトウェア１２２ｆ及び１２３ｆは、それぞれ、複数のコンピュータ命令を含むコンピュータプログラムである。具体的には、ソフトウェア１２２ｆは、映像及び音声から構成される映画コンテンツを再生し、表示及び出力するための手順を含む映像再生プログラムであり、ソフトウェア１２３ｆは、音楽を再生し、出力するための手順を含む音楽再生プログラムである。
【０１８３】
ソフトウェア１２４ｆ及び１２５ｆは、それぞれ、映画がデジタル化されたコンテンツである。具体的には、ソフトウェア１２４ｆ及び１２５ｆは、それぞれ、ＭＰＥＧ（Moving Pictures Experts Group ）２の規格により映像及び音声がデジタル化され、圧縮符号化された圧縮符号化データであり、他のソフトウェアは、例えば、ＭＰ３（MPEG 1 Audio Layer 3）の規格により音楽がデジタル化され、圧縮符号化された圧縮符号化データである。
【０１８４】
ソフトウェア１２２ｆ、１２３ｆ、１２４ｆ、１２５ｆ、・・・は、それぞれ、ソフトＩＤ「ＰＩＤ０１」、「ＰＩＤ０２」、「ＭＩＤ０１」、「ＭＩＤ０２」、・・・により識別される。
ソフトウェア管理テーブル１２１ｆは、図２４に示すように、複数のソフトウェア管理情報を含むデータテーブルである。
【０１８５】
各ソフトウェア管理情報は、１個のソフトウェアに対応しており、ソフトＩＤ、名称、種類、ソフトキー及び１個以上のライセンス情報を含む。また、各ライセンス情報は、利用条件ＩＤ、利用条件及び支払条件を含む。
ソフトＩＤは、対応するソフトウェアを一意に識別するための識別番号であり、６４ビット長である。
【０１８６】
名称は、対応するソフトウェアを表す識別名である。
種類は、対応するソフトウェアがコンピュータプログラムであるか、又はデジタル著作物であるコンテンツであるかを示す。
ソフトキーは、対応するソフトウェアを暗号化する際に用いられる暗号鍵であり、５６ビット長である。
【０１８７】
利用条件ＩＤは、当該利用条件ＩＤを含むライセンス情報を一意に識別するための識別番号である。
利用条件は、対応するソフトウェアに許可される利用形態及び具体的条件を示す情報である。利用形態の一例は、コンピュータプログラムの指定回数内のインストール、コンピュータプログラムの指定期間内の利用、コンピュータプログラムの指定回数内の利用、コンテンツの指定回数内の複製、コンテンツの指定期間内の再生、コンテンツの指定回数内の再生である。また、具体的条件の一例は、前記の指定回数、又は指定期間である。
【０１８８】
例えば、インストール回数情報が「１０」である場合に、利用者に対して、当該ソフトウェア（コンピュータプログラム）を最大１０回までインストールすることが許可され、複製回数情報が「５」である場合に、利用者に対して、当該ソフトウェア（コンテンツ）を最大５回まで複製することが許可される。
また、例えば、利用条件において、利用期間が、「２００５．１．１〜２００５．１．３１」である場合には、２００５年１月１日から２００５年１月３１まで、当該ソフトウェアを利用することが許可され、再生期間が、「２００４．１．１〜２００４．１２．３１」である場合には、２００４年１月１日から２００４年１２月３１まで、当該ソフトウェアを再生することが許可される。
【０１８９】
支払条件は、対応する利用条件によりソフトウェアを利用するために、利用者が支払うべき対価を示している。
例えば、支払条件において、料金が「￥１０，０００」である場合には、利用者は、１０，０００円を対価として支払うことを示しており、支払条件が「無償」である場合には、対価の支払いが不要であることを示している。
【０１９０】
このように、各ソフトウェアについて、ソフトウェアの利用形態に応じて、異なる１個以上のライセンス情報が準備されており、支払うべき対価がそれぞれ異なる。利用者は、自身が希望する利用形態を選択することができる。
（２）入力部１１５
入力部１１５は、さらに、次に示すように動作する。
【０１９１】
入力部１１５は、ソフトウェア書込装置１００ｆの操作者からソフトウェア管理情報の送信の指示を受け付け、受け付けた前記指示を制御部１１４へ出力する。
（３）制御部１１４
制御部１１４は、「暗号化部１１８に対して受け取ったソフトＩＤを出力し、また暗号化部１１８に対してソフトウェア管理情報を暗号化してメモリカード２００ｆへ書き込む旨の暗号化指示を出力する」代わりに、次に示すように動作する。
【０１９２】
制御部１１４は、入力部１１５から、ソフトウェア管理情報の送信の指示を受け取る。前記指示を受け取ると、認証部１１１に対して、コンテンツ配信装置４００ｆとの間で機器認証を行う旨の指示を出力する。制御部１１４は、認証部１１１から認証成功情報又は認証失敗情報を受け取る。
認証部１１１から認証成功情報を受け取ると、制御部１１４は、暗号化部１１８に対して全てのソフトウェア管理情報を暗号化してコンテンツ配信装置４００ｆへ送信する旨の暗号化指示を出力する。
【０１９３】
認証部１１１から認証失敗情報を受け取ると、制御部１１４は、ソフトウェア管理情報の送信に係る処理を中止する。
（４）認証部１１１
認証部１１１は、さらに、次に示すように動作する。
認証部１１１は、制御部１１４からコンテンツ配信装置４００ｆとの間で機器認証を行う旨の指示を受け取る。前記指示を受け取ると、認証部１１１は、コンテンツ配信装置４００ｆとの間で、チャレンジ−レスポンス型の相互の機器認証を行う。次に、機器認証の結果に応じて、機器認証の成功を示す認証成功情報又は機器認証の失敗を示す認証失敗情報を生成し、制御部１１４へ出力する。
【０１９４】
また、認証部１１１は、機器認証が成功する場合には、セッション鍵を生成し、生成したセッション鍵を暗号化部１１８へ出力する。
（５）暗号化部１１８
暗号化部１１８は、「ソフトＩＤ及び暗号化指示を受け取り、ソフトＩＤを含むソフトウェア管理情報を読み出し、セッション鍵を用いて読み出したソフトウェア管理情報を暗号化し、メモリカード２００ｆへ出力する」代わりに、次に示すように動作する。
【０１９５】
暗号化部１１８は、制御部１１４から全てのソフトウェア管理情報を暗号化して送信する旨の暗号化指示を受け取る。また、暗号化部１１８は、認証部１１１からセッション鍵を受け取る。
制御部１１４から前記暗号化指示を受け取ると、暗号化部１１８は、ソフトウェア管理テーブル１２１ｆから、全てのソフトウェア管理情報を読み出し、認証部１１１から受け取ったセッション鍵を用いて、読み出した各ソフトウェア管理情報に暗号化アルゴリズムＥ３を施し、読み出したソフトウェア管理情報と同数の暗号化ソフトウェア管理情報を生成する。次に、暗号化部１１８は、生成した前記暗号化ソフトウェア管理情報を、送受信部１０２及びインターネット２０を介して、コンテンツ配信装置４００ｆへ送信する。
【０１９６】
（６）送受信部１０２
送受信部１０２は、インターネット２０に接続されており、暗号化部１１８及び認証部１１１とインターネット２０を介して接続された外部の装置との間で情報の送受信を行う。ここで、外部の装置とは、コンテンツ配信装置４００ｆである。
６．３  コンテンツ配信装置４００ｆ
コンテンツ配信装置４００ｆは、図２５に示すように、送受信部４０２、認証部４１１、情報記憶部４１３、制御部４１４、復号部４１２、認証部４１７、暗号化部４１８から構成される。また、コンテンツ配信装置４００ｆには、入力部４１５及び表示部４１６が接続されている。
【０１９７】
コンテンツ配信装置４００ｆは、ソフトウェア書込装置１００と同様に、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニットなどから構成されるコンピュータシステムである。また、入力部４１５は、具体的には、キーボードであり、表示部４１６は、ディスプレィユニットである。前記ＲＡＭ又は前記ハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、コンテンツ配信装置４００ｆは、その機能を達成する。
【０１９８】
（１）情報記憶部４１３
情報記憶部４１３は、ソフトウェア管理テーブル４２１を有している。
ソフトウェア管理テーブル４２１には、１個以上のソフトウェア管理情報を記憶するための領域が含まれている。各ソフトウェア管理情報は、図２４に示すソフトウェア管理情報と同一であるので、ここでは、説明を省略する。
【０１９９】
（２）送受信部４０２
送受信部４０２は、インターネット２０を介してソフトウェア書込装置１００ｆに接続されており、また、モバイルネットワーク２１及び携帯電話５００ｆを介して、メモリカード２００ｆに接続されている。
送受信部４０２は、ソフトウェア書込装置１００ｆと、認証部４１７、復号部４１２及び制御部４１４との間で、情報の送受信を行う。
【０２００】
また、送受信部４０２は、携帯電話５００ｆと、制御部４１４、認証部４１１及び暗号化部４１８との間で情報の送受信を行う。
また、制御部４１４から認証成功情報又は認証失敗情報を受け取る。認証成功情報を受け取ると、送受信を継続して行う。認証失敗情報を受け取ると、送受信を以降の送受信を中止する。
【０２０１】
（３）認証部４１７
認証部４１７は、制御部４１４の指示により、送受信部４０２及びインターネット２０を介して、ソフトウェア書込装置１００ｆとの間で、チャレンジ−レスポンス型の相互の機器認証を行う。次に、機器認証の結果に応じて、機器認証の成功を示す認証成功情報又は機器認証の失敗を示す認証失敗情報を生成し、認証成功情報又は認証失敗情報を制御部４１４へ出力する。
【０２０２】
また、認証部４１７は、機器認証が成功する場合には、セッション鍵を生成し、生成したセッション鍵を復号部４１２へ出力する。
（４）復号部４１２
復号部４１２は、認証部４１７からセッション鍵を受け取る。
また、復号部４１２は、ソフトウェア書込装置１００から、インターネット２０及び送受信部４０２を介して、１個以上の暗号化ソフトウェア管理情報を受け取り、受け取ったセッション鍵を用いて受け取った各暗号化ソフトウェア管理情報に復号アルゴリズムＤ３を施して受け取った暗号化ソフトウェア管理情報と同数のソフトウェア管理情報を生成し、生成した前記ソフトウェア管理情報を情報記憶部４１３のソフトウェア管理テーブル４２１へ書き込む。
【０２０３】
このようにして、ソフトウェア管理テーブル４２１は、図２４に示すソフトウェア管理テーブル１２１ｆと同一の内容となる。
（５）認証部４１１
認証部４１１は、制御部４１４の指示により、送受信部４０２、モバイルネットワーク２１及び携帯電話５００ｆを介して、メモリカード２００ｆとの間で、チャレンジ−レスポンス型の相互の機器認証を行う。次に、機器認証の結果に応じて、機器認証の成功を示す認証成功情報又は機器認証の失敗を示す認証失敗情報を生成し、認証成功情報又は認証失敗情報を制御部４１４へ出力する。
【０２０４】
また、認証部４１１は、機器認証が成功する場合には、セッション鍵を生成し、生成したセッション鍵を暗号化部４１８へ出力する。
（６）暗号化部４１８
暗号化部４１８は、認証部４１１からセッション鍵を受け取り、制御部４１４からソフトウェア管理情報と、ソフトウェア管理情報を暗号化する指示とを受け取る。
【０２０５】
前記指示を受け取ると、暗号化部４１８は、認証部４１１から受け取ったセッション鍵を用いて、受け取った前記ソフトウェア管理情報に暗号化アルゴリズムＥ３を施し、暗号化ソフトウェア管理情報を生成する。次に、暗号化部４１８は、生成した暗号化ソフトウェア管理情報を、送受信部４０２、モバイルネットワーク２１及び携帯電話５００ｆを介して、メモリカード２００ｆへ出力する。
【０２０６】
（７）制御部４１４
制御部４１４は、ソフトウェア書込装置１００ｆからインターネット２０を介して、ソフトウェア管理テーブルの送信の開始を示す送信開始情報を受信する。前記送信開始情報を受信すると、認証部４１７に対して、機器認証を行うように指示する。
また、認証部４１７から認証成功情報又は認証失敗情報を受け取る。認証成功情報を受け取った場合には、送受信部４０２に対して送受信を継続するように指示する。認証失敗情報を受け取った場合には、送受信を中止するように指示する。
【０２０７】
制御部４１４は、認証部４１１から認証の成功を示す認証成功情報を受け取る。認証成功情報を受け取ると、制御部４１４は、情報記憶部４１３に記憶されているソフトウェア管理テーブル４２１から全てのソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報からソフトＩＤ、名称、種類、全てのライセンス情報を抽出し、抽出したソフトＩＤ、名称、種類、全てのライセンス情報から構成されるソフトウェア表示情報を生成する。こうして、ソフトウェア管理テーブル４２１から読み出した全てのソフトウェア管理情報と同数のソフトウェア表示情報を含むソフトウェア一覧を生成する。次に、制御部４１４は、生成したソフトウェア一覧を送受信部４０２、モバイルネットワーク２１を介して、携帯電話５００ｆへ送信する。
【０２０８】
制御部４１４は、携帯電話５００ｆから、モバイルネットワーク２１及び送受信部４０２を介して、ソフトＩＤ及び利用条件ＩＤを受け取る。次に、受信したソフトＩＤ及び利用条件ＩＤにより示されるライセンス情報をソフトウェア管理テーブル４２１から読み出し、読み出したライセンス情報から支払条件を抽出し、抽出した支払条件により示される額を料金として算出する。次に、算出した料金を示す料金情報を送受信部４０２、モバイルネットワーク２１を介して携帯電話５００ｆへ送信する。次に、制御部４１４と携帯電話５００ｆとは、前記料金の精算処理を行う。なお、料金の精算処理については、現在、携帯電話を利用したコンテンツサービスにおいて利用されている各種技術を利用することができる。例えば、コンテンツの利用代金を、携帯電話の利用代金に加算して精算処理する方法や、利用者のクレジットカードにより精算処理する方法などを利用することができる。詳細については公知であるので省略する。
【０２０９】
料金の精算処理が終了すると、制御部４１４は、ソフトウェア管理テーブル４２１から、前記ソフトＩＤを含むソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報から前記利用条件ＩＤを含むライセンス情報を抽出する。次に、新たに生成するソフトウェア管理情報を識別する契約ＩＤを生成し、生成した契約ＩＤ、読み出したソフトウェア管理情報に含まれるソフトＩＤ、名称、種類、及び抽出したライセンス情報から構成されるソフトウェア管理情報を新たに生成し、生成したソフトウェア管理情報を暗号化部４１８へ出力する。また、暗号化部４１８に対して前記ソフトウェア管理情報の暗号化を行うように制御する。
【０２１０】
６．４  携帯電話５００ｆ
携帯電話５００ｆは、アンテナ、無線受信部、無線送信部、ベースバンド信号処理部、制御回路、受話器、送話器、表示部、複数のキーを備える入力部、メモリカード２００ｆとの間で情報の入出力を行う入出力部などを備えて構成され、モバイルネットワーク２１を介して、他の装置との間で情報の送受信を行う。
【０２１１】
利用者によりメモリカード２００ｆが携帯電話５００ｆに装着される。
携帯電話５００ｆは、利用者の操作によりライセンス情報を取得する旨の要求を受け付け、前記要求をモバイルネットワーク２１を介して、コンテンツ配信装置４００ｆへ送信する。
また、携帯電話５００ｆは、コンテンツ配信装置４００ｆから、モバイルネットワーク２１を介して、ソフトウェア一覧を受信し、受信したソフトウェア一覧を表示する。次に、携帯電話５００ｆは、表示されているソフトウェア一覧の中から利用者により１個のソフトウェアの選択を受け付け、さらに１個のライセンス情報の選択を受け付ける。次に、携帯電話５００ｆは、選択を受け付けたソフトウェアを識別するソフトＩＤと選択を受け付けたライセンス情報を識別する利用条件ＩＤとをソフトウェア一覧から抽出し、抽出したソフトＩＤと利用条件ＩＤとを、モバイルネットワーク２１を介して、コンテンツ配信装置４００ｆへ送信する。
【０２１２】
また、携帯電話５００ｆは、コンテンツ配信装置４００ｆから、モバイルネットワーク２１を介して、料金情報を受け取り、受け取った料金情報に基づいて、コンテンツ配信装置４００ｆとの間で、前記料金の精算処理を行う。
また、携帯電話５００ｆは、コンテンツ配信装置４００ｆから、モバイルネットワーク２１を介して、暗号化ソフトウェア管理情報を受け取り、受け取った暗号化ソフトウェア管理情報をメモリカード２００ｆへ出力する。
【０２１３】
６．５  メモリカード２００ｆ
メモリカード２００ｆは、メモリカード２００と同様の構成を有しており、図２２、図２５及び図２７に示すように、耐タンパモジュール部２１０、情報記憶部２２０及び入出力部２０１から構成されている。耐タンパモジュール部２１０は、認証部２１１、復号部２１２、暗号化部２１３及び判定部２１４から構成され、情報記憶部２２０は、第１記憶領域２２１及び第２記憶領域２２２から構成されている。
【０２１４】
ここでは、メモリカード２００との相違点を中心として説明する。
（１）入出力部２０１
入出力部２０１は、情報処理装置３００ｆから一覧要求を受け取り、受け取った前記一覧要求を判定部２１４へ出力する。
（２）判定部２１４
（ソフト一覧の生成）
判定部２１４は、入出力部２０１から前記一覧要求を受け取る。前記前記一覧要求を受け取ると、情報記憶部２２０が有する第２記憶領域２２２のソフトウェア管理情報テーブル２３１から全てのソフトウェア管理情報を読み出す。次に、読み出した各ソフトウェア管理情報に含まれている利用条件を用いて、さらにソフトウェアの導入、再生又は実行が可能であるか否かを判断する。
【０２１５】
具体的には、利用条件のインストール回数情報が「０」であれば、インストールは不可能であると判断し、インストール回数情報が「１」以上であれば、インストールは可能と判断する。また、複製回数情報が「０」であれば、複製は不可能であると判断し、複製回数情報が「１」以上であれば、複製は可能と判断する。また、利用条件の利用期間が、現在日時を含む場合には、実行可能であると判断し、そうでない場合には、不可能であると判断する。また、利用条件の再生期間が、現在日時を含む場合には、再生可能であると判断し、そうでない場合には、不可能であると判断する。
【０２１６】
こうして、不可能であると判断される場合には、読み出したソフトウェア管理情報を棄却する。なお、この構成には、限定されない。例えば、利用不可能であると判断されたソフトウェアについても、読み出したソフトウェア管理情報からソフト表示情報を生成する。生成したソフト表示情報には、利用可能と判断されたソフトウェアとは区別できるように、利用不可を示す情報を付加する。こうして、利用不可を示す情報が付加されたソフト表示情報も含むソフト一覧を生成して、表示する。利用者は、ソフト一覧において、利用不可と表示されたソフトウェアについては、ライセンスを追加購入することにより、利用可能とすることができる。
【０２１７】
可能であると判断される場合には、読み出したソフトウェア管理情報からソフトＩＤ、名称、種類及び利用条件を抽出し、抽出したソフトＩＤ、名称、種類及び利用条件から構成されるソフト表示情報を生成する。
こうして、読み出した全てのソフトウェア管理情報のうち、前記のようにして、可能と判断されるソフトウェア管理情報について、ソフト表示情報が生成される。判定部２１４は、これらのソフト表示情報を含むソフト一覧を生成する。次に、生成したソフト一覧を入出力部２０１を介して、情報処理装置３００ｆへ出力する。
【０２１８】
（ソフトウェアの出力判定）
判定部２１４は、復号部２１２から受け取った区分がコンピュータプログラムのインストール及びコンテンツの複製、又は、コンピュータプログラムのアンインストール及びコンテンツの削除のいずれであるかを判断する。
また、判定部２１４は、アンインストール又は削除と判断した場合に、ソフトウェア管理情報に含まれるインストール回数情報又は複製回数情報に「１」の値を加算し、得られた値を、新たにインストール回数情報又は複製回数情報として、ソフトウェア管理情報テーブル２３１内の前記ソフトウェア管理情報内に上書きする。
【０２１９】
また、判定部２１４は、復号部２１２より受け取った装置ＩＤが、第２記憶領域２２２より受取ったソフトウェア管理情報に含まれるかどうかチェックする。
装置ＩＤが含まれない場合は、新しい情報処理装置へのコンピュータプログラムのインストールの要請又はコンテンツの複製の要請と判断し、ソフトウェア管理情報に含まれるインストール回数又は複製回数をチェックする。インストール回数又は複製回数が、１以上であれば、インストール可又は複製可と判定する。このとき、前記第２記憶領域２２２より読み出したソフトウェア管理情報に、前記復号部２１２より受け取った装置ＩＤを追加して書き込むとともに、インストール回数又は複製回数を１減算した値に更新したソフトウェア管理情報を第２記憶領域２２２に書き込む。インストール回数又は複製回数が零であれば、インストール不可又は複製不可と判定する。
【０２２０】
また、判定部２１４は、装置ＩＤが含まれる場合は、既にインストール済み又は複製済みの情報処理装置への再インストールの要請又は再複製の要請と判断し、インストール可又は複製可と判定する。
（ソフトウェアの実行、再生判定）
判定部２１４は、復号部２１２からソフトＩＤを受け取り、第２記憶領域２２２から、受け取った前記ソフトＩＤに対応するソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報に基づいて、暗号化コンピュータプログラムの復号及び実行、又は暗号化コンテンツの復号及び再生を許可するか否かを判定する。
【０２２１】
判定部２１４は、許可するか否かの判定を、次のようにして行う。
判定部２１４は、読み出したソフトウェア管理情報から利用条件を抽出し、抽出した利用条件が「再生回数情報」を示すか、又は「再生期間」を示すかを判断する。利用条件が「再生回数情報」を示す場合には、利用条件に含まれる「再生回数」が「１」以上であるか否かを判断し、「１」以上であるときは、「再生回数」を「１」だけ減じ、再生許可と判定する。「再生回数」が「０」であるときは、再生不許可と判定する。
【０２２２】
利用条件が「再生期間」を示す場合には、判定部２１４は、現在日時を取得し、現在日時が「再生期間」内であるか否かを判断し、再生期間内であるときは、再生許可と判定する。再生期間外であるときは、再生不許可と判定する。
上記の判定は、暗号化コンテンツの復号及び再生を許可するか否かの判定を示しているが、暗号化コンピュータプログラムの復号及び実行を許可するか否かの判定も同様にして行われる。暗号化コンピュータプログラムの場合には、上記の「再生回数」を「インストール回数」に置き換え、上記の「再生期間」を「利用期間」に置き換えればよい。
【０２２３】
次に、実行又は再生を許可しないと判定した場合に、判定部２１４は、不許可を示す不許可メッセージを情報処理装置３００ｆに送信し、その後、メモリカード２００ｆは、処理を中止する。
また、実行又は再生を許可すると判定した場合に、判定部２１４は、ソフト管理情報に含まれるソフトキーを暗号化部２１３に送る。
【０２２４】
（３）暗号化部２１３
暗号化部２１３は、判定部２１４からソフトキーを受け取り、受け取ったソフトキーを、認証部２１１より受け取ったセッション鍵を用いて暗号化して暗号化ソフトキーを生成し、生成した暗号化ソフトキーを、入出力部２０１を介して、情報処理装置３００ｆに送信する。
【０２２５】
（４）復号部２１２
復号部２１２は、認証部２１１よりセッション鍵を受け取り、受け取ったセッション鍵を用いて、情報処理装置３００より受信した暗号化ソフトＩＤを復号し、生成したソフトＩＤを判定部２１４へ出力する。
（５）ソフトウェア管理情報テーブル２３１
ソフトウェア管理情報テーブル２３１は、図２６に示すように、複数個のソフトウェア管理情報２４１ｆ、２４２ｆ、２４３ｆを記憶している。
【０２２６】
ソフトウェア管理情報２４１ｆは、この図に示すように、契約ＩＤ、ソフトＩＤ、名称、種類、ソフトキー、利用条件ＩＤ、インストール回数情報、料金及び複数の装置ＩＤを含む。
ソフトウェア管理情報２４２ｆは、この図に示すように、契約ＩＤ、ソフトＩＤ、名称、種類、ソフトキー、利用条件ＩＤ、再生期間及び料金を含む。
【０２２７】
ソフトウェア管理情報２４３ｆは、この図に示すように、契約ＩＤ、ソフトＩＤ、名称、種類、ソフトキー、利用条件ＩＤ、複製回数情報、料金及び複数の装置ＩＤを含む。
６．６  情報処理装置３００ｆ
情報処理装置３００ｆは、図２７に示すように、インストール処理部３１０、ソフトウェア格納部３２０、制御部３２１、表示部３２２、入力部３２３、ソフトウェア実行部３２４、復号部３２５及び入出力部３０１から構成されている。インストール処理部３１０は、認証部３１１、暗号化部３１２、復号部３１３、復号部３１４、暗号化部３１５、装置ＩＤ格納部３１６、装置固有鍵生成部３１７、ソフトＩＤ取得部３１８及び乱数格納部３２６から構成されている。
【０２２８】
情報処理装置３００ｆの各構成要素は、情報処理装置３００の各構成要素と類似している。ここでは、情報処理装置３００の構成要素との相違点を中心として説明する。
（１）ソフトウェア格納部３２０
ソフトウェア格納部３２０は、具体的には、ハードディスクユニットから構成され、メモリカード２００ｆからインストールされる暗号化ソフトウェアを１個以上記憶する領域を備えている。これらの領域には、既に、暗号化ソフトウェアが記憶されている。
【０２２９】
また、ソフトウェア格納部３２０は、図２８に示すソフトウェア保持情報テーブル３３１は、複数のソフトウェア保持情報を記憶するための領域を備えている。各ソフトウェア保持情報は、既にソフトウェア格納部３２０に記憶されている暗号化ソフトウェアを示す情報であり、ソフトＩＤ、名称、種類及び導入日付から構成されている。ソフトＩＤは、当該暗号化ソフトウェアを識別する識別情報である。名称は、当該暗号化ソフトウェアを表す識別名である。種類は、当該暗号化ソフトウェアがコンピュータプログラムであるか、又はコンテンツであるかを示す情報である。導入日付は、当該暗号化ソフトウェアがソフトウェア格納部３２０に書き込まれた年月日を示す。
【０２３０】
また、ソフトウェア格納部３２０は、暗号化ソフトウェアが復号されて生成されたソフトウェアを一時的に記憶する領域を備えている。
（２）入力部３２３
入力部３２３は、利用者から各種の操作の区分のうちのいずれか１個の入力を受け付ける。ここで、前記各種の操作の区分は、メモリカード２００ｆに記憶されている暗号化コンピュータプログラムのインストール、暗号化コンピュータプログラムのアンインストール、メモリカード２００ｆに記憶されている暗号化コンテンツの複製、暗号化コンテンツの削除、暗号化コンピュータプログラムの復号及び実行、及び暗号化コンテンツの復号及び再生を示す。次に、入力部３２３は、入力を受け付けた前記区分を制御部３２１へ出力する。
【０２３１】
また、入力部３２３は、利用者からソフト一覧として表示されているソフト表示情報のうちの１個の選択を受け付け、選択を受け付けたソフト表示情報からソフトＩＤを抽出し、抽出したソフトＩＤを制御部３２１へ出力する。
（３）制御部３２１
制御部３２１は、入力部３２３から前記区分を受け取り、受け取った前記区分が、暗号化コンピュータプログラムのアンインストールを示すか、暗号化コンテンツの削除を示すか、又はその他の動作を示すかを判断する。
【０２３２】
（ｉ）受け取った前記区分が、暗号化コンピュータプログラムのアンインストール及び暗号化コンテンツの削除のいずれかを示すと判断する場合に、制御部３２１は、ソフトウェア格納部３２０に記憶されているソフトウェア保持情報テーブル３３１から全てのソフトウェア保持情報を読み出し、読み出した各ソフトウェア保持情報に含まれているソフトＩＤ、名称、種類及び導入日付から構成されるソフト表示情報を生成し、読み出した前記ソフトウェア保持情報と同数の前記ソフト表示情報を含むソフト一覧を生成し、生成したソフト一覧を表示部３２２へ出力する。
【０２３３】
（ii）受け取った前記区分が、他の動作を示すと判断する場合に、制御部３２１は、ソフト一覧の出力要求を示す一覧要求を入出力部３０１を介して、メモリカード２００ｆへ出力する。次に、メモリカード２００ｆから入出力部３０１を介して、ソフト一覧を受け取り、受け取ったソフト一覧を表示部３２２へ出力する。
次に、制御部３２１は、入力部３２３から受け取った前記区分が、暗号化コンピュータプログラムのインストール及びアンインストール、並びに暗号化コンテンツの複製及び削除のいずれかを示すか、又は暗号化コンピュータプログラムの復号及び実行、並びに暗号化コンテンツの復号及び再生のいずれかを示すかを判断する。
【０２３４】
（ｉ）暗号化コンピュータプログラムのインストール及びアンインストール、並びに暗号化コンテンツの複製及び削除のいずれかを示すと判断する場合の詳細の動作ついては、後述する（図３５〜図３９参照）。
（ii）暗号化コンピュータプログラムの復号及び実行、及び暗号化コンテンツの復号及び再生の区分のいずれかを示すと判断する場合の詳細の動作ついては、後述する（図４０〜図４２参照）。
【０２３５】
（４）表示部３２２
表示部３２２は、制御部３２１からソフト一覧を受け取り、受け取ったソフト一覧を表示する。
表示部３２２により表示されるソフト一覧を含む画面３４１を図２９に示す。この図に示すように、画面３４１は、ソフトＩＤ、名称、種類及び利用条件を含むソフト表示情報を５個含んでいる。
【０２３６】
（５）暗号化部３１２
暗号化部３１２は、認証部３１１よりセッション鍵を受け取り、ソフトＩＤ取得部３１８よりソフトＩＤを受け取り、受け取ったセッション鍵を用いて、ソフトＩＤを暗号化して暗号化ソフトＩＤを生成し、生成した暗号化ソフトＩＤを、入出力部３０１を介して、メモリカード２００ｆに送信する。
【０２３７】
（６）復号部３１３
復号部３１３は、メモリカード２００ｆから受け取った暗号化ソフトキーを、認証部３１１より受け取ったセッション鍵を用いて復号して、ソフトキーを生成し、生成したソフトキーを復号部３１４へ出力する。
（７）復号部３１４
復号部３１４は、暗号化ソフトウェアを受け取り、復号部３１３からソフトキーを受け取り、受取ったソフトキーを用いて、暗号化ソフトウェアを復号し、復号したソフトウェアをソフトウェア実行部３２４へ出力する。
【０２３８】
（８）ソフトウェア実行部３２４
ソフトウェア実行部３２４は、復号部３１４からソフトウェアを受け取り、受け取ったソフトウェアがコンピュータプログラムである場合には、当該コンピュータプログラムを実行し、受け取ったソフトウェアがコンテンツである場合には、当該コンテンツを再生する。
【０２３９】
６．７  ソフトウェア管理テーブルの送信の動作
ソフトウェア書込装置１００ｆからコンテンツ配信装置４００ｆへのソフトウェア管理テーブルの送信の際の動作について、図３０に示すフローチャートを用いて説明する。
なお、ここで説明するソフトウェア管理テーブルの送信の際の動作は、初回、及びその後、定期的に、又は、ソフトウェア書込装置１００ｆにおいてソフトウェア管理テーブルに新たなソフトウェアの管理情報が追加更新される度に、実行されるものとする。
【０２４０】
ソフトウェア書込装置１００ｆの入力部１１５は、ソフトウェア書込装置１００ｆの操作者の操作により、ソフトウェア管理テーブル１２１ｆをコンテンツ配信装置４００ｆへ送信する旨の指示を受け付け、受け付けた指示を制御部１１４へ出力し、制御部１１４は、前記指示を受け取り、認証部１１１に対して、コンテンツ配信装置４００ｆとの間で相互の機器認証をするように、制御する。
【０２４１】
ソフトウェア書込装置１００ｆの認証部１１１と、コンテンツ配信装置４００ｆの認証部４１７とは、相互の機器認証を行い（ステップＳ４０１、Ｓ４１１）、機器認証に失敗すると（ステップＳ４０２、Ｓ４１２）、ソフトウェア書込装置１００ｆ及びコンテンツ配信装置４００ｆは、それぞれソフトウェア管理テーブルの送信及び受信の処理を中止する。
【０２４２】
機器認証に成功すると（ステップＳ４０２）、暗号化部１１８は、情報記憶部１１３に記憶されているソフトウェア管理テーブル１２１ｆに含まれる全てのソフトウェア管理情報を読み出し（ステップＳ４０３）、読み出した前記ソフトウェア管理情報を暗号化し（ステップＳ４０４）、各暗号化ソフトウェア管理情報を送受信部１０２及びインターネット２０を介して、コンテンツ配信装置４００ｆへ送信する（ステップＳ４０５）。
【０２４３】
機器認証に成功すると（ステップＳ４１２）、復号部４１２は、各暗号化ソフトウェア管理情報を、ソフトウェア書込装置１００ｆから、インターネット２０及び送受信部４０２を介して受信し（ステップＳ４０５）、受信した前記暗号化ソフトウェア管理情報を復号してソフトウェア管理情報を生成し（ステップＳ４１３）、生成したソフトウェア管理情報を情報記憶部４１３に記憶されているソフトウェア管理テーブル４２１へ書き込む（ステップＳ４１４）。
【０２４４】
こうして、コンテンツ配信装置４００ｆは、ソフトウェア書込装置１００ｆが記憶しているソフトウェア管理テーブル１２１ｆと同じ内容のソフトウェア管理テーブル４２１を保持することとなる。
６．８  暗号化ソフトウェアのメモリカード２００ｆへの書込みの動作
ソフトウェア書込装置１００ｆによる暗号化ソフトウェアのメモリカード２００ｆへの書込みの動作について、図３１に示すフローチャートを用いて説明する。
【０２４５】
前記書込みの動作に先立って、ソフトウェア書込装置１００ｆの操作者により、メモリカード２００ｆがソフトウェア書込装置１００ｆに装着される。
制御部１１４は、情報記憶部１１３に記憶されているソフトウェア管理テーブル１２１ｆに含まれる全てのソフトウェア管理情報を読み出し、読み出した各ソフトウェア管理情報からソフトＩＤ、名称、種類、ライセンス情報を抽出し、抽出したソフトＩＤ、名称、種類、ライセンス情報から構成されるソフトウェア表示情報を、読み出したソフトウェア管理情報と同数だけ含むソフトウェア一覧を生成する（ステップＳ４３１）。
【０２４６】
次に、制御部１１４は、生成したソフトウェア一覧を表示部１１６へ出力し、表示部１１６は、ソフトウェア一覧を表示する（ステップＳ４３２）。
入力部１１５は、ソフトウェア書込装置１００ｆの操作者による操作により、ソフトウェア一覧から１個のソフトウェア表示情報の選択を受け付け、選択を受け付けたソフトウェア表示情報に含まれるソフトＩＤを制御部１１４へ出力する（ステップＳ４３３）。
【０２４７】
次に、認証部１１１と認証部２１１は、相互に機器認証を行い（ステップＳ４３４、Ｓ４４１）、機器認証に失敗すると（ステップＳ４３５、Ｓ４４２）、ソフトウェア書込装置１００ｆ及びメモリカード２００ｆは、暗号化ソフトウェアの書込処理を中止する。
機器認証に成功すると（ステップＳ４３５）、暗号化部１１２は、制御部１１４からソフトＩＤを受け取り、受け取ったソフトＩＤにより識別されるソフトウェアを情報記憶部１１３から読み出し（ステップＳ４３６）、読み出したソフトウェアに暗号化アルゴリズムＥ１を施して、暗号化ソフトウェアを生成し（ステップＳ４３７）、生成した暗号化ソフトウェアを入出力部１０１を介してメモリカード２００ｆへ出力する（ステップＳ４３８）。
【０２４８】
メモリカード２００ｆの入出力部２０１は、暗号化ソフトウェアを受け取り（ステップＳ４３８）、受け取った暗号化ソフトウェアを情報記憶部２２０が有する第１記憶領域２２１へ書き込む（ステップＳ４４３）。
こうして、ソフトウェア書込装置１００ｆは、記憶しているソフトウェアを暗号化してメモリカード２００ｆへ書き込む。
【０２４９】
６．９  ライセンス情報の取得の動作
携帯電話５００ｆによりコンテンツ配信装置４００ｆからライセンス情報を含むソフトウェア管理情報を取得してメモリカード２００ｆに書き込む際の動作について、図３２〜図３３に示すフローチャートを用いて説明する。
ソフトウェア管理情報の取得に先立って、利用者によりメモリカード２００ｆが携帯電話５００ｆに装着される。
【０２５０】
携帯電話５００ｆは、利用者の操作によりライセンス情報を取得する旨の要求を受け付け（ステップＳ４６１）、前記要求をモバイルネットワーク２１を介して、コンテンツ配信装置４００ｆへ送信する（ステップＳ４６２）。
コンテンツ配信装置４００ｆの送受信部４０２は、携帯電話５００ｆからモバイルネットワーク２１を介して、前記要求を受信し（ステップＳ４６２）、認証部４１１と認証部２１１とは、送受信部４０２、モバイルネットワーク２１及び携帯電話５００ｆを介して、相互の機器認証を行う（ステップＳ４７１、Ｓ４９１）。機器認証に失敗すると（ステップＳ４７２、Ｓ４９２）、認証部４１１と認証部２１１とは、それぞれ認証失敗を示す通知を携帯電話５００ｆへ出力し（ステップＳ４７３、Ｓ４８３）、コンテンツ配信装置４００ｆ及びメモリカード２００ｆは、それぞれ、ライセンス情報の取得の処理を中止する。
【０２５１】
機器認証に成功すると（ステップＳ４７２）、認証部４１１は、認証の成功を示す認証成功情報を制御部４１４へ出力し、制御部４１４は、情報記憶部４１３に記憶されているソフトウェア管理テーブルから全てのソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報を用いてソフトウェア一覧を生成し（ステップＳ４７４）、生成したソフトウェア一覧を送受信部４０２、モバイルネットワーク２１を介して、携帯電話５００ｆへ送信する（ステップＳ４７５）。
【０２５２】
携帯電話５００ｆは、コンテンツ配信装置４００ｆから、モバイルネットワーク２１を介して、ソフトウェア一覧を受信し（ステップＳ４７５）、受信したソフトウェア一覧を表示する（ステップＳ４６３）。次に、携帯電話５００ｆは、利用者からソフトウェアの選択を受け付け（ステップＳ４６４）、さらにライセンス情報の選択を受け付ける（ステップＳ４６５）。次に、携帯電話５００ｆは、選択を受け付けたソフトウェアを識別するソフトＩＤと選択を受け付けたライセンス情報を識別する利用条件ＩＤとを、モバイルネットワーク２１を介して、送受信部４０２へ送信する（ステップＳ４６６）。
【０２５３】
制御部４１４は、モバイルネットワーク２１及び送受信部４０２を介して、ソフトＩＤと利用条件ＩＤとを受信し（ステップＳ４６６）、受信したソフトＩＤと利用条件ＩＤとに基づいて、料金を計算し（ステップＳ４７６）、計算した料金を示す料金情報を送受信部４０２、モバイルネットワーク２１を介して携帯電話５００ｆへ送信する（ステップＳ４７７）。次に、制御部４１４と携帯電話５００ｆとは、前記料金の精算処理を行う（ステップＳ４７８）。
【０２５４】
料金の精算処理が終了すると、制御部４１４は、受信したソフトＩＤと利用条件ＩＤとに基づいて、ソフトウェア管理情報を生成し、生成したソフトウェア管理情報を暗号化部４１８へ出力し、暗号化部４１８に対してソフトウェア管理情報の暗号化を指示する（ステップＳ４７９）。暗号化部４１８は、ソフトウェア管理情報を受け取り、受け取ったソフトウェア管理情報に暗号化アルゴリズムＥ３を施して、暗号化ソフトウェア管理情報を生成し（ステップＳ４８０）、生成した暗号化ソフトウェア管理情報を送受信部４０２、モバイルネットワーク２１及び携帯電話５００ｆを介して、メモリカード２００ｆへ送信する（ステップＳ４８１、Ｓ４６６）。
【０２５５】
メモリカード２００ｆの復号部２１２は、コンテンツ配信装置４００ｆから、モバイルネットワーク２１、携帯電話５００ｆ及び入出力部２０１を介して、暗号化ソフトウェア管理情報を受信し（ステップＳ４８１、Ｓ４６６）、受信した暗号化ソフトウェア管理情報を復号してソフトウェア管理情報を生成し（ステップＳ４９３）、判定部２１４は、ソフトウェア管理情報をソフトウェア管理情報テーブル２３１へ書き込む（ステップＳ４９４）。
【０２５６】
６．１０  情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、実行、再生の動作
情報処理装置３００ｆによる暗号化コンピュータプログラムのインストール及びアンインストール、暗号化コンテンツの複製及び削除、メモリカード２００ｆに記憶されている暗号化コンピュータプログラムの復号及び実行、及びメモリカード２００ｆに記憶されている暗号化コンテンツの復号及び再生の動作について、図３４〜図４２に示すフローチャートを用いて説明する。
【０２５７】
情報処理装置３００ｆによる上記の動作に先立って、メモリカード２００ｆが利用者により情報処理装置３００ｆに装着される。
入力部３２３は、利用者から操作の区分の入力を受け付け、次に、入力を受け付けた前記区分を制御部３２１へ出力する（ステップＳ５１１）。
制御部３２１は、入力部３２３から前記区分を受け取り、受け取った前記区分が、暗号化コンピュータプログラムのアンインストールの区分及び暗号化コンテンツの削除の区分であるか、又は他の区分であるかを判断する。
【０２５８】
受け取った前記区分が、暗号化コンピュータプログラムのアンインストールの区分及び暗号化コンテンツの削除の区分のいずれかであると判断する場合に（ステップＳ５１２）、制御部３２１は、ソフトウェア格納部３２０に記憶されているソフトウェア保持情報テーブル３３１から全てのソフトウェア保持情報を読み出し（ステップＳ５１６）、読み出したソフトウェア保持情報を用いてソフト一覧を生成し、生成したソフト一覧を表示部３２２へ出力する（ステップＳ５１７）。次に、ステップＳ５１８へ制御が移る。
【０２５９】
一方、受け取った前記区分が、他の区分であると判断する場合に（ステップＳ５１２）、制御部３２１は、ソフト一覧の出力要求を示す一覧要求を入出力部３０１を介して、メモリカード２００ｆへ出力する（ステップＳ５１３）。
メモリカード２００ｆの入出力部２０１は、情報処理装置３００ｆから前記一覧要求を受け取り、受け取った前記一覧要求を判定部２１４へ出力する（ステップＳ５１３）。
【０２６０】
判定部２１４は、入出力部２０１から前記一覧要求を受け取ると、情報記憶部２２０が有する第２記憶領域２２２のソフトウェア情報管理テーブル２３１からソフトウェア管理情報を読み出し、読み出したソフトウェア管理情報を用いて、ソフト一覧を生成し（ステップＳ５１４）、生成したソフト一覧を入出力部２０１を介して、情報処理装置３００ｆへ出力する（ステップＳ５１５）。
【０２６１】
制御部３２１は、メモリカード２００ｆから入出力部３０１を介して、ソフト一覧を受け取り、受け取ったソフト一覧を表示部３２２へ出力する（ステップＳ５１５）。
次に、表示部３２２は、ソフト一覧を表示する（ステップＳ５１８）。
入力部３２３は、利用者からソフト一覧として表示されているソフト表示情報のうちの１個の選択を受け付け、選択を受け付けたソフト表示情報に含まれるソフトＩＤを制御部３２１へ出力する（ステップＳ５１９）。
【０２６２】
次に、制御部３２１は、入力部３２３から受け取った前記区分が、暗号化コンピュータプログラムのインストール及びアンインストールの区分、暗号化コンテンツの複製及び削除の区分のいずれかであるか、又は、メモリカード２００ｆに記憶されている暗号化コンピュータプログラムの復号及び実行の区分、及びメモリカード２００ｆに記憶されている暗号化コンテンツの復号及び再生の区分のいずれかであるかを判断する。
【０２６３】
暗号化コンピュータプログラムのインストール及びアンインストールの区分、暗号化コンテンツの複製及び削除の区分のいずれかであると判断する場合に（ステップＳ５２０）、次に、ステップＳ１０１ｆ（図３５）へ制御が移る。
メモリカード２００ｆに記憶されている暗号化コンピュータプログラムの復号及び実行の区分、及びメモリカード２００ｆに記憶されている暗号化コンテンツの復号及び再生の区分のいずれかであると判断する場合に（ステップＳ５２０）、次に、ステップＳ１０１ｇ（図４０）へ制御が移る。
【０２６４】
（暗号化コンピュータプログラムのインストール及びアンインストール、又は暗号化コンテンツの複製及び削除の動作）
暗号化コンピュータプログラムのインストール及びアンインストール、又は暗号化コンテンツの複製及び削除の動作を、図３５〜図３９のフローチャートのステップＳ１０１ｆ〜Ｓ１１９ｆ、Ｓ２０１ｆ〜Ｓ２１７ｆ、Ｓ１５１ｆ〜Ｓ１５５ｆに示している。
【０２６５】
図３５〜図３９の各ステップは、これらのステップを示す参照符号（ただし、数字部分のみ）と同一の参照符号（数字部分のみ）により示される図５〜図９のフローチャートのステップに対応している。ここでは、図５〜図９に示すフローチャートの各ステップとの相違点を中心として説明する。
ステップＳ１０９ｆにおいて、判定部２１４は、生成された区分がコンピュータプログラムのインストール及びコンテンツの複製、又は、コンピュータプログラムのアンインストール及びコンテンツの削除のいずれであるかを判断する。区分がコンピュータプログラムのインストール又はコンテンツの複製であると判断される場合に、ステップＳ１１０ｆに制御が移される。一方、コンピュータプログラムのアンインストール又はコンテンツの削除であるかを判断される場合に、Ｓ２０１ｆに制御が移される。
【０２６６】
また、ステップＳ２１７ｆにおいて、判定部２１４は、ソフトウェア管理情報に含まれるインストール回数情報又は複製回数情報に「１」の値を加算し、得られた値を、新たにインストール回数情報又は複製回数情報として、ソフトウェア管理情報テーブル２３１内の前記ソフトウェア管理情報内に上書きする。
また、判定部２１４は、復号部２１２より受け取った装置ＩＤが、第２記憶領域２２２より受取ったソフトウェア管理情報に含まれるかどうかチェックし（ステップＳ１５１ｆ）、装置ＩＤが含まれない場合は（ステップＳ１５１ｆ）、新しい情報処理装置へのコンピュータプログラムのインストールの要請又はコンテンツの複製の要請と判断し、ソフトウェア管理情報に含まれるインストール回数又は複製回数をチェックし（ステップＳ１５３ｆ）、１以上であれば（ステップＳ１５３ｆ）インストール可又は複製可と判定する。このとき、前記第２記憶領域２２２より読み出したソフトウェア管理情報に、前記復号部２１２より受け取った装置ＩＤを追加して書き込むとともに、インストール回数又は複製回数を１減算した値に更新したソフトウェア管理情報を第２記憶領域２２２に書き込む（ステップＳ１５５ｆ）。インストール回数又は複製回数が零であれば（ステップＳ１５３ｆ）、インストール不可又は複製不可と判定する。また、前記ステップ１５１ｆにおいて、装置ＩＤが含まれる場合は（ステップＳ１５１ｆ）、既にインストール済み又は複製済みの情報処理装置への再インストールの要請又は再複製の要請と判断し、インストール可又は複製可と判定する。
【０２６７】
（メモリカード２００ｆに記憶されている暗号化コンピュータプログラムの復号及び実行の動作、及びメモリカード２００ｆに記憶されている暗号化コンテンツの復号及び再生の動作）
情報処理装置３００ｆが有する認証部３１１とメモリカード２００ｆが有する認証部２１１との間で、相互に認証を行う（ステップＳ１０１ｇ、ステップＳ１０２ｇ）。
【０２６８】
認証に成功すると（ステップＳ１０４ｇ）、暗号化部３１２は、認証部３１１よりセッション鍵を受け取り、ソフトＩＤ取得部３１８よりソフトＩＤを受け取り、受け取ったセッション鍵を用いて、ソフトＩＤを暗号化して暗号化ソフトＩＤを生成し（ステップＳ１０５ｇ）、生成した暗号化ソフトＩＤを、入出力部３０１を介して、メモリカード２００ｆに送信する（ステップＳ１０６ｇ）。
【０２６９】
認証に成功すると（ステップＳ１０３ｇ）、復号部２１２は、認証部２１１よりセッション鍵を受け取り、受け取ったセッション鍵を用いて、情報処理装置３００ｆより受信した暗号化ソフトＩＤを復号し、生成したソフトＩＤを判定部２１４に送る（ステップＳ１０７ｇ）。
認証に失敗すると（ステップＳ１０３ｇ又はＳ１０４ｇ）、メモリカード２００ｆ又は情報処理装置３００ｆは、以降の処理を中止する。
【０２７０】
次に、判定部２１４は、第２記憶領域２２２から、前記生成されたソフトＩＤに対応するソフトウェア管理情報を読み出し（ステップＳ１０８ｇ）、読み出したソフトウェア管理情報に基づいて、暗号化コンピュータプログラムの復号及び実行、又は暗号化コンテンツの復号及び再生を許可するか否かを判定する（ステップＳ１１０ｇ）。なお、ステップＳ１１０ｇの詳細は後述する。
【０２７１】
実行又は再生を許可しないと判定した場合に（ステップＳ１１０ｇ）、判定部２１４は、不許可を示す不許可メッセージを情報処理装置３００ｆに送信し（ステップＳ１２０ｇ）、その後、メモリカード２００ｆは、処理を中止する。
メモリカード２００ｆから前記不許可メッセージを受け取ると（ステップＳ１２１ｇ）、制御部３２１は、表示部３２２に対して前記不許可メッセージを表示するように制御し、表示部３２２は、前記不許可メッセージを表示し（ステップＳ１２２ｇ）、その後、情報処理装置３００ｆは、処理を中止する。
【０２７２】
実行又は再生を許可すると判定した場合に（ステップＳ１１０ｇ）、判定部２１４は、ソフト管理情報に含まれるソフトキーを暗号化部２１３に送り、暗号化部２１３は、ソフトキーを、認証部２１１より受け取ったセッション鍵を用いて暗号化して暗号化ソフトキーを生成し（ステップＳ１１１ｇ）、生成した暗号化ソフトキーを情報処理装置３００ｆに送信し（ステップＳ１１２ｇ）、制御部３２１が前記不許可メッセージを受け取っていない場合に（ステップＳ１２１ｇ）、復号部３１３は、メモリカード２００ｆから受け取った暗号化ソフトキーを、認証部３１１より受け取ったセッション鍵を用いて復号する（ステップＳ１１３ｇ）。
【０２７３】
また、入出力部２０１は、第１記憶領域２２１から暗号化ソフトウェアを読み出し（ステップＳ１１４ｇ）、読み出した暗号化ソフトウェアを情報処理装置３００ｆへ送信する（ステップＳ１１５ｇ）。復号部３１４は、復号部３１３から受取った復号されたソフトキーを用いて、暗号化ソフトウェアを復号し、復号したソフトウェアをソフトウェア実行部３２４へ出力し、（ステップＳ１１６ｇ）、ソフトウェア実行部３２４は、ソフトウェアを受け取り、受け取ったソフトウェアがコンピュータプログラムである場合には、当該コンピュータプログラムを実行し、受け取ったソフトウェアがコンテンツである場合には、当該コンテンツを再生する（ステップＳ１１７ｇ）。
【０２７４】
以上のようにして、暗号化コンピュータプログラムの復号及び実行、又は暗号化コンテンツの復号及び再生が完了する。
次に、判定部２１４による暗号化コンピュータプログラムの復号及び実行、又は暗号化コンテンツの復号及び再生を許可するか否かを判定の動作について詳細に説明する。以下の説明は、ステップＳ１１０ｇの詳細である。
【０２７５】
判定部２１４は、利用条件が「再生回数情報」を示すか、又は「再生期間」を示すかを判断する。利用条件が「再生回数情報」を示す場合には（ステップＳ５３１）、利用条件に含まれる「再生回数」が「１」以上であるか否かを判断し、「１」以上であるときは（ステップＳ５３２）、「再生回数」を「１」だけ減じ（ステップＳ５３３）、再生許可と判定する。「再生回数」が「０」であるときは（ステップＳ５３２）、再生不許可と判定する。
【０２７６】
利用条件が「再生期間」を示す場合には（ステップＳ５３１）、判定部２１４は、現在日時を取得し（ステップＳ５３４）、現在日時が「再生期間」内であるか否かを判断し、再生期間内であるときは（ステップＳ５３５）、再生許可と判定する。再生期間外であるときは（ステップＳ５３５）、再生不許可と判定する。
６．１１  その他
上記の変形例において、ソフトウェアは、コンピュータプログラムや映画や音楽のようなデジタル著作物などのコンテンツであるとしているが、これに限定されることはない。ソフトウェアは、例えば、表計算ソフトにより生成される電子的な表データ、データベースソフトウェアが出力するデータなどであるとしてもよいし、静止画、動画、音声、小説のようなテキストデータなどのコンテンツであるとしてもよい。このようにソフトウェアとは、コンピュータにより読み取りが可能で、利用可能な形式のあらゆる種類のコンピュータデータを含む概念である。
【０２７７】
また、上記の変形例において、携帯電話５００ｆ及び情報処理装置３００ｆは、一体の装置から構成されているとしてもよい。
また、携帯電話５００ｆは、無線通信機能を備えた携帯情報端末装置であるとしてもよい。
また、以下に示す構成としても良い。
【０２７８】
（１）変形例（５）では、ソフトウェア書込装置１００ｆとコンテンツ配信装置４００ｆとは、インターネット２０に接続されており、インターネット２０を介して、ソフトウェア管理情報を、秘密に送信する構成としているが、この構成には限定されない。
例えば、ソフトウェア書込装置１００ｆは、ソフトウェア管理情報を、記録媒体にセキュアに記録する。ソフトウェア書込装置１００ｆの管理者は、このソフトウェア管理情報が記録された記録媒体をコンテンツ配信装置４００ｆの管理者に対して、郵送する。コンテンツ配信装置４００ｆは、郵送された記録媒体からソフトウェア管理情報を読み出し、内部に記録する、としてもよい。
【０２７９】
また、ソフトウェア書込装置１００ｆとコンテンツ配信装置４００ｆとは異なる装置であるとしているが、ソフトウェア書込装置１００ｆ及びコンテンツ配信装置４００ｆの両方の構成を含む１台の装置であるとしてもよい。
（２）変形例（５）では、ソフトウェア書込装置１００ｆにメモリカード２００ｆが装着されて暗号化ソフトウェアが記録され、この暗号化ソフトウェアが記録されたメモリカード２００ｆが、販売店３０を介して利用者に提供される構成であるとしているが、この構成に限定されない。
【０２８０】
例えば、変形例（４）と同様に、ソフトウェア書込装置１００ｆと情報処理装置３００ｆとがインターネット２０で接続され、メモリカード２００ｆが情報処理装置３００ｆに装着され、インターネット２０を介して、暗号化ソフトウェアがメモリカード２００ｆに送信、記録される構成としても良い。
（３）また、ソフトウェア管理情報が配布される手順と同様に、すなわち、ソフトウェア書込装置１００ｆから、暗号化ソフトウェアが、コンテンツ配信装置４００ｆに送信され、さらに、コンテンツ配信装置４００ｆから、モバイルネットワーク２１、携帯電話５００ｆを介して、メモリカード２００ｆに送信、記録される構成としても良い。
【０２８１】
（４）また、ソフトウェア書込装置１００ｆ又はコンテンツ配信装置４００ｆは、インターネットなどのネットワークを介して、情報処理装置３００ｆに接続されているものとし、ソフトウェア書込装置１００ｆ又はコンテンツ配信装置４００ｆから、暗号化ソフトウェアが、インターネットを介して、情報処理装置３００ｆのソフトウェア格納部３２０に送信、記録される構成としても良い。
【０２８２】
この暗号化ソフトウェアに対応するライセンス情報は、変形例（５）に示された手順により、即ち、コンテンツ配信装置４００ｆから、ソフトウェア管理情報が、モバイルネットワーク２１、携帯電話５００ｆを介して、メモリカード２００ｆに送信、記録されるものとする。そして、情報処理装置３００ｆのソフトウェア格納部３２０に記録されている暗号化ソフトウェアの復号及び実行（又は再生）の動作については、上述した「メモリカード２００ｆに記憶されている暗号化コンピュータプログラムの復号及び実行の動作、及びメモリカード２００ｆに記憶されている暗号化コンテンツの復号及び再生の動作」において示す動作とほぼ同様である。相違点は、暗号化ソフトウェアが、メモリカード２００ｆから読み出されるか、ソフトウェア格納部３２０から読み出されるかである。
【０２８３】
（５）変形例（５）では、情報処理装置３００ｆと携帯電話５００ｆとは、異なる装置であるとしているが、携帯電話５００ｆと情報処理装置３００ｆとが一体の装置から構成されているとしてもよい。
（６）変形例（５）において、利用条件は、複数の条件の組み合わせとしても良い。例えば、利用条件は、「再生回数＝５回」、かつ、「再生期間２００４．１．１〜２００４．１．３１」と設定してもよい。この場合、判定部２１４は、再生回数が６回以上なら、又は、再生期間が過ぎれば、再生不可とする。
【０２８４】
（７）変形例（５）では、利用条件として設定できるものをいくつか示したが、これらに限定されない。
例えば、利用条件は、最初に再生した日から何日間再生可能かを示す再生可能日数を含むとしてもよい。
また、利用条件は、最大再生累積時間を含むとしてもよい。最大再生累積時間は、コンテンツ等の再生に要する時間の累積である再生累積時間の最大値である。コンテンツ等の再生累積時間が、最大再生累積時間よりも小さいか又は等しい場合に、コンテンツ等の再生が許可され、コンテンツ等の再生累積時間が、最大再生累積時間より大きい場合に、コンテンツ等の再生が禁止される。
【０２８５】
７．その他の変形例
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は、上記の実施の形態に限定されないのはもちろんである。以下のような場合も本発明に含まれる。
（１）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるデジタル信号であるとしてもよい。
【０２８６】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ―ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなど、に記録したものとしてもよい。また、これらの記録媒体に記録されている前記コンピュータプログラム又は前記デジタル信号であるとしてもよい。
【０２８７】
また、本発明は、前記コンピュータプログラム又は前記デジタル信号を、電気通信回線、無線又は有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
また、本発明は、マイクロプロセッサとメモリとを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしてもよい。
【０２８８】
また、前記プログラム又は前記デジタル信号を前記記録媒体に記録して移送することにより、又は前記プログラム又は前記デジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
（２）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
８．発明の効果
以上説明したように、本発明は、記録媒体と情報処理装置とから構成されるソフトウェア管理システムである。
【０２８９】
前記記録媒体は、コンピュータデータであるソフトウェアを記憶している通常記憶手段と、外部から直接アクセスできず、前記ソフトウェアの使用条件に係るライセンス情報を記憶しているセキュア記憶手段と、耐タンパ性を有し、前記セキュア記憶手段に記憶されているライセンス情報に基づいて、前記情報処理装置へのソフトウェアの導入又は導入されているソフトウェアの非活性化の可否を判断し、可と判断する場合に、前記情報処理装置に対して導入又は非活性化の許可を示す許可指示を出力し、導入又は非活性化に応じて前記セキュア記憶手段に記憶されているライセンス情報を書き換える耐タンパモジュール手段とを含む。
【０２９０】
前記情報処理装置は、前記記録媒体から前記許可指示を取得する取得手段と、取得した前記許可指示に応じて、前記記録媒体から前記ソフトウェアを取得して内部に導入し、又は導入されている前記ソフトウェアを非活性化する制御手段とを含む。
これらの構成によると、外部から直接アクセスできないセキュア記憶手段にライセンス情報が記憶されているので、ライセンス情報の改竄が容易ではない。また、記録媒体から相手の情報処理装置へライセンス情報が伝送されないので、記録媒体から相手装置への通信路上においてライセンス情報が漏洩して改竄されることはない。さらに、ソフトウェアの使用条件に係るライセンス情報がセキュア記憶手段に記憶されているので、ライセンス情報とソフトウェアとの対応関係が不当に改竄されることはない。
【０２９１】
ここで、前記記録媒体において、前記通常記憶手段は、コンピュータプログラム又はデジタルデータが、ソフトキーを用いて暗号化された前記ソフトウェアを記憶しており、前記セキュア記憶手段は、前記ソフトキーを含む前記ライセンス情報を記憶しており、前記耐タンパモジュール手段は、導入可と判断する場合に、前記セキュア記憶領域に記憶されているライセンス情報からソフトキーを抽出し、抽出した前記ソフトキーを含む前記許可指示をセキュアに出力する。
【０２９２】
この構成によると、暗号化するために用いられるソフトキーを、耐タンパモジュール手段がセキュアに出力するので、ソフトキーが不当に改竄されることがない。
ここで、前記記録媒体において、前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、抽出した前記署名データを含む前記許可指示を出力する。
【０２９３】
この構成によると、耐タンパモジュール手段がソフトウェアの署名データを出力するので、前記ソフトウェアの改竄が検出できる。
ここで、前記記録媒体において、前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、前記許可指示の出力に代えて、抽出した前記署名データを出力する。
【０２９４】
この構成によると、ソフトウェアの署名データを含むライセンス情報がセキュア記憶手段に記憶されているので、ライセンス情報とソフトウェアとの対応関係が不当に改竄されることはない。
ここで、前記記録媒体において、前記セキュア記憶手段は、前記使用条件が所定のキー情報を用いて暗号化されて生成された前記ライセンス情報を記憶しており、前記耐タンパモジュール手段は、前記キー情報を記憶しており、前記キー情報を用いて、前記ライセンス情報を復号して前記使用条件を生成し、生成した使用条件に基づいて、判断する。
【０２９５】
この構成によると、前記セキュア記憶手段は、前記使用条件が所定のキー情報を用いて暗号化されて生成された前記ライセンス情報を記憶しており、前記耐タンパモジュール手段は、記憶している前記キー情報を用いて、前記ライセンス情報を復号して前記使用条件を生成するので、正当なキー情報を記憶している前記耐タンパモジュール手段のみが前記ライセンス情報を使用することができる。
【０２９６】
ここで、前記記録媒体において、前記セキュア記憶手段は、前記ライセンス情報に代えて、前記ライセンス情報の一部分を記憶しており、前記耐タンパモジュール手段は、さらに、前記ライセンス情報の他の部分を記憶しており、前記セキュア記憶手段に記憶されているライセンス情報の前記一部分を抽出し、抽出した前記一部分と記憶している前記他の部分とからライセンス情報を生成し、生成したライセンス情報に基づいて、判断する。
【０２９７】
この構成によると、前記セキュア記憶手段は、ライセンス情報の一部分を記憶しており、前記耐タンパモジュール手段は、前記ライセンス情報の他の部分を記憶しており、これらから全体のライセンス情報を生成するので、ライセンス情報が改竄される可能性をさらに低減することができる。
ここで、前記記録媒体において、前記セキュア記憶手段が記憶しているライセンス情報は、前記ソフトウェアの使用許可回数であり、前記耐タンパモジュール手段は、前記使用許可回数が０より大きいか否かを判断することにより、前記導入の可否を判断し、０より大きいと判断する場合に、前記ソフトウェアの導入が許可されたとみなして、前記許可指示を出力し、前記使用許可回数から１減じて前記セキュア記憶手段に書き込む。
【０２９８】
この構成によると、前記ライセンス情報は、前記ソフトウェアの使用許可回数であり、インストールの際に、前記耐タンパモジュール手段は、前記使用許可回数が０より大きいと判断する場合に、前記使用許可回数から１を減じて前記セキュア記憶手段に書き込むので、前記ソフトウェアの使用回数を確実に管理することができる。
ここで、前記記録媒体において、前記セキュア記憶手段が記憶しているライセンス情報は、前記ソフトウェアの使用許可回数であり、前記耐タンパモジュール手段は、前記ソフトウエアの非活性化が許可された場合に、前記許可指示を出力し、さらに、前記使用許可回数を１加算して前記セキュア記憶手段に書き込む。
【０２９９】
この構成によると、前記ライセンス情報は、前記ソフトウェアの使用許可回数であり、アンインストールの際に、前記使用許可回数に１を加算して前記セキュア記憶手段に書き込むので、前記ソフトウェアの使用回数を確実に管理することができる。
ここで、前記情報処理装置において、前記記録媒体の前記セキュア記憶手段は、前記ソフトウェアの署名データを含む前記ライセンス情報を記憶しており、前記耐タンパモジュール手段は、導入を可と判断する場合に、前記セキュア記憶手段に記憶されているライセンス情報から前記署名データを抽出し、前記許可指示の出力に代えて、抽出した前記署名データを出力し、前記取得手段は、前記署名データを取得し、前記制御手段は、取得した前記署名データを用いて、取得した前記ソフトウェアの検証を行い、検証が成功した場合に、取得した前記ソフトウェアを内部に導入する。
【０３００】
この構成によると、前記記録媒体から取得した前記署名データを用いて、取得した前記ソフトウェアの検証を行い、検証が成功した場合に、取得した前記ソフトウェアを内部に記憶するので、正当なソフトウェアのみを取得して内部に記憶することができる。
【産業上の利用可能性】
【０３０１】
映画や音楽などの著作物がデジタル化されたコンテンツやコンピュータプログラムなどのソフトウェアを提供するソフトウェア産業において、本発明は、経営的に、また反覆的、継続的に使用することができる。また、本発明のソフトウェア書込装置、情報処理装置、サーバ装置、メモリカードは、電器製品等の製造産業において、生産し、販売することができる。
【図面の簡単な説明】
【０３０２】
【図１】図１は、ソフトウェア管理システム１０の構成を示す。
【図２】図２は、ソフトウェア書込装置１００及びメモリカード２００の構成を示すブロック図である。
【図３】図３は、メモリカード２００及び情報処理装置３００の構成を示すブロック図である。
【図４】図４は、ソフトウェア管理情報テーブル２３１のデータ構造の一例を示す。
【図５】図５は、ソフトウェア管理システム１０の動作を示すフローチャートである。特に、メモリカード２００から情報処理装置３００へソフトウェアがインストールされる場合、又はアンインストールされる場合の動作を示している。図６へ続く。
【図６】図６は、ソフトウェア管理システム１０の動作を示すフローチャートである。特に、メモリカード２００から情報処理装置３００へソフトウェアがインストールされる場合、又はアンインストールされる場合の動作を示している。図７へ続く。
【図７】図７は、ソフトウェア管理システム１０の動作を示すフローチャートである。特に、メモリカード２００から情報処理装置３００へソフトウェアがインストールされる場合、又はアンインストールされる場合の動作を示している。図８へ続く。
【図８】図８は、ソフトウェア管理システム１０の動作を示すフローチャートである。特に、メモリカード２００から情報処理装置３００へソフトウェアがインストールされる場合、又はアンインストールされる場合の動作を示している。図７から続く。
【図９】図９は、判定部２１４における詳細の動作を示すフローチャートである。
【図１０】図１０は、変形例としてのソフトウェア管理システム１０ｂを構成するソフトウェア書込装置１００ｂ及びメモリカード２００ｂの構成を示すブロック図である。
【図１１】図１１は、ソフトウェア管理情報のデータ構造の一例を示す。
【図１２】図１２は、ソフトウェア管理システム１０ｂを構成するメモリカード２００ｂ及び情報処理装置３００ｂの構成を示すブロック図である。
【図１３】図１３は、別の変形例としてのソフトウェア管理システム１０ｃを構成するメモリカード２００ｃ及び情報処理装置３００ｃの構成を示すブロック図である。
【図１４】図１４は、別の変形例としてのソフトウェア管理システム１０ｄを構成するメモリカード２００ｄ及び情報処理装置３００ｄの構成を示すブロック図である。
【図１５】図１５は、部分ソフトウェア管理テーブル２１９及びソフトウェア管理情報テーブル２３１の一例としてのデータ構造を示す。
【図１６】図１６は、ソフトウェア管理システム１０ｅの構成を示す。
【図１７】図１７は、別の変形例としてのソフトウェア管理システム１０ｅを構成するメモリカード２００及びソフトウェア書込装置１００ｅの構成を示すブロック図である。
【図１８】図１８は、別の変形例としてのソフトウェア管理システム１０ｅを構成するメモリカード２００及び情報処理装置３００ｅの構成を示すブロック図である。
【図１９】図１９は、ソフトウェア書込装置１００ｅによるソフトウェア管理情報のメモリカード２００への書込みの動作を示すフローチャートである。
【図２０】図２０は、ソフトウェア書込装置１００ｅによる暗号化ソフトウェアの送信の動作を示すフローチャートである。
【図２１】図２１は、ソフトウェア管理システム１０ｆの構成を示す。
【図２２】図２２は、別の変形例としてのソフトウェア管理システム１０ｆを構成するメモリカード２００ｆ及びソフトウェア書込装置１００ｆの構成を示すブロック図である。
【図２３】図２３は、情報記憶部１１３に記憶されている情報の一例を示す。
【図２４】図２４は、ソフトウェア管理テーブル１２１ｆの一例を示す。
【図２５】図２５は、別の変形例としてのソフトウェア管理システム１０ｆを構成するメモリカード２００ｆ及びコンテンツ配信装置４００ｆの構成を示すブロック図である。
【図２６】図２６は、ソフトウェア管理情報テーブル２３１の一例を示す。
【図２７】図２７は、別の変形例としてのソフトウェア管理システム１０ｆを構成するメモリカード２００ｆ及び情報処理装置３００ｆの構成を示すブロック図である。
【図２８】図２８は、ソフトウェア保持情報テーブル３３１の一例を示す。
【図２９】図２９は、表示部３２２により表示されるソフト一覧を含む画面の一例を示す。
【図３０】図３０は、ソフトウェア書込装置１００ｆからコンテンツ配信装置４００ｆへのソフトウェア管理テーブルの送信の際の動作を示すフローチャートである。
【図３１】図３１は、ソフトウェア書込装置１００ｆによる暗号化ソフトウェアのメモリカード２００ｆへの書込みの動作を示すフローチャートである。
【図３２】図３２は、携帯電話５００ｆによりコンテンツ配信装置４００ｆからライセンス情報を含むソフトウェア管理情報を取得してメモリカード２００ｆに書き込む際の動作を示すフローチャートである。図３３へ続く。
【図３３】図３３は、携帯電話５００ｆによりコンテンツ配信装置４００ｆからライセンス情報を含むソフトウェア管理情報を取得してメモリカード２００ｆに書き込む際の動作を示すフローチャートである。図３２から続く。
【図３４】図３４は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図３５へ続く。
【図３５】図３５は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図３６へ続く。
【図３６】図３６は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図３７へ続く。
【図３７】図３７は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図３８へ続く。
【図３８】図３８は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図３９へ続く。
【図３９】図３９は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図４０へ続く。
【図４０】図４０は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図４１へ続く。
【図４１】図４１は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図４２へ続く。
【図４２】図４２は、情報処理装置３００ｆによるソフトウェアのインストール、アンインストール、複製、削除、再生の動作を示すフローチャートである。図４１から続く。
【符号の説明】
【０３０３】
１０、１０ｂ〜１０ｆ      ソフトウェア管理システム
１００、１００ｂ〜１００ｆ  ソフトウェア書込装置
２００、２００ｂ〜２００ｄ、２００ｆ  メモリカード
３００、３００ｂ〜３００ｆ  情報処理装置
４００ｆ                    コンテンツ配信装置
５００ｆ                    携帯電話
【図１】
2004272893.tif 000003
【図２】
2004272893.tif 000004
【図３】
2004272893.tif 000005
【図４】
2004272893.tif 000006
【図５】
2004272893.tif 000007
【図６】
2004272893.tif 000008
【図７】
2004272893.tif 000009
【図８】
2004272893.tif 000010
【図９】
2004272893.tif 000011
【図１０】
2004272893.tif 000012
【図１１】
2004272893.tif 000013
【図１２】
2004272893.tif 000014
【図１３】
2004272893.tif 000015
【図１４】
2004272893.tif 000016
【図１５】
2004272893.tif 000017
【図１６】
2004272893.tif 000018
【図１７】
2004272893.tif 000019
【図１８】
2004272893.tif 000020
【図１９】
2004272893.tif 000021
【図２０】
2004272893.tif 000022
【図２１】
2004272893.tif 000023
【図２２】
2004272893.tif 000024
【図２３】
2004272893.tif 000025
【図２４】
2004272893.tif 000026
【図２５】
2004272893.tif 000027
【図２６】
2004272893.tif 000028
【図２７】
2004272893.tif 000029
【図２８】
2004272893.tif 000030
【図２９】
2004272893.tif 000031
【図３０】
2004272893.tif 000032
【図３１】
2004272893.tif 000033
【図３２】
2004272893.tif 000034
【図３３】
2004272893.tif 000035
【図３４】
2004272893.tif 000036
【図３５】
2004272893.tif 000037
【図３６】
2004272893.tif 000038
【図３７】
2004272893.tif 000039
【図３８】
2004272893.tif 000040
【図３９】
2004272893.tif 000041
【図４０】
2004272893.tif 000042
【図４１】
2004272893.tif 000043
【図４２】
2004272893.tif 000044