(57)【要約】  【課題】解決しようとする問題点は、パスワードデータやシステムに書き込まれた日付や時刻のデータの解析を妨害し、ソフトウェア中の有効期間のチェックルーチンの無効化を防ぎ、有効期間の延長や再有効化をソフトウェアパッケージの内容変更や再インストールすることなく行うことである。  【解決手段】ある時点で配布される有効期間に関する情報を含まないパスワードデータＰＷａが、ある一定の期間有効なパスワードとして対象のソフトウェア上で機能すればよい。ソフトウェアの重要な部分もしくは全部をあるパスワードＰＷｂを使って暗号化しておき、有効期間内のパスワードデータＰＷａと現在時刻からＰＷｂが単純な数式から導出できればよい。また、ある時点でのパスワードデータＰＷａ１から次の期間有効なパスワードＰＷａ２が推測できないようにしておけばよい。  【選択図】        図３
2005216114.tif 000002
【特許請求の範囲】
【請求項１】
有効期間に関する情報が埋め込まれていないパスワードデータをユーザに告知するだけで、システム上に有効期間に関する情報をシステムに書き込むことなくソフトウェアを一定期間だけ有効にする方法。
【請求項２】
有効期間延長に関する情報が埋め込まれていないパスワードデータをユーザに告知するだけで、システム上に有効期間に関する情報をシステムに書き込むことなく、配布するソフトウェアパッケージの内容の変更や再インストールを行うことなくソフトウェアの有効期間を延長する方法。
【請求項３】
有効期間に関する情報が埋め込まれていないパスワードデータをユーザに告知するだけで、システム上に有効期間に関する情報をシステムに書き込むことなく、配布するソフトウェアパッケージの内容の変更や再インストールを行うことなく有効期間を過ぎてしまったソフトウェアを再度一定期間有効にする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、試用版のソフトウェアのような一定期間だけ動作することを目的としたソフトウェアを作成し運用する方法に関するものである。
【背景技術】
【０００２】
試用版のソフトウェアのように一定期間だけ動作することを目的としたソフトウェアは、ユーザに配布するパスワードデータに有効期間に関するデータを埋め込んだり、インストールした日付と時刻のデータをシステムに書き込む等を行うことで一定期間ソフトウェアを有効にするという方法をとっていた。
【０００３】
しかし、パスワードデータが解析されたり、システムに書き込まれたインストールした日付と時刻のデータが改竄されるなどして有効期間が不正に延長されたり事実上無期限にされたりしていた。
【０００４】
また、ソフトウェア上の有効期間のチェックルーチンを通らないようにソフトウェアを改竄されることもあった。有効期間の延長や、有効期間が過ぎたものを再度有効にするためには再インストールを必要とするものがほとんどであった。
【０００５】
さらに、有効期間の延長や、有効期間が過ぎたものを再度有効にするためには再インストールを必要とするものがほとんどであった。
【０００６】
この改善策として、有効期間に関する情報が埋め込まれていないパスワードデータを使用し、また有効期間に関する情報をシステム上に残さず、有効期間に関するチェックルーチンをもソフトウェア中に持たないことでこれらの問題を解決した。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
解決しようとする問題点は、パスワードデータやシステムに書き込まれた日付や時刻のデータの解析を妨害し、ソフトウェア中の有効期間のチェックルーチンの無効化を防ぎ、有効期間の延長や再有効化をソフトウェアパッケージの内容変更や再インストールすることなく行うことである。
【課題を解決するための手段】
【０００８】
ある時点で配布される有効期間に関する情報を含まないパスワードデータＰＷａが、ある一定の期間有効なパスワードとして対象のソフトウェア上で機能すればよい。ソフトウェアの重要な部分もしくは全部をあるパスワードＰＷｂを使って暗号化しておき、有効期間内のパスワードデータＰＷａと現在時刻からＰＷｂが単純な数式から導出できればよい。また、ある時点でのパスワードデータＰＷａ１から次の期間有効なパスワードＰＷａ２が推測できないようにしておけばよい。
【発明の効果】
【０００９】
以上説明したように本発明の方法では、パスワードデータ上に有効期間に関する情報を含まず、システム上に有効期間に関する情報を記録する必要も無いため有効期間を不正に延長することができない。また、有効判断の条件分岐でなく、暗号化データの復号化という手段を採用しているので条件分岐を回避させるような不正改竄の方法も無効となる。また、有効期間の延長や再有効化も新たな期間用のパスワードを提供するだけで行うことができる。
【発明を実施するための最良の形態】
【００１０】
この方法はコンピュータプログラムとしてもハードウェアとしても実装が可能である。
【実施例】
【００１１】
図１のように、数列を作成する。数列は一方向暗号を使用して作成する。一方向暗号関数をhash()とすれば、PWa(n)=hash(PWa(n-1))となるように数列を作成する。この数列を作成するために任意の数値PWa1を用意しておく。この数列の要素ががソフトウェアのユーザに配布するパスワードデータＰＷａとなる。
【００１２】
作成した数列に対して有効期間TERMを図１の２のように定義する。対象のソフトウェアを有効にしたい期間からTERM(r)のrの値が決まる。
【００１３】
nが決定されたらソフトウェア中の暗号化領域を暗号化するためのパスワードPWbを決定する。図１の３のようにPWb=PWa(m)である。ここで、m＞rである。
【００１４】
ソフトウェアベンダは図２のようにソフトウェア中の暗号化領域「Software Module "M"」をPWbをパスワードとして共通鍵暗号で暗号化して「Encrypted Software Module "X"」を作成し対象ソフトウェア中に埋め込む。
【００１５】
ユーザはソフトウェアベンダからパスワードデータPWa(n)を受け取り対象ソフトウェアの起動時に入力する。ソフトウェアは起動時点の日付と時刻からTERMnを決定する。TERMnのnからm-nを決定し、入力されたPWa(n)からPWb=PWa(m)を計算する。図３のように、PWbでの「Encrypted Software Module "X"」の復号が成功すれば、ソフトウェアは正常に実行される。
【００１６】
ユーザが有効期間にない鍵を使用すれば正しいPWbが生成されないため「Encrypted Software Module "X"」の復号は失敗しソフトウェアは正常に実行されなくなる。
【００１７】
一方向関数を使用してユーザのパスワードデータは生成されているため、現在有効なパスワードから次回以降の期間のパスワードを推測することは不可能である。
【図面の簡単な説明】
【００１８】
【図１】パスワードデータ数列と有効期間TERMの対応図
【図２】パスワードPWbを使用してのソフトウェア内の暗号化領域の暗号化図
【図３】パスワードデータPWa(n)を使用してのソフトウェア内の暗号化領域の復号化図
【符号の説明】
【００１９】
１    ユーザに配布するパスワードデータ数列
２    パスワードデータに対応させる有効期間
３    ソフトウェア内の暗号化領域を暗号化するパスワード
【図１】
2005216114.tif 000003
【図２】
2005216114.tif 000004
【図３】
2005216114.tif 000005