(57)【要約】      （修正有）【課題】複数のアルゴリズムが存在するなかで、どのアルゴリズムを使用すべきかを特定するプログラム及び情報処理システムを提供する。【解決手段】ライセンスキーを作成するプログラムであって、ライセンスキーを作成する際に使用するアルゴリズムを決定するステップと、決定に基づいたアルゴリズムを用いてライセンスキーの一部を作成するステップと、作成された情報に、使用されたアルゴリズムを特定する情報を付加するステップとを含む。１個以上用意されているアルゴリズムのうち、どのアルゴリズムを用いて変換するかを決定する第１のステップと、第１のステップにおける決定内容に基づいてアルゴリズムを使用してほかの情報に変換する第２のステップと、を有する。【選択図】図１１
2020194246.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置２は、暗号化および復号に必要な鍵を作成する第１のステップと、
情報処理装置２は、第１のステップによって作成された鍵であって、少なくとも暗号化のために必要な鍵を記憶装置に記憶させる第４０２のステップと、
情報処理装置１は、第４０２のステップによって記憶された鍵を取得する第４０４のステップと、
情報処理装置１は、情報処理装置２が情報処理装置１のためのライセンスキーを作成するために必要な情報を記録した情報を作成し、前記情報を暗号化する
第４０６のステップと、
情報処理装置１は、第４０６のステップによって暗号化された情報を、情報処理装置２に提供する第４１０のステップと、
情報処理装置２は、第４１０のステップによって提供された情報から、ライセンスキーを作成するために必要な情報を取得する第４１２のステップと、
情報処理装置２は、第４１２のステップによって取得された情報をもとにライセンスキーを作成する第４１４のステップと、
情報処理装置２は、第４１４のステップによって作成されたライセンスキーを記録したファイルを記憶装置４に記憶させる第４１６のステップと、
情報処理装置２は、第４１６のステップによって記憶されたライセンスキーの所在を表す情報を第１の情報処理装置に提供する第４１６Ｕのステップと、
情報処理装置１は、第４１６Ｕのステップによって提供された情報をもとに、ライセンスキーの所在を特定し、ライセンスキーを取得する第４１６Ｄのステップと、
情報処理装置１は、第４１６Ｄのステップによって取得したライセンスキーが、情報処理装置１にて使用できるか否かを判断するステップ４１８と、
情報処理装置１は、ステップ４１８の結果によっては、情報処理装置１に記憶されたライセンスの有効期限を変更（情報処理装置１にライセンスの有効期限が記憶されていないときは、ライセンスの有効期限を記憶する）する事があるステップ４２０と、
を有することを、
特徴とする、情報処理システム。
【請求項２】
情報処理装置１が情報処理装置２に情報を提供するための暗号化を情報処理装置１が実行するための鍵を作成する処理と、
前記処理によって作成された鍵を記憶装置３（記憶装置３に記憶された情報は、情報処理装置１から読み込むことができる）に書き込む処理と、
を情報処理装置２に実行させるプログラム。
【請求項３】
情報処理装置１が情報処理装置２に情報を提供するために必要な鍵を記憶装置３から取得する処理と、
を情報処理装置１に実行させるプログラム。
【請求項４】
情報処理装置１が、情報処理装置２がライセンスキーを作成するために必要な情報を作成する処理と、
を情報処理装置１に実行させるプログラム。
【請求項５】
情報処理装置１が、情報処理装置２から提供された情報を用いてライセンスキーを作成するプログラム。
【請求項６】
ライセンスキーを作成するプログラムであって、
ライセンスキーを作成する際に使用するアルゴリズムを決定するステップと、
前記決定に基づいたアルゴリズムを用いてライセンスキーの一部を作成するステップと、
前記ステップによって作成された情報に、使用されたアルゴリズムを特定する情報を付加するステップと、
を含むことを特徴とするプログラム。
【請求項７】
ライセンスキーを読み取るプログラムであって、
ライセンスキーを作成する際に使用したアルゴリズムを読み取るステップと、
前記ステップに基づいたアルゴリズムを用いてライセンスキーに記録された情報を読み取るステップと、
を含むことを特徴とするプログラム。
※注：実施の形態５は、請求項７に関係する。
【請求項８】
情報をほかの情報に変換するプログラムであって、
１個以上用意されているアルゴリズムのうち、どのアルゴリズムを用いて変換するかを決定する第１のステップと、
第１のステップにおける決定内容に基づいてアルゴリズムを使用して前記ほかの情報に変換する第２のステップと、
を有することを特徴とするプログラム。
【請求項９】
日付を表す情報をほかの情報処理装置に提供するためのデータを作成するプログラムであって、日付を表す情報を複数個の数値に変換し、
前記ほかの情報処理装置に、前記数値をもとに日付を計算させる情報を作成すること
を特徴とするプログラム。
【請求項１０】
請求項９に記載のプログラムによって作成された情報から、前記情報が意味する日付を計算すること
を特徴とするプログラム。
【請求項１１】
数値を表す情報をほかの情報処理装置に提供するためのデータを作成するプログラムであって、数値を表す情報を複数個の整数に変換し、
前記ほかの情報処理装置に、前記整数をもとに日付を計算させる情報を作成すること
を特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムによって作成された情報から、前記情報が意味する数値を計算すること
を特徴とするプログラム。
【請求項１３】
入力部を介した入力を受け付けて、前記入力に従って、ライセンスキーを取得し、
前記取得されたライセンスキーが、情報処理装置にて使用可能であるか否かを判断し、
使用可能である場合は、情報処理装置に記憶されたライセンスの有効期限を変更（情報処理装置にライセンスの有効期限が記憶されていない場合は、前記ライセンスの有効期限を記憶）すること
を特徴とするプログラム。
【請求項１４】
情報処理装置２は、情報処理装置１から情報処理装置２に情報を提供する際の暗号化に必要な第１の公開鍵および第１の秘密鍵を作成し、前記第１の公開鍵を情報処理装置２が取得できる場所に公開し、
情報処理装置１は、注文コード（ライセンスキーを作成するために必要な情報）を作成し、前記注文コードは、情報処理装置１をほかの情報処理装置と識別するための情報と、情報処理装置１が作成した第２の公開鍵を含むものであって、前記第２の公開鍵は、情報処理装置２から情報処理装置１に情報を提供する際の暗号化に必要な公開鍵であって、
情報処理装置２は、前記情報処理装置１が作成した注文コードをもとにライセンスキーを作成し、前記ライセンスキーは、前記情報処理装置１が作成した情報であって、前記情報処理装置１をほかの情報処理装置と識別するための情報を含み、
情報処理装置１は、前記情報処理装置２が作成したライセンスキーが、前記情報処理装置１にて使用可能か否かを判断し、使用可能な場合（例えば、前記ライセンスキーに含まれている情報処理装置１をほかの情報処理装置と識別するための情報が、前記情報処理装置１における、情報処理装置１をほかの情報処理装置と識別するための情報と一致する場合）は、前記情報処理装置１に記憶されたライセンスの有効期限（ライセンスの有効期限とは、例えば、情報処理装置１のプログラム１２Ｐにおける特定の機能の動作を制限しない期限をいう。）を変更（前記情報処理装置１にライセンスが記憶されていない場合は、前記情報処理装置１に前記ライセンスを記憶）する
処理を実行することを特徴とするプログラム。
【請求項１５】
請求項１に記載の第４０２のステップにおける暗号化は、情報処理装置２がライセンスキーを作成して、前記ライセンスキーを情報処理装置１に提供するために必要な情報であって、
前記情報を情報処理装置１が暗号化するために必要な鍵であること、
を特徴とする、請求項１に記載の情報処理システム。
【請求項１６】
請求項１に記載の第４０６のステップにおけるライセンスキーを作成するために必要な情報は、
少なくとも、
情報処理装置２が情報装置１に提供するための情報を暗号化するための鍵と、
情報処理装置１をほかの情報処理装置と識別するための情報と、
を含むこと
を特徴とする、請求項１に記載の情報処理システム。
【請求項１７】
請求項１に記載の第４０６のステップにおける暗号化は、
第４０４のステップによって取得された鍵を用いて暗号化すること、
を特徴とする、請求項１に記載の情報処理システム。
【請求項１８】
請求項１に記載の第４１４のステップによって作成されたライセンスキーは、
前記ライセンスキーを作成するための情報を作成した情報処理装置ではない情報処理装置では使用できないことを特徴とする、請求項１に記載の情報処理システム。
【請求項１９】
請求項１に記載の第４１６Ｕのステップは、鍵によって暗号化された状態で提供され、
前記鍵は、情報処理装置１が作成し、第４１４のステップによって情報処理装置２に提供された鍵であることを特徴とする、
請求項１に記載の情報処理システム。
【請求項２０】
請求項１に記載の第４１６Ｄのステップは、
ライセンスキーを記載したファイルをダウンロードし、前記ファイルに記載された情報を取得し、前記ファイルを削除することを特徴とする、
請求項１に記載の情報処理システム。
【請求項２１】
請求項１の記載の第４２０のステップは、
ライセンスキーが、所定の条件を満たしているときに、情報処理装置１に記憶されたライセンスの有効期限を変更する（情報処理装置１にライセンスの有効期限が記憶されていないときは、ライセンスの有効期限を記憶する）ことを特徴とする、
請求項１に記載の情報処理システム。
【請求項２２】
請求項１に記載の情報処理システムであって、請求項１の記載にかかわらず、ステップ４１０は、情報処理装置１が作成した情報を、ユーザに情報処理装置２に送信すべき旨をユーザに知らせることを、
特徴とする、請求項１に記載の情報処理システム。
【請求項２３】
請求項１に記載の情報処理システムであって、請求項１の記載にかかわらず、ステップ４１６Ｕは、情報処理装置２が作成した情報を情報処理装置１のユーザに知らせ、情報処理装置１は、前記知らせに基づいたユーザによる入力を受け付けることを、
特徴とする、請求項１に記載の情報処理システム。
【請求項２４】
請求項３に記載の記憶装置３に記憶された鍵は、譲歩処理装置２によって作成され、少なくとも暗号化のために用いる鍵であることを特徴とする、
請求項３に記載のプログラム。
【請求項２５】
ライセンスキーを作成するための情報を作成するプログラムであって、
少なくとも、
前記情報を暗号化するための鍵の所在を設定する機能と、
前記情報を表示する機能と、
を備えることを特徴とするプログラム。
【請求項２６】
請求項３に記載の処理における鍵の取得元を変更する操作をした場合、前記操作をしてもよいかをユーザに回答させるメッセージをユーザに提供する処理と、
前記回答が特定の結果である場合に限り、前記鍵の取得元を変更する操作を可能とする処理と、
前記鍵の取得元を変更する操作が可能であるときに前記鍵の取得元を変更する操作が不可能とする処理は、前記操作をしてもよいかをユーザに回答させることをしないで実行すること、
を情報処理装置１に実行させる、請求項３に記載のプログラム。
【請求項２７】
請求項４に記載のプログラムは、１個以上のアルゴリズムから使用するアルゴリズムを選択し、
前記アルゴリズムのうち、どのアルゴリズムを選択したかがわかる情報が付加された情報を作成する処理であることを、
特徴とする、請求項４に記載のプログラム。
【請求項２８】
請求項８に記載のプログラムは、
変換後のデータは、どのアルゴリズムによって変換されたものであるかを表す情報が書き込まれている
ことを特徴とするプログラム。
【請求項２９】
請求項８に記載のプログラムは、
変換前のデータに書き込まれている、どのアルゴリズムによって変換されたものであるかを表す情報を確認し、前記情報に基づいて、変換に使用するアルゴリズムを決定する
ことをとくちょうとするプログラム。
【請求項３０】
請求項１３に記載の「入力部を介した入力」は、ライセンスキーの所在を表す情報、または、ライセンスキーの所在を表す情報を暗号化したものであることを特徴とする、
請求項１３に記載のプログラム。
【請求項３１】
請求項１３に記載の「入力部を介した入力」は、ライセンスキー、または、ライセンスキーを暗号化したものであることを特徴とする、
請求項１３に記載のプログラム。
【請求項３２】
請求項１３に記載の「入力部を介した入力」は、ライセンスキーを記録したデータベースの所在、ならびに、前記データベースにおける位置、または、前記情報を暗号化したものであることを特徴とする、
請求項１３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置から他の情報処理装置へ注文コード（ライセンスキーを作成するために必要な情報）や、ライセンスキーを転送することを可能にするプログラム及び情報処理システムに関する。
【背景技術】
【０００２】
従来、区切り文字により区切られたテキストデータを転送するプログラムが知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許６５１１５９８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に開示された技術では、注文コードやライセンスキーを文字列に変換するアルゴリズムを変更したときに、複数のアルゴリズムによって変換された情報に対応することが難しいという問題がある。
【０００５】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、複数のアルゴリズムが存在するなかで、どのアルゴリズムを使用すべきかを特定するプログラム及び情報処理システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明の一態様のプログラムは、変換前のデータ（第１のデータ）を、アルゴリズムによって第２のデータに変換し、第２のデータに、どのアルゴリズムによって変換されたかを表す情報を付加した第３の文字列を作成する文字列作成処理と、を情報処理装置に実行させる。
【０００７】
本発明の一態様の情報処理システムは、
情報処理装置２は、情報処理装置１から情報処理装置２に情報を提供する際の暗号化に必要な第１の公開鍵および第１の秘密鍵を作成し、前記第１の公開鍵を情報処理装置２が取得できる場所（例えばインターネット上のサーバ）に公開し、
情報処理装置１は、注文コード（ライセンスキーを作成するために必要な情報）を作成し、前記注文コードは、情報処理装置１をほかの情報処理装置と識別するための情報と、情報処理装置１が作成した第２の公開鍵を含むものであって、前記第２の公開鍵は、情報処理装置２から情報処理装置１に情報を提供する際の暗号化に必要な公開鍵であって、
情報処理装置２は、前記情報処理装置１が作成した注文コードをもとにライセンスキーを作成し、前記ライセンスキーは、前記情報処理装置１が作成した情報であって、前記情報処理装置１をほかの情報処理装置と識別するための情報を含み、
情報処理装置１は、前記情報処理装置２が作成したライセンスキーが、前記情報処理装置１にて使用可能か否かを判断し、使用可能な場合（例えば、前記ライセンスキーに含まれている情報処理装置１をほかの情報処理装置と識別するための情報が、前記情報処理装置１における、情報処理装置１をほかの情報処理装置と識別するための情報と一致する場合）は、前記情報処理装置１に記憶されたライセンスの有効期限（ライセンスの有効期限とは、例えば、情報処理装置１のプログラム１２Ｐにおける特定の機能の動作を制限しない期限をいう。）を変更（前記情報処理装置１にライセンスが記憶されていない場合は、前記情報処理装置１に前記ライセンスを記憶）する
処理を実行する。
【発明の効果】
【０００８】
本発明の一側面によれば、注文コードやライセンスキーを転送することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る情報処理システムの構成を示すブロック図である。
【図２】実施の形態１に係る情報処理装置１を示すブロック図である。
【図３】実施の形態１に係る記憶装置３を示すブロック図である。
【図４】情報処理装置１、情報処理装置２、記憶装置３、記憶装置４が関係する処理を示す図。
【図５】５は、実施の形態２における情報処理装置２にて作成されたファイルの動作の例。情報処理装置２と記憶装置３は、通信網Ｎを介して接続されている。
【図６】実施の形態３に係る表示部１５に表示される内容の例。
【図７】実施の形態３に係る操作部６０３が操作されたとき、表示部１５に表示される警告の一例。
【図８】実施の形態３に係る操作部６０１が操作された際に情報処理装置１が実行する処理を表すフローチャート。
【図９】実施の形態３に係る操作部６０１が操作された際にステップ８０３が実行されるときの処理などを表すフローチャート。
【図１０】実施の形態４に係る表示部２５に表示される内容の例。
【図１１】実施の形態４に係る操作部１１０８が操作された際にライセンスキーを作成する処理などを表すフローチャート。
【図１２】実施の形態６にて情報処理装置が実行する変換の例を表した図。
【図１３】実施の形態８に係る表示部１５に表示される内容の例。
【発明を実施するための形態】
【００１０】
図１は、実施の形態１に係る情報処理システムの構成を示すブロック図である。
【００１１】
図２は、実施の形態１に係る情報処理装置１を示すブロック図である。
【００１２】
実施の形態1に係る情報処理システムは、情報処理装置１、情報処理装置２、記憶装置３、記憶装置４を備える。
【００１３】
情報処理装置１、情報処理装置２、記憶装置３、記憶装置４はインターネット、ＬＡＮ(Local Area Network)又は携帯電話網等の通信網Ｎにより他の情報処理装置や記憶装置と相互に接続されている。
【００１４】
ただし、記憶装置３および記憶装置４は、同一の記憶装置であってもよい。また、情報処理装置２が記憶装置の機能を兼ねる形態であってもよい。
【００１５】
情報処理装置１の構成は、例えばサーバ装置、パーソナルコンピュータ又はスマートフォン等である。情報処理装置１は、ＣＰＵ(Central Processing Unit)１１、記憶部１２、ＲＡＭ（Random Access Memory）１３、入力部１４、表示部１５、通信部１６及びドライブ部１７を備える。
【００１６】
ＣＰＵ１１は、バスを介してハードウェア各部と接続されている。ＣＰＵ１１は例えば一もしくは複数のＣＰＵ又はマルチコアＣＰＵ等を備える。ＣＰＵ１１は、記憶部１２に記憶されたプログラム１２Ｐに従いハードウェアの各部を制御する。
【００１７】
記憶部１２は例えばハードディスク又は大容量メモリ等である。
【００１８】
ドライブ部１７は、光ディスク等の記録媒体１０から情報を読み取る。記憶部１２にはＣＰＵ１１が処理を行う際に必要とする種々のデータ及びプログラム１２Ｐを格納する。
【００１９】
ＣＰＵ１１は、記録媒体１０に記録されたプログラム１２Ｐをドライブ部１７に読み取らせ、読み取ったプログラム１２Ｐを記憶部１２に記憶させる。
【００２０】
ＣＰＵ１１は、必要に応じてプログラム１２Ｐを記憶部１２からＲＡＭ１３へロードし、ロードしたプログラム１２Ｐに従って、各種の処理を実行する。
【００２１】
なお、プログラム１２Ｐは、情報処理装置１の外部からダウンロードされてもよく、予め記憶部１２に記憶されていてもよい。この場合、情報処理装置１は、ドライブ部１７を備えていない形態であってもよい。
【００２２】
ＲＡＭ１３は例えばＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、フラッシュメモリ等である。
【００２３】
ＲＡＭ１３は、記憶部としても機能し、ＣＰＵ１１による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００２４】
入力部１４はマウス又はキーボード等の入力デバイスであり、受け付けた操作情報をＣＰＵ１１へ送信する。表示部１５はＣＰＵ１１から送信された画像データを表示する。
【００２５】
表示部１５は例えば液晶ディスプレイ。
【００２６】
通信部１６は、例えば無線ＬＡＮカード又は携帯電話用通信モジュール等であり、通信網Ｎを介して各種情報を送受信する。
【００２７】
情報処理装置２の構成は、情報処理装置１の構成と同様（ＣＰＵ２１、記憶部２２、ＲＡＭ２３、入力部２４、表示部２５、通信部２６及びドライブ部２７を備える）。
【００２８】
ＣＰＵ２１、記憶部２２、ＲＡＭ２３、入力部２４、表示部２５、通信部２６及びドライブ部２７は、情報処理装置１のＣＰＵ１１、記憶部１２、ＲＡＭ１３、入力部１４、表示部１５、通信部１６及びドライブ部１７と同様。
【００２９】
記憶装置３は、サーバ装置等のコンピュータである。記憶装置３は、ＣＰＵ３１、記憶部３２、ＲＡＭ３３及び通信部３４を備える。
【００３０】
図３は、実施の形態１に係る記憶装置３を示すブロック図である。
【００３１】
記憶部３２は例えばハードディスク又は大容量メモリ等である。
【００３２】
ＣＰＵ３１は、記憶部３２に記憶されたプログラム３２Ｐに従いハードウェアの各部を制御する。
【００３３】
通信部３４は、通信網Ｎを介して各種情報を送受信する。
【００３４】
記憶装置４は、サーバ装置等のコンピュータである。
【００３５】
記憶装置４の構成は、記憶装置３の構成と同様（ＣＰＵ４１、記憶部４２、ＲＡＭ４３及び通信部４４を備える）。ＣＰＵ４１、記憶部４２、ＲＡＭ４３及び通信部４４は、ＣＰＵ３１、記憶部３２、ＲＡＭ３３及び通信部３４と同様。
【００３６】
図１に示すように、情報処理装置１、情報処理装置２及び記憶装置３は、通信網Ｎに接続されている。
【００３７】
図４は、情報処理装置１、情報処理装置２、記憶装置３、記憶装置４が関係する処理を示す図。
【００３８】
情報処理装置２が、情報処理装置１が暗号化をして情報処理装置２が復号するために必要な鍵（非対称暗号化であっても、共通鍵暗号化であってもよい）を作成し、暗号化に必要な鍵を記憶装置３に書き込むステップ（ステップＳ４０２）
情報処置装置１が、記憶装置３に記憶された鍵を読み込むステップ（ステップＳ４０４）
（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、記憶装置３に記憶された情報を、通信網Ｎを介して取得し、記憶部１２ないしＲＡＭ１３に記憶する。）と、
情報処理装置１が、少なくとも、情報処理装置１が作成した鍵（非対称暗号化であっても、共通鍵暗号化であってもよい）と、情報処理装置１をほかの情報処理装置と識別するための情報（前記情報処理装置１が作成した鍵によって代用してもよい。情報処理装置１が作成した鍵は、ランダム性があるため情報処理装置１が作成した鍵と代用し得る）が書き込まれ、Ｓ４０４によって情報処理装置１が取得した鍵によって暗号化された情報（注文コード４０９）を作成するステップ（ステップＳ４０６）
（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、情報処理装置２が暗号化して情報処理装置１が復号するために必要な鍵と、情報処理装置１をほかの情報処理装置と識別するための情報と、を書き込んだ情報を作成する。）と、
情報処理装置１が、情報処理装置２にステップＳ４０６によって作成された情報を提供するステップ（ステップＳ４１０）
（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、ステップＳ４０６によって作成された情報を、通信網Ｎを介して情報処理装置２に提供する。）と、
情報処理装置２が、ステップＳ４１０によって提供された情報（情報４１１）を復号し、前記情報から、情報処理装置１が作成した鍵（情報４１３Ａ）と、情報処理装置１をほかの情報処理措置と識別する情報（情報４１３Ｃ）を取得するステップ（ステップＳ４１２）
（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、情報処理装置１から取得した情報から、ライセンスキーを作成するために必要な情報を読み取り、記憶部１２ないしＲＡＭ１３に記憶する。）と、
情報処理装置２が、ステップＳ４１２によって取得された情報をもとにライセンスキーを作成するステップ（Ｓ４１４）
（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、ステップＳ４１２によって記憶部２２ないしＲＡＭ２３に記憶された情報をもとにライセンスキーを作成し、前記ライセンスキーを、記憶部２２ないしＲＡＭ２３に記憶に記憶する。）と、
情報処理装置２が、ライセンスキーまたはライセンスキーを記憶したファイルを記憶装置４に書き込むステップ（ステップＳ４１６）
（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、通信網Ｎを介して、記憶装置４に、ステップＳ４１４によって作成されたライセンスキーないし前記ライセンスキーを記載した情報を、記憶装置４の記憶部４２に記憶させる。）と、
情報処理装置２が、ステップＳ４１６における書き込み先を表す情報（情報４１５Ｕ）（情報４１５Ｕは、例えばＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）。）を暗号化し、情報処理装置１に提供するステップ（ステップＳ４１６Ｕ）
（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、ステップＳ４１６によって書き込まれた情報の書き込み先を表す情報を作成し、前記情報を暗号化し、通信網Ｎを介して、情報処理装置１に提供する。）と、
情報処理装置１が、ステップＳ４１６Ｕによって提供された情報を復号し、記憶装置４に記憶されたライセンスキーを、前記情報に基づいて取得するステップ（ステップＳ４１６Ｄ）
（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、情報処理装置２から提供された情報を復号して得たデータを、記憶部２２ないしＲＡＭ２３に記憶する。前記データをもとに、記憶装置４におけるライセンスキーが記憶されている場所を特定し、情報処理装置１は、前記ライセンスキーを取得し、記憶部２２ないしＲＡＭ２３に記憶する。）と、
情報処理装置１が、ライセンスキーの有効期間（例えば、ライセンスキーが、Ａ年Ｂ月Ｃ日からＤ年Ｅ月Ｆ日の間に情報処理装置１に入力されたとき、情報処理装置１に記録されたライセンスの有効期間がＧ日延びるなら、Ａ年Ｂ月Ｃ日からＤ年Ｅ月Ｆ日の間をライセンスキーの有効期間であるという。）と、ライセンスキーによって延長されるライセンスの有効期間と、情報処理装置１をほかの情報処理装置と識別するための情報と、
を読み取るステップ（ステップＳ４１８）
（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、ライセンスキーが情報処理装置１にて有効であるかを判断するための情報を、前記ライセンスキーから読み取り、前記情報を記憶部１２ないしＲＡＭ１３に記憶する。）と、
を、ライセンスキーから読み取り、条件を満たす（例えば、ライセンスキーの有効期間内に入力され、かつ、前記情報処理装置１をほかの情報処理装置と識別するための情報が、情報処理装置１を表している）とき、情報処理装置１に記憶されたライセンスの有効期限を、ライセンスキーに合わせて変更する処理をするステップ（ステップＳ４２０）
（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、ライセンスキーから読み取られた情報をもとに、前記ライセンスキーが有効であるか否かを判断し、有効であると判断した場合は、ライセンスキーに書き込まれている通りに、情報処理装置１の記憶部１２ないしＲＡＭ１３に書き込まれたライセンスの有効期限を変更する）と、
を実行する。
ステップＳ４１０は、情報処理装置１におけるプログラム１２Ｐの一部でなくてもよい。具体的にはステップＳ４０６によって作成された情報４０９を、例えば表示部１５に表示するとか、情報４０９を記録したファイルを作成するなどし、前記情報４０９を、例えばライセンスキーの発行者が運営するウェブサイトの所定欄にユーザによって書き込ませる（書き込まれた情報は、情報４１１として扱われる）など、プログラム２２Ｐ以外によって実行されるものであってもよい。
【００３９】
ステップＳ４１０は、情報処理装置１におけるプログラム１２Ｐの一部でなくてもよい。具体的にはステップＳ４０６によって作成された情報４０９を、例えば表示部１５に表示するとか、情報４０９を記録したファイルを作成するなどし、前記情報４０９を、例えばライセンスキーの発行者が運営するウェブサイトの所定欄にユーザによって書き込ませる（書き込まれた情報は、情報４１１として扱われる）など、プログラム２２Ｐ以外によって実行されるものであってもよい。
【００４０】
ステップＳ５１６Ｕは、情報処理装置２におけるプログラム２２Ｐの一部でなくてもよい。具体的には情報処理装置２によって作成された情報４１５Ｕを、情報処理装置２の表示部２５に表示された文字列をもとに情報処理装置１の操作者が電子メールを作成し、前記電子メールを情報処理装置１のユーザに送信し、情報処理装置１のユーザは、前記電子メールに記載された文字列を、入力部１４を介して情報処理装置２に入力（入力された文字列は、情報４１７Ｕとして扱われる）する。
【００４１】
（入力部１４を介して情報処理装置１に入力された情報は、情報処理装置２のプログラム２２Ｐに基づいて、記憶部１２ないしＲＡＭ１３に記憶される）
実施の形態２は、情報処理装置２が、情報処理装置１が暗号化をするための鍵を作成し、記憶装置３に前記鍵を記憶させる動作について説明する。実施の形態２における情報処理装置２、記憶装置３の構成は、実施の形態１と同様。
図５は、実施の形態２における情報処理装置２にて作成されたファイルの動作の例。情報処理装置２と記憶装置３は、通信網Ｎを介して接続されている。
【００４２】
図５は、実施の形態２における情報処理装置２にて作成されたファイルの動作の例。情報処理装置２と記憶装置３は、通信網Ｎを介して接続されている。
【００４３】
情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、暗号化のための鍵５０１と、復号のための鍵５０２を作成する。ここでは、前記鍵は、非対称暗号化のための鍵であって、鍵５０１は暗号化のための鍵で、鍵５０２は復号のための鍵であるとする。
【００４４】
情報処理装置２は、ユーザによって動作されたプログラム２２Ｐによって、鍵５０１および鍵５０２が作成され、鍵５０１が記載されたファイルと、鍵５０２が記載されたファイルが作成される（例えばテキストファイル）。そのうち、鍵５０１は、ユーザによって動作されたプログラム２２Ｐによって、通信網Ｎを介して記憶装置３の記憶部３２に記憶される（鍵５１１）。いわゆるアップロードである。
【００４５】
記憶装置３は、情報処理装置１（図示しない）が読み込むことのできるように情報が記憶されており、情報処理装置１は、情報処理装置２に提供する情報を作成する際に必要な暗号化をするために、鍵５１１を取得し、前記鍵５１１を暗号化のために使用する。
【００４６】
情報処理装置１は、あらかじめ、例えばプログラム１２Ｐないし記憶部１２に、鍵５１１の所在を表す情報が書き込まれているため、情報処理装置１は、前記情報に基づいて、鍵５１１を読み込む。
【００４７】
（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、暗号化や復号に必要な情報を作成し、前記情報を記憶部２２またはＲＡＭ２３に記憶する。そのうち、少なくとも暗号化に必要な情報を、通信網Ｎを介して記憶装置３の記憶部３２に記憶させる。）
（変形例：本実施の形態では、非対称暗号化を用いて、公開鍵および秘密鍵を作成し、前記公開鍵を記憶装置３に書き込むことにより、前記公開鍵を情報処理装置１が取得可能となるようにした。変形例では、共通鍵暗号化を用いる、つまり暗号化と復号に用いる鍵を同一の鍵とし、前記鍵を記憶装置３に書き込むことにより、前記鍵を情報処理装置１が取得可能となるようにしてもよい。）
＜実施の形態３＞
実施の形態３は、情報処理装置１が、記憶装置３に記憶された鍵を取得し、情報処理装置２に提供する情報を作成（暗号化を含む）する処理を実行する。実施の形態２における記憶装置３、情報処理装置１の構成は、実施の形態１と同様。
図６は、実施の形態３に係る表示部１５に表示される内容の例。以後、表示部１５に表示された内容に対する操作（クリック等）について述べるときは、特に断りがない限り、入力部１４を介する。（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、注文コードを作成する機能を動作させるために必要な情報を、表示部１５に表示させる。）
【００４８】
図６は、実施の形態３に係る表示部１５に表示される内容の例。以後、表示部１５に表示された内容に対する操作（クリック等）について述べるときは、特に断りがない限り、入力部１４を介する。（情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、注文コードを作成する機能を動作させるために必要な情報を、表示部１５に表示させる。）
操作部６０２は、注文コードを作成する際に実行する暗号化のための鍵が所在する場所を表す情報が表示される。操作部６０２を変更することによって、注文コードを作成する際に実行する暗号化のための鍵を変更する事ができる。
【００４９】
操作部６０２は、注文コードを作成する際に実行する暗号化のための鍵が所在する場所を表す情報が表示される。操作部６０２を変更することによって、注文コードを作成する際に実行する暗号化のための鍵を変更する事ができる。
【００５０】
操作部６０２は、操作部６０３の操作によらなければ、操作可能とならない。
【００５１】
操作部６０３は、操作部６０２の変更をする際に入力部１４を介し操作され、情報処理装置１は、プログラム１２Ｐに基づいて、前記変更をしてよいかどうかをユーザに回答させる警告文を表示部１５に表示する。前記警告文に基づいて、ユーザが所定の操作をした場合のみ、操作部６０２は操作可能となる。
【００５２】
操作部６０２を操作不可能にするための操作部６０３の操作は、前記警告をしないで、操作部６０２は操作不可能となる。
【００５３】
図７は、実施の形態３に係る操作部６０３が操作されたとき、表示部１５に表示される警告の一例。
【００５４】
ユーザは、入力部１４を介して「はい」を押下した場合のみ、操作部６０２が操作可能となる。ただし、操作部６０２を操作可能から操作不可能にするための操作部６０３の操作にあっては、前記警告を表示せず、操作部６０２を操作不可能とする。
【００５５】
図８は、実施の形態３に係る操作部６０１が操作された際に情報処理装置１が実行する処理を表すフローチャート。
【００５６】
情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて以下の処理を実行する。
【００５７】
記憶装置３から公開鍵をダウンロード（ステップ８０１）し、
少なくともステップ８０２にて作成または取得された秘密鍵と、情報処理装置１をほかの情報処理装置と識別するための情報を含んだ情報（以下「注文コード」と呼称）を作成し（ステップ８０３）、
注文コードを表示部１５に表示する（ステップ８０４）。
表示された注文コードは、ユーザによってライセンスキーを注文するウェブサイトに書き込まれ、ユーザによってライセンスキーが注文される。
【００５８】
表示された注文コードは、ユーザによってライセンスキーを注文するウェブサイトに書き込まれ、ユーザによってライセンスキーが注文される。
【００５９】
（変形例：情報処理装置１によって作成された注文コードは、ライセンスキーを注文するために必要な情報として、通信網Ｎを介して情報処理装置２に送信される。）
図９は、実施の形態３に係る操作部６０１が操作された際にステップ８０３が実行されるときの処理などを表すフローチャート。
【００６０】
図９は、実施の形態３に係る操作部６０１が操作された際にステップ８０３が実行されるときの処理などを表すフローチャート。
【００６１】
情報処理装置１が注文コードを作成するとは、例えば、少なくとも、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報、を含んだ情報を作成することであって、情報処理装置２が注文コードから必要な情報を取り出すとは、注文コードから、例えば、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報を取り出すことである。
【００６２】
情報処理装置１がステップ８０１を実行する処理の一例は、次の通りである。情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、注文コードを作成する際に使用するアルゴリズムを決定（ステップ９０１）し、決定内容を記憶部１２ないしＲＡＭ１３に記憶する。ステップ９０１に基づいて決定されたアルゴリズムに基づいて、例えば、少なくとも、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報を１個の情報に変換（ステップ９０２）し、ステップ９０３では、ステップ９０２にて作成された情報に、ステップ９０１ではどのアルゴリズムが決定されたのかを表す情報を付加する（ステップ９０３）。ステップ９０１〜９０３にて作成された情報は、記憶部１２ないしＲＡＭ１３に記憶する。
【００６３】
（変形例：ステップ９０３によって文字列を作成し、前記文字列の１文字目の前と末尾の後に決められた文字（たとえば★）を付加する。これにより、どこからどこまでが注文コードであるかが明確となる）
（変形例：「hogehoge>A>」という文字列を、情報処理装置２が作成した公開鍵によって暗号化する。）
（変形例：「hogehoge>A>」という文字列を、情報処理装置２が作成した公開鍵によって暗号化するした文字列に、前記文字列の１文字目の前と末尾の後に決められた文字（たとえば★）を付加する。）
前記方法によって作成された文字列（注文コード）から、情報処理装置２が必要な情報を取り出す処理の一例は、次の通りである。情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、どのアルゴリズムによって情報処理装置２が必要な情報を取り出すかを決定）（ステップ９５１）し、決定内容を記憶部１２ないしＲＡＭ１３に記憶する。ステップ９５１に基づいて決定されたアルゴリズムに基づいて、例えば、少なくとも、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報を取得（ステップ９５２）し、記憶部１２ないしＲＡＭ１３に記憶する。
情報処理装置２がステップ９５１〜９５２を実行する処理を、具体例をもって説明する。いま、情報処理装置１から注文コードとして「hogehoge>A>」という文字列が提供されたとする（暗号化ないし１文字目や末尾に決められた文字を付加する処理が行われた文字列が提供された場合であって、復号ないし前記文字を取り除く処理を行った結果「hogehoge>A>」という文字列が得られた場合も同様）。情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、前記文字列の末尾の文字、つまり「>」を区切り文字とみなし、その他の部分に存在する文字列、つまり「hogehoge>A」を、「hogehoge」と「A」に分離（記憶部２２ないしＲＡＭ２３に記憶する）する。このうち、「A」が、どのアルゴリズムによって文字列「hogehoge>A>」が作成されたかを表す情報である。よって、報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、少なくとも情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報を取り出すアルゴリズムのうち、どのアルゴリズムを用いるかを決定する。前記アルゴリズムによって、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵が「aaa」、情報処理装置１をほかの情報処理装置と識別するための情報が「bbb」が得られる（記憶部２２ないしＲＡＭ２３に記憶する）。
【００６４】
情報処理装置２がステップ９５１〜９５２を実行する処理を、具体例をもって説明する。いま、情報処理装置１から注文コードとして「hogehoge>A>」という文字列が提供されたとする（暗号化ないし１文字目や末尾に決められた文字を付加する処理が行われた文字列が提供された場合であって、復号ないし前記文字を取り除く処理を行った結果「hogehoge>A>」という文字列が得られた場合も同様）。情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、前記文字列の末尾の文字、つまり「>」を区切り文字とみなし、その他の部分に存在する文字列、つまり「hogehoge>A」を、「hogehoge」と「A」に分離（記憶部２２ないしＲＡＭ２３に記憶する）する。このうち、「A」が、どのアルゴリズムによって文字列「hogehoge>A>」が作成されたかを表す情報である。よって、報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、少なくとも情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報を取り出すアルゴリズムのうち、どのアルゴリズムを用いるかを決定する。前記アルゴリズムによって、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵が「aaa」、情報処理装置１をほかの情報処理装置と識別するための情報が「bbb」が得られる（記憶部２２ないしＲＡＭ２３に記憶する）。
【００６５】
前述したアルゴリズムは、プログラム１２Ｐ、プログラム２２Ｐの開発者が任意に追加することができる。その場合、プログラム１２Ｐのバージョンアップはユーザが行うことになるため、バージョンアップされたプログラム１２Ｐによって作成された注文コードと、そうでない注文コードが、情報処理装置２に提供されることになるが、その場合であっても、情報処理装置１は、どのアルゴリズムによって作成された注文コードであるかが、注文コードに記録されているため、情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、前記記録を確認することにより、適切なアルゴリズムを適用することができる。
【００６６】
＜実施の形態４＞
図１０は、実施の形態４に係る表示部２５に表示される内容の例。以後、表示部２５に表示された内容に対する操作（クリック等）について述べるときは、特に断りがない限り、入力部２４を介する。（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、注文コードを作成する機能を動作させるために必要な情報を、表示部２５に表示させる。）
【００６７】
図１０は、実施の形態４に係る表示部２５に表示される内容の例。以後、表示部２５に表示された内容に対する操作（クリック等）について述べるときは、特に断りがない限り、入力部２４を介する。（情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、注文コードを作成する機能を動作させるために必要な情報を、表示部２５に表示させる。）
入力部１００２は有効期間開始日、入力部１００３は有効期間終了日、入力部１００４は有効日数、入力部１００５は、情報処理装置１によって暗号化された情報を復号する鍵が記録されているファイル、入力部１００６は、作成されたライセンスキーを保存するフォルダ、入力部１００７は、ライセンスキーのアップロード先（記憶装置４におけるライセンスキーの所在）の一部を、それぞれ入力する。
【００６８】
入力部１００２は有効期間開始日、入力部１００３は有効期間終了日、入力部１００４は有効日数、入力部１００５は、情報処理装置１によって暗号化された情報を復号する鍵が記録されているファイル、入力部１００６は、作成されたライセンスキーを保存するフォルダ、入力部１００７は、ライセンスキーのアップロード先（記憶装置４におけるライセンスキーの所在）の一部を、それぞれ入力する。
【００６９】
例えば、Ａ年Ｂ月Ｃ日からＤ年Ｅ月Ｆ日までに入力されたライセンスキーが、ライセンスの有効期限をＧ日間延長するものである場合、有効期間開始日とはＡ年Ｂ月Ｃ日、有効期間終了日とはＤ年Ｅ月Ｆ日、有効日数とはＧ日を指す。
【００７０】
入力部１００５は、入力部１００１に入力された情報を復号する秘密鍵が記録されているファイルを指定する。また、入力部１００５に入力された文字列自体を、前記秘密鍵であるかもしれない文字列としても扱う（例えば、入力部１００５に「C:\hogehoge\key.txt」と入力されている場合は「C:\hogehoge\key.txt」に記録されている情報と、「C:\hogehoge\key.txt」という文字列自体を、秘密鍵であるかもしれない情報として扱う）。
【００７１】
入力部１００１に入力された情報は、情報処理装置１によって暗号化された情報であって、前記暗号化は、情報処理装置２が作成した公開鍵を用いて行われたものであるが、前記公開鍵を変更した場合、複数の秘密鍵が存在し得る。しかし、暗号化された情報は、特定の秘密鍵によってしか復号できず、その他の秘密鍵では復号できない。そのため、本実施の形態では、秘密鍵が複数存在する場合は、それぞれの秘密鍵を用いた復号を試行し、いずれかの秘密鍵による復号に成功したことをもって、復号に成功したものとみなす。
【００７２】
入力部１００８が操作されたとき、情報処理装置２のＣＰＵ２１は、プログラム２２Ｐに基づいて、入力部１００２、入力部１００３に入力された日付を、記憶部２２ないしＲＡＭ２３に記憶する。入力部１００４に入力された日数を、記憶部２２ないしＲＡＭ２３に記憶する。入力部１００５（改行にて区切って、複数のファイルを指定可能）に入力された文字列が表すファイルと、入力部１００５に入力された文字列自体を、記憶部２２ないしＲＡＭ２３に記憶する。
【００７３】
情報処理装置２のＣＰＵ２２は、プログラム２２Ｐに基づいて、入力部１００１に入力された情報の復号を試みる。このとき使用する鍵は、入力部１００５に入力された文字列に基づいて取得した鍵である。前記復号に成功したとき、少なくとも、情報処理装置１に対して提供される情報を暗号化する際に必要な公開鍵、情報処理装置１をほかの情報処理装置と識別するための情報を記憶部２２ないしＲＡＭ２３に記憶する。
【００７４】
情報処理装置２のＣＰＵ２２は、プログラム２２Ｐに基づいて、前述の通りに記憶部２２ないしＲＡＭ２３に記憶された情報に基づいて、ライセンスキーを作成する。このとき、情報処理装置２は、ライセンスキーを作成するために１個以上のアルゴリズムを持ち、前記ライセンスキーは、どのアルゴリズムによって作成されたかを表す情報が付加される。情報処理装置１がライセンスキーの内容を読み取るにあたり、どのアルゴリズムによって作成されたライセンスキーであるかがわからなければ情報を正しく読み取ることはできないが、前述の通り、ライセンスキーは、どのアルゴリズムによって作成されたかを表す情報が付加されているため、情報処理装置１は、ライセンスキーの内容を読み取るための正しいアルゴリズムを適用することができる。
【００７５】
情報処理装置２がライセンスキーを作成する処理を、具体例をもって説明する。注文コードに書き込まれた、ライセンスキーを作成するために必要な情報を取り出す手順は、実施の形態３における「情報処理装置２がステップ９５１〜９５２を実行する処理」と同様である。
【００７６】
図１１は、実施の形態４に係る操作部１１０８が操作された際にライセンスキーを作成する処理などを表すフローチャート。
ライセンスキーは、情報処理装置２のＣＰＵ２１が、プログラム２２Ｐに基づいて、情報処理装置１が作成した鍵、情報処理装置１をほかの情報処理装置と識別するための情報、有効期間開始日、有効期間終了日、有効日数をもとに、ライセンスキー作成に使用するアルゴリズムを決定するステップ（ステップ１１０１）と、ステップ１１０１に基づいてライセンスキーを作成するステップ（ステップ１１０２）を実行する。（作成された情報は記憶部２２ないしＲＡＭ２３に記憶する。）ライセンスキーの作成は、情報処理装置１が作成した鍵によって暗号化する処理を含んでもよい。
【００７７】
ライセンスキーは、情報処理装置２のＣＰＵ２１が、プログラム２２Ｐに基づいて、情報処理装置１が作成した鍵、情報処理装置１をほかの情報処理装置と識別するための情報、有効期間開始日、有効期間終了日、有効日数をもとに、ライセンスキー作成に使用するアルゴリズムを決定するステップ（ステップ１１０１）と、ステップ１１０１に基づいてライセンスキーを作成するステップ（ステップ１１０２）を実行する。（作成された情報は記憶部２２ないしＲＡＭ２３に記憶する。）ライセンスキーの作成は、情報処理装置１が作成した鍵によって暗号化する処理を含んでもよい。
【００７８】
ステップ１１０２では、ライセンスキーを作成後、どのアルゴリズムによって作成したかを表す情報を付加する。例えば、ステップ１１０１で「B」というアルゴリズムによってライセンスキーを作成することとし、ステップ１１０２では、「piyopiyo」という文字列が作成されたとする。このとき、区切り文字「B」「piyopiyo」のいずれにも存在しない文字列（例えば「<」）を使用することとし、「B」「piyopiyo」を前記区切り文字によって区切り、末尾に区切り文字を付加する。つまり、ライセンスキーは「piyopiyo>B>」となる。
【００７９】
（変形例：ライセンスキーを、情報処理装置１が作成した公開鍵によって暗号化する。）
ステップ１１５１、ステップ１１５２は、ライセンスキーを受け取った情報処理装置１が実行する処理。
ライセンスキーを受け取った情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、ライセンスキーから使用するアルゴリズムを特定するステップ（ステップ１１５１）を実行し、ステップ１１５１にて特定したアルゴリズムに基づいて、ライセンスキーに書き込まれた情報を読み取るステップ（ステップ１１５２）を実行する。（暗号化ないし１文字目や末尾に決められた文字を付加する処理が行われたライセンスキーが提供された場合であって、復号ないし前記文字を取り除く処理を行った結果得られた文字列に対して行う処理も同様）
【００８０】
ライセンスキーを受け取った情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、ライセンスキーから使用するアルゴリズムを特定するステップ（ステップ１１５１）を実行し、ステップ１１５１にて特定したアルゴリズムに基づいて、ライセンスキーに書き込まれた情報を読み取るステップ（ステップ１１５２）を実行する。（暗号化ないし１文字目や末尾に決められた文字を付加する処理が行われたライセンスキーが提供された場合であって、復号ないし前記文字を取り除く処理を行った結果得られた文字列に対して行う処理も同様）
実施の形態後は、情報処理装置１に入力されたライセンスキーに基づいて、情報処理装置１に記憶されたライセンスの有効期限を変更する処理を実行する。
情報処理装置１のＣＰＵ１１は、ライセンスキーから情報を読み取るアルゴリズムを１個以上そなえ、ライセンスキーは、どのアルゴリズムによって該ライセンスキーが作成されたかを表す情報が書き込まれている。
【００８１】
情報処理装置１のＣＰＵ１１は、ライセンスキーから情報を読み取るアルゴリズムを１個以上そなえ、ライセンスキーは、どのアルゴリズムによって該ライセンスキーが作成されたかを表す情報が書き込まれている。
【００８２】
情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、ライセンスキーから情報を読み取るためのアルゴリズムを決定し、前記決定に基づいてライセンスキーから情報を読み取る。ここで読み取られる情報は、例えばライセンスキーが有効である期間、ライセンスキーを使用することで延長されるライセンスの有効日数、該ライセンスキーを使用できる情報処理装置を表す情報、などが考えられる。
【００８３】
情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、入力されたライセンスキーが、情報処理装置１に適用してよいかどうかを判断し、適用してよいと判断した場合は、情報処理装置１の記憶部１２に記憶されたライセンスの有効期限を変更（ライセンスの有効期限が記憶部１２に書き込まれていない場合は、ライセンスの有効期限を書き込む）する。
【００８４】
＜実施の形態６＞
図１２は、実施の形態６にて情報処理装置が実行する変換の例を表した図。
【００８５】
図１２は、実施の形態６にて情報処理装置が実行する変換の例を表した図。
【００８６】
ステップＳ１２０１は、変換に使用するアルゴリズムを決定する。変換に使用するアルゴリズムは、１個以上存在（ここでは、Ａ、Ｂ、Ｃが存在する場合を例示するが、アルゴリズムの数や種類は、この例示の通りでなくてもよい）し、情報処理装置は、プログラムに基づいて変換に使用するアルゴリズムを決定し、決定内容を記憶部ないしＲＡＭに書き込む。
【００８７】
ステップＳ１２０１〜ステップＳ１２０３における変換とは情報１２００Ａから情報１２００Ｂへの変換をいい、ステップＳ１２５１〜ステップＳ１２５２における変換とは、情報１２００Ｂから情報１２００Ａへの変換をいう。
【００８８】
本実施の形態にて例示する、情報１２００Ａとは、「あああ」「いいい」「ううう」という３個の情報を例示し、本実施の形態にて例示する、情報１２００Ｂとは情報１２００Ａからの変換によって得られた情報であって１個の文字列「あああ；いいい；ううう；＞Ａ＞」を例示する。本実施の形態の内容は、この例示の通りでなくてもよい。
【００８９】
ステップＳ１２０２は、変換前の情報を変換する（ここでは、Ａというアルゴリズムを使用する場合であって、アルゴリズムの動作内容は次の通りである場合を例示するが、アルゴリズムの内容は、この例示の通りでなくてもよい）。アルゴリズムＡは、３個の情報を１個の情報に変換するアルゴリズムであって、３個の情報のいずれにも存在しない文字（例えば「；」）を区切り文字として３個の情報を連結し、末尾に区切り文字を連結するアルゴリズムである。本アルゴリズムは、暗号化や復号をしないアルゴリズムであるが、暗号化や復号をするアルゴリズムであってもかまわない。（情報処理装置は、プログラムに基づいた変換後の情報を、記憶部ないしＲＡＭに書き込む）
ステップＳ１２５１は、変換に使用するアルゴリズムを決定する。変換に使用するアルゴリズムは、１個以上存在（ここでは、ＡＡ、ＢＢ、ＣＣＣが存在し、ＡＡはＡによって変換された情報をＡが変換する前の状態に変換するアルゴリズムであり、ＢＢはＢによって変換された情報をＢが変換する前の状態に変換するアルゴリズムであり、ＣＣはＣによって変換された情報をＣが変換する前の状態に変換するアルゴリズムである、場合を例示するが、アルゴリズムの数や種類は、この例示の通りでなくてもよい）し、情報処理装置は、プログラムに基づいて変換に使用するアルゴリズムを決定し、決定内容を記憶部ないしＲＡＭに書き込む。ステップＳ１２５１では、末尾の文字を区切り文字とみなし、末尾以外の位置に存在する文字列を前記区切り文字を境に別のデータとする。
ステップＳ１２５２は、変換前の情報を変換する（ここでは、ＡＡというアルゴリズムを使用する場合であって、アルゴリズムの動作内容は次の通りである場合を例示するが、アルゴリズムの内容は、この例示の通りでなくてもよい）。アルゴリズムＡＡは、末尾の文字を区切り文字とみなし、末尾以外の位置に存在する文字列を前記区切り文字を境に別のデータとするアルゴリズムである。本アルゴリズムは、暗号化や復号をしないアルゴリズムであるが、暗号化や復号をするアルゴリズムであってもかまわない。（情報処理装置は、プログラムに基づいた変換後の情報を、記憶部ないしＲＡＭに書き込む）
【００９０】
ステップＳ１２５２は、変換前の情報を変換する（ここでは、ＡＡというアルゴリズムを使用する場合であって、アルゴリズムの動作内容は次の通りである場合を例示するが、アルゴリズムの内容は、この例示の通りでなくてもよい）。アルゴリズムＡＡは、末尾の文字を区切り文字とみなし、末尾以外の位置に存在する文字列を前記区切り文字を境に別のデータとするアルゴリズムである。本アルゴリズムは、暗号化や復号をしないアルゴリズムであるが、暗号化や復号をするアルゴリズムであってもかまわない。（情報処理装置は、プログラムに基づいた変換後の情報を、記憶部ないしＲＡＭに書き込む）
＜実施の形態６＞
【００９１】
＜実施の形態６＞
日付を表現する文字列は、「２０１９年６月１２日３時４分５６秒」のように表記することができるが、ほかの情報処理装置に提供した場合、文字列が正しく日付に変換されるとは限らない。
【００９２】
日付を表現する文字列は、「２０１９年６月１２日３時４分５６秒」のように表記することができるが、ほかの情報処理装置に提供した場合、文字列が正しく日付に変換されるとは限らない。
【００９３】
そのため、本実施の形態では、表現する対象の日付を「西暦Ｘ年の特定日時（例えば１月１日午前０時００分）のＹ秒後」とみなし、Ｘ、Ｙという２個の数値にて表現する。２個の数値とは２個のデータであるため、これを１個のデータとしてほかの情報処理装置に提供する場合は、実施の形態５にて説明した手段で１個のデータに変換してもよい。
【００９４】
例えば「西暦２０１１年２月３日４時０５分０６秒」という日付（以下「対象日付」）を文字列に直すならば、例えば、Ｘ＝２０１１、Ｙ＝対象日付の、対象日付が属する年の１月１日０時分からの経過秒数、のように数値に直せば、ほかの情報処理装置に提供したとき、前記ほかの情報処理装置がＸ、Ｙをもとに演算を行うことで、意図した日付が正しく前記ほかの情報処理装置に提供される。Ｘ＝２０１０など、必ずしもＸを対象日付が属する年にする必要はない。例えば、対象日付が「西暦２０１１年１月１日０時０１分３０秒」ならば、Ｘ＝２０１０、Ｙ＝１年の秒数＋９０秒、とすることで、意図した日付が正しく前記ほかの情報処理装置に提供される。
【００９５】
＜実施の形態７＞
日付を表現する文字列は、「−１２．３４」のように表記することができるが、ほかの情報処理装置に提供した場合、文字列が正しく日付に変換されるとは限らない。外国語環境など、「．」が小数点として扱われない場合がある。
【００９６】
日付を表現する文字列は、「−１２．３４」のように表記することができるが、ほかの情報処理装置に提供した場合、文字列が正しく日付に変換されるとは限らない。外国語環境など、「．」が小数点として扱われない場合がある。
【００９７】
そのため、本実施の形態では、表現する対象の数値を「Ｙが1以下になるまで10で割る処理を繰り返して得た数値をＺとし、Ｘが０または正の数ならＸにＺを足し、Ｘが負の数ならＸからＺを引いたもの」とみなし、Ｘ、という２個の数値にて表現する。２個の数値とは２個のデータであるため、これを１個のデータとしてほかの情報処理装置に提供する場合は、実施の形態５にて説明した手段で１個のデータに変換してもよい。
【００９８】
例えば、「−１２．３４」という数値（以下「対象数値」）を文字列に直すならば、例えば、Ｘ＝−１２、Ｙ＝３４、のように数値に直せば、ほかの情報処理装置がＸ、Ｙをもとに演算を行うことで、意図した数値が正しく前記ほかの情報処理装置に提供される。
【００９９】
＜実施の形態８＞
図１３は、実施の形態８に係る表示部１５に表示される内容の例。以後、表示部１５に表示された内容に対する操作（クリック等）について述べるときは、特に断りがない限り、入力部１４を介する。（情報処理装置１のＣＰＵ２１は、プログラム２２Ｐに基づいて、ライセンスキーを情報処理装置１に認識させるために必要な情報を、表示部１５に表示させる。）
【０１００】
図１３は、実施の形態８に係る表示部１５に表示される内容の例。以後、表示部１５に表示された内容に対する操作（クリック等）について述べるときは、特に断りがない限り、入力部１４を介する。（情報処理装置１のＣＰＵ２１は、プログラム２２Ｐに基づいて、ライセンスキーを情報処理装置１に認識させるために必要な情報を、表示部１５に表示させる。）
操作部１３０２が操作されたとき、情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、情報処理装置１の記憶部１２に記憶されている秘密鍵を用いて入力部１３０１に入力された情報を復号し、前記復号によって得られた情報をもとにライセンスキーの所在を特定し、前記ライセンスキーをダウンロードし、ダウンロードされた前記ライセンスキーに記載された情報を読み取り、前記ライセンスキーが情報処理装置１にて使用可能ならば、記憶部１２に記憶されたライセンスの有効期限を変更（記憶部１２に、前記ライセンスの有効期限が記憶されていない場合は記憶）する処理を実行する。
【０１０１】
操作部１３０２が操作されたとき、情報処理装置１のＣＰＵ１１は、プログラム１２Ｐに基づいて、情報処理装置１の記憶部１２に記憶されている秘密鍵を用いて入力部１３０１に入力された情報を復号し、前記復号によって得られた情報をもとにライセンスキーの所在を特定し、前記ライセンスキーをダウンロードし、ダウンロードされた前記ライセンスキーに記載された情報を読み取り、前記ライセンスキーが情報処理装置１にて使用可能ならば、記憶部１２に記憶されたライセンスの有効期限を変更（記憶部１２に、前記ライセンスの有効期限が記憶されていない場合は記憶）する処理を実行する。
【０１０２】
上記説明は、入力部１３０１にライセンスキーの所在を表す情報（例えばＵＲＬ、データベースおよび該データベースにおける位置）を暗号化したものを入力した場合の例である。
【０１０３】
（変形例：１文字目や末尾に特定の文字（例えば、★）が存在する場合、前記文字列を取り除いたものを、入力部１３０１に入力された内容とみなす。）
＜備考＞
実施の形態２以降における情報処理装置の構成は、特に断りがない限り、実施の形態１における同名の情報処理装置の構成と同様である。本明細書に記した「ＡないしＢ」とは、「ＡまたはＢ」とか、「ＡおよびＢ」のように解することができ得る。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０１０４】
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【図１】
2020194246.tif 000003
【図２】
2020194246.tif 000004
【図３】
2020194246.tif 000005
【図４】
2020194246.tif 000006
【図５】
2020194246.tif 000007
【図６】
2020194246.tif 000008
【図７】
2020194246.tif 000009
【図８】
2020194246.tif 000010
【図９】
2020194246.tif 000011
【図１０】
2020194246.tif 000012
【図１１】
2020194246.tif 000013
【図１２】
2020194246.tif 000014
【図１３】
2020194246.tif 000015