(57)【要約】【課題】不正使用されにくいライセンスキーに係るライセンスキー発行装置及びプログラム実行装置を提供すること。【解決手段】適用回数情報と使用許諾情報との関係情報は、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定される。発行要求取得部２２は、要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する。適用回数取得部２４は、前記関係情報に基づいて、前記要求使用許諾情報に対応する適用回数情報を取得する。キー値生成部２６は、所定初期値に、取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成する。ライセンスキー生成部２８は、取得される適用回数情報と、生成されるキー値と、を含むライセンスキーを生成する。【選択図】　　　　図２
2004102552.tif 000002
【特許請求の範囲】
【請求項１】
要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する発行要求取得手段と、
適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に対応する適用回数情報を取得する適用回数取得手段と、
所定初期値に、前記適用回数取得手段によって取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段と、
前記適用回数取得手段によって取得される適用回数情報と、前記キー値生成手段によって生成されるキー値と、を含むライセンスキーを生成するライセンスキー生成手段と、
前記ライセンスキー生成手段によって生成されるライセンスキーを出力するライセンスキー出力手段と、
を含むことを特徴とするライセンスキー発行装置。
【請求項２】
請求項１に記載のライセンスキー発行装置において、
基準初期値を記憶する基準初期値記憶手段を含み、
前記所定初期値は、前記基準初期値記憶手段によって記憶される基準初期値に基づくものであることを特徴とするライセンスキー発行装置。
【請求項３】
請求項２に記載のライセンスキー発行装置において、
前記基準初期値記憶手段は、使用許諾情報に基づく使用許諾内容の所定範囲を識別する範囲識別情報に対応づけて前記基準初期値を記憶し、
前記関係情報は、前記範囲識別情報ごとに設定され、
前記所定初期値は、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に基づく要求使用許諾内容が含まれる前記所定範囲を識別する、範囲識別情報に対応づけて前記基準初期値記憶手段に記憶される基準初期値に基づくものであり、
前記ライセンスキー生成手段は、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に基づく要求使用許諾内容が含まれる前記所定範囲を識別する、範囲識別情報をさらに含むライセンスキーを生成することを特徴とするライセンスキー発行装置。
【請求項４】
請求項１乃至３のいずれかに記載のライセンスキー発行装置において、
前記一方向関数は、ハッシュ関数であることを特徴とするライセンスキー発行装置。
【請求項５】
請求項１乃至４のいずれかに記載のライセンスキー発行装置において、
前記ライセンスキー発行要求を識別する発行要求識別情報を取得する発行要求識別情報取得手段をさらに含み、
前記所定初期値は、前記発行要求識別情報取得手段によって取得される発行要求識別情報に基づくものであり、
前記ライセンスキー生成手段は、前記発行要求識別情報取得手段によって取得される発行要求識別情報をさらに含むライセンスキーを生成することを特徴とするライセンスキー発行装置。
【請求項６】
請求項１乃至５のいずれかに記載のライセンスキー発行装置において、
プログラム実行装置を識別する装置識別情報を取得する装置識別情報取得手段をさらに含み、
前記所定初期値は、前記装置識別情報取得手段によって取得される装置識別情報に基づくものであることを特徴とするライセンスキー発行装置。
【請求項７】
要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する発行要求取得ステップと、
適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記発行要求取得ステップにおいて取得されるライセンスキー発行要求に含まれる要求使用許諾情報に対応する適用回数情報を取得する適用回数取得ステップと、
所定初期値に、前記適用回数取得ステップにおいて取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成ステップと、
前記適用回数取得ステップにおいて取得される適用回数情報と、前記キー値生成ステップにおいて生成されるキー値と、を含むライセンスキーを生成するライセンスキー生成ステップと、
前記ライセンスキー生成ステップにおいて生成されるライセンスキーを出力するライセンスキー出力ステップと、
を含むことを特徴とするライセンスキー生成方法。
【請求項８】
ライセンスキー発行装置としてコンピュータを機能させるためのプログラムであって、
要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する発行要求取得手段、
適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に対応する適用回数情報を取得する適用回数取得手段、
所定初期値に、前記適用回数取得手段によって取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段、
前記適用回数取得手段によって取得される適用回数情報と、前記キー値生成手段によって生成されるキー値と、を含むライセンスキーを生成するライセンスキー生成手段、及び、
前記ライセンスキー生成手段によって生成されるライセンスキーを出力するライセンスキー出力手段、
として前記コンピュータを機能させるためのプログラム。
【請求項９】
当該装置における使用許諾内容を示す使用許諾情報を記憶する使用許諾情報記憶手段と、
適用回数情報とキー値と含むライセンスキーを取得するライセンスキー取得手段と、
所定初期値に、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段と、
前記キー値生成手段によって生成されるキー値と、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれるキー値と、を比較するキー値比較手段と、
適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する使用許諾情報取得手段と、
前記キー値比較手段による比較結果に基づいて、前記使用許諾情報記憶手段に記憶される使用許諾情報を、前記使用許諾情報取得手段によって取得される使用許諾情報に基づいて更新する使用許諾情報更新手段と、
前記使用許諾情報記憶手段によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する制御手段と、
を含むことを特徴とするプログラム実行装置。
【請求項１０】
請求項９に記載のプログラム実行装置において、
基準初期値を記憶する基準初期値記憶手段を含み、
前記所定初期値は、前記基準初期値記憶手段によって記憶される基準初期値に基づくものであることを特徴とするプログラム実行装置。
【請求項１１】
請求項１０に記載のプログラム実行装置において、
前記基準初期値記憶手段は、使用許諾情報に基づく使用許諾内容の所定範囲を識別する範囲識別情報に対応づけて前記基準初期値を記憶し、
前記ライセンスキーは、前記範囲識別情報をさらに含み、
前記関係情報は、前記範囲識別情報ごとに設定され、
前記所定初期値は、前記ライセンスキーに含まれる範囲識別情報に対応づけて前記基準初期値記憶手段に記憶される基準初期値に基づくものであることを特徴とするプログラム実行装置。
【請求項１２】
請求項９乃至１１のいずれかに記載のプログラム実行装置において、
前記一方向関数は、ハッシュ関数であることを特徴とするプログラム実行装置。
【請求項１３】
請求項９乃至１２のいずれかに記載のプログラム実行装置において、
前記ライセンスキーは、ライセンスキー発行要求を識別する発行要求識別情報をさらに含み、
前記所定初期値は、前記ライセンスキーに含まれる発行要求識別情報に基づくものであることを特徴とするプログラム実行装置。
【請求項１４】
請求項９乃至１３のいずれかに記載のプログラム実行装置において、
当該装置を識別する装置識別情報を取得する装置識別情報取得手段をさらに含み、
前記所定初期値は、前記装置識別情報取得手段によって取得される装置識別情報に基づくものであることを特徴とするプログラム実行装置。
【請求項１５】
当該装置における使用許諾内容を示す使用許諾情報を記憶手段に記憶させる使用許諾情報記憶ステップと、
適用回数情報とキー値と含むライセンスキーを取得するライセンスキー取得ステップと、
所定初期値に、前記ライセンスキー取得ステップにおいて取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成ステップと、
前記キー値生成ステップにおいて生成されるキー値と、前記ライセンスキー取得ステップにおいて取得されるライセンスキーに含まれるキー値と、を比較するキー値比較ステップと、
適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記ライセンスキー取得ステップにおいて取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する使用許諾情報取得ステップと、
前記キー値比較ステップにおける比較結果に基づいて、前記記憶手段に記憶される使用許諾情報を、前記使用許諾情報取得ステップにおいて取得される使用許諾情報に基づいて更新する使用許諾情報更新ステップと、
前記記憶手段によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する制御ステップと、
を含むことを特徴とするプログラム実行装置の制御方法。
【請求項１６】
プログラム実行装置としてコンピュータを機能させるためのプログラムであって、
当該装置における使用許諾内容を示す使用許諾情報を記憶する使用許諾情報記憶手段、
適用回数情報とキー値と含むライセンスキーを取得するライセンスキー取得手段、
所定初期値に、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段、
前記キー値生成手段によって生成されるキー値と、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれるキー値と、を比較するキー値比較手段、
適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する使用許諾情報取得手段、
前記キー値比較手段による比較結果に基づいて、前記使用許諾情報記憶手段に記憶される使用許諾情報を、前記使用許諾情報取得手段によって取得される使用許諾情報に基づいて更新する使用許諾情報更新手段、及び、
前記使用許諾情報記憶手段によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する制御手段、
として前記コンピュータを機能させるためのプログラム。
【請求項１７】
請求項１〜６、９〜１４のいずれかに記載の装置において、
前記使用許諾情報は、使用可能なユーザ数、使用可能な端末数、使用可能な期間、使用可能な等級、使用可能な回数、プログラム実行装置のＣＰＵ数のうち１又は複数を示すものであることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はライセンスキー発行装置、ライセンスキー生成方法、プログラム実行装置、プログラム実行装置の制御方法及びプログラムに関し、特に、不正使用されにくいライセンスキーに関する。
【０００２】
【従来の技術】
ソフトウェアには、ライセンスキーの入力（登録）によって、その動作が制御されるものがある。例えば、ライセンスキーが入力されるまでは、試用として提供され、ライセンスキーが入力されることによって、はじめて本番使用として提供されるものがある。また、例えば、試用版ではない通常のソフトウェアの機能の制限解除や拡張に、ライセンスキーが用いられることもある。
【０００３】
【発明が解決しようとする課題】
しかしながら、これまでのライセンスキーは、不正使用を受けやすいものであった。例えば、ライセンスキーがネットワーク上の掲示板等で公開されたりすると、正規にライセンスキーの発行を受けていないユーザが、このライセンスキーを使用することによって、ソフトウェアを不正に使用することができてしまうという問題があった。
【０００４】
本発明は上記課題に鑑みてなされたものであって、その目的は、不正使用されにくいライセンスキーに係るプログラム実行装置、プログラム実行装置の制御方法、ライセンスキー発行装置、ライセンスキー生成方法及びプログラムを提供することにある。
【０００５】
【課題を解決するための手段】
上記課題を解決するために、本発明に係るライセンスキー発行装置は、要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する発行要求取得手段と、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に対応する適用回数情報を取得する適用回数取得手段と、所定初期値に、前記適用回数取得手段によって取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段と、前記適用回数取得手段によって取得される適用回数情報と、前記キー値生成手段によって生成されるキー値と、を含むライセンスキーを生成するライセンスキー生成手段と、前記ライセンスキー生成手段によって生成されるライセンスキーを出力するライセンスキー出力手段と、を含むことを特徴とする。
【０００６】
また、本発明に係るライセンスキー生成方法は、要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する発行要求取得ステップと、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記発行要求取得ステップにおいて取得されるライセンスキー発行要求に含まれる要求使用許諾情報に対応する適用回数情報を取得する適用回数取得ステップと、所定初期値に、前記適用回数取得ステップにおいて取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成ステップと、前記適用回数取得ステップにおいて取得される適用回数情報と、前記キー値生成ステップにおいて生成されるキー値と、を含むライセンスキーを生成するライセンスキー生成ステップと、前記ライセンスキー生成ステップにおいて生成されるライセンスキーを出力するライセンスキー出力ステップと、を含むことを特徴とする。
【０００７】
また、本発明に係るプログラムは、ライセンスキー発行装置としてコンピュータを機能させるためのプログラムであって、要求使用許諾内容を示す要求使用許諾情報を含むライセンスキー発行要求を取得する発行要求取得手段、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に対応する適用回数情報を取得する適用回数取得手段、所定初期値に、前記適用回数取得手段によって取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段、前記適用回数取得手段によって取得される適用回数情報と、前記キー値生成手段によって生成されるキー値と、を含むライセンスキーを生成するライセンスキー生成手段、及び、前記ライセンスキー生成手段によって生成されるライセンスキーを出力するライセンスキー出力手段、として、パーソナルコンピュータやサーバコンピュータ等の前記コンピュータを機能させるためのプログラムである。
【０００８】
また、本発明に係るプログラム実行装置は、当該装置における使用許諾内容を示す使用許諾情報を記憶する使用許諾情報記憶手段と、適用回数情報とキー値と含むライセンスキーを取得するライセンスキー取得手段と、所定初期値に、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段と、前記キー値生成手段によって生成されるキー値と、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれるキー値と、を比較するキー値比較手段と、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する使用許諾情報取得手段と、前記キー値比較手段による比較結果に基づいて、前記使用許諾情報記憶手段に記憶される使用許諾情報を、前記使用許諾情報取得手段によって取得される使用許諾情報に基づいて更新する使用許諾情報更新手段と、前記使用許諾情報記憶手段によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する制御手段と、を含むことを特徴とする。
【０００９】
また、本発明に係るプログラム実行装置の制御方法は、当該装置における使用許諾内容を示す使用許諾情報を記憶手段に記憶させる使用許諾情報記憶ステップと、適用回数情報とキー値と含むライセンスキーを取得するライセンスキー取得ステップと、所定初期値に、前記ライセンスキー取得ステップにおいて取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成ステップと、前記キー値生成ステップにおいて生成されるキー値と、前記ライセンスキー取得ステップにおいて取得されるライセンスキーに含まれるキー値と、を比較するキー値比較ステップと、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記ライセンスキー取得ステップにおいて取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する使用許諾情報取得ステップと、前記キー値比較ステップにおける比較結果に基づいて、前記記憶手段に記憶される使用許諾情報を、前記使用許諾情報取得ステップにおいて取得される使用許諾情報に基づいて更新する使用許諾情報更新ステップと、前記記憶手段によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する制御ステップと、を含むことを特徴とする。
【００１０】
また、本発明に係るプログラムは、プログラム実行装置としてコンピュータを機能させるためのプログラムであって、当該装置における使用許諾内容を示す使用許諾情報を記憶する使用許諾情報記憶手段、適用回数情報とキー値と含むライセンスキーを取得するライセンスキー取得手段、所定初期値に、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成するキー値生成手段、前記キー値生成手段によって生成されるキー値と、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれるキー値と、を比較するキー値比較手段、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定された、適用回数情報と使用許諾情報との関係情報に基づいて、前記ライセンスキー取得手段によって取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する使用許諾情報取得手段、前記キー値比較手段による比較結果に基づいて、前記使用許諾情報記憶手段に記憶される使用許諾情報を、前記使用許諾情報取得手段によって取得される使用許諾情報に基づいて更新する使用許諾情報更新手段、及び、前記使用許諾情報記憶手段によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する制御手段、として、パーソナルコンピュータやサーバコンピュータ等の前記コンピュータを機能させるためのプログラムである。
【００１１】
本発明に係るライセンスキー発行装置（ライセンスキー生成方法、プログラム）では、適用回数情報と使用許諾情報との関係情報は、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定される。要求使用許諾情報を含むライセンスキー発行要求を取得されると、上記要求使用許諾情報に対応する適用回数情報が上記関係情報に基づいて取得される。そして、取得される適用回数情報と、取得される適用回数情報に基づく回数だけ所定初期値に一方向関数を適用することによって生成されるキー値と、を含むライセンスキーが生成される。そして、生成されたライセンスキーが出力（画面表示、印刷や送信等）される。ここで、一方向関数は、出力値から入力を推定することが困難であるという性質を有するものである。
【００１２】
また、本発明に係るプログラム実行装置（プログラム実行装置の制御方法、プログラム）では、適用回数情報と使用許諾情報との関係情報は、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定されている。適用回数情報とキー値と含むライセンスキーが取得されると、所定初期値に上記適用回数情報に基づく回数だけ一方向関数を適用することによってキー値が生成される。そして、生成したキー値と上記ライセンスキーに含まれるキー値とが比較される。その結果に応じて、上記関係情報に基づいて取得された、上記ライセンスキーに含まれる適用回数情報に対応する使用許諾情報に基づいて、プログラム実行装置に記憶される使用許諾情報が更新される。プログラムの実行は、この使用許諾情報に基づいて制御される。
【００１３】
本発明によれば、適用回数情報と使用許諾情報との関係情報は、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定される。また、ライセンスキーに含まれるキー値は、所定初期値に適用回数情報に基づく回数だけ一方向関数を適用することによって生成される。一方向関数は、出力値から入力を推定することが困難であるという性質を有しているため、発行されたライセンスキーに基づいて、このライセンスキーによって示される使用許諾内容より価値の高い（有利な、制限されていない）使用許諾内容を示すライセンスキーを生成することが困難となる。これによって、不正使用されにくいライセンスキーを発行（生成）することができるようになる。また、このライセンスキーを認証し、その結果に応じて、このライセンスキーが示す使用許諾情報をプログラム実行装置に記憶させることができるようになる。そして、プログラム実行装置におけるプログラムの実行が、この使用許諾情報に基づいて制御されるようにすることができる。
【００１４】
また、本発明に係るライセンスキー発行装置（ライセンスキー生成方法、プログラム）の一態様では、基準初期値を記憶する基準初期値記憶手段を含み、前記所定初期値は、前記基準初期値記憶手段によって記憶される基準初期値に基づくものであることを特徴とする。また、本発明に係るプログラム実行装置（プログラム実行装置の制御方法、プログラム）の一態様では、基準初期値を記憶する基準初期値記憶手段を含み、前記所定初期値は、前記基準初期値記憶手段によって記憶される基準初期値に基づくものであることを特徴とする。こうすれば、ライセンスキーに含まれるキー値の生成に使用される一方向関数の初期値を、記憶される基準初期値に基づいたものとすることができるようになる。
【００１５】
また、本発明に係るライセンスキー発行装置（ライセンスキー生成方法、プログラム）の一態様では、前記基準初期値記憶手段は、使用許諾情報に基づく使用許諾内容の所定範囲を識別する範囲識別情報に対応づけて前記基準初期値を記憶し、前記関係情報は、前記範囲識別情報ごとに設定され、前記所定初期値は、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に基づく要求使用許諾内容が含まれる前記所定範囲を識別する、範囲識別情報に対応づけて前記基準初期値記憶手段に記憶される基準初期値に基づくものであり、前記ライセンスキー生成手段は、前記発行要求取得手段によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に基づく要求使用許諾内容が含まれる前記所定範囲を識別する、範囲識別情報をさらに含むライセンスキーを生成することを特徴とする。また、本発明に係るプログラム実行装置（プログラム実行装置の制御方法、プログラム）の一態様では、前記基準初期値記憶手段は、使用許諾情報に基づく使用許諾内容の所定範囲を識別する範囲識別情報に対応づけて前記基準初期値を記憶し、前記ライセンスキーは、前記範囲識別情報をさらに含み、前記関係情報は、前記範囲識別情報ごとに設定され、前記所定初期値は、前記ライセンスキーに含まれる範囲識別情報に対応づけて前記基準初期値記憶手段に記憶される基準初期値に基づくものであることを特徴とする。
【００１６】
初期値が一定である場合には、キー値の生成は一方向関数の適用回数によってのみ制御されるため、より多くのキー値（ライセンスキーに含まれる）を生成するためには、最大適用回数（適用回数の上限）を増やす必要があるのに対し、こうすれば、キー値の生成が適用回数と基準初期値（例えば、複数の基準初期値）とによって制御されるため、最大適用回数（適用回数の上限）を増やすことなく、より多くのキー値を生成することができるようになる。このため、使用許諾内容を細かく区別するようなライセンスキーや、広範囲な使用許諾内容に対応するライセンスキー（例えば、大規模ユーザから小規模ユーザまで対応するようなライセンスキー）を、処理速度（パフォーマンス）を落とすことなく発行することができるようになる。
【００１７】
また、本発明に係るライセンスキー発行装置（ライセンスキー生成方法、プログラム）の一態様では、前記一方向関数は、ハッシュ関数であることを特徴とする。また、本発明に係るプログラム実行装置（プログラム実行装置の制御方法、プログラム）の一態様では、前記一方向関数は、ハッシュ関数であることを特徴とする。ハッシュ関数としては、例えば、ＭＤ５、ＭＡＳＨ、ＳＨＡ−１等を用いることができる。ハッシュ関数は、出力値（ハッシュ値）から入力を推定することが困難であるという性質を有するとともに、さらに、同一の出力値（ハッシュ値）となる異なる入力を見つけることが困難であるという性質を有するため、ライセンスキーをより不正使用されにくいものとすることができるようになる。
【００１８】
また、本発明に係るライセンスキー発行装置（ライセンスキー生成方法、プログラム）の一態様では、前記ライセンスキー発行要求を識別する発行要求識別情報を取得する発行要求識別情報取得手段をさらに含み、前記所定初期値は、前記発行要求識別情報取得手段によって取得される発行要求識別情報に基づくものであり、前記ライセンスキー生成手段は、前記発行要求識別情報取得手段によって取得される発行要求識別情報をさらに含むライセンスキーを生成することを特徴とする。また、本発明に係るプログラム実行装置（プログラム実行装置の制御方法、プログラム）の一態様では、前記ライセンスキーは、ライセンスキー発行要求を識別する発行要求識別情報をさらに含み、前記所定初期値は、前記ライセンスキーに含まれる発行要求識別情報に基づくものであることを特徴とする。
【００１９】
こうすれば、ライセンスキーに含まれるキー値を発行要求識別情報に基づくものとすることができる。このため、ライセンスキーを発行要求識別情報によって区別することができるようになり、１つのライセンスキーが同じプログラム実行装置に重複登録（複数回登録）されることを防ぐことができるようになる。なお、発行要求識別情報が異なれば、同一の使用許諾内容を示すライセンスキーを登録することができるようにしてもよい。また、発行要求識別情報は、ライセンスキー発行要求を完全に識別するものである必要はなく、ライセンスキー発行要求を実質的に識別できるものであればよい。
【００２０】
また、本発明に係るライセンスキー発行装置（ライセンスキー生成方法、プログラム）の一態様では、プログラム実行装置を識別する装置識別情報を取得する装置識別情報取得手段をさらに含み、前記所定初期値は、前記装置識別情報取得手段によって取得される装置識別情報に基づくものであることを特徴とする。また、本発明に係るプログラム実行装置（プログラム実行装置の制御方法、プログラム）の一態様では、当該装置を識別する装置識別情報を取得する装置識別情報取得手段をさらに含み、前記所定初期値は、前記装置識別情報取得手段によって取得される装置識別情報に基づくものであることを特徴とする。
【００２１】
こうすれば、ライセンスキーに含まれるキー値を装置識別情報に基づくものとすることができる。このため、１つのライセンスキーが、異なるプログラム実行装置に登録されることを防ぐことができるようになる。なお、装置識別情報は、プログラム実行装置を完全に識別するものである必要はなく、プログラム実行装置を実質的に識別できるものであればよい。
【００２２】
また、本発明の一態様では、前記使用許諾情報は、使用可能なユーザ数、使用可能な端末数、使用可能な期間、使用可能な等級、使用可能な回数、プログラム実行装置のＣＰＵ数のうち１又は複数を示すものであることを特徴とする。こうすれば、ライセンスキーを使用可能なユーザ数、使用可能な端末数、使用可能な期間、使用可能な等級（バージョン、グレード）、使用可能な回数又はプログラム実行装置の備えるＣＰＵ数等の１又は複数を示すものとすることができる。
【００２３】
【発明の実施の形態】
以下、本発明の好適な実施の形態について図面に基づき詳細に説明する。なお、以下では、プログラム実行装置で実行されるソフトウェア、すなわち、発行されるライセンスキーの対象となるソフトウェアとして、Ｗｅｂ版グループウェアを例に説明する。
【００２４】
図１は、本発明の実施の形態に係るライセンス管理システムの構成例（Ｗｅｂ版グループウェアに係る構成を含む）を示す図である。同図に示すように、このライセンス管理システム１０は、ライセンス管理サーバ１４（ライセンスキー発行装置）と、グループウェアサーバ１６（プログラム実行装置）と、クライアント１８と、を含んで構成されている。ライセンス管理サーバ１４及びグループウェアサーバ１６は、例えばＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）、ハードディスク記憶装置、ディスプレイ及び入力装置を備えた公知のサーバコンピュータシステムにより構成されている。また、クライアント１８は、例えばＣＰＵ、ハードディスク記憶装置、ディスプレイ及び入力装置を備えた公知のパーソナルコンピュータにより構成されている。ライセンス管理サーバ１４は、インターネット１２等によってグループウェアサーバ１６やクライアント１８と相互にデータ授受可能なよう通信接続されている。また、グループウェアサーバ１６及びクライアント１８は、ＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）１３によって相互にデータ授受可能なよう通信接続されている。
【００２５】
ライセンス管理サーバ１４は、上記グループウェアのライセンスを管理するためのサーバコンピュータであり、ライセンス管理者（例えば、上記グループウェアの開発元や販売元等）によって運用管理されるものである。ライセンス管理サーバ１４は、ライセンスキー発行サービスを提供するようになっている。すなわち、上記グループウェアのユーザからライセンスキー発行要求を受け付け、ライセンスキーを発行することができるようになっている。なお、ライセンスキー発行サービスは、ライセンス管理サーバ１４にインストールされているＣＧＩ（Ｃｏｍｍｏｎ　Ｇａｔｅｗａｙ　Ｉｎｔｅｒｆａｃｅ）プログラム等によって実現される。また、ライセンス管理サーバ１４は、データベースを備えており、ユーザ情報やライセンス管理情報等を記憶している。このデータベースは、例えば公知のハードディスク記憶装置や公知のデータベースマネージメントシステムによって構成される。
【００２６】
グループウェアサーバ１６は、主にクライアント１８からアクセスされるサーバコンピュータであり、Ｗｅｂ版グループウェアサービスを提供するようになっている。Ｗｅｂ版グループウェアは、ＨＴＴＰに則り、スケジュール管理サービス、掲示板管理サービス、アドレス帳管理サービス、ＴｏＤｏリスト管理サービス等をクライアント１８に提供する公知のソフトウェアである。具体的には、上記グループウェアは、グループウェアサーバ１６にインストールされているＣＧＩプログラムによって実現される。グループウェアサーバ１６には、さらにＨＴＴＰＤがインストールされており、一方、クライアント１８には、公知のＷｅｂブラウザがインストールされている。このため、クライアント１８においてＷｅｂブラウザを起動し、そこから上記ＣＧＩプログラムにアクセスすることにより、グループウェアサービスに係る各種画面がクライアント１８において表示されるようになっている。また、グループウェアサーバ１６は、上記グループウェアのライセンスキー登録サービスを提供するようになっている。すなわち、グループウェアサーバ１６は、発行されたライセンスキーの登録を受け付けることができるようになっている。このサービスも、ＣＧＩプログラム等によって実現されるものであり、詳細については後述する。
【００２７】
上記グループウェアを使用するにあたって、ユーザは、そのインストールプログラム（ＣＧＩプログラムやデータベース等をインストールするためのプログラム）をＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　−　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）等の情報記憶媒体を介して、或いはインターネット等のデータ通信回線を介して入手する。そして、このインストールプログラムによって、上記グループウェアを所定のサーバコンピュータにインストールする。上記グループウェアでは、インストール後の所定期間が試用期間として設定されており、ユーザは上記グループウェアを試用できるようになっている。ユーザは、上記グループウェアを所定期間試用した後、必要に応じたライセンスキーの発行を受け、上記グループウェアの本番使用を開始する。
【００２８】
図２及び図３は、ライセンス管理システム１０において実現される機能ブロックのうち、本発明に関連するものを中心として示す図である。図２は、ライセンス管理サーバ１４（ライセンスキー発行装置）において実現される機能ブロックのうち、本発明に関連するものを中心として示している。図３は、グループウェアサーバ１６（プログラム実行装置）において実現される機能ブロックのうち、本発明に関連するものを中心として示している。これらの機能は、サーバコンピュータ、パーソナルコンピュータ等のコンピュータによってプログラムが実行されることによって、実現されるものである。なお、このプログラムは、ＣＤ−ＲＯＭ等のコンピュータにより読み取り可能な情報記憶媒体や、インターネット等のデータ通信回線によってコンピュータに供給されるものである。
【００２９】
図２に示すように、ライセンス管理サーバ１４は、発行要求取得部２２、適用回数取得部２４、キー値生成部２６、ライセンスキー生成部２８、ライセンスキー出力部３０、基準初期値記憶部３２、発行要求識別情報取得部３４及び装置識別情報取得部３６を含んで構成される。
【００３０】
発行要求取得部２２は、要求使用許諾情報を含むライセンスキー発行要求を取得する。要求使用許諾情報は、要求使用許諾内容、例えば、ユーザが要求する使用許諾内容を示すものである。使用許諾内容は、例えば、当該ソフトウェアを使用可能なユーザ数、当該ソフトウェアをインストール可能な端末数、当該ソフトウェアによって提供されるサービスを利用可能なユーザ数又は端末数、当該ソフトウェアを使用可能な期間又は回数、当該ソフトウェアの有する機能のうち使用可能な機能、当該ソフトウェアを実行するサーバ等（プログラム実行装置）のＣＰＵ数等、又はこれらの組み合わせを示すものである。
【００３１】
適用回数取得部２４は、適用回数情報と使用許諾情報との関係情報に基づいて、要求使用許諾情報に対応する適用回数情報を取得する。ここで、適用回数情報と使用許諾情報との関係情報は、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定される。また、要求使用許諾情報は、発行要求取得部２２によって取得されるライセンスキー発行要求に含まれるものである。なお、適用回数情報と使用許諾情報との関係情報は、範囲識別情報ごとに設定されるようにしてもよい。ここで、範囲識別情報は、使用許諾情報に基づく使用許諾内容の所定範囲を識別するものである。
【００３２】
適用回数情報と使用許諾情報との関係情報は、例えば、図４に示すようになっている。同図は、区間ＩＤ（範囲識別情報）と適用回数との組み合わせに対応するライセンス数（使用許諾情報）を示している。例えば、区間ＩＤ「０００１」と適用回数「４」の組み合わせは、ライセンス数「８５００」に対応づけられている。ここで、区間ＩＤは、ライセンス数の範囲（使用許諾情報に基づく使用許諾内容の所定範囲）を識別するものである。例えば、区間ＩＤ「０００１」は、ライセンス数「５００」から「１００００」までの範囲を識別するものである。また、ライセンス数は、例えば、上記グループウェアの使用を許諾するユーザ数や、グループウェアサーバ１６へのアクセスを許諾するクライアント数（端末数）等を示すものである。また、適用回数は、ライセンスキーに含まれるキー値を生成するために、ハッシュ関数を適用する回数を示すものである。すなわち、ライセンス数「８５００」を示すライセンスキーに含まれるキー値は、所定の初期値にハッシュ関数を４回適用して取得されたハッシュ値となる。詳細については後述する。
【００３３】
また、同図では、適用回数（適用回数情報に基づく回数）が増加すると、対応するライセンス数が減少する（対応する使用許諾情報に基づく使用許諾内容が制限される）ようになっている。同図では、適用回数が１増加するごとに、対応するライセンス数が「５００」減少するようになっている。例えば、ライセンス数「８５００」を示すライセンスキーに含まれるキー値に、さらにハッシュ関数を１回適用すると、そのハッシュ値はライセンス数「８０００」を示すライセンスキーに含まれるキー値となる。こうすれば、ハッシュ関数は出力値（ハッシュ値）から入力値を算出することが困難であるという性質を有するため、発行されたライセンスキーに基づいて、さらに価値の高い（より制限されていない）ライセンスキーの発行を防ぐことができるようになる。なお、ここでは、ライセンス数の減少幅を「５００」としたが、「１００」や「１」とするようにしてもよい。このように減少幅を細かくすることによって、使用許諾内容が細かく異なるようなライセンスキーを発行することができる。
【００３４】
さらに、同図では、区間ＩＤには基準初期値が対応づけられている。基準初期値は、ハッシュ関数に適用される初期値を生成するためのものである。例えば、ライセンス数「８５００」を示すライセンスキーに含まれるキー値は、基準初期値「１２３４５」（区間ＩＤ「０００１」に対応づけられた基準初期値）に基づいて生成される初期値に、ハッシュ関数を「４」回適用して得られるハッシュ値となる。ここで、初期値が一定（一つ）である場合には、キー値の生成がハッシュ関数の適用回数によってのみ制御されるため、より多くのキー値を生成するためには（ライセンスキーの種類を増やすためには）、最大適用回数を増やす必要があるのに対し、同図のようにすれば、キー値の生成が適用回数と基準初期値とによって制御されるため、最大適用回数を増やすことなく、より多くのキー値を生成することができるようになる。例えば、初期値が一定である場合、１０００種類のキー値を生成するためには、最大適用回数は１０００となるが、初期値が１０種類ある場合には、最大適用回数は１００で済む。すなわち、ハッシュ関数による計算回数を減らすことができるようになる。
【００３５】
なお、この関係情報は、ライセンス管理サーバ１４とグループウェアサーバ１６とで同じ内容の情報を有するようになっている。また、この関係情報は、同図に示すようなテーブルによって表される必要はなく、数式によって表されるようにしてもよい。
【００３６】
キー値生成部２６は、所定初期値に、適用回数取得部２４によって取得される適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成する。なお、一方向関数はハッシュ関数であってもよい。また、所定初期値は、基準初期値記憶部３２によって記憶される基準初期値に基づくものとしてもよい。また、所定初期値は、発行要求取得部２２によって取得されるライセンスキー発行要求に含まれる要求使用許諾情報に基づく要求使用許諾内容が含まれる前記所定範囲を識別する、範囲識別情報に対応づけて基準初期値記憶部３２に記憶される基準初期値に基づくものとしてもよい。また、所定初期値は、発行要求識別情報取得部３４によって取得される発行要求識別情報に基づくものとしてもよい。また、所定初期値は、装置識別情報取得部３６によって取得される装置識別情報に基づくものとしてもよい。例えば、キー値生成部２６は、発行要求識別情報取得部３４によって取得される発行要求識別情報と、装置識別情報取得部３６によって取得される装置識別情報との少なくとも一方を所定初期値に加えて、キー値を生成するようにしてもよい。
【００３７】
ライセンスキー生成部２８は、適用回数取得部２４によって取得される適用回数とキー値生成部２６によって生成されるキー値とを含むライセンスキーを生成する。なお、ライセンスキーに含まれるキー値が、範囲識別情報に対応づけて基準初期値記憶部３２に記憶される基準初期値に基づく所定初期値に基づいて生成されたものである場合には、ライセンスキーに該範囲識別情報を含める。また、ライセンスキーに含まれるキー値が、発行要求識別情報取得部３４によって取得される発行要求識別情報に基づく所定初期値に基づいて生成されたものである場合には、ライセンスキーに該発行要求識別情報を含める。ライセンスキー出力部３０は、ライセンスキー生成部２８によって生成されるライセンスキーを出力（例えば、画面表示、印刷や送信等）する。
【００３８】
基準初期値記憶部３２は、例えば公知のハードディスク記憶装置やデータベースマネージメントシステムを含んで構成されたり、プログラム内部に含まれるものであり、基準初期値を記憶するものである。なお、基準初期値記憶部３２は、範囲識別情報に対応づけて基準初期値を記憶するようにしてもよい。例えば、基準初期値記憶部３２は、図４において説明したように、範囲識別情報と基準初期値とを対応づけて記憶する。
【００３９】
発行要求識別情報取得部３４は、発行要求識別情報を取得する。ここで、発行要求識別情報は、ライセンスキー発行要求を識別する情報である。なお、発行要求識別情報は、ライセンスキー発行要求を完全に識別するものである必要はなく、ライセンスキー発行要求を実質的に識別できるものでよい。例えば、発行要求識別情報は、ライセンスキー発行要求を受け付けた日時と乱数とを組み合わせたものとすればよい。
【００４０】
装置識別情報取得部３６は、装置識別情報を取得する。ここで、装置識別情報は、プログラム実行装置（グループウェアサーバ１６）を識別する情報である。なお、装置識別情報は、プログラム実行装置を完全に識別するものである必要はなく、プログラム実行装置を実質的に識別できるものでよい。例えば、装置識別情報は、プログラム実行装置に装着されたＮＩＣ（Ｎｅｔｗｏｒｋ　Ｉｎｔｅｒｆａｃｅ　Ｃａｒｄ）のＭＡＣ（Ｍｅｄｉａ　Ａｃｃｅｓｓ　Ｃｏｎｔｒｏｌ）アドレスと乱数とを組み合わせたものとすればよい。
【００４１】
また、図３に示すように、グループウェアサーバ１６は、装置識別情報取得部４０、基準初期値記憶部４２、ライセンスキー取得部４４、キー値生成部４６、キー値比較部４８、使用許諾情報取得部５０、使用許諾情報更新部５２、使用許諾情報記憶部５４及び制御部５６を含んで構成される。
【００４２】
装置識別情報取得部４０は、当該装置を識別する装置識別情報を取得する。例えば、装置識別情報取得部４０は、装置識別情報を記憶する装置識別情報記憶部を含むものであり、装置識別情報記憶部に記憶される装置識別情報を取得するものである。また、基準初期値記憶部４２は、例えば公知のハードディスク記憶装置やデータベースマネージメントシステムを含んで構成されたり、プログラム内部に含まれるものであり、基準初期値を記憶する。なお、基準初期値記憶部４２は、範囲識別情報に対応づけて基準初期値を記憶するようにしてもよい。例えば、基準初期値記憶部４２は、図４において説明したように、範囲識別情報と基準初期値とを対応づけて記憶する。
【００４３】
ライセンスキー取得部４４は、ライセンスキーを取得する。ここで、ライセンスキーは、適用回数情報とキー値とを含むものである。なお、ライセンスキーに含まれるキー値が、範囲識別情報に対応する基準初期値に基づく所定初期値に基づいて生成されたものである場合には、ライセンスキーに該範囲識別情報が含まれる。また、ライセンスキーに含まれるキー値が、発行要求識別情報に基づく所定初期値に基づいて生成されたものである場合には、ライセンスキーに該発行要求識別情報を含まれる。
【００４４】
キー値生成部４６は、所定初期値に、ライセンスキー取得部４４によって取得されるライセンスキーに含まれる適用回数情報に基づく回数だけ一方向関数を適用することによって、キー値を生成する。なお、一方向関数は、ハッシュ関数であってもよい。また、ライセンスキーに含まれるキー値が、基準初期値に基づく所定初期値に基づいて生成されたものである場合には、所定初期値は、基準初期値記憶部４２によって記憶される基準初期値に基づくものとする。また、ライセンスキーに含まれるキー値が、範囲識別情報に対応する基準初期値に基づく所定初期値に基づいて生成されたものである場合には、所定初期値は、ライセンスキー取得部４４によって取得されるライセンスキーに含まれる範囲識別情報に対応づけて基準初期値記憶部４２に記憶される基準初期値に基づくものとする。また、ライセンスキーに含まれるキー値が、発行要求識別情報に基づく所定初期値に基づいて生成されたものである場合には、所定初期値は、ライセンスキー取得部４４によって取得されるライセンスキーに含まれる発行要求識別情報に基づくものとする。また、ライセンスキーに含まれるキー値が、装置識別情報に基づく所定初期値に基づいて生成されたものである場合には、所定初期値は、装置識別情報取得部４０によって取得される装置識別情報に基づくものとする。例えば、キー値生成部４６は、ライセンスキー取得部４４によって取得されるライセンスキーに含まれる発行要求識別情報と、装置識別情報取得部４０によって取得される装置識別情報との少なくとも一方を所定初期値に加えて、キー値を生成するようにしてもよい。また、キー値比較部４８は、キー値生成部４６によって生成されるキー値と、ライセンスキー取得部４４によって取得されるライセンスキーに含まれるキー値と、を比較する。
【００４５】
使用許諾情報取得部５０は、適用回数情報と使用許諾情報との関係情報に基づいて、ライセンスキー取得部４４によって取得されるライセンスキーに含まれる適用回数情報に対応する使用許諾情報を取得する。ここで、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定される。なお、適用回数情報と使用許諾情報との関係情報は、範囲識別情報ごとに設定されるようにしてもよい。また、適用回数情報と使用許諾情報との関係情報は、例えば図４に示すようなものであり、ライセンス管理サーバ１４とグループウェアサーバ１６とで同じ内容の情報が有されるようになっている。
【００４６】
使用許諾情報更新部５２は、キー値比較部４８による比較結果に基づいて、使用許諾情報記憶部５４に記憶される使用許諾情報を、使用許諾情報取得部５０によって取得される使用許諾情報に基づいて更新する。使用許諾情報記憶部５４は、例えば公知のハードディスク記憶装置やデータベースマネージメントシステムを含んで構成されるものであり、当該プログラム実行装置における使用許諾内容を示す使用許諾情報を記憶する。使用許諾情報記憶部５４は、例えば図６に示すような、ライセンスキー登録テーブルを記憶する。ライセンスキー登録テーブルについては後述する。制御部５６は、使用許諾情報記憶部５４によって記憶される使用許諾情報に基づいて、プログラムの実行を制御する。
【００４７】
以下、ライセンス管理システム１０の動作、特に、上記グループウェアのインストールからライセンスキーの登録までについて説明する。
【００４８】
先述したように、上記グループウェアを使用するにあたって、ユーザは、そのインストールプログラムをＣＤ−ＲＯＭ等の情報記憶媒体を介して、或いはインターネット等のデータ通信回線を介して入手する。そして、ユーザは、グループウェアサーバ１６として機能させるサーバコンピュータに上記グループウェアをインストールする。上記グループウェアがインストールされると、グループウェアサーバ１６には、図５に示すようなデータと、図６に示すようなライセンスキー登録テーブルとが記憶される。
【００４９】
図５において、ＰＩＤ（装置識別情報）は、グループウェアサーバ１６（プログラム実行装置）を識別するものである。ＰＩＤは、インストールプログラムによって生成される。ＰＩＤは、グループウェアサーバ１６を完全に識別するものである必要はなく、実質的に識別するものであればよい。例えば、ＰＩＤは、グループウェアサーバ１６に装着されるＮＩＣのＭＡＣアドレスと、乱数と、に基づいて生成されるようにすればよい。また、グループウェアサーバ１６に装着されるＮＩＣのＭＡＣアドレスと、インストールが実行された日時と、に基づいて生成されるようにしてもよい。生成されたＰＩＤは、インストールプログラムによって、インターネット１２を介してライセンス管理サーバ１４に送信される。ライセンス管理サーバ１４では、図７に示すようなユーザ情報テーブルによって、ＰＩＤが記憶（管理）される。すなわち、ＰＩＤは、ユーザを識別するＵＩＤ（ユーザ識別情報）に対応づけて記憶される。また、ユーザ情報テーブルでは、ＵＩＤやＰＩＤの他に、例えばユーザ名やメールアドレス等が記憶されるようにしてもよい。
【００５０】
また、図５において、試用フラグは、「試用」か「本番使用」かを示すものである。上記グループウェアのインストール後であって、ライセンスキーの登録が行われるまでは、試用フラグは「試用」を示すものとなる。ライセンスキーの登録が行われると、試用フラグは「本番使用」を示すものへと変更される。
【００５１】
また、図６に示すライセンスキー登録テーブルは、グループウェアサーバ１６に対して登録されたライセンスキーを記憶するためのものである。上記グループウェアのインストール後であって、ライセンスキーの登録が行われるまでは、レコードのない状態となる。ライセンスキー登録テーブルへのライセンスキーの登録については後述する。
【００５２】
ユーザは、上記グループウェアを所定期間試用した後、必要に応じたライセンスキーの発行要求を行い、ライセンスキーの発行を受ける。ユーザによるライセンスキーの発行要求は、ライセンス管理サーバ１４によって提供されるライセンスキー発行サービスによって行われる。具体的には、ユーザは、クライアント１８においてＷｅｂブラウザを起動し、そこからライセンス管理サーバ１４の所定のＣＧＩプログラム（ライセンスキー発行サービスに係るもの）にアクセスすることにより、ライセンスキー発行要求画面がクライアント１８において表示されるようになっている。ユーザは、ライセンスキー発行要求画面において、ＵＩＤや希望ライセンス数（要求使用許諾情報）等を入力する。入力されたＵＩＤや希望ライセンス数等は、ライセンスキー発行要求としてライセンス管理サーバ１４に送信される。そして、このライセンスキー発行要求を受信したライセンス管理サーバ１４では、ライセンスキー発行処理が実行される。
【００５３】
ライセンス管理サーバ１４におけるライセンスキー発行処理を図８に示す。同図に示すように、ライセンス管理サーバ１４の発行要求取得部２２は、ライセンスキー発行要求（以下、発行要求とする。）を受信する（Ｓ１０１）。発行要求は、先述したようにＵＩＤや希望ライセンス数等を含むものである。発行要求を受信すると、ライセンス管理サーバ１４は、発行要求が正当であるか否かを判断する（Ｓ１０２）。例えば、発行要求に含まれるＵＩＤがユーザ情報テーブル（図７参照）に登録されているか否か等について判断する。発行要求が正当でないと判断される場合には、その旨をユーザに通知するとともに、ライセンスキー発行処理を終了する。
【００５４】
一方、発行要求が正当であると判断される場合には、ライセンス管理サーバ１４の装置情報取得部３６は、発行要求に基づいて、ＰＩＤを取得する（Ｓ１０３）。具体的には、ユーザ情報テーブルから、発行要求に含まれるＵＩＤに対応づけられたＰＩＤを取得する。例えば、ＵＩＤが「００１」であれば、ＰＩＤとして「ＡＢＣＤＥＦＧＨ」を取得する（図７参照）。
【００５５】
次に、ライセンス管理サーバ１４の発行要求識別情報取得部３４は、ライセンスキー発行要求ＩＤ（発行要求識別情報。以下、発行要求ＩＤとする。）を生成する（Ｓ１０４）。発行要求ＩＤは、発行要求を一意に識別するためのものである。発行要求ＩＤは、例えば、発行要求を受信した日時に基づいて生成するようにすればよい。また、例えば、発行要求を受信した日時と乱数とに基づいて生成するようにすればよい。
【００５６】
次に、ライセンス管理サーバ１４の適用回数取得部２４は、発行要求に基づいて、区間ＩＤ、基準初期値及び適用回数とを取得する（Ｓ１０５）。具体的には、適用回数情報と使用許諾情報との関係情報（図４）に基づいて、発行要求に含まれる希望ライセンス数に対応する区間ＩＤ、基準初期値及び適用回数とを取得する。例えば、希望ライセンス数が「８５００」であれば、区間ＩＤとして「０００１」を、基準初期値として「１２３４５」を、適用回数として「４」を取得する（図４参照）。
【００５７】
次に、ライセンス管理サーバ１４は、Ｓ１０４において生成した発行要求ＩＤと、Ｓ１０３で取得したＰＩＤと、Ｓ１０５において取得した基準初期値と、に基づいて、初期値を生成する（Ｓ１０６）。例えば、これらを連結した文字列に基づいて初期値を生成するようにすればよい。そして、ライセンス管理サーバ１４のキー値生成部２６は、この初期値にＳ１０５で取得した適用回数だけハッシュ関数を適用し、得られるハッシュ値をキー値として取得する（Ｓ１０７）。以上のように、ライセンスキーに含まれるキー値の生成は、発行要求ＩＤとＰＩＤとに基づいて行われる。このため、生成されるライセンスキーは、発行要求ＩＤとＰＩＤとに基づいたものとなる。
【００５８】
次に、ライセンス管理サーバ１４のライセンスキー生成部２８は、ライセンスキーを生成する（Ｓ１０８）。ライセンスキーは、図９に示すように、Ｓ１０４において生成した発行要求ＩＤと、Ｓ１０５において取得した区間ＩＤと、Ｓ１０５において取得した適用回数と、Ｓ１０７において取得したキー値と、を含んで構成される。例えば、ライセンスキーは、発行要求ＩＤと区間ＩＤと適用回数とキー値とをそれぞれハイフン（−）等で連結したものとすればよい。なお、ライセンスキーに適用回数を含ませるのは、ライセンスキーの認証処理のパフォーマンスを向上するためである。
【００５９】
そして、ライセンス管理サーバ１４のライセンスキー出力部３０は、生成したライセンスキーを出力する（Ｓ１０９）。例えば、生成したライセンスキーを画面表示するためのＨＴＭＬファイルを生成し、このＨＴＭＬファイルをクライアント１８等（ライセンスキー発行要求を行ったクライアント）に送信するようにしてもよい。また、ライセンスキーが記載された電子メールをユーザに送信するようにしてもよい。この場合、発行要求に通知先メールアドレスが含まれるようにし（ライセンスキー発行要求画面において通知先メールアドレスが入力されるようにし）、ライセンス管理サーバ１４が、Ｓ１０８において生成したライセンスキーを通知先メールアドレスあてに送信するようにすればよい。
【００６０】
以上でライセンスキーの発行処理は完了する。なお、以上に説明したライセンスキー発行処理は、ライセンス管理サーバ１４においてプログラムが実行されることによって実現されるものである。
【００６１】
ユーザは、発行されたライセンスキーを、図１０に示すような、ライセンスキー登録画面において登録する。このライセンスキー登録画面は、クライアント１８においてＷｅｂブラウザを起動し、そこからグループウェアサーバ１６の所定のＣＧＩプログラム（ライセンスキー登録サービスに係るもの）にアクセスすることにより、クライアント１８において表示されるようになっている。
【００６２】
同図に示すように、ライセンスキー登録画面７０には、ライセンスキー入力欄７２（７２ａ〜７２ｄ）、ライセンス数表示欄７４、合計ライセンス数表示欄７６及び登録リンクボタン７８が表示される。ライセンスキー入力欄７２（７２ａ〜７２ｄ）には、発行されたライセンスキーが入力される。例えば、通知されたライセンスキーが「ＡＡＡ−ＢＢＢ−ＣＣＣ−ＤＤＤ」であれば、ライセンスキー入力欄７２ａに「ＡＡＡ」を、入力欄７２ｂに「ＢＢＢ」を、入力欄７２ｃに「ＣＣＣ」を、入力欄７２ｄに「ＤＤＤ」をそれぞれ入力する。ライセンス数表示欄７４には、ライセンスキーの登録完了後に、各ライセンスキーが示すライセンス数が表示される。合計ライセンス数表示欄７６には、ライセンス数表示欄７４の合計が表示される。また、登録リンクボタン７８は、ライセンスキー登録処理を実行するＣＧＩプログラムへのリンクとなっている。この登録リンクボタン７８がクリックされると、入力されたライセンスキーを含むライセンスキー登録要求が、グループウェアサーバ１６に送信される。そして、グループウェアサーバ１６では、送信されたライセンスキー登録要求に基づいて、ライセンスキー登録処理が実行され、ライセンスキー登録テーブル（図６）にライセンスキーが登録される。なお、ライセンスキー登録画面７０には、ライセンスキー登録テーブルにすでにライセンスキーが登録されている場合には、登録済みのライセンスキーが表示される。また、登録済みのライセンスキーの表示の他に、ライセンスキー入力欄７２（７２ａ〜７２ｄ）が一組だけ表示されるようにしてもよい。
【００６３】
グループウェアサーバ１６におけるライセンスキー登録処理を図１１に示す。同図に示すように、グループウェアサーバ１６のライセンスキー取得部４４は、ライセンスキー登録要求（以下、登録要求とする。）を受信する（Ｓ２０１）。登録要求を受信すると、グループウェアサーバ１６は、登録要求に含まれるライセンスキーからライセンスキー発行要求ＩＤ（入力欄ａに入力したもの）、区間ＩＤ（入力欄ｂに入力したもの）、適用回数（入力欄ｃに入力したもの）、キー値（入力欄ｄに入力したもの）を取得する（Ｓ２０２）。
【００６４】
次に、グループウェアサーバ１６は、Ｓ２０２において取得したライセンス発行要求ＩＤが、ライセンスキー登録テーブルにすでに登録されていないことを確認する（Ｓ２０３）。この確認を行うことによって、グループウェアサーバ１６に、同じライセンスキーが重複登録されることを防ぐことができる。ライセンスキー発行要求ＩＤがすでに登録されている場合には、その旨をユーザに通知するための画面（エラー画面）を表示するためのＨＴＭＬファイルを生成する（Ｓ２１３）。
【００６５】
一方、ライセンス発行要求ＩＤが登録されていない場合には、グループウェアサーバ１６は、Ｓ２０２において取得した区間ＩＤに対応する基準初期値を取得する（Ｓ２０４）。具体的には、適用回数情報と使用許諾情報との関係情報（図４）に基づいて、Ｓ２０２において取得した区間ＩＤに対応する基準初期値を取得する、例えば、区間ＩＤが「０００１」であれば、基準初期値として「１２３４５」を取得する（図４参照）。
【００６６】
次に、グループウェアサーバ１６は、ＰＩＤを取得する（Ｓ２０５）。ＰＩＤは、上記グループウェアのインストール時に生成され、グループウェアサーバ１６に記憶されているものである（図５参照）。そして、グループウェアサーバ１６は、Ｓ２０２において取得したライセンスキー発行要求ＩＤと、Ｓ２０５において取得したＰＩＤと、Ｓ２０４において取得した基準初期値とに基づいて、初期値を生成する（Ｓ２０６）。なお、初期値の生成方法は、Ｓ１０５と同じ方法である。そして、グループウェアサーバ１６のキー値生成部４６は、この初期値にＳ２０２で取得した適用回数だけハッシュ関数を適用し、得られるハッシュ値をキー値として取得する（Ｓ２０７）。なお、ここで使用されるハッシュ関数は、Ｓ１０６で使用されるハッシュ関数と同じものである。
【００６７】
次に、グループウェアサーバ１６のキー値比較部４８は、Ｓ２０２において取得したキー値と、Ｓ２０７において取得したキー値とが一致するか否かを判断する（Ｓ２０８）。一致しないと判断される場合には、ユーザによって入力されたライセンスキーに誤りがあると判断し、その旨をユーザに通知するための画面（エラー画面）を表示するためのＨＴＭＬファイルを生成する（Ｓ２１３）。
【００６８】
一方、一致すると判断される場合には、グループウェアサーバ１６の使用許諾情報取得部５０は、Ｓ２０２において取得した区間ＩＤと適用回数とに対応するライセンス数を取得する（Ｓ２０９）。具体的には、適用回数情報と使用許諾情報との関係情報（図４）に基づいて、ライセンス数を取得する。例えば、区間ＩＤが「０００１」であり、適用回数が「４」であれば、ライセンス数として「８５００」を取得する（図４参照）。
【００６９】
次に、グループウェアサーバ１６の使用許諾情報更新部５２は、Ｓ２０１で受信した登録要求に含まれるライセンスキーと、Ｓ２０９において取得したライセンス数とをライセンスキー登録テーブルに登録する（Ｓ２１０）。すなわち、ライセンスキー登録テーブルの対応するフィールドにそれぞれ登録する。そして、ライセンス数の合計が０から変更になる場合（ライセンスキーがはじめて登録される場合）には、試用フラグ（図５）を「試用」から「本番使用」を示すものへと変更する（Ｓ２１１）。以降、グループウェアサーバ１６の制御部５６は、上記グループウェアが「本番使用」として実行されるように制御する。また、グループウェアサーバ１６の制御部５６は、上記グループウェアが、ライセンスキー登録テーブルに登録されたライセンス数（使用許諾内容）に基づいて実行されるように制御する。
【００７０】
次に、グループウェアサーバ１６は、ユーザにライセンスキーの登録状況を通知するための画面を表示するためのＨＴＭＬファイルを生成する（Ｓ２１２）。そして、グループウェアサーバ１６は、Ｓ２１２、或いはＳ２１３において生成したＨＴＭＬファイルをクライアント１８に送信する（Ｓ２１２、Ｓ２１３）。クライアント１８では、これらのＨＴＭＬファイルに基づいた画面が表示される。
【００７１】
なお、本実施の形態に係るライセンスキーには、グループウェアサーバ１６を識別するＰＩＤ（装置識別情報）に基づいて生成されたキー値が含まれている。そして、Ｓ２０８においては、このキー値と、グループウェアサーバ１６に記憶されるＰＩＤに基づいて生成されたキー値（Ｓ２０７）とが比較されることによって、ライセンスキーの正当性が検証されるようになっている。このため、発行されたライセンスキーを、他のグループウェアサーバ１６において登録することができないようになっている。
【００７２】
また、本実施の形態に係るライセンスキーには、適用回数が含まれるようになっている。ライセンスキーに適用回数が含まれない場合には、Ｓ２０７及びＳ２０８において、初期値（Ｓ２０６において生成したもの）にハッシュ関数を適用し、得られるハッシュ値（キー値）をＳ２０２において取得したキー値と比較するという処理を、キー値が一致するまで、又は、適用回数が上限（図４の場合であれば「２０」）に達するまで繰り返す必要がある。これに対し、本実施の形態に係るライセンスキーのように、適用回数が含まれている場合には、上記比較処理を繰り返す必要がなく、ライセンスキーの認証処理（Ｓ２０７及びＳ２０８）のパフォーマンスを向上することができる。
【００７３】
以上でライセンスキーの登録処理は完了する。なお、以上に説明したライセンスキー登録処理は、グループウェアサーバ１６においてプログラムが実行されることによって実現されるものである。
【００７４】
以上説明したライセンス管理サーバ１４（ライセンスキー発行装置）、グループウェアサーバ１６（プログラム実行装置）によれば、ライセンスキーに含まれるキー値は、一方向性（ハッシュ値から入力値を算出することが困難）を有するハッシュ関数によって生成される。また、ハッシュ関数の適用回数と使用許諾内容との関係は、適用回数が増加すると、対応する使用許諾内容が制限されるように設定される。このため、発行されたライセンスキーに基づいて、より高い価値を有する（より制限されていない）ライセンスキーを生成することが困難となる。
【００７５】
また、ライセンスキーに含まれるキー値を生成するための基準初期値は、使用許諾内容の所定範囲ごとに設定される。初期値が一定である場合には、キー値の生成がハッシュ関数の適用回数によってのみ制御されるため、より多くのキー値を生成するためには（ライセンスキーの種類を増やすためには）、最大適用回数（適用回数の上限）を増やす必要があるのに対し、以上によれば、キー値の生成が適用回数と基準初期値（例えば、複数の基準初期値）とによって制御されるため、最大適用回数を増やすことなく、より多くのキー値を生成することができるようになる。このため、使用許諾内容を細かく区別するようなライセンスキーや、広範囲な使用許諾内容に対応するライセンスキー（例えば、大規模ユーザから小規模ユーザまで対応するようなライセンスキー）を、処理速度（パフォーマンス）を落とすことなく発行することができるようになり、ライセンスキー発行における柔軟性を向上することができるようになる。
【００７６】
また、ライセンスキーに含まれるキー値は、グループウェアサーバ１６を識別するＰＩＤ（装置識別情報）に基づいて生成される。そして、ライセンスキー登録処理では、このキー値は、グループウェアサーバ１６に記憶されるＰＩＤに基づいて生成されるキー値と比較されるようになっている。このため、発行されたライセンスキーが、他のグループウェアサーバ１６において登録されることを防ぐことができるようになる。すなわち、１つのライセンスキーが、異なるグループウェアサーバ１６で登録されないようにすることができるようになる。
【００７７】
また、ライセンスキーには、ライセンスキー発行要求ＩＤ（発行要求識別情報）が含まれ、ライセンスキーに含まれるキー値は、ライセンスキー発行要求ＩＤに基づいて生成される。そして、ライセンスキー登録処理においては、すでに登録されているライセンスキーのライセンスキー発行要求ＩＤを含むライセンスキーは登録されないようになっている。また、ライセンスキー登録処理では、ライセンスキーに含まれるキー値と、ライセンスキーに含まれるライセンスキー発行要求ＩＤに基づいて生成されるキー値とが比較されるようになっている。このため、グループウェアサーバ１６では複数のライセンスキーを登録できるようになっているが、同じライセンスキーが重複登録（複数回登録）されないようにすることができる。
【００７８】
すなわち、以上説明したライセンス管理サーバ１４（ライセンスキー発行装置）、グループウェアサーバ１６（プログラム実行装置）によれば、ライセンスキーを不正使用されにくいものとすることができる。
【００７９】
なお、本発明は以上説明した実施の形態に限定されるものではない。
【００８０】
例えば、以上では、ソフトウェアとしてＷｅｂ版グループウェアを例に説明したが、ソフトウェアはＷｅｂ版グループウェアに限られない。すなわち、Ｗｅｂ版グループウェアのように、サーバコンピュータにインストールされ、該サーバコンピュータで実行されるプログラムにクライアントからアクセスして使用するようなソフトウェアに限られない。他の種類のソフトウェアであってもよい。例えば、各クライアントにインストールされ、各クライアントで実行されるようなソフトウェアであってもよい。また、ソフトウェアはプログラムに限られない。
【００８１】
また、以上では、インターネット１２等によって、ライセンス管理サーバ１４とグループウェアサーバ１６とが相互にデータ授受可能なよう通信接続されることとして説明したが、必ずしもライセンス管理サーバ１４とグループウェアサーバ１６とが通信接続される必要はない。例えば、グループウェアサーバ１６からインターネット１２を介してライセンス管理サーバ１４に送信されることとして説明したＰＩＤや、クライアント１８からインターネット１２を介してライセンス管理サーバ１４に送信されることとして説明したライセンスキー発行要求や、ライセンス管理サーバ１４において生成されたライセンスキーは、電話、ＦＡＸ、郵便や電子メール等を介して相手（ユーザやライセンス管理者）に通知されるようにしてもよい。
【００８２】
【発明の効果】
以上説明したように、本発明によれば、適用回数情報と使用許諾情報との関係情報は、適用回数情報に基づく回数が増加すると、対応する使用許諾情報に基づく使用許諾内容が制限されるように設定されている。また、ライセンスキーに含まれるキー値は、適用回数情報に基づく回数だけ一方向関数を適用することによって生成される。これによって、発行されたライセンスキーに基づいて、より価値の高い（制限されていない）使用許諾内容を示すライセンスキーを生成することが困難となる。このため、ライセンスキーを不正使用されにくいものとすることができるようになる。
【図面の簡単な説明】
【図１】本実施の形態に係るライセンス管理システムの全体構成を示す図である。
【図２】本実施の形態に係るライセンスキー発行装置の機能ブロック図である。
【図３】本実施の形態に係るプログラム実行装置の機能ブロック図である。
【図４】適用回数情報と使用許諾情報との関係情報の一例を示す図である。
【図５】プログラム実行装置に記憶されるデータ構成を示す図である。
【図６】ライセンスキー登録テーブルの一例を示す図である。
【図７】ユーザ情報テーブルの一例を示す図である。
【図８】ライセンスキー発行処理を示すフロー図である。
【図９】ライセンスキーの構成の一例を示す図である。
【図１０】ライセンスキー登録画面の一例を示す図である。
【図１１】ライセンスキー登録処理を示すフロー図である。
【符号の説明】
１０　ライセンス管理システム、１２　インターネット、１３　ＬＡＮ、１４ライセンス管理サーバ、１６　グループウェアサーバ、１８　クライアント、２２　発行要求取得部、２４　適用回数取得部、２６　キー値生成部、２８　ライセンスキー生成部、３０ライセンスキー出力部、３２　基準初期値記憶部、３４　発行要求識別情報取得部、３６　装置識別情報取得部、４０　装置識別情報取得部、４２　基準初期値記憶部、４４　ライセンスキー取得部、４６　キー値生成部、４８　キー値比較部、５０　使用許諾情報取得部、５２　使用許諾情報更新部、５４　使用許諾情報記憶部、５６　制御部、７０　ライセンスキー登録画面、７２（７２ａ〜７２ｄ）　ライセンスキー入力欄、７４　ライセンス数表示欄、７６　合計ライセンス数表示欄、７８　登録リンクボタン。
【図１】
2004102552.tif 000003
【図２】
2004102552.tif 000004
【図３】
2004102552.tif 000005
【図４】
2004102552.tif 000006
【図５】
2004102552.tif 000007
【図６】
2004102552.tif 000008
【図７】
2004102552.tif 000009
【図８】
2004102552.tif 000010
【図９】
2004102552.tif 000011
【図１０】
2004102552.tif 000012
【図１１】
2004102552.tif 000013