(57)【特許請求の範囲】
【請求項１】
コンピュータ装置と接続するメモリ媒体を利用して、当該コンピュータ装置によるプログラムの使用を認証するプログラム使用認証方法において、
前記コンピュータ装置の受け付け手段が、各プログラムにそれぞれ固有の第１のコードと第２のコードとに基づいて、前記第１のコードと、前記第２のコードを前記第１のコードを利用して暗号化することにより生成された第２の暗号化コードとを組み合わせて生成されたインストールキーの入力を受け付ける受け付けステップと、
前記コンピュータ装置の受信手段が、前記インストールキーに含まれる前記第１のコードを前記メモリ媒体に通知し、前記メモリ媒体により前記第１のコードを暗号化した前記第１の暗号化コードを前記メモリ媒体から受信する受信ステップと、
前記コンピュータ装置の読み出し手段が、前記第２のコードを前記第１のコードを利用して暗号化することにより生成され且つ前記メモリ媒体に格納される第２の暗号化コードを前記メモリ媒体から読み出す読み出しステップと、
前記コンピュータ装置のインストール認証手段が、前記受け付け手段が受け付けた前記インストールキーに含まれる前記第２の暗号化コードと、前記読み出し手段が前記メモリ媒体から読み出した前記第２の暗号化コードとを、前記受信手段が受信する前記第１の暗号化コードにより前記第２のコードに復号し、当該復号された２つの第２のコードの一致／不一致を判定することを特徴とするプログラム使用認証方法。
【請求項２】
コンピュータ装置と接続するメモリ媒体を利用して、当該コンピュータ装置によるプログラムの使用を認証するプログラム使用認証方法において、
前記コンピュータ装置の受け付け手段が、各プログラムにそれぞれ固有の第１のコードと第２のコードとに基づいて、前記第１のコードと前記第２のコードとを組み合わせて生成されたインストールキーの入力を受け付ける受け付けステップと、
前記コンピュータ装置の受信手段が、前記インストールキーに含まれる前記第１のコードを前記メモリ媒体に通知し、前記メモリ媒体により前記第１のコードを暗号化した前記第１の暗号化コードを前記メモリ媒体から受信する受信ステップと、
前記コンピュータ装置の読み出し手段が、前記第２のコードを前記第１のコードを利用して暗号化することにより生成され且つ前記メモリ媒体に格納される第２の暗号化コードを前記メモリ媒体から読み出す読み出しステップと、
前記コンピュータ装置のインストール認証手段が、前記読み出し手段が前記メモリ媒体から読み出した前記第２の暗号化コードを、前記受信手段が受信した前記第１の暗号化コードにより前記第２のコードに復号し、当該復号された第２のコードと、前記インストールキーに含まれる前記第２のコードの一致／不一致を判定することを特徴とするプログラム使用認証方法。
【請求項３】
請求項１又は２において、
前記第２の暗号化コードは、前記第１のコードを前記メモリ媒体で暗号化して生成される第１の暗号化コードにより、前記第２のコードを暗号化することにより生成されることを特徴とするプログラム使用認証方法。
【請求項４】
請求項１乃至３のいずれかにおいて、さらに、
前記インストール認証ステップでインストールが許可された場合、前記コンピュータ装置の格納手段が、前記プログラムを前記コンピュータ装置にインストールするとともに、前記インストールキーを前記メモリ媒体に格納する格納ステップと、
前記コンピュータ装置の起動認証手段が、前記メモリ媒体に格納されるインストールキーを読み出し、当該インストールキーと、外部入力されたインストールキーとの比較に基づいて、前記プログラムの起動の許可／不許可についての認証を実行する起動認証ステップとを備えることを特徴とするプログラム使用認証方法。
【請求項５】
請求項１乃至３のいずれかにおいて、さらに、
前記インストール認証ステップでインストールが許可された場合、前記コンピュータ装置の格納手段が、前記プログラムを前記コンピュータ装置にインストールするとともに、前記インストールキーを前記メモリ媒体及び前記コンピュータ装置に格納する格納ステップと、
前記コンピュータ装置の起動認証手段が、前記メモリ媒体及び前記コンピュータ装置それぞれに格納されるインストールキーを読み出し、当該２つのインストールキーの比較に基づいて、前記プログラムの起動の許可／不許可についての認証を実行する起動認証ステップとを備えることを特徴とするプログラム使用認証方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムの不正なインストール、不正な実行を防止するためのプログラム使用認証方法及びプログラム使用認証プログラムに関する。
【０００２】
【従来の技術】
インストールキー（又はプロダクトキーともいう）のような所定の識別子（ＩＤ）を使用して、プログラムの不正インストールを防止する方法が一般的に行われている。すなわち、プログラムのインストール時に、ユーザは、コンピュータ装置に対してインストールキー（プロダクトキー）を入力し、入力されたインストールキーと、プログラム内のインストールキーとの比較に基づいて照合を行い、入力されたインストールキーが、プログラム内のインストールキーと一致すれば、インストールが許可される。
【０００３】
ユーザに与えられるインストールキーは、例えば、プログラムを格納した記録媒体（例えば、ＣＤ−ＲＯＭなど）のパッケージに同封される印刷物に記されたり、又は、ユーザ宛に郵送される郵便物に記されている。
【０００４】
印刷されたインストールキーを有する正当なユーザは、インストール時に、そのインストールキーを入力することで、プログラムを正常にインストールすることができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、印刷されたインストールキーは、他人が盗み見すれば、容易に知ることができるので、正当な権限を有するユーザ以外の無権限者が、そのインストールキーを入手してしまうと、プログラムを不正にインストールされるおそれがある。
【０００６】
このような不正を防止するために、インストールキーを格納したメモリ媒体（ＩＣカードなど）を正当なユーザに供給し、インストール時に、プログラムをインストールする装置に、そのメモリ媒体を接続することを条件に、インストールを可能にする方法がある。すなわち、メモリ媒体に格納されるインストールキーとプログラム内のインストールキーとの比較による認証を行う。メモリ媒体にインストールキーを格納することで、インストールキー自体は、外部に現れず、また、そのメモリー媒体自体が盗まれ、解読されない限り、不正インストールを防止することができる。但し、メモリ媒体が盗まれ、インストールキーが解読されると、不正なインストールが行われるおそれがある。
【０００７】
従って、メモリ媒体を利用した認証を行う場合であっても、メモリ媒体には、できるだけセキュリティレベルの高い認証用データを格納する必要がある。
【０００８】
また、メモリ媒体を利用した上記インストール方法においても、プログラムのインストール後は、自由にそのプログラムを起動、実行できるので、一旦、不正にインストールされた後において、そのプログラムの不正使用を防止することはできない。
【０００９】
本発明の目的は、よりセキュリティレベルの高い認証用データを格納したメモリ媒体を利用したプログラム使用認証方法を提供することにある。
【００１０】
本発明の目的は、所定の認証用データを格納したメモリ媒体を利用して、プログラムのインストール、起動、実行などのプログラムの使用についての認証を実行するプログラム使用認証方法を提供することにある。
【００１１】
【課題を解決するための手段】
上記目的を達成するための本発明における第１のプログラム使用認証方法は、コンピュータ装置と接続するメモリ媒体を利用して、当該コンピュータ装置によるプログラムの使用を認証するプログラム使用認証方法において、前記コンピュータ装置の受け付け手段が、各プログラムにそれぞれ固有の第１のコードと第２のコードとに基づいて、前記第１のコードと、前記第２のコードを前記第１のコードを利用して暗号化することにより生成された第２の暗号化コードとを組み合わせて生成されたインストールキーの入力を受け付ける受け付けステップと、前記コンピュータ装置の受信手段が、前記インストールキーに含まれる前記第１のコードを前記メモリ媒体に通知し、前記メモリ媒体により前記第１のコードを暗号化した前記第１の暗号化コードを前記メモリ媒体から受信する受信ステップと、
前記コンピュータ装置の読み出し手段が、前記第２のコードを前記第１のコードを利用して暗号化することにより生成され且つ前記メモリ媒体に格納される第２の暗号化コードを前記メモリ媒体から読み出す読み出しステップと、前記コンピュータ装置のインストール認証手段が、前記受け付け手段が受け付けた前記インストールキーに含まれる前記第２の暗号化コードと、前記読み出し手段が前記メモリ媒体から読み出した前記第２の暗号化コードとを、前記受信手段が受信する前記第１の暗号化コードにより前記第２のコードに復号し、当該復号された２つの第２のコードの一致／不一致を判定することを特徴とする。また、本発明における第２のプログラム使用認証方法は、コンピュータ装置と接続するメモリ媒体を利用して、当該コンピュータ装置によるプログラムの使用を認証するプログラム使用認証方法において、前記コンピュータ装置の受け付け手段が、各プログラムにそれぞれ固有の第１のコードと第２のコードとに基づいて、前記第１のコードと前記第２のコードとを組み合わせて生成されたインストールキーの入力を受け付ける受け付けステップと、前記コンピュータ装置の受信手段が、前記インストールキーに含まれる前記第１のコードを前記メモリ媒体に通知し、前記メモリ媒体により前記第１のコードを暗号化した前記第１の暗号化コードを前記メモリ媒体から受信する受信ステップと、前記コンピュータ装置の読み出し手段が、前記第２のコードを前記第１のコードを利用して暗号化することにより生成され且つ前記メモリ媒体に格納される第２の暗号化コードを前記メモリ媒体から読み出す読み出しステップと、前記コンピュータ装置のインストール認証手段が、前記読み出し手段が前記メモリ媒体から読み出した前記第２の暗号化コードを、前記受信手段が受信した前記第１の暗号化コードにより前記第２のコードに復号し、当該復号された第２のコードと、前記インストールキーに含まれる前記第２のコードの一致／不一致を判定することを特徴とする。
【００１２】
このように、メモリ媒体に格納される第２の暗号化コードは、ユーザが入力するインストールキーとは異なり、第２の暗号化コードを解読するだけでは、インストールキーを知り得ないので、不正なインストールを困難にし、より高いセキュリティが実現される。また、複数のコードを組み合わせて、メモリ媒体に格納するコードを生成するので、より複雑で、解読困難なコードがメモリ媒体に格納され、セキュリティ向上に寄与する。
【００１３】
さらに、インストール時だけでなく、インストール後にプログラムを起動するとき、さらに好ましくは、プログラムを実行している間においても、各プログラムに１対１に対応するメモリ媒体を必要とする認証処理を実行することで、プログラムの不正使用を防止でき、さらに、複数のコンピュータ装置での同時使用を防止することができる。
【００１４】
【発明の実施の形態】
以下、本発明の実施の形態について説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。以下に述べられる本発明の実施の形態における認証用データ及びインストールキー生成方法（以下、単に認証用データ生成方法という）は、プログラムを出荷する前（ユーザに提供する前）に実施され、メモリ媒体（以下の実施の形態例では、ＩＣカード）に格納する認証用データを各プログラム固有に生成し、さらに、各プログラムに固有のインストールキーは、プログラムに格納されるとともに、正規のユーザに通知される。そして、本実施の形態におけるプログラム使用認証方法は、生成されたインストールキーが登録されたプログラムと、生成された認証用データを格納するＩＣカードをユーザが入手してから、所定のコンピュータ装置にプログラムをインストールする際に実行される。また、本明細書におけるプログラムの使用とは、プログラムのインストール、起動、実行を含む意味である。
【００１５】
図１は、本発明の実施の形態における第１の認証用データ生成方法、図２は、本発明の実施の形態における第１のインストール認証方法を説明する図であって、図１３は、第１の認証用データ生成方法の処理フローチャート、図１４は、第１のインストール認証方法の処理フローチャートである。まず、第１の認証用データ生成方法について、図１を参照しつつ、図１３のフローチャートに沿って説明する。認証用データ生成方法における各工程は、所定のコンピュータ装置（以下、認証用データ生成装置という）２に記憶されている認証用データ生成プログラムにより実行される。認証用データ生成装置は、ＩＣカード１と通信可能に接続している。認証用データ生成装置２は、ＩＣカードリーダ／ライタを内蔵していてもよいし、外付けのＩＣカードリーダ／ライタを介して接続してもよい。
【００１６】
本発明の実施の形態における認証用データ生成方法では、各プログラムについて、２つのコード（ＩＤ）が用意され、その２つのコードを用いて、認証用データ及びインストールキーが生成される。
【００１７】
オペレータにより、２つのコード（Code-A、Code-B）が認証用データ生成装置２に入力される（Ｓ１００）。２つのＩＤ（Code-A、Code-B）それぞれは、各プログラムに固有にあらかじめ用意される。
【００１８】
認証用データ生成装置２は、入力された２つのＩＤのうち、Code-AがＩＣカード１に通知し、ＩＣカード１は、内蔵される所定の暗号関数で、Code-Aを暗号化し（暗号化されたCode-AをE(Code-A)と称す）、E(Code-A)を認証用データ生成装置２に返信する（Ｓ１０１）。
【００１９】
認証用データ生成装置２は、E(Code-A)を受信すると、それを暗号キーとして、ステップＳ１００で入力されたCode-Bを暗号化し（暗号化されたCode-BをE(Code-B)と称す）（Ｓ１０２）、そのE(Code-B）をＩＣカード１に書き込む（Ｓ１０３）。
【００２０】
さらに、認証用データ生成装置２は、Code-AとE(Code-B)とを組み合わせて、インストールキー（Code-A＋E(Code-B)）を生成し（Ｓ１０４）、それを印刷出力する（Ｓ１０５）。印刷されたインストールキーは、プログラムを格納した記録媒体のパッケージに同封されて、ユーザに提供される。または、プログラムを格納したメモリ媒体とは別に、郵便などで送付されてもよい。また、E(Code-B)が書き込まれたＩＣカードも、郵便などで、ユーザに送付される。
【００２１】
このように、本実施の形態では、２つのコードを使用し、一方のコードをＩＣカード１に記憶される暗号関数で暗号化し、他方のコードをその暗号化されたコードで暗号化して、ＩＣカード１に格納される認証用データ（すなわち、第２の暗号化データ）を生成する。そして、生成される認証用データは、インストールキーとは異なるコードであるので、例えば、ＩＣカード１が不正に取得され、何らかの手段で認証用データが解読されも、インストールキーが不明なので、インストールできない。従って、不正なインストールに対するセキュリティレベルを向上させることができる。
【００２２】
続いて、このようにして生成された認証用データ及びインストールキーによる第１のインストール認証方法について、図２を参照しつつ、図１４のフローチャートに沿って説明する。インストール認証方法における各工程は、所定のコンピュータ装置３にインストールしようとしているプログラム内のインストール認証プログラムにより実行される。
【００２３】
ユーザは、プログラムを格納した記録媒体（ＣＤ−ＲＯＭなど）を、コンピュータ装置３にセットし、さらに、別途受け取っているＩＣカード１も、コンピュータ装置３にセットする。そして、インストール認証プログラムが起動し、その画面指示に従って、ユーザは、郵送などで通知されている印刷されたインストールキーを見て、そのインストールキーをコンピュータ装置に入力する（Ｓ１１０）。
【００２４】
インストール認証プログラムは、インストールキーからCode-Aを取り出して（Ｓ１１１）、それをＩＣカード１に通知する。ＩＣカード１は、受信したCode-Aを暗号関数で暗号化し、その暗号化されたE(Code-A)をインストール認証プログラムに返信する（Ｓ１１２）。インストール認証プログラムは、ＩＣカード１から受信したE(Code-A)を復号キーとして、入力されたインストールキーのE(Code-B)を暗号関数で復号し、復号されたCode-Bを求める（Ｓ１１３）。
【００２５】
さらに、インストール認証プログラムは、ＩＣカード１に記憶されるE(Code-B)を読み取り、ＩＣカード１から受信したE(Code-A)を復号キーとして、ＩＣカード１に記憶されているE(Code-A)を暗号関数で復号し、復号されたCode-Bを求める（Ｓ１１４）。
【００２６】
そして、ステップＳ１１３とステップＳ１１４で求めたそれぞれのCode-Bを比較し（Ｓ１１５）、一致すれば、コンピュータ装置３の内部記憶装置にプログラムのインストールを開始し（Ｓ１１６）、不一致であれば、エラーとなり（Ｓ１１７）、インストールは行われない。
【００２７】
Code-Bが一致する場合は、正しいインストールキーが入力され、且つ、正しいＩＣカード１が接続されている場合である。すなわち、正しいインストールキーを知っていて、正しいＩＣカードを有するものでないと、プログラムをインストールすることができない。
【００２８】
このように、プログラムのインストールの認証は、入力されたインストールキーに含まれるCode-AをＩＣカードで暗号化し、その暗号化されたE(Code-A)を復号キーとして、インストールキーに含まれるE(Code-B)とＩＣカードに記憶されるE(Code-B)とを復号し、両者の比較に基づいて認証が行われる。すなわち、インストールキーとＩＣカードとの組み合わせで認証が行われ、一方の取得のみではインストールできないので、不正なインストールを困難にし、セキュリティレベルを向上させることができる。
【００２９】
図３は、本発明の実施の形態における第２の認証用データ生成方法、図４は、本発明の実施の形態における第２のインストール認証方法を説明する図であって、図１５は、第２の認証用データ生成方法の処理フローチャート、図１６は、第２のインストール認証方法の処理フローチャートである。以下、第２の認証用データ生成方法及び第２のインストール認証方法を、それぞれ上記第１の認証用データ生成方法及び上記第１のインストール認証方法との相違点を明らかにすることによって説明する。
【００３０】
第２の認証用データ生成方法では、図３に示されるように、入力されるCode-Bを暗号化せずに、そのままインストールキーの一部として利用する。従って、図１５のステップＳ２０４では、入力されたCode-AとCode-Bとからインストールキーが生成される。それ以外は、第１の認証用データ生成方法と同じである。
【００３１】
また、第２のインストール認証方法では、図４に示されるように、インストールキーを構成するCode-Bが暗号化されていないので、復号化されずに、そのまま比較処理される。従って、図１６のステップＳ２１４では、暗号化されていないCode-Bがインストールキーから抽出される。それ以外は、第１のインストール認証方法と同じである。
【００３２】
図５は、本発明の実施の形態における第３の認証用データ生成方法、図６は、本発明の実施の形態における第３のインストール認証方法を説明する図であって、図１７は、第３の認証用データ生成方法の処理フローチャート、図１８は、第３のインストール認証方法の処理フローチャートである。以下、第３の認証用データ生成方法及び第３のインストール認証方法を、それぞれ上記第１の認証用データ生成方法及び上記第１のインストール認証方法との相違点を明らかにすることによって説明する。
【００３３】
第３の認証用データ生成方法では、図５に示されるように、ＩＣカードで暗号化されるCode-Aが、暗号関数ではなく、所定のコードテーブルにより、リターンコードRTN-Code-Aに変換される。ＩＣカードは、入力され得る全てのCode-Aと、各Code-Aそれぞれに対応するリターンコードRTN-Code-Aとを一対一に対応付けるテーブルを格納し、認証用データ生成装置から通知されたCode-Aに対応するRTN-Code-Aをテーブルから抽出して、認証用データ生成装置に返信する。すなわち、暗号関数を用いた演算によりCode-Aを暗号化して暗号化キーを生成する代わりに、あらかじめ用意されたテーブルを用いて、Code-Aに対応する暗号化キーを生成する。従って、図１７のステップＳ３０１では、入力されたCode-Aに対応するRTN-Code-Aとが返信され、ステップＳ３０２では、RTN-Code-A により、Code-Bが暗号化される。Code-Bとからインストールキーが生成される。それ以外は、第１の認証用データ生成方法と同じである。
【００３４】
また、第３のインストール認証方法では、図５及び図１７のステップＳ３１３、Ｓ３１４に示されるように、入力されたCode-Aに対応するRTN-Code-Aを復号キーとして、E(Code-A)が復号される。それ以外は、第１のインストール認証方法と同じである。
【００３５】
図７は、本発明の実施の形態における第４の認証用データ生成方法、図８は、本発明の実施の形態における第４のインストール認証方法を説明する図であって、図１９は、第４の認証用データ生成方法の処理フローチャート、図２０は、第４のインストール認証方法の処理フローチャートである。
【００３６】
第４の認証用データ生成方法は、上記第２の認証用データ生成方法と上記第３のインストール認証方法の組み合わせである。さらに、第４のインストール認証方法は、上記第２のインストール認証方法と上記第３のインストール認証方法の組み合わせである。すなわち、Code-Bは、暗号化されずにインストールキーを構成し、また、Code-Aは、ＩＣカードにおいて、暗号関数を用いた演算ではなく、テーブルによりRTN-Code-Aに変換される。
【００３７】
図９は、本発明の実施の形態における第５のインストール認証方法を説明するである。第５のインストール認証方法では、上記第１のインストール認証方法の処理に、インストール許容回数によるインストールの許可／不許可を判定する処理が追加される。
【００３８】
図２１は、第５のインストール認証方法の処理フローチャートである。図２１において、ステップＳ５１０乃至Ｓ５１５は、図１３に示された第１のインストール認証方法におけるステップＳ１１０乃至１１５の処理と同じであり、ステップＳ５１５で、Code-Bが一致した場合、さらに、ＩＣカードにあらかじめ書き込まれているインストール許容回数を読み出して（Ｓ５２０）、ステップＳ５２１でインストール許容回数が１より大きければ、読み出したインストール許容回数−１を、新しいインストール許容回数としてＩＣカードに書き込み（Ｓ５２２）、インストールを開始する（５１６）。インストール許容回数が０（ゼロ）の場合は、エラーとなる（Ｓ５１７）。
【００３９】
インストール許容回数を設定することで、あらかじめ決められた台数より多いコンピュータ装置へのプログラムのインストールができなくなるので、無制限なプログラムのインストールを防止できる。
【００４０】
さらに、本発明の実施の形態では、生成されたインストールキーにより、プログラムのインストール時に、インストールの認証を行うだけでなく、その後、インストールされたプログラムを起動するたびに、ＩＣカードを必要とする認証を行う。
【００４１】
図１０は、本発明の実施の形態における第１の起動認証処理方法を説明する図である。また、図２２は、第１の起動認証処理方法のフローチャートである。なお、図１０（ａ）及び図２２（ａ）は、プログラムのインストール時の処理であって、図１０（ｂ）及び図２２（ｂ）は、プログラムの起動時の処理である。図１０を参照しつつ、図２２に沿って説明する。図２２（ａ）において、例えば、上記第１のインストール認証処理（Ｓ１１０乃至Ｓ１１６）によりインストールが許可されると、インストール時に、インストールキーをＩＣカードに書き込む処理が行われる（Ｓ６００）。
【００４２】
そして、図２２（ｂ）において、インストール後に、プログラムの起動指示があると、まず、プログラム内の起動認証プログラムが起動し、ユーザが入力するインストールキーを取得し（Ｓ６０１）、ＩＣカードに記憶されているインストールキーを読み出し（Ｓ６０２）、両者を比較する（Ｓ６０３）。一致する場合は、プログラム本体を起動する（Ｓ６０４）、一致しない場合は、エラーとなり（Ｓ６０５）、プログラム本体は起動しない。
【００４３】
図１１は、本発明の実施の形態における第２の起動認証処理方法を説明する図である。また、図２３は、第２の起動認証処理方法のフローチャートである。なお、図１１（ａ）及び図２３（ａ）は、プログラムのインストール時の処理であって、図１１（ｂ）及び図２３（ｂ）は、プログラムの起動時の処理である。図１１を参照しつつ、図２３に沿って説明する。図２３（ａ）において、例えば、上記第１のインストール認証処理（Ｓ１１０乃至Ｓ１１６）によりインストールが許可されると、インストール時に、ＩＣカードと、プログラムがインストールされるコンピュータ装置の内部記憶装置（例えば、ハードディスクドライブ）の両方に、インストールキーを書き込む処理が行われる（Ｓ７００）。
【００４４】
そして、図２３（ｂ）において、インストール後に、プログラムの起動指示があると、まず、プログラム内の起動認証プログラムが起動し、コンピュータ装置の内部記憶装置及びＩＣカードそれぞれに記憶されているインストールキーを読み出し（Ｓ７０１）、両者を比較する（Ｓ７０２）。一致する場合は、プログラム本体を起動する（Ｓ７０３）、一致しない場合は、エラーとなり（Ｓ７０４）、プログラム本体は起動しない。第２の起動認証処理は、第１の起動認証処理との比較において、インストールキーが、ＩＣカードだけでなく、コンピュータ装置の内部記憶装置にも書き込まれるので、ユーザがインストールキーを入力することなく、自動的に起動認証が行われる。
【００４５】
図１２は、本発明の実施の形態における第３の起動認証処理方法を説明する図である。また、図２４は、第３の起動認証処理方法のフローチャートである。なお、図１２（ａ）及び図２４（ａ）は、プログラムのインストール時の処理であって、図１２（ｂ）及び図２４（ｂ）は、プログラムの起動時の処理である。図１２を参照しつつ、図２４に沿って説明する。図２４（ａ）において、例えば、上記第１のインストール認証処理（Ｓ１１０乃至Ｓ１１６）によりインストールが許可されると、インストール時に、ＩＣカードにあらかじめ記憶されているＩＣカードに固有のＩＤ（カードＩＤ）を読み出し、そのカードＩＤを、プログラムがインストールされるコンピュータ装置の内部記憶装置に書き込む処理が行われる（Ｓ８００）。
【００４６】
そして、図２４（ｂ）において、インストール後に、プログラムの起動指示があると、まず、プログラム内の起動認証プログラムが起動し、コンピュータ装置の内部記憶装置及びＩＣカードそれぞれに記憶されているカードＩＤを読み出し（Ｓ８０１）、両者を比較する（Ｓ８０２）。一致する場合は、プログラム本体を起動する（Ｓ８０３）、一致しない場合は、エラーとなり（Ｓ８０４）、プログラム本体は起動しない。第３の起動認証処理は、第２の起動認証処理との比較において、インストールキーの代わりに、ＩＣカードのカードＩＤを利用したものである。
【００４７】
このように、プログラムの起動時においても、ＩＣカードを用いた認証処理を導入することで、たとえプログラムが不正にインストールされた場合であっても、ＩＣカードがなければ、プログラムを起動できないので、プログラムの不正使用が防止できる。
【００４８】
具体的には、インストール時のみならず、起動時にもＩＣカードを要求することで、例えば、次のような場合のプログラムの不正使用を防止することができる。すなわち、不正なユーザが、ＩＣカードを不正に持ち出し、正規なユーザの許可なく、プログラムを不正にインストールする。その後、この不正なユーザは、ＩＣカードをこっそり返却する。インストール時のみＩＣカードを要求する場合では、この不正なユーザは、一旦、プログラムをインストールしてしまうと、あとは、正規なユーザに気づかれることなく、自由にプログラムを実行することができるようになる。しかしながら、プログラムの起動時にもＩＣカードを利用した認証を要求することで、プログラムを起動するたびに、ＩＣカードを不正に持ち出すことが必要になり、不正が発覚する可能性が高まり、不正なユーザに対するプログラムの不正使用を抑止する効果がある。
【００４９】
さらに、本発明の実施の形態では、プログラムの不正使用防止の効果をさらに高めるために、プログラムの起動後におけるプログラム実行中においても、ＩＣカードを必要とする認証処理が行われる。具体的には、プログラムが起動すると、プログラム内の実行中認証プログラムも起動し、所定時間間隔ごとに、以下に示す認証処理を実行する。
【００５０】
図２５は、実行中認証処理のフローチャートである。図２５において、起動後又は、前回の認証処理から所定時間が経過すると（９００）、コンピュータ装置の内部記憶装置に記憶されているインストールキー（第１及び第２の起動処理の場合）又はカードＩＤ（第３の起動処理の場合）を読み出し（Ｓ９０１）、さらに、ＩＣカードに記憶されているインストールキー（第１及び第２の起動処理の場合）又はカードＩＤ（第３の起動処理の場合）を読み出し（Ｓ９０２）、両者を比較する（Ｓ９０３）。一致する場合は、タイマーをリセットして（Ｓ９０４）、プログラムの実行をそのまま許可する。不一致の場合（ＩＣカードに記憶されているインストールキー又はカードＩＤを読めない場合も含む）、プログラムを強制的に終了させる（Ｓ９０５）。
【００５１】
なお、起動時の認証処理が、上述の第１の起動認証処理の場合、コンピュータ装置は、ユーザが入力するインストールキーをメモリ又は内部記憶装置に保持しておく。
【００５２】
実行中認証処理が行われる間隔は、あらかじめ決められた固定間隔であってもよいし、可変であってもよい。この間隔情報は、ＩＣカードに書き込まれてもよいし、実行中認証処理プログラム自体が有していてもよい。ＩＣカードに間隔情報が書き込まれている場合、実行中認証処理プログラムは、起動時にＩＣカードからその間隔情報を取得する。
【００５３】
このように、本発明の実施の形態では、起動後におけるプログラムの実行中においても、ＩＣカードを用いた認証処理を導入する。従って、不正なプログラムの使用がさらに困難になる。また、使用を複数台のコンピュータ装置へのプログラムのインストールは許可するが、複数台でのコンピュータ装置でのプログラムの同時使用を禁止したい場合に好適である。
【００５４】
上記実施の形態において、認証用データを格納するメモリ媒体は、ＩＣカードに限らず、他の形態のメモリ媒体、例えば、ＵＳＢポートやＲＳ２３２Ｃポートに直接接続可能なタイプのメモリ媒体であってもよい。また、ＩＣカードは、接触型、非接触型のどちらでもよく、接触型の場合、コンピュータ装置に直接接続されてもよいし、ＩＣカードのリーダ／ライタを介して接続されてもよい。
【００５５】
（付記１）コンピュータ装置と接続するメモリ媒体を利用して、当該コンピュータ装置によるプログラムの使用を認証するプログラム使用認証方法において、各プログラムにそれぞれ固有の第１のコードと第２のコードとに基づいて生成されたインストールキーの入力を受け付ける受け付けステップと、
前記第２のコードを前記第１のコードを利用して暗号化することにより生成され、前記メモリ媒体に格納される第２の暗号化コードを読み出す読み出しステップと、
前記インストールキーと前記第２の暗号化コードとの関係に基づいて、前記プログラムのインストールの許可／不許可についての認証を実行するインストール認証ステップとを備えることを特徴とするプログラム使用認証方法。
【００５６】
（付記２）付記１において、
前記第２の暗号化コードは、前記第１のコードを前記メモリ媒体で暗号化して生成される第１の暗号化コードにより、前記第２のコードを暗号化することにより生成されることを特徴とするプログラム使用認証方法。
【００５７】
（付記３）付記２において、
前記メモリ媒体は、前記第１のコードを所定の暗号関数で暗号化することを特徴とするプログラム使用認証方法。
【００５８】
（付記４）付記２において、
前記メモリ媒体は、前記第１のコードに対応する前記第１の暗号化コードのテーブルを有することを特徴とするプログラム使用認証方法。
【００５９】
（付記５）付記１において、
前記インストールキーは、前記第１のコードと前記第２の暗号化コードの組み合わせであることを特徴とするプログラム使用認証方法。
【００６０】
（付記６）付記１において、
前記インストールキーは、前記第１のコードと前記第２のコードの組み合わせであることを特徴とするプログラム使用認証方法。
【００６１】
（付記７）付記５において、
前記インストールキーに含まれる前記第１のコードを前記メモリ媒体に通知し、前記メモリ媒体により前記第１のコードを暗号化した前記第１の暗号化コードを受信する受信ステップを備え、
前記インストール認証ステップにおいて、前記インストールキーに含まれる前記第２の暗号化コードと、前記メモリ媒体から読み出した前記第２の暗号化コードとを、前記受信ステップで受信する前記第１の暗号化コードにより前記第２のコードに復号し、当該復号された２つの第２のコードの一致／不一致を判定することを特徴とするプログラム使用認証方法。
【００６２】
（付記８）付記６において、
前記インストールキーに含まれる前記第１のコードを前記メモリ媒体に通知し、前記メモリ媒体により前記第１のコードを暗号化した前記第１の暗号化コードを受信する受信ステップを備え、
前記インストール認証ステップにおいて、前記メモリ媒体から読み出した前記第２の暗号化コードを、前記受信ステップで受信する前記第１の暗号化コードにより前記第２のコードに復号し、当該復号された第２のコートと、前記インストールキーに含まれる前記第２のコードの一致／不一致を判定することを特徴とするプログラム使用認証方法。
【００６３】
（付記９）付記１において、
前記メモリ媒体に記憶されるインストール許容回数情報を読み出す読み出しステップを備え、
前記インストール認証ステップにおいて、前記インストールキーと前記第２の暗号化コードとの関係に加えて、前記読み出されたインストール許容回数に基づいて、前記プログラムのインストールの許可／不許可についての認証を実行することを特徴とするプログラム認証使用方法。
【００６４】
（付記１０）付記１において、
前記インストール認証ステップでインストールが許可され、前記プログラムが前記コンピュータ装置にインストールされた後、当該インストールされた前記プログラムを起動する際に、
前記メモリ媒体に格納される情報を利用して、前記プログラムの起動の許可／不許可についての認証を実行する起動認証ステップを備えることを特徴とするプログラム使用認証方法。
【００６５】
（付記１１）付記１０において、
前記インストール認証ステップでインストールが許可された場合、前記プログラムを前記コンピュータ装置にインストールするとともに、前記インストールキーを前記情報として前記メモリ媒体に格納する格納ステップを備え、
前記起動認証ステップは、前記メモリ媒体に格納されるインストールキーを読み出し、当該インストールキーと、外部入力されたインストールキーとの比較に基づいて、前記プログラムの起動の許可／不許可についての認証を実行することを特徴とするプログラム使用認証方法。
【００６６】
（付記１２）付記１０において、
前記インストール認証ステップでインストールが許可された場合、前記プログラムを前記コンピュータ装置にインストールするとともに、前記インストールキーを前記情報として前記メモリ媒体及び前記コンピュータ装置に格納する格納ステップを備え、
前記起動認証ステップは、前記メモリ媒体及び前記コンピュータ装置それぞれに格納されるインストールキーを読み出し、当該２つのインストールキーの比較に基づいて、前記プログラムの起動の許可／不許可についての認証を実行することを特徴とするプログラム使用認証方法。
【００６７】
（付記１３）付記１０において、
前記インストール認証ステップでインストールが許可された場合、前記プログラムを前記コンピュータ装置にインストールするとともに、前記情報である当該メモリ媒体を識別する識別情報を前記メモリ媒体から読み出して、前記コンピュータ装置に格納する格納ステップを備え、
前記起動認証ステップは、前記メモリ媒体及び前記コンピュータ装置それぞれに格納される前記識別情報を読み出し、当該２つの識別情報の比較に基づいて、前記プログラムの起動の許可／不許可についての認証を実行することを特徴とするプログラム使用認証方法。
【００６８】
（付記１４）付記１０において、
前記起動認証ステップで起動が許可され、前記プログラムが起動された後、前記プログラムの実行中に、
前記メモリ媒体に格納される情報を利用して、前記プログラムの実行の許可／不許可についての認証を実行する実行認証ステップを備えることを特徴とするプログラム使用認証方法。
【００６９】
（付記１５）付記１１において、
前記起動認証ステップで起動が許可され、前記プログラムが起動された後、前記プログラムの実行中に、
前記メモリ媒体に格納されるインストールキーを読み出し、当該インストールキーと、保持されている前記外部入力されたインストールキーとの比較に基づいて、前記プログラムの実行の許可／不許可についての認証を実行する実行認証ステップを備えることを特徴とするプログラム使用認証方法。
【００７０】
（付記１６）付記１２において、
前記起動認証ステップで起動が許可され、前記プログラムが起動された後、前記プログラムの実行中に、
前記メモリ媒体及び前記コンピュータ装置それぞれに格納されるインストールキーを読み出し、当該２つのインストールキーの比較に基づいて、前記プログラムの実行の許可／不許可についての認証を実行する実行認証ステップを備えることを特徴とするプログラム使用認証方法。
【００７１】
（付記１７）付記１３において、
前記起動認証ステップで起動が許可され、前記プログラムが起動された後、前記プログラムの実行中に、
前記メモリ媒体及び前記コンピュータ装置それぞれに格納される前記識別情報を読み出し、当該２つの識別情報の比較に基づいて、前記プログラムの実行の許可／不許可についての認証を実行する実行認証ステップを備えることを特徴とするプログラム使用認証方法。
【００７２】
（付記１８）付記１４乃至１７のいずれかにおいて、
前記実行認証ステップは、所定時間ごとに実行されることを特徴とするプログラム使用認証方法。
【００７３】
（付記１９）付記１乃至１８のいずれかにおいて、
前記メモリ媒体は、ＩＣカードであることを特徴とするプログラム認証方法。
【００７４】
（付記２０）付記１乃至１９のいずれかのプログラム認証方法をコンピュータ装置に実行させるプログラム。
【００７５】
本発明の保護範囲は、上記の実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶものである。
【００７６】
【発明の効果】
以上、本発明によれば、認証用データを格納したメモリ媒体を利用して、その認証用データと、外部入力されるインストールキー（プログラム固有の識別情報）との関係に基づいてプログラムの使用（インストール、起動、実行）の認証処理が行われるので、プログラムの不正使用が防止できる。
【００７７】
特に、プログラムの実行中にも、メモリ媒体を必要とする認証処理を行うことで、同時に複数台のコンピュータ装置でのプログラムの実行を防止することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態における第１の認証用データ生成方法を説明する図である。
【図２】本発明の実施の形態における第１のインストール認証方法を説明する図である。
【図３】本発明の実施の形態における第２の認証用データ生成方法を説明する図である。
【図４】本発明の実施の形態における第２のインストール認証方法を説明する図である。
【図５】本発明の実施の形態における第３の認証用データ生成方法を説明する図である。
【図６】本発明の実施の形態における第３のインストール認証方法を説明する図である。
【図７】本発明の実施の形態における第４の認証用データ生成方法を説明する図である。
【図８】本発明の実施の形態における第４のインストール認証方法を説明する図である。
【図９】本発明の実施の形態における第５のインストール認証方法を説明するである。
【図１０】本発明の実施の形態における第１の起動認証処理方法を説明する図である。
【図１１】本発明の実施の形態における第２の起動認証処理方法を説明する図である。
【図１２】本発明の実施の形態における第３の起動認証処理方法を説明する図である。
【図１３】第１の認証用データ生成方法の処理フローチャートである。
【図１４】第１のインストール認証方法の処理フローチャートである。
【図１５】第２の認証用データ生成方法の処理フローチャートである。
【図１６】第２のインストール認証方法の処理フローチャートである。
【図１７】第３の認証用データ生成方法の処理フローチャートである。
【図１８】第３のインストール認証方法の処理フローチャートである。
【図１９】第４の認証用データ生成方法の処理フローチャートである。
【図２０】第４のインストール認証方法の処理フローチャートである。
【図２１】第５のインストール認証方法の処理フローチャートである。
【図２２】第１の起動認証処理方法のフローチャートである。
【図２３】第２の起動認証処理方法のフローチャートである。
【図２４】第３の起動認証処理方法のフローチャートである。
【図２５】本発明の実施の形態における実行中認証処理のフローチャートである。
【符号の説明】
１  ＩＣカード
２  認証用データ（及びインストールキー）生成装置
３  （プログラムインストール対象）コンピュータ装置
【図１】
0004137468.tif 000002
【図２】
0004137468.tif 000003
【図３】
0004137468.tif 000004
【図４】
0004137468.tif 000005
【図５】
0004137468.tif 000006
【図６】
0004137468.tif 000007
【図７】
0004137468.tif 000008
【図８】
0004137468.tif 000009
【図９】
0004137468.tif 000010
【図１０】
0004137468.tif 000011
【図１１】
0004137468.tif 000012
【図１２】
0004137468.tif 000013
【図１３】
0004137468.tif 000014
【図１４】
0004137468.tif 000015
【図１５】
0004137468.tif 000016
【図１６】
0004137468.tif 000017
【図１７】
0004137468.tif 000018
【図１８】
0004137468.tif 000019
【図１９】
0004137468.tif 000020
【図２０】
0004137468.tif 000021
【図２１】
0004137468.tif 000022
【図２２】
0004137468.tif 000023
【図２３】
0004137468.tif 000024
【図２４】
0004137468.tif 000025
【図２５】
0004137468.tif 000026