JP3647907B2 - 暗号化ソフトウェアの解凍システム - Google Patents

暗号化ソフトウェアの解凍システム Download PDF

Info

Publication number
JP3647907B2
JP3647907B2 JP21645094A JP21645094A JP3647907B2 JP 3647907 B2 JP3647907 B2 JP 3647907B2 JP 21645094 A JP21645094 A JP 21645094A JP 21645094 A JP21645094 A JP 21645094A JP 3647907 B2 JP3647907 B2 JP 3647907B2
Authority
JP
Japan
Prior art keywords
key
software
decompression
permission
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP21645094A
Other languages
English (en)
Other versions
JPH0884139A (ja
Inventor
一雄 中島
毅 中原
敏 伊丹
研一 内海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP21645094A priority Critical patent/JP3647907B2/ja
Priority to US08/510,123 priority patent/US5875247A/en
Publication of JPH0884139A publication Critical patent/JPH0884139A/ja
Application granted granted Critical
Publication of JP3647907B2 publication Critical patent/JP3647907B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Description

【0001】
【産業上の利用分野】
本発明は暗号化されたソフトウエアの流通に際し、このように暗号化されたソフトウェアを解凍するためのシステムに関する。
【0002】
【従来の技術】
近年、CD−ROMドライブの普及に伴い、CD−ROM媒体による暗号化されたソフトウエアの流通が盛んに行われている。これはCD−ROM媒体が非常に安価に製造でき、かつ600MBを越える大容量媒体であること、およびCD−ROMドライブの低価格・高速化による。さらに、CD−ROMは軽量薄型であるので、雑誌に挟んでの流通等、従前のフロッピーディスクを媒体としていたソフトウエア流通にはなかった新しい流通形態の採用が可能である。
【0003】
一方、このCD−ROMに格納されるソフトウエアは、デジタルデータであるため、容易に不正コピー・不正インストール(ここで、「インストール」とは、パソコンシステムのディスク装置(ハードディスク,シリコンディスク,等)にソフトウェアを導入すること)される危険がある。従って、CD−ROMを用いた新たなソフトウェア流通に際しても、このような不正コピー・不正インストールを防止することができるシステムを、確立する必要がある。
【0004】
そこで、従来より、ソフトウェアの不正コピー・不正インストールを防止しつつCD−ROMを使用してソフトウェアの使用権設定を行う新たなソフトウェア流通システムが提案されている。
【0005】
例えば、図39に示すように、数種類の試用版ソフトウエアおよび暗号化された本物ソフトウエアをCD−ROM上に記録して、このCD−ROMを流通させるソフトウェア流通システムが実用化されている。
【0006】
このシステムにおいては、ユーザ100は、最初に上記内容が格納されているCD−ROMを、販売店101から購入する(その販売価格は、比較的安価に設定されている。)。そして、ユーザ100は、CD−ROMに格納されている試用版ソフトウエアを試用する。但し、この試用板ソフトウェアは、殆どの場合、ファイル保存不可とか印刷不可等の機能制限がなされている。ユーザは、試用版ソフトウェアを試用した結果、気に入ったソフトウエアがあった場合、対応する本物ソフトウエアを自分のパソコンシステムにインストールする。
【0007】
但し、本物ソフトウエアは暗号化されているので、インストール時には暗号を解凍するための解凍キーを入力する必要がある。そのため、ユーザは、ソフトウェアの権利者(著作権者,使用権者)から使用権設定業務の代行を委託されてい管理センタ(以下、「センタ」という。)102に電話等で連絡し、当該ソフトウェアについての解凍キーの購入を申し込む。購入に必要な代金の払い込みが保証されると、センタ102は、解凍キーをユーザ100に販売提供する。それによって、ユーザ100は、解凍キーを入力することによって本物ソフトウェアを解凍し、インストールを完了することができるのである。
【0008】
【発明が解決しようとする課題】
しかしながら、この方式では解凍キーが事実上何回でも使用できてしまう。従って、ユーザ100が同じCD−ROMから何回も本物ソフトウェアを解凍して、複数のパソコンシステムに夫々インストールしてしまうことも事実上可能である。また、ユーザ100が購入した解凍キーを第三者103に教えてしまうことにより、この無権利の第三者に本物ソフトウェアの解凍及びインストールさせることも事実上可能である。これらは、解凍キーの販売に伴うソフトウェア使用許諾で認められた範囲を超えた不正利用行為である。このような不正利用を有効に防止できないことが、従来のソフトウェアの解凍装置の第1の問題点である。
【0009】
また、仮に、何らかの方法で1回のみ有効な解凍キーが開発されれば、上記第1の問題点に挙げた不正利用は防止され得るが、その反面、以下の問題が発生する。つまり、正規に解凍キーを購入してソフトウェアの使用権設定を受けたユーザ100であっても、ソフトウェアを構成するファイルの一部を破壊した場合,ディスク装置のドライプ設定(マッピング)を変更した場合には、インストールのやり直しが必要になる。また、この正規ユーザ100が、新たにパソコンシステムを買い足したパソコンにおいて当該ソフトウェアを使用したいために、元のパソコンにインストールされていた当該ソフトウェアを削除し(アンインストールし)、新たなパソコンシステムに当該ソフトウェアをインストールしたいという要求が発生する場合もある。このような再インストールは、通常、ソフトウェアの使用権の範囲内の行為である。そして、このような正当な再インストールを実行するために、正規ユーザ100は、解凍キーを再度セットしなければならない。但し、最初に購入した解凍キーは既に使用済みであるので、ユーザ100は、センタ102に対して解凍キーの無償配布を要求することになる。
【0010】
しかしながら、センタ102はユーザ100の解凍キー要求が再インストールなどの正規な要求なのか、第3者への通知等の不正な利用のためなのか判断できない。そのため、センタ102は、再インストールなどの正規な要求に対しては無償で解凍キーを提供するとともに、第三者への提供等の不正利用に対してはこれを拒否したり解凍キーの代金を請求したりするということができない。これが、従来のソフトウェアの解凍システムの第2の問題点である。
【0011】
本発明の第1の課題は、上記第1の問題点に鑑み、CD−ROMに暗号化された状態で格納されているソフトウェアの不正利用を有効に防止することができるソフトウェアの解凍システムを提供することである。
【0012】
本発明の第2の課題は、上記第2の問題点に鑑み、CD−ROMに暗号化された状態で格納されているソフトウェアの正当な解凍用キー再発行要求と不正な解凍用キー発行要求とを識別し、正当な解凍用キー再発行要求に対してのみ解凍用キーの再発行を行うことができるソフトウェアの解凍システムを提供することである。
【0013】
【課題を解決するための手段】
本発明は、上記課題を解決するために、以下のような構成を採用した。
<本発明の必須構成要件>
即ち、本発明によるソフトウェアの解凍システムは、上記第1の課題を解決するために、図1の原理図に示すように、暗号化されたソフトウェアを解凍キーを用いて解凍する解凍装置(200)とこのソフトウェアの解凍を管理する管理装置(214)とからなる暗号化ソフトウェアの解凍システムであって、前記解凍装置(200)に備えられ、時刻情報に基づいて第1のキーを生成する第1キー生成手段(211)と、前記管理装置(214)に備えられ、前記解凍キー及び前記第1のキーに対して第1の演算を施して第2のキーを生成する第2キー生成手段(215)と、前記解凍装置(200)に備えられ、前記第1のキーと前記第2のキーに対して前記第1の演算を逆算することにより前記解凍キーを生成する解凍キー生成手段(212)と、前記解凍装置(200)に備えられ、前記解凍キーを用いて前記暗号化されたソフトウェアを解凍する解凍手段(213)とを有することを特徴とする(請求項1に対応)。以下、本発明の構成要件について説明する。
〔解凍装置〕
解凍装置は、パソコンシステムを含むコンピュータシステムに内蔵されていても良いし、その外部装置として構成されていても良い。
〔管理装置〕
管理装置は、ソフトウェアの解凍の有無を管理する。この管理装置は、解凍装置とオンラインで接続されていても良いし、オペレータにより操作されるものでも良い。後者の場合には、解凍装置の操作者とオペレータとの間で、直接会話をするか電話で会話をするかして、第1のキー及び第2のキーの授受を行えば良い。
〔第1キー生成手段〕
第1キー生成手段は、時刻情報から第1のキーを生成するが、この時刻情報は、日付,時,分,秒の何れかのみであっても良いし、これらの任意の組み合わせであっても良い。但し、組み合わせの場合には、連続した単位を組み合わせることが望ましい。
【0014】
第1キー生成手段は、第1のキーにソフトウェアの種類情報を含めても良いし、乱数情報を含めても良いし、インストールの回数情報を含めても良い。
〔第2キー生成手段〕
第2キー生成手段は、第1のキーと解凍キーに第1の演算を施して第2のキーを生成するが、この第1の演算としては、両者の差分をとる演算であっても良いし(請求項12に対応)、両者を加算する演算であっても良いし、その他の演算であっても良い。
〔解凍キー生成手段〕
解凍キー生成手段は、解凍キー生成後に、第2のキーを記憶するように構成することができる。
<本発明の付加的構成要件>
本発明は、上記必須の構成要件から構成されるが、以下の付加的構成要件を付加しても構成することができる。
〔課金手段〕
管理装置に、前記第2キー生成手段が前記第2のキーを生成する毎に前記ソフトウェアの料金の課金を行う課金手段を備えさせても良い(請求項2に対応)。このように構成することにより、解凍の回数に応じた課金を行うことができる。
【0015】
この課金手段は、前記解凍装置によって解凍されたソフトウェアが補助記憶装置から削除されている場合には、前記第2キー生成手段が再度前記第2のキーを生成した場合でも前記ソフトウェアの料金の課金を行わないように構成することができる(請求項4に対応)。ソフトウェアが削除された場合は、ソフトウェアの単なる再インストールであるので、課金をしないことが合理的であるからである。
〔インストール手段〕
解凍装置に、解凍されたソフトウェアがインストールされる補助記憶手段を接続するとともに、この補助記憶に前記解凍手段により解凍されたソフトウェアをインストールするインストール手段を備えさせても良い(請求項3に対応)。このように構成することにより、課金手段によりインストールの回数自体を管理させることができる。
〔アンインストール手段〕
解凍装置に、前記補助記憶装置にインストールされている前記ソフトウェアを削除するアンインストール手段を備えさせても良い(請求項5に対応)。このように構成することにより、補助記憶手段からのソフトウェアの削除を確実に検出することができる。
〔第3キー生成手段〕
解凍装置に、前記アンインストール手段が前記ソフトウェアを前記補助記憶手段から削除した時にその旨を証明する第3のキーを生成する第3キー生成手段を備えさせても良い(請求項6に対応)。このように構成することにより、第3のキーを管理装置に通知できるので、ソフトウェアの削除を管理手段へ確実に通知することができる。
【0016】
この場合、第3キー生成手段は、第1のキー又は過去に生成した第3のキーに第2の演算を施すことにより前記第3のキーを生成するようにしても良い(請求項7)。このようにすることにより、第3のキーを初回のインストール時における第1のキーに関連付けることができる。
【0017】
また、前記第3キー生成手段が前記第3のキーを生成した場合には、前記第2キー生成手段は、前記解凍キー及び前記第3のキーに前記第1の演算を施すことにより前記第2のキーを生成し、前記解凍キー生成手段は、前記第3のキーと前記第2のキーに基づいて前記第1の演算を逆算することにより前記解凍キーを生成するように構成することができる(請求項8に対応)。このようにすることにより、解凍装置キー生成手段は、第1キー生成手段が生成したキーの種類を意識する事なく解凍キーの生成をすることができる。
〔記憶手段〕
管理装置に、前記第2キー生成手段によって前記第1の演算が施された前記第1のキー及び第3のキーを全て記憶する記憶手段を備えさせても良い。この場合、第2キー生成手段は、前記記憶手段に記憶されている前記第1のキー又は前記第3のキーに対しては前記演算を施さないように構成することができる(請求項9に対応)。また、管理装置に、前記第2キー生成手段によって前記演算が施された前記第1のキーの内容,及び前記第2のキー生成した回数を記憶する記憶手段を備えさせても良い。この場合、前記第2キー生成手段は、前記第3のキーが、前記記憶手段に記憶されている第1のキーに前記第1の演算及び前記第2の演算を前記回数だけ実行した結果と一致する場合に、前記第2のキーを生成するように構成することができる(請求項10に対応)。
【0018】
これらのように構成することにより、管理装置は、インストールの履歴を把握することができる。従って、再インストールや他のコンピュータシステムへの乗り換えの場合でも、管理手段はこれらを正確に認識することができる。従って、CD−ROMに暗号化された状態で格納されているソフトウェアの正当な解凍用キー再発行要求と不正な解凍用キー発行要求とを識別し、正当な解凍用キー再発行要求に対してのみ解凍用キーの再発行を行うことができる(第2の課題に対応)。
【0019】
【作用】
ユーザが暗号化されたソフトウェア213の解凍を希望する時には、解凍装置200の第1キー生成手段211によって第1のキーを、時刻情報に基づいて生成させる。管理装置214の第2キー生成手段215は、この第1のキーと解凍キーに対して第1の演算を施すことにより、第2のキーを生成する。解凍キー生成手段212は、第1のキーと第2のキーに対して第1の演算の逆算を施して、ソフトウェアの解凍キーを生成することができる。解凍手段213は、このように生成された解凍キーを用いて暗号化ソフトウェアを解凍する。従って、第1のキーと、この第1のキーの生成時刻とは異なった時刻に生成された第1のキーに基づいた第2のキーとを、解凍キー生成手段に入力しても、解凍キーは生成されない。従って、不正な解凍を防止することができる。
【0020】
【実施例】
以下に、 図面に基づいて、本発明の実施例を説明する。
【0021】
【実施例1】
<実施例の概略>
最初に、本発明の第1実施例によるソフトウェア解凍システムの概略を示す。図2は、ユーザがCD−ROM1上のプログラム(ソフトウェア)Aをパソコンシステム2にインストールする場合を示している。プログラムAは暗号化されていて、そのままインストールすることはできない。インストールするためには解凍装置としてのインストーラ8において解凍することが必要である。
【0022】
解凍するための解凍キーDは、第二のキーとしての許諾キーC,及び第一のキーとしての許諾予備キーBから生成される。許諾キーCは、インストール時にインストーラ8が生成する許諾予備キーBを基に、管理装置としてのセンタ15が生成する。つまり、許諾予備キーBが変われば、許諾キーCも変化する。
【0023】
こうすることにより、プログラムAのインストールには、その度の許諾予備キーBに応じた許諾キーCが必要となる。従って、許諾キーCを他人が流用して不正インストールすることはできない。
【0024】
図3にソフトウェアインストールの手順を示す。この手順に示す通り、最初にユーザがCD−ROM1に暗号化されて格納されているソフトウェアの中から、プログラムAを選択すると(ステップS0101)、インストーラ8は、許諾予備キーBを計算し、出力する(ステップS0102)。これに応じて、ユーザが許諾予備キーBをセンタ15に提示して、許諾キーCを請求すると(ステップS0103)、センタ15は、許諾予備キーBを基に、許諾キーCを計算し、出力する(ステップS0104)。
【0025】
ユーザは、この許諾キーCを購入し(ステップS0105)、許諾キーCをインストーラ8に入力する(ステップS0106)。インストーラ8は、許諾予備キーBと許諾キーCとから、解凍キーDを計算し、出力する(ステップS0107)。そして、インストーラ8は、解凍キーDによって、プログラムAを解凍し、ユーザのパソコンシステムにインストールするのである(ステップS0108)。
<実施例の構成>
次に、以上のような制御を行うための具体的なインストーラ8及びセンタ15の構成を説明する。図4は、本発明の上記インストーラ8を内蔵したパソコンシステムのブロック図である。なお、インストーラ8は、実際には、制御CPU5がプログラムを実行することによってソフト的に実現される機能である。図4は、この機能をハード的に示したものである。
【0026】
図4において、ユーザが販売店から購入したCD−ROM1には、特定のキーによって暗号化されたソフトウェア(本物ソフトウェア)と、この本物ソフトウェアに対応する暗号化されていない試用版ソフトウェア(一部機能が省略されているソフトウェア)とが、複数種類分格納されている。なお、これらソフトウェアは、必ずしもプログラムである必要はなく、例えば画像データのようなデータであっても構わない。
【0027】
暗号化されたソフトウェアの解凍には、暗号化に際して使用されたキーと同一のキー(解凍キー)が必要となる。ここでは、暗号化に際して、16桁の全てが“0”であるキーが使用されたとする。
【0028】
このようなソフトウェアが格納されているCD−ROM1に対して、図示せぬドライブ装置により読み出しが行われる。この図示せぬドライブ装置によって読み出されたソフトウェアは、第1のI/O(入出力)装置3を介して、制御CPU(中央演算処理装置)5及びDES(Data Encryption Standard)7に入力されている。
【0029】
これら第1のI/O装置3,制御CPU5,及びDES7は、システムバスφを介して相互に接続されている。このシステムバスφには、また、インストーラ8,第2のI/O装置4,第3のI/O装置6、及び時計機構14が接続されている。第2のI/O装置4には、ハードディスク等からなる補助記憶手段としてのディスク装置9が接続されている。また、第3のI/O装置6には、D/A(デジタル/アナログ)変換器10を介して、モニタ装置13が接続されている。なお、第1のI/O装置3には、インタフェース装置11も接続されている。
【0030】
このインタフェース装置11は、このパソコンシステム2に装着されている図示せぬキーボード,フロッピーディスクドライブ装置12,及び図示せぬモデムとインストーラ8との間の出入力処理を行う機能を有している。即ち、インストーラ8において生成された解凍予備キーB又はアンインストールキーEを、フロッピーディスク12に出力したり、モデムを介して通信によってセンタ15に通知する。又は、キーボードを用いて入力された許諾キーC,通信によってセンタ15から通知された許諾キーC,又はフロッピーディスク12によって入力された許諾キーCを、インストーラ8に入力する。
【0031】
制御CPU5は、パソコンシステム2全体の制御を担う。そして、ディスク装置9にインストールされているプログラムを図示せぬメモリにロードして実行することにより、所定のデータ処理を行うのである。制御CPU5は、第1乃至第3のI/O装置3〜6,DES7,並びに、インストーラ8の間における情報のやりとりを制御する。
【0032】
DES7は、第1のI/O装置3から受け取ったソフトウェアを、制御CPU5からの指示に応じて解凍する機能を有する。
解凍装置としてのインストーラ8は、制御CPU5に実行されることによって、第一キー生成手段,解凍キー生成手段,インストール手段,アンインストール手段,及び第3キー生成手段としての機能を生じるプログラムを格納するRAM8である。即ち、このインストーラ8は、DES7を用いてCD−ROM1に格納されているソフトウェアを復号化してディスク装置9にインストールさせるための一連の動作を制御するためのプログラムを格納している。
【0033】
ディスク装置9は、アプリケーションプログラムを格納するためのハードディスクである。
時計機構14は、現在時刻情報をインストーラ8に与えるためのタイマである。また、図5は、管理装置としてのセンタ15の構成を示すブロック図である。図5から明らかなように、このセンタ15は、制御CPU17と、この制御CPU17に接続されている入出力装置16,データ記憶部18,許諾キー生成部19,及び課金部20とから構成されている。
【0034】
制御CPU17は、センタ15全体の動作を制御する処理装置である。入出力装置16は、制御CPU17と外部との間でデータ(許諾予備キー,アンインストールキー,許諾キー)の入出力を実行する。入出力装置16は、具体的には、キーボード,ディスプレイ,モデム等の装置から構成されている。
【0035】
第二キー生成手段としての許諾キー生成部19は、入出力装置16において入力された許諾予備キー又はアンインストールキーに基づいて許諾キーを生成する装置である。また、課金手段としての課金部20は、許諾キー19を新規に生成する際に、ユーザに対する課金を行う装置である。また、記憶手段としてのデータ記憶部18は、許諾キーを生成したり課金を行うために必要な各種ユーザデータを保存するためのメモリである。
【0036】
次に、以上のように構成されるパソコンシステム2及びセンタ15にて実行される処理の内容を、図6及び図7を用いて説明する。なお、本実施例で用いる許諾予備キー・許諾キー・解凍キーは、図8乃至図11に示すように、それぞれ16桁の数字列とされている。
【0037】
図6は、パソコンシステム2のインストーラ8が実行するソフトウェアの解凍及びインストールのための処理である。図6の処理は、図示せぬディスクドライブ装置にCD−ROM1を装填した後に、インタフェース装置11を介してインストールコマンドを入力することによりスタートする。そして、最初のステップS0201において、CD−ROM1に格納されている複数の本物ソフトウェアの中から、インストールするソフトウェアを選択する。即ち、ユーザがソフトウェアを特定する入力をするのを待ち、ユーザが特定したソフトウェアを処理対象として決定する。
【0038】
続くステップS0202では、時計機構14から得られる現在時刻情報に基づいて許諾予備キーを作成する。インストーラ8が生成する解凍予備キーとして要求される特徴は「インストールする毎に異なる許諾予備キーを生成する」ことである。そこで、許諾予備キーをインストール日付および時刻情報から生成することとしたのである。具体的には、図9に示す様な順番で数値を配列する。即ち、図9中において、西暦の千の位を年1、百の位を年2、十の位を年3、一の位を年4としている。月・日・時・分・秒についても同様に表記する。残余の※は乱数を入れる。従って、例えば、1994年7月26日12時34分56秒の許諾予備キーは、図10に示すような数列になる。
【0039】
次のステップS0203では、ステップS0202にて生成した許諾予備キーを、インタフェース装置11を介してフロッピーディスク12又はモデムに出力する。若しくは、モニタ装置13に表示する。
【0040】
次のステップS0204では、許諾キーの入力を待つ。即ち、ユーザがキーボードを用いて許諾キーを入力するか、フロッピーディスク12又はモデムを介して許諾キーが入力されるのを待つ。
【0041】
次のステップS0205では、ステップS0202にて算出した許諾予備キーとステップS0204にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する(第一の演算の逆算に相当)。
【0042】
次のステップS0205では、CD−ROM1内のソフトウェアをDES7にて解凍させつつ、ディスク装置9にインストールする。
図7は、センタ15において実行される許諾キーの計算及び課金のための処理である。図7において最初のステップS0301では、許諾予備キーの入力を待つ。即ち、ユーザが電話等により許諾予備キーを通知してきたり、モデムを用いた通信によってオンラインにて許諾予備キーを送信して来るのを待つ。
【0043】
次のステップS0302では、解凍キーと許諾予備キーとから許諾キーを計算する。即ち、センタ15は、解凍キーと許諾予備キーの各桁の差分(10の補数)から、許諾キーを生成する(第一の演算に相当)。上記、解凍キー(図8)及び許諾予備キー(図10)から生成した許諾キーは、図11のようになる。
【0044】
次のステップS0303では、許諾キーを請求したユーザに対して課金を行う。即ち、当該ユーザの銀行口座又はクレジットカード会社から許諾キーの販売料金(当該ソフトウェアの使用権設定料金)を引き落とす手続きを行う。
【0045】
引き落としの手続きが完了すると、ステップS0304にて許諾キーを出力する。
<実施例の作用>
以上のようにして許諾キーは解凍キーと許諾予備キーとの差分として計算されるので(ステップS0302)、許諾予備キーの内容によって許諾キーの内容が変わる。本実施例では、許諾予備キーは、現在時刻情報から作成されているので(ステップS0202)、許諾キーの内容も時刻毎によって異なる。従って、許諾キー生成の基となった許諾予備キーとその許諾キーとを用いれば、正しい解凍キー作成される(ステップS0205)。例えば、図10に示す内容の許諾予備キーと図11に示す内容の許諾キーとからは、図8に示す内容の解凍キーが生成される。その結果、ソフトウェアの解凍とインストールが可能になる。
【0046】
一方、許諾キー生成の基となった許諾予備キーの生成時刻と異なった時刻に生成された許諾予備キーを用いると、上述した理由により、正しい解凍キーは算出されない。これによって、ユーザが第3者に解凍キーを教えた場合における解凍キーの生成とそれによる不正インストールが防止できる。また、ユーザが一旦パソコンシステムにインストールした後において、基の許諾キーを用いて他のパソコンシステムに不正インストールすることが防止できる。
【0047】
例えば、図14に示すように、ユーザ20が販売店21からCD−ROM1を購入して、1994年7月26日18時の許諾予備キーに基づいて、センタ23から1994年7月26日18時の許諾キーを購入したとする。この場合、ユーザ20は、これら許諾予備キー及び許諾キーとから解凍キーを生成して、当該ソフトウェアをインストールすることができる。
【0048】
次に、ユーザ20が第三者24に許諾キーを教えてしまい、この第三者24がその許諾キーを流用しようとする場合を考える。この場合、第三者24は、ユーザ20による当該ソフトウェアのインストールが終った後に、図11に示す許諾キーを入手して、自己のパソコンシステム2のインストーラ8を起動し、ソフトウェアを選択する。この時刻が1994年7月30日23時45分01秒であったとすると、インストーラ8が計算・出力する許諾予備キーの内容は、図12に示すようになる。
【0049】
この許諾予備キーに対してユーザ20から流用した許諾キー(図11)を入力しても、結果として生じる解凍キーは図13のように間違った値になってしまう。従って、第三者24は、ソフトウェアを解凍することができない。
【0050】
このように、インストール毎に異なる許諾予備キーを生成すれば、その結果センタ15が発行する許諾キーもその度に異なることになる。こうすれば、ユーザ20がある日時にセンタ15から購入した許諾キーを第三者24へ流用しても、第三者24がインストールを行う時刻には許諾キーは無効であり、不正なインストールは不可能となる。
【0051】
【実施例2】
本発明の第2実施例によるソフトウェア解凍システムの概略を説明する。図15は、ユーザがCD−ROM1上のプログラムAをパソコンシステム2にインストールする場合を示している。プログラムAは暗号化されていて、そのままインストールすることはできない。インストールするためにはインストーラ8において解凍することが必要である。
【0052】
上述の第1実施例と異なるのは、解凍キーをインストーラ8内部に予め持っていることである。解凍装置としてのインストーラ8は、第二のキーとしての許諾キー,及び第一のキーとしての許諾予備キーから解凍を行うか否かの解凍許諾判定を行う。
【0053】
許諾予備キーおよび許諾キーの関係は上述の第1実施例の場合と同じである。そして、許諾キーは、インストール時にインストーラ8が生成する許諾予備キーを元に、管理装置としてのセンタ15によって生成される。つまり、許諾予備キーが変われば、許諾キーも変化するのである。
【0054】
こうすることにより、プログラムAのインストールには、その度の許諾予備キーBに応じた許諾キーCが必要となる。従って、許諾キーCを他人が流用して不正インストールすることはできない。
【0055】
図16にソフトウェアインストールの手順を示す。この手順に示す通り、最初にユーザがCD−ROM1に暗号化されて格納されているソフトウェアの中から、プログラムAを選択すると(ステップS0401)、インストーラ8は、許諾予備キーBを計算し、出力する(ステップS0402)。これに応じて、ユーザが許諾予備キーBをセンタ15に提示して、許諾キーCを請求すると(ステップS0403)、センタ15は、許諾予備キーBを基に、許諾キーCを計算し、出力する(ステップS0404)。
【0056】
ユーザは、この許諾キーCを購入し(ステップS0405)、許諾キーCをインストーラ8に入力する(ステップS0406)。インストーラ8は、許諾予備キーBと許諾キーCとから、解凍許諾判定を行う(ステップS0407)。解凍許諾判定がOKである場合には、インストーラ8は、その内部に有している解凍キーDによって、プログラムAを解凍し、ユーザのパソコンシステムにインストールするのである(ステップS0408)。
【0057】
第2実施例の他の構成及び作用は第1実施例と同じであるので、その説明を省略する。
【0058】
【実施例3】
上記第1実施例では、インストール毎に許諾予備キー・許諾キーを変化させることにより、第三者の不正流用を防止した。これによれば、従来における第1の問題点は解決できる。しかし、第2の問題点については、これを有効に解決することができない。本第3実施例は、第2の問題点をも解決し、正規のユーザが再インストールしたり、新しく購入したパソコンへインストールする際に、無償で許諾キーを入手できる構成を有するソフトウェア解凍装置に関するものである。<実施例の構成>
以上のような制御を行うための具体的なインストーラ8及びセンタ15のハード構成は、第1実施例のものと同様であるので、その説明を省略する。
【0059】
次に、パソコンシステム2及びセンタ15にて実行される処理の内容を、図17及び図18を用いて説明する。なお、本実施例で用いる許諾予備キー・許諾キー・解凍キーは、図19及び図20に示すように、それぞれ20桁の数字列とされている。また、ユーザが販売店から購入したCD−ROM1には、特定のキーによって暗号化されたソフトウェア(本物ソフトウェア)と、この本物ソフトウェアに対応する暗号化されていない試用版ソフトウェア(一部機能が省略されているソフトウェア)とが、複数種類分格納されている。これらソフトウェアは、必ずしもプログラムである必要はなく、例えば画像データのようなデータであっても構わない。
【0060】
暗号化されたソフトウェアの解凍には、暗号化に際して使用されたキーと同一のキー(解凍キー)が必要となる。ここでは、暗号化に際して、20桁の全てが“0”であるキーが用いられているとする。
【0061】
図17は、パソコンシステム2のインストーラ8が実行するソフトウェアの解凍及びインストールのための処理である。図17の処理は、図示せぬディスクドライブ装置にCD−ROM1を装填した後に、インタフェース装置11を介してインストールコマンドを入力することによりスタートする。そして、最初のステップS0501において、CD−ROM1に格納されている複数の本物ソフトウェアの中から、インストールするソフトウェアを選択する。もしくは、ディスク装置9にインストールされているソフトウェアのうちで、アンインストールするソフトウェアを選択する。即ち、ユーザがソフトウェアを特定する入力をするのを待ち、ユーザが特定したソフトウェアを処理対象として決定するのである。
【0062】
続くステップS0502では、当該コンピュータシステム2のディスク装置9内に、既に当該ソフトウェアがインストールしてあるかどうかをチェックする。既にインストールしていない場合は、新規のインストールの場合であるか、元々当該ソフトウェアがインストールされていたパソコンシステム以外のパソコンシステムへのインストールの場合であると考えられる。そこで、ステップS0512において、新規インストールであるか他のパソコンシステムへのインストールであるかを判定する。このチェックは、ユーザによる入力に従ってなされる。
【0063】
ユーザが新規インストールを選択した場合には、ステップS0515において、時計機構14が発する現在のインストール時刻情報に基づいて、初回の第一のキーとしての解凍予備キーを作成する。インストーラ8が生成する解凍予備キーに要求される特徴は「インストールする毎に異なる許諾予備キーを生成する」ことである。そこで、許諾予備キーをインストール日付および時刻情報から生成することとしたのである。具体的には、上14桁については、図19に示す様な順番で数値を配列し、下6桁については、図20に示すように乱数を配置するのである。図19及び図20においては、上桁から順に西暦4桁、月2桁、日2桁、時2桁、分2桁、秒2桁、乱数6桁としている。作成した許諾予備キーは、インタフェース装置11を介してフロッピーディスク12又はモデムに出力される。若しくは、モニタ装置13に表示される。
【0064】
次のステップS0516では、ユーザに対して新規に第二のキーとしての許諾キーを購入することを促す旨の表示を、モニタ装置13上に行う。続いて処理はステップS509に進み、許諾キーの入力を待つ。即ち、ユーザがキーボードを用いて許諾キーを入力するか、フロッピーディスク12又はモデムを介して許諾キーが入力されるのを待つ。
【0065】
ステップS0509にて許諾キーが入力された場合には、ステップS0510において、ステップS0515にて算出した許諾予備キーとステップS0509にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する(第一の演算の逆算に相当)。解凍キーの計算がなされると、この許諾キーをディスク装置9に格納する。
【0066】
次のステップS0511では、CD−ROM1内のソフトウェアをDES7にて解凍させつつ、ディスク装置9にインストールする。その後、当該処理を終了する。
【0067】
一方、ステップS0502にて既にインストールしてあると判断した場合は、当該ソフトウェアの再インストールの場合である。この場合には、当該ソフトウェアの複数回の複製を防止するために、当該ソフトウェアのアンインストール(ディスク装置9からの削除)を実行しなければならない。従って、処理をステップS0503に進めて、アンインストールを実行する。
続くステップS0504では、ステップS0503にてアンインストールしたソフトウェアを前回インストールした際に用いた許諾キーを、ディスク装置9から読み取って入力する。
【0068】
続くステップS505では、第三のキーとしてのアンインストールキー出力のサブルーチン(第二の演算に相当)(図21)を呼び出す。
図21のサブルーチンにおいては、最初にステップS0701において、ステップS0504にて入力した前回の許諾キーを、上14桁と下6桁に分割する。そして、下6桁については、ステップS0705により、新たな6桁の乱数を発生する。
【0069】
一方、上14桁については、ステップS0702において、その偶数桁のみを抽出して、ステップS0703において、抽出した偶数桁の要素を1デクリメントする。続いて、ステップS0704において、上14桁の全要素を右側に一桁シフトさせる。但し、上14桁内の最下位桁は、上14桁の最上位桁にシフトさせる。
【0070】
ステップS0706では、シフト後の上14桁の要素と新たな下6桁の乱数とを結合させて、20桁のアンインストールキーの作成を完了する。次のステップS0707では、作成したアンインストールキーを、インタフェース装置11を介してフロッピーディスク12又はモデムに出力する。若しくは、モニタ装置13に表示する。その後、このサブルーチンをリターンする。
【0071】
アンインストールサブルーチンから処理が戻ると、図17においてステップS0506が実行される。このステップS0506では、今回のアンインストールが他のパソコンシステムへのインストールのためであるかどうかがチェックされる。なお、このチェックは、ユーザからの入力に従ってなされる。ユーザが他のパソコンシステムへのインストールを選択した場合には、そのまま当該処理を終了する。
【0072】
これに対して、ユーザが他のパソコンシステムへのインストールでないと入力した場合には、当該パソコンシステムにおける再インストールの場合であると判断できる。そこで、処理をステップS0507に進めて、ユーザに対してセンタ15から再インストール用の許諾キーを受け取ることを促す表示を、モニタ装置13により行う。続いて、ステップS0508において、再インストール用の許諾キーの入力を要求する表示を行う。そして、ステップS0509において再インストール用の許諾キーの入力を待つ。
【0073】
ステップS0509にて許諾キーが入力された場合には、ステップS0510において、ステップS0505にて算出したアンインストールキーとステップS0509にて入力した許諾キーとから、解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する(第一の演算の逆算に相当)。解凍キーの計算が完了すると、その許諾キーをディスク装置9に格納する。
【0074】
次のステップS0511では、CD−ROM1内のソフトウェアをDES7にて解凍させつつ、ディスク装置9にインストールする。その後、当該処理を終了する。
【0075】
次に、ステップS0506にて他のパソコンシステムへのインストールを選択した後に、当該他のパソコンシステムにおいて当該処理を実行した場合の制御について説明する。この場合、ステップS0512において、他のパソコンシステムへのインストールが、ユーザによって選択される。その場合には、処理はステップS0513に進む。
【0076】
このステップS0513では、当該パソコンが最初にインストールされていたパソコンシステムにおいてステップS0505が実行されたことによって出力されたアンインストールキーを入力する。これに応じてユーザがアンインストールキーを入力した場合には、続くステップS0514において、第2のインストールキー出力のサブルーチン(図22)を実行する。
【0077】
図22のサブルーチンにおいては、最初にステップS0801において、仮想の許諾キーを内部的に作成する。即ち、第1実施例における許諾キーの作成の場合(ステップS0302)と同様にして、ステップS0513にて入力したアンインストールキーと解凍キー(0が20桁連続したキー)との各桁における差分(10の補数)を出力し、これを仮想の許諾キーとする。
【0078】
次のステップS0802では、ステップS0801にて作成した仮想の許諾キーに対するアンインストールキーを生成する。具体的には、図21におけるステップS0701の処理からステップS0706までの処理を実行する。
【0079】
次のステップS0803では、ステップS0802にて生成した第2のアンインストールキーを、インタフェース装置11を介してフロッピーディスク12又はモデムに出力する。若しくは、モニタ装置13に表示する。その後、このサブルーチンをリターンする。
【0080】
第二のアンインストールキー出力サブルーチンから処理が戻ると、続いて処理がステップS0507に進む。以下、同一パソコンシステム2における再インストールの場合と同様の処理が行われる。
【0081】
以上の処理を実行した結果、同一のユーザが同一ソフトウェアを複数回インストールした場合における解凍キー,許諾予備キー又はアンインストールキー,及び許諾キーの関係は、表1に示すようになる。この表1は、1994年8月3日の12時34分56秒に初回のインストールを実行した場合における例を示すものである。
【0082】
【表1】
Figure 0003647907
図18は、センタ15において実行される許諾キーの計算及び課金のための処理である。この図18の処理を実行する前提として、センタは表2に示すようなユーザ情報をデータ記憶部18に格納しているとする。即ち、各ソフトウェアの許諾キーを購入したユーザ毎に、その口座番号,当該ソフトウェアのインストール回数を格納しているとともに、各インストールの回毎に、インストーラ8が発行した許諾予備キー又はアンインストールキー,及びセンタ15自身が発行した許諾キーを全て格納している。
【0083】
【表2】
Figure 0003647907
図18において最初のステップS0601では、許諾予備キー(又はアンインストールキー)の入力を待つ。即ち、ユーザが電話等により許諾予備キー(又はアンインストールキー)を通知してきたり、モデムを用いた通信によってオンラインにて許諾予備キー(又はアンインストールキー)を送信して来るのを待つ。
【0084】
次のステップS0602では、解凍キーと許諾予備キー(又はアンインストールキー)とから許諾キーを計算する。即ち、センタ15は、解凍キーと許諾予備キー(又はアンインストールキー)の各桁の差分(10の補数)から、許諾キーを生成する(第一の演算に相当)。
【0085】
次のステップS0603では、ステップS0602にて生成した許諾キーが当該ユーザに対するものとして、既にデータ記憶部18に登録されているか否かを判定する。登録されている場合は、既にインストール済みであり、しかもアンインストールもなされていない場合である。従って、許諾キーを出力(ステップS0611)することなく、そのまま処理を終了する。従って、同一ユーザによって同時に複数のパソコンシステムへ不正インストールされることや、ユーザからアンインストールキーを入手した第三者によって、当該ソフトウェアが不正インストールされることが防止される。
【0086】
これに対して、ステップS0603にて許諾キーが登録済みでないと判定した場合には、続くステップS0604において、アンインストールキーの逆算を行う。即ち、ステップS0601にて入力された許諾キー又はアンインストールキー(この時点では、入力されたのがどちらのキーであるかは判別されていない。)に対して、図21に示したアンインストールキーの算出演算を逆に実行し、アンインストールキーの基になった許諾キーを解析するのである。
【0087】
続くステップS0605では、ステップS0604の逆算結果(X)の上14桁の要素が当該ユーザに関してデータ記憶部18に最新に登録された許諾キーの上14桁の要素に一致するかがチェックされる。このチェックの結果両者が一致する場合は、前回の許諾キーに基づいてアンインストールが実行され、しかも、その後再インストールがなされていない場合であると判断できる。従って、無償で許諾キーを発行すべく、課金(ステップS0609)をすることなく、ステップS0602にて算出した許諾キー及び入力されたアンインストールキーをデータ登録部18に登録し(ステップS0610)、算出した許諾キーをそのまま出力する(ステップS0611)。
【0088】
これに対して、ステップS0605にて、両者が一致していないと判断した場合は、解凍キーとステップS0604の算出結果の差分を算出し(ステップS0606)、その算出結果(Y)に対して、ステップS0604と同様のアンインストールキーの逆算を行い(ステップS0607)、その算出結果(Z)の上14桁と同じ許諾キーが登録済みであるか否かをチェックする(ステップS0608)。これは、ステップS0601にて入力された許諾予備キー又はアンインストールキーが、ステップS0514にて生成された第二のアンインストールキーであるか否かのチェックである。
【0089】
ステップS0608にて登録済みであったならば、第二のアンインストールキーが入力されたのであると判断することができる。この場合は、無償で許諾キーを発行すべきであるので、課金(ステップS0609)をすることなく、ステップS0602にて算出した許諾キー及び入力されたアンインストールキーをデータ登録部18に登録し(ステップS0610)、算出した許諾キーをそのまま出力する(ステップS0611)。
【0090】
これに対して、ステップS0608において、算出結果(Z)が登録済みでないと判定した場合は、初回のインストールのための許諾キーが要求されているものと判断することができる。即ち、ステップS0601にて入力されたのが許諾予備キーであると判断することができる。従って、ステップS0609において、許諾キーを請求したユーザに対して課金を行う。即ち、当該ユーザの銀行口座又はクレジットカード会社から許諾キーの販売料金(当該ソフトウェアの使用権設定料金)を引き落とす手続きを行う。引き落としの手続きが完了すると、ユーザデータ(許諾キー及び許諾予備キーを含む)をデータ登録部18に登録し(ステップS0610)、この許諾キーを出力する(ステップS0611)。
【0091】
このように、本第3実施例では、センタ15は、ユーザ名と過去のインストール履歴を管理する。従って、仮に第三者が只で許諾キーを入手しようとして正規ユーザになりすまして、例えば、3回目のアンインストールキーをセンタに提示したとしても、センタはユーザAには3回目の許諾キーは発行済であることが解るので(ステップS0603)、容易に第三者の要求が不正なものであると見破ることができる。
<実施例の作用>
以下の作用の説明例は、解凍キー,許諾予備キー又はアンインストールキー,及び許諾キーは、表1に示すように設定されていることを前提としている。
〔第1のケース〕
正規ユーザαがパソコンシステム2にCD−ROM1上のソフトウエアAをインストーラ18を使って再インストールする例を説明する(図23参照)。
【0092】
ユーザαは、既に許諾予備キーB(19940803123456712589)および許諾キーC(91160207987654398521)を使ってソフトウエアAをインストールしている。
また、インストール時に用いた許諾キーC(91160207987654398521)は、ディスク装置9上に記録保存されている。
【0093】
再インストール時にインストーラ18を起動してソフトウエアAを選択すると(ステップS0501)、インストーラ18は、パソコンシステム2上に既にソフトウエアAがインストールされているかを、ファイル検索等を行って確認する(ステップS00502)。
【0094】
確認の結果、ソフトウエアAがインストールされているので、過去のインストール分のソフトウエアAのアンインストール(消去)を開始する(ステップS0503)。アンインストール終了後、ユーザαのパソコンシステム2には、ソフトウエアAは存在しなくなる(図24参照)。
【0095】
インストーラ18は、アンインストール終了後、前回のインストール後に使用した許諾キーC(91160207987654398521)を元に、アンインストールキーE(48106929788664821625)を生成し出力する(ステップS0505)(図25,図26参照)。これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
【0096】
ユーザαは、このアンインストールキーE(48106929788664821625)をセンタ15に提示して、再インストールするための許諾キーGを請求する。センタ15は、アンインストールキーE(48106929788664821625)を解析して、ユーザAが確かに過去のインストール分のソフトウエアAのアンインストールを実行したことを確認し(ステップS0605)、再インストール用の許諾キーG(62904181322446289485)をユーザAに無償提供する(ステップS0611)。
〔第二のケース〕
正規ユーザαがパソコンシステム2にCD−ROM1上のソフトウエアAをインストーラ18を使って初めてインストールする例を説明する(図28参照)。
【0097】
ユーザαがインストーラ18を起動してソフトウエアAを選択する(ステップS0501)。インストーラ18は、パソコンシステム2上に既にソフトウエアAがインストールされているかをファイル検索等を行って確認する(ステップS0502)。
【0098】
ユーザαは過去にソフトウエアAをインストールしていないので、インストーラ18は、ユーザαの要望が「新規インストール」あるいは「他のパソコンへのインストール」なのかユーザに選択させる(ステップS0512)。
【0099】
ユーザが新規インストールを選択すると、初回の許諾予備キーB(19940803123456712589)を出力し(ステップS0515)、「新規に許諾キーを購入するように」というメッセージを画面表示して、ユーザAに許諾キーの購入を促す(ステップS0516)。
【0100】
ユーザαは、センタ15に連絡し、許諾予備キーB(19940803123456712589)を提示して、ソフトウエアAをインストールするための許諾キーC(91160207987654398521)を購入し、正規ユーザとなる(ステップS0609)。
【0101】
センタ15は、ユーザαのユーザデータ(承諾キーを含む)を登録し(ステップS0610)、ユーザαに許諾キーC(91160207987654398521)を渡す(ステップS0611)。
【0102】
ユーザAは、許諾キーC(91160207987654398521)をインストーラ18に入力して(ステップS0509)、インストール作業を完了する(ステップS0510,S0511)。
〔第三のケース〕
過去にパソコンシステム2aにCD−ROM1上のソフトウエアAをインストールしたユーザαが、新規に買い足したパソコンシステム2bにソフトウエアAをインストールする例を示す(図29参照)
ユーザαは、既にソフトウエアAをインストールしたパソコンシステム2aでインストーラ18を起動して、アンインストール対象ソフトウエアとしてソフトウエアAを選択する(ステップS0501)。インストーラ18は、アンインストール終了後、前回のインストール時にパソコンシステム2aに記録した許諾キーC(91160207987654398521)を読み取り(ステップS0504)、これを元にアンインストール終了の証拠としてアンインストールキーE(481069297886648625)を生成し出力する(ステップS0505)。これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
【0103】
他のパソコンシステム2bへのインストールの場合は、パソコンシステム2aのインストーラ18を一旦終了し、新しいパソコンシステム2b上で再びインストーラ18を起動する。新しいパソコンシステム2b上には、ソフトウエアAはまだ存在しない(ステップS0502)。従って、ユーザαは、「他のパソコンへのインストール」を選択し(ステップS0512)、このアンインストールキーE(48106929788664821625)をインストーラ18に入力する(ステップS0513)。
【0104】
インストーラ18は、アンインストールキーE(48106929788664821625)を元に、第二のアンインストールキーEE(65280317122143117342)を生成し出力する(ステップS0514)。
【0105】
第二のアンインストールキーEEの生成方法は、アンインストールキーEに対する仮想の許諾キーを生成し、この仮想の許諾キーに対するアンインストールキーとして第二のアンインストールキーEEを生成するようにしている。これはインストーラ18が行う。仮想の許諾キー生成のルールの生成ルールは、センタ15における許諾キー生成ルール(ステップS0602)に従い、第二のアンインストールキーの生成方法は図21のアンインストールキー生成方法と同じものを使用した。
【0106】
第二のアンインストールキー20桁の仕様では下6桁に乱数をセットしているので、同一のアンインストールキーから、生成する度に異なる第二のアンインストールキーができることになる。
【0107】
第二のアンインストールキーEEは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。ユーザαは、この第二のアンインストールキーEE(65280317122143117342)をセンタ15に提示して、パソコンシステム2bにソフトウエアAをインストールするための許諾キーGを請求する(ステップS0601)。
【0108】
センタ15は、第二のアンインストールキーEE(65280317122143117342)を解析して、ユーザαが確かに過去のインストール分のソフトウエアAのアンインストールを実行したことを確認し(ステップS0608)、インストール用の許諾キーG(45820793988967993768)をユーザαに無償提供する(ステップS0611)。
【0109】
ユーザαがパソコンを乗り換える際の再インストール時に、第三者24がアンインストールキーE(48106929788664821625)を入手しても、インストール時には第二のアンインストールキーとして、乱数を含む新たなキーEEE(65280317122143289964)が生成出力されるため、センタ15への連絡無しに、自分のアンインストールキーEEEに対応した許諾キーを入手することは不可能であり、不正インストールすることはできない。
【0110】
こうして、不正インストールを防止し、かつ正規のユーザは無償で再インストールや別のパソコンシステムへのインストールが可能となる。
また第1実施例の場合と同様に、第3実施例においても、許諾キーは解凍キーと許諾予備キーとの差分として計算されるので(ステップS0602)、許諾予備キーの内容によって許諾キーの内容が変わる。本実施例では、許諾予備キーは、現在時刻情報から作成されているので(ステップS0515)、許諾キーの内容も時刻毎によって異なる。そのため、許諾キー生成の基となった許諾予備キーと同時生成の許諾予備キーを用いた場合のみ正しい解凍キーが作成される(ステップS0510)。従って、許諾キー生成の基となった許諾予備キーの生成時刻と異なった時刻に生成された許諾予備キーを用いると、上述した理由により、正しい解凍キーは算出されない。これによって、ユーザが第3者に解凍キーを教えた場合における解凍キーの生成とそれによる不正インストールが防止できる。また、ユーザが一旦パソコンシステムにインストールした後において、基の許諾キーを用いて他のパソコンシステムに不正インストールすることが防止できる。
【0111】
【実施例4】
上記第3実施例においては、センタ15は、ユーザデータとして、各ソフトウェアについての全許諾予備キー,アンインストールキー,及び許諾キーを記憶していた。しかし、これでは記憶するデータの量が膨大になる。そこで、本第4実施例においては、初回のインストール時における許諾予備キー,及びインストールの回数情報によって、ユーザのインストール状況を管理する構成としている。
【0112】
また、上記第3実施例においては、許諾予備キー等にソフトウェアの種類を特定する情報が含まれていなかった。そのため、CD−ROM1に複数のソフトウェアが含まれている場合においては、ソフトウェアの種類を他の手段によって管理しなくてはならなかった。そこで、本第4実施例においては、許諾予備キー等にソフトウェアの種類についての情報を含ませる構成としている。
<実施例の構成>
以上のような制御を行うための具体的なインストーラ8及びセンタ15のハード構成は、第1実施例のものと同様であるので、その説明を省略する。
【0113】
次に、パソコンシステム2及びセンタ15にて実行される処理の内容を、図30及び図31を用いて説明する。なお、本実施例で用いる許諾予備キー・許諾キー・解凍キーは、それぞれ16桁の数字列とされている。また、ユーザが販売店から購入したCD−ROM1には、特定のキーによって暗号化されたソフトウェア(本物ソフトウェア)と、この本物ソフトウェアに対応する暗号化されていない試用版ソフトウェア(一部機能が省略されているソフトウェア)とが、複数種類分格納されている。これらソフトウェアは、プログラムである。
【0114】
暗号化されたソフトウェアの解凍には、暗号化に際して使用されたキーと同一のキー(解凍キー)が必要となる。ここでは、暗号化に際して、16桁の全てが“0”であるキーが用いられているとする。
【0115】
図30は、パソコンシステム2のインストーラ8が実行するソフトウェアの解凍及びインストールのための処理である。図30の処理は、図示せぬディスクドライブ装置にCD−ROM1を装填した後に、インタフェース装置11を介してインストールコマンドを入力することによりスタートする。そして、最初のステップS0901において、CD−ROM1に格納されている複数の本物ソフトウェアの中から、インストールするソフトウェアを選択する。もしくは、ディスク装置9にインストールされているソフトウェアのうちで、アンインストールするソフトウェアを選択する。即ち、ユーザがソフトウェアを特定する入力をするのを待ち、ユーザが特定したソフトウェアを処理対象として決定するのである。
【0116】
続くステップS0902では、当該コンピュータシステム2のディスク装置9内に、既に当該ソフトウェアがインストールしてあるかどうかをチェックする。既にインストールしていない場合は、新規のインストールの場合であるか、元々当該ソフトウェアがインストールされていたパソコンシステム以外のパソコンシステムへのインストールの場合であると考えられる。そこで、ステップS0913において、新規インストールであるか他のパソコンシステムへのインストールであるかを判定する。このチェックは、ユーザによる入力に従ってなされる。
【0117】
ユーザが新規インストールを選択した場合には、ステップS0916において、現在のインストール時刻情報に基づいて、初回の第一のキーとしての解凍予備キーを作成する。インストーラ8が生成する解凍予備キーとして要求される特徴は、「インストール回数を表す」こと,「ソフトウェアの種類を示す」こと,及び「インストールする毎に異なる許諾予備キーを生成する」ことである。そこで、許諾予備キーを、インストール回数情報,ソフトウェア種類情報,並びに、時計機構14から発されるインストール日付及び時刻情報から生成することとしたのである。具体的には、図32に示すように、上桁から順に、インストール回数情報を3桁で表し、ソフトウェア種類を3桁で表し、時刻情報を6桁(時2桁、分2桁、秒2桁)で表し、乱数を4桁付加している。そして、作成された許諾予備キーは、インタフェース装置11を介してフロッピーディスク12又はモデムに出力される。若しくは、モニタ装置13に表示される。
【0118】
次のステップS0917では、ユーザに対して新規に第二のキーとしての許諾キーを購入することを促す旨の表示を、モニタ装置13上に行う。続いて処理はステップS0910に進み、許諾キーの入力を待つ。即ち、ユーザがキーボードを用いて許諾キーを入力するか、フロッピーディスク12又はモデムを介して許諾キーが入力されるのを待つ。
【0119】
ステップS0910にて許諾キーが入力された場合には、ステップS0911において、ステップS0916にて算出した許諾予備キーとステップS0910にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する(第一の演算の逆算に相当)。解凍キーの計算がなされると、この承諾キーをディスク装置9に格納する。
【0120】
次のステップS0912では、CD−ROM1内のソフトウェアをDES7にて解凍させつつ、ディスク装置9にインストールする。その後、当該処理を終了する。
【0121】
一方、ステップS0902にて既にインストールしてあると判断した場合は、当該ソフトウェアの再インストールの場合である。この場合には、当該ソフトウェアの複数回の複製を防止するために、当該ソフトウェアのアンインストール(ディスク装置9からの削除)を実行しなければならない。従って、処理をステップS0903に進めて、アンインストールを実行する。
【0122】
続くステップS0904では、ステップS0903にてアンインストールしたソフトウェアをN回目(前回)にインストールした際に用いた許諾キーの入力を要求する。続くステップS0905では、N回目(前回)にインストールした際に用いた許諾キーの入力を待つ。これに応じて、許諾キーの入力がなされると、処理がステップS0906に進む。
【0123】
ステップS0906では、第三のキーとしてのアンインストールキー出力のサブルーチン(第二の演算に相当)(図33)を呼び出す。
図33のサブルーチンにおいては、最初にステップS1101において、ステップS0905にて入力したN回目の許諾キーを、上桁から1〜3桁目,4〜12桁目,及び13〜16桁目までに分割する。
【0124】
そして、1〜3桁目までについては、ステップS1102において、各桁についての“0”との差分(10の補数)を算出し、ステップS1102において、得られた算出結果に1を加算する。
【0125】
次に、4〜12桁目までについては、ステップS1104において、その中の偶数桁(キー全体においては奇数桁)のみを抽出し、ステップS1105において、抽出した偶数桁の要素を1デクリメントする。続いて、ステップS1106において、4〜12桁目の全要素を右側に一桁シフトさせる。但し、12桁目の要素は、4桁目にシフトさせる。
【0126】
次に、13〜16桁目までについては、ステップS1107において、新たに4桁の乱数を発生させる。
ステップS1108では、ステップS1103の結果得られた1〜3桁目と、ステップS1106の結果得られた4〜12桁目と、ステップS1107の結果得られた13〜16桁目とを結合させて、全16桁のアンインストールキーの作成を完了する。次のステップS1109では、作成したアンインストールキーを、インタフェース装置11を介してフロッピーディスク12又はモデムに出力する。若しくは、モニタ装置13に表示する。その後、このサブルーチンをリターンする。
【0127】
アンインストールサブルーチンから処理が戻ると、図30においてステップS0907が実行される。このステップS0907では、今回のアンインストールが他のパソコンシステムへのインストールのためであるかどうかがチェックされる。なお、このチェックは、ユーザからの入力に従ってなされる。ユーザが他のパソコンシステムへのインストールを選択した場合には、そのまま当該処理を終了する。
【0128】
これに対して、ユーザが他のパソコンシステムへのインストールでないと入力した場合には、当該パソコンシステムにおける再インストールの場合であると判断できる。そこで、処理をステップS0908に進めて、ユーザに対してセンタ15から(N+1回目用の)再インストール用の許諾キーを受け取ることを促す表示を、モニタ装置13により行う。続いて、ステップS0909において、(N+1回目用の)再インストール用の許諾キーの入力を要求する表示を行う。そして、ステップS0910において、(N+1回目用の)再インストール用の許諾キーの入力を待つ。
【0129】
ステップS0910にて許諾キーが入力された場合には、ステップS0911において、ステップS0906にて算出したアンインストールキーとステップS0910にて入力した許諾キーとから解凍キーを計算する。即ち、許諾予備キーと許諾キーとを加算することにより、解凍キーを算出する(第一の演算の逆算に相当)。解凍キーの計算が完了すると、許諾キーをディスク装置9に格納する。
【0130】
次のステップS0912では、CD−ROM1内のソフトウェアをDES7にて解凍させつつ、ディスク装置9にインストールする。その後、当該処理を終了する。
【0131】
次に、ステップS0907にて他のパソコンシステムへのインストールを選択した後に、当該他のパソコンシステムにおいて当該処理を実行した場合の制御について説明する。この場合、ステップS0913において、他のパソコンシステムへのインストールが、ユーザによって選択される。その場合には、処理はステップS0914に進む。
【0132】
このステップS0914では、当該パソコンが最初にインストールされていたパソコンシステムにおいてステップS0906が実行されたことによって出力されたアンインストールキーを入力する。これに応じてユーザがアンインストールキーを入力した場合には、続くステップS0915において、第2のインストールキー出力のサブルーチン(図22)を実行する。図22のサブルーチンの具体的内容は、第3実施例におけるのと同じであるので、その説明を省略する。
【0133】
第二のアンインストールキー出力サブルーチンから処理が戻ると、続いて処理がステップS0908に進む。以下、同一パソコンシステム2における再インストールの場合と同様の処理が行われる。
【0134】
以上の処理を実行した結果、同一のユーザが同一ソフトウェアを複数回インストールした場合における解凍キー,許諾予備キー又はアンインストールキー,及び許諾キーの関係は、表3に示すようになる。この表3は、12時34分56秒に番号50のソフトウェアを最初にインストールした場合における例を示すものである。
【0135】
【表3】
Figure 0003647907
図31は、センタ15において実行される許諾キーの計算及び課金のための処理である。この図31の処理を実行する前提として、センタは表4に示すようなユーザ情報をデータ記憶部18に格納しているとする。即ち、各ソフトウェアの許諾キーを購入したユーザ毎に、その口座番号,当該ソフトウェアのインストール回数,及び当該ソフトウェアを最初にインストールした際の許諾予備キーを格納している。
【0136】
【表4】
Figure 0003647907
図31において最初のステップS1001では、許諾予備キー(又はアンインストールキー)の入力を待つ。即ち、ユーザが電話等により許諾予備キー(又はアンインストールキー)を通知してきたり、モデムを用いた通信によってオンラインにて許諾予備キー(又はアンインストールキー)を送信して来るのを待つ。
【0137】
次のステップS1002では、解凍キーと許諾予備キー(又はアンインストールキー)とから許諾キーを計算する。即ち、センタ15は、解凍キーと許諾予備キー(又はアンインストールキー)の各桁の差分(10の補数)から、許諾キーを生成する(第一の演算に相当)。
【0138】
次のステップS1003では、当該ソフトウェアに関し当該ユーザのユーザデータが登録されているかどうかをチェックする。チェックの結果、登録されていない場合には、初めてのインストールであると判断して、ステップS1004において、課金を行う。即ち、当該ユーザの銀行口座又はクレジットカード会社から許諾キーの販売料金(当該ソフトウェアの使用権設定料金)を引き落とす手続きを行う。引き落としの手続きが完了すると、ユーザデータ(許諾キー及び許諾予備キーを含む)をデータ登録部18に登録し(ステップS1010)、この許諾キーを出力する(ステップS1011)。
【0139】
ステップS1003にて登録されていると判定された場合には、ステップS1005において、ステップS1001にて入力した許諾予備キー(又はアンインストールキー)とデータ登録部18に登録されているインストール回数とから、初回の許諾予備キーを算出する。即ち、ステップS1001にて入力された許諾キー又はアンインストールキー(この時点では、入力されたのがどちらのキーであるかは判別されていない。)に対して、図33に示したアンインストールキーの算出演算を逆に実行し、この算出結果と解凍キーとの差分を算出する。データ登録部18に登録されているインストール回数が2以上である場合は、差分の算出結果に対して、上記演算を繰り返す。このようなアンインストールキーの逆算及び解凍キーとの差分算出を、データ登録部18に登録されているインストール回数だけ、繰り返すのである。
【0140】
次に、ステップS1006において、ステップS1005の算出結果(上位12桁)がデータ登録部18に登録されている初回の許諾予備キー(上位12桁)と一致するかをチェックする。そのチェックの結果、両者が一致する場合には、同一パソコンシステム2における再インストールであると判断することができる。従って、無償で許諾キーを発行すべく、課金(ステップS1004)をすることなく、データ登録部18に登録されているインストール回数を1加算して(ステップS1010)、ステップS1002にて算出した許諾キーをそのまま出力する(ステップS1011)。
【0141】
これに対して、ステップS1006にて両者が一致していないと判定した場合には、ステップS1007において、データ登録部18に登録されているインストール回数に、1を加算する。
【0142】
続くステップS1008では、ステップS1001にて入力した許諾予備キー(又はアンインストールキー)とステップS1007にて算出した数値とから、初回の許諾予備キーを算出する。この算出を行うための具体的演算内容は、ステップS1005における演算と同じである。但し、その繰り返し回数は、ステップS1007に算出した数値に従う。
【0143】
次に、ステップS1009において、ステップS1008の算出結果(上位12桁)がデータ登録部18に登録されている初回の許諾予備キー(上位12桁)と一致するかをチェックする。これは、ステップS1001にて入力された許諾予備キー又はアンインストールキーが、ステップS0915にて生成された第二のアンインストールキーであるか否かのチェックである。
そのチェックの結果、両者が一致する場合には、第二のアンインストールキーが入力されたのであると判断することができる。この場合は、無償で許諾キーを発行すべきであるので、課金(ステップS1004)をすることなく、データ登録部18に登録されているインストール回数に2を加算して(ステップS1010)、ステップS1002にて算出した許諾キーをそのまま出力する(ステップS1011)。
【0144】
これに対してステップS1009にて両者が一致していないという場合は、既にインストールがなされているがアンインストールがなされていないソフトウェアについての許諾キーの請求であると判断することができる。従って、許諾キーを出力(ステップS1011)することなく、そのままこの処理を終了する。
【0145】
このように、本第4実施例では、センタ15は、ユーザ名と現在のインストール回数とを管理する。従って、仮に第三者が只で許諾キーを入手しようとして正規ユーザになりすまして、例えば、3回目のアンインストールキーをセンタに提示したとしても、センタはユーザAには3回目の許諾キーは発行済であることが解る(ステップS1009)ので、容易に第三者の要求が不正なものであると見破ることができる。
【0146】
本第4実施例では、表4に示すように、センタ15は登録ユーザのインストール回数を管理すればよいので、第3実施例の表2のように過去の許諾予備キー・許諾キー・アンインストールキーの履歴を管理しなくてもよい。そのため、管理テーブルが簡素になる。
<実施例の作用>
以下の作用の説明例は、解凍キー,許諾予備キー又はアンインストールキー,及び許諾キーは、表3に示すように設定されていることを前提としている。
〔第1のケース〕
正規ユーザαがパソコンシステム2にCD−ROM1上のソフトウエアAをインストーラ18を使ってN+1回目の再インストールする例を説明する(図34参照)。
【0147】
ユーザαがインストーラ18を起動してインストール対象ソフトウエアとしてソフトウエアAを選択すると(ステップS0901)、インストーラ18は、パソコンシステム2上に既にソフトウエアAがインストールされているかをファイル検索等を行って確認する(ステップS0902)。
【0148】
確認の結果、ソフトウエアAがインストールされていれば、過去のインストール分のソフトウエアAのアンインストール(消去)を開始する(ステップS0903)。アンインストール終了後、ユーザαのパソコンシステム2にはソフトウエアAは存在しなくなる。
【0149】
インストーラ18は、アンインストール終了後、N回目のインストールの際に使用した許諾キーC(N回目)を元に、N回目のアンインストールキーEを出力する(図35,36参照)。これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
【0150】
ユーザαは、このアンインストールキーEをセンタ15に提示して、N+1回目の再インストールのための許諾キーGを請求する。センタ15は、アンインストール情報Eを解析してユーザαが確かに過去のN回目インストール分のソフトウエアAのアンインストールを実行したことを確認し、再インストール用の許諾キーG(N+1回目)をユーザαに無償提供する。
〔第2のケース〕
正規ユーザαがパソコンシステム2にCD−ROM1上のソフトウエアAをインストーラ18を使って初めてインストールする例を説明する(図37参照)。
【0151】
ユーザαがインストーラ18を起動してインストール対象ソフトウエアとしてソフトウエアAを選択する(ステップS0901)。インストーラ18は、パソコンシステム2上に過去にソフトウエアAがインストールされているかをファイル検索等を行って確認する(ステップS0902)。
ユーザαは過去にソフトウエアCをインストールしていないので、インストーラ18は、ユーザαの要望が「新規インストール」あるいは「他のパソコンへのインストール」なのかユーザに選択させる(ステップS0913)。ユーザが新規インストールを選択すると、初回の許諾予備キーBを出力して「新規に許諾キーを購入するように」というメッセージを画面表示して、ユーザαに許諾キーCの購入を促す。
【0152】
許諾予備キーBは、前述したようにソフトタイトル番号やインストール回数の情報を含み、残りはその都度発生させた乱数が入っている。こうすることにより、複数のユーザが初回のインストールを行う時の許諾予備キーは重複しなくなる。
【0153】
ユーザαは、センタ15に連絡し、ソフトウエアAをインストールするための許諾予備キーBを伝える。センタ15は、許諾予備キーBから許諾キーCを生成し(ステップS1002)、ユーザαを登録し(ステップS1010)、許諾キーGを渡す(ステップS1011)。以上により、ユーザαは許諾キーCを購入し、正規ユーザとなる。
【0154】
ユーザαは、許諾キーCをインストーラ18に入力して(ステップS0910)、インストール作業を完了する(ステップS0911,S0912)。
〔第3のケース〕
過去にパソコンシステム2aにCD−ROM1上のソフトウエアAをインストールしたユーザαが、新規に買い足したパソコンシステム2bにソフトウエアAをインストールする例を示す(図38参照)
ユーザαは、既にソフトウエアAをN回インストールしたパソコンシステム2aでインストーラDを起動してアンインストール対象ソフトウエアとしてソフトウエアAを選択する(ステップS0901)。インストーラ18は、ソフトウエアAのアンインストール終了後、前回のインストール時にパソコンシステム2aに記録した許諾キーC(N回目)を読み取り、これを元にN回目のアンインストール終了の証拠としてアンインストールキーE(N回目)を出力する(ステップS0906)。
【0155】
これは画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。
他のパソコンシステム2bへのインストールの場合は、パソコンシステム2aのインストーラ18を一旦終了し、新しいパソコンシステム2b上で再びインストーラ18を起動する。新しいパソコンシステム2b上には、ソフトウエアAはまだ存在しない(ステップS0902)。従って、ユーザαは、「他のパソコンへのインストール」を選択し(ステップS0913)、このアンインストールキーE(N回目)をインストーラ18に入力する。
【0156】
インストーラ18は、アンインストールキーEを元に、第二のアンインストールキーEE(N回目)を生成し出力する(ステップS0915)。
第二のアンインストールキーEEの生成方法はアンインストールキーEに対する仮想の許諾キーを生成し、この仮想の許諾キーに対するアンインストールキーとして第二のアンインストールキーEEを生成するようにしている。これはインストーラ18が行う。仮想の許諾キー生成のルールはセンタ15における承諾キー作成ルール(ステップS1002)に従い、第二のアンインストールキーの生成方法は図33のアンインストールキー生成のルールと同じものを使用した。
【0157】
第二のアンインストールキー16桁の仕様では下4桁に乱数をセットしているので、同一のアンインストールキーから、生成する度に異なる第二のアンインストールキーができることになる。
【0158】
第二のアンインストールキーEE(N回目)は画面表示でも良いし、フロッピーディスクなどへのファイル出力としても良い。ユーザαはこの第二のアンインストールキーEE(N回目)をセンタ15に提示して、パソコンシステム2bにソフトウエアAをインストールするための許諾キーG(N+1回目)を請求する。
【0159】
センタ15は、第二のアンインストールキーEE(N回目)を解析して、ユーザαが確かに過去のインストール分のソフトウエアAのアンインストールを実行したことを確認し、インストール用の許諾キーG(N+1回目)をユーザαに無償提供する(ステップS1011)。
【0160】
ユーザαがパソコンを乗り換える際の再インストール時に、第三者24がアンインストールキーE(M回目)を入手しても、インストール時には第二のアンインストールキーとして、乱数を含む新たなキーEEE(見掛け上M回目)が生成出力されるため、センタ15への連絡無しに、自分のアンインストールキーEEE(見掛け上M回目)に対応した許諾キーを入手することは不可能であり、不正インストールすることはできない。
【0161】
こうして、不正インストールを防止し、かつ正規のユーザは無償で再インストールや別のパソコンシステムへのインストールが可能となる。
また第1実施例の場合と同様に、第4実施例においても、許諾キーは解凍キーと許諾予備キーとの差分として計算されるので(ステップS1002)、許諾予備キーの内容によって許諾キーの内容が変わる。本実施例では、許諾予備キーは、現在時刻情報から作成されているので(ステップS0916)、許諾キーの内容も時刻毎によって異なる。そのため、許諾キー生成の基となった許諾予備キーと同時生成の許諾予備キーを用いた場合のみ、正しい解凍キーが作成される(ステップS0911)。従って、許諾キー生成の基となった許諾予備キーの生成時刻と異なった時刻に生成された許諾予備キーを用いても上述した理由により、正しい解凍キーは算出されない。これによって、ユーザが第3者に解凍キーを教えた場合における解凍キーの生成とそれによる不正インストールが防止できる。また、ユーザが一旦パソコンシステムにインストールした後において、基の許諾キーを用いて他のパソコンシステムに不正インストールすることが防止できる。
【0162】
【発明の効果】
以上説明したように、本発明によれば、 CD−ROMに暗号化された状態で格納されているソフトウェアの不正利用を有効に防止することができる。
【0163】
また、過去のインストールについての情報を格納する格納手段を備えれば、CD−ROMに暗号化された状態で格納されているソフトウェアの正当な解凍用キー再発行要求と不正な解凍用キー発行要求とを識別し、正当な解凍用キー再発行要求に対してのみ解凍用キーの再発行を行うことができる。
【図面の簡単な説明】
【図1】本発明の原理図
【図2】本発明の第1実施例によるソフトウェア解凍装置の概略図
【図3】図2の装置における処理手順の概略を示すフローチャート
【図4】本発明の第1実施例によるソフトウェア解凍装置を構成するパソコンシステムの構成ブロック図
【図5】本発明の第1実施例によるソフトウェア解凍装置を構成するセンタの構成ブロック図
【図6】図4のパソコンシステムにおいて実行される処理を示すフローチャート
【図7】図5のセンタにおいて実行される処理を示すフローチャート
【図8】本発明の第1実施例において用いられる解凍キーの例を示す図
【図9】本発明の第1実施例において用いられる許諾予備キーの構成を示す図
【図10】本発明の第1実施例において用いられる許諾予備キーの例を示す図
【図11】本発明の第1実施例において用いられる許諾キーの例を示す図
【図12】本発明の第1実施例において第三者のパソコンシステムにおいて生成された許諾予備キーの例を示す図
【図13】図11の許諾キーと図12の許諾予備キーとから算出された解凍キーを示す図
【図14】本発明の第1実施例の作用を示す説明図
【図15】本発明の第2実施例によるソフトウェア解凍装置の概略図
【図16】図15の装置における処理手順の概略を示すフローチャート
【図17】本発明の第3実施例によるパソコンシステムにおいて実行される処理を示すフローチャート
【図18】本発明の第3実施例によるセンタにおいて実行される処理を示すフローチャート
【図19】本発明の第3実施例において用いられる許諾予備キーの上14桁の構成を示す図
【図20】本発明の第3実施例において用いられる許諾予備キーの下6桁の構成を示す図
【図21】図17のステップS0505において実行されるアンインストールキー出力のサブルーチンの内容を示すフローチャート
【図22】図18のステップS0514において実行される第2のアンインストールキー出力のサブルーチンの内容を示すフローチャート
【図23】本発明の第3実施例の作用〔第1のケース〕を示す説明図
【図24】第1のケースにおけるアンインストール時の機能を示す機能ブロック図
【図25】第1のケースにおけるアンインストールキー出力時の機能を示す機能ブロック図
【図26】第1のケースにおけるアンインストールキー演算時の機能を示す機能ブロック図
【図27】第1のケースにおけるアンインストールキー表示出力時の機能を示す機能ブロック図
【図28】本発明の第3実施例の作用〔第2のケース〕を示す説明図
【図29】本発明の第3実施例の作用〔第3のケース〕を示す説明図
【図30】本発明の第4実施例によるパソコンシステムにおいて実行される処理を示すフローチャート
【図31】本発明の第4実施例によるセンタにおいて実行される処理を示すフローチャート
【図32】本発明の第4実施例において用いられる許諾予備キーの構成を示す図
【図33】図30のステップS0906において実行されるN回目のアンインストールキー出力のサブルーチンの内容を示すフローチャート
【図34】本発明の第4実施例の作用〔第1のケース〕を示す説明図
【図35】第1のケースにおけるアンインストールキー出力時の機能を示す機能ブロック図
【図36】第1のケースにおけるアンインストールキー生成時の機能を示す機能ブロック図
【図37】本発明の第3実施例の作用〔第2のケース〕を示す説明図
【図38】本発明の第3実施例の作用〔第3のケース〕を示す説明図
【図39】従来例を示す図
【符号の簡単な説明】
1 CD−ROM
2 パソコンシステム
5 制御CPU
7 DES
8 インストーラ
9 ディスク装置
15 センタ
17 制御CPU
18 データ記憶部
19 承諾キー生成部
20 課金部 3

Claims (8)

  1. 暗号化されたソフトウェアを解凍キーを用いて解凍する解凍装置とこのソフトウェアの解凍を管理する管理装置とからなる暗号化ソフトウェアの解凍システムであって、
    前記解凍装置は、
    時刻情報に基づいて第1のキーを生成する第1キー生成手段と、
    前記解凍キーを用いて前記暗号化されたソフトウェアを解凍する解凍手段と、
    前記解凍されたソフトウェアが削除された場合に、前記管理装置によって生成された第2のキーに基づいて第3のキーを生成する第3キー生成手段と、
    前記第1のキー又は前記第3のキーと、前記管理装置によって生成された第2のキーとから前記解凍キーを生成する解凍キー生成手段と、
    を備え、
    前記管理装置は、
    前記解凍キーと、前記解凍装置によって生成された前記第1のキーまたは前記第3のキーとに基づいて第2のキーを生成する第2キー生成手段と、
    前記解凍装置に提供するために出力された前記第2のキーを記憶する第2キー記憶手段を備え、
    前記第2キー生成手段は、第2のキーを生成した際に、新たに生成された第2のキーに対応するキーが、未だ前記第2キー記憶手段に記憶されていない場合に、当該新たに生成された第2のキーを前記解凍装置に提供するために出力するとともに、前記第2キー記憶手段に記憶し、新たに生成された第2のキーに対応するキーが、既に前記第2キー記憶手段に記憶されている場合には、当該新たに生成された第2のキーの出力及び記憶を行わない、
    暗号化ソフトウェアの解凍システム。
  2. 前記管理装置は、前記第3のキーから、前記第3キー生成手段によるキー生成において基となった第2のキーを取得する第3キー逆算手段と、
    前記第2キー生成手段が前記第2のキーを出力する毎に、前記ソフトウェアの料金の課金を行う課金手段をさらに備え、
    前記課金手段は、前記第2キー生成手段によって新たに生成された第2のキーに対応するキーが、前記第2キー記憶手段に記憶されておらず、かつ、前記第3キー逆算手段によ
    り取得された第2のキーに対応するキーが前記第2キー記憶手段に記憶されている場合には、前記ソフトウェアの料金の課金を行わない、
    請求項1記載の暗号化ソフトウェアの解凍システム。
  3. 前記解凍装置は、補助記憶装置に接続されるとともに、この補助記憶装置に前記解凍手段により解凍されたソフトウェアをインストールするインストール手段を更に備えていることを特徴とする請求項1記載の暗号化ソフトウェアの解凍システム。
  4. 前記解凍装置は、前記補助記憶手段にインストールされている前記ソフトウェアを削除するアンインストール手段を更に備える請求項記載の暗号化ソフトウェアの解凍システム。
  5. 前記解凍装置の第3キー生成手段は、前記アンインストール手段が前記ソフトウェアを前記補助記憶手段から削除した時に前記第3のキーを生成する請求項記載の暗号化ソフトウェアの解凍システム。
  6. 前記解凍装置の第3キー生成手段は、前記ソフトウェアのインストール回数を含めた第3のキーを生成し、
    前記管理装置は、
    前記第2キー生成手段によって前記第2のキー生成された回数を記憶する記憶手段をさらに備え
    前記第2キー生成手段が、前記第3のキーに含まれる前記インストール回数と、前記記憶手段に記憶される前記回数とに応じて、前記第2のキーの生成を制御する、
    請求項記載の暗号化ソフトウェアの解凍システム。
  7. 前記第3のキーは、前記補助記憶手段から前記ソフトウェアを削除した回数についての情報を含んでいることを特徴とする請求項記載の暗号化ソフトウェアの解凍システム。
  8. 暗号化されたソフトウェアを解凍キーを用いて解凍する解凍装置とこのソフトウェアの解凍を管理する管理装置とからなる暗号化ソフトウェアの解凍方法であって、
    前記解凍装置が、
    時刻情報に基づいて第1のキーを生成するステップと、
    前記解凍キーを用いて前記暗号化されたソフトウェアを解凍するステップと、
    前記解凍されたソフトウェアが削除された場合に、前記管理装置によって生成された第2のキーに基づいて第3のキーを生成するステップと、
    前記第1のキー又は前記第3のキーと、前記管理装置によって生成された第2のキーとから前記解凍キーを生成するステップと、
    を備え、
    前記管理装置が、
    前記解凍キーと、前記解凍装置によって生成された前記第1のキーまたは前記第3のキーとに基づいて第2のキーを生成した際に、新たに生成された第2のキーに対応するキーが、未だ第2キー記憶手段に記憶されていない場合に、当該新たに生成された第2のキーを前記解凍装置に提供するために出力するとともに、前記第2キー記憶手段に記憶し、新たに生成された第2のキーに対応するキーが、既に前記第2キー記憶手段に記憶されている場合には、当該新たに生成された第2のキーの出力及び記憶を行わないステップ
    を備える暗号化ソフトウェアの解凍方法。
JP21645094A 1994-09-09 1994-09-09 暗号化ソフトウェアの解凍システム Expired - Lifetime JP3647907B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21645094A JP3647907B2 (ja) 1994-09-09 1994-09-09 暗号化ソフトウェアの解凍システム
US08/510,123 US5875247A (en) 1994-09-09 1995-08-01 System for decrypting encrypted software

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21645094A JP3647907B2 (ja) 1994-09-09 1994-09-09 暗号化ソフトウェアの解凍システム

Publications (2)

Publication Number Publication Date
JPH0884139A JPH0884139A (ja) 1996-03-26
JP3647907B2 true JP3647907B2 (ja) 2005-05-18

Family

ID=16688718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21645094A Expired - Lifetime JP3647907B2 (ja) 1994-09-09 1994-09-09 暗号化ソフトウェアの解凍システム

Country Status (2)

Country Link
US (1) US5875247A (ja)
JP (1) JP3647907B2 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US7770230B2 (en) * 2002-04-22 2010-08-03 Arvato Digital Services Canada, Inc. System for dynamically encrypting content for secure internet commerce and providing embedded fulfillment software
US7010697B2 (en) * 1996-06-28 2006-03-07 Protexis, Inc. System for dynamically encrypting information for secure internet commerce and providing embedded fulfillment software
JPH10214297A (ja) * 1996-11-28 1998-08-11 Fujitsu Ltd インターネットを利用した会員制サービスシステムおよび方法
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6301708B1 (en) * 1998-11-12 2001-10-09 Hewlett-Packard Company Software installation process using abstract data and program files
US6763370B1 (en) * 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US7017188B1 (en) * 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US20030195974A1 (en) 1998-12-04 2003-10-16 Ronning Joel A. Apparatus and method for scheduling of search for updates or downloads of a file
US7617124B1 (en) 1998-12-04 2009-11-10 Digital River, Inc. Apparatus and method for secure downloading of files
US7058597B1 (en) 1998-12-04 2006-06-06 Digital River, Inc. Apparatus and method for adaptive fraud screening for electronic commerce transactions
US7143067B1 (en) * 1999-02-09 2006-11-28 Lenovo (Singapore) Pte. Ltd. System and method for installing personal computer software
WO2000057595A1 (en) * 1999-03-22 2000-09-28 Kent Ridge Digital Labs Method and apparatus for encrypting and decrypting data
JP3444227B2 (ja) 1999-04-09 2003-09-08 日本電気株式会社 ソフトウェアの不正使用防止方法
US7370071B2 (en) 2000-03-17 2008-05-06 Microsoft Corporation Method for serving third party software applications from servers to client computers
US7730169B1 (en) 1999-04-12 2010-06-01 Softricity, Inc. Business method and system for serving third party software applications
US7360252B1 (en) 1999-04-30 2008-04-15 Macrovision Corporation Method and apparatus for secure distribution of software
US6966002B1 (en) 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US6889376B1 (en) * 1999-05-12 2005-05-03 Treetop Ventures, Llc Method for migrating from one computer to another
US8099758B2 (en) * 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US20050251686A1 (en) * 1999-06-09 2005-11-10 Andres Torrubia-Saez Methods and apparatus for secure distribution of software
US20070271191A1 (en) * 2000-03-09 2007-11-22 Andres Torrubia-Saez Method and apparatus for secure distribution of software
US20060053284A1 (en) * 2000-05-09 2006-03-09 Microsoft Corporation Restricted software and hardware usage on a computer
US6754823B1 (en) * 2000-10-24 2004-06-22 Kurzweil Cyberart Technologies Technique for distributing software
JP2002133144A (ja) * 2000-10-25 2002-05-10 Nec Corp 大容量データ販売/仲介/購入方法、システム、サーバ、端末、およびこのプログラムを記録した記録媒体
US20020087966A1 (en) * 2000-11-30 2002-07-04 Morris Wiginton Methods and apparatuses for building installation software
GB0208858D0 (en) * 2002-04-18 2002-05-29 Hewlett Packard Co Method and apparatus for encrypting/decrypting data
US20040025033A1 (en) * 2002-08-02 2004-02-05 Todd Luke B. System and method for preventing unauthorized installation, use and reproduction of software
EP1574928A4 (en) * 2002-12-12 2007-11-21 Fujitsu Ltd PROGRAM MANAGEMENT CONTROL DEVICE, OS, CLIENT DEVICE, SERVER; PROGRAMMING CONTROL SYSTEM, PROGRAMMING CONTROL METHOD AND PROGRAMMING CONTROL PROGRAM
US7624284B2 (en) * 2003-05-06 2009-11-24 Infoprint Solutions Company Llc Secure print control and rights management system
US7697690B2 (en) * 2003-07-21 2010-04-13 Hewlett-Packard Development Company, L.P. Windowed backward key rotation
US20080114685A1 (en) * 2006-11-15 2008-05-15 Keen Hun Leong System and method for preventing unauthorized installation of a software program
JP2009053901A (ja) * 2007-08-27 2009-03-12 Seiko Epson Corp プリンタ
JP5372843B2 (ja) * 2010-06-18 2013-12-18 武史 藤田 コンテンツ利用装置及びプログラム
US9633210B2 (en) 2013-09-13 2017-04-25 Microsoft Technology Licensing, Llc Keying infrastructure
US10097513B2 (en) 2014-09-14 2018-10-09 Microsoft Technology Licensing, Llc Trusted execution environment extensible computing device interface
US11194562B2 (en) * 2017-05-19 2021-12-07 Blackberry Limited Method and system for hardware identification and software update control
CN110245465A (zh) * 2019-06-17 2019-09-17 珠海格力智能装备有限公司 一种软件加密、解密方法

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4247106A (en) * 1978-04-12 1981-01-27 Jerrold Electronics Corporation System arrangement for distribution and use of video games
FR2471000B1 (fr) * 1979-11-30 1985-06-28 Dassault Electronique Procede et dispositif de controle du nombre de tentatives d'acces a une memoire electronique, notamment celle d'un circuit integre d'un objet comme une carte de credit ou une carte d'achat
JPS57127249A (en) * 1980-12-29 1982-08-07 Fujitsu Ltd Security controlling system
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
US4649510A (en) * 1982-04-30 1987-03-10 Schmidt Walter E Methods and apparatus for the protection and control of computer programs
US4484217A (en) * 1982-05-11 1984-11-20 Telease, Inc. Method and system for remote reporting, particularly for pay television billing
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4672554A (en) * 1983-05-19 1987-06-09 Brother Kogyo Kabushiki Kaisha Software vending instrument
US4674055A (en) * 1983-06-09 1987-06-16 Brother Kogyo Kabushiki Kaisha Software vending system
US4658093A (en) * 1983-07-11 1987-04-14 Hellman Martin E Software distribution system
US4590557A (en) * 1983-09-12 1986-05-20 Pitney Bowes Inc. Method and apparatus for controlling software configurations in data processing systems
US5103392A (en) * 1983-10-05 1992-04-07 Fujitsu Limited System for storing history of use of programs including user credit data and having access by the proprietor
US4740890A (en) * 1983-12-22 1988-04-26 Software Concepts, Inc. Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media
US4646234A (en) * 1984-02-29 1987-02-24 Brigham Young University Anti-piracy system using separate storage and alternate execution of selected proprietary and public portions of computer programs
JPS60207957A (ja) * 1984-03-31 1985-10-19 Toshiba Corp デ−タ保護方式
JPS60245097A (ja) * 1984-05-18 1985-12-04 ブラザー工業株式会社 ソフトウエア販売装置
US4780905A (en) * 1984-11-26 1988-10-25 Nightwatch, Inc. Computer data encryption system
JPH063631B2 (ja) * 1985-11-12 1994-01-12 ブラザー工業株式会社 情報出力装置の管理装置
US4864516A (en) * 1986-03-10 1989-09-05 International Business Machines Corporation Method for implementing an on-line presentation in an information processing system
US4816653A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Security file system for a portable data carrier
US4816654A (en) * 1986-05-16 1989-03-28 American Telephone And Telegraph Company Improved security system for a portable data carrier
US5014234A (en) * 1986-08-25 1991-05-07 Ncr Corporation System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software
US4817140A (en) * 1986-11-05 1989-03-28 International Business Machines Corp. Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US4949257A (en) * 1987-04-28 1990-08-14 Zvi Orbach Automated merchandising system for computer software
US4999806A (en) * 1987-09-04 1991-03-12 Fred Chernow Software distribution system
JPH0752388B2 (ja) * 1988-08-03 1995-06-05 三菱電機株式会社 Icメモリカード
US5008814A (en) * 1988-08-15 1991-04-16 Network Equipment Technologies, Inc. Method and apparatus for updating system software for a plurality of data processing units in a communication network
US5016009A (en) * 1989-01-13 1991-05-14 Stac, Inc. Data compression apparatus and method
US5199066A (en) * 1989-04-18 1993-03-30 Special Effects Software, Inc. Method and apparatus for protecting software
US5006849A (en) * 1989-07-26 1991-04-09 Astro, Inc. Apparatus and method for effecting data compression
US5166886A (en) * 1989-07-31 1992-11-24 Molnar Charles E System to demonstrate and sell computer programs
US5181107A (en) * 1989-10-19 1993-01-19 Interactive Television Systems, Inc. Telephone access information service distribution system
US5051822A (en) * 1989-10-19 1991-09-24 Interactive Television Systems, Inc. Telephone access video game distribution center
US5151938A (en) * 1990-03-13 1992-09-29 General Instrument Corporation Security enhancement in a data processor through use of dynamic parameter authentication
JPH03276345A (ja) * 1990-03-27 1991-12-06 Toshiba Corp マイクロコントローラ
US5267171A (en) * 1990-03-29 1993-11-30 Brother Kogyo Kabushiki Kaisha Computer software vending machine
JPH0430218A (ja) * 1990-05-25 1992-02-03 Hitachi Ltd 差分インストール方式
JPH0470029A (ja) * 1990-07-09 1992-03-05 Hajime Kitagawa 暗号化アダプタ
JP2869165B2 (ja) * 1990-08-06 1999-03-10 株式会社エヌ・ティ・ティ・データ Icカードを使用した機密データ転送方法
NL9002035A (nl) * 1990-09-17 1992-04-16 Philips Nv Microprocessor-bestuurd apparaat met uitschakelbare beveiliging tegen onbevoegd gebruik.
US5103476A (en) * 1990-11-07 1992-04-07 Waite David P Secure system for activating personal computer software at remote locations
US5222134A (en) * 1990-11-07 1993-06-22 Tau Systems Corporation Secure system for activating personal computer software at remote locations
JP3124074B2 (ja) * 1991-09-30 2001-01-15 富士通株式会社 情報自動販売機
JP2575988B2 (ja) * 1992-03-18 1997-01-29 富士通株式会社 光ディスクのコピー防止方法、光ディスク及び光ディスク装置
JP2856595B2 (ja) * 1992-04-24 1999-02-10 富士通株式会社 ソフトウェア記憶媒体、ソフトウェア読取装置及びソフトウェア管理システム
JP2856594B2 (ja) * 1992-04-24 1999-02-10 富士通株式会社 ソフトウェア記憶媒体、ソフトウェア読取装置及びソフトウェア管理システム
US5268962A (en) * 1992-07-21 1993-12-07 Digital Equipment Corporation Computer network with modified host-to-host encryption keys

Also Published As

Publication number Publication date
JPH0884139A (ja) 1996-03-26
US5875247A (en) 1999-02-23

Similar Documents

Publication Publication Date Title
JP3647907B2 (ja) 暗号化ソフトウェアの解凍システム
US5677953A (en) System and method for access control for portable data storage media
US8036388B2 (en) Information sending system, information sending device, information receiving device, information distribution system, information receiving system, information sending method, information receiving method, information distribution method, apparatus, sending method of information receiving device, playback method of apparatus, method of using contents and program storing medium
US7209901B2 (en) Method for selling, protecting, and redistributing digital goods
JP3688356B2 (ja) ライセンシー通知システム
US5509070A (en) Method for encouraging purchase of executable and non-executable software
US5703951A (en) System and method for access data control
US7065508B2 (en) System and method for operating a licensing server
JP4639676B2 (ja) レンタルサーバシステム
US5259029A (en) Decoding device for computer software protection
EP0538464A1 (en) License management system
KR20020043178A (ko) 게임 장치의 관리 시스템, 게임 장치, 제어 방법,소프트웨어 기록 매체
JP2004038247A (ja) ライセンス管理方法、ライセンス管理システム、ライセンス管理プログラム
JP2004295719A (ja) デジタルコンテンツ販売におけるライセンスおよび特典管理方法
JP4765459B2 (ja) ライセンス認証装置
US8332328B2 (en) System and method for redistributing and licensing access to protected information among a plurality of devices
JP2002324170A (ja) コンテンツ配布システムおよびその方法
JPH08180108A (ja) ソフトウェア使用許諾方法および装置
JP2005301927A (ja) アプリケーションソフトの利用管理システム
JP2001125961A (ja) 情報ダウンロード用メモリ装置
KR100363831B1 (ko) 인터넷을 이용한 상용소프트웨어 대여시스템 및 대여방법
JPH08335170A (ja) プログラム使用料課金システム
JPH08212198A (ja) フォント処理装置およびフォント処理方法
JP7336011B1 (ja) 情報処理装置、情報処理システム、情報処理プログラム
JP2000200229A (ja) 有償情報配布システムおよび有償情報配布方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041026

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090218

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090218

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100218

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110218

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110218

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120218

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130218

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130218

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140218

Year of fee payment: 9

EXPY Cancellation because of completion of term