(57)【特許請求の範囲】
【請求項１】
暗号化されたソフトウェアを解凍キーを用いて解凍する解凍装置とこのソフトウェアの解凍を管理する管理装置とからなる暗号化ソフトウェアの解凍システムであって、
前記解凍装置は、
時刻情報に基づいて第１のキーを生成する第１キー生成手段と、
前記解凍キーを用いて前記暗号化されたソフトウェアを解凍する解凍手段と、
前記解凍されたソフトウェアが削除された場合に、前記管理装置によって生成された第２のキーに基づいて第３のキーを生成する第３キー生成手段と、
前記第１のキー又は前記第３のキーと、前記管理装置によって生成された第２のキーとから前記解凍キーを生成する解凍キー生成手段と、
を備え、
前記管理装置は、
前記解凍キーと、前記解凍装置によって生成された前記第１のキーまたは前記第３のキーとに基づいて第２のキーを生成する第２キー生成手段と、
前記解凍装置に提供するために出力された前記第２のキーを記憶する第２キー記憶手段を備え、
前記第２キー生成手段は、第２のキーを生成した際に、新たに生成された第２のキーに対応するキーが、未だ前記第２キー記憶手段に記憶されていない場合に、当該新たに生成された第２のキーを前記解凍装置に提供するために出力するとともに、前記第２キー記憶手段に記憶し、新たに生成された第２のキーに対応するキーが、既に前記第２キー記憶手段に記憶されている場合には、当該新たに生成された第２のキーの出力及び記憶を行わない、
暗号化ソフトウェアの解凍システム。
【請求項２】
前記管理装置は、前記第３のキーから、前記第３キー生成手段によるキー生成において基となった第２のキーを取得する第３キー逆算手段と、
前記第２キー生成手段が前記第２のキーを出力する毎に、前記ソフトウェアの料金の課金を行う課金手段をさらに備え、
前記課金手段は、前記第２キー生成手段によって新たに生成された第２のキーに対応するキーが、前記第２キー記憶手段に記憶されておらず、かつ、前記第３キー逆算手段によ
り取得された第２のキーに対応するキーが前記第２キー記憶手段に記憶されている場合には、前記ソフトウェアの料金の課金を行わない、
請求項１記載の暗号化ソフトウェアの解凍システム。
【請求項３】
前記解凍装置は、補助記憶装置に接続されるとともに、この補助記憶装置に前記解凍手段により解凍されたソフトウェアをインストールするインストール手段を更に備えていることを特徴とする請求項１記載の暗号化ソフトウェアの解凍システム。
【請求項４】
前記解凍装置は、前記補助記憶手段にインストールされている前記ソフトウェアを削除するアンインストール手段を更に備える請求項３記載の暗号化ソフトウェアの解凍システム。
【請求項５】
前記解凍装置の第３キー生成手段は、前記アンインストール手段が前記ソフトウェアを前記補助記憶手段から削除した時に前記第３のキーを生成する請求項４記載の暗号化ソフトウェアの解凍システム。
【請求項６】
前記解凍装置の第３キー生成手段は、前記ソフトウェアのインストール回数を含めた第３のキーを生成し、
前記管理装置は、
前記第２キー生成手段によって前記第２のキーが生成された回数を記憶する記憶手段をさらに備え、
前記第２キー生成手段が、前記第３のキーに含まれる前記インストール回数と、前記記憶手段に記憶される前記回数とに応じて、前記第２のキーの生成を制御する、
請求項５記載の暗号化ソフトウェアの解凍システム。
【請求項７】
前記第３のキーは、前記補助記憶手段から前記ソフトウェアを削除した回数についての情報を含んでいることを特徴とする請求項６記載の暗号化ソフトウェアの解凍システム。
【請求項８】
暗号化されたソフトウェアを解凍キーを用いて解凍する解凍装置とこのソフトウェアの解凍を管理する管理装置とからなる暗号化ソフトウェアの解凍方法であって、
前記解凍装置が、
時刻情報に基づいて第１のキーを生成するステップと、
前記解凍キーを用いて前記暗号化されたソフトウェアを解凍するステップと、
前記解凍されたソフトウェアが削除された場合に、前記管理装置によって生成された第２のキーに基づいて第３のキーを生成するステップと、
前記第１のキー又は前記第３のキーと、前記管理装置によって生成された第２のキーとから前記解凍キーを生成するステップと、
を備え、
前記管理装置が、
前記解凍キーと、前記解凍装置によって生成された前記第１のキーまたは前記第３のキーとに基づいて第２のキーを生成した際に、新たに生成された第２のキーに対応するキーが、未だ第２キー記憶手段に記憶されていない場合に、当該新たに生成された第２のキーを前記解凍装置に提供するために出力するとともに、前記第２キー記憶手段に記憶し、新たに生成された第２のキーに対応するキーが、既に前記第２キー記憶手段に記憶されている場合には、当該新たに生成された第２のキーの出力及び記憶を行わないステップ
を備える暗号化ソフトウェアの解凍方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は暗号化されたソフトウエアの流通に際し、このように暗号化されたソフトウェアを解凍するためのシステムに関する。
【０００２】
【従来の技術】
近年、ＣＤ−ＲＯＭドライブの普及に伴い、ＣＤ−ＲＯＭ媒体による暗号化されたソフトウエアの流通が盛んに行われている。これはＣＤ−ＲＯＭ媒体が非常に安価に製造でき、かつ６００ＭＢを越える大容量媒体であること、およびＣＤ−ＲＯＭドライブの低価格・高速化による。さらに、ＣＤ−ＲＯＭは軽量薄型であるので、雑誌に挟んでの流通等、従前のフロッピーディスクを媒体としていたソフトウエア流通にはなかった新しい流通形態の採用が可能である。
【０００３】
一方、このＣＤ−ＲＯＭに格納されるソフトウエアは、デジタルデータであるため、容易に不正コピー・不正インストール（ここで、「インストール」とは、パソコンシステムのディスク装置（ハードディスク，シリコンディスク，等）にソフトウェアを導入すること）される危険がある。従って、ＣＤ−ＲＯＭを用いた新たなソフトウェア流通に際しても、このような不正コピー・不正インストールを防止することができるシステムを、確立する必要がある。
【０００４】
そこで、従来より、ソフトウェアの不正コピー・不正インストールを防止しつつＣＤ−ＲＯＭを使用してソフトウェアの使用権設定を行う新たなソフトウェア流通システムが提案されている。
【０００５】
例えば、図３９に示すように、数種類の試用版ソフトウエアおよび暗号化された本物ソフトウエアをＣＤ−ＲＯＭ上に記録して、このＣＤ−ＲＯＭを流通させるソフトウェア流通システムが実用化されている。
【０００６】
このシステムにおいては、ユーザ１００は、最初に上記内容が格納されているＣＤ−ＲＯＭを、販売店１０１から購入する（その販売価格は、比較的安価に設定されている。）。そして、ユーザ１００は、ＣＤ−ＲＯＭに格納されている試用版ソフトウエアを試用する。但し、この試用板ソフトウェアは、殆どの場合、ファイル保存不可とか印刷不可等の機能制限がなされている。ユーザは、試用版ソフトウェアを試用した結果、気に入ったソフトウエアがあった場合、対応する本物ソフトウエアを自分のパソコンシステムにインストールする。
【０００７】
但し、本物ソフトウエアは暗号化されているので、インストール時には暗号を解凍するための解凍キーを入力する必要がある。そのため、ユーザは、ソフトウェアの権利者（著作権者，使用権者）から使用権設定業務の代行を委託されてい管理センタ（以下、「センタ」という。）１０２に電話等で連絡し、当該ソフトウェアについての解凍キーの購入を申し込む。購入に必要な代金の払い込みが保証されると、センタ１０２は、解凍キーをユーザ１００に販売提供する。それによって、ユーザ１００は、解凍キーを入力することによって本物ソフトウェアを解凍し、インストールを完了することができるのである。
【０００８】
【発明が解決しようとする課題】
しかしながら、この方式では解凍キーが事実上何回でも使用できてしまう。従って、ユーザ１００が同じＣＤ−ＲＯＭから何回も本物ソフトウェアを解凍して、複数のパソコンシステムに夫々インストールしてしまうことも事実上可能である。また、ユーザ１００が購入した解凍キーを第三者１０３に教えてしまうことにより、この無権利の第三者に本物ソフトウェアの解凍及びインストールさせることも事実上可能である。これらは、解凍キーの販売に伴うソフトウェア使用許諾で認められた範囲を超えた不正利用行為である。このような不正利用を有効に防止できないことが、従来のソフトウェアの解凍装置の第１の問題点である。
【０００９】
また、仮に、何らかの方法で１回のみ有効な解凍キーが開発されれば、上記第１の問題点に挙げた不正利用は防止され得るが、その反面、以下の問題が発生する。つまり、正規に解凍キーを購入してソフトウェアの使用権設定を受けたユーザ１００であっても、ソフトウェアを構成するファイルの一部を破壊した場合，ディスク装置のドライプ設定（マッピング）を変更した場合には、インストールのやり直しが必要になる。また、この正規ユーザ１００が、新たにパソコンシステムを買い足したパソコンにおいて当該ソフトウェアを使用したいために、元のパソコンにインストールされていた当該ソフトウェアを削除し（アンインストールし）、新たなパソコンシステムに当該ソフトウェアをインストールしたいという要求が発生する場合もある。このような再インストールは、通常、ソフトウェアの使用権の範囲内の行為である。そして、このような正当な再インストールを実行するために、正規ユーザ１００は、解凍キーを再度セットしなければならない。但し、最初に購入した解凍キーは既に使用済みであるので、ユーザ１００は、センタ１０２に対して解凍キーの無償配布を要求することになる。
【００１０】
しかしながら、センタ１０２はユーザ１００の解凍キー要求が再インストールなどの正規な要求なのか、第３者への通知等の不正な利用のためなのか判断できない。そのため、センタ１０２は、再インストールなどの正規な要求に対しては無償で解凍キーを提供するとともに、第三者への提供等の不正利用に対してはこれを拒否したり解凍キーの代金を請求したりするということができない。これが、従来のソフトウェアの解凍システムの第２の問題点である。
【００１１】
本発明の第１の課題は、上記第１の問題点に鑑み、ＣＤ−ＲＯＭに暗号化された状態で格納されているソフトウェアの不正利用を有効に防止することができるソフトウェアの解凍システムを提供することである。
【００１２】
本発明の第２の課題は、上記第２の問題点に鑑み、ＣＤ−ＲＯＭに暗号化された状態で格納されているソフトウェアの正当な解凍用キー再発行要求と不正な解凍用キー発行要求とを識別し、正当な解凍用キー再発行要求に対してのみ解凍用キーの再発行を行うことができるソフトウェアの解凍システムを提供することである。
【００１３】
【課題を解決するための手段】
本発明は、上記課題を解決するために、以下のような構成を採用した。
＜本発明の必須構成要件＞
即ち、本発明によるソフトウェアの解凍システムは、上記第１の課題を解決するために、図１の原理図に示すように、暗号化されたソフトウェアを解凍キーを用いて解凍する解凍装置（２００）とこのソフトウェアの解凍を管理する管理装置（２１４）とからなる暗号化ソフトウェアの解凍システムであって、前記解凍装置（２００）に備えられ、時刻情報に基づいて第１のキーを生成する第１キー生成手段（２１１）と、前記管理装置（２１４）に備えられ、前記解凍キー及び前記第１のキーに対して第１の演算を施して第２のキーを生成する第２キー生成手段（２１５）と、前記解凍装置（２００）に備えられ、前記第１のキーと前記第２のキーに対して前記第１の演算を逆算することにより前記解凍キーを生成する解凍キー生成手段（２１２）と、前記解凍装置（２００）に備えられ、前記解凍キーを用いて前記暗号化されたソフトウェアを解凍する解凍手段（２１３）とを有することを特徴とする（請求項１に対応）。以下、本発明の構成要件について説明する。
〔解凍装置〕
解凍装置は、パソコンシステムを含むコンピュータシステムに内蔵されていても良いし、その外部装置として構成されていても良い。
〔管理装置〕
管理装置は、ソフトウェアの解凍の有無を管理する。この管理装置は、解凍装置とオンラインで接続されていても良いし、オペレータにより操作されるものでも良い。後者の場合には、解凍装置の操作者とオペレータとの間で、直接会話をするか電話で会話をするかして、第１のキー及び第２のキーの授受を行えば良い。
〔第１キー生成手段〕
第１キー生成手段は、時刻情報から第１のキーを生成するが、この時刻情報は、日付，時，分，秒の何れかのみであっても良いし、これらの任意の組み合わせであっても良い。但し、組み合わせの場合には、連続した単位を組み合わせることが望ましい。
【００１４】
第１キー生成手段は、第１のキーにソフトウェアの種類情報を含めても良いし、乱数情報を含めても良いし、インストールの回数情報を含めても良い。
〔第２キー生成手段〕
第２キー生成手段は、第１のキーと解凍キーに第１の演算を施して第２のキーを生成するが、この第１の演算としては、両者の差分をとる演算であっても良いし（請求項１２に対応）、両者を加算する演算であっても良いし、その他の演算であっても良い。
〔解凍キー生成手段〕
解凍キー生成手段は、解凍キー生成後に、第２のキーを記憶するように構成することができる。
＜本発明の付加的構成要件＞
本発明は、上記必須の構成要件から構成されるが、以下の付加的構成要件を付加しても構成することができる。
〔課金手段〕
管理装置に、前記第２キー生成手段が前記第２のキーを生成する毎に前記ソフトウェアの料金の課金を行う課金手段を備えさせても良い（請求項２に対応）。このように構成することにより、解凍の回数に応じた課金を行うことができる。
【００１５】
この課金手段は、前記解凍装置によって解凍されたソフトウェアが補助記憶装置から削除されている場合には、前記第２キー生成手段が再度前記第２のキーを生成した場合でも前記ソフトウェアの料金の課金を行わないように構成することができる（請求項４に対応）。ソフトウェアが削除された場合は、ソフトウェアの単なる再インストールであるので、課金をしないことが合理的であるからである。
〔インストール手段〕
解凍装置に、解凍されたソフトウェアがインストールされる補助記憶手段を接続するとともに、この補助記憶に前記解凍手段により解凍されたソフトウェアをインストールするインストール手段を備えさせても良い（請求項３に対応）。このように構成することにより、課金手段によりインストールの回数自体を管理させることができる。
〔アンインストール手段〕
解凍装置に、前記補助記憶装置にインストールされている前記ソフトウェアを削除するアンインストール手段を備えさせても良い（請求項５に対応）。このように構成することにより、補助記憶手段からのソフトウェアの削除を確実に検出することができる。
〔第３キー生成手段〕
解凍装置に、前記アンインストール手段が前記ソフトウェアを前記補助記憶手段から削除した時にその旨を証明する第３のキーを生成する第３キー生成手段を備えさせても良い（請求項６に対応）。このように構成することにより、第３のキーを管理装置に通知できるので、ソフトウェアの削除を管理手段へ確実に通知することができる。
【００１６】
この場合、第３キー生成手段は、第１のキー又は過去に生成した第３のキーに第２の演算を施すことにより前記第３のキーを生成するようにしても良い（請求項７）。このようにすることにより、第３のキーを初回のインストール時における第１のキーに関連付けることができる。
【００１７】
また、前記第３キー生成手段が前記第３のキーを生成した場合には、前記第２キー生成手段は、前記解凍キー及び前記第３のキーに前記第１の演算を施すことにより前記第２のキーを生成し、前記解凍キー生成手段は、前記第３のキーと前記第２のキーに基づいて前記第１の演算を逆算することにより前記解凍キーを生成するように構成することができる（請求項８に対応）。このようにすることにより、解凍装置キー生成手段は、第１キー生成手段が生成したキーの種類を意識する事なく解凍キーの生成をすることができる。
〔記憶手段〕
管理装置に、前記第２キー生成手段によって前記第１の演算が施された前記第１のキー及び第３のキーを全て記憶する記憶手段を備えさせても良い。この場合、第２キー生成手段は、前記記憶手段に記憶されている前記第１のキー又は前記第３のキーに対しては前記演算を施さないように構成することができる（請求項９に対応）。また、管理装置に、前記第２キー生成手段によって前記演算が施された前記第１のキーの内容，及び前記第２のキー生成した回数を記憶する記憶手段を備えさせても良い。この場合、前記第２キー生成手段は、前記第３のキーが、前記記憶手段に記憶されている第１のキーに前記第１の演算及び前記第２の演算を前記回数だけ実行した結果と一致する場合に、前記第２のキーを生成するように構成することができる（請求項１０に対応）。
【００１８】
これらのように構成することにより、管理装置は、インストールの履歴を把握することができる。従って、再インストールや他のコンピュータシステムへの乗り換えの場合でも、管理手段はこれらを正確に認識することができる。従って、ＣＤ−ＲＯＭに暗号化された状態で格納されているソフトウェアの正当な解凍用キー再発行要求と不正な解凍用キー発行要求とを識別し、正当な解凍用キー再発行要求に対してのみ解凍用キーの再発行を行うことができる（第２の課題に対応）。
【００１９】
【作用】
ユーザが暗号化されたソフトウェア２１３の解凍を希望する時には、解凍装置２００の第１キー生成手段２１１によって第１のキーを、時刻情報に基づいて生成させる。管理装置２１４の第２キー生成手段２１５は、この第１のキーと解凍キーに対して第１の演算を施すことにより、第２のキーを生成する。解凍キー生成手段２１２は、第１のキーと第２のキーに対して第１の演算の逆算を施して、ソフトウェアの解凍キーを生成することができる。解凍手段２１３は、このように生成された解凍キーを用いて暗号化ソフトウェアを解凍する。従って、第１のキーと、この第１のキーの生成時刻とは異なった時刻に生成された第１のキーに基づいた第２のキーとを、解凍キー生成手段に入力しても、解凍キーは生成されない。従って、不正な解凍を防止することができる。
【００２０】
【実施例】
以下に、  図面に基づいて、本発明の実施例を説明する。
【００２１】
【実施例１】
＜実施例の概略＞
最初に、本発明の第１実施例によるソフトウェア解凍システムの概略を示す。図２は、ユーザがＣＤ−ＲＯＭ１上のプログラム（ソフトウェア）Ａをパソコンシステム２にインストールする場合を示している。プログラムＡは暗号化されていて、そのままインストールすることはできない。インストールするためには解凍装置としてのインストーラ８において解凍することが必要である。
【００２２】
解凍するための解凍キーＤは、第二のキーとしての許諾キーＣ，及び第一のキーとしての許諾予備キーＢから生成される。許諾キーＣは、インストール時にインストーラ８が生成する許諾予備キーＢを基に、管理装置としてのセンタ１５が生成する。つまり、許諾予備キーＢが変われば、許諾キーＣも変化する。
【００２３】
こうすることにより、プログラムＡのインストールには、その度の許諾予備キーＢに応じた許諾キーＣが必要となる。従って、許諾キーＣを他人が流用して不正インストールすることはできない。
【００２４】
図３にソフトウェアインストールの手順を示す。この手順に示す通り、最初にユーザがＣＤ−ＲＯＭ１に暗号化されて格納されているソフトウェアの中から、プログラムＡを選択すると（ステップＳ０１０１）、インストーラ８は、許諾予備キーＢを計算し、出力する（ステップＳ０１０２）。これに応じて、ユーザが許諾予備キーＢをセンタ１５に提示して、許諾キーＣを請求すると（ステップＳ０１０３）、センタ１５は、許諾予備キーＢを基に、許諾キーＣを計算し、出力する（ステップＳ０１０４）。
【００２５】
ユーザは、この許諾キーＣを購入し（ステップＳ０１０５）、許諾キーＣをインストーラ８に入力する（ステップＳ０１０６）。インストーラ８は、許諾予備キーＢと許諾キーＣとから、解凍キーＤを計算し、出力する（ステップＳ０１０７）。そして、インストーラ８は、解凍キーＤによって、プログラムＡを解凍し、ユーザのパソコンシステムにインストールするのである（ステップＳ０１０８）。
＜実施例の構成＞
次に、以上のような制御を行うための具体的なインストーラ８及びセンタ１５の構成を説明する。図４は、本発明の上記インストーラ８を内蔵したパソコンシステムのブロック図である。なお、インストーラ８は、実際には、制御ＣＰＵ５がプログラムを実行することによってソフト的に実現される機能である。図４は、この機能をハード的に示したものである。
【００２６】
図４において、ユーザが販売店から購入したＣＤ−ＲＯＭ１には、特定のキーによって暗号化されたソフトウェア（本物ソフトウェア）と、この本物ソフトウェアに対応する暗号化されていない試用版ソフトウェア（一部機能が省略されているソフトウェア）とが、複数種類分格納されている。なお、これらソフトウェアは、必ずしもプログラムである必要はなく、例えば画像データのようなデータであっても構わない。
【００２７】
暗号化されたソフトウェアの解凍には、暗号化に際して使用されたキーと同一のキー（解凍キー）が必要となる。ここでは、暗号化に際して、１６桁の全てが“０”であるキーが使用されたとする。
【００２８】
このようなソフトウェアが格納されているＣＤ−ＲＯＭ１に対して、図示せぬドライブ装置により読み出しが行われる。この図示せぬドライブ装置によって読み出されたソフトウェアは、第１のＩ／Ｏ（入出力）装置３を介して、制御ＣＰＵ（中央演算処理装置）５及びＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）７に入力されている。
【００２９】
これら第１のＩ／Ｏ装置３，制御ＣＰＵ５，及びＤＥＳ７は、システムバスφを介して相互に接続されている。このシステムバスφには、また、インストーラ８，第２のＩ／Ｏ装置４，第３のＩ／Ｏ装置６、及び時計機構１４が接続されている。第２のＩ／Ｏ装置４には、ハードディスク等からなる補助記憶手段としてのディスク装置９が接続されている。また、第３のＩ／Ｏ装置６には、Ｄ／Ａ（デジタル／アナログ）変換器１０を介して、モニタ装置１３が接続されている。なお、第１のＩ／Ｏ装置３には、インタフェース装置１１も接続されている。
【００３０】
このインタフェース装置１１は、このパソコンシステム２に装着されている図示せぬキーボード，フロッピーディスクドライブ装置１２，及び図示せぬモデムとインストーラ８との間の出入力処理を行う機能を有している。即ち、インストーラ８において生成された解凍予備キーＢ又はアンインストールキーＥを、フロッピーディスク１２に出力したり、モデムを介して通信によってセンタ１５に通知する。又は、キーボードを用いて入力された許諾キーＣ，通信によってセンタ１５から通知された許諾キーＣ，又はフロッピーディスク１２によって入力された許諾キーＣを、インストーラ８に入力する。
【００３１】
制御ＣＰＵ５は、パソコンシステム２全体の制御を担う。そして、ディスク装置９にインストールされているプログラムを図示せぬメモリにロードして実行することにより、所定のデータ処理を行うのである。制御ＣＰＵ５は、第１乃至第３のＩ／Ｏ装置３〜６，ＤＥＳ７，並びに、インストーラ８の間における情報のやりとりを制御する。
【００３２】
ＤＥＳ７は、第１のＩ／Ｏ装置３から受け取ったソフトウェアを、制御ＣＰＵ５からの指示に応じて解凍する機能を有する。
解凍装置としてのインストーラ８は、制御ＣＰＵ５に実行されることによって、第一キー生成手段，解凍キー生成手段，インストール手段，アンインストール手段，及び第３キー生成手段としての機能を生じるプログラムを格納するＲＡＭ８である。即ち、このインストーラ８は、ＤＥＳ７を用いてＣＤ−ＲＯＭ１に格納されているソフトウェアを復号化してディスク装置９にインストールさせるための一連の動作を制御するためのプログラムを格納している。
【００３３】
ディスク装置９は、アプリケーションプログラムを格納するためのハードディスクである。
時計機構１４は、現在時刻情報をインストーラ８に与えるためのタイマである。また、図５は、管理装置としてのセンタ１５の構成を示すブロック図である。図５から明らかなように、このセンタ１５は、制御ＣＰＵ１７と、この制御ＣＰＵ１７に接続されている入出力装置１６，データ記憶部１８，許諾キー生成部１９，及び課金部２０とから構成されている。
【００３４】
制御ＣＰＵ１７は、センタ１５全体の動作を制御する処理装置である。入出力装置１６は、制御ＣＰＵ１７と外部との間でデータ（許諾予備キー，アンインストールキー，許諾キー）の入出力を実行する。入出力装置１６は、具体的には、キーボード，ディスプレイ，モデム等の装置から構成されている。
【００３５】
第二キー生成手段としての許諾キー生成部１９は、入出力装置１６において入力された許諾予備キー又はアンインストールキーに基づいて許諾キーを生成する装置である。また、課金手段としての課金部２０は、許諾キー１９を新規に生成する際に、ユーザに対する課金を行う装置である。また、記憶手段としてのデータ記憶部１８は、許諾キーを生成したり課金を行うために必要な各種ユーザデータを保存するためのメモリである。
【００３６】
次に、以上のように構成されるパソコンシステム２及びセンタ１５にて実行される処理の内容を、図６及び図７を用いて説明する。なお、本実施例で用いる許諾予備キー・許諾キー・解凍キーは、図８乃至図１１に示すように、それぞれ１６桁の数字列とされている。
【００３７】
図６は、パソコンシステム２のインストーラ８が実行するソフトウェアの解凍及びインストールのための処理である。図６の処理は、図示せぬディスクドライブ装置にＣＤ−ＲＯＭ１を装填した後に、インタフェース装置１１を介してインストールコマンドを入力することによりスタートする。そして、最初のステップＳ０２０１において、ＣＤ−ＲＯＭ１に格納されている複数の本物ソフトウェアの中から、インストールするソフトウェアを選択する。即ち、ユーザがソフトウェアを特定する入力をするのを待ち、ユーザが特定したソフトウェアを処理対象として決定する。
【００３８】
続くステップＳ０２０２では、時計機構１４から得られる現在時刻情報に基づいて許諾予備キーを作成する。インストーラ８が生成する解凍予備キーとして要求される特徴は「インストールする毎に異なる許諾予備キーを生成する」ことである。そこで、許諾予備キーをインストール日付および時刻情報から生成することとしたのである。具体的には、図９に示す様な順番で数値を配列する。即ち、図９中において、西暦の千の位を年１、百の位を年２、十の位を年３、一の位を年４としている。月・日・時・分・秒についても同様に表記する。残余の※は乱数を入れる。従って、例えば、１９９４年７月２６日１２時３４分５６秒の許諾予備キーは、図１０に示すような数列になる。
【００３９】
次のステップＳ０２０３では、ステップＳ０２０２にて生成した許諾予備キーを、インタフェース装置１１を介してフロッピーディスク１２又はモデムに出力する。若しくは、モニタ装置１３に表示する。
【００４０】
次のステップＳ０２０４では、許諾キーの入力を待つ。即ち、ユーザがキーボードを用いて許諾キーを入力するか、フロッピーディスク１２又はモデムを介して許諾キーが入力されるのを待つ。
【００４１】
次のステップＳ０２０５では、ステップＳ０２０２にて算出した許諾予備キーとステップＳ０２０４にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する（第一の演算の逆算に相当）。
【００４２】
次のステップＳ０２０５では、ＣＤ−ＲＯＭ１内のソフトウェアをＤＥＳ７にて解凍させつつ、ディスク装置９にインストールする。
図７は、センタ１５において実行される許諾キーの計算及び課金のための処理である。図７において最初のステップＳ０３０１では、許諾予備キーの入力を待つ。即ち、ユーザが電話等により許諾予備キーを通知してきたり、モデムを用いた通信によってオンラインにて許諾予備キーを送信して来るのを待つ。
【００４３】
次のステップＳ０３０２では、解凍キーと許諾予備キーとから許諾キーを計算する。即ち、センタ１５は、解凍キーと許諾予備キーの各桁の差分（１０の補数）から、許諾キーを生成する（第一の演算に相当）。上記、解凍キー（図８）及び許諾予備キー（図１０）から生成した許諾キーは、図１１のようになる。
【００４４】
次のステップＳ０３０３では、許諾キーを請求したユーザに対して課金を行う。即ち、当該ユーザの銀行口座又はクレジットカード会社から許諾キーの販売料金（当該ソフトウェアの使用権設定料金）を引き落とす手続きを行う。
【００４５】
引き落としの手続きが完了すると、ステップＳ０３０４にて許諾キーを出力する。
＜実施例の作用＞
以上のようにして許諾キーは解凍キーと許諾予備キーとの差分として計算されるので（ステップＳ０３０２）、許諾予備キーの内容によって許諾キーの内容が変わる。本実施例では、許諾予備キーは、現在時刻情報から作成されているので（ステップＳ０２０２）、許諾キーの内容も時刻毎によって異なる。従って、許諾キー生成の基となった許諾予備キーとその許諾キーとを用いれば、正しい解凍キー作成される（ステップＳ０２０５）。例えば、図１０に示す内容の許諾予備キーと図１１に示す内容の許諾キーとからは、図８に示す内容の解凍キーが生成される。その結果、ソフトウェアの解凍とインストールが可能になる。
【００４６】
一方、許諾キー生成の基となった許諾予備キーの生成時刻と異なった時刻に生成された許諾予備キーを用いると、上述した理由により、正しい解凍キーは算出されない。これによって、ユーザが第３者に解凍キーを教えた場合における解凍キーの生成とそれによる不正インストールが防止できる。また、ユーザが一旦パソコンシステムにインストールした後において、基の許諾キーを用いて他のパソコンシステムに不正インストールすることが防止できる。
【００４７】
例えば、図１４に示すように、ユーザ２０が販売店２１からＣＤ−ＲＯＭ１を購入して、１９９４年７月２６日１８時の許諾予備キーに基づいて、センタ２３から１９９４年７月２６日１８時の許諾キーを購入したとする。この場合、ユーザ２０は、これら許諾予備キー及び許諾キーとから解凍キーを生成して、当該ソフトウェアをインストールすることができる。
【００４８】
次に、ユーザ２０が第三者２４に許諾キーを教えてしまい、この第三者２４がその許諾キーを流用しようとする場合を考える。この場合、第三者２４は、ユーザ２０による当該ソフトウェアのインストールが終った後に、図１１に示す許諾キーを入手して、自己のパソコンシステム２のインストーラ８を起動し、ソフトウェアを選択する。この時刻が１９９４年７月３０日２３時４５分０１秒であったとすると、インストーラ８が計算・出力する許諾予備キーの内容は、図１２に示すようになる。
【００４９】
この許諾予備キーに対してユーザ２０から流用した許諾キー（図１１）を入力しても、結果として生じる解凍キーは図１３のように間違った値になってしまう。従って、第三者２４は、ソフトウェアを解凍することができない。
【００５０】
このように、インストール毎に異なる許諾予備キーを生成すれば、その結果センタ１５が発行する許諾キーもその度に異なることになる。こうすれば、ユーザ２０がある日時にセンタ１５から購入した許諾キーを第三者２４へ流用しても、第三者２４がインストールを行う時刻には許諾キーは無効であり、不正なインストールは不可能となる。
【００５１】
【実施例２】
本発明の第２実施例によるソフトウェア解凍システムの概略を説明する。図１５は、ユーザがＣＤ−ＲＯＭ１上のプログラムＡをパソコンシステム２にインストールする場合を示している。プログラムＡは暗号化されていて、そのままインストールすることはできない。インストールするためにはインストーラ８において解凍することが必要である。
【００５２】
上述の第１実施例と異なるのは、解凍キーをインストーラ８内部に予め持っていることである。解凍装置としてのインストーラ８は、第二のキーとしての許諾キー，及び第一のキーとしての許諾予備キーから解凍を行うか否かの解凍許諾判定を行う。
【００５３】
許諾予備キーおよび許諾キーの関係は上述の第１実施例の場合と同じである。そして、許諾キーは、インストール時にインストーラ８が生成する許諾予備キーを元に、管理装置としてのセンタ１５によって生成される。つまり、許諾予備キーが変われば、許諾キーも変化するのである。
【００５４】
こうすることにより、プログラムＡのインストールには、その度の許諾予備キーＢに応じた許諾キーＣが必要となる。従って、許諾キーＣを他人が流用して不正インストールすることはできない。
【００５５】
図１６にソフトウェアインストールの手順を示す。この手順に示す通り、最初にユーザがＣＤ−ＲＯＭ１に暗号化されて格納されているソフトウェアの中から、プログラムＡを選択すると（ステップＳ０４０１）、インストーラ８は、許諾予備キーＢを計算し、出力する（ステップＳ０４０２）。これに応じて、ユーザが許諾予備キーＢをセンタ１５に提示して、許諾キーＣを請求すると（ステップＳ０４０３）、センタ１５は、許諾予備キーＢを基に、許諾キーＣを計算し、出力する（ステップＳ０４０４）。
【００５６】
ユーザは、この許諾キーＣを購入し（ステップＳ０４０５）、許諾キーＣをインストーラ８に入力する（ステップＳ０４０６）。インストーラ８は、許諾予備キーＢと許諾キーＣとから、解凍許諾判定を行う（ステップＳ０４０７）。解凍許諾判定がＯＫである場合には、インストーラ８は、その内部に有している解凍キーＤによって、プログラムＡを解凍し、ユーザのパソコンシステムにインストールするのである（ステップＳ０４０８）。
【００５７】
第２実施例の他の構成及び作用は第１実施例と同じであるので、その説明を省略する。
【００５８】
【実施例３】
上記第１実施例では、インストール毎に許諾予備キー・許諾キーを変化させることにより、第三者の不正流用を防止した。これによれば、従来における第１の問題点は解決できる。しかし、第２の問題点については、これを有効に解決することができない。本第３実施例は、第２の問題点をも解決し、正規のユーザが再インストールしたり、新しく購入したパソコンへインストールする際に、無償で許諾キーを入手できる構成を有するソフトウェア解凍装置に関するものである。＜実施例の構成＞
以上のような制御を行うための具体的なインストーラ８及びセンタ１５のハード構成は、第１実施例のものと同様であるので、その説明を省略する。
【００５９】
次に、パソコンシステム２及びセンタ１５にて実行される処理の内容を、図１７及び図１８を用いて説明する。なお、本実施例で用いる許諾予備キー・許諾キー・解凍キーは、図１９及び図２０に示すように、それぞれ２０桁の数字列とされている。また、ユーザが販売店から購入したＣＤ−ＲＯＭ１には、特定のキーによって暗号化されたソフトウェア（本物ソフトウェア）と、この本物ソフトウェアに対応する暗号化されていない試用版ソフトウェア（一部機能が省略されているソフトウェア）とが、複数種類分格納されている。これらソフトウェアは、必ずしもプログラムである必要はなく、例えば画像データのようなデータであっても構わない。
【００６０】
暗号化されたソフトウェアの解凍には、暗号化に際して使用されたキーと同一のキー（解凍キー）が必要となる。ここでは、暗号化に際して、２０桁の全てが“０”であるキーが用いられているとする。
【００６１】
図１７は、パソコンシステム２のインストーラ８が実行するソフトウェアの解凍及びインストールのための処理である。図１７の処理は、図示せぬディスクドライブ装置にＣＤ−ＲＯＭ１を装填した後に、インタフェース装置１１を介してインストールコマンドを入力することによりスタートする。そして、最初のステップＳ０５０１において、ＣＤ−ＲＯＭ１に格納されている複数の本物ソフトウェアの中から、インストールするソフトウェアを選択する。もしくは、ディスク装置９にインストールされているソフトウェアのうちで、アンインストールするソフトウェアを選択する。即ち、ユーザがソフトウェアを特定する入力をするのを待ち、ユーザが特定したソフトウェアを処理対象として決定するのである。
【００６２】
続くステップＳ０５０２では、当該コンピュータシステム２のディスク装置９内に、既に当該ソフトウェアがインストールしてあるかどうかをチェックする。既にインストールしていない場合は、新規のインストールの場合であるか、元々当該ソフトウェアがインストールされていたパソコンシステム以外のパソコンシステムへのインストールの場合であると考えられる。そこで、ステップＳ０５１２において、新規インストールであるか他のパソコンシステムへのインストールであるかを判定する。このチェックは、ユーザによる入力に従ってなされる。
【００６３】
ユーザが新規インストールを選択した場合には、ステップＳ０５１５において、時計機構１４が発する現在のインストール時刻情報に基づいて、初回の第一のキーとしての解凍予備キーを作成する。インストーラ８が生成する解凍予備キーに要求される特徴は「インストールする毎に異なる許諾予備キーを生成する」ことである。そこで、許諾予備キーをインストール日付および時刻情報から生成することとしたのである。具体的には、上１４桁については、図１９に示す様な順番で数値を配列し、下６桁については、図２０に示すように乱数を配置するのである。図１９及び図２０においては、上桁から順に西暦４桁、月２桁、日２桁、時２桁、分２桁、秒２桁、乱数６桁としている。作成した許諾予備キーは、インタフェース装置１１を介してフロッピーディスク１２又はモデムに出力される。若しくは、モニタ装置１３に表示される。
【００６４】
次のステップＳ０５１６では、ユーザに対して新規に第二のキーとしての許諾キーを購入することを促す旨の表示を、モニタ装置１３上に行う。続いて処理はステップＳ５０９に進み、許諾キーの入力を待つ。即ち、ユーザがキーボードを用いて許諾キーを入力するか、フロッピーディスク１２又はモデムを介して許諾キーが入力されるのを待つ。
【００６５】
ステップＳ０５０９にて許諾キーが入力された場合には、ステップＳ０５１０において、ステップＳ０５１５にて算出した許諾予備キーとステップＳ０５０９にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する（第一の演算の逆算に相当）。解凍キーの計算がなされると、この許諾キーをディスク装置９に格納する。
【００６６】
次のステップＳ０５１１では、ＣＤ−ＲＯＭ１内のソフトウェアをＤＥＳ７にて解凍させつつ、ディスク装置９にインストールする。その後、当該処理を終了する。
【００６７】
一方、ステップＳ０５０２にて既にインストールしてあると判断した場合は、当該ソフトウェアの再インストールの場合である。この場合には、当該ソフトウェアの複数回の複製を防止するために、当該ソフトウェアのアンインストール（ディスク装置９からの削除）を実行しなければならない。従って、処理をステップＳ０５０３に進めて、アンインストールを実行する。
続くステップＳ０５０４では、ステップＳ０５０３にてアンインストールしたソフトウェアを前回インストールした際に用いた許諾キーを、ディスク装置９から読み取って入力する。
【００６８】
続くステップＳ５０５では、第三のキーとしてのアンインストールキー出力のサブルーチン（第二の演算に相当）（図２１）を呼び出す。
図２１のサブルーチンにおいては、最初にステップＳ０７０１において、ステップＳ０５０４にて入力した前回の許諾キーを、上１４桁と下６桁に分割する。そして、下６桁については、ステップＳ０７０５により、新たな６桁の乱数を発生する。
【００６９】
一方、上１４桁については、ステップＳ０７０２において、その偶数桁のみを抽出して、ステップＳ０７０３において、抽出した偶数桁の要素を１デクリメントする。続いて、ステップＳ０７０４において、上１４桁の全要素を右側に一桁シフトさせる。但し、上１４桁内の最下位桁は、上１４桁の最上位桁にシフトさせる。
【００７０】
ステップＳ０７０６では、シフト後の上１４桁の要素と新たな下６桁の乱数とを結合させて、２０桁のアンインストールキーの作成を完了する。次のステップＳ０７０７では、作成したアンインストールキーを、インタフェース装置１１を介してフロッピーディスク１２又はモデムに出力する。若しくは、モニタ装置１３に表示する。その後、このサブルーチンをリターンする。
【００７１】
アンインストールサブルーチンから処理が戻ると、図１７においてステップＳ０５０６が実行される。このステップＳ０５０６では、今回のアンインストールが他のパソコンシステムへのインストールのためであるかどうかがチェックされる。なお、このチェックは、ユーザからの入力に従ってなされる。ユーザが他のパソコンシステムへのインストールを選択した場合には、そのまま当該処理を終了する。
【００７２】
これに対して、ユーザが他のパソコンシステムへのインストールでないと入力した場合には、当該パソコンシステムにおける再インストールの場合であると判断できる。そこで、処理をステップＳ０５０７に進めて、ユーザに対してセンタ１５から再インストール用の許諾キーを受け取ることを促す表示を、モニタ装置１３により行う。続いて、ステップＳ０５０８において、再インストール用の許諾キーの入力を要求する表示を行う。そして、ステップＳ０５０９において再インストール用の許諾キーの入力を待つ。
【００７３】
ステップＳ０５０９にて許諾キーが入力された場合には、ステップＳ０５１０において、ステップＳ０５０５にて算出したアンインストールキーとステップＳ０５０９にて入力した許諾キーとから、解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する（第一の演算の逆算に相当）。解凍キーの計算が完了すると、その許諾キーをディスク装置９に格納する。
【００７４】
次のステップＳ０５１１では、ＣＤ−ＲＯＭ１内のソフトウェアをＤＥＳ７にて解凍させつつ、ディスク装置９にインストールする。その後、当該処理を終了する。
【００７５】
次に、ステップＳ０５０６にて他のパソコンシステムへのインストールを選択した後に、当該他のパソコンシステムにおいて当該処理を実行した場合の制御について説明する。この場合、ステップＳ０５１２において、他のパソコンシステムへのインストールが、ユーザによって選択される。その場合には、処理はステップＳ０５１３に進む。
【００７６】
このステップＳ０５１３では、当該パソコンが最初にインストールされていたパソコンシステムにおいてステップＳ０５０５が実行されたことによって出力されたアンインストールキーを入力する。これに応じてユーザがアンインストールキーを入力した場合には、続くステップＳ０５１４において、第２のインストールキー出力のサブルーチン（図２２）を実行する。
【００７７】
図２２のサブルーチンにおいては、最初にステップＳ０８０１において、仮想の許諾キーを内部的に作成する。即ち、第１実施例における許諾キーの作成の場合（ステップＳ０３０２）と同様にして、ステップＳ０５１３にて入力したアンインストールキーと解凍キー（０が２０桁連続したキー）との各桁における差分（１０の補数）を出力し、これを仮想の許諾キーとする。
【００７８】
次のステップＳ０８０２では、ステップＳ０８０１にて作成した仮想の許諾キーに対するアンインストールキーを生成する。具体的には、図２１におけるステップＳ０７０１の処理からステップＳ０７０６までの処理を実行する。
【００７９】
次のステップＳ０８０３では、ステップＳ０８０２にて生成した第２のアンインストールキーを、インタフェース装置１１を介してフロッピーディスク１２又はモデムに出力する。若しくは、モニタ装置１３に表示する。その後、このサブルーチンをリターンする。
【００８０】
第二のアンインストールキー出力サブルーチンから処理が戻ると、続いて処理がステップＳ０５０７に進む。以下、同一パソコンシステム２における再インストールの場合と同様の処理が行われる。
【００８１】
以上の処理を実行した結果、同一のユーザが同一ソフトウェアを複数回インストールした場合における解凍キー，許諾予備キー又はアンインストールキー，及び許諾キーの関係は、表１に示すようになる。この表１は、１９９４年８月３日の１２時３４分５６秒に初回のインストールを実行した場合における例を示すものである。
【００８２】
【表１】
0003647907.tif 000002
図１８は、センタ１５において実行される許諾キーの計算及び課金のための処理である。この図１８の処理を実行する前提として、センタは表２に示すようなユーザ情報をデータ記憶部１８に格納しているとする。即ち、各ソフトウェアの許諾キーを購入したユーザ毎に、その口座番号，当該ソフトウェアのインストール回数を格納しているとともに、各インストールの回毎に、インストーラ８が発行した許諾予備キー又はアンインストールキー，及びセンタ１５自身が発行した許諾キーを全て格納している。
【００８３】
【表２】
0003647907.tif 000003
図１８において最初のステップＳ０６０１では、許諾予備キー（又はアンインストールキー）の入力を待つ。即ち、ユーザが電話等により許諾予備キー（又はアンインストールキー）を通知してきたり、モデムを用いた通信によってオンラインにて許諾予備キー（又はアンインストールキー）を送信して来るのを待つ。
【００８４】
次のステップＳ０６０２では、解凍キーと許諾予備キー（又はアンインストールキー）とから許諾キーを計算する。即ち、センタ１５は、解凍キーと許諾予備キー（又はアンインストールキー）の各桁の差分（１０の補数）から、許諾キーを生成する（第一の演算に相当）。
【００８５】
次のステップＳ０６０３では、ステップＳ０６０２にて生成した許諾キーが当該ユーザに対するものとして、既にデータ記憶部１８に登録されているか否かを判定する。登録されている場合は、既にインストール済みであり、しかもアンインストールもなされていない場合である。従って、許諾キーを出力（ステップＳ０６１１）することなく、そのまま処理を終了する。従って、同一ユーザによって同時に複数のパソコンシステムへ不正インストールされることや、ユーザからアンインストールキーを入手した第三者によって、当該ソフトウェアが不正インストールされることが防止される。
【００８６】
これに対して、ステップＳ０６０３にて許諾キーが登録済みでないと判定した場合には、続くステップＳ０６０４において、アンインストールキーの逆算を行う。即ち、ステップＳ０６０１にて入力された許諾キー又はアンインストールキー（この時点では、入力されたのがどちらのキーであるかは判別されていない。）に対して、図２１に示したアンインストールキーの算出演算を逆に実行し、アンインストールキーの基になった許諾キーを解析するのである。
【００８７】
続くステップＳ０６０５では、ステップＳ０６０４の逆算結果（Ｘ）の上１４桁の要素が当該ユーザに関してデータ記憶部１８に最新に登録された許諾キーの上１４桁の要素に一致するかがチェックされる。このチェックの結果両者が一致する場合は、前回の許諾キーに基づいてアンインストールが実行され、しかも、その後再インストールがなされていない場合であると判断できる。従って、無償で許諾キーを発行すべく、課金（ステップＳ０６０９）をすることなく、ステップＳ０６０２にて算出した許諾キー及び入力されたアンインストールキーをデータ登録部１８に登録し（ステップＳ０６１０）、算出した許諾キーをそのまま出力する（ステップＳ０６１１）。
【００８８】
これに対して、ステップＳ０６０５にて、両者が一致していないと判断した場合は、解凍キーとステップＳ０６０４の算出結果の差分を算出し（ステップＳ０６０６）、その算出結果（Ｙ）に対して、ステップＳ０６０４と同様のアンインストールキーの逆算を行い（ステップＳ０６０７）、その算出結果（Ｚ）の上１４桁と同じ許諾キーが登録済みであるか否かをチェックする（ステップＳ０６０８）。これは、ステップＳ０６０１にて入力された許諾予備キー又はアンインストールキーが、ステップＳ０５１４にて生成された第二のアンインストールキーであるか否かのチェックである。
【００８９】
ステップＳ０６０８にて登録済みであったならば、第二のアンインストールキーが入力されたのであると判断することができる。この場合は、無償で許諾キーを発行すべきであるので、課金（ステップＳ０６０９）をすることなく、ステップＳ０６０２にて算出した許諾キー及び入力されたアンインストールキーをデータ登録部１８に登録し（ステップＳ０６１０）、算出した許諾キーをそのまま出力する（ステップＳ０６１１）。
【００９０】
これに対して、ステップＳ０６０８において、算出結果（Ｚ）が登録済みでないと判定した場合は、初回のインストールのための許諾キーが要求されているものと判断することができる。即ち、ステップＳ０６０１にて入力されたのが許諾予備キーであると判断することができる。従って、ステップＳ０６０９において、許諾キーを請求したユーザに対して課金を行う。即ち、当該ユーザの銀行口座又はクレジットカード会社から許諾キーの販売料金（当該ソフトウェアの使用権設定料金）を引き落とす手続きを行う。引き落としの手続きが完了すると、ユーザデータ（許諾キー及び許諾予備キーを含む）をデータ登録部１８に登録し（ステップＳ０６１０）、この許諾キーを出力する（ステップＳ０６１１）。
【００９１】
このように、本第３実施例では、センタ１５は、ユーザ名と過去のインストール履歴を管理する。従って、仮に第三者が只で許諾キーを入手しようとして正規ユーザになりすまして、例えば、３回目のアンインストールキーをセンタに提示したとしても、センタはユーザＡには３回目の許諾キーは発行済であることが解るので（ステップＳ０６０３）、容易に第三者の要求が不正なものであると見破ることができる。
＜実施例の作用＞
以下の作用の説明例は、解凍キー，許諾予備キー又はアンインストールキー，及び許諾キーは、表１に示すように設定されていることを前提としている。
〔第１のケース〕
正規ユーザαがパソコンシステム２にＣＤ−ＲＯＭ１上のソフトウエアＡをインストーラ１８を使って再インストールする例を説明する（図２３参照）。
【００９２】
ユーザαは、既に許諾予備キーＢ（19940803123456712589）および許諾キーＣ（91160207987654398521）を使ってソフトウエアＡをインストールしている。
また、インストール時に用いた許諾キーＣ（91160207987654398521）は、ディスク装置９上に記録保存されている。
【００９３】
再インストール時にインストーラ１８を起動してソフトウエアＡを選択すると（ステップＳ０５０１）、インストーラ１８は、パソコンシステム２上に既にソフトウエアＡがインストールされているかを、ファイル検索等を行って確認する（ステップＳ００５０２）。
【００９４】
確認の結果、ソフトウエアＡがインストールされているので、過去のインストール分のソフトウエアＡのアンインストール（消去）を開始する（ステップＳ０５０３）。アンインストール終了後、ユーザαのパソコンシステム２には、ソフトウエアＡは存在しなくなる（図２４参照）。
【００９５】
インストーラ１８は、アンインストール終了後、前回のインストール後に使用した許諾キーＣ（91160207987654398521）を元に、アンインストールキーＥ（48106929788664821625）を生成し出力する（ステップＳ０５０５）（図２５，図２６参照）。これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
【００９６】
ユーザαは、このアンインストールキーＥ（48106929788664821625）をセンタ１５に提示して、再インストールするための許諾キーＧを請求する。センタ１５は、アンインストールキーＥ（48106929788664821625）を解析して、ユーザＡが確かに過去のインストール分のソフトウエアＡのアンインストールを実行したことを確認し（ステップＳ０６０５）、再インストール用の許諾キーＧ（62904181322446289485）をユーザＡに無償提供する（ステップＳ０６１１）。
〔第二のケース〕
正規ユーザαがパソコンシステム２にＣＤ−ＲＯＭ１上のソフトウエアＡをインストーラ１８を使って初めてインストールする例を説明する（図２８参照）。
【００９７】
ユーザαがインストーラ１８を起動してソフトウエアＡを選択する（ステップＳ０５０１）。インストーラ１８は、パソコンシステム２上に既にソフトウエアＡがインストールされているかをファイル検索等を行って確認する（ステップＳ０５０２）。
【００９８】
ユーザαは過去にソフトウエアＡをインストールしていないので、インストーラ１８は、ユーザαの要望が「新規インストール」あるいは「他のパソコンへのインストール」なのかユーザに選択させる（ステップＳ０５１２）。
【００９９】
ユーザが新規インストールを選択すると、初回の許諾予備キーＢ（19940803123456712589）を出力し（ステップＳ０５１５）、「新規に許諾キーを購入するように」というメッセージを画面表示して、ユーザＡに許諾キーの購入を促す（ステップＳ０５１６）。
【０１００】
ユーザαは、センタ１５に連絡し、許諾予備キーＢ（19940803123456712589）を提示して、ソフトウエアＡをインストールするための許諾キーＣ（91160207987654398521）を購入し、正規ユーザとなる（ステップＳ０６０９）。
【０１０１】
センタ１５は、ユーザαのユーザデータ（承諾キーを含む）を登録し（ステップＳ０６１０）、ユーザαに許諾キーＣ（91160207987654398521）を渡す（ステップＳ０６１１）。
【０１０２】
ユーザＡは、許諾キーＣ（91160207987654398521）をインストーラ１８に入力して（ステップＳ０５０９）、インストール作業を完了する（ステップＳ０５１０，Ｓ０５１１）。
〔第三のケース〕
過去にパソコンシステム２ａにＣＤ−ＲＯＭ１上のソフトウエアＡをインストールしたユーザαが、新規に買い足したパソコンシステム２ｂにソフトウエアＡをインストールする例を示す（図２９参照）
ユーザαは、既にソフトウエアＡをインストールしたパソコンシステム２ａでインストーラ１８を起動して、アンインストール対象ソフトウエアとしてソフトウエアＡを選択する（ステップＳ０５０１）。インストーラ１８は、アンインストール終了後、前回のインストール時にパソコンシステム２ａに記録した許諾キーＣ（91160207987654398521）を読み取り（ステップＳ０５０４）、これを元にアンインストール終了の証拠としてアンインストールキーＥ（481069297886648625）を生成し出力する（ステップＳ０５０５）。これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
【０１０３】
他のパソコンシステム２ｂへのインストールの場合は、パソコンシステム２ａのインストーラ１８を一旦終了し、新しいパソコンシステム２ｂ上で再びインストーラ１８を起動する。新しいパソコンシステム２ｂ上には、ソフトウエアＡはまだ存在しない（ステップＳ０５０２）。従って、ユーザαは、「他のパソコンへのインストール」を選択し（ステップＳ０５１２）、このアンインストールキーＥ（48106929788664821625）をインストーラ１８に入力する（ステップＳ０５１３）。
【０１０４】
インストーラ１８は、アンインストールキーＥ（48106929788664821625）を元に、第二のアンインストールキーＥＥ（65280317122143117342）を生成し出力する（ステップＳ０５１４）。
【０１０５】
第二のアンインストールキーＥＥの生成方法は、アンインストールキーＥに対する仮想の許諾キーを生成し、この仮想の許諾キーに対するアンインストールキーとして第二のアンインストールキーＥＥを生成するようにしている。これはインストーラ１８が行う。仮想の許諾キー生成のルールの生成ルールは、センタ１５における許諾キー生成ルール（ステップＳ０６０２）に従い、第二のアンインストールキーの生成方法は図２１のアンインストールキー生成方法と同じものを使用した。
【０１０６】
第二のアンインストールキー２０桁の仕様では下６桁に乱数をセットしているので、同一のアンインストールキーから、生成する度に異なる第二のアンインストールキーができることになる。
【０１０７】
第二のアンインストールキーＥＥは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。ユーザαは、この第二のアンインストールキーＥＥ（65280317122143117342）をセンタ１５に提示して、パソコンシステム２ｂにソフトウエアＡをインストールするための許諾キーＧを請求する（ステップＳ０６０１）。
【０１０８】
センタ１５は、第二のアンインストールキーＥＥ（65280317122143117342）を解析して、ユーザαが確かに過去のインストール分のソフトウエアＡのアンインストールを実行したことを確認し（ステップＳ０６０８）、インストール用の許諾キーＧ（45820793988967993768）をユーザαに無償提供する（ステップＳ０６１１）。
【０１０９】
ユーザαがパソコンを乗り換える際の再インストール時に、第三者２４がアンインストールキーＥ（48106929788664821625）を入手しても、インストール時には第二のアンインストールキーとして、乱数を含む新たなキーＥＥＥ（65280317122143289964）が生成出力されるため、センタ１５への連絡無しに、自分のアンインストールキーＥＥＥに対応した許諾キーを入手することは不可能であり、不正インストールすることはできない。
【０１１０】
こうして、不正インストールを防止し、かつ正規のユーザは無償で再インストールや別のパソコンシステムへのインストールが可能となる。
また第１実施例の場合と同様に、第３実施例においても、許諾キーは解凍キーと許諾予備キーとの差分として計算されるので（ステップＳ０６０２）、許諾予備キーの内容によって許諾キーの内容が変わる。本実施例では、許諾予備キーは、現在時刻情報から作成されているので（ステップＳ０５１５）、許諾キーの内容も時刻毎によって異なる。そのため、許諾キー生成の基となった許諾予備キーと同時生成の許諾予備キーを用いた場合のみ正しい解凍キーが作成される（ステップＳ０５１０）。従って、許諾キー生成の基となった許諾予備キーの生成時刻と異なった時刻に生成された許諾予備キーを用いると、上述した理由により、正しい解凍キーは算出されない。これによって、ユーザが第３者に解凍キーを教えた場合における解凍キーの生成とそれによる不正インストールが防止できる。また、ユーザが一旦パソコンシステムにインストールした後において、基の許諾キーを用いて他のパソコンシステムに不正インストールすることが防止できる。
【０１１１】
【実施例４】
上記第３実施例においては、センタ１５は、ユーザデータとして、各ソフトウェアについての全許諾予備キー，アンインストールキー，及び許諾キーを記憶していた。しかし、これでは記憶するデータの量が膨大になる。そこで、本第４実施例においては、初回のインストール時における許諾予備キー，及びインストールの回数情報によって、ユーザのインストール状況を管理する構成としている。
【０１１２】
また、上記第３実施例においては、許諾予備キー等にソフトウェアの種類を特定する情報が含まれていなかった。そのため、ＣＤ−ＲＯＭ１に複数のソフトウェアが含まれている場合においては、ソフトウェアの種類を他の手段によって管理しなくてはならなかった。そこで、本第４実施例においては、許諾予備キー等にソフトウェアの種類についての情報を含ませる構成としている。
＜実施例の構成＞
以上のような制御を行うための具体的なインストーラ８及びセンタ１５のハード構成は、第１実施例のものと同様であるので、その説明を省略する。
【０１１３】
次に、パソコンシステム２及びセンタ１５にて実行される処理の内容を、図３０及び図３１を用いて説明する。なお、本実施例で用いる許諾予備キー・許諾キー・解凍キーは、それぞれ１６桁の数字列とされている。また、ユーザが販売店から購入したＣＤ−ＲＯＭ１には、特定のキーによって暗号化されたソフトウェア（本物ソフトウェア）と、この本物ソフトウェアに対応する暗号化されていない試用版ソフトウェア（一部機能が省略されているソフトウェア）とが、複数種類分格納されている。これらソフトウェアは、プログラムである。
【０１１４】
暗号化されたソフトウェアの解凍には、暗号化に際して使用されたキーと同一のキー（解凍キー）が必要となる。ここでは、暗号化に際して、１６桁の全てが“０”であるキーが用いられているとする。
【０１１５】
図３０は、パソコンシステム２のインストーラ８が実行するソフトウェアの解凍及びインストールのための処理である。図３０の処理は、図示せぬディスクドライブ装置にＣＤ−ＲＯＭ１を装填した後に、インタフェース装置１１を介してインストールコマンドを入力することによりスタートする。そして、最初のステップＳ０９０１において、ＣＤ−ＲＯＭ１に格納されている複数の本物ソフトウェアの中から、インストールするソフトウェアを選択する。もしくは、ディスク装置９にインストールされているソフトウェアのうちで、アンインストールするソフトウェアを選択する。即ち、ユーザがソフトウェアを特定する入力をするのを待ち、ユーザが特定したソフトウェアを処理対象として決定するのである。
【０１１６】
続くステップＳ０９０２では、当該コンピュータシステム２のディスク装置９内に、既に当該ソフトウェアがインストールしてあるかどうかをチェックする。既にインストールしていない場合は、新規のインストールの場合であるか、元々当該ソフトウェアがインストールされていたパソコンシステム以外のパソコンシステムへのインストールの場合であると考えられる。そこで、ステップＳ０９１３において、新規インストールであるか他のパソコンシステムへのインストールであるかを判定する。このチェックは、ユーザによる入力に従ってなされる。
【０１１７】
ユーザが新規インストールを選択した場合には、ステップＳ０９１６において、現在のインストール時刻情報に基づいて、初回の第一のキーとしての解凍予備キーを作成する。インストーラ８が生成する解凍予備キーとして要求される特徴は、「インストール回数を表す」こと，「ソフトウェアの種類を示す」こと，及び「インストールする毎に異なる許諾予備キーを生成する」ことである。そこで、許諾予備キーを、インストール回数情報，ソフトウェア種類情報，並びに、時計機構１４から発されるインストール日付及び時刻情報から生成することとしたのである。具体的には、図３２に示すように、上桁から順に、インストール回数情報を３桁で表し、ソフトウェア種類を３桁で表し、時刻情報を６桁（時２桁、分２桁、秒２桁）で表し、乱数を４桁付加している。そして、作成された許諾予備キーは、インタフェース装置１１を介してフロッピーディスク１２又はモデムに出力される。若しくは、モニタ装置１３に表示される。
【０１１８】
次のステップＳ０９１７では、ユーザに対して新規に第二のキーとしての許諾キーを購入することを促す旨の表示を、モニタ装置１３上に行う。続いて処理はステップＳ０９１０に進み、許諾キーの入力を待つ。即ち、ユーザがキーボードを用いて許諾キーを入力するか、フロッピーディスク１２又はモデムを介して許諾キーが入力されるのを待つ。
【０１１９】
ステップＳ０９１０にて許諾キーが入力された場合には、ステップＳ０９１１において、ステップＳ０９１６にて算出した許諾予備キーとステップＳ０９１０にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する（第一の演算の逆算に相当）。解凍キーの計算がなされると、この承諾キーをディスク装置９に格納する。
【０１２０】
次のステップＳ０９１２では、ＣＤ−ＲＯＭ１内のソフトウェアをＤＥＳ７にて解凍させつつ、ディスク装置９にインストールする。その後、当該処理を終了する。
【０１２１】
一方、ステップＳ０９０２にて既にインストールしてあると判断した場合は、当該ソフトウェアの再インストールの場合である。この場合には、当該ソフトウェアの複数回の複製を防止するために、当該ソフトウェアのアンインストール（ディスク装置９からの削除）を実行しなければならない。従って、処理をステップＳ０９０３に進めて、アンインストールを実行する。
【０１２２】
続くステップＳ０９０４では、ステップＳ０９０３にてアンインストールしたソフトウェアをＮ回目（前回）にインストールした際に用いた許諾キーの入力を要求する。続くステップＳ０９０５では、Ｎ回目（前回）にインストールした際に用いた許諾キーの入力を待つ。これに応じて、許諾キーの入力がなされると、処理がステップＳ０９０６に進む。
【０１２３】
ステップＳ０９０６では、第三のキーとしてのアンインストールキー出力のサブルーチン（第二の演算に相当）（図３３）を呼び出す。
図３３のサブルーチンにおいては、最初にステップＳ１１０１において、ステップＳ０９０５にて入力したＮ回目の許諾キーを、上桁から１〜３桁目，４〜１２桁目，及び１３〜１６桁目までに分割する。
【０１２４】
そして、１〜３桁目までについては、ステップＳ１１０２において、各桁についての“０”との差分（１０の補数）を算出し、ステップＳ１１０２において、得られた算出結果に１を加算する。
【０１２５】
次に、４〜１２桁目までについては、ステップＳ１１０４において、その中の偶数桁（キー全体においては奇数桁）のみを抽出し、ステップＳ１１０５において、抽出した偶数桁の要素を１デクリメントする。続いて、ステップＳ１１０６において、４〜１２桁目の全要素を右側に一桁シフトさせる。但し、１２桁目の要素は、４桁目にシフトさせる。
【０１２６】
次に、１３〜１６桁目までについては、ステップＳ１１０７において、新たに４桁の乱数を発生させる。
ステップＳ１１０８では、ステップＳ１１０３の結果得られた１〜３桁目と、ステップＳ１１０６の結果得られた４〜１２桁目と、ステップＳ１１０７の結果得られた１３〜１６桁目とを結合させて、全１６桁のアンインストールキーの作成を完了する。次のステップＳ１１０９では、作成したアンインストールキーを、インタフェース装置１１を介してフロッピーディスク１２又はモデムに出力する。若しくは、モニタ装置１３に表示する。その後、このサブルーチンをリターンする。
【０１２７】
アンインストールサブルーチンから処理が戻ると、図３０においてステップＳ０９０７が実行される。このステップＳ０９０７では、今回のアンインストールが他のパソコンシステムへのインストールのためであるかどうかがチェックされる。なお、このチェックは、ユーザからの入力に従ってなされる。ユーザが他のパソコンシステムへのインストールを選択した場合には、そのまま当該処理を終了する。
【０１２８】
これに対して、ユーザが他のパソコンシステムへのインストールでないと入力した場合には、当該パソコンシステムにおける再インストールの場合であると判断できる。そこで、処理をステップＳ０９０８に進めて、ユーザに対してセンタ１５から（Ｎ＋１回目用の）再インストール用の許諾キーを受け取ることを促す表示を、モニタ装置１３により行う。続いて、ステップＳ０９０９において、（Ｎ＋１回目用の）再インストール用の許諾キーの入力を要求する表示を行う。そして、ステップＳ０９１０において、（Ｎ＋１回目用の）再インストール用の許諾キーの入力を待つ。
【０１２９】
ステップＳ０９１０にて許諾キーが入力された場合には、ステップＳ０９１１において、ステップＳ０９０６にて算出したアンインストールキーとステップＳ０９１０にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する（第一の演算の逆算に相当）。解凍キーの計算が完了すると、許諾キーをディスク装置９に格納する。
【０１３０】
次のステップＳ０９１２では、ＣＤ−ＲＯＭ１内のソフトウェアをＤＥＳ７にて解凍させつつ、ディスク装置９にインストールする。その後、当該処理を終了する。
【０１３１】
次に、ステップＳ０９０７にて他のパソコンシステムへのインストールを選択した後に、当該他のパソコンシステムにおいて当該処理を実行した場合の制御について説明する。この場合、ステップＳ０９１３において、他のパソコンシステムへのインストールが、ユーザによって選択される。その場合には、処理はステップＳ０９１４に進む。
【０１３２】
このステップＳ０９１４では、当該パソコンが最初にインストールされていたパソコンシステムにおいてステップＳ０９０６が実行されたことによって出力されたアンインストールキーを入力する。これに応じてユーザがアンインストールキーを入力した場合には、続くステップＳ０９１５において、第２のインストールキー出力のサブルーチン（図２２）を実行する。図２２のサブルーチンの具体的内容は、第３実施例におけるのと同じであるので、その説明を省略する。
【０１３３】
第二のアンインストールキー出力サブルーチンから処理が戻ると、続いて処理がステップＳ０９０８に進む。以下、同一パソコンシステム２における再インストールの場合と同様の処理が行われる。
【０１３４】
以上の処理を実行した結果、同一のユーザが同一ソフトウェアを複数回インストールした場合における解凍キー，許諾予備キー又はアンインストールキー，及び許諾キーの関係は、表３に示すようになる。この表３は、１２時３４分５６秒に番号５０のソフトウェアを最初にインストールした場合における例を示すものである。
【０１３５】
【表３】
0003647907.tif 000004
図３１は、センタ１５において実行される許諾キーの計算及び課金のための処理である。この図３１の処理を実行する前提として、センタは表４に示すようなユーザ情報をデータ記憶部１８に格納しているとする。即ち、各ソフトウェアの許諾キーを購入したユーザ毎に、その口座番号，当該ソフトウェアのインストール回数，及び当該ソフトウェアを最初にインストールした際の許諾予備キーを格納している。
【０１３６】
【表４】
0003647907.tif 000005
図３１において最初のステップＳ１００１では、許諾予備キー（又はアンインストールキー）の入力を待つ。即ち、ユーザが電話等により許諾予備キー（又はアンインストールキー）を通知してきたり、モデムを用いた通信によってオンラインにて許諾予備キー（又はアンインストールキー）を送信して来るのを待つ。
【０１３７】
次のステップＳ１００２では、解凍キーと許諾予備キー（又はアンインストールキー）とから許諾キーを計算する。即ち、センタ１５は、解凍キーと許諾予備キー（又はアンインストールキー）の各桁の差分（１０の補数）から、許諾キーを生成する（第一の演算に相当）。
【０１３８】
次のステップＳ１００３では、当該ソフトウェアに関し当該ユーザのユーザデータが登録されているかどうかをチェックする。チェックの結果、登録されていない場合には、初めてのインストールであると判断して、ステップＳ１００４において、課金を行う。即ち、当該ユーザの銀行口座又はクレジットカード会社から許諾キーの販売料金（当該ソフトウェアの使用権設定料金）を引き落とす手続きを行う。引き落としの手続きが完了すると、ユーザデータ（許諾キー及び許諾予備キーを含む）をデータ登録部１８に登録し（ステップＳ１０１０）、この許諾キーを出力する（ステップＳ１０１１）。
【０１３９】
ステップＳ１００３にて登録されていると判定された場合には、ステップＳ１００５において、ステップＳ１００１にて入力した許諾予備キー（又はアンインストールキー）とデータ登録部１８に登録されているインストール回数とから、初回の許諾予備キーを算出する。即ち、ステップＳ１００１にて入力された許諾キー又はアンインストールキー（この時点では、入力されたのがどちらのキーであるかは判別されていない。）に対して、図３３に示したアンインストールキーの算出演算を逆に実行し、この算出結果と解凍キーとの差分を算出する。データ登録部１８に登録されているインストール回数が２以上である場合は、差分の算出結果に対して、上記演算を繰り返す。このようなアンインストールキーの逆算及び解凍キーとの差分算出を、データ登録部１８に登録されているインストール回数だけ、繰り返すのである。
【０１４０】
次に、ステップＳ１００６において、ステップＳ１００５の算出結果（上位１２桁）がデータ登録部１８に登録されている初回の許諾予備キー（上位１２桁）と一致するかをチェックする。そのチェックの結果、両者が一致する場合には、同一パソコンシステム２における再インストールであると判断することができる。従って、無償で許諾キーを発行すべく、課金（ステップＳ１００４）をすることなく、データ登録部１８に登録されているインストール回数を１加算して（ステップＳ１０１０）、ステップＳ１００２にて算出した許諾キーをそのまま出力する（ステップＳ１０１１）。
【０１４１】
これに対して、ステップＳ１００６にて両者が一致していないと判定した場合には、ステップＳ１００７において、データ登録部１８に登録されているインストール回数に、１を加算する。
【０１４２】
続くステップＳ１００８では、ステップＳ１００１にて入力した許諾予備キー（又はアンインストールキー）とステップＳ１００７にて算出した数値とから、初回の許諾予備キーを算出する。この算出を行うための具体的演算内容は、ステップＳ１００５における演算と同じである。但し、その繰り返し回数は、ステップＳ１００７に算出した数値に従う。
【０１４３】
次に、ステップＳ１００９において、ステップＳ１００８の算出結果（上位１２桁）がデータ登録部１８に登録されている初回の許諾予備キー（上位１２桁）と一致するかをチェックする。これは、ステップＳ１００１にて入力された許諾予備キー又はアンインストールキーが、ステップＳ０９１５にて生成された第二のアンインストールキーであるか否かのチェックである。
そのチェックの結果、両者が一致する場合には、第二のアンインストールキーが入力されたのであると判断することができる。この場合は、無償で許諾キーを発行すべきであるので、課金（ステップＳ１００４）をすることなく、データ登録部１８に登録されているインストール回数に２を加算して（ステップＳ１０１０）、ステップＳ１００２にて算出した許諾キーをそのまま出力する（ステップＳ１０１１）。
【０１４４】
これに対してステップＳ１００９にて両者が一致していないという場合は、既にインストールがなされているがアンインストールがなされていないソフトウェアについての許諾キーの請求であると判断することができる。従って、許諾キーを出力（ステップＳ１０１１）することなく、そのままこの処理を終了する。
【０１４５】
このように、本第４実施例では、センタ１５は、ユーザ名と現在のインストール回数とを管理する。従って、仮に第三者が只で許諾キーを入手しようとして正規ユーザになりすまして、例えば、３回目のアンインストールキーをセンタに提示したとしても、センタはユーザＡには３回目の許諾キーは発行済であることが解る（ステップＳ１００９）ので、容易に第三者の要求が不正なものであると見破ることができる。
【０１４６】
本第４実施例では、表４に示すように、センタ１５は登録ユーザのインストール回数を管理すればよいので、第３実施例の表２のように過去の許諾予備キー・許諾キー・アンインストールキーの履歴を管理しなくてもよい。そのため、管理テーブルが簡素になる。
＜実施例の作用＞
以下の作用の説明例は、解凍キー，許諾予備キー又はアンインストールキー，及び許諾キーは、表３に示すように設定されていることを前提としている。
〔第１のケース〕
正規ユーザαがパソコンシステム２にＣＤ−ＲＯＭ１上のソフトウエアＡをインストーラ１８を使ってＮ＋１回目の再インストールする例を説明する（図３４参照）。
【０１４７】
ユーザαがインストーラ１８を起動してインストール対象ソフトウエアとしてソフトウエアＡを選択すると（ステップＳ０９０１）、インストーラ１８は、パソコンシステム２上に既にソフトウエアＡがインストールされているかをファイル検索等を行って確認する（ステップＳ０９０２）。
【０１４８】
確認の結果、ソフトウエアＡがインストールされていれば、過去のインストール分のソフトウエアＡのアンインストール（消去）を開始する（ステップＳ０９０３）。アンインストール終了後、ユーザαのパソコンシステム２にはソフトウエアＡは存在しなくなる。
【０１４９】
インストーラ１８は、アンインストール終了後、Ｎ回目のインストールの際に使用した許諾キーＣ（Ｎ回目）を元に、Ｎ回目のアンインストールキーＥを出力する（図３５，３６参照）。これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
【０１５０】
ユーザαは、このアンインストールキーＥをセンタ１５に提示して、Ｎ＋１回目の再インストールのための許諾キーＧを請求する。センタ１５は、アンインストール情報Ｅを解析してユーザαが確かに過去のＮ回目インストール分のソフトウエアＡのアンインストールを実行したことを確認し、再インストール用の許諾キーＧ（Ｎ＋１回目）をユーザαに無償提供する。
〔第２のケース〕
正規ユーザαがパソコンシステム２にＣＤ−ＲＯＭ１上のソフトウエアＡをインストーラ１８を使って初めてインストールする例を説明する（図３７参照）。
【０１５１】
ユーザαがインストーラ１８を起動してインストール対象ソフトウエアとしてソフトウエアＡを選択する（ステップＳ０９０１）。インストーラ１８は、パソコンシステム２上に過去にソフトウエアＡがインストールされているかをファイル検索等を行って確認する（ステップＳ０９０２）。
ユーザαは過去にソフトウエアＣをインストールしていないので、インストーラ１８は、ユーザαの要望が「新規インストール」あるいは「他のパソコンへのインストール」なのかユーザに選択させる（ステップＳ０９１３）。ユーザが新規インストールを選択すると、初回の許諾予備キーＢを出力して「新規に許諾キーを購入するように」というメッセージを画面表示して、ユーザαに許諾キーＣの購入を促す。
【０１５２】
許諾予備キーＢは、前述したようにソフトタイトル番号やインストール回数の情報を含み、残りはその都度発生させた乱数が入っている。こうすることにより、複数のユーザが初回のインストールを行う時の許諾予備キーは重複しなくなる。
【０１５３】
ユーザαは、センタ１５に連絡し、ソフトウエアＡをインストールするための許諾予備キーＢを伝える。センタ１５は、許諾予備キーＢから許諾キーＣを生成し（ステップＳ１００２）、ユーザαを登録し（ステップＳ１０１０）、許諾キーＧを渡す（ステップＳ１０１１）。以上により、ユーザαは許諾キーＣを購入し、正規ユーザとなる。
【０１５４】
ユーザαは、許諾キーＣをインストーラ１８に入力して（ステップＳ０９１０）、インストール作業を完了する（ステップＳ０９１１，Ｓ０９１２）。
〔第３のケース〕
過去にパソコンシステム２ａにＣＤ−ＲＯＭ１上のソフトウエアＡをインストールしたユーザαが、新規に買い足したパソコンシステム２ｂにソフトウエアＡをインストールする例を示す（図３８参照）
ユーザαは、既にソフトウエアＡをＮ回インストールしたパソコンシステム２ａでインストーラＤを起動してアンインストール対象ソフトウエアとしてソフトウエアＡを選択する（ステップＳ０９０１）。インストーラ１８は、ソフトウエアＡのアンインストール終了後、前回のインストール時にパソコンシステム２ａに記録した許諾キーＣ（Ｎ回目）を読み取り、これを元にＮ回目のアンインストール終了の証拠としてアンインストールキーＥ（Ｎ回目）を出力する（ステップＳ０９０６）。
【０１５５】
これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
他のパソコンシステム２ｂへのインストールの場合は、パソコンシステム２ａのインストーラ１８を一旦終了し、新しいパソコンシステム２ｂ上で再びインストーラ１８を起動する。新しいパソコンシステム２ｂ上には、ソフトウエアＡはまだ存在しない（ステップＳ０９０２）。従って、ユーザαは、「他のパソコンへのインストール」を選択し（ステップＳ０９１３）、このアンインストールキーＥ（Ｎ回目）をインストーラ１８に入力する。
【０１５６】
インストーラ１８は、アンインストールキーＥを元に、第二のアンインストールキーＥＥ（Ｎ回目）を生成し出力する（ステップＳ０９１５）。
第二のアンインストールキーＥＥの生成方法はアンインストールキーＥに対する仮想の許諾キーを生成し、この仮想の許諾キーに対するアンインストールキーとして第二のアンインストールキーＥＥを生成するようにしている。これはインストーラ１８が行う。仮想の許諾キー生成のルールはセンタ１５における承諾キー作成ルール（ステップＳ１００２）に従い、第二のアンインストールキーの生成方法は図３３のアンインストールキー生成のルールと同じものを使用した。
【０１５７】
第二のアンインストールキー１６桁の仕様では下４桁に乱数をセットしているので、同一のアンインストールキーから、生成する度に異なる第二のアンインストールキーができることになる。
【０１５８】
第二のアンインストールキーＥＥ（Ｎ回目）は画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。ユーザαはこの第二のアンインストールキーＥＥ（Ｎ回目）をセンタ１５に提示して、パソコンシステム２ｂにソフトウエアＡをインストールするための許諾キーＧ（Ｎ＋１回目）を請求する。
【０１５９】
センタ１５は、第二のアンインストールキーＥＥ（Ｎ回目）を解析して、ユーザαが確かに過去のインストール分のソフトウエアＡのアンインストールを実行したことを確認し、インストール用の許諾キーＧ（Ｎ＋１回目）をユーザαに無償提供する（ステップＳ１０１１）。
【０１６０】
ユーザαがパソコンを乗り換える際の再インストール時に、第三者２４がアンインストールキーＥ（Ｍ回目）を入手しても、インストール時には第二のアンインストールキーとして、乱数を含む新たなキーＥＥＥ（見掛け上Ｍ回目）が生成出力されるため、センタ１５への連絡無しに、自分のアンインストールキーＥＥＥ（見掛け上Ｍ回目）に対応した許諾キーを入手することは不可能であり、不正インストールすることはできない。
【０１６１】
こうして、不正インストールを防止し、かつ正規のユーザは無償で再インストールや別のパソコンシステムへのインストールが可能となる。
また第１実施例の場合と同様に、第４実施例においても、許諾キーは解凍キーと許諾予備キーとの差分として計算されるので（ステップＳ１００２）、許諾予備キーの内容によって許諾キーの内容が変わる。本実施例では、許諾予備キーは、現在時刻情報から作成されているので（ステップＳ０９１６）、許諾キーの内容も時刻毎によって異なる。そのため、許諾キー生成の基となった許諾予備キーと同時生成の許諾予備キーを用いた場合のみ、正しい解凍キーが作成される（ステップＳ０９１１）。従って、許諾キー生成の基となった許諾予備キーの生成時刻と異なった時刻に生成された許諾予備キーを用いても上述した理由により、正しい解凍キーは算出されない。これによって、ユーザが第３者に解凍キーを教えた場合における解凍キーの生成とそれによる不正インストールが防止できる。また、ユーザが一旦パソコンシステムにインストールした後において、基の許諾キーを用いて他のパソコンシステムに不正インストールすることが防止できる。
【０１６２】
【発明の効果】
以上説明したように、本発明によれば、 ＣＤ−ＲＯＭに暗号化された状態で格納されているソフトウェアの不正利用を有効に防止することができる。
【０１６３】
また、過去のインストールについての情報を格納する格納手段を備えれば、ＣＤ−ＲＯＭに暗号化された状態で格納されているソフトウェアの正当な解凍用キー再発行要求と不正な解凍用キー発行要求とを識別し、正当な解凍用キー再発行要求に対してのみ解凍用キーの再発行を行うことができる。
【図面の簡単な説明】
【図１】本発明の原理図
【図２】本発明の第１実施例によるソフトウェア解凍装置の概略図
【図３】図２の装置における処理手順の概略を示すフローチャート
【図４】本発明の第１実施例によるソフトウェア解凍装置を構成するパソコンシステムの構成ブロック図
【図５】本発明の第１実施例によるソフトウェア解凍装置を構成するセンタの構成ブロック図
【図６】図４のパソコンシステムにおいて実行される処理を示すフローチャート
【図７】図５のセンタにおいて実行される処理を示すフローチャート
【図８】本発明の第１実施例において用いられる解凍キーの例を示す図
【図９】本発明の第１実施例において用いられる許諾予備キーの構成を示す図
【図１０】本発明の第１実施例において用いられる許諾予備キーの例を示す図
【図１１】本発明の第１実施例において用いられる許諾キーの例を示す図
【図１２】本発明の第１実施例において第三者のパソコンシステムにおいて生成された許諾予備キーの例を示す図
【図１３】図１１の許諾キーと図１２の許諾予備キーとから算出された解凍キーを示す図
【図１４】本発明の第１実施例の作用を示す説明図
【図１５】本発明の第２実施例によるソフトウェア解凍装置の概略図
【図１６】図１５の装置における処理手順の概略を示すフローチャート
【図１７】本発明の第３実施例によるパソコンシステムにおいて実行される処理を示すフローチャート
【図１８】本発明の第３実施例によるセンタにおいて実行される処理を示すフローチャート
【図１９】本発明の第３実施例において用いられる許諾予備キーの上１４桁の構成を示す図
【図２０】本発明の第３実施例において用いられる許諾予備キーの下６桁の構成を示す図
【図２１】図１７のステップＳ０５０５において実行されるアンインストールキー出力のサブルーチンの内容を示すフローチャート
【図２２】図１８のステップＳ０５１４において実行される第２のアンインストールキー出力のサブルーチンの内容を示すフローチャート
【図２３】本発明の第３実施例の作用〔第１のケース〕を示す説明図
【図２４】第１のケースにおけるアンインストール時の機能を示す機能ブロック図
【図２５】第１のケースにおけるアンインストールキー出力時の機能を示す機能ブロック図
【図２６】第１のケースにおけるアンインストールキー演算時の機能を示す機能ブロック図
【図２７】第１のケースにおけるアンインストールキー表示出力時の機能を示す機能ブロック図
【図２８】本発明の第３実施例の作用〔第２のケース〕を示す説明図
【図２９】本発明の第３実施例の作用〔第３のケース〕を示す説明図
【図３０】本発明の第４実施例によるパソコンシステムにおいて実行される処理を示すフローチャート
【図３１】本発明の第４実施例によるセンタにおいて実行される処理を示すフローチャート
【図３２】本発明の第４実施例において用いられる許諾予備キーの構成を示す図
【図３３】図３０のステップＳ０９０６において実行されるＮ回目のアンインストールキー出力のサブルーチンの内容を示すフローチャート
【図３４】本発明の第４実施例の作用〔第１のケース〕を示す説明図
【図３５】第１のケースにおけるアンインストールキー出力時の機能を示す機能ブロック図
【図３６】第１のケースにおけるアンインストールキー生成時の機能を示す機能ブロック図
【図３７】本発明の第３実施例の作用〔第２のケース〕を示す説明図
【図３８】本発明の第３実施例の作用〔第３のケース〕を示す説明図
【図３９】従来例を示す図
【符号の簡単な説明】
１    ＣＤ−ＲＯＭ
２    パソコンシステム
５    制御ＣＰＵ
７    ＤＥＳ
８    インストーラ
９    ディスク装置
１５    センタ
１７    制御ＣＰＵ
１８    データ記憶部
１９    承諾キー生成部
２０    課金部  ３
【図１】
0003647907.tif 000006
【図２】
0003647907.tif 000007
【図３】
0003647907.tif 000008
【図４】
0003647907.tif 000009
【図５】
0003647907.tif 000010
【図６】
0003647907.tif 000011
【図７】
0003647907.tif 000012
【図８】
0003647907.tif 000013
【図９】
0003647907.tif 000014
【図１０】
0003647907.tif 000015
【図１１】
0003647907.tif 000016
【図１２】
0003647907.tif 000017
【図１３】
0003647907.tif 000018
【図１４】
0003647907.tif 000019
【図１５】
0003647907.tif 000020
【図１６】
0003647907.tif 000021
【図１７】
0003647907.tif 000022
【図１８】
0003647907.tif 000023
【図１９】
0003647907.tif 000024
【図２０】
0003647907.tif 000025
【図２１】
0003647907.tif 000026
【図２２】
0003647907.tif 000027
【図２３】
0003647907.tif 000028
【図２４】
0003647907.tif 000029
【図２５】
0003647907.tif 000030
【図２６】
0003647907.tif 000031
【図２７】
0003647907.tif 000032
【図２８】
0003647907.tif 000033
【図２９】
0003647907.tif 000034
【図３０】
0003647907.tif 000035
【図３１】
0003647907.tif 000036
【図３２】
0003647907.tif 000037
【図３３】
0003647907.tif 000038
【図３４】
0003647907.tif 000039
【図３５】
0003647907.tif 000040
【図３６】
0003647907.tif 000041
【図３７】
0003647907.tif 000042
【図３８】
0003647907.tif 000043
【図３９】
0003647907.tif 000044