(57)【要約】【課題】マシン毎のライセンス供与に関する強固な不正防止機能を実現する。【解決手段】ソフトウェア暗号キー生成手段１は、ソフトウェア６ａの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キー５ａと、ソフトウェア暗号キー５ａで暗号化されたソフトウェア６ｂを復号するためのソフトウェア復号キー５ｂとを生成する。ライセンス発行手段２は、ソフトウェア６ａの動作許可対象である処理装置４内の記録媒体４ａに固定的に記録された装置識別情報４ｂを含むライセンス発行要求に応じて、装置識別情報４ｂでソフトウェア復号キー５ｂを暗号化し、暗号化されたソフトウェア復号キーを含むソフトウェアライセンス５ｃを出力する。これにより、装置識別情報４ｂが固定的に記録された処理装置４でのみ暗号化されたソフトウェアを復号することが可能となる。【選択図】　　　　図１
2004110646.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの実行ライセンスを発行するライセンス発行サーバにおいて、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成するソフトウェア暗号キー生成手段と、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報を暗号キーとして前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力するライセンス発行手段と、
を有することを特徴とするライセンス発行サーバ。
【請求項２】
ライセンスによって実行が制限されたソフトウェアを実行する処理装置において、
装置識別情報が固定的に記録された記録媒体と、
暗号化された状態のソフトウェア復号キーを受け取ると、前記記録媒体に記録された前記装置識別情報を復号キーとして前記ソフトウェア復号キーを復号する復号キー復号手段と、
暗号化された状態の前記ソフトウェアを受け取ると、前記復号キー復号手段で復号された前記ソフトウェア復号キーを復号キーとして前記ソフトウェアを復号するソフトウェア復号手段と、
を有することを特徴とする処理装置。
【請求項３】
ソフトウェアの実行ライセンスを発行するライセンス発行サーバにおいて、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録する着脱キー情報発行手段と、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力するライセンス発行手段と、
を有することを特徴とするライセンス発行サーバ。
【請求項４】
前記ライセンス発行手段により出力された前記ライセンス情報の履歴を蓄積し、蓄積された前記ライセンス情報に基づいて、前記ソフトウェアの提供者に対して請求するライセンス発行手数料を算出するライセンス発行費用算出手段をさらに有することを特徴とする請求項３記載のライセンス発行サーバ。
【請求項５】
ライセンスによって実行が制限されたソフトウェアを実行する処理装置において、
装置識別情報が固定的に記録された記録媒体と、
動作許可対象装置を特定する許可対象装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報が格納されたハードウェアキーが装着されたとき、前記ハードウェアキーから前記着脱キー情報を読み取るハードウェアキー接続手段と、
暗号化された状態の前記ソフトウェアを提供するソフトウェア提供サーバから、前記ソフトウェアを復号するためのソフトウェア復号キーが暗号化された状態で含まれたライセンス情報を取得するライセンス取得手段と、
前記ソフトウェア復号キーを前記着脱キー固有暗号キーで復号するソフトウェアキー復号手段と、
前記ハードウェアキー接続手段に接続された前記ハードウェアキーに含まれる前記許可対象識別情報と前記記録媒体に記録された装置識別情報との同一性を判定する識別情報判定手段と、
前記識別情報判定手段により、同一であると判定された場合には、前記ソフトウェアキー復号手段で復号された前記ソフトウェア復号キーで、暗号化された状態の前記ソフトウェアを復号するソフトウェア復号手段と、
を有することを特徴とする処理装置。
【請求項６】
ライセンスによって実行が制限されたソフトウェアの実行状況を管理するソフトウェア実行管理装置において、
装置識別情報が固定的に記録された記録媒体と、
動作許可対象装置を特定する許可対象装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報が格納されたハードウェアキーが装着されたとき、前記ハードウェアキーから前記着脱キー情報を読み取るハードウェアキー接続手段と、
暗号化された状態の前記ソフトウェアを復号するための暗号化されたソフトウェア復号キーと同時実行可能なコンピュータ数とが含まれたライセンス情報が入力されると、前記ソフトウェア復号キーを前記着脱キー固有暗号キーで復号するソフトウェアキー復号手段と、
ネットワークを介して接続されたコンピュータのうち前記ソフトウェアを実行している実行コンピュータ数を監視し、前記同時実行可能なコンピュータ数以下の数の前記コンピュータに対して、前記ソフトウェアキー復号手段で復号された前記ソフトウェア復号キーを渡す復号キー管理手段と、
を有することを特徴とするソフトウェア実行管理装置。
【請求項７】
ソフトウェアの実行ライセンスを発行するためのライセンス発行方法において、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報を暗号キーとして前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、
ことを特徴とするライセンス発行方法。
【請求項８】
ソフトウェアの実行ライセンスを発行するためのライセンス発行方法において、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、
ことを特徴とするライセンス発行方法。
【請求項９】
ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムにおいて、
コンピュータに、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報を暗号キーとして前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、
処理を実行させることを特徴とするライセンス発行プログラム。
【請求項１０】
ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムにおいて、
コンピュータに、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、
処理を実行させることを特徴とするライセンス発行プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はソフトウェアの実行内容をライセンスで制限するためのライセンス発行サーバ、処理装置、ソフトウェア実行管理装置、ライセンス発行方法、ライセンス発行プログラムに関し、特に不正なライセンス取得を防止したライセンス発行サーバ、処理装置、ソフトウェア実行管理装置、ライセンス発行方法、ライセンス発行プログラムに関する。
【０００２】
【従来の技術】
一般にソフトウェアを販売するとき、購入者に対して、そのソフトウェアを使用するためのライセンスを与える。ライセンスの内容としては、コンピュータの同時使用台数の制限、使用期間の制限、マルチユーザシステムにおける同時使用ユーザ数の制限などである。
【０００３】
ところが、近年、ライセンスの内容を超えたソフトウェアの不正使用が社会問題となっている。たとえば、市販されている多くのソフトウェアでは、ソフトウェアのライセンス条項において１つのコンピュータでの使用しか認めていない。ところが、そのソフトウェアが不正使用防止機能を備えていないと、そのソフトウェアを多数のコンピュータで使用することが容易にできてしまう。
【０００４】
そこで、ソフトウェアの不正使用を防止するための様々な技術が開発されている。ソフトウェアの不正使用の防止技術として、コンピュータ固有の識別情報を用いたものがある。
【０００５】
たとえば、ライセンスコードおよびマシン識別コードから生成したマシン固有のソフトウェア使用コードによりソフトウェア使用チェックを行うソフトウェア管理方法がある（例えば、特許文献１参照）。なお、特許文献１では、マシン識別コードとして、ソフトウェアが稼働するコンピュータマシンのＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）名、ＯＳ番号、ソフトウェアが導入されたハードディスク番号を含むことが示されている（特許文献１、段落［００３１］）。
【０００６】
【特許文献１】
特開２０００−２０７１９９号公報
【０００７】
【発明が解決しようとする課題】
しかし、特許文献１に記載された発明では、マシン識別コードとして、ＯＳ名やＯＳ番号が使用されていると、ライセンス供与を受けたマシンのＯＳが不正にコピーされた場合、コピーされたＯＳ上でもソフトウェアが起動できてしまう。さらに、ハードディスク番号は、コンピュータ毎にＯＳによって定義される番号である。そのため、マシン識別コードにハードディスク番号が含まれていても、不正コピーしたソフトウェアを元と同じハードディスク番号のハードディスクに導入すれば、そのソフトウェアを起動できてしまう。
【０００８】
このように、特許文献１のソフトウェア管理方法では、マシン識別コードに含まれる情報の複写が容易であることにより、ライセンスでの制限を超えたソフトウェアの不正使用が容易であった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、マシン毎のライセンス供与に関する強固な不正防止機能を実現したライセンス発行サーバ、処理装置、ソフトウェア実行管理装置、ライセンス発行方法、ライセンス発行プログラムを提供することを目的とする。
【００１０】
【課題を解決するための手段】
本発明の第１の態様では上記課題を解決するために、図１に示すようなライセンス発行サーバが提供される。第１の態様に係るライセンス発行サーバは、ソフトウェアの実行ライセンスを発行するものであり、以下の機能を有している。
【００１１】
ソフトウェア暗号キー生成手段１は、ソフトウェア６ａの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キー５ａと、ソフトウェア暗号キー５ａで暗号化されたソフトウェア６ｂを復号するためのソフトウェア復号キー５ｂとを生成する。ライセンス発行手段２は、ソフトウェア６ａの動作許可対象である処理装置４内の記録媒体４ａに固定的に記録された装置識別情報４ｂを含むライセンス発行要求に応じて、装置識別情報４ｂでソフトウェア復号キー５ｂを暗号化し、暗号化されたソフトウェア復号キーを含むソフトウェアライセンス５ｃを出力する。
【００１２】
このようなライセンス発行サーバによれば、ソフトウェア復号キー５ｂを装置識別情報４ｂで暗号化しているため、その装置識別情報４ｂが固定的に記録された処理装置４でのみ暗号化されたソフトウェアを復号することが可能となる。
【００１３】
本発明の第２の態様では上記課題を解決するために、ライセンスによって実行が制限されたソフトウェアを実行する処理装置において、装置識別情報が固定的に記録された記録媒体と、暗号化された状態のソフトウェア復号キーを受け取ると、前記記録媒体に記録された前記装置識別情報を復号キーとして前記ソフトウェア復号キーを復号する復号キー復号手段と、前記ソフトウェア提供サーバから暗号化された状態の前記ソフトウェアを受け取ると、前記復号キー復号手段で復号された前記ソフトウェア復号キーを復号キーとして前記ソフトウェアを復号するソフトウェア復号手段と、を有することを特徴とする処理装置が提供される。
【００１４】
このような処理装置によれば、記録媒体に固定的に記録された装置識別情報で暗号化されたソフトウェア復号キーを取得した場合に限り、そのソフトウェア復号キーを復号することができる。
【００１５】
本発明の第３の態様では上記課題を解決するために、図７に示すようなライセンス発行サーバが提供される。第３の態様に係るライセンス発行サーバは、ソフトウェアの実行ライセンスを発行するものであり、以下の機能を有している。
【００１６】
着脱キー情報発行手段９１は、ソフトウェア９９ａの動作許可対象である処理装置９４内の記録媒体９４ａに固定的に記録された装置識別情報９１ｂを含む着脱キー情報生成要求に応答して、装置識別情報９１ｂと着脱キー固有暗号キー９１ｃとを含む着脱キー情報９１ａを生成し、生成した着脱キー情報９１ａを、処理装置９４に着脱可能なハードウェアキー９６に記録する。ライセンス発行手段９２は、ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供されるソフトウェア９９ａを復号するためのソフトウェア復号キー９８ａを着脱キー固有暗号キー９１ｃで暗号化して、暗号化されたソフトウェア復号キー９８ｃを含むライセンス情報９８ｂを出力する。
【００１７】
このようなライセンス発行サーバによれば、正しいハードウェアキー９６が装着された処理装置９４に限りライセンス情報を復号し、暗号化された状態のソフトウェア９９ｂを復号することができる。しかも、装置識別情報がハードウェアキー９６に格納されていることにより、装置識別情報が合致する処理装置でのみソフトウェア９９ｂを復号できるようにすることも可能である。
【００１８】
また、本発明の第４の態様では、ライセンスによって実行が制限されたソフトウェアを実行する処理装置において、装置識別情報が固定的に記録された記録媒体と、動作許可対象装置を特定する許可対象装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報が格納されたハードウェアキーが装着されたとき、前記ハードウェアキーから前記着脱キー情報を読み取るハードウェアキー接続手段と、暗号化された状態の前記ソフトウェアを提供するソフトウェア提供サーバから、前記ソフトウェアを復号するためのソフトウェア復号キーが暗号化された状態で含まれたライセンス情報を取得するライセンス取得手段と、前記ソフトウェア復号キーを前記着脱キー固有暗号キーで復号するソフトウェアキー復号手段と、前記ハードウェアキー接続手段に接続された前記ハードウェアキーに含まれる前記許可対象識別情報と前記記録媒体に記録された装置識別情報との同一性を判定する識別情報判定手段と、前記識別情報判定手段により、同一であると判定された場合には、前記ソフトウェアキー復号手段で復号された前記ソフトウェア復号キーで、暗号化された状態の前記ソフトウェアを復号するソフトウェア復号手段と、を有することを特徴とする処理装置が提供される。
【００１９】
このような処理装置によれば、取得したライセンス情報のソフトウェア復号キーを暗号化したときの着脱キー固有暗号キーが格納されたハードウェアキーが装着され、且つ、そのハードウェアキーに格納された装置識別情報と記録媒体に記録された装置識別情報とが同一の場合にのみ、ソフトウェアが復号される。
【００２０】
本発明の第５の態様では、ライセンスによって実行が制限されたソフトウェアの実行状況を管理するソフトウェア実行管理装置において、装置識別情報が固定的に記録された記録媒体と、動作許可対象装置を特定する許可対象装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報が格納されたハードウェアキーが装着されたとき、前記ハードウェアキーから前記着脱キー情報を読み取るハードウェアキー接続手段と、前記ソフトウェアを提供するソフトウェア提供サーバから、前記ソフトウェアを復号するための暗号化された状態のソフトウェア復号キーと、同時実行可能なコンピュータ数とが含まれたライセンス情報を取得するライセンス取得手段と、前記ソフトウェア復号キーを前記着脱キー固有暗号キーで復号するソフトウェアキー復号手段と、ネットワークを介して接続されたコンピュータのうち前記ソフトウェアを実行している実行コンピュータ数を監視し、前記同時実行可能なコンピュータ数以下の数の前記コンピュータに対して、前記ソフトウェアキー復号手段で復号された前記ソフトウェア復号キーを渡す復号キー管理手段と、を有することを特徴とするソフトウェア実行管理装置が提供される。
【００２１】
本発明の第６の態様では、ソフトウェアの実行ライセンスを発行するためのライセンス発行方法において、前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化される前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報を暗号キーとして前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、ことを特徴とするライセンス発行方法が提供される。
【００２２】
本発明の第７の態様では、ソフトウェアの実行ライセンスを発行するためのライセンス発行方法において、前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、ことを特徴とするライセンス発行方法が提供される。
【００２３】
本発明の第８の態様では、ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムにおいて、コンピュータに、前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化される前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報を暗号キーとして前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、処理を実行させることを特徴とするライセンス発行プログラムが提供される。
【００２４】
本発明の第９の態様では、ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムにおいて、コンピュータに、前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、処理を実行させることを特徴とするライセンス発行プログラムが提供される。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
［第１の実施の形態］
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２６】
図１は、第１の実施の形態に適用される発明の概念図である。第１の実施の形態は、ハードウェア固有の装置識別情報４ｂを用いて、ソフトウェア６ａのライセンス管理を行うものである。そのために、以下の機能が提供される。
【００２７】
ソフトウェア暗号キー生成手段１は、ソフトウェア６ａの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キー５ａと、ソフトウェア暗号キー５ａで暗号化されたソフトウェア６ｂを復号するためのソフトウェア復号キー５ｂとを生成する。
【００２８】
ライセンス発行手段２は、ソフトウェア６ａの動作許可対象である処理装置４内の記録媒体４ａに固定的に記録された装置識別情報４ｂを含むライセンス発行要求に応じて、装置識別情報４ｂでソフトウェア復号キー５ｂを暗号化し、暗号化されたソフトウェア復号キーを含むソフトウェアライセンス５ｃを出力する。出力されたソフトウェアライセンス５ｃは、処理装置４に渡される。
【００２９】
ソフトウェア暗号化手段３は、ソフトウェア暗号キー５ａを用いて、ソフトウェア６ａを暗号化する。暗号化されたソフトウェア６ｂは、処理装置４に渡される。
【００３０】
処理装置４には、記録媒体４ａ、復号キー復号手段４ｃ、およびソフトウェア復号手段４ｄが設けられている。記録媒体４ａは、装置識別情報４ｂが固定的に記録されている。復号キー復号手段４ｃは、暗号化された状態のソフトウェア復号キーを含むソフトウェアライセンス５ｃを受け取ると、記録媒体４ａに記録された装置識別情報４ｂを復号キーとしてソフトウェア復号キー５ｄを復号する。ソフトウェア復号手段４ｄは、ソフトウェア提供サーバから暗号化された状態のソフトウェア６ｂを受け取ると、復号キー復号手段４ｃで復号されたソフトウェア復号キー５ｄを復号キーとしてソフトウェア６ｂを復号する。これにより、暗号化されているソフトウェア６ｃが再現される。
【００３１】
このようなライセンス発行サーバによれば、ソフトウェア復号キー５ｂを装置識別情報４ｂで暗号化しているため、その装置識別情報４ｂが固定的に記録された処理装置４でのみ暗号化されたソフトウェア６ｂを復号することが可能となる。しかも、装置識別情報４ｂは、処理装置４の記録媒体４ａ（たとえば所定のアドレス空間が割り当てられた読み取り専用の半導体メモリ）に固定的に記録されているため、ソフトウェア的な操作で複製の作成や改竄等を行うのは困難である。その結果、ソフトウェア６ａの不正使用が防止できる。
【００３２】
以下、第１の実施の形態に係るシステムを詳細に説明する。
図２は、第１の実施の形態のシステム構成例を示す図である。第１の実施の形態では、ソフトウェアの開発や販売を行うソフトウェア提供者２１、ソフトウェアのライセンス発行を代行するライセンス発行局２２、および販売されたソフトウェアを利用する利用者２３との間で、ソフトウェアの取引に関する手続きが行われる。
【００３３】
ソフトウェア提供者２１は、ソフトウェア提供サーバ１００を所持している。ソフトウェア提供サーバ１００は、ネットワーク等を介してソフトウェアを配付するためのコンピュータである。
【００３４】
ライセンス発行局２２は、ライセンス発行サーバ２００を所持している。ライセンス発行サーバ２００は、ソフトウェア提供サーバ１００とネットワークを介して接続されている。ライセンス発行サーバ２００は、ソフトウェア提供サーバ１００からの要求に応じて、利用者に引き渡すソフトウェアの暗号キーの生成や、利用者毎のソフトウェアライセンスキーの発行を行う。詳細には、ライセンス発行サーバ２００は、ソフトウェア提供サーバ１００からの暗号キー要求に応じてソフトウェアの暗号キーを生成し、利用者毎のソフトウェア要求に応じてソフトウェアライセンスキーを生成する。
【００３５】
生成されたソフトウェアライセンスキーと暗号キーとは、ネットワークあるいは可搬型の記録媒体（メモリカードなど）などの情報伝達媒体を介して、ソフトウェア提供サーバ１００に渡される。
【００３６】
利用者２３は、処理装置３００を所持している。処理装置３００は、ネットワークを介してソフトウェア提供サーバ１００に接続されている。処理装置３００は、利用者２３からの操作入力に応じて、ソフトウェア要求をソフトウェア提供サーバ１００に送信する。ソフトウェア提供サーバ１００から暗号化されたソフトウェアと暗号化されたソフトウェアライセンスキーとを受け取ると、処理装置３００は、ソフトウェアライセンスキーで許可されている範囲内でソフトウェアを実行する。
【００３７】
図３は、本発明の実施の形態に用いるソフトウェア提供サーバのハードウェア構成例を示す図である。ソフトウェア提供サーバ１００は、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）１０２、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００３８】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００３９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００４０】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００４１】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、図３には、ソフトウェア提供サーバ１００のハードウェア構成例を示したが、ライセンス発行サーバ２００や処理装置３００も同様のハードウェア構成で実現することが出来る。
【００４２】
次に、第１の実施の形態における各装置の処理機能について説明する。
図４は、第１の実施の形態に係るソフトウェアライセンス管理システムの機能ブロック図である。図４には、ソフトウェア提供サーバ１００、ライセンス発行サーバ２００、および処理装置３００それぞれが有する処理機能で示されている。
【００４３】
また、図４において、暗号化された情報をａ［ｂ］の形式で表現する。このとき、ａは、暗号化に用いたキー（暗号鍵）である。ｂは、暗号化されたデータである。
【００４４】
ソフトウェア提供サーバ１００は、暗号キー要求部１１０、ソフトウェア暗号化部１２０、ソフトウェア要求受付部１３０、ソフトウェア提供部１４０、およびソフトウェアライセンス提供部１５０を有している。
【００４５】
暗号キー要求部１１０は、ソフトウェア提供者２１からのソフトウェア（ｓ１）３１の暗号化を指示する操作入力に応答して、ソフトウェア暗号キー生成要求をライセンス発行サーバ２００に対して出力する。なお、ネットワークを介さずに、郵送等によりソフトウェア暗号キー生成依頼をライセンス発行局２２に渡してもよい。その場合、ライセンス発行局２２のオペレータが、ソフトウェア暗号キー生成要求をライセンス発行サーバ２００に操作入力する。また、ソフトウェア暗号キー生成要求の内容を可搬型の記録媒体に格納し、その記録媒体をライセンス発行局２２に郵送してもよい。この場合、ライセンス発行局２２のオペレータが、その記録媒体をライセンス発行サーバ２００に挿入し、ソフトウェア暗号キー生成要求をライセンス発行サーバ２００に入力する。
【００４６】
ソフトウェア暗号化部１２０は、ソフトウェア暗号キー生成要求に応じてライセンス発行サーバ２００から返されたソフトウェア暗号キー（公開−ｋｅｙ１）４１を受け取る。このソフトウェア暗号キー（公開−ｋｅｙ１）４１は、公開鍵である。そして、ソフトウェア暗号化部１２０は、受け取ったソフトウェア暗号キー（公開−ｋｅｙ１）４１を用いて、ソフトウェア３１を暗号化する。これにより、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２が生成される。暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２は、ソフトウェア提供サーバ１００内のＨＤＤ１０３等に格納される。
【００４７】
ソフトウェア要求受付部１３０は、処理装置３００からのソフトウェア要求を受け取る。ソフトウェア要求を受け取ったソフトウェア要求受付部１３０は、まず、利用者２３が正当にソフトウェア３１の購入手続きを行っていることを確認する。たとえば、ソフトウェア３１の購入者に通知しているパスワード等の入力によるユーザ認証を行う。
【００４８】
正当な購入者であることを確認したら、ソフトウェア要求受付部１３０は、ソフトウェア提供部１４０に対してソフトウェアの提供を指示する。また、ソフトウェア要求受付部１３０は、ライセンス発行サーバ２００に対して、ソフトウェアライセンスキー要求を出力する。
【００４９】
ソフトウェア提供部１４０は、ソフトウェア要求受付部１３０からソフトウェア提供指示を受け取ると、ソフトウェア提供サーバ１００内に保持されている暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２の複製を配信用の暗号化済ソフトウェア３３とし、処理装置３００に対してネットワークを介して送信する。なお、暗号化済ソフトウェア３３を郵送で利用者２３に渡してもよい。その場合、ソフトウェア提供部１４０は、暗号化済ソフトウェア３３を可搬型記録媒体（たとえば、メモリカード）に格納する。そして、ソフトウェア提供者２１のオペレータが、暗号化済ソフトウェア３３が格納された可搬型記録媒体を利用者２３に送付する。
【００５０】
ソフトウェアライセンス提供部１５０は、ソフトウェアライセンスキー要求に応じてライセンス発行サーバ２００から返されたソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を受け取る。そして、ソフトウェアライセンス提供部１５０は、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を処理装置３００へネットワークを介して送信する。なお、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を郵送等によって利用者２３に渡してもよい。その場合、ソフトウェアライセンス提供部１５０は、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を可搬型記録媒体に格納する。
【００５１】
ライセンス発行サーバ２００は、ソフトウェア暗号キー生成部２１０とソフトウェアライセンスキー生成部２２０とを有している。
ソフトウェア暗号キー生成部２１０は、ソフトウェア提供サーバ１００の暗号キー要求部１１０から出されたソフトウェア暗号キー生成要求を受け取る。そして、ソフトウェア暗号キー生成部２１０は、ソフトウェア暗号キー生成要求に応答して、ソフトウェア暗号キー（公開−ｋｅｙ１）４１とソフトウェア復号キー（秘密−ｋｅｙ１）４２とを生成する。ソフトウェア暗号キー（公開−ｋｅｙ１）４１を暗号キーとして暗号化したデータは、ソフトウェア復号キー（秘密−ｋｅｙ１）４２を復号キーとして復号した場合にのみ、元通りに復元することが出来る。なお、ソフトウェア暗号キー（公開−ｋｅｙ１）４１は公開鍵であるが、ソフトウェア復号キー（秘密−ｋｅｙ１）４２は秘密鍵である。
【００５２】
ソフトウェア暗号キー生成部２１０は、ソフトウェア暗号キー（公開−ｋｅｙ１）４１をソフトウェア提供サーバ１００にネットワークを介して送信する。なお、ソフトウェア暗号キー（公開−ｋｅｙ１）４１を可搬型記録媒体に格納し、郵送等によりソフトウェア提供者２１に渡すことも出来る。また、ソフトウェア暗号キー生成部２１０は、ソフトウェア復号キー（秘密−ｋｅｙ１）４２をライセンス発行サーバ２００内のＨＤＤ等に格納する。
【００５３】
ソフトウェアライセンスキー生成部２２０は、ソフトウェア提供サーバ１００のソフトウェア要求受付部１３０から送られるソフトウェアライセンスキー要求を受け取る。すると、ソフトウェアライセンスキー生成部２２０は、ソフトウェアライセンスキー要求から装置識別情報（ｉｄ１）４３を取り出す。そして、ソフトウェアライセンスキー生成部２２０は、ソフトウェアライセンスキー要求に応答して、ソフトウェア復号キー（秘密−ｋｅｙ１）４２を装置識別情報（ｉｄ１）４３で暗号化し、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を生成する。さらに、ソフトウェアライセンスキー生成部２２０は、生成したソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４をソフトウェア提供サーバ１００にネットワークを介して送信する。なお、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を可搬型記録媒体に格納し、郵送等によりソフトウェア提供者２１に渡してもよい。
【００５４】
処理装置３００は、識別情報記憶部３１０、ソフトウェア要求部３２０、ソフトウェアライセンスキー復号部３３０、ソフトウェア復号部３４０およびソフトウェア実行部３５０を有している。
【００５５】
識別情報記憶部３１０は、処理装置３００に内蔵された記録媒体（たとえば、ＲＯＭ等の半導体メモリ）であり、処理装置３００を一意に識別可能な装置識別情報４３が予め記録されている。この装置識別情報４３は、処理装置の製造メーカにおいて書き込まれ、利用者２３がその内容を変更することはできない。
【００５６】
ソフトウェア要求部３２０は、利用者からの操作入力等に基づいて、ソフトウェア要求をソフトウェア提供サーバ１００にネットワークを介して送信する。なお、ソフトウェア要求部３２０は、ソフトウェア要求を送信する際には、識別情報記憶部３１０から装置識別情報４３を取得し、その装置識別情報４３をソフトウェア要求に含める。また、ソフトウェア要求を郵送等によりソフトウェア提供者２１に渡す場合には、ソフトウェア要求部３２０は、装置識別情報４３を含むソフトウェア要求を可搬型記録媒体に格納する。
【００５７】
ソフトウェアライセンスキー復号部３３０は、ソフトウェア提供サーバ１００からネットワークを介して送信されたソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を受け取る。なお、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５が郵送で渡される場合、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５が格納された可搬型記録媒体が、利用者２３によって処理装置３００に挿入される。ソフトウェアライセンスキー復号部３３０は、挿入された可搬型記録媒体からソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を読み出す。
【００５８】
ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を取得したソフトウェアライセンスキー復号部３３０は、識別情報記憶部３１０から装置識別情報（ｉｄ１）を取得する。そして、ソフトウェアライセンスキー復号部３３０は、装置識別情報（ｉｄ１）を用いて、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４５を復号する。これにより、ソフトウェア復号キー（秘密−ｋｅｙ１）４６が復元される。復元されたソフトウェア復号キー（秘密−ｋｅｙ１）４６は、ソフトウェア復号部３４０に渡される。
【００５９】
ソフトウェア復号部３４０は、ソフトウェア提供サーバ１００から送られた暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３３を受け取る。そして、ソフトウェア復号部３４０は、ソフトウェア復号キー（秘密−ｋｅｙ１）４６を用いて、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３３を復号し、ソフトウェア（ｓ１）３４を復元する。
【００６０】
ソフトウェア実行部３５０は、復元されたソフトウェア（ｓ１）３４を実行する。以上のような構成のライセンス管理システムにおいて、以下の様な手順でライセンスが与えられた利用者に対してソフトウェアが提供される。なお、ソフトウェアの提供は、開発されたソフトウェアの暗号化処理と、ソフトウェア提供処理とに分かれる。
【００６１】
図５は、第１の実施の形態におけるソフトウェア暗号化処理を示すシーケンス図である。以下、図５に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］ソフトウェア提供サーバ１００に対して、ソフトウェア提供者２１からソフトウェア（ｓ１）３１の暗号化指示が入力されると、暗号キー要求部１１０からライセンス発行サーバ２００に対して、ソフトウェア暗号キー生成要求が送信される。なお、郵送等によりソフトウェア暗号キー生成依頼を、ソフトウェア発行局２２に渡すこともできる。
【００６２】
［ステップＳ１２］ライセンス発行サーバ２００では、ソフトウェア暗号キー生成要求に応答して、ソフトウェア暗号キー生成部２１０が暗号キーを生成する。具体的には、ソフトウェア暗号キー生成部２１０は、ソフトウェア暗号キー（公開−ｋｅｙ１）４１とソフトウェア復号キー（秘密−ｋｅｙ１）４２とを生成する。
【００６３】
［ステップＳ１３］次に、ソフトウェア暗号キー生成部２１０は、ソフトウェア暗号キー（公開−ｋｅｙ１）４１をソフトウェア提供サーバ１００に対して送信する。なお、郵送等により、ソフトウェア暗号キー（公開−ｋｅｙ１）４１をソフトウェア提供者２１に渡すこともできる。
【００６４】
［ステップＳ１４］さらに、ソフトウェア暗号キー生成部２１０は、ソフトウェア復号キー（秘密−ｋｅｙ１）４２を記憶する。
［ステップＳ１５］ソフトウェア提供サーバ１００では、ソフトウェア暗号化部１２０が、ソフトウェア暗号キー（公開−ｋｅｙ１）４１を用いて、ソフトウェア（ｓ１）３１を暗号化する。これにより、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２が生成される。
【００６５】
［ステップＳ１６］そして、ソフトウェア暗号化部１２０は、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２を記憶する。
このようにして、ソフトウェア提供者が開発したソフトウェア（ｓ１）３１が暗号化され、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２がソフトウェア提供サーバ１００内に格納される。このとき、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２を復号するためのソフトウェア復号キー（秘密−ｋｅｙ１）４２は、ライセンス発行サーバ２００内に格納される。
【００６６】
このような状況下で、利用者２３がソフトウェア提供者２１からのソフトウェア３１の購入申し込みを行う。この購入申し込みは、たとえば、インターネット等を介したオンライン取引で行うことができる。また、電話や店頭における直接取引により、ソフトウェアの購入申し込みを行うこともできる。購入申し込み手続きが完了すると、ソフトウェア引き渡し処理が行われる。
【００６７】
図６は、第１の実施の形態におけるソフトウェア提供処理を示すシーケンス図である。以下、図６に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］利用者２３により処理装置３００に対してソフトウェア（ｓ１）３１の取得を指示する操作入力が行われると、ソフトウェア要求部３２０がソフトウェア提供サーバ１００に対してソフトウェア要求を送信する。このとき、ソフトウェア要求には、識別情報記憶部３１０から取得した装置識別情報（ｉｄ１）が含まれる。また、利用者２３が正当にソフトウェア３１の購入手続きを行った者であることを示す認証情報を、ソフトウェア要求に含めることもできる。
【００６８】
なお、装置識別情報（ｉｄ１）を含むソフトウェア要求が格納された可搬型記録媒体を、郵送あるいは直接の手渡しによりソフトウェア提供者２１に渡すこともできる。
【００６９】
［ステップＳ２２］ソフトウェア提供サーバ１００では、ソフトウェア要求を受け取とると、ソフトウェア要求受付部１３０が、ソフトウェア（ｓ１）３１の購入手続きを正当に行った者からの要求であることを確認する。正当な購入者であることを確認すると、ソフトウェア要求受付部１３０からソフトウェア提供部１４０へソフトウェア提供指示が出される。
【００７０】
［ステップＳ２３］ソフトウェア提供指示を受け取ったソフトウェア提供部１４０は、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２を処理装置３００に送信する。なお、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３２を可搬型記録媒体に格納し、郵送等により利用者２３に渡すこともできる。
【００７１】
［ステップＳ２４］さらにソフトウェア要求受付部１３０は、ライセンス発行サーバ２００に対して、ソフトウェアライセンスキー要求を送信する。ソフトウェアライセンスキー要求には、装置識別情報（ｉｄ１）４３が含まれる。なお、ソフトウェアライセンスキー要求を記録媒体に格納し、郵送等によりライセンス発行局２２に渡すこともできる。
【００７２】
なお、ステップＳ２３とステップＳ２４との処理は、順番が逆でもよい。
［ステップＳ２５］ソフトウェアライセンスキー要求を受け取ったライセンス発行サーバ２００では、ソフトウェアライセンスキー生成部２２０がソフトウェア復号キー（秘密−ｋｅｙ１）４２を、装置識別情報（ｉｄ１）４３を暗号キーとして利用して暗号化する。これにより、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４が生成される。
【００７３】
［ステップＳ２６］ソフトウェアライセンスキー生成部２２０は、生成したソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４をソフトウェア提供サーバ１００に送信する。なお、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を可搬型記録媒体に格納し、郵送等によりソフトウェア提供者２１に渡すこともできる。
【００７４】
［ステップＳ２７］ソフトウェア提供サーバ１００では、ソフトウェアライセンス提供部１５０がライセンス発行サーバ２００から送られたソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を受け取る。そして、ソフトウェアライセンス提供部１５０は、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を処理装置３００に送信する。なお、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を可搬型記録媒体に格納し、郵送等により利用者２３に渡すこともできる。
【００７５】
［ステップＳ２８］処理装置３００では、ソフトウェアライセンスキー復号部３３０が、識別情報記憶部３１０に格納されている装置識別情報（ｉｄ１）４３を復号キーとして用い、ソフトウェアライセンスキー（ｉｄ１［秘密−ｋｅｙ１］）４４を復号する。これにより、ソフトウェア復号キー（秘密−ｋｅｙ１）４６が生成される。生成されたソフトウェア復号キー（秘密−ｋｅｙ１）４６は、ソフトウェア復号部３４０に渡される。
【００７６】
［ステップＳ２９］ソフトウェア復号部３４０は、ソフトウェア復号キー（秘密−ｋｅｙ１）４６を復号キーとして用い、暗号化済ソフトウェア（公開−ｋｅｙ１［ｓ１］）３３を復号する。これにより、平文のソフトウェア（ｓ１）３４が生成される。
【００７７】
［ステップＳ３０］ソフトウェア実行部３５０が、ソフトウェア（ｓ１）３４を実行する。
このようにして、ソフトウェアロック機構提供者（ライセンス発行局２２）からソフトウェア提供者２１にソフトウェア暗号キー４１と、利用者２３からの要求ごとのソフトウェアライセンスキー４４とを発行することで、以下のような効果が得られる。
【００７８】
第１の実施の形態では、ソフトウェア３１を暗号化して提供するとともに、利用者自身が変更できない装置識別情報４３を用いてソフトウェア復号キー４２を暗号化して、処理装置に提供するようにした。そのため、ソフトウェアの不正使用を強固に防止することができる。
【００７９】
すなわち、ソフトウェア３１が暗号化されて提供されるため、ソフトウェア３１の復号処理を行わない限り、ソフトウェア３１を実行することも、その処理内容を解析することも出来ない。従って、提供されるソフトウェア３１を改竄することによる不正使用を防ぐことが出来る。
【００８０】
しかも、復号には、工場出荷時に設定され、利用者による変更ができない装置識別情報４３が必要である。この装置識別情報４３を用いてソフトウェアライセンスキー４５を復号しなければならないため、ソフトウェア３１を他の装置で実行することができない。したがって、ＯＳによって定義されるマシン識別コード等を用いた場合に比べ、不正使用が困難となりソフトウェア３１の保護が強化される。
【００８１】
また、ソフトウェア提供者２１はソフトウェア３１自体を第三者機関であるライセンス発行局に持ち込むことなく（効率、著作権保護）ソフトウェアロック（ソフトウェア保護）が利用できる。これにより、ソフトウェア３１のバージョンアップ等が行われた際にも、予め提供されたソフトウェア暗号キー４１で暗号化すればよく、ライセンスの再発行等の手続きは不要となる。したがって、ソフトウェア提供者２１に係るソフトウェア保護のための作業負担を軽減することが出来る。
【００８２】
さらに、ソフトウェアロック機構提供者（ライセンス発行局２２）によってソフトウェア復号キー４２が管理されているため、ライセンス発行サーバ２００に対してセキュリティの高い運用を行えば、ソフトウェア復号キー４２の第三者による不正入手を防止できる。たとえば、ライセンス発行サーバ２００に関しては、システム運用状況を監視し、不正なアクセスに対しては、セキュリティ専門の技術者が迅速に対応できるようにする。これにより、ソフトウェア提供サーバ１００において必要以上にセキュリティの高い運用を行わずにすみ、ソフトウェア提供者２１の負担が軽減される。
【００８３】
なお、ソフトウェア提供サーバ１００におけるソフトウェア３１は、暗号化をするときにのみソフトウェア提供サーバ１００からアクセス可能な状態とし、暗号化後はソフトウェア提供サーバ１００からアクセスできないようにする。これにより、ソフトウェア提供サーバ１００の運用中に不正にアクセスしても、暗号化前のソフトウェア３１を取得することはできない。
【００８４】
ここで、ソフトウェアロック機構提供者（ライセンス発行局２２）は、ソフトウェア復号キー４２の秘密保持サービス提供の対価を、ソフトウェア提供者２１から徴収しても良い。その場合、たとえば、ソフトウェア提供者２１がソフトウェアロック（ソフトウェア保護）を利用するごと（ソフトウェアライセンスキー４４の提供を受ける毎）に対価を得ることができる。
【００８５】
また、ソフトウェア暗号キー生成部２１０で、ソフトウェアごとに公開キーと秘密キーのペアを生成し、公開キーをソフトウェア開発者に送付、ソフトウェアライセンスキーとして秘密キーを利用するため、ソフトウェア提供者２１によるライセンスの無断発行ができない。これは、ソフトウェア提供者２１によるソフトウェア３１の販売数量を、第三者機関によって客観的に把握できるという利点がある。
【００８６】
たとえば、開発されたソフトウェア３１の一部の機能に、他の特許技術（動画圧縮技術など）が使用されている場合がある。この場合、他の特許技術の特許権者から特許技術の実施許諾を受けることで、ソフトウェア３１を販売することが出来る。ここで、ソフトウェア３１の販売数量に応じた実施料を支払う契約の場合、販売数量を正しく算定しなければならない。そこで、第１の実施の形態に示すように、第三者機関であるライセンス発行局２２によってライセンス発行数を管理していれば、実際の販売数量の算定が正しく行われる。その結果、実施許諾者（ライセンサー）と実施権者（ライセンシー）との間で、実施権料の支払額に関して疑義が生じることがなくなる。
【００８７】
さらに、ソフトウェアベンダ（ソフトウェア提供者２１）は、ソフトウェア保護のためにソフトウェアを暗号化しておくのみでよい。すなわち、アプリケーションソフトウェア保護のためのソフトウェアロジックをプログラム中に追加しなくてもよい。その結果、ソフトウェアの開発効率が向上する。
【００８８】
次に、第１の実施の形態に係るライセンス管理システムの応用例について説明する。
ソフトウェア要求部３２０からの出力されるソフトウェア要求に、ソフトウェア利用条件（ソフトウェア実行数や実行範囲の情報）を示す情報を含めることで、ソフトウェアライセンスキー４４内にソフトウェア利用条件を設定することができる。
【００８９】
この場合、ソフトウェア要求受付部１３０は、ソフトウェア要求に含まれるソフトウェア利用条件に応じた料金支払い手続きが完了していることを確認後、ライセンス発行サーバ２００に対して、ソフトウェア利用条件を含むソフトウェアライセンスキー要求をネットワーク経由で送信する。なお、ソフトウェアライセンスキー要求を可搬型記録媒体に格納し、郵送等でライセンス発行局２２に渡すこともできる。
【００９０】
ライセンス発行サーバ２００内のソフトウェアライセンスキー生成部２２０は、ソフトウェア利用条件とソフトウェア復号キー４２とを合わせて暗号化し、ソフトウェアライセンスキー４４を生成する。
【００９１】
このようなソフトウェアライセンスキー４４が処理装置３００のソフトウェアライセンスキー復号部３３０で復号されると、ソフトウェア復号キー４６と共に、ソフトウェア利用条件が復元される。ソフトウェア実行部３５０は、ソフトウェア使用条件を参照し、ソフトウェア利用条件で許可された機能しか実行しない。
【００９２】
このように、ソフトウェア利用条件の情報も含めてソフトウェアライセンスキー４４を生成することで、ソフトウェア実行時に、許諾したソフトウェア利用条件（ソフトウェア価格）の範囲に動作を制約することもできる。
【００９３】
ソフトウェア暗号化部１２０において、ソフトウェア３１の一部のみを暗号化することもできる。たとえば、ソフトウェア提供者２１がソフトウェア構成部分の暗号化範囲（保護したい重要なファイル等）を選択すると、ソフトウェア暗号化部１２０は選択された範囲のみを暗号化すると共に、選択した範囲の情報（ファイル一覧等）を暗号化済ソフトウェア３２に含める。ソフトウェア復号部３４０は、選択された範囲を復号する。このようにして、ソフトウェア３１の一部のみを暗号化して提供することで、ソフトウェア復号処理の時間を短縮することができる。
【００９４】
なお、上記の例では、ライセンス発行サーバ２００とソフトウェア提供サーバ１００との機能を分けているが、１つのサーバ（たとえば、ソフトウェア提供サーバ）でソフトウェアの提供とライセンスの発行とを行ってもよい。
【００９５】
［第２の実施の形態］
次に、第２の実施の形態について説明する。第２の実施の形態は、処理装置の識別情報を高い耐タンパ性（物理的な攻撃に対する耐性）を有したハードウェア（以下、ハードウェアキーと呼ぶ）に格納して、ユーザに提供するものである。ユーザは、ハードウェアキーに格納された識別情報と合致する装置識別情報を有する装置でなければ、ソフトウェアを実行することが出来ない。
【００９６】
図７は、第２の実施の形態に適用される発明の概念図である。ライセンス管理システムは、着脱キー情報発行手段９１、ライセンス発行手段９２、ソフトウェア暗号化手段９３、および処理装置９４で構成される。
【００９７】
着脱キー情報発行手段９１は、着脱キー情報生成要求に応答して、装置識別情報９１ｂと着脱キー固有暗号キー９１ｃとを含む着脱キー情報９１ａを生成する。なお、着脱キー情報生成要求には、ソフトウェア９９ａの動作許可対象である処理装置９４内の記録媒体９４ａに固定的に記録された装置識別情報９１ｂが含まれる。着脱キー情報発行手段９１は、生成した着脱キー情報９１ａを、処理装置９４に着脱可能なハードウェアキー９６に記録する。ハードウェアキー９６は、処理装置９４の利用者に渡される。
【００９８】
ライセンス発行手段９２は、ソフトウェアのライセンス発行要求に応じて、ソフトウェア復号キー９８ａを着脱キー固有暗号キー９１ｃで暗号化して、暗号化されたソフトウェア復号キー９８ｃを含むライセンス情報９８ｂを出力する。なお、ソフトウェア復号キー９８ａは、暗号化されたソフトウェア９９ｂを復号するためのキー情報である。出力されたライセンス情報９８ｂは、処理装置９４に渡される。
【００９９】
ソフトウェア暗号化手段９３は、ソフトウェア暗号キー９８を用いて、ソフトウェア９９ａを暗号化する。そして、暗号化されたソフトウェア９９ｂを処理装置９４に渡す。
【０１００】
処理装置９４は、記録媒体９４ａ、ライセンス情報復号手段９４ｂ、識別情報判定手段９４ｃ、ソフトウェア復号手段９４ｄ、およびハードウェアキー接続手段９４ｅを有している。
【０１０１】
記録媒体９４ａは、装置識別情報９１ｂが固定的に記録されている。ハードウェアキー接続手段９４ｅは、ハードウェアキー９６が装着されたとき、ハードウェアキー９６から着脱キー情報９１ａを読み取る。ライセンス情報復号手段９４ｂは、ソフトウェア９９ａを復号するためのソフトウェア復号キー９８ｃが暗号化された状態で含まれたライセンス情報９８ｂが入力されると、ソフトウェア復号キー９８ｃを着脱キー固有暗号キー９１ｃで復号する。識別情報判定手段９４ｃは、装着されたハードウェアキー９６に含まれる装置識別情報９１ｂと前記記録媒体９４ａに記録された装置識別情報との同一性を判定する。ソフトウェア復号手段９４ｄは、識別情報判定手段９４ｃにより、装置識別情報が同一であると判定された場合には、ソフトウェアキー復号手段９４ｂで復号されたソフトウェア復号キー９８ａで、暗号化された状態のソフトウェア９９ｂを復号し、暗号化されていないソフトウェア９９ｃを生成する。
【０１０２】
このようなライセンス管理システムによれば、正しいハードウェアキー９６が装着された処理装置９４に限りライセンス情報９８ｂを復号し、暗号化された状態のソフトウェア９９ｂを復号することができる。しかも、装置識別情報９１ｂがハードウェアキー９６に格納されていることにより、装置識別情報が合致する処理装置でのみソフトウェア９９ｂを復号できる。
【０１０３】
ところで、ソフトウェアの利用者には企業も含まれる。企業内のコンピュータシステムを動作させるには、多種多様のソフトウェアが利用される。たとえば、社内のイントラネットを構築する場合、ファイアウォール、ＤＮＳ（Ｄｏｍａｉｎ　ＮａｍｅＳｙｓｔｅｍ）サーバ、ＷＷＷ（Ｗｏｒｌｄ　Ｗｉｄｅ　Ｗｅｂ）サーバ、ＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）フィルタリングなどの様々な機能を実現するためのソフトウェアを、サーバコンピュータに実装する必要がある。しかも、企業内のネットワークは常時稼働させておく必要がある。そのため、各機能を複数のコンピュータに実装して、一部のコンピュータに障害が発生しても、他のコンピュータによってリカバリできるようなシステム構成となっている。
【０１０４】
このようなシステム構成を採った場合、各コンピュータに必要なソフトウェアを実装すると共に、そのソフトウェアを利用するためのライセンスを取得する必要がある。このようなライセンス管理を、多数のコンピュータ全てに関して個別に行うのでは、システム管理者にかかる負担が過大となってしまう。
【０１０５】
そこで、第２の実施の形態では、ネットワークで接続された複数のコンピュータそれぞれで実行されるソフトウェアを一元管理することができるライセンス管理システムを提供する。
【０１０６】
また、第２の実施の形態では、１つの筐体内に任意の数のコンピュータ機能（プロセッサカートリッジ）を実装できる処理装置の例を用いて説明する。このとき、処理装置の識別情報は筐体に設定される。そこで、第２の実施の形態の説明においては、装置識別情報を筐体ＩＤと呼ぶこととする。
【０１０７】
図８は、第２の実施の形態に係るライセンス管理システムの概念図である。図８に示すように、第２の実施の形態のシステムの運用には、処理装置提供者２４、ライセンス発行局２５、ソフトウェア提供者２６、及び利用者２７が関わっている。
【０１０８】
処理装置提供者２４は、処理装置７００を利用者２７に販売する。処理装置７００は、筐体、およびその筐体に実装可能なプロセッサモジュールで構成される。処理装置７００の購入者には、ソフトウェアを実行するために必要なハードウェアキー５０が渡される。ハードウェアキー５０は、高い耐タンパ性を有する記憶装置である。たとえば、ハードウェアキーとして、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）バスに接続可能なフラッシュメモリを利用することができる。
【０１０９】
ライセンス発行局２５は、着脱キー情報をハードウェアキー５０に格納して、処理装置提供者２４に提供する。また、ライセンス発行局２５は、ソフトウェアを暗号化する際の暗号キー（アプリケーション暗号キー）や、ソフトウェアのライセンス情報をソフトウェア提供者２６に提供する。
【０１１０】
ソフトウェア提供者２６は、アプリケーションソフトウェア（以下、単にアプリケーションという）を開発し、利用者に販売する。アプリケーションは、ＯＳ等の基本機能を実現するソフトウェアと共にメモリカード６０に記録され、利用者２７に渡される。なお、ソフトウェア提供者２６は、アプリケーションをメモリカード６０に記録する場合、ライセンス発行局２５から受け取った暗号キーで暗号化したアプリケーションを記録する。
【０１１１】
利用者２７は、処理装置提供者２４から処理装置７００を購入する。また、利用者２７は、ソフトウェア提供者２６からメモリカード６０を購入する。そして、利用者２７は、ハードウェアキー５０を処理装置７００に接続すると共に、メモリカード６０を処理装置７００内のプロセッサモジュールに差し込こむ。これにより、処理装置７００がメモリカード６０に記録されているＯＳやアプリケーションを実行することが出来る。
【０１１２】
図９は、第２の実施の形態におけるライセンス管理機構の概念図である。まず、処理装置提供者２４から利用者２７へ、処理装置７００，８００が販売される（ステップＳ４１）。このとき、ライセンス発行局２５において、処理装置７００の筐体ＩＤを含む着脱キー情報が生成される（Ｓ４２）。生成された着脱キー情報は、ライセンス発行局２５でハードウェアキー５０に記録され、処理装置提供者２４を介して利用者２７に出荷される（ステップＳ４３）。
【０１１３】
また、ライセンス発行局２５では、アプリケーション暗号キーとアプリケーション複合キーとを発行し、アプリケーション暗号キーをソフトウェア提供者２６に渡す（ステップＳ４４）。以下、アプリケーション暗号キーとアプリケーション複合キーとの組を「アプリケーション暗号／復号キー」と表す。ソフトウェア提供者２６は、そのアプリケーション暗号キーを用いて暗号化前のアプリケーションプログラムを暗号化する（ステップＳ４５）。暗号化後のアプリケーションプログラムは、メモリカード６０に格納されて利用者２７に出荷される（ステップＳ４６）。
【０１１４】
さらに、ライセンス発行局２５では、アプリケーション実行ライセンスを発行する（ステップＳ４７）。アプリケーション実行ライセンスは、ソフトウェア提供者２６を介して利用者２７に提供され、ＮＡＳ（Ｎｅｔｗｏｒｋ　Ａｔｔａｃｈｅｄ　Ｓｔｏｒａｇｅ）９００に格納される（ステップＳ４８）。ＮＡＳ９００は、利用者２７の社内ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）に接続されたファイル管理用のストレージデバイスである。なお、アプリケーション実行ライセンスは、処理装置７００からアクセス可能な記録媒体に格納されていればよい。すなわち、ＮＡＳ９００以外のコンピュータのストレージデバイスに格納されていてもよい。
【０１１５】
利用者２７は、処理装置提供者２４から購入した処理装置７００，８００をネットワークに接続し、一方の処理装置７００にハードウェアキー５０を装着する。処理装置７００には、管理用のプロセッサカートリッジ（管理カートリッジ７１０）と、アプリケーション実行用の複数のプロセッサカートリッジ（アプリケーションカートリッジ７２０）とを有している。管理カートリッジ７１０には、ＯＳ７１１、ＤＨＣＰ（Ｄｙｎａｍｉｃ　Ｈｏｓｔ　Ｃｏｎｆｉｇｕｒａｔｉｏｎ　Ｐｒｏｔｏｃｏｌ）サーバ７１２の機能に加え、ライセンス管理マネージャ７１３が実装されている。ライセンス管理マネージャ７１３は、ＮＡＳ９００からソフトウェア実行ライセンスを取得し、そのソフトウェア実行ライセンスを、ハードウェアキー５０に記録されている着脱キーを用いて復号する。そして、ライセンス管理マネージャ７１３は、処理装置７００の筐体に設定されている筐体ＩＤを、ハードウェアキー５０に格納されている筐体ＩＤとの整合性を判断する。筐体ＩＤが一致すれば、ライセンス管理マネージャ７１３は他のアプリケーションカートリッジに対して、ソフトウェア実行ライセンスで指定されているライセンス条件に応じたソフトウェアの実行を許可する。
【０１１６】
アプリケーションカートリッジ７２０には、メモリカード６０が挿入される。アプリケーションカートリッジ７２０は、処理装置７００内で管理カートリッジ７１０に接続されている。アプリケーションカートリッジ７２０は、メモリカード６０に記録されているＯＳやアプリケーション等のプログラムを読み込み、所定の機能を実現する。
【０１１７】
アプリケーションカートリッジ７２０で実現される機能は、ＯＳ７２１、ＤＨＣＰクライアント７２２、ライセンス管理エージェント７２３、およびアプリケーション７２４である。ライセンス管理エージェント７２３は、ライセンス管理マネージャ７１３からアプリケーション実行許可を受けて、アプリケーションカートリッジ７２０においてアプリケーション７２４が実行できるようにする。
【０１１８】
なお、処理装置８００のアプリケーションカートリッジ８１０にメモリカード７０を挿入することで、アプリケーションカートリッジ８１０内にも、アプリケーションカートリッジ７２０と同様の機能を構築することが出来る。この際、アプリケーションカートリッジ８１０は、処理装置８００の筐体に設定されている筐体ＩＤ８０１をライセンス管理マネージャ７１３に渡すことで、アプリケーションの実行許可を受ける。
【０１１９】
このように、ライセンス管理マネージャ７１３によって各アプリケーションカートリッジで実行するソフトウェアのライセンスを管理することで、多数のコンピュータで構成されるシステム全体のライセンスを一括管理することができる。しかも、処理装置７００，８００の筐体ＩＤとハードウェアキー５０に設定されている筐体ＩＤとが一致した場合にのみ、その処理装置での実行を可能とするため、装置固有の情報の不正コピーによるソフトウェアの不正使用を防止できる。
【０１２０】
ところで、処理装置７００，８００には、任意の数のプロセッサカートリッジ（管理カートリッジやアプリケーションカートリッジ）を実装することが出来る。プロセッサカートリッジは、処理装置７００，８００に実装するだけでＬＡＮに接続される。以下、第２の実施の形態に利用される処理装置７００，８００とプロセッサカートリッジのハードウェア構成について説明する。
【０１２１】
図１０は、処理装置のハードウェア構成例を示す図である。処理装置７００には、プロセッサカートリッジを実装するための少なくとも１つのスロット（ｓｌｏｔ＃０〜ｓｌｏｔ＃ｎ）が設けられている。各スロットには、プロセッサカートリッジを接続するためのコネクタ７０２ａ〜７０２ｍが設けられている。図１０の例では、コネクタ７０２ａに管理カートリッジ７１０が接続され、コネクタ７０２ｂとコネクタ７０２ｃとにアプリケーションカートリッジ７２０，７３０が接続されている。
【０１２２】
また、処理装置７００の筐体には、通信インタフェース（Ｉ／Ｆ）７０３、識別情報メモリ７０４、ハブ７０５、電源ユニット７０６等が設けられている。なお、ハブ７０５は、スイッチング機能を有するスイッチングハブであってもよい。また、ハブ７０５と電源ユニット７０６が筐体に内蔵されず、外部に接続されていてもよい。
【０１２３】
通信Ｉ／Ｆ７０３は、ハードウェアキー５０と通信可能な通信インタフェースである。たとえば、ＵＳＢインタフェースを利用することが出来る。
識別情報メモリ７０４は、筐体ＩＤが記録された記録媒体である。たとえば、読み出し専用の半導体メモリが用いられる。識別情報メモリ７０４は、ｓｌｏｔ＃０のスロットに設けられたコネクタ７０２ａに対してのみ接続されている。したがって、ｓｌｏｔ＃０のスロットに接続された管理カートリッジ７１０だけが、識別情報メモリ７０４に記録された筐体ＩＤを直接読み取ることが出来る。なお、識別情報メモリ７０４が他のスロットに接続されていてもよい。
【０１２４】
ハブ７０５は、ＬＡＮ１４に接続されていると共に、各スロットのコネクタ７０２ａ〜７０２ｍに接続されている。これにより、コネクタ７０２ａ〜７０２ｍに接続されたプロセッサカートリッジが、ＬＡＮ１４にも接続される。
【０１２５】
電源ユニット７０６は、処理装置７００の筐体内に設けられた通信Ｉ／Ｆ７０３、識別情報メモリ７０４、ハブ７０５に電源を供給すると共に、各コネクタ７０２ａ〜７０２ｍに対して電源を供給している。これにより、コネクタ７０２ａ〜７０２ｍに接続されたプロセッサカートリッジに対して、電源ユニット７０６から電源が供給される。
【０１２６】
図１１は、プロセッサカートリッジのハートウェア構成例を示す図である。図１１では、代表的に管理カートリッジ７１０の例が示されているが、アプリケーションカートリッジのハードウェア構成も同様である。
【０１２７】
管理カートリッジ７１０では、ＣＰＵ７１０ａ、ＲＡＭ７１０ｂ、ネットワークインタフェース（Ｉ／Ｆ）７１０ｃ、入出力インタフェース（Ｉ／Ｆ）７１０ｄ、およびメモリカードリーダ・ライタ７１０ｅがバス７１０ｆを介して接続されている。また、管理カートリッジ７１０にはコネクタ７１０ｇが設けられている。このコネクタ７１０ｇと処理装置７００の筐体に設けられているコネクタ７０２ａとを接続することで、管理カートリッジ７１０内の回路と処理装置７００の筐体内の回路とが電気的に接続される。
【０１２８】
ＣＰＵ７１０ａは、管理カートリッジ７１０全体を制御する。ＲＡＭ７１０ｂは、ＣＰＵ７１０ａが処理を実行するために必要なプログラムやデータが一時的に格納される。ネットワークＩ／Ｆ７１０ｃは、ハブ７０５を介してＬＡＮ１４に接続された他の装置（たとえば、他のアプリケーションカートリッジ）と通信する。入出力Ｉ／Ｆ７１０ｄは、通信Ｉ／Ｆ７０３や識別情報メモリ７０４に接続され、ハードウェアキー５０や識別情報メモリ７０４内のデータを読み出し、ＣＰＵ７１０ａ等に転送する。
【０１２９】
なお、図９で示した処理装置提供者２４、ライセンス発行局２５、およびソフトウェア提供者２６で行われる処理にもコンピュータが利用される。そのコンピュータのハードウェア構成は、図３に示した第１の実施の形態のコンピュータ１００と同様である。ここで、処理装置提供者２４で使用されるコンピュータを処理装置管理サーバ、ライセンス発行局２５で使用されるコンピュータをライセンス発行サーバ、ソフトウェア提供者２６で使用されるコンピュータをソフトウェア提供サーバと呼ぶこととする。
【０１３０】
図１２は、各サーバコンピュータの処理機能を示すブロック図である。なお、図１２では、各装置に含まれる構成要素のみを示し、接続関係（情報の受け渡しを行う関係）を省略している。接続関係については、各構成要素の機能を説明する際に参照する図に示す。図１２に示すように、処理装置管理サーバ４００とライセンス発行サーバ５００とがネットワークを介して接続されている。また、ライセンス発行サーバ５００とソフトウェア提供サーバ６００とがネットワークを介して接続されている。なお、処理装置管理サーバ４００、ライセンス発行サーバ５００、ソフトウェア提供サーバ６００は、それぞれネットワークで接続されていなくてもよい。その場合、各サーバ間の情報の伝達は、可搬型記録媒体等を介して行うことができる。
【０１３１】
処理装置管理サーバ４００は、処理装置７００，８００の提供元（たとえば、製造工場、出荷倉庫）またはライセンス発行局２５に設置され、処理装置の入出庫を管理するコンピュータである。処理装置管理サーバ４００は、第２の実施の形態に係る機能として、着脱キー要求部４１０を有している。
【０１３２】
着脱キー要求部４１０は、処理装置の筐体に設定されている筐体ＩＤを含む着脱キー要求を、ネットワークを介してライセンス発行サーバ５００に対して送信する。なお、着脱キー要求を可搬型記録媒体に格納し、郵送等によりライセンス発行局２５に渡すこともできる。
【０１３３】
ライセンス発行サーバ５００は、アプリケーションソフトウェアのライセンス管理機能を備えたコンピュータである。ライセンス発行サーバ５００は、着脱キー情報発行部５１０、アプリケーション暗号／復号キー発行部５２０、ライセンス発行部５３０、ライセンス発行費用請求部５４０、着脱キー発行記録データベース５５０、アプリケーション登録記録データベース５６０、ライセンス情報データベース５７０、およびライセンス発行記録データベース５８０を有している。
【０１３４】
着脱キー情報発行部５１０は、処理装置管理サーバ４００からの着脱キー要求に応答して、着脱キー情報を提供する。具体的には、着脱キー情報発行部５１０は、着脱キー要求を受け取ると、着脱キーの識別情報（着脱キーＩＤ）と、着脱キー固有暗号キーとを生成する。そして、着脱キーＩＤ、着脱キー要求に含まれる筐体ＩＤ、および着脱キー固有暗号キーを含む着脱キー情報を生成する。そして、着脱キー情報発行部５１０は、生成した着脱キー情報を処理装置管理サーバ４００に送信する。なお、着脱キー情報を可搬型記録媒体に格納し、郵送等により処理装置提供者２４に渡すこともできる。
【０１３５】
アプリケーション暗号／復号キー発行部５２０は、ソフトウェア提供サーバ６００からのアプリケーション暗号キー要求に応答して、アプリケーション暗号キーと、そのアプリケーション暗号キーで暗号化されたデータを復号するためのアプリケーション復号キーとを発行する。
【０１３６】
具体的には、アプリケーションの識別情報（アプリケーションＩＤ）を生成して、そのアプリケーションＩＤに対応するアプリケーション暗号／復号キーを生成する。生成されたアプリケーション暗号／復号キーは、アプリケーション登録記録データベース５６０に格納される。また、アプリケーション暗号キーは、ソフトウェア提供サーバ６００に渡される。
【０１３７】
ライセンス発行部５３０は、ソフトウェア提供サーバ６００からのライセンス要求に応答して、アプリケーションのライセンスを発行する。具体的には、ライセンス要求を受け取ると、ライセンス発行部５３０は、利用者２７に与えるライセンスの内容を示すアプリケーション実行ライセンスを生成する。次に、ライセンス発行部５３０は、生成したアプリケーション実行ライセンスを暗号化し、ソフトウェア提供サーバ６００に送信する。
【０１３８】
ライセンス発行費用請求部５４０は、ライセンスの発行状況（アプリケーション実行している装置数）を監視して、ソフトウェア提供者２６からの依頼に基づいて発行したライセンスの発行費用を計算する。ライセンス発行局２５では、ライセンス発行費用請求部５４０で算出されたライセンス発行費用に基づいて、ソフトウェア提供者２６に対して費用を請求する。
【０１３９】
着脱キー発行記録データベース５５０には、着脱キー情報発行部５１０によっては発行された着脱キー情報の内容が蓄積されている。
アプリケーション登録記録データベース５６０には、ライセンスの発行サービスの対象となるアプリケーションに関する情報（アプリケーション情報）が登録されている。たとえば、アプリケーション暗号／復号キーもアプリケーション登録記録データベース５６０に格納される。
【０１４０】
ライセンス情報データベース５７０には、利用者２７に対して発行されたライセンス情報が格納されている。
ライセンス発行記録データベース５８０には、発行されたライセンスの履歴が蓄積されている。ライセンス発行記録データベース５８０を参照すれば、どのアプリケーションに対してどれだけのライセンスを発行したかを集計することができる。
【０１４１】
ソフトウェア提供サーバ６００は、暗号キー要求部６１０、アプリケーション暗号化部６２０、提供ソフトウェア書込部６３０、およびソフトウェアライセンス提供部６４０を有している。
【０１４２】
暗号キー要求部６１０は、ソフトウェア提供者２６からの操作入力等に応答して、ライセンス発行サーバ５００に対してアプリケーション暗号キー要求を送信する。たとえば、アプリケーションが完成したときにアプリケーション暗号キー要求が送信される。
【０１４３】
アプリケーション暗号化部６２０は、ライセンス発行サーバ５００から送られたアプリケーション暗号キーを用いて、アプリケーションプログラムを暗号化する。
【０１４４】
提供ソフトウェア書込部６３０は、暗号化されたアプリケーションプログラムと、その他のシステムソフトウェア（ＯＳ、ライセンス管理エージェント等）を纏めて、メモリカード６０に書き込む。
【０１４５】
ソフトウェアライセンス提供部６４０は、利用者２７に渡された処理装置７００からのライセンス要求に応答して、ライセンス発行サーバ５００に対して、アプリケーション実行ライセンス要求を送信する。ソフトウェアライセンス提供部６４０は、ライセンス発行サーバ５００からアプリケーション実行ライセンスを受け取ると、そのアプリケーション実行ライセンスを利用者２７に渡す。たとえば、利用者２７の管理するＮＡＳ９００にネットワークを介して転送する。
【０１４６】
以下、第２の実施の形態で利用される各種情報のデータ構造例について説明する。
図１３は、着脱キーに格納される着脱キー情報のデータ構造例を示す図である。ハードウェアキー５０に格納された着脱キー情報５２には、着脱キーＩＤ５２ａ、筐体ＩＤ５２ｂ、着脱キー固有暗号キー５２ｃが含まれる。着脱キーＩＤ５２ａは、ハードウェアキー５０を一意に識別するための識別情報である。筐体ＩＤ５２ｂは、ライセンス発行対象となる処理装置に設定されている識別情報（筐体ＩＤ）である。着脱キー固有暗号キー５２ｃは、ハードウェアキー５０に対応付けて生成された暗号キーである。
【０１４７】
図１４は、着脱キー発行記録データベースのデータ構造例を示す図である。着脱キー発行記録データベース５５０には、着脱キー情報発行部５１０で発行された複数の着脱キー情報５５１，５５２，・・・５５ｎが格納されている。
【０１４８】
図１５は、アプリケーション登録記録データベースのデータ構造例を示す図である。アプリケーション登録記録データベースには、複数のアプリケーション情報５６１，５６２，・・・，５６ｎが登録されている。各アプリケーション情報５６１，５６２，・・・，５６ｎは、アプリケーションＩＤ、アプリケーション暗号／復号キー、および費用請求先の情報を含んでいる。アプリケーションＩＤは、ライセンス発行サービスの対象となるアプリケーションの識別情報である。アプリケーション暗号／復号キーは、ライセンス発行サービスの対象となるアプリケーションの暗号化および復号に利用される鍵情報である。費用請求先は、アプリケーションに関するライセンス発行サービスを依頼したソフトウェア提供者２６を特定するための情報である。費用請求先には、ソフトウェア提供者２６の住所、電話番号、顧客整理番号、費用請求方法（たとえば、自動引き落とし金融機関口座情報）などが含まれる。
【０１４９】
図１６は、アプリケーション実行ライセンスのデータ構造例を示す図である。アプリケーション実行ライセンス８０は、１以上の筐体ＩＤ８１ａ，・・・，８１ｉ、アプリケーションＩＤ８２、ライセンス数８３、およびアプリケーション復号キー８４を含んでいる。筐体ＩＤ８１ａ，・・・，８１ｉは、利用者２７が連係して動作させる各処理装置に設定された筐体ＩＤである。アプリケーションＩＤ８２は、実行を許可するアプリケーションの識別情報である。ライセンス数８３は、アプリケーションを同時に実行可能なプロセッサカートリッジ数である。アプリケーション復号キー８４は、アプリケーションを復号するための復号キーである。アプリケーション復号キー８４は、着脱キー固有暗号キーで暗号化された状態で、アプリケーション実行ライセンス８０に設定される。
【０１５０】
図１７は、ライセンス情報データベースのデータ構造例を示す図である。ライセンス情報データベース５７０には、アプリケーション毎のライセンス情報５７１，・・・、５７ｐが格納されている。各ライセンス情報５７１，・・・、５７ｐは、それぞれアプリケーションＩＤに対応付けて登録されている。ライセンス情報のデータ構造は、図１６で示したアプリケーション実行ライセンス８０の内容と同様である。
【０１５１】
図１８は、ライセンス発行記録データベースのデータ構造例を示す図である。ライセンス発行記録データベース５８０には、複数のライセンス発行記録５８１，５８２，・・・，５８ｎが格納されている。ライセンス発行記録５８１，５８２，・・・，５８ｎには、ライセンス発行日時、アプリケーションＩＤ、およびライセンス数などの情報が含まれている。
【０１５２】
以上のような構成のライセンス管理システムによって、ソフトウェア提供者２６によって提供されるアプリケーションを、正当なライセンス所持者である利用者２７のみ実行できるようにすることができる。第２の実施の形態のライセンス管理システムにおける処理は、大別して、ハードウェアキー生成処理、アプリケーション提供処理、ライセンス提供処理、ライセンス発行費用算出処理、およびライセンスに基づくアプリケーション実行処理がある。
【０１５３】
まず、ハードウェアキー生成処理について説明する。
図１９は、ハードウェアキー生成処理の概念図である。ハードウェアキーを生成する場合、処理装置管理サーバ４００からライセンス発行サーバ５００に対して、処理装置７００の筐体ＩＤが着脱キー要求と共にネットワークを介して送られる。なお、筐体ＩＤを可搬型記録媒体に格納し、ライセンス発行局２５に渡すこともできる。その場合、ライセンス発行局２５のオペレータが可搬型記録媒体をライセンス発行サーバ５００に挿入し、筐体ＩＤを含む着脱キー要求をライセンス発行サーバ５００に入力する。
【０１５４】
具体的には、処理装置管理サーバ４００において、着脱キー要求部４１０が処理装置７００の筐体ＩＤ７０１を取得する。たとえば、処理装置の製造工程管理を行っている製造管理装置（図示せず）で筐体ＩＤを取得している場合には、その製造管理装置から筐体ＩＤを取得することができる。また、処理装置管理サーバ４００に対する操作入力によって筐体ＩＤ７０１を着脱キー要求部４１０に通知してもよい。
【０１５５】
筐体ＩＤ７０１を取得した着脱キー要求部４１０は、ネットワークを介してライセンス発行サーバ５００に対して、筐体ＩＤ７０１を含む着脱キー要求を送信する。着脱キー要求は、ライセンス発行サーバ５００の着脱キー情報発行部５１０で受け取られる。なお、筐体ＩＤ７０１を含む着脱キー要求を、ネットワーク以外の情報伝達手段（たとえば、可搬型記録媒体等）を用いてライセンス発行サーバ５００に渡すこともできる。
【０１５６】
着脱キー情報発行部５１０は、処理装置管理サーバ４００から受け取った筐体ＩＤ７０１に、着脱キーＩＤや着脱キー固有暗号キーを関連づけられ、着脱キー情報５２を生成する。生成された着脱キー情報５２は、メモリライタ５０１を介してハードウェアキーに書き込まれる。また、着脱キー情報発行部５１０は、発行した着脱キー情報５２を着脱キー発行記録データベース５５０に格納する。
【０１５７】
着脱キー情報５２が格納されたハードウェアキー５０は、処理装置提供者２４を介して利用者２７に渡される。なお、ハードウェアキー５０を、ライセンス発行２５から利用者２７に直接渡してもよい。
【０１５８】
図２０は、着脱キー情報発行部の処理手順を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。以下の処理は、ライセンス発行サーバ５００に着脱キー要求が渡されたときに実行される処置である。
【０１５９】
［ステップＳ５１］着脱キー情報発行部５１０は、着脱キーＩＤを生成する。着脱キーＩＤとしては、ユニークな番号が利用される。
［ステップＳ５２］着脱キー情報発行部５１０は、着脱キー固有暗号キーを生成する。この着脱キー固有暗号キーは、ライセンス情報の暗号化の際の暗号キーと、ライセンス情報の復号の際の復号キーとを兼ねている。
【０１６０】
［ステップＳ５３］着脱キー情報発行部５１０は、ハードウェアキー５０に着脱キー情報（着脱キーＩＤ、筐体ＩＤ、着脱キー固有暗号キー）を書き込む。
［ステップＳ５４］着脱キー情報発行部５１０は、着脱キー発行記録データベース５５０へ生成した着脱キー情報を着込む。
【０１６１】
以上のようにして、着脱キー情報５２が記録されたハードウェアキー５０が生成され、処理装置７００と共に利用者２７に提供される。
次に、アプリケーション提供処理について説明する。
【０１６２】
図２１は、アプリケーション処理の概念図である。ソフトウェア提供者２６においてアプリケーションプログラム（暗号化前）６０１が完成すると、暗号キー要求部６１０からライセンス発行サーバ５００へ、ネットワークを介してアプリケーション暗号キー要求が出される。なお、アプリケーション暗号キー要求を、ネットワーク以外の情報伝達手段でライセンス発行サーバ５００に渡してもよい。たとえば、ソフトウェア提供者２６からライセンス発行局２７へ、電話や電子メール等を用いてアプリケーション暗号キーの発行を依頼し、ライセンス発行局２７のオペレータがライセンス発行サーバ５００に対してアプリケーション暗号キー要求を操作入力することもできる。
【０１６３】
すると、ライセンス発行サーバ５００のアプリケーション暗号／復号キー発行部５２０がアプリケーション暗号／復号キーを生成し、そのうちのアプリケーション暗号キーのみをソフトウェア提供サーバ６００に送信する。この際、アプリケーション暗号／復号キー発行部５２０は、生成したアプリケーション暗号／復号キーを、アプリケーション登録記録データベース５６０に格納する。なお、アプリケーション暗号キーは、ネットワーク以外の情報伝達手段によってソフトウェア提供サーバ６００に渡してもよい。たとえば、アプリケーション暗号キーを可搬型記録媒体に格納し、その可搬型記録媒体を郵送等によりソフトウェア提供者２６に渡すこともできる。ソフトウェア提供者２６は、受け取った可搬型記録媒体をソフトウェア提供サーバ６００に挿入し、ソフトウェア提供サーバ６００にアプリケーション暗号キーを読み取らせる。
【０１６４】
ソフトウェア提供サーバ６００に送られたアプリケーション暗号キーは、アプリケーション暗号化部６２０で受け取られる。アプリケーション暗号化部６２０は、アプリケーション暗号キーを用いて、暗号化前のアプリケーションプログラム６０１を暗号化する。これにより、暗号化後のアプリケーションプログラム６０２が生成される。
【０１６５】
その後、提供ソフトウェア書込部６３０がアプリケーションプログラム６０２とシステムプログラム６０３とを合わせて、メモリカード６０に書き込む。システムプログラム６０３には、ＯＳ、ライセンス管理エージェント、ＤＨＣＰクライアントなどの機能を実現するためのプログラム等が含まれる。
【０１６６】
このようにしてソフトウェアが記録されたメモリカード６０が利用者２７に提供される。
図２２は、アプリケーション暗号／復号キー発行部の処理手順を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。
【０１６７】
［ステップＳ６１］アプリケーション暗号／復号キー発行部５２０は、アプリケーションＩＤを生成する。アプリケーションＩＤは、アプリケーション毎にユニークな番号である。
【０１６８】
［ステップＳ６２］アプリケーション暗号／復号キー発行部５２０は、アプリケーション暗号／復号キーを生成する。アプリケーション暗号キーとアプリケーション複合キーとは、それぞれアプリケーションの暗号化と復号に使用される。
【０１６９】
［ステップＳ６３］アプリケーション暗号／復号キー発行部５２０は、アプリケーション暗号／復号キーをアプリケーション登録記録データベース５６０に書き込む。
【０１７０】
［ステップＳ６４］アプリケーション暗号／復号キー発行部５２０は、アプリケーション暗号キーにアプリケーションＩＤを付与して、ソフトウェア提供サーバ６００へ送信する。なお、アプリケーション暗号キーを、ネットワーク以外の情報伝達手段によってソフトウェア提供サーバ６００に渡してもよい。
【０１７１】
このようにして送信されたアプリケーション暗号キーを用いて、ソフトウェア提供サーバ６００のアプリケーション暗号化部６２０で、アプリケーションの暗号化が行われる。なお、この例では、アプリケーションが複数のファイルで構成されている。このとき、必ずしも全てのファイルを暗号化する必要はなく、アプリケーションの実行に不可欠なファイル（たとえば、処理機能の起動時に指定する実行形式のファイル）を暗号化すればよい。
【０１７２】
図２３は、アプリケーションの暗号化前後の状態を示す図である。暗号化前のアプリケーションプログラム６０１は、アプリケーション本体６０１ａと暗号化情報ファイル６０１ｂとで構成される。
【０１７３】
アプリケーション本体６０１ａは、複数のファイルで構成される。これらのファイルは、ディレクトリによる階層構造を有している。図２３の例では、ディレクトリとファイルとの識別番号を、括弧書きで示している。
【０１７４】
暗号化情報ファイル６０１ｂは、アプリケーション本体６０１ａに含まれるファイルのうち、暗号化対象とするファイルのリストであり、暗号化対象ファイルのファイル名や識別情報が設定されている。図２３の例では、識別番号が１１、２１のファイルなどが暗号化対象として指定されている。
【０１７５】
このようなアプリケーションプログラム６０１の暗号化が行われると、暗号化情報ファイル６０１ｂで暗号化対象として指定されたファイルのみが暗号化される。
【０１７６】
暗号化後のアプリケーションプログラム６０２は、アプリケーション本体６０２ａと暗号化情報ファイル６０２ｂとで構成されている。アプリケーション本体６０２ａに含まれる複数のファイルのうち、暗号化情報ファイル６０２ｂにリストアップされているファイルのみが暗号化されている。以下、暗号化されたファイルを、暗号化ファイルと呼ぶ。
【０１７７】
図２４は、アプリケーション暗号化処理手順を示すフローチャートである。以下、図２４に示す処理をステップ番号に沿って説明する。
［ステップＳ７１］アプリケーション暗号化部６２０は、アプリケーションプログラム６０２を複写する。
【０１７８】
［ステップＳ７２］アプリケーション暗号化部６２０は、複写されたアプリケーションプログラム６０２の暗号化情報ファイル６０２ｂから暗号化処理が行われていない暗号化対象ファイルのファイル名を１つ取り出す。
【０１７９】
［ステップＳ７３］アプリケーション暗号化部６２０は、ステップＳ７２においてファイル名が取り出されたか否かを判断する。すなわち、ファイル名が取り出されていないということは、全ての暗号化対象ファイルの取り出しが終了したことを意味する。全ての暗号化対象ファイルの取り出しが終了していれば、アプリケーション暗号化処理が終了する。暗号化対象ファイルが取り出された場合、処理がステップＳ７４に進められる。
【０１８０】
［ステップＳ７４］アプリケーション暗号化部６２０は、複写されたアプリケーションプログラム６０２内の暗号化対象ファイルの暗号化処理を行う。その後、処理がステップＳ７２に進められる。
【０１８１】
このようにして、アプリケーションプログラム内の予め指定されたファイルのみを暗号化することができる。その結果、暗号化や復号の処理の高速化が図れる。
【０１８２】
次に、ライセンス提供処理について説明する。
図２５は、ライセンス提供処理の概念図である。まず、処理装置７００からライセンス取得要求がソフトウェア提供サーバ６００に送られる。なお、ライセンス取得要求を、ネットワーク以外の情報伝達手段でソフトウェア提供サーバ６００に渡してもよい。
【０１８３】
ライセンス取得要求がソフトウェア提供サーバ６００に渡されると、ソフトウェア提供サーバ６００内のソフトウェアライセンス提供部６４０が、ライセンス発行サーバ５００に対して、アプリケーション実行ライセンス要求を送信する。アプリケーション実行ライセンス要求には、ライセンス発行対象となるアプリケーションのアプリケーションＩＤ、ライセンス数、動作対象となる処理装置に接続されたハードウェアキーの着脱キーＩＤなどが含まれる。なお、アプリケーション実行ライセンス要求は、ネットワーク以外の情報伝達手段でライセンス発行サーバ５００に渡すこともできる。
【０１８４】
ライセンス発行サーバ５００ではライセンス発行部５３０がアプリケーション実行ライセンス要求を受け取る。すると、ライセンス発行部５３０は、まずアプリケーション登録記録データベース５６０を参照し、アプリケーション実行ライセンス要求に含まれるアプリケーションＩＤに対応するアプリケーション情報を取得する。
【０１８５】
また、ライセンス発行部５３０は、着脱キー発行記録データベース５５０を参照し、動作対象の処理装置の筐体ＩＤに対応する着脱キー情報内のキー固有暗号キーを取得する。次に、ライセンス発行部５３０は、取得したアプリケーション情報内のアプリケーション復号キーを着脱キー固有暗号キーで暗号化する。その後、暗号化されたアプリケーション復号キーを含めたアプリケーション実行ライセンスを生成し、ライセンス情報データベース５７０に登録する。そして、ライセンス発行部５３０は、取得した着脱キー固有暗号キーでアプリケーション実行ライセンスを暗号化する。
【０１８６】
その後、ライセンス発行部５３０は、ライセンス発行内容を示す情報をライセンス発行記録データベース５８０に格納し、暗号化されたアプリケーション実行ライセンスをソフトウェア提供サーバ６００に送信する。
【０１８７】
ソフトウェア提供サーバ６００では、ソフトウェアライセンス提供部６４０がアプリケーション実行ライセンスを受け取り、ＮＡＳ９００（あるいはその他のコンピュータで管理されたストレージデバイス）に転送する。
【０１８８】
図２６は、ライセンス発行部の処理手順を示すフローチャートである。以下、図２６に示す処理をステップ番号に沿って説明する。
［ステップＳ８１］ライセンス発行部５３０は、アプリケーションＩＤ、ライセンス数、動作対象となる処理装置に接続されたハードウェアキーの着脱キーＩＤなどを含むアプリケーション実行ライセンス要求を受け取ると、アプリケーション実行ライセンス８０を生成する。具体的には、まず、着脱キー発行記録データベース５５０から、アプリケーション実行ライセンス要求で示された着脱キーＩＤに対応する着脱キー情報を取得する。そして、取得した着脱キー情報から、着脱キー固有暗号キーを抽出する。
【０１８９】
次に、ライセンス発行部５３０は、アプリケーション実行ライセンス要求で示されたアプリケーションＩＤに対応するアプリケーション情報をアプリケーション登録記録データベース５６０から抽出する。そして、ライセンス発行部５３０は、抽出したアプリケーション情報内のアプリケーション復号キーを、前に抽出した着脱キー固有暗号キーで暗号化する。さらに、ライセンス発行部５３０は、動作対象となる処理装置の筐体ＩＤ、アプリケーションＩＤ、ライセンス数、着脱キー固有暗号キーで暗号化されたアプリケーション復号キーを含むアプリケーション実行ライセンス８０を生成する。生成されたアプリケーション実行ライセンス８０は、ライセンス情報データベース５７０に格納される。
【０１９０】
［ステップＳ８２］ライセンス発行部５３０は、生成したアプリケーション実行ライセンスを暗号化する。この例では、着脱キー固有暗号キーで暗号化するものとする。これにより、暗号化後のアプリケーション実行ライセンス８０ａが生成される。なお、公開鍵暗号方式の鍵のペア（秘密鍵と公開鍵）を生成し、生成された秘密鍵でアプリケーション実行ライセンスを暗号化してもよい。
【０１９１】
［ステップＳ８３］ライセンス発行部５３０は、アプリケーションライセンス発行の記録を、ライセンス発行記録データベース５８０に格納する。アプリケーションライセンスの発行記録としては、ライセンス発行日時、アプリケーションＩＤ、ライセンス数などが含まれる。
【０１９２】
［ステップＳ８４］ライセンス発行部５３０は、暗号化後のアプリケーション実行ライセンス８０ａをソフトウェア提供サーバ６００に送信する。
このようにして、ライセンスが発行される。
【０１９３】
次に、ライセンス発行費用請求処理について説明する。
図２７は、ライセンス発行費用請求処理の手順を示すフローチャートである。以下、図２７に示す処理をステップ番号に沿って説明する。
【０１９４】
［ステップＳ９１］ライセンス発行費用請求部５４０は、ライセンス発行記録データベース５８０を参照し、所定の期間内のライセンス発行数をアプリケーション単位で集計する。具体的には、ライセンス発行日時に基づいて、所定の期間（例えば月単位）内のライセンス発行記録を判断し、それらのライセンス発行記録をアプリケーションＩＤ毎に纏める。そして、纏められたアプリケーションＩＤ毎のライセンス発行記録内のライセンス数の総計を計算する。
【０１９５】
［ステップＳ９２］ライセンス発行費用請求部５４０は、ライセンス発行数に応じたライセンス発行費用の請求書を、ソフトウェア提供者２６に送付する。
次に、処理装置におけるアプリケーション実行処理について説明する。
【０１９６】
図２８は、処理装置に構築される処理機能を示すブロック図である。この例では、複数の処理装置７００，８００がネットワークで接続されている。処理装置７００には、管理カートリッジ７１０とアプリケーションカートリッジ７２０とが接続されている。処理装置８００には、アプリケーションカートリッジ８１０が接続されている。すなわち、管理カートリッジ７１０は、利用者２７が管理するシステム内で１つだけあればよい。なお、図２８において、各カートリッジに含まれる機能のうち、ＯＳの機能については省略している。
【０１９７】
管理カートリッジ７１０は、ＤＨＣＰサーバ７１２、ライセンス管理マネージャ７１３、取得済みライセンス情報７１４、アプリケーション稼働情報７１５を有している。
【０１９８】
ＤＨＣＰサーバ７１２は、利用者２７が管理するネットワーク内に接続されたアプリケーションカートリッジに対して、ＩＰ（Ｉｎｔｅｒｎｅｔ　Ｐｒｏｔｏｃｏｌ）アドレスを割り当てる。具体的には、アプリケーションカートリッジ用のＩＰアドレスを予め用意しておき、アプリケーションカートリッジからのアドレス取得要求に応答して、空いているＩＰアドレスの情報を送信する。
【０１９９】
ライセンス管理マネージャ７１３は、アプリケーションカートリッジ７２０，８１０で実行されるアプリケーションプログラムのライセンスを管理する。具体的には、アプリケーション実行ライセンスを取得するとその内容を解析し、ライセンス情報を取得済みライセンス情報７１４に格納する。その際、ハードウェアキー５０と筐体ＩＤ７０１とを参照して、アプリケーション実行ライセンスにおいて、処理装置７００が動作対象として設定されていることを確認する。
【０２００】
また、ライセンス管理マネージャ７１３は、アプリケーションカートリッジからのアプリケーションのライセンス確認要求を受け取ると、取得済みライセンス情報７１４とアプリケーション稼働情報７１５とを参照し、実行の可否を判断する。そして、可否の判断結果をアプリケーションカートリッジに返す。
【０２０１】
さらに、ライセンス管理マネージャ７１３は、アプリケーションの稼働状況を監視し、アプリケーション稼働情報７１５に設定する。
取得済みライセンス情報７１４は、取得したアプリケーション実行ライセンスの内容を保持するデータベースである。アプリケーション稼働情報７１５は、アプリケーションカートリッジ毎のアプリケーションの実行状況が設定されたデータテーブルである。
【０２０２】
なお、取得済みライセンス情報７１４は、処理装置７００からアクセス可能な装置、たとえばＮＡＳ９００内に設けることができる。図２８の例では、管理カートリッジ７１０内に格納されている場合の例である。
【０２０３】
アプリケーションカートリッジ７２０は、ＤＨＣＰクライアント７２２、ライセンス管理エージェント７２３、およびアプリケーション７２４を有している。なお、アプリケーションカートリッジ７２０が有している機能は、メモリカード６０に記録された各種プログラムをアプリケーションカートリッジ７２０が読み込むことによって構築された機能である。
【０２０４】
ＤＨＣＰクライアント７２２は、ＯＳが起動されるとすぐに、ＤＨＣＰによるＩＰアドレス取得要求を送信する。そのＩＰアドレス取得要求に応じてＤＨＣＰサーバ７１２からＩＰアドレスの情報が返されると、ＤＨＣＰクライアント７２２は、そのＩＰアドレスをアプリケーションカートリッジのＩＰアドレスに設定する。また、ＤＨＣＰクライアント７２２は、ＩＰアドレスの情報の通知に使用されたパケットの送信元アドレスを参照することで、ＤＨＣＰサーバ７１２を有する管理カートリッジ７１０のＩＰアドレスを認識する。そして、ＤＨＣＰクライアント７２２は、管理カートリッジ７１０のＩＰアドレスをライセンス管理エージェント７２３に通知する。これにより、ライセンス管理エージェント７２３は、ライセンス管理マネージャ７１３の所在を知ることができる。
【０２０５】
ライセンス管理エージェント７２３は、メモリカード６０に格納されたアプリケーションプログラム６０２の実行可否をライセンス管理マネージャ７１３に問い合わせ、実行が許可された場合には、アプリケーションプログラム６０２の復号処理を行う。ライセンス管理エージェント７２３がアプリケーションプログラム６０２を復号し、暗号化前のアプリケーションプログラム６０１を再現することで、アプリケーション７２４の機能が動作可能となる。
【０２０６】
アプリケーション７２４は、メモリカード６０に格納されたアプリケーションプログラム６０２に基づいて実行される処理機能である。
処理装置８００に接続されたアプリケーションカートリッジ８１０は、ＤＨＣＰクライアント８１２、ライセンス管理エージェント８１３、アプリケーション８１４を有している。なお、アプリケーションカートリッジ８１０が有している機能は、メモリカード７０に記録された各種プログラムをアプリケーションカートリッジ８１０が読み込むことによって構築された機能である。
【０２０７】
ところで、アプリケーションカートリッジ８１０は、処理装置８００のｓｌｏｔ＃０に接続されている。処理装置８００の筐体ＩＤ８０１は、ｓｌｏｔ＃０に接続されたプロセッサカートリッジのみ読み取り可能であるため、アプリケーションカートリッジ８１０は、筐体ＩＤ８０１を読み取ることが出来る。なお、アプリケーションカートリッジ８１０が別のスロットに接続されていた場合、ｓｌｏｔ＃０に接続されたプロセッサカートリッジを介して、筐体ＩＤ８０１を取得することができる。また、筐体ＩＤ８０１を格納した識別情報メモリを全てのスロットからアクセスできるように配線しておけば、ｓｌｏｔ＃０以外のスロットに接続されたアプリケーションカートリッジが直接筐体ＩＤ８０１を読み取ることができる。
【０２０８】
ＤＨＣＰクライアント８１２の機能は、アプリケーションカートリッジ７２０のＤＨＣＰクライアント７２２と同じである。ライセンス管理エージェント８１３の機能は、アプリケーションカートリッジ７２０のライセンス管理エージェント７２３と同じである。アプリケーション８１４の機能は、アプリケーションカートリッジ７２０のアプリケーション７２４と同じである。
【０２０９】
図２９は、取得済みライセンス情報のデータ構造例を示す図である。取得済みライセンス情報７１４には、複数のアプリケーション実行ライセンス７１４ａ，・・・，７１４ｐが格納されている。これらのアプリケーション実行ライセンス７１４ａ，・・・，７１４ｐのデータ構造は、図１６に示したアプリケーション実行ライセンス８０と同じである。なお、取得済みライセンス情報７１４に格納されているアプリケーション実行ライセンス７１４ａ，・・・，７１４ｐは、アプリケーション復号キーを除き、復号された状態（平文）のデータである。なお、改竄防止のために、アプリケーション実行ライセンス７１４ａ，・・・，７１４ｐの全体を暗号化して取得済みライセンス情報７１４に格納しておいてもよい。その場合、取得済みライセンス情報７１４からアプリケーション実行ライセンス７１４ａ，・・・，７１４ｐを読み出す毎に、アプリケーション実行ライセンス７１４ａ，・・・，７１４ｐの復号処理が行われる。
【０２１０】
図３０は、アプリケーション稼働情報のデータ構造例を示す図である。アプリケーション稼働情報７１５には、処理装置毎のアプリケーション稼働テーブル７１５ａ，・・・，７１５ｍが設けられている。アプリケーション稼働テーブル７１５ａ，・・・，７１５ｍは、対応する処理装置のどのスロットのアプリケーションカートリッジでどのアプリケーションが実行されているのかを示している。
【０２１１】
具体的には、アプリケーション稼働テーブル７１５ａ，・・・，７１５ｍは、格子状のテーブルであり、縦軸に沿ってアプリケーションＩＤが振られ、横軸に沿ってスロット番号が振られている。アプリケーションＩＤとスロット番号とで特定されるセルに１が設定されていれば、対応するスロット番号に接続されたアプリケーションカートリッジで、アプリケーションＩＤで示されたアプリケーションが実行されていることを表している。
【０２１２】
以上のような構成の処理装置７００，８００によって、正当なライセンスを受けたアプリケーションを実行することができる。
まず、ライセンス管理エージェント７２３におけるアプリケーション起動について説明する。
【０２１３】
図３１は、アプリケーション起動処理の手順を示すフローチャートである。この処理は、アプリケーションの起動要求が出されたときに開始される。アプリケーションの起動要求は、ＯＳの起動時に自動的にＯＳからさせることができる。また、利用者２７の操作入力によってアプリケーションの起動要求が出されるようにしてもよい。以下、図３１に示す処理をステップ番号に沿って説明する。
【０２１４】
［ステップＳ１０１］ライセンス管理エージェント７２３は、アプリケーション実行可否の判定依頼（ライセンス確認要求）をライセンス管理マネージャ７１３に送信する。ライセンス確認要求には、アプリケーションＩＤと筐体ＩＤとが含まれる。なお、処理装置のｓｌｏｔ＃０に接続されたアプリケーションカートリッジであれば、直接筐体ＩＤを読み取り、ライセンス確認要求に付加することが出来る。それ以外のスロットに接続されたアプリケーションカートリッジは、ｓｌｏｔ＃０に接続されたプロセッサカートリッジ（管理カートリッジもしくはアプリケーションカートリッジ）に問い合わせることで、筐体ＩＤを取得することが出来る。なお、筐体ＩＤが記録された識別情報メモリを全てのスロットに接続しておけば、全てのアプリケーションカートリッジが直接筐体ＩＤを読み取ることができる。
【０２１５】
［ステップＳ１０２］ライセンス管理エージェント７２３は、ライセンス管理マネージャ７１３からのアプリケーション実行可否判定結果を待つ。アプリケーション実行可否結果を受け取ったら、処理がステップＳ１０３に進められる。なお、アプリケーションの実行が許可される場合には、アプリケーション実行可否結果にアプリケーション復号キーが含まれる。
【０２１６】
［ステップＳ１０３］ライセンス管理エージェント７２３は、ライセンス管理マネージャ７１３からの応答内容を判定する。アプリケーションの実行が許可された場合には、処理がステップＳ１０６に進められる。アプリケーションの実行が不許可の場合には、処理がステップＳ１０４に進められる。
【０２１７】
［ステップＳ１０４］ライセンス管理エージェント７２３は、アプリケーションの起動要求を出したプロセスに対して、アプリケーション実行不可のメッセージを通知する。
【０２１８】
［ステップＳ１０５］ライセンス管理エージェント７２３は、一定時間待機する。その後、処理がステップＳ１０１に進められる。
［ステップＳ１０６］ライセンス管理エージェント７２３は、アプリケーションの実行が許可されると、アプリケーションプログラムの復号処理を行う。この処理の詳細は後述する。
【０２１９】
［ステップＳ１０７］ライセンス管理エージェント７２３は、復号されたアプリケーションプログラムの実行ファイルの実行要求を出力し、アプリケーションを起動する。
【０２２０】
図３２は、アプリケーションプログラム復号処理の手順を示すフローチャートである。以下、図３２に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］ライセンス管理エージェント７２３は、暗号化情報ファイル６０２ｂから未処理の暗号化対象ファイルのファイル名を取り出す。
【０２２１】
［ステップＳ１１２］ライセンス管理エージェント７２３は、全ての暗号化対象ファイル名の取り出しが終了したか否かを判断する。すなわち、ステップＳ１１１において未処理の暗号化対象ファイルのファイル名が見つからなかった場合には、全ての暗号化対象ファイル名の取り出しが終了したものと判断し、処理を終了する。暗号化対象ファイルのファイル名が取り出された場合には、処理がステップＳ１１３に進められる。
【０２２２】
［ステップＳ１１３］ライセンス管理エージェント７２３は、取り出したファイル名に対応するファイルをアプリケーション本体６０２ａから取り出し、復号する。復号する際の復号キーは、実行可否判定結果と共にライセンス管理マネージャ７１３から渡されたアプリケーション復号キーである。
【０２２３】
ファイルの復号完了後、処理がステップＳ１１１に進められる。
このようにして、ライセンス管理エージェントによって復号されたアプリケーションプログラムにより、アプリケーションが起動される。この際、ライセンス管理マネージャ７１３は、アプリケーション実行の許可を出したことで、アプリケーションカートリッジ７２０によってアプリケーション７２４が実行されていることを認識できる。
【０２２４】
ここで、アプリケーションの実行が終了した場合には、その旨をライセンス管理マネージャ７１３に通知する必要がある。このようなアプリケーションの動作状態の通知処理は、ライセンス管理エージェント７２３が行う。
【０２２５】
図３３は、アプリケーション終了時の処理手順を示すフローチャートである。以下、図３３に示す処理をステップ番号に沿って説明する。
［ステップＳ１２１］ライセンス管理エージェント７２３は、アプリケーションが終了したか否かを判断する。終了した場合には、処理がステップＳ１２２に進められる。終了していない場合には、ステップＳ１２１の処理が繰り返される。これにより、ライセンス管理エージェント７２３によって、アプリケーションの動作状態が監視される。
【０２２６】
［ステップＳ１２２］ライセンス管理エージェント７２３は、アプリケーションが終了したことをライセンス管理マネージャに通知する。
このようにして、アプリケーションが終了すると、その旨がライセンス管理マネージャ７１３に通知される。
【０２２７】
なお、第２の実施の形態では、定期的にアプリケーションの実行継続の可否が判定され、実行継続が許可された場合にのみ続けてアプリケーションを実行することが出来る。
【０２２８】
図３４は、アプリケーション実行継続監視処理の手順を示すフローチャートである。以下、図３４に示す処理をステップ番号に沿って説明する。
［ステップＳ１３１］ライセンス管理エージェント７２３は、アプリケーション実行継続の可否判定依頼をライセンス管理マネージャ７１３に送信する。アプリケーション実行継続の可否判定依頼には、アプリケーションＩＤと筐体ＩＤとが含まれる。
【０２２９】
［ステップＳ１３２］ライセンス管理エージェント７２３は、アプリケーション実行継続可否の判定結果を待つ。アプリケーション実行継続可否判定結果を受け取った処理がステップＳ１３３に進められる。また、ライセンス管理マネージャ７１３と通信が出来ないと判断した場合にも処理がステップＳ１３３に進められる。
【０２３０】
［ステップＳ１３３］ライセンス管理エージェント７２３は、アプリケーションの実行継続の可否を判断する。実行継続可能と判断するのは、継続可能というアプリケーション実行継続可否判定結果を受け取った場合である。継続不可能というアプリケーション実行継続可否判定結果を受け取った場合、およびライセンス管理マネージャ７１３と通信が出来なかった場合には、実行継続不可と判断する。実行継続可能な場合には、処理がステップＳ１３６に進められる。実行継続不可の場合には、処理がステップＳ１３４に進められる。
【０２３１】
［ステップＳ１３４］ライセンス管理エージェント７２３は、アプリケーションを実行しているプロセスに対して、アプリケーション継続不可のメッセージを通知する。
【０２３２】
［ステップＳ１３５］ライセンス管理エージェント７２３は、アプリケーションを実行しているプロセスを強制停止する。その後、処理がステップＳ１３６に進められる。
【０２３３】
［ステップＳ１３６］ライセンス管理エージェント７２３は、一定時間待ち合わせを行う。所定の待ち合わせ時間が経過したら処理がステップＳ１３１に進められる。
【０２３４】
このような処理がアプリケーション終了処理が行われるまで繰り返し実行される。
次に、ライセンス管理マネージャ７１３で実行される処理について図３５〜図３８を参照して具体的に説明する
図３５は、ライセンス管理マネージャの処理手順を示す第１のフローチャートである。以下、図３５に示す処理をステップ番号に沿って説明する。
【０２３５】
［ステップＳ２０１］ライセンス管理マネージャ７１３は、ライセンス管理エージェントからの依頼の待ち合わせを行う。ライセンス管理エージェントから何らかの依頼を受信したら処理がステップＳ２０２に進められる。なお、ライセンス管理エージェントから何らかの依頼には、アプリケーションＩＤと筐体ＩＤとが含まれる。
【０２３６】
［ステップＳ２０２］ライセンス管理マネージャ７１３は、ライセンス管理エージェントから受け取った依頼が、アプリケーション実行可否の判定依頼であるか否かを判断する。アプリケーション実行可否の判定依頼であれば、処理がステップＳ２０３に進められる。アプリケーション実行可否の判定依頼でなければ、処理が図３７のステップＳ２２１に進められる。
【０２３７】
［ステップＳ２０３］ライセンス管理マネージャ７１３は、ハードウェアキー５０に格納されている着脱キー情報を参照する。
［ステップＳ２０４］ライセンス管理マネージャ７１３は、アプリケーション実行ライセンスを暗号化したときのアルゴリズムに応じた復号アルゴリズムで、アプリケーション実行ライセンスを復号する。具体的には、ライセンス管理マネージャ７１３は、アプリケーション実行可否の判定依頼で示されるアプリケーションＩＤに対応するアプリケーション実行ライセンスを取得済みライセンス情報７１４から取得する。そして、ハードウェアキー５０に格納されている着脱キー情報内の着脱キー固有暗号キーを用いて、アプリケーション実行ライセンスを復号する。
【０２３８】
なお、公開鍵暗号化方式を用いて公開鍵と秘密鍵を生成し、その秘密鍵によってアプリケーション実行ライセンスが暗号化されている場合には、秘密鍵と同時に生成された公開鍵を用いて復号する。
【０２３９】
［ステップＳ２０５］ライセンス管理マネージャ７１３は、着脱キー情報の筐体ＩＤが、処理装置７００固有の筐体ＩＤ７０１と一致するか否かを判断する。筐体ＩＤが一致すれば処理がステップＳ２０６に進められる。筐体ＩＤが一致しなければ、処理が図３６のステップＳ２１６に進められる。
【０２４０】
［ステップＳ２０６］ライセンス管理マネージャ７１３は、筐体ＩＤが、ステップＳ２０４で復号されたアプリケーション実行ライセンスにおいて、動作対象の筐体ＩＤとして設定されているか否かを判断する。動作対象の筐体ＩＤとして設定されていれば、処理が図３６のステップＳ２１１に進められる。動作対象の筐体ＩＤとして設定されていなければ、処理が図３６のステップＳ２１６に進められる。
【０２４１】
図３６は、ライセンス管理マネージャの処理手順を示す第２のフローチャートである。以下、図３６に示す処理をステップ番号に沿って説明する。
［ステップＳ２１１］ライセンス管理マネージャ７１３は、アプリケーション稼働情報７１５の更新をロックする。
【０２４２】
［ステップＳ２１２］ライセンス管理マネージャ７１３は、取得済みライセンス情報７１４とアプリケーション稼働情報７１５とを参照し、アプリケーション実行の可否を判定する。具体的には、ライセンス管理マネージャ７１３は、アプリケーション稼働情報７１５を参照し、判定対象のアプリケーションを実行中のアプリケーションカートリッジ数（稼働数）を数える。そして、ライセンス管理マネージャ７１３は、稼働数と、ステップＳ２０４で復号されたアプリケーション実行ライセンス内のライセンス数とを比較する。ライセンス数の方が大きければ、アプリケーション実行可能と判断する。そうでなければ、アプリケーション実行不可と判断する。
【０２４３】
アプリケーション実行可能と判断した場合、処理がステップＳ２１３に進められる。アプリケーション実行不可と判断した場合、処理がステップＳ２１４に進められる。
【０２４４】
［ステップＳ２１３］ライセンス管理マネージャ７１３は、稼働数の値に１を加算する。
［ステップＳ２１４］ライセンス管理マネージャ７１３は、アプリケーション稼働情報７１５の更新ロックを解除する。
【０２４５】
［ステップＳ２１５］ライセンス管理マネージャ７１３は、アプリケーション実行ライセンスに含まれるアプリケーション復号キーを、着脱キー固有暗号キーで復号する。
【０２４６】
［ステップＳ２１６］ライセンス管理マネージャ７１３は、アプリケーション実行可否の判定結果を、判定を依頼したライセンス管理エージェントに通知する。判定結果には、ステップＳ２１５で復号されたアプリケーション復号キーが含まれる。その後、処理が図３５のステップＳ２０１に進められる。
【０２４７】
図３７は、ライセンス管理マネージャの処理手順を示す第３のフローチャートである。以下、図３７に示す処理をステップ番号に沿って説明する。
［ステップＳ２２１］ライセンス管理マネージャ７１３は、受け取った依頼が、アプリケーション実行継続の可否判定依頼であるか否かを判断する。アプリケーション実行継続の可否判定依頼には、アプリケーションＩＤや筐体ＩＤが含まれる。実行継続可否の判定依頼であれば、処理がステップＳ２２２に進められる。実行継続可否の判定依頼でなければ処理が図３８のステップＳ２３１に進められる。
【０２４８】
［ステップＳ２２２］ライセンス管理マネージャ７１３は、ハードウェアキー５０に格納されている着脱キー情報を参照する。
［ステップＳ２２３］ライセンス管理マネージャ７１３は、アプリケーション実行ライセンスを暗号化したときのアルゴリズムに応じた復号アルゴリズムで、アプリケーション実行ライセンスを復号する。具体的には、ライセンス管理マネージャ７１３は、アプリケーション実行継続可否の判定依頼で示されるアプリケーションＩＤに対応するアプリケーション実行ライセンスを取得済みライセンス情報７１４から取得する。そして、ハードウェアキー５０に格納されている着脱キー情報内の着脱キー固有暗号キーを用いて、アプリケーション実行ライセンスを復号する。
【０２４９】
なお、公開鍵暗号化方式を用いて公開鍵と秘密鍵を生成し、その秘密鍵によってアプリケーション実行ライセンスが暗号化されている場合には、秘密鍵と同時に生成された公開鍵を用いて復号する。
【０２５０】
［ステップＳ２２４］ライセンス管理マネージャ７１３は、筐体ＩＤが、ステップＳ２２３で復号されたアプリケーション実行ライセンスにおいて動作対象の筐体ＩＤとして設定されているか否かを判断する。動作対象の筐体ＩＤとして設定されていれば、処理がステップＳ２２５に進められる。動作対象の筐体ＩＤとして設定されていなければ、処理がステップＳ２２７に進められる。
【０２５１】
［ステップＳ２２５］ライセンス管理マネージャ７１３は、着脱キー情報の筐体ＩＤが、処理装置７００固有の筐体ＩＤ７０１と一致するか否かを判断する。筐体ＩＤが一致すれば処理がステップＳ２２６に進められる。筐体ＩＤが一致しなければ、処理がステップＳ２２７に進められる。
【０２５２】
［ステップＳ２２６］ライセンス管理マネージャ７１３は、アプリケーションの実行を継続可と判定する。その後、処理がステップＳ２２８に進められる。
［ステップＳ２２７］ライセンス管理マネージャ７１３は、アプリケーションの実行を継続不可と判定する。
【０２５３】
［ステップＳ２２８］ライセンス管理マネージャ７１３は、アプリケーション実行継続可否の判定結果を、判定を依頼したアプリケーション管理エージェントに通知する。その後、処理がステップＳ２０１に進められる。
【０２５４】
図３８は、ライセンス管理マネージャの処理手順を示す第４のフローチャートである。以下、図３８に示す処理をステップ番号に沿って説明する。
［ステップＳ２３１］ライセンス管理マネージャ７１３は、ライセンス管理エージェントからの依頼がアプリケーション終了の通知か否かを判断する。アプリケーション終了の通知の場合には、処理がステップＳ２３２に進められる。そうでない場合には、処理が図３５のステップＳ２０１に進められる。
【０２５５】
［ステップＳ２３２］ライセンス管理マネージャ７１３は、アプリケーション稼働情報７１５の更新をロックする。
［ステップＳ２３３］ライセンス管理マネージャ７１３は、終了したアプリケーションの稼働数を１だけ減算する。
【０２５６】
［ステップＳ２３４］ライセンス管理マネージャ７１３は、アプリケーション稼働情報の更新ロックを解除する。その後、処理が図３５のステップＳ２０１に進められる。
【０２５７】
以上のようにして、アプリケーションの不正使用を確実に防止したライセンス管理が可能となる。すなわち、装置識別情報（筐体ＩＤ）を埋め込んだハードウェアキーを提供し、ハードウェアキーに設定された装置識別情報と、アプリケーションを実行する処理装置の装置識別情報とが一致しなければアプリケーションが実行できない。その結果、処理装置の偽装等の不正行為を防止することができる。
【０２５８】
また、ハードウェアキーをライセンス発行局で発行するため、ライセンス管理を厳密に行うことができる。ただし、利便性等を優先し、ソフトウェア提供者がハードウェアキーを発行するようにしてもよい。
【０２５９】
しかも、各アプリケーションカートリッジが処理装置の筐体に装着されると、自動的にライセンス確認依頼が管理カートリッジに出され、ライセンス数で定められた数以内のアプリケーションカートリッジに対してのみアプリケーションの実行が許可される。したがって、アプリケーションカートリッジに対して個別にライセンス情報を設定する必要がなくなり、利用者２７のシステム管理が容易となる。
【０２６０】
また、管理カートリッジでは、現在アプリケーションを実行しているアプリケーションカートリッジ数を常に把握している。そして、メンテナンスのためにアプリケーションを実行しているアプリケーションカートリッジを抜き取った場合、そのアプリケーションを実行可能な他のアプリケーションカートリッジに対して、自動的に実行の許可が出される。そのため、処理装置のメンテナンス時におけるシステム全体の処理効率の低下を防ぐことが出来る。
【０２６１】
なお、上記の第２の実施の形態では、ライセンス発行サーバ５００とソフトウェア提供サーバ６００との機能を分けているが、１つのサーバ（たとえば、ソフトウェア提供サーバ）でハードウェアキーへの着脱キー情報の書き込み、ソフトウェアの提供、ライセンスの発行を行ってもよい。
【０２６２】
なお、上記の第１、第２の実施の形態では、装置識別情報（筐体ＩＤ）をメモリに記録するものとしているが、このメモリは装置に固定されたデータ保持可能な回路であればよい。たとえば、ＣＰＵ内部に設定されているＣＰＵの識別情報を装置識別情報として使用することもできる。
【０２６３】
また、上記の第１の実施の形態では、ソフトウェア暗号キーとソフトウェア復号キーとの２つの鍵情報を生成しているが、１つの鍵情報を、ソフトウェア暗号キーとソフトウェア復号キーとの両方に使用してもよい。同様に、上記の第２の実施の形態では、アプリケーション暗号キーとアプリケーション復号キーとの２つの鍵情報を生成しているが、１つの鍵情報を、アプリケーション暗号キーとアプリケーション復号キーとの両方に使用してもよい。
【０２６４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置管理サーバ、ライセンス発行サーバ、ソフトウェア提供サーバ、および処理装置内の各プロセッサカートリッジが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Ｄｉｇｉｔａｌ　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ　ＡｃｃｅｓｓＭｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ　ｄｉｓｃ）などがある。
【０２６５】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０２６６】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０２６７】
（付記１）　ソフトウェアの実行ライセンスを発行するライセンス発行サーバにおいて、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成するソフトウェア暗号キー生成手段と、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報で前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力するライセンス発行手段と、
を有することを特徴とするライセンス発行サーバ。
【０２６８】
（付記２）　前記ソフトウェア暗号キー生成手段は、前記暗号キー生成要求が、ネットワークを介して接続された他のコンピュータから送られた場合、生成した前記ソフトウェア暗号キーを前記他のコンピュータへ送信することを特徴とする付記１記載のライセンス発行サーバ。
【０２６９】
（付記３）　前記ライセンス発行手段は、前記ライセンス発行要求が、ネットワークを介して接続された他のコンピュータから送られた場合、生成した前記ソフトウェアライセンスを前記他のコンピュータへ送信することを特徴とする付記１記載のライセンス発行サーバ。
【０２７０】
（付記４）　ライセンスによって実行を制限すべきソフトウェアを提供するソフトウェア提供サーバにおいて、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成するソフトウェア暗号キー生成手段と、
前記ソフトウェア暗号キー生成手段で生成された前記ソフトウェア暗号キーを用いて、前記ソフトウェアを暗号化するソフトウェア暗号化手段と、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むソフトウェア要求が前記処理装置から入力されると、前記ソフトウェア暗号化手段で暗号化された前記ソフトウェアを前記処理装置へ送信するソフトウェア提供手段と、
前記ソフトウェア要求が前記処理装置から入力されると、前記装置識別情報で前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを前記処理装置へ送信するライセンス発行手段と、
を有することを特徴とするソフトウェア提供サーバ。
【０２７１】
（付記５）　ライセンスによって実行が制限されたソフトウェアを実行する処理装置において、
装置識別情報が固定的に記録された記録媒体と、
暗号化された状態のソフトウェア復号キーを受け取ると、前記記録媒体に記録された前記装置識別情報を復号キーとして前記ソフトウェア復号キーを復号する復号キー復号手段と、
前記ソフトウェア提供サーバから暗号化された状態の前記ソフトウェアを受け取ると、前記復号キー復号手段で復号された前記ソフトウェア復号キーを復号キーとして前記ソフトウェアを復号するソフトウェア復号手段と、
を有することを特徴とする処理装置。
【０２７２】
（付記６）　ソフトウェアの実行ライセンスを発行するライセンス発行サーバにおいて、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録する着脱キー情報発行手段と、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力するライセンス発行手段と、
を有することを特徴とするライセンス発行サーバ。
【０２７３】
（付記７）　前記ライセンス発行手段は、前記ソフトウェアを同時に実行可能な装置数を示すライセンス数を、前記ライセンス情報に含めることを特徴とする付記６記載のライセンス発行サーバ。
【０２７４】
（付記８）　前記ハードウェアキーは、耐タンパ性を有していることを特徴とする付記６記載のライセンス発行サーバ。
（付記９）　前記ライセンス発行手段は、前記ライセンス情報を暗号化して出力することを特徴とする付記６記載のライセンス発行サーバ。
【０２７５】
（付記１０）　前記ライセンス発行手段は、前記着脱キー固有暗号キーで前記ライセンス情報を暗号化することを特徴とする付記９記載のライセンス発行サーバ。
【０２７６】
（付記１１）　前記ライセンス発行手段により出力された前記ライセンス情報の履歴を蓄積し、蓄積された前記ライセンス情報に基づいて、前記ソフトウェアの提供者に対して請求するライセンス発行手数料を算出するライセンス発行費用算出手段をさらに有することを特徴とする付記６記載のライセンス発行サーバ。
【０２７７】
（付記１２）　ライセンスによって実行を制限すべきソフトウェアを提供するソフトウェア提供サーバにおいて、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録する着脱キー情報発行手段と、
前記ソフトウェアの暗号化と復号とのためのソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化されたデータを復号するためのソフトウェア復号キーとを生成するソフトウェア暗号キー生成手段と、
前記ソフトウェア暗号キー生成手段で生成された前記ソフトウェア暗号キーを用いて、前記ソフトウェアを暗号化するソフトウェア暗号化手段と、
ソフトウェア要求が前記処理装置から入力されると、前記ソフトウェア暗号化手段で暗号化された前記ソフトウェアを前記処理装置へ送信するソフトウェア提供手段と、
前記ソフトウェアのライセンス発行要求に応じて、前記ソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力するライセンス発行手段と、
を有することを特徴とするソフトウェア提供サーバ。
【０２７８】
（付記１３）　ライセンスによって実行が制限されたソフトウェアを実行する処理装置において、
装置識別情報が固定的に記録された記録媒体と、
動作許可対象装置を特定する許可対象装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報が格納されたハードウェアキーが装着されたとき、前記ハードウェアキーから前記着脱キー情報を読み取るハードウェアキー接続手段と、
暗号化された状態の前記ソフトウェアを復号するためのソフトウェア復号キーが暗号化された状態で含まれたライセンス情報が入力されると、前記ソフトウェア復号キーを前記着脱キー固有暗号キーで復号するソフトウェアキー復号手段と、
前記ハードウェアキー接続手段に接続された前記ハードウェアキーに含まれる前記許可対象識別情報と前記記録媒体に記録された装置識別情報との同一性を判定する識別情報判定手段と、
前記識別情報判定手段により、同一であると判定された場合には、前記ソフトウェアキー復号手段で復号された前記ソフトウェア復号キーで、暗号化された状態の前記ソフトウェアを復号するソフトウェア復号手段と、
を有することを特徴とする処理装置。
【０２７９】
（付記１４）　ライセンスによって実行が制限されたソフトウェアの実行状況を管理するソフトウェア実行管理装置において、
装置識別情報が固定的に記録された記録媒体と、
動作許可対象装置を特定する許可対象装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報が格納されたハードウェアキーが装着されたとき、前記ハードウェアキーから前記着脱キー情報を読み取るハードウェアキー接続手段と、
暗号化された状態の前記ソフトウェアを復号するための暗号化されたソフトウェア復号キーと同時実行可能なコンピュータ数とが含まれたライセンス情報が入力されると、前記ソフトウェア復号キーを前記着脱キー固有暗号キーで復号するソフトウェアキー復号手段と、
ネットワークを介して接続されたコンピュータのうち前記ソフトウェアを実行している実行コンピュータ数を監視し、前記同時実行可能なコンピュータ数以下の数の前記コンピュータに対して、前記ソフトウェアキー復号手段で復号された前記ソフトウェア復号キーを渡す復号キー管理手段と、
を有することを特徴とするソフトウェア実行管理装置。
【０２８０】
（付記１５）　ソフトウェアの実行ライセンスを発行するためのライセンス発行方法において、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報で前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、
ことを特徴とするライセンス発行方法。
【０２８１】
（付記１６）　ソフトウェアの実行ライセンスを発行するためのライセンス発行方法において、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、
ことを特徴とするライセンス発行方法。
【０２８２】
（付記１７）　ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムにおいて、
コンピュータに、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報で前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、
処理を実行させることを特徴とするライセンス発行プログラム。
【０２８３】
（付記１８）　ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムにおいて、
コンピュータに、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、
処理を実行させることを特徴とするライセンス発行プログラム。
【０２８４】
（付記１９）　ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記ソフトウェアの暗号化のための暗号キー生成要求に応じて、ソフトウェア暗号キーと、前記ソフトウェア暗号キーで暗号化された前記ソフトウェアを復号するためのソフトウェア復号キーとを生成し、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含むライセンス発行要求に応じて、前記装置識別情報で前記ソフトウェア復号キーを暗号化し、暗号化された前記ソフトウェア復号キーを含むソフトウェアライセンスを出力する、
処理を実行させることを特徴とするライセンス発行プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０２８５】
（付記２０）　ソフトウェアの実行ライセンスを発行するためのライセンス発行プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記ソフトウェアの動作許可対象である処理装置内の記録媒体に固定的に記録された装置識別情報を含む着脱キー情報生成要求に応答して、前記装置識別情報と着脱キー固有暗号キーとを含む着脱キー情報を生成し、生成した前記着脱キー情報を、前記処理装置に着脱可能なハードウェアキーに記録し、
前記ソフトウェアのライセンス発行要求に応じて、暗号化された状態で提供される前記ソフトウェアを復号するためのソフトウェア復号キーを前記着脱キー固有暗号キーで暗号化して、暗号化された前記ソフトウェア復号キーを含むライセンス情報を出力する、
処理を実行させることを特徴とするライセンス発行プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０２８６】
【発明の効果】
以上説明したように本発明の第１、第２の態様では、ソフトウェア復号キーを装置識別情報で暗号化しているため、その装置識別情報が固定的に記録された処理装置でのみ暗号化されたソフトウェアを復号することが可能となる。その結果、他の装置にソフトウェアを読み込ませても、その装置でそのソフトウェアを実行することができず、ソフトウェアの不正使用が防止される。
【０２８７】
また、本発明の第３、第４の態様では、正しいハードウェアキーが装着された処理装置に限りライセンス情報を復号し、暗号化された状態のソフトウェアを復号することができる。しかも、装置識別情報がハードウェアキーに格納されていることにより、装置識別情報が合致する処理装置でのみソフトウェアを復号できる。
【図面の簡単な説明】
【図１】第１の実施の形態に適用される発明の概念図である
【図２】第１の実施の形態のシステム構成例を示す図である。
【図３】本発明の実施の形態に用いるソフトウェア提供サーバのハードウェア構成例を示す図である。
【図４】第１の実施の形態に係るソフトウェアライセンス管理システムの機能ブロック図である。
【図５】第１の実施の形態におけるソフトウェア暗号化処理を示すシーケンス図である。
【図６】第１の実施の形態におけるソフトウェア提供処理を示すシーケンス図である。
【図７】第２の実施の形態に適用される発明の概念図である。
【図８】第２の実施の形態に係るライセンス管理システムの概念図である。
【図９】第２の実施の形態におけるライセンス管理機構の概念図である。
【図１０】処理装置のハードウェア構成例を示す図である。
【図１１】プロセッサカートリッジのハートウェア構成例を示す図である。
【図１２】各サーバコンピュータの処理機能を示すブロック図である。
【図１３】着脱キーに格納される着脱キー情報のデータ構造例を示す図である。
【図１４】着脱キー発行記録データベースのデータ構造例を示す図である。
【図１５】アプリケーション登録記録データベースのデータ構造例を示す図である。
【図１６】アプリケーション実行ライセンスのデータ構造例を示す図である。
【図１７】ライセンス情報データベースのデータ構造例を示す図である。
【図１８】ライセンス発行記録データベースのデータ構造例を示す図である。
【図１９】ハードウェアキー生成処理の概念図である。
【図２０】着脱キー情報発行部の処理手順を示すフローチャートである。
【図２１】アプリケーション処理の概念図である。
【図２２】アプリケーション暗号／復号キー発行部の処理手順を示すフローチャートである。
【図２３】アプリケーションの暗号化前後の状態を示す図である。
【図２４】アプリケーション暗号化処理手順を示すフローチャートである。
【図２５】ライセンス提供処理の概念図である。
【図２６】ライセンス発行部の処理手順を示すフローチャートである。
【図２７】ライセンス発行費用請求処理の手順を示すフローチャートである。
【図２８】処理装置に構築される処理機能を示すブロック図である。
【図２９】取得済みライセンス情報のデータ構造例を示す図である。
【図３０】アプリケーション稼働情報のデータ構造例を示す図である。
【図３１】アプリケーション起動処理の手順を示すフローチャートである。
【図３２】アプリケーションプログラム復号処理の手順を示すフローチャートである。
【図３３】アプリケーション終了時の処理手順を示すフローチャートである。
【図３４】アプリケーション実行継続監視処理の手順を示すフローチャートである。
【図３５】ライセンス管理マネージャの処理手順を示す第１のフローチャートである。
【図３６】ライセンス管理マネージャの処理手順を示す第２のフローチャートである。
【図３７】ライセンス管理マネージャの処理手順を示す第３のフローチャートである。
【図３８】ライセンス管理マネージャの処理手順を示す第４のフローチャートである。
【符号の説明】
１　ソフトウェア暗号キー生成手段
２　ソフトウェアライセンスキー生成手段
３　ソフトウェア暗号化手段
４　処理装置
４ａ　記録媒体
４ｂ　装置識別情報
４ｃ　ソフトウェアライセンスキー復号手段
４ｄ　ソフトウェア復号手段
５ａ　ソフトウェア暗号キー
５ｂ　ソフトウェア復号キー
５ｃ　ソフトウェアライセンスキー
５ｄ　ソフトウェア復号キー
６ａ，６ｂ，６ｃ　ソフトウェア
【図１】
2004110646.tif 000003
【図２】
2004110646.tif 000004
【図３】
2004110646.tif 000005
【図４】
2004110646.tif 000006
【図５】
2004110646.tif 000007
【図６】
2004110646.tif 000008
【図７】
2004110646.tif 000009
【図８】
2004110646.tif 000010
【図９】
2004110646.tif 000011
【図１０】
2004110646.tif 000012
【図１１】
2004110646.tif 000013
【図１２】
2004110646.tif 000014
【図１３】
2004110646.tif 000015
【図１４】
2004110646.tif 000016
【図１５】
2004110646.tif 000017
【図１６】
2004110646.tif 000018
【図１７】
2004110646.tif 000019
【図１８】
2004110646.tif 000020
【図１９】
2004110646.tif 000021
【図２０】
2004110646.tif 000022
【図２１】
2004110646.tif 000023
【図２２】
2004110646.tif 000024
【図２３】
2004110646.tif 000025
【図２４】
2004110646.tif 000026
【図２５】
2004110646.tif 000027
【図２６】
2004110646.tif 000028
【図２７】
2004110646.tif 000029
【図２８】
2004110646.tif 000030
【図２９】
2004110646.tif 000031
【図３０】
2004110646.tif 000032
【図３１】
2004110646.tif 000033
【図３２】
2004110646.tif 000034
【図３３】
2004110646.tif 000035
【図３４】
2004110646.tif 000036
【図３５】
2004110646.tif 000037
【図３６】
2004110646.tif 000038
【図３７】
2004110646.tif 000039
【図３８】
2004110646.tif 000040