(57)【要約】【課題】  ライセンス発行システムのような集中管理するためのサーバを必要とすることなく、実行権の移送を可能とするプログラム実行制御装置および実行権情報の移送方法を提供することを目的とする。【解決手段】  アプリケーションプログラムを実行可能とする実行権を示す実行権情報をＩＣカード２０に記憶し、検証部１１では実行権情報が正当なものであることを検証して、制御部１２はアプリケーションプログラムの実行を可能としている。ＩＣカード２０の移送部２３では、格納部２１に記憶されている実行権情報を暗号化して実行権移送情報を生成する。そして、生成された実行権移送情報を、サーバを介することなく他の端末に送信する。受領側では受信した実行権移送情報を復号化して記憶する。そして、受領側では実行権情報を用いてアプリケーションプログラムの起動を可能とする。【選択図】  図１
2006048446.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行可能とする実行権を示す実行権情報を記憶する記憶手段と、前記実行権情報が正当なものであることを検証する検証手段と、前記検証手段による検証に基づいてプログラムを起動させる制御を行う制御手段とを備えるプログラム実行制御装置において、
実行権情報の送信先が入力される操作手段と、
前記記憶手段に記憶されている実行権情報を含む情報を暗号化することで、または当該実行権情報を含む情報に電子署名を付加することで、実行権移送情報を生成する実行権移送情報生成手段と、
前記実行権移送情報生成手段により生成された実行権移送情報を、前記操作手段により入力された送信先に送信する送信手段と、
を備えるプログラム実行制御装置。
【請求項２】
前記記憶手段、前記送信手段、および前記実行権移送情報生成手段は、耐タンパ装置内に構成されていることを特徴とする請求項１記載のプログラム実行制御装置。
【請求項３】
前記実行権情報は、前記プログラムのハッシュ値であることを特徴とする請求項１又は２に記載のプログラム実行制御装置。
【請求項４】
前記実行権情報は、数値で表される度数情報を含み、
前記プログラムが起動するたびに、前記度数情報から所定数を減算し、または前記度数情報に所定数を加算する第１演算手段と、
前記第１演算手段により演算された結果、前記度数情報が予め定めた基準値に達した場合、前記実行権情報を削除する第１削除手段と、
をさらに備える請求項１〜３のいずれか１項に記載のプログラム実行制御装置。
【請求項５】
前記実行権情報は、数値で表される度数情報を含み、
前記送信手段による実行権移送情報が送信されるたびに、前記度数情報から所定数を減算し、または前記度数情報に所定数を加算する第２演算手段と、
前記第２演算手段により減算または加算された結果、前記度数情報が予め定めた基準値に達した場合、前記実行権情報を削除する第２削除手段と、をさらに備え、
前記実行権移送情報生成手段は、減算又は加算した数値を度数とした実行権情報を暗号化し、または減算又は加算した数値を度数とした実行権情報に電子署名を付加し、前記送信手段は、生成された実行権移送情報を送信することを特徴とする請求項１〜４のいずれか１項に記載のプログラム実行制御装置。
【請求項６】
他の端末から実行権移送情報を受信する受信手段と、
前記受信手段により受信された実行権移送情報を復号化することで、または実行権移送情報に付加された電子署名の正当性を判断することで、実行権情報を含む情報を生成する実行権情報生成手段と、をさらに備え、
前記記憶手段は、前記実行権情報生成手段により生成された実行権情報を記憶することを特徴とする請求項１〜５のいずれか１項に記載のプログラム実行制御装置。
【請求項７】
前記受信手段は、度数を含んだ実行権移送情報を受信し、
前記実行権情報生成手段により生成された実行権情報と同じ実行権情報が、既に前記記憶手段に記憶されている場合、既に前記記憶手段に記憶されている実行権情報の度数に、前記受信手段により受信された実行権情報の度数を加算した実行権情報を前記記憶手段が記憶することを特徴とする請求項６に記載のプログラム実行制御装置。
【請求項８】
プログラムを実行可能とする実行権を示す実行権情報を記憶し、前記実行権情報が正当なものであることを検証することによってプログラムの実行を制御するプログラム実行制御装置における実行権情報の移送方法であって、
前記実行権情報の送信先の入力を受け付ける入力ステップと、
前記実行権情報を含む情報を暗号化することで、または当該実行権情報を含む情報に電子署名を付加することで、実行権移送情報を生成する実行権移送情報生成ステップと、
前記実行権移送情報を、入力された前記送信先に送信する送信ステップと、
を備える実行権情報の移送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス情報などの実行権情報を用いてプログラムを実行可能に制御するプログラム実行制御装置および実行権情報の移送方法に関する。
【背景技術】
【０００２】
近年、市販プログラムなどが不正に複製されて、使用されることを防止するための技術が存在する。例えば、ドングルと呼ばれる外部機器（以下、「ドングル」と称する）を、パソコンなどのプログラムを実行する装置のＵＳＢポートなどの接続インターフェース部に接続し、このドングルが接続されている場合のみプログラムを実行する技術が知られている。
【０００３】
しかしながら、ドングルを利用する技術においては、物理的にドングルを輸送して、プログラムの実行権を与える必要がある。例えば、インターネットなどでプログラムを販売することは一般的であるが、ドングルを用いて実行制御を行う場合は、別途郵送などによりドングルを購入者に郵送する必要がある。また、プログラムを転売若しくは譲渡する場合も同様にドングルを輸送する必要がある。
【０００４】
また、このドングルのような物理的なハードウエアを接続することなく、電子情報であるライセンス情報をユーザに与えることによりプログラムを実行させることができる技術が知られている。例えば、特許文献１に記載の技術のように、サーバ（ライセンス発行システム）が通信回線を介してユーザシステムにライセンス情報を与え、ユーザがライセンス情報を受けたときにアプリケーションプログラムを実行する技術が知られている。
【特許文献１】特開平１０−１４９２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術においては、実行権情報を移送する際には、ライセンス情報を発行するサーバが既に実行権を与えている端末装置から実行権情報を消去して、別の端末に実行権情報を与えることにより、実質的に実行権情報の移送を可能にしている。よって、実行権を移送しようとする端末はサーバと接続する必要があり、実行権の移送が制限される場合がある。また、サーバ側でライセンス情報などの実行権情報を集中管理することが必要と考えられ、その管理のためのセキュリティなどの様々な処理が必要である。よって、システム全体としての構成が複雑になる。
【０００６】
そこで、本発明は、ライセンス情報などの実行権を他の端末に移送する際には、ライセンス発行システムのような集中管理のためのサーバを必要とすることなく、実行権の移送を可能とするプログラム実行制御装置および実行権情報の移送方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明のプログラム実行制御装置は、プログラムを実行可能とする実行権を示す実行権情報を記憶する記憶手段と、前記実行権情報が正当なものであることを検証する検証手段と、前記検証手段による検証に基づいてプログラムを起動させる制御を行う制御手段とを備えるプログラム実行制御装置において、実行権情報の送信先が入力される操作手段と、前記記憶手段に記憶されている実行権情報を含む情報を暗号化することで、または当該実行権情報を含む情報に電子署名を付加することで、実行権移送情報を生成する実行権移送情報生成手段と、前記実行権移送情報生成手段により生成された実行権移送情報を、前記操作手段により入力された送信先に送信する送信手段と、を備えている。
【０００８】
また、本発明の実行権情報の移送方法は、プログラムを実行可能とする実行権を示す実行権情報を記憶し、前記実行権情報が正当なものであることを検証することによってプログラムの実行を制御するプログラム実行制御装置における実行権情報の移送方法であって、前記実行権情報の送信先の入力を受け付ける入力ステップと、前記実行権情報を含む情報を暗号化することで、または当該実行権情報を含む情報に電子署名を付加することで、実行権移送情報を生成する実行権移送情報生成ステップと、前記実行権移送情報を、入力された前記送信先に送信する送信ステップと、を備えている。
【０００９】
この発明によれば、プログラムを実行可能とさせる実行権情報を含む情報が暗号化されて、または実行権情報を含む情報に電子署名が付加されて、生成された実行権移送情報が他の端末にサーバを介することなく送信されることにより、実行権情報をサーバなどで集中管理することなく他の端末に送信することができる。
【００１０】
また、本発明のプログラム実行制御装置の上記記憶手段、上記送信手段、およ
び上記実行権移送情報生成手段は、耐タンパ装置内に構成されることも好ましい。
【００１１】
この発明によれば、実行権情報を扱う記憶手段、送信手段、および実行権移送情報生成手段をＩＣカードなどの耐タンパ装置に組み込むことにより、実行権情報の不正な複製や改竄を防止することができる。
【００１２】
また、本発明のプログラム実行制御装置の上記実行権情報は、上記プログラムのハッシュ値とすることも好ましい。
【００１３】
この発明によれば、ＭＤ５またはＳＨＡ−１などの公知のハッシュ関数によるハッシュ値を用いて実行権情報の正当性を判断させることにより、プログラムが改竄された際にその実行を未然に防止することができる。
【００１４】
また、本発明のプログラム実行制御装置の上記実行権情報は、数値で表される度数情報を含み、上記プログラムが起動するたびに、上記度数情報から所定数を減算し、または上記度数情報に所定数を加算する第１演算手段と、上記第１演算手段により演算された結果、上記度数情報が予め定めた基準値に達した場合、上記実行権情報を削除する第１削除手段と、を備えることも好ましい。
【００１５】
この発明によれば、実行権情報に含まれる度数情報に対して、プログラムが起動するごとに所定数を加算または減算していって、予め定めた基準値に達すると、実行権情報を削除することにより、実行権情報を使用することのできる回数を制限することができる。よって、実行権情報の不正な複製や改竄を行わせる機会を少なくすることができる。
【００１６】
また、本発明のプログラム実行制御装置の上記実行権情報は、数値で表される度数情報を含み、上記送信手段による実行権移送情報が送信されるたびに、上記度数情報から所定数を減算し、または上記度数情報に所定数を加算する第２演算手段と、上記第２演算手段により減算または加算された結果、上記度数情報が予め定めた基準値に達した場合、上記実行権情報を削除する第２削除手段と、をさらに備え、上記実行権移送情報生成手段は、減算又は加算した数値を度数とした実行権情報を含む情報を暗号化し、または減算又は加算した数値を度数とした実行権情報を含む情報に電子署名を付加し、上記送信手段は、生成された実行権移送情報を送信することも好ましい。
【００１７】
この発明によれば、実行権情報に含まれる度数情報に対して、暗号化された実行権移送情報が送信される際、所定数を加算または減算し、加算または減算された数値を度数として実行権情報を含む情報を暗号化して、または当該実行権情報を含む情報に電子署名を付加して、生成された実行権移送情報を送信することにより、送信元に実行権情報を保持したまま他の端末に実行権情報を送信することができ、実行権情報の分割を行うことができる。また、度数情報が予め定めた基準値に達した場合には、実行権情報を削除することにより、実質的に実行権情報の移動を可能とする。
【００１８】
また、本発明のプログラム実行制御装置は、他の端末から実行権移送情報を受信する受信手段と、上記受信手段により受信された実行権移送情報を復号化することで、または実行権移送情報に付加された電子署名の正当性を判断することで、実行権情報を含む情報を生成する実行権情報生成手段と、をさらに備え、上記記憶手段は、上記実行権情報生成手段により生成された実行権情報を記憶することも好ましい。
【００１９】
この発明によれば、実行権移送情報を受信して、これを復号化してまたは電子署名の正当性を判断して、当該実行権移送情報から取得された実行権情報を記憶手段に記憶することにより、実行権情報を他の端末から得ることができる。
【００２０】
また、本発明のプログラム実行制御装置の上記受信手段は、度数を含んだ実行権移送情報を受信し、上記実行権情報生成手段により生成された実行権情報と同じ実行権情報が、既に上記記憶手段に記憶されている場合、既に上記記憶手段に記憶されている実行権情報の度数に、上記受信手段により受信した実行権情報の度数を加算した実行権情報を上記記憶手段が記憶するよう構成することも好ましい。
【００２１】
この発明によれば、実行権情報に含まれる度数を受領側で加算して、加算した度数を実行権情報の度数とすることにより、度数を追加することができる。
【発明の効果】
【００２２】
本発明は、プログラムを実行可能とさせる実行権情報を含む情報が暗号化されることにより、または当該実行権情報を含む情報に電子署名が付加されることにより実行権移送情報が生成され、生成された実行権移送情報が他の端末にサーバを介することなく送信されることにより、実行権情報をサーバなどで集中管理することなく他の端末に送信することができる。
【発明を実施するための最良の形態】
【００２３】
以下、本発明のプログラム実行制御装置およびプログラム実行制御方法の実施の形態について、添付図面を参照しながら説明する。可能な場合には、同一の部分には同一の符号を付して、重複する説明を省略する。
【００２４】
まず、本実施形態のプログラム実行制御装置について説明する。図１は、プログラム実行制御装置１のブロック構成図である。プログラム実行制御装置１は、情報処理装置１０およびＩＣカード２０から構成されており、情報処理装置１０に形成されているＩＣカード挿入口にＩＣカード２０が挿入された状態で、プログラム実行制御装置１は動作する。情報処理装置１０は、検証部１１（検証手段）、制御部１２（制御手段）、アプリケーション格納部１３、および通信部１４を含んで構成される。また、ＩＣカード２０は、格納部２１（記憶手段）、減算部２２（第１演算手段、第２演算手段、第１削除手段、および第２削除手段）、移送部２３（実行権移送情報生成手段および送信手段）、および受領部２４（実行権情報生成手段および受信手段）を含んで構成されるものであり、外部からの違法なアクセスを禁止し、またメモリの内容を読み出すことのできない、いわゆる耐タンパ装置である。耐タンパ装置としては、ＩＣカードのほか、スティック状のＩＣメモリなどがある。なお、通信部１４および移送部２３は、本発明の送信手段として機能し、通信部１４および受領部２４は、本発明の受信手段として機能する。以下、各構成について説明する。
【００２５】
検証部１１は、アプリケーションプログラムの起動指示がなされたときに、起動するアプリケーションプログラムのハッシュ値を計算し、これを予め記憶されているハッシュ値と等しいか否かを検証する検証手段である。ハッシュ値の計算方法としては、例えばハッシュ関数の一種であるＳＨＡ−１（Secure Hash Algorithm 1）、またはＭＤ５（Message Digest 5）などが挙げられる。検証部１１は、格納部２１に格納された実行権情報のハッシュ値が計算したハッシュ値と等しいかを検証し、格納部２１に複数の実行権情報が記憶されている場合には、ハッシュ値が等しいものが見つかるまで繰り返し検証処理を行う。そして、制御部１２は検証部１１の検証結果に基づいて、さらに、後述する減算部２２の減算結果に基づいてアプリケーションプログラムの動作を可能か、否かを判断することができる。
【００２６】
制御部１２は、検証部１１の検証結果に基づいてアプリケーション格納部１３に記憶されているアプリケーションを起動する制御手段として機能する。
【００２７】
アプリケーション格納部１３は、アプリケーションを記憶するメモリである。
【００２８】
通信部１４は、ＬＡＮまたはインターネットなどのネットワークと接続する接続インターフェースである。この通信部１４は、ＩＤとＩＰアドレスとを対応付けて記憶する管理サーバと通信し、またＩＣカード２０の移送部２３および受領部２４を用いて実行権情報の送受信を行う。
【００２９】
操作部１５は、ユーザによる入力操作、またはアプリケーションプログラムの起動指示が行われる操作手段であり、ユーザによるＩＣカード２０のＩＤの入力または起動指示を受け付けることができる。なお、ＩＣカード２０のＩＤの代わりに、送信先のＩＰアドレスを直接入力することもできる。
【００３０】
格納部２１は、実行権情報を記憶する記憶手段である。実行権情報は、アプリケーションプログラムに基づいて生成されたハッシュ値（ハッシュ値の計算方法としては上述と同様にＳＨＡ−１、およびＭＤ５がある）と、数値で表される度数情報とから構成される。このうち度数情報は、実行権情報が有効であることを示す情報であり、アプリケーションプログラムが実行されるたびに、または実行権情報が移送されるたびに、Ｎずつ減算される数値情報である（Ｎは１以上の整数）。そして、度数が０未満になると、実行権情報は無効とされ、アプリケーションプログラムの起動ができなくなる。
【００３１】
この実行権情報の概念図を図２に示す。図２は、実行権情報の概念図であり、アプリケーションプログラムに基づいて生成されたハッシュ値、および度数情報から構成されている。このハッシュ値、および度数情報の初期値は、プログラム実行制御装置の通信部１４を使ってネットワーク上に配置されるライセンスサーバから取得される情報であり、ライセンスサーバでハッシュ値、および度数が予め生成されている。なお、ライセンスサーバとの接続は初期値を取得するときのみであり、実行権情報の移送時には接続されない。
【００３２】
図１に戻り、引き続き説明する。減算部２２は、格納部２１に記憶される度数情報を減算して、度数＞０、度数＝０、または度数＜０のいずれの状態であるか判断するものである。
【００３３】
減算部２２は、格納部２１に記憶されている度数情報からＮずつ減算する処理を実行する第１減算手段および第２減算手段として機能する。そして、減算して得た結果が０より大であるか、０より小であるか、または０であるか、いずれかを判断する。アプリケーションプログラムの起動時に、度数情報を減算して得た結果が０以上であると、減算部２２が判断した場合は、検証部１１にその旨の出力を行う。また、０より小である場合は、その旨の出力を行う。検証部１１では、０以上であるとの出力を受けるとアプリケーションプログラムを起動させる。なお、減算部２２が、減算して得た結果が０であると判断した場合は、該当する実行権情報を削除する。よって減算部２２は第１削除手段としても機能する。
【００３４】
また、実行権情報を移送する際に度数情報を減算して得た結果が０以上であると、減算部２２が判断した場合は、移送部２３に対して実行権情報の移送を行うよう指示を出力する。また、０より小である場合は、実行権情報の移送の指示を出力しない。なお、減算部２２が、減算して得た結果が０であると判断した場合は、該当する実行権情報を削除する。よって減算部２２は第２削除手段としても機能する。
【００３５】
移送部２３は、格納部２１に記憶される実行権情報を抽出し、抽出した実行権情報を暗号化して実行権移送情報を生成し、生成された実行権移送情報を送信するものであって、実行権移送情報生成手段および送信手段として機能する。また、暗号化処理の代わりに或いは必要に応じて、電子署名を実行権情報に付加することにより、実行権移送情報を生成して、生成された実行権移送情報を送信先に送信することもできる。なお、実行権移送情報には、アプリケーションを実行させるための実行権情報以外に、例えばリプレーアタックを防止するための乱数情報など、他の情報が含まれる場合もある。
【００３６】
ここで、実行権移送情報の概念図について説明する。図３は、実行権移送情報の概念図である。図３に示すとおり、実行権移送情報は、暗号化された（または電子署名が付加された）実行権情報である。実行権移送情報は、受領側（ネットワーク上に配置される他の端末）で復号化できるように受領側と共有した暗号鍵を用いて暗号化された情報である。なお、共有化した暗号鍵を用いて暗号化する代わりに、秘密鍵を用いて暗号化するとともに、Diffie-Hellman鍵交換方式を用いてこの秘密鍵を受領側に通知するようにしても良い。
【００３７】
受領部２４は、通信部１４を介して接続した他のプログラム実行制御装置から暗号化された実行権情報である実行権移送情報を復号化して受信することで実行権情報を生成するものであって、実行権情報生成手段および受信手段として機能する。また、実行権情報の送信元から電子署名を受信するとこれを解析してその正当性を判断することを行うこともできる。受領部２４は、受信した実行権移送情報を送信側のプログラム実行制御装置と共有化した暗号鍵を用いて復号化して、実行権情報を取得する。受領部２４は、取得した実行権情報を格納部２１に登録する。なお、電子署名が付加された実行権情報を取得した場合は、電子署名の正当性を確認した後に、受信した実行権情報を格納部２１に登録するようにする。また、受領部２４は、格納部２１に実行権情報を登録する際、以下の処理を行うよう構成しても良い。
【００３８】
受領部２４は、復号化された実行権情報と等しい実行権情報（度数以外の実行権情報の部分）が既に格納部に記憶されているか、否かを、判断する。具体的には、ハッシュ値が同じ実行権情報の有無を判断する。そして、受領部２４では、ハッシュ値が同じ実行権情報が存在すると、受信した実行権情報の度数を抽出し、抽出した度数を、すでに格納部に記憶している実行権情報の度数に加算する。加算して得られた実行権情報を格納する。これより、実行権情報の度数を追加することができる。
【００３９】
他のプログラム実行制御装置は、上述のプログラム実行制御装置と同じ構成とされているため、その説明を省略する。
【００４０】
次に、このプログラム実行制御装置１の動作について説明する。まず、ＩＣカード２０に格納されている実行権情報を用いてアプリケーションを起動して動作させるときの処理について説明する。図４は、実行権情報を用いてアプリケーションを起動させるときの処理を示すフローチャートである。
【００４１】
まず、ユーザの操作によりアプリケーション格納部１３に格納されたアプリケーションプログラムの起動操作が行われる（Ｓ１０１）。そして、検証部１１によりアプリケーションプログラムのハッシュ値が計算される（Ｓ１０２）。次に、検証部１１により、計算されたハッシュ値とＩＣカード２０に格納されている実行権情報のハッシュ値とが比較される（Ｓ１０３）。検証部１１により、計算されたハッシュ値とＩＣカード２０に格納されている実行権情報のハッシュ値とが一致したと判断された場合（Ｓ１０４）、減算部２２により、格納部２１に記憶されている度数情報からＮだけ減算する。なお、ここではＮを１とするが、Ｎを２以上の数値としてもよい。また、Ｓ１０４において、ハッシュ値一致しなかった場合、その処理を終了する。
【００４２】
減算した（度数情報−Ｎ）が、０より大であるか、０より小であるか、または０であるか、が減算部２２により判断される（Ｓ１０６）。ここで、（度数情報−Ｎ）＜０であると判断される場合、アプリケーションプログラムを実行するための度数が足りなかったとして、アプリケーションプログラムを起動することなく、処理が終了する。なお、ここでは、実行権情報を削除することはしない。これは、上述したＮが２以上である場合は、度数が少なくとも１つ残っている場合があり、のちに度数のみを追加することにより、実行権情報を実質的に有効にすることができるからである。
【００４３】
また、（度数情報−Ｎ）＞０であると判断される場合、減算して得られた数値を度数情報とする（Ｓ１０７）。これは次回アプリケーションを起動するときには、減算して得られた数値に置き換えられた度数情報に基づいて判断させるためである。度数情報を、減算して得られた数値とした後、プログラムが起動する（Ｓ１０９）。
【００４４】
また、（度数情報−Ｎ）＝０であると判断される場合、実行権情報を削除する（Ｓ１０８）。度数が残っている場合と異なり、実行権情報を度数情報とともに削除している。度数が残っている場合と異なって、実行権情報の全てを再登録する場合は、その再登録する処理に手間が変わらないからである。なお、度数情報のみを減算して０にし、実行権情報を削除しないよう制御することもできる。そして、実行権情報が削除されると、プログラムが起動する（Ｓ１０９）。
【００４５】
このように、実行権情報を判断することにより、アプリケーションの起動をしてよいか、否かを判断することができる。
【００４６】
次に、実行権情報を他のプログラム実行制御装置に移送するときの動作について説明する。図５は、他のプログラム実行制御装置に移送するときのプログラム実行制御装置１の処理を示すフローチャートである。
【００４７】
まず、ユーザによる実行権情報の移送の処理が行われる（Ｓ２０１）。ここでは、ユーザにより送信先である他のプログラム実行制御装置のＩＣカードのＩＤを入力することにより、送信先が特定される。入力されたＩＤは、通信部１４によりネットワークに配置されている管理サーバに送信され、管理サーバでは受信したＩＤに対応したＩＰアドレスを抽出して返信する。通信部１４はこの返信を受信することにより、送信先のＩＰアドレスを本実施形態のプログラム実行制御装置は取得することができる。
【００４８】
なお、ＩＤとＩＰアドレスと対応関係を記憶する管理サーバは、ＩＣカードを保持するユーザの操作により予めＩＤとＩＰアドレスとが対応付けて登録される。具体的には、ＩＣカードがプログラム実行制御装置に挿入されたときにプログラム実行制御装置がこれを検知し、ＩＣカードのＩＤを読み取って、読み取ったＩＤとプログラム実行制御装置のＩＰアドレスとを通信部１４を用いて管理サーバに登録する。なお、このような処理をすることなく、ＩＰアドレスを直接入力するようにしても良い。また、ユーザは送信先を入力するほか、実行権情報の度数を入力するようにしてもよい。これにより、ユーザは自らの意思に応じた値を入力することができ、実行権情報の全てを移送することができるようになる。
【００４９】
ユーザによる操作が行われ、送信先のＩＰアドレスが取得されると、ＩＰアドレスを移送部に２３に出力し、制御部１２は移送部２３にその旨の指示を行う（Ｓ２０２）。この指示を受けた移送部２３は減算部２２に対して度数の減算処理を指示する（Ｓ２０３）。そして、減算部２２は（度数情報−Ｎ）を計算する（Ｓ２０４）。なお、ここでＮは１以上の数値をとることができるが、ユーザの操作によりＮとして大きな値を入力することができ、実質的に実行権の全てを移送すること、または実行権を分割することができる。
【００５０】
この演算式により、（度数情報−Ｎ）＜０である場合（Ｓ２０５）、実行権情報の移送処理を行うことなく、処理を終了する。また、（度数情報−Ｎ）＞０である場合（Ｓ２０５）、移送部２３により、度数情報をＮとした実行権情報が共有化された暗号鍵を用いて暗号化されることで実行権移送情報が生成される（Ｓ２０６）。そして、移送部２３により、実行権移送情報が通信部１４を介して接続される他のプログラム実行制御装置に送信される（Ｓ２０９）。送信後、（度数情報−Ｎ）で得た数値を新たな度数情報として格納部２１はこの新たな度数情報を実行権情報として記憶する。そして、次回の実行権情報の移送処理時またはプログラムの起動処理時に、新たな度数情報が用いられ、この度数情報を基準に判断される。
【００５１】
また、（度数情報−Ｎ）＝０である場合（Ｓ２０５）、移送部２３により、実行権情報の度数をＮとして、この実行権情報が暗号化されて（または実行権情報に電子署名を付加して）実行権移送情報が生成される（Ｓ２０７）。そして、減算部２２により実行権情報は格納部２１から削除される（Ｓ２０８）。削除後、移送部２３により、実行権移送情報が通信部１４を介して接続される他のプログラム実行制御装置に送信される（Ｓ２０９）。送信後の処理は、上述とは異なり、実行権情報が削除されていることから何もせず終了する。
【００５２】
受領側である他のプログラム実行制御装置は、サーバを介することなく実行権移送情報を受信する（Ｓ３０１）。受信した実行権移送情報は共有化された暗号鍵に基づいて復号化されることで、実行権情報が生成される（Ｓ３０２）。そして、生成された実行権情報は、他のプログラム実行制御装置におけるＩＣカードの所定の格納部に記憶される（Ｓ３０３）。なお、格納部に格納するに際して、以下の処理を行っても良い。
【００５３】
復号化された実行権情報と等しい実行権情報（度数以外の実行権情報の部分）が、既に格納部に記憶されているか、否かを、受領側のＩＣカードにおいて判断する。具体的には、ハッシュ値が同じ実行権情報の有無を判断する。ハッシュ値が同じ実行権情報が存在すると、受信した実行権情報の度数を抽出し、抽出した度数を、すでに格納部に記憶している実行権情報の度数に加算する。加算して得られた実行権情報を格納する。これより、実行権情報の度数を追加することができる。
【００５４】
このように、移送される際には実行権情報は共有化された暗号鍵を用いて暗号化され、受領側では共有化された暗号鍵を用いて復号化して受信することができることから、実行権情報は改竄されることなく、同一性を担保しつつ、他の装置に安全に移送することができる。電子署名が付加された実行権情報についても同様に、同一性を担保しつつ、他の装置に安全に移送することができる。
【００５５】
なお、実行権情報を移送するに際して、上述の暗号化する方法のほか、特開２００１−１４３００９号公報に記載されているとおり、データ全体をハッシュ関数によるハッシュ値に変換して送信する方法を採用することができる。
【００５６】
また、上述のプログラム実行制御装置１は、度数情報がライセンスサーバから与えられた数値として、プログラムが起動するたびに、または実行権情報を移送するたびに度数情報からＮずつを減算する処理をしているが、これに限るものではなく、初期値として度数を０とし、プログラムが起動するたびに、または実行権情報を移送するたびに度数情報にＭを加算していき、所定数に達したときに、プログラムを実行し、また実行権情報の移送を可能とし、さらにＭが加算された度数が所定値に達したときには、実行権情報を削除するようにしてもよい。
【００５７】
次に、本実施形態のプログラム実行制御装置１の作用効果について説明する。本実施形態のプログラム実行制御装置１は、プログラムを実行可能とさせる実行権情報を含む情報を、移送部２３が暗号化して、または実行権情報を含む情報に電子署名が付加されて、生成された実行権移送情報を他のプログラム実行制御装置にサーバを介することなく送信することにより、実行権情報をサーバなどで集中管理することなく他の端末に送信することができる。
【００５８】
また、本実施形態のプログラム実行制御装置１は、実行権情報を扱う格納部２１、移送部２３をＩＣカードなどの耐タンパ装置に組み込むことにより、実行権情報の不正な複製や改竄を防止することができる。また、あわせて受領部２４を耐タンパ装置に組み込むこともできる。
【００５９】
また、本実施形態のプログラム実行制御装置１は、ＭＤ５またはＳＨＡ−１などの公知のハッシュ関数によるハッシュ値を用いて実行権情報の正当性を判断させることにより、プログラムが改竄された際にその実行を未然に防止することができる。
【００６０】
また、本実施形態のプログラム実行制御装置１は、実行権情報に含まれる度数情報に対して、減算部２２がプログラムが起動するごとに所定数を減算していって、予め定めた基準値に達すると、実行権情報を削除することにより、実行権情報を使用することのできる回数を有限にすることができる。よって、実行権情報の不正な複製や改竄を行わせる機会を少なくすることができる。なお、減算の代わりに加算するようにしてもよい。
【００６１】
また、本実施形態のプログラム実行制御装置１は、実行権情報に含まれる度数情報に対して、暗号化されたまたは電子署名が付加された実行権移送情報が送信される際、減算部２２により所定数を減算し、減算された数値を度数として実行権情報を含む情報を移送部２４により暗号化して、または実行権情報を含む情報に電子署名を付加して、暗号化された、または電子署名が付加された実行権移送情報を送信することにより、送信元に実行権情報を保持したまま他の端末に実行権情報を送信することができ、実行権情報の分割を行うことができる。また、度数情報が予め定めた基準値に達した場合には、実行権情報を削除することにより、実質的に実行権情報の移動を可能とする。なお、減算の代わりに加算するようにしてもよい。
【００６２】
また、本実施形態のプログラム実行制御装置１は、受領部２４により実行権移送情報を受信して、これを復号化してまたは電子署名の正当性を判断して、当該実行権情報を格納部２１が記憶することにより、実行権情報を他の端末から得ることができる。
【００６３】
また、本実施形態のプログラム実行制御装置１は、受領部２４により実行権情報に含まれる度数を受領側で加算して、加算した度数を実行権情報の度数とすることにより、度数を追加することができる。
【図面の簡単な説明】
【００６４】
【図１】プログラム実行制御装置のブロック構成図である。
【図２】実行権情報の概念図である。
【図３】実行権移送情報の概念図である。
【図４】実行権情報を用いてアプリケーションを起動させるときの処理を示すフローチャートである。
【図５】他のプログラム実行制御装置に移送するときのプログラム実行制御装置の処理を示すフローチャートである。
【符号の説明】
【００６５】
１・・・プログラム実行制御装置、１０・・・情報処理装置、１１・・・検証部、１２・・・制御部、１３・・・アプリケーション格納部、１４・・・通信部、２０・・・カード、２１・・・格納部、２２・・・減算部、２３・・・移送部、２４・・・受領部。
【図１】
2006048446.tif 000003
【図２】
2006048446.tif 000004
【図３】
2006048446.tif 000005
【図４】
2006048446.tif 000006
【図５】
2006048446.tif 000007