(57)【特許請求の範囲】
【請求項１】
ポスト（１４）から送出されるデータの受信部（２６ｂ）と基本ソフトウェア（３０）とアプリケーションプログラム（２８）とを備えた端末（１６）と、前記端末へデータを送出する発信部（２６ａ）とを備えた複数のポストとを有し、
前記ポストから送出される前記データは、第２暗号鍵（２２）により暗号化された第２暗号化コード（２４）として送出され、
前記端末は、第１暗号鍵（４０）で暗号化され前記アプリケーションプログラムに含まれる第１暗号化コード（２９）を復号化するための復号化部（３１）と、前記第１暗号鍵に対応し前記基本ソフトウェアに含まれる第１復号鍵（３２）と、受信した前記第２暗号化コードを復号化するための復号化部（３６）と、を備え、
前記基本ソフトウェアは前記第１暗号化コードが前記アプリケーションプログラムから付与されないと動作しないように構成されており、
前記データである第２暗号化コードは、複数の前記ポストのうち個々の前記ポストを特定可能でユニークな情報であるＩＤを含み、
前記端末は、前記基本ソフトウェアを実行することにより、前記第１暗号化コードを前記第１復号鍵で復号して前記第２暗号鍵に対応する第２復号鍵（３４）を取得し、前記第２復号鍵で前記第２暗号化コードを復号することを特徴とするソフトウェア複製防止システム（１０）。
【請求項２】
さらに、前記第１暗号化コードを、前記第１復号鍵に対応する第１暗号鍵を用いて作成する第１暗号化コード生成装置（５０）を備えることを特徴とする請求項１に記載のソフトウェア複製防止システム。
【請求項３】
さらに、前記基本ソフトウェアに前記第１復号鍵（３２）を組み込む基本ソフトウェア作成装置（５２）を備えることを特徴とする請求項１又は２に記載のソフトウェア複製防止システム。
【請求項４】
前記第１暗号鍵は、前記基本ソフトウェアへ入力される前記第１暗号化コードを作成するために用いられることを特徴とする請求項１から３の何れか一項に記載のソフトウェア複製防止システム。
【請求項５】
前記第１復号鍵は、前記基本ソフトウェアに含まれることを特徴とする請求項１から４の何れか一項に記載のソフトウェア複製防止システム。
【請求項６】
前記第２暗号鍵は、前記ポストから送信される前記第２暗号化コードを作成するために用いられることを特徴とする請求項１から５の何れか一項に記載のソフトウェア複製防止システム。
【請求項７】
前記第１暗号化コードには、乱数情報が含まれることを特徴とする請求項１から６の何れか一項に記載のソフトウェア複製防止システム。
【請求項８】
前記第１暗号化コードには、利用期限が含まれることを特徴とする請求項１から７の何れか一項に記載のソフトウェア複製防止システム。
【請求項９】
前記基本ソフトウェアによる制御は、利用期限を越えると、動作を停止することを特徴とする請求項８に記載のソフトウェア複製防止システム。
【請求項１０】
前記ＩＤには、位置情報が含まれることを特徴とする請求項１から９の何れか一項に記載のソフトウェア複製防止システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不正使用防止のための機能や利用期限など具備したソフトウェア複製防止システムに関する。
【背景技術】
【０００２】
コンピュータソフトウェアの開発において、アプリケーションプログラミングインターフェース (ＡＰＩ:Application Programming Interface)を通じて、機能（関数）を提供することは一般的によく知られている技術である。一般的にはＨＭＩ（Human Machine Interface）やアプリケーションとしての機能を持つメインモジュールから、適宜ＡＰＩを通じて呼び出されることで必要な機能を提供する。
【０００３】
例えば、屋内測位システムなどの、測位のための特別な技術が必要な分野において、誰でも簡便にアプリケーションを作成できるように、屋内測位技術をもつ企業が屋内測位基本ソフトウェアおよびＡＰＩを作成し、アプリケーション作成者に有償又は無償で配布する等が行われている。
【０００４】
この場合、基本ソフトウェアは複製防止のための機能や利用期限などを設定することが一般的である。複製防止のための機能や利用期限などは、例えば、これら機能や情報を組み込んだＵＳＢメモリなどを有償で配布し、これを端末に接続した状態に限って基本ソフトウェアの使用が許可される方法等を採用することにより行われていた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１５４４１２号公報
【特許文献２】特開２０１０−２２６７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上記のような複製防止のための機能や利用期限の管理方法では、ＵＳＢメモリが必要となるため、ＵＳＢメモリインターフェースを具備していない機器、例えばスマートフォンなどの機器では利用できなかった。また利用時にＵＳＢメモリが必要となる等、利便性も損なわれていた。
【０００７】
本発明は、上記課題に鑑みたものであり、その目的は、ＵＳＢメモリ等を用いることなく、不正使用防止のための機能や利用期限などを具備したソフトウェア複製防止システムを提供することにある。
【課題を解決するための手段】
【０００８】
請求項１記載の発明に係るソフトウェア複製防止システムは、ポストから送出されるデータの受信部と基本ソフトウェアとアプリケーションプログラムとを備えた端末と、これにデータを送出する発信部を備えた複数のポストとを有する。ポストから送出されるデータは、第２暗号鍵により暗号化された第２暗号化コードとして送出される。端末は、第１暗号鍵で暗号化され前記アプリケーションプログラムに含まれる第１暗号化コードを復号化するための復号化部と、第１暗号鍵に対応し前記基本ソフトウェアに含まれる第１復号鍵と、受信した第２暗号化コードを復号化するための復号化部とを備える。基本ソフトウェアは第１暗号化コードがアプリケーションプログラムから付与されないと動作しないように構成されており、データである第２暗号化コードは、複数のポストのうち個々のポストを特定可能でユニークな情報であるＩＤを含む。端末は、基本ソフトウェアを実行することにより、第１暗号化コードを第１復号鍵で復号して第２暗号鍵に対応する第２復号鍵を取得し、この第２復号鍵で第２暗号化コードを復号する。
【０００９】
この構成によれば、端末が備える基本ソフトウェア内部に第２暗号鍵に対応する第２復号鍵を有し、これによって第２暗号鍵で作成した第２暗号化コードを復号することによりポスト情報を読むためのＩＤを取得するため、ポスト情報の不正利用を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態におけるポスト配置図
【図２】第１実施形態に係るソフトウェア複製防止システムの構成を示すブロック図
【図３】第１暗号化コード生成装置の概要を示す図
【図４】基本ソフトウェア作成装置の概要を示す図
【図５】移動端末のハードウェア構成を示すブロック図
【図６】ポストのハードウェア構成を示すブロック図
【図７】第１暗号化コード生成装置のハードウェア構成を示すブロック図
【図８】基本ソフトウェア作成装置のハード構成を示すブロック図
【図９】アプリケーションプログラムにおける基本ソフトウェアの起動処理手順を示す概略フローチャート
【図１０】ポストから送出される第２暗号化コードの復号手順を示す概略フローチャート
【図１１】ＩＤ参照例
【図１２】ＩＤ参照の概略フローチャート
【図１３】第２実施形態に係るソフトウェア複製防止システムを示すブロック図
【図１４】第２実施形態に係る第１暗号化コード生成装置の概要図
【図１５】第３実施形態に係る第１暗号化コード生成装置の概要図
【図１６】第３実施形態に係る基本ソフトウェア作成装置の概要を示す図
【図１７】第３実施形態に係るソフトウェア複製防止システムを示すブロック図
【図１８】第３実施形態に係るアプリケーションプログラムにおける基本ソフトウェアの起動処理手順を示す概略フローチャート
【図１９】第４実施形態に係るソフトウェア複製防止システムを示すブロック図
【図２０】第４実施形態に係るポストから送出される第２暗号化コードの復号手順を示す概略フローチャート
【図２１】第５実施形態に係る第１暗号化コード生成装置の概要図
【図２２】第５実施形態に係るソフトウェア複製防止システムを示すブロック図
【図２３】第５実施形態に係るアプリケーションプログラムにおける基本ソフトウェアの起動処理手順を示す概略フローチャート
【図２４】第６実施形態にかかるポスト／緯度経度テーブル
【図２５】第６実施形態に係るソフトウェア複製防止システムを示すブロック図
【図２６】第６実施形態に係る測位システムのソフトウェアブロック図
【図２７】第７実施形態に係る第１暗号化コード生成装置の概要図
【図２８】第７実施形態に係るソフトウェア複製防止システムを示すブロック図
【図２９】第７実施形態に係る測位システムのソフトウェアブロック図
【図３０】第８実施形態に係る第１暗号化コード生成装置の概要図
【図３１】第８実施形態に係るソフトウェア複製防止システムを示すブロック図
【図３２】第８実施形態に係るサーバアクセスの概略フローチャート
【図３３】第８実施形態に係る認証テーブル
【図３４】第８実施形態に係るサーバ認証のフローチャート
【発明を実施するための形態】
【００１１】
（第１実施形態）
以下、第１実施形態におけるソフトウェア複製防止システム１０（以下、本システム１０と称する）を図面に基づいて説明する。
【００１２】
図１に示すように、屋内の通路１２に複数のポスト１４が配置されそれぞれ異なるＩＤ１８が送出されている。ここで、移動端末１６がポスト１４付近を通過すると、ポスト１４の情報であるＩＤ１８を取得できる。ここで、ＩＤ１８とは、個々のポスト１４を特定可能な情報を意味し、例えば、各ポスト１４にユニークな数字及び記号の羅列としたり、位置情報としたりすることができる。
【００１３】
なお、実際にはポスト１４から送られるＩＤ１８は後述するように暗号化されて送信され、移動端末１６内部で復号して利用されている。ここでは一例としてポスト１４からのデータをＩＤ１８としているが、例えば画像やＨＴＭＬデータなどでも良い。
【００１４】
図２に示すように、ポスト１４は、それぞれ異なるＩＤ１８、第２暗号化コード用暗号化部２０（以下、暗号化部２０と称する）、第２暗号鍵２２、第２暗号化コード２４を有している。また、ポスト１４は発信部２６ａを有している。暗号化部２０は格納されているＩＤ１８を暗号化するプログラムであり、暗号化を行う為の鍵は第２暗号鍵２２として内部に保持されている。暗号化部２０によりＩＤ１８は暗号化され第２暗号化コード２４が生成される。第２暗号化コード２４は発信部より外部に発信される。暗号化部２０における処理は、実際には、ポスト１４の、後述するＣＰＵ７２において、第２暗号化コードの暗号化用のプログラムが実行されることによりソフトウェア的に実現されている。暗号化部２０は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
【００１５】
暗号化のアルゴリズムに関してはここでは言及しない。第２暗号鍵２２、ＩＤ１８の格納方法については限定されない。例えば、揮発型、不揮発型、若しくは格納するメモリの種類については任意である。また、これらのデータを変更可能に格納するか、あるいは固定して格納するか、あるいは、変更可能な場合の書き換え方法などについても限定されない。
【００１６】
移動端末１６は、アプリケーションプログラム２８、基本ソフトウェア３０、受信部２６ｂを備えている。基本ソフトウェア３０は複製防止機能を有するソフトウェアであり、基本ソフトウェア３０の作成者がアプリケーション作成者に提供する。アプリケーションプログラム２８、及び基本ソフトウェア３０は一つのパッケージにまとまっている形態でも良い。移動端末１６はさらに図示しない操作部、表示部、及び電源部などを有している。アプリケーションプログラム２８は基本ソフトウェア３０を利用するソフトウェアである。
【００１７】
アプリケーションプログラム２８は、第１暗号化コード２９を保有する。保有方法としては、プログラム内にプログラムコードとして直接保有する方法、ファイルにより保有する方法、レジストリに記載する方法、外部サーバに保有する方法などが考えられる。
【００１８】
第１暗号化コード２９には、ポスト１４からの暗号化されたＩＤ１８である第２暗号化コード２４を解読するための鍵が暗号化された形で記載されている。なお、第１暗号化コード２９については図３で詳細に説明する。
【００１９】
アプリケーションプログラム２８は、第１暗号化コード２９を基本ソフトウェア３０に通知する。基本ソフトウェア３０は第１暗号化コード２９が通知されないと動作しないよう構成されている。基本ソフトウェア３０は第１暗号化コード２９を解読するための第１復号鍵３２を内部に備えている。
【００２０】
通知された第１暗号化コード２９は、第１復号鍵３２を用い、第１暗号化コード用復号化部３１（以下、復号化部３１と称する）で第２復号鍵３４に復号される。これがポスト１４から出力される第２暗号化コード２４の復号鍵となる。復号化部３１における処理は、実際には、移動端末１６の、後述するＣＰＵ７２において、第１暗号化コードの復号化用のプログラムが実行されることによりソフトウェア的に実現されている。復号化部３１は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
【００２１】
受信部２６ｂはポスト１４の発信部２６ａから発信された第２暗号化コード２４を含む信号を受信する。受信された第２暗号化コード２４は、第２復号鍵３４を用い、第２暗号化コード用復号化部３６（以下、復号化部３６と称する）で解読され、ポスト１４の保有するＩＤ１８が復号される。図示はしていないが、移動端末１６は、アプリケーションプログラム２８の実行により、ＩＤ１８を利用して、地点に紐付けられた表示などのサービスを行う。復号化部３６における処理は、実際には、移動端末１６の、後述するＣＰＵ７２において、第２暗号化コードの復号化用のプログラムが実行されることによりソフトウェア的に実現されている。復号化部３６は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
【００２２】
図３に示すように、ＵＩ操作部４８は第１暗号化コード生成装置５０（以下、コード生成装置５０と称する）を操作するための操作部であり、例えば図示しないキーボード、画面、マウスなどのポインティングデバイスなどを含む。制御部４６はＵＩ操作部４８からの入力に従い、種々のプログラムを実行し、これに対応した機能の実行及び制御を行う。
【００２３】
第２復号鍵３４は、図２で説明したポスト１４に格納されている第２暗号鍵２２に対応する第２復号鍵３４であり、第２暗号鍵２２で暗号化したデータの解読に用い、ＵＩ操作部４８により本装置に入力される。第１暗号鍵４０は第１復号鍵３２に対応する鍵であり、第１復号鍵３２は基本ソフトウェア３０に格納されている。
【００２４】
第１暗号鍵４０及び第２復号鍵３４は、ＵＩ操作部４８によりコード生成装置５０に入力される。ここで、ＵＩ操作部４８への入力により、制御部４６が第１暗号化コード暗号化部４２（以下、暗号化部４２と称する）を制御することにより、第１暗号化コード２９が出力される。換言すると、第２復号鍵３４を第１暗号鍵４０で暗号化し第１暗号化コード２９が生成される。
【００２５】
なお、鍵（暗号鍵、復号鍵）は操作により入力しても良いし、ファイルで入力しても良いし、通信で取得しても良いし、プログラム内部に埋め込まれていても良い。暗号化部４２における処理は、実際には、第１暗号化コードの暗号化用プログラムが、コード生成装置５０の制御部４６において実行されることによりソフトウェア的に実現されている。暗号化部４２は、ソフトウェア的に限らず、ハードウェア的またはハードウェアとソフトウェアとの協働によって実現してもよい。
【００２６】
図４に示すように、ＵＩ操作部４８は基本ソフトウェア作成装置５２を操作するための操作部であり、例えば図示しないキーボード、画面、マウスなどのポインティングデバイスなどを含む。コンパイル部５６は、ＵＩ操作部４８からの指示に従い、種々の機能を実行し、制御する。
【００２７】
基本ソフトウェアソースプログラム５４（以下、ソースプログラム５４と称する）は第１復号鍵３２を持たないオリジナルのソースプログラムであり、コンパイル部５６で第１復号鍵３２を組み込み、第１復号鍵３２を内部に保持する基本ソフトウェア３０を生成する。ここで、ソースプログラム５４を「ソースプログラム」として説明しているが、当然コンパイル済みのバイナリを用いても良い。換言すれば、ここでは第１復号鍵３２を持たない基本ソフトウェア３０に第１復号鍵３２を埋め込むことを意図している。
【００２８】
図５に示すように、移動端末１６としては、例えばスマートフォンなどの携帯情報端末等などが用いられる。移動端末１６は、インターフェース（Ｉ／Ｆ）８０を介して、ＣＰＵ７２、ＰＲＯＭ７４、ＤＲＡＭ７６、ユーザインターフェース７８、外部メモリ８２、ハードディスク８４、ＮＩＣ（ネットワークインターフェースカード）８６が相互に接続される構成を有している。
【００２９】
ＰＲＯＭ７４はフラッシュメモリなどで構成され、一般的にはＢＩＯＳ等が格納される。ＤＲＡＭ７６は主記憶装置として用いられる。ハードディスク８４は記憶用メモリとして使用され、ＯＳや基本ソフトウェア３０、アプリケーションプログラム２８、その他のデータなどが格納されている。ユーザインターフェース７８は、図示しない画面、タッチパネル等を備えている。外部メモリ８２は、ＵＳＢメモリなどの外部記憶データとのインターフェースに相当する。ＮＩＣ８６はＬＡＮ８８との接続を行う。ＬＡＮ８８には、例えば無線ＬＡＮや公衆回線等が含まれる。
【００３０】
図６に示すように、ポスト１４は、インターフェース（Ｉ／Ｆ）８０を介して、ＣＰＵ７２、ＰＲＯＭ７４、ＤＲＡＭ７６、発信部９８、メモリ１００が相互に接続される構成を有している。ＰＲＯＭ７４にはポスト１４を動作させるためのプログラムが格納される。ＤＲＡＭ９６はこのプログラムが動作するための一時記憶装置として利用される。メモリ１００にはポスト１４特有のデータ、例えばポスト１４番号などを記憶する為に利用され、発信部９８はこのデータを出力する。ポスト１４には図示しない外部とのインターフェースなどを含む。
【００３１】
図７及び図８に示すように、コード生成装置５０及び基本ソフトウェア作成装置５２は、インターフェース（Ｉ／Ｆ）８０を介して、ＣＰＵ７２、ＰＲＯＭ７４、ＤＲＡＭ７６、ユーザインターフェース７８、外部メモリ８２、ハードディスク８４、ＮＩＣ（ネットワークインターフェースカード）８６が相互に接続される構成を有している。
【００３２】
図９に示すように、まず、アプリケーションプログラム２８は、第１暗号化コード２９の入力を待つ（Ｓ９０１）。第１暗号化コード２９が入力されるまで基本ソフトウェア３０は起動しない（Ｓ９０１：ＮＯ）。次に、第１暗号化コード２９が入力されたら、復号化部３１は、基本ソフトウェア３０内部に保持する第１復号鍵３２を用いて、第１暗号化コード２９の復号を行い（Ｓ９０２）、第２復号鍵３４を生成してこれを保存し（Ｓ９０３）、起動処理を終了する。なお、復号後のデータが正しいか否かは第２復号鍵３４を用いて第２暗号化コード２４を復号するまでは判断できない。これについて、後述する第３実施形態では即時判断できる実施形態を示す。
【００３３】
図１０に示すように、まず、アプリケーションプログラム２８は、ポスト１４から送出される第２暗号化コード２４の受信を待機し（Ｓ１００１）、受信がない場合は待機を継続する（Ｓ１００１：ＮＯ）。受信があった場合は、第２復号鍵３４を用いて第２暗号化コード２４を復号し（Ｓ１００２）、ポスト１４のＩＤ１８を取得する（Ｓ１００３）。
【００３４】
上述のＩＤ１８を利用し、所望する機能を実現する。以下、一例としてＩＤ１８に紐付けられた動画を再生する例を示す。図１１に示すように、基本ソフトウェア３０で取得したＩＤ１８はアプリケーションプログラム２８で参照できる。アプリケーションプログラム２８は、ＩＤテーブル参照部１４０により、ＩＤテーブル１４６を参照する。
【００３５】
ＩＤテーブル１４６は、移動端末内部、又は外部のメモリカード、外部サーバなどにファイルとして格納されている。ＩＤテーブル１４６にはＩＤ１８に紐付けられた動画の名称もしくは格納場所含め名称を示す情報が記載されている。この情報を元に動画再生部１４２で動画データ１４４を再生する。再生された動画データ１４４は図示しない画面に表示される。
【００３６】
図１２に示すように、アプリケーションプログラム２８は、ＩＤ１８の更新確認を行う（Ｓ１２０１）。ＩＤ１８が更新されていない場合は、再度これが更新されるまで待機する（Ｓ１２０１：ＮＯ）。更新された場合は（Ｓ１２０１：ＹＥＳ）、ＩＤテーブル１４６を参照する（Ｓ１２０２）。ＩＤテーブル１４６に当該ＩＤ１８が存在しない場合は（Ｓ１２０３：ＮＯ）再度ＩＤ１８の更新を待つ（Ｓ１２０１）。
【００３７】
ＩＤ１８がＩＤテーブル１４６に存在しない理由は、基本ソフトウェア３０内で利用した第２復号鍵３４が間違っているため、復号化部３６で復号されるＩＤ１８が間違っていると考えられる。第２復号鍵３４は第１暗号化コード２９から生成されるので、アプリケーションプログラム２８で利用している第１暗号化コード２９が不正であると判断できる。この場合、動画を再生するという本来の機能が実現できなくなることから、結果として不正な複製を防ぐ機能が実現できる。
【００３８】
なお、ここですぐに処理をやめないのは、通信でポスト１４からのデータを取得しているため、通信上の不具合でＩＤ１８の復元ができなかったことを考慮したためである。
ＩＤテーブル１４６に当該ＩＤ１８が存在する場合は（Ｓ１２０３：ＹＥＳ）、動画の情報を取得し（Ｓ１２０４）、動画を再生し（Ｓ１２０５）、その後、再度ＩＤ１８の更新確認に戻る（Ｓ１２０１）。
【００３９】
第１実施形態による効果をまとめると以下のとおりである。
第１実施形態に係る本システム１０によれば、端末内部にある基本ソフトウェア３０内部に復号鍵を持ち、これに対となる暗号鍵で作成したポスト１４用の復号鍵を含む暗号データをアプリケーションプログラム２８から付与される。基本ソフトウェア３０はアプリケーションプログラム２８より前記暗号データが付与されないと動作しない。偽の暗号データが付与された場合、外部ポスト１４用の復号鍵が生成されずポスト１４情報を読むことができないため、不正利用を防止することができる。また、基本ソフトウェア３０は第１暗号化コード２９をアプリケーションプログラム２８より与えられないと起動しないように構成されるため、基本ソフトウェア３０のみの不正コピーを防止できる。
【００４０】
また、第１暗号化コード２９はＡＰＩにより基本ソフトウェア３０に通知され、アプリケーションプログラム２８内部に配置されるため、第１暗号化コード２９の不正コピーを行うことができない。
【００４１】
でたらめの暗号化コードを入力した場合は、図１２の説明に示されるように、正しいＩＤ１８を取得することができず、結果としてポスト１４情報を利用できない。仮に第１暗号化コード２９が不正にコピーできたとしても、対象エリア外では第２復号鍵３４が一致せずＩＤ１８を結果として利用できない。従って、この場合もポスト１４情報を利用できない。なお、この場合、基本ソフトウェア３０の動作を停止させる制御を行ってもよい。
【００４２】
第１暗号化コード２９内部にポスト１４からの第２暗号化コード２４を解読するための第２復号鍵３４が含まれているが、第１暗号化コード２９は暗号化されているので、不正に読みとったり変更したりすることはできない。
【００４３】
また、ポスト１４から送出されるデータである第２暗号化コード２４の解読用の鍵を第１暗号化コード２９内部に格納するため、基本ソフトウェア３０そのものを変更することなく、暗号コード１のみを変更するだけで、該当エリアに対応するポスト１４の復号鍵である第２復号鍵３４の配布が可能となる。これらの作用は、ＵＳＢメモリなどの外部機器を行わずに実現できる。
【００４４】
（第２実施形態）
次に、第２実施形態について説明する。第１実施形態と同一の要素には同一の符号を付して説明を省略し、第１実施例と異なる箇所のみ説明する。第２実施形態では暗号化したデータの秘匿性を高めるため、不要な乱数を付与して暗号化する実施形態である。解読後、乱数は破棄する。
【００４５】
図１３に示すように、ポスト１４は、乱数発生器１５０備える。乱数発生器１５０では定期的に異なる乱数１５０ａを発生させている。発生した乱数１５０ａおよびＩＤ１８を利用して第２暗号化コード２４を作成し、発信機２６ａから出力する。乱数発生器１５０はソフトウェア、ハードウェアどちらで構成しても良い。基本ソフトウェア３０では復号化部３６で暗号を解読し、ＩＤ１８と乱数１５０ａとを得る。
【００４６】
第１暗号化コード２９にも、後述する様に乱数１５０ａが含まれている。復号化部３１では、第２復号鍵３４および乱数１５０ａが得られる。基本ソフトウェア３０では第１暗号化コード２９から作成される乱数１５０ａ、および第２暗号化コード２４から作成される乱数１５０ａ共に生成するのみで利用しない。
【００４７】
図１４に示すように、ここでは乱数１５０ａが付加された第１暗号化コード２９を生成する。コード生成装置５０は乱数発生器１５０を備える。乱数発生器１５０では定期的に異なる乱数１５０ａを発生させている。発生した乱数１５０ａおよび第２復号鍵３４は第１暗号鍵４０で暗号化され第１暗号化コード２９が作成される。なお、乱数１５０ａを付与するのは第１暗号化コード２９もしくは第２暗号化コード２４の一方でも良い。
【００４８】
第２実施形態による効果をまとめると以下のとおりである。
第２実施形態に係る本システム１０によれば、第１暗号化コード２９、第２暗号化コード２４の生成時に固定コード（固定値）である第２復号鍵３４、ＩＤ１８に加え、定期的に変化する乱数１５０ａを加えるため、結果として第１暗号化コード２９、第２暗号化コード２４の値が定期的に変化する。これにより秘匿性をあげることが可能となる。特にポスト１４のＩＤ１８に関しては暗号化をしないと常に同一の暗号化されたコードが出力されるため、暗号化された番号を利用するだけでポスト１４を特定できてしまう。第２実施形態では乱数１５０ａの発生周期を通信毎にするなどすることでこれも防ぐことができる。
【００４９】
（第３実施形態）
次に、第３実施形態について説明する。第１実施形態と同一の要素には同一の符号を付して説明を省略し、第１実施形態と異なる箇所のみ説明する。
【００５０】
先に説明した第１実施形態では、第１暗号化コード２９の不正データ認識を図１２のＩＤ１８テーブル参照まで検知できなかった。第３実施形態は、この点を改良した実施形態である。これを実現するため、第３実施形態では、第１暗号化コード２９を生成する際に確認用コード１５２を埋め込む。
【００５１】
図１５に示すように、ここでは確認用コード１５２が付加された第１暗号化コード２９を生成する。確認用コード１５２は固定でも、第２復号鍵３４を元に可逆可能な計算式により生成されるコードでも良い。可逆可能な計算式としては、例えば反転コードなどを例示することができる。ここでは説明の為、確認用コード１５２を固定コード”ＡＢＣＤ”とした例を示して説明する。暗号化部４２では、第２復号鍵３４および確認用コード１５２を暗号化し、第１暗号化コード２９を生成する。
【００５２】
確認用コード１５２が固定値では無く、第２復号鍵３４を元に生成されるコードの場合は、図示しない確認用埋め込みコード生成装置であらかじめ決められた、もしくはその場で作成した可逆可能な計算式より、以下に説明する確認用埋め込みコード１５４（以下、埋込コード１５４と称する）を作成しこれを利用する。
【００５３】
図１６に示すように、第１復号鍵３２に加え、埋込コード１５４を基本ソフトウェア３０に埋め込む。埋込コード１５４は、ここでは確認用コードと同一の値"ＡＢＣＤ"である。確認用コード１５２が固定値では無く、第２復号鍵３４を元に生成されるコードの場合は、図示しない確認用埋め込みコード生成装置で埋込コード１５４を生成する際に利用した可逆可能な計算式を基本ソフトウェア３０に埋め込む。
【００５４】
図１７に示すように、第１暗号化コード２９は、復号化部３１で復号され、第２復号鍵３４および確認用コード１５２が生成される。ここでは図１６で設定した確認用コード”ＡＢＣＤ”が復号される。
【００５５】
図１８に示すように、まず、アプリケーションプログラム２８は、第１暗号化コード２９の入力を待つ（Ｓ１８０１）。第１暗号化コード２９が入力されるまで基本ソフトウェア３０は起動しない（Ｓ１８０１：ＮＯ）。次に、第１暗号化コード２９が入力されたら、復号化部３１は、基本ソフトウェア３０内部に保持する第１復号鍵３２を用いて、第１暗号化コード２９の復号を行う（Ｓ１８０２）。第１暗号化コード２９を取得し第１復号鍵３２で復号することで確認用コード１５２および第２復号鍵３４が生成される。この時点では正常に復号できたかは解らない。
【００５６】
次に、確認コードの内容が”ＡＢＣＤ”であるかを確認する（Ｓ１８０３）。確認コードの内容が”ＡＢＣＤ”でなければ（Ｓ１８０３：ＮＯ）、第１暗号化コード２９は不正であるので基本ソフトウェア３０を停止する（Ｓ１８０４）。確認コードの内容が”ＡＢＣＤ”であれば（Ｓ１８０３：ＹＥＳ）、第２復号鍵３４を保存し（Ｓ１８０５）、処理を終了する。
【００５７】
なお、先に説明したように、確認用コード１５２を固定コードとせず、第２復号鍵３４を基に生成されるコードとしても良い。この場合フローチャートでは図示しないが、確認コード判定部で第２復号鍵３４を読み、確認用コード１５２を生成した処理と同様の処理を行い、作成されたコードと復号した確認用コード１５２とを比較すればよい。
【００５８】
第３実施形態による効果をまとめると以下のとおりである。
第３実施形態に係る本システム１０によれば、第１暗号化コード２９を正常に復号できない、すなわち第１暗号化コード２９と基本プログラムが正しいペアでない、すなわち不正利用である場合、即基本プログラムを停止でき、不正利用を防止できる。
【００５９】
（第４実施形態）
次に、第４実施形態について説明する。第１実施形態と同一の要素には同一の符号を付して説明を省略し、第１実施形態と異なる箇所のみ説明する。
【００６０】
第４実施形態では第３形態をポスト１４の暗号化に応用し、不正エリアでの利用を防止する実施形態である。これを実現するため第２暗号化コード２４を生成する際にポスト確認用コード１５６（以下、確認用コード１５６と称する）を埋め込む。
【００６１】
図１９に示すように、ポスト１４では、確認用コード１５６が付加された第２暗号化コード２４を生成する。確認用コード１５６は、第３実施形態で説明した確認用コード１５２と同様の構成としてもよい。ここでは説明の為、確認用コード１５６を、固定コード”ＡＢＣＤ”として説明する。
【００６２】
暗号化部２０では、ＩＤ１８および確認用コード１５６、すなわち固定コード”ＡＢＣＤ”を暗号化し、第２暗号化コード２４を生成する。第２暗号化コード２４は発信部２６ａにより発信される。基本ソフトウェア３０では、第２暗号化コード２４から確認用コード１５６、及びＩＤ１８が生成される。
【００６３】
図２０に示すように、まず、移動端末１６ではアプリケーションプログラム２８が実行されており、ポスト１４からの信号の受信を待つ（Ｓ２００１）。ポスト１４からの信号の受信がされるまで基本ソフトウェア３０は待機を継続する（Ｓ２００１：ＮＯ）。次に、ポスト１４からの信号を受信した場合は（Ｓ２００１：ＹＥＳ）、復号化部３６は、第２復号鍵３４で、ポスト確認コード１９０、及びＩＤ１８を復号する（Ｓ２００２）。
【００６４】
ここで、移動端末１６は、ポスト確認コード１９０として、固定値である固定コード”ＡＢＣＤ”を取得できたか否かを確認する（Ｓ２００３）。ポスト確認コード１９０が、固定コード”ＡＢＣＤ”を取得できなかった場合は（Ｓ２００３：ＮＯ）、再度、ポスト１４からの受信を待つ。これは、ポスト１４からのデータが、例えば通信障害等によるノイズにより壊れていた等の場合を想定したものである。ポスト確認コード１９０が、固定コード”ＡＢＣＤ”を取得できた場合は（Ｓ２００３：ＹＥＳ）、ＩＤ１８を取得する（Ｓ２００４）。なお、上述の方法に代えて、第３実施形態で説明した方法を用いてコードの確認を行っても良い。
【００６５】
第４実施形態による効果をまとめると以下のとおりである。
第４実施形態に係る本システム１０によれば、不正エリアで利用された場合にＩＤ１８を受信しない。これにより不正利用を防止することができる。さらに、通信障害などにより正常にデータを受信することができない場合も、ＩＤ１８を受信しない効果がある。
【００６６】
（第５実施形態）
次に第５実施形態について説明する。第１実施形態と同一の要素には同一の符号を付して説明を省略し、第１実施形態と異なる箇所のみ説明する。第５実施形態では、第１暗号化コード２９に利用期限を付加し、利用期限外での不正利用を防止する。
【００６７】
図２１に示すように、ここでは利用期限１５８が付加された第１暗号化コード２９を生成する。また、利用期限１５８としては、最終利用日、利用可能回数、又は利用可能日数を設定する方法など、種々の方法を採用することができる。
【００６８】
図２２に示すように、第１暗号化コード２９には、第２復号鍵３４と利用期限１５８が格納されているので、これを復号することにより第２復号鍵３４および利用期限１５８が取得される。図２３に示すように、ここでは、利用期限１５８を確認し、利用期限を越えている場合は（Ｓ２３０１：ＮＯ）、基本ソフトウェア３０を停止する（Ｓ２３０２）。利用期限内の場合は（Ｓ２３０１：ＹＥＳ）、第２復号鍵３４を生成してこれを保存し（Ｓ９０３）、起動処理を終了する。
【００６９】
利用期限１５８として、例えば利用最終日が記載されている場合は、移動端末１６内に保持するカレンダーと比較する方法が考えられる。また利用日数（１日を１回とカウントするなど）が記載されている場合、利用日毎にカウントする方法などが考えられる。
【００７０】
第５実施形態による効果をまとめると以下のとおりである。
第５実施形態に係る本システム１０によれば、第１暗号化コード２９に利用期限１５８を設けることができるので、基本ソフトウェア３０の不正な利用を防止できる。さらに、第１暗号化コード２９に利用期限１５８を有しているので、第１暗号化コード２９の変更のみで基本ソフトウェア３０そのものの変更無しに利用期限１５８の変更を行うことができる。
【００７１】
（第６実施形態）
次に第６実施形態について説明する。第１実施形態と同一の要素には同一の符号を付して説明を省略し、第１実施形態と異なる箇所のみ説明する。第６実施形態では本システムを測位に応用する。
【００７２】
図２４に示すように、ポスト１４に格納されるＩＤ１８（図２４におけるポストＩＤ１〜７）とそのポスト１４の位置を示す緯度、及び経度がテーブルとして準備されている。これにより、ポスト１４からの送信データを受信してＩＤ１８を復号した後、復号したＩＤ１８を基に本テーブルを参照することで、受信したポスト１４の緯度経度を取得できる。これにより受信したポスト１４の測位、すなわち位置の特定ができる。測位した緯度経度はアプリケーションプログラム２８で参照できる。
【００７３】
図２５に示すように、基本ソフトウェア３０は、測位システム１６０を有する。測位システム１６０はポスト１４からのＩＤ１８を復号すると、それを基にして測位をおこなう。図２６に示すように、ポスト１４からのＩＤ１８と、ポスト／緯度経度テーブル１６８（以下、テーブル１６８と称する）から当該ポスト１４の緯度経度１６２を算出する。
【００７４】
なお、本実施形態では、本ブロック内部にテーブル１６８を配置しているが、他の場所に配置してもよい。また、本実施形態では、テーブル１６８が、ポスト１４とその位置情報である緯度経度１６２との対応関係を備える例を示したが、さらにフロア情報や高度などの高さ方向の情報を備えさせ、高層ビルや地下街などの利用に供しても良い。
【００７５】
また、位置を示す方法として緯度経度を例示したが、その他の方法、例えば基準点に対するベクトル座標や、あるいは交差点名称、道路名称、住所などの地点を特定できる情報を付加してもよい。この場合、図２５の説明において、取得される情報も緯度経度に限らず、ポスト１４に紐付けられた上記各種情報となる。図２４で示すアプリケーションプログラム２８が取得する情報についても同様である。
【００７６】
第６実施形態による効果をまとめると以下のとおりである。
第６実施形態に係る本システム１０によれば、ポスト１４のＩＤ１８と、テーブル１６８を用いることで、ポスト１４から緯度経度への変換、すなわち測位を実現できる。また、ＩＤ１８を緯度経度１６２、又は住所などの位置情報にすることにより、ＩＤ１８をそのまま位置情報として利用できるため、測位を実現できる。
【００７７】
（第７実施形態）
次に第７実施形態について説明する。第１及び第６実施形態と同一の要素には同一の符号を付して説明を省略し、異なる箇所のみ説明する。第７実施形態は、第６実施形態において、利用エリアを制限する方法に関する。
【００７８】
図２７に示すように、ここでは利用可能エリア１７０が付加された第１暗号化コード２９を生成する。利用可能エリア１７０は、緯度経度の範囲を示す矩形または多角形情報でも良いし、住所などを利用しても良い。また、ビルなどの建物名でも良いし、地下街などの名称を入れても良い。さらに、高さ方向を示すフロア情報や高度を付与してもよい。要するに利用可能な範囲を示す情報を付与する。
【００７９】
図２８に示すように、第１暗号化コード２９が第１復号鍵３２を用いて解読され、第２復号鍵３４および利用可能エリア１７０が復号される。利用可能エリア１７０は測位システム１６０に送られる。図２９に示すように、利用可能判定部１７２は、緯度経度取り出し部１６４より取り出した緯度経度１６２と、利用可能エリア１７０に記載されている情報から、利用可能か否かを判定し、利用可能な場合には緯度経度１６２を出力する。
【００８０】
第７実施形態による効果をまとめると以下のとおりである。
第７実施形態に係る本システム１０によれば、本システムを測位に応用するシステムに於いて利用可能エリアを制限できるため不正な複製を防止できる。
【００８１】
（第８実施形態）
次に第８実施形態について説明する。第１実施形態と同一の要素には同一の符号を付し説明を省略し、異なる箇所のみ説明する。第８実施形態では、第１暗号化コード２９に外部サーバへのサーバアクセス情報１７４（以下、アクセス情報１７４と称する）を記載する。
【００８２】
図３０に示すように、ここではアクセス情報１７４が付加された第１暗号化コード２９を生成する。アクセス情報１７４とは、移動端末１６以外の外部に設置されたサーバへのアクセス情報であり、サーバのアドレスやパスワードなど、サーバアクセスの為の情報を意味する。ここでは、アクセス情報１７４が、サーバアドレス、ユーザ名、及びパスワードである例を示して説明する。
【００８３】
図３１に示すように、基本ソフトウェア３０は、第１暗号化コード２９を復号してアクセス情報１７４を取得する。図２９の説明にあるように、ここではサーバアドレス、ユーザ名、パスワードが取得される。移動端末１６は、サーバ１８０にアクセスし、取得したアクセス情報１７４を送信する。サーバ１８０では、送信された取得したアクセス情報１７４に基づき、認証確認部１８２が認証テーブル１８４と照合する。認証が行われると、サーバ１８０は、第２復号鍵３４を移動端末１６に送付する。
【００８４】
図３２に示すように、移動端末１６はアクセス情報１７４を取得すると、取得したサーバアドレスのサーバ１８０にアクセスする。移動端末１６は、サーバ１８０に、取得したアクセス情報１７４（例えば、ユーザ名、パスワード）を送信し、サーバ１８０に認証を指示する（Ｓ３２０１）。サーバ１８０では認証を行い、認証が成功すれば（Ｓ３２０２：ＹＥＳ）、移動端末１６はサーバ１８０から第２復号鍵３４を取得する（Ｓ３２０４）。認証が失敗した場合は（Ｓ３２０２：ＮＯ）不正利用として基本ソフトウェア３０を停止する（Ｓ３２０３）。
【００８５】
図３３に示すように、認証テーブル１８４には、例えばユーザ名、パスワード、第２復号鍵３４が対応付けられた状態で格納されている。これを参照することにより、認証が行われる。
【００８６】
図３４に示すように、サーバ１８０は、図３３の認証テーブルを参照して、認証テーブル１８４内にユーザ名があるかを判定する（Ｓ３４０１）。認証テーブル１８４内にユーザ名がない場合は（Ｓ３４０１：ＮＯ）、認証失敗と判断し（Ｓ３４０２）、図３２のＳ３２０３に移行する。
【００８７】
認証テーブル１８４内にユーザ名がある場合は（Ｓ３４０１：ＹＥＳ）、認証テーブル１８４内の当該ユーザ名に対応するパスワードを取得する（Ｓ３４０３）。次に、サーバ１８０は、アクセス情報１７４から取得したパスワードと、認証テーブル１８４から取得したパスワードが一致するか否かを判定し、一致していない場合は（Ｓ３４０４：ＮＯ）、認証失敗と判定し（Ｓ３４０２）、図３２のＳ３２０３に移行する。
【００８８】
パスワードが一致した場合は（Ｓ３４０４：ＹＥＳ）、認証成功と判定し（Ｓ３４０５）、サーバ１８０は、認証テーブル１８４内の対応する第２復号鍵３４を取得し（Ｓ３４０６、図３２のＳ３２０４に移行する。
【００８９】
なお、サーバ１８０の認証テーブル１８４の対応情報が、ユーザ名、及びパスワードとした例を示して説明したが、これに限定するものでない。例えば、利用期限などを記載すれば、サーバ１８０での認証時に有効期限を取得させる等に利用できる。
【００９０】
第８実施形態による効果をまとめると以下のとおりである。
第８実施形態に係る本システム１０によれば、第１暗号化コード２９にサーバ１８０へのアクセス情報１７４を格納し、サーバ１８０に第２復号鍵３４の情報を保持させ、それを移動端末１６に送信する。このため、第１暗号化コード２９のデータを変えずに第２復号鍵３４の値を変更したり、第２復号鍵３４の作成を停止したりすることで、基本ソフトウェア３０の動作を停止することができる。また、利用期限情報などの情報を持つことで、利用期限の変更を第１暗号化コード２９の内容を変えずに実現できる。
【００９１】
なお、本実施例では、第１暗号化コード２９にサーバ１８０へのアクセス情報１７４のみを定義したが、第１実施形態から第７実施形態と組み合わせ、これらの機能を分散してもよい。また、上記第１実施形態から第８実施形態において、暗号および復号の鍵に、異なる鍵を用いる方法を用いて説明してきたが、共通暗号鍵方式を用いてもよい。
【符号の説明】
【００９２】
図において、１０はソフトウェア複製防止システム、１４はポスト、１６は移動端末（端末）、２２は第２暗号鍵、２４は第２暗号化コード、２６ａは発信部、２６ｂは受信部、２９は第１暗号化コード、３０は基本ソフトウェア、３１は第１暗号化コード用復号化部（復号化部）、３２は第１復号鍵、３４は第２復号鍵、３６は第２暗号化コード用復号化部（復号化部）、４０は第１暗号鍵、５０は第１暗号化コード生成装置、５２は基本ソフトウェア作成装置を示す。
【図１】
0006287964.tif 000002
【図２】
0006287964.tif 000003
【図３】
0006287964.tif 000004
【図４】
0006287964.tif 000005
【図５】
0006287964.tif 000006
【図６】
0006287964.tif 000007
【図７】
0006287964.tif 000008
【図８】
0006287964.tif 000009
【図９】
0006287964.tif 000010
【図１０】
0006287964.tif 000011
【図１１】
0006287964.tif 000012
【図１２】
0006287964.tif 000013
【図１３】
0006287964.tif 000014
【図１４】
0006287964.tif 000015
【図１５】
0006287964.tif 000016
【図１６】
0006287964.tif 000017
【図１７】
0006287964.tif 000018
【図１８】
0006287964.tif 000019
【図１９】
0006287964.tif 000020
【図２０】
0006287964.tif 000021
【図２１】
0006287964.tif 000022
【図２２】
0006287964.tif 000023
【図２３】
0006287964.tif 000024
【図２４】
0006287964.tif 000025
【図２５】
0006287964.tif 000026
【図２６】
0006287964.tif 000027
【図２７】
0006287964.tif 000028
【図２８】
0006287964.tif 000029
【図２９】
0006287964.tif 000030
【図３０】
0006287964.tif 000031
【図３１】
0006287964.tif 000032
【図３２】
0006287964.tif 000033
【図３３】
0006287964.tif 000034
【図３４】
0006287964.tif 000035