JP3630451B2 - ソフトウェア利用制御装置 - Google Patents
ソフトウェア利用制御装置 Download PDFInfo
- Publication number
- JP3630451B2 JP3630451B2 JP22543594A JP22543594A JP3630451B2 JP 3630451 B2 JP3630451 B2 JP 3630451B2 JP 22543594 A JP22543594 A JP 22543594A JP 22543594 A JP22543594 A JP 22543594A JP 3630451 B2 JP3630451 B2 JP 3630451B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- software
- authentication
- content
- usage
- 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 - Fee Related
Links
Images
Description
【産業上の利用分野】
この発明は、コンピュータの各種ソフトウェアの不正利用を防止するソフトウェア利用制御装置に関するものであり、特に、ソフトウェアの正規のユーザのみがそのソフトウェアを利用できると共に、適切な課金等の管理ができるようにしたソフトウェア利用制御装置に関する。
【0002】
【従来の技術】
コンピュータプログラムはデジタルデータとして記録されているため、製品版と真正に同一のものを、簡単な作業によって複写することができる。このことは、プログラム作成および流通を行なう者に確実な利潤を保証しない原因であり、プログラムの健全な流通をさまたげている。
プログラムを記録したフロッピーディスクなどに複写防止などの保護を施し、プログラム購入者以外がプログラムを入手することを防ぐという考えもある。しかし完全には複写を防止することはできない。
【0003】
これに対し、プログラムが複写されることは認め、プログラム購入者以外の不正利用やプログラムの改ざんを防ぐことによって知的財産権保護を行ない、ひいては確実で公正な料金徴収を可能にする方法が提案されている。
【0004】
たとえば特開平3−83132号公報には、プログラム本体すべてを暗号化してユーザに配付し、ユーザがそのプログラムを利用したい場合には暗号化されたプログラムを復号するためのユーザ個別の鍵を購入することによって、プログラムの不正利用を防止するソフトウェア保護制御方式が記載されている。
【0005】
また、特公平6−19707号公報には、あらかじめ購入しておいた利用度数を安全な場所に記録し、ソフトウェア起動時に利用度数を減じることによってソフトウェアの起動を制御する機構を設け、その機構による利用度数が残っていることを確認した後にソフトウェアを起動し、ソフトウェア権利者がソフトウェアの利用状況を把握できるようにしたソフトウェア管理方式が記載されている。
【0006】
【発明が解決しようとする課題】
しかし、特開平3−83132号公報において、プログラム本体を実行するためには、プログラム本体をすべて復号しなければならず、プログラムが大きい場合には復号に時間がかかるという問題点がある。
【0007】
また、上記した従来の方法は、プログラム本体の起動時にのみ利用制御を行うものであり、たとえばプログラムによって作成したファイルを保存する時にのみ課金するといったきめ細かな制御をすることができない。
また、従来は、プログラム本体の起動時に課金が開始されるため、ユーザは気軽に試行することができず、さらに誤ってプログラムを起動した場合にも課金されてしまうという問題点がある。
【0008】
この発明は、以上のような事情を考慮してなされたものであり、ソフトウェア本体自体は暗号化せず、ソフトウェアの正規利用であることを2つの認証コードを用いて確認することによって暗号化されたソフトウェア本体をすべて復号する必要はなく、ソフトウェアを起動させて利用することができるまでの時間を短縮化できるソフトウェア利用制御装置を提供することを目的とする。
【0009】
また、ユーザ固有のIDや認証に利用される鍵コードに依存しない認証部のソフトウェアを、供給するソフトウェア本体と共に1つの媒体に組み込むようにすることで、供給するソフトウェアの管理が容易となるソフトウェア利用制御装置を提供することを目的とする。
【0010】
さらに供給されたソフトウェア本体が複写されても認証に利用される鍵コードを所有していないユーザは利用することができないような不正利用の防止が可能なソフトウェア利用制御装置を提供することを目的とする。
【0011】
また、ソフトウェア起動時だけでなく、ソフトウェアの所定の機能が実行されたときに利用量の管理ができるようなソフトウェア利用制御装置を提供することを目的とする。
また、設定された試行回数だけソフトウェアの試行が可能なソフトウェア利用制御装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
図1に、この発明の第1の基本構成ブロック図を示す。
この発明は、ソフトウェアの利用を許可するための認証コードを生成する利用許可部2と、この利用許可部2からの認証コードを受けてソフトウェアの利用の可否を決定する利用制御部1とからなるソフトウェア利用制御装置において、前記利用制御部1が、ソフトウェア本体とそのソフトウェアごとに付与されているコンテンツIDとを格納したコンテンツ部8と、認証部3とを備え、前記認証部3が、乱数を生成する乱数生成部4と、前記コンテンツIDと前記乱数を変換して認証コードを生成するコード生成部5と、前記利用許可部2にコンテンツIDと乱数を転送するコード要求部6と、利用許可部2が生成した認証コードと前記コード生成部5が生成した認証コードとを比較しその比較結果をコンテンツ部8に送る比較部7とからなり、認証部はライブラリとして構成され、ソフトウェア本体とコンテンツ部と組み合わされて格納された供給媒体がソフトウェア利用制御装置に組み込まれて実行されることを特徴とするソフトウェア利用制御装置を提供するものである。
【0013】
図2に、この発明の第2の基本構成ブロック図を示す。
この発明は、ソフトウェアの利用を許可するための識別IDコードを入力する識別ID入力部9と、予め与えられた認証コードを記憶する認証コード記憶部10と、ソフトウェアの利用の可否を決定する利用制御部1とからなるソフトウェア利用制御装置において、前記利用制御部1が、ソフトウェア本体とそのソフトウェアごとに付与されているコンテンツIDとを格納したコンテンツ部8と、認証部3とを備え、前記認証部3が、前記コンテンツ部8から送られるコンテンツIDと前記識別ID入力部9から送られる識別IDとを変換して認証コードを生成するコード生成部5と、前記認証コード記憶部10に記憶された認証コードと前記コード生成部5が生成した認証コードとを比較しその比較結果をコンテンツ部に送る比較部7とからなり、認証部はライブラリとして構成され、ソフトウェア本体とコンテンツ部と組み合わされて格納された供給媒体がソフトウェア利用制御装置に組み込まれて実行されることを特徴とするソフトウェア利用制御装置を提供するものである。
【0014】
図3に、この発明の第3の基本構成ブロック図を示す。
ここで、前記コード生成部5が、前記コンテンツ部8から送られるコンテンツIDを、予め設定された鍵コードを用いて変換し認証鍵を生成する鍵生成部11と、前記乱数生成部4が生成した乱数を前記認証鍵を用いて暗号化し認証コードを生成する暗号化部12とから構成されることが好ましい。
【0015】
図4に、この発明の第4の基本構成ブロック図を示す。
ここで、前記コード生成部5が、前記コンテンツ部8から送られるコンテンツIDを、予め設定された鍵コードを用いて変換し認証鍵を生成する鍵生成部11と、前記識別ID入力部9から入力される識別IDを前記認証鍵を用いて暗号化し認証コードを生成する暗号化部12とから構成されることが好ましい。
【0016】
図5に、この発明の第5の基本構成ブロック図を示す。
ここで、前記コード生成部5が、前記識別ID入力部9から入力される識別IDを、予め設定された鍵コードを用いて変換し認証鍵を生成する鍵生成部11と、前記コンテンツ部8から送られるコンテンツIDを前記認証鍵を用いて暗号化し認証コードを生成する暗号化部12とから構成されることが好ましい。
【0017】
図6に、この発明の第6の基本構成ブロック図を示す。
ここで、コンテンツ部8に格納されたソフトウェア本体の利用量に関する情報を記憶・管理する利用量管理部14をさらに備え、前記利用制御部1が、前記比較部7から比較結果を受けて利用量情報の記録を前記利用量管理部14に要求する利用記録要求部13を備えることを特徴とするものである。
【0018】
図7に、この発明の第7の基本構成ブロック図を示す。
ここで、前記コンテンツ部8が、ソフトウェア本体の動作状況を監視するソフト動作監視部15を備え、前記利用記録要求部13が、前記比較部7から認証コードの一致を示す比較結果を受け、ソフト動作監視部15で監視されるソフトウェアの動作状況が、課金が必要と設定されている機能の動作となったことを検知した場合のみ、前記利用記録要求部13が前記利用量管理部14に利用量に関する情報を記憶させることを特徴とするものである。
また、前記利用記録要求部13が前記利用量管理部14から記憶が正常に終了したことを示す情報を受けとったときにのみ、前記利用制御部1がコンテンツ部8に格納されたソフトウェア本体の実行を継続させるようにしてもよい。
【0019】
図8に、この発明の第8の基本構成ブロック図を示す。
この発明は、前記コンテンツ部8が予め試用回数上限値を格納し、前記利用許可部2が試用認証部16と、試用回数記録部と、試用回数管理部18とをさらに備え、前記試用認証部16が、乱数を生成する乱数生成部4と、前記コンテンツIDと前記乱数を変換して試用認証コードを生成する試用コード生成部17とを備え、試用回数記録部19は、前記コード要求部6から送られる試用回数上限値をもとに試用回数を記憶し、前記コード要求部6からソフトウェア利用の認証を求めるための利用許可要求が利用許可部2に転送されるごとに試用回数管理部18が前記試用回数記録部19に記憶された試用回数を更新し、前記試用回数が前記試用回数上限値を越えていない場合に、試用認証部16が試用認証コードを生成し、試用回数管理部18が前記試用認証コードを前記比較部7に転送することを特徴とするものである。
【0020】
また、前記コンテンツ部8がコンテンツIDと1対1に対応しかつ利用者には秘密にされたコンテンツ認証IDを予め格納し、このコンテンツ認証IDを用いて前記認証部3及び前記利用許可部2が認証コードを生成するようにしてもよい。
【0021】
この発明の第1,3及び6の基本構成ブロック図において、ソフトウェア利用制御装置は、利用制御部1と利用許可部2とで構成される。
ここで利用制御部1は、たとえばユーザが所有しているパーソナルコンピュータであり、CPU,ROM,RAM,CRT、キーボード等の入力装置、通信制御装置、及び外部記憶装置などで構成されることが好ましい。
【0022】
利用許可部2は、前記パーソナルコンピュータに内蔵することも考えられるが、利用制御部1とは別筺体の装置であることが好ましく、CPU,ROM,RAM,及びI/Oコントローラ等のマイクロコンピュータとしての構成を備え、さらに利用許可のためのソフトウェアをROMに内蔵していることが好ましい。
【0023】
ここで、利用許可部2が別筺体の装置として供給される場合は、ソフトウェア管理センタや情報提供者(以下、ソフトウェア供給者と呼ぶ)がそのソフトウェアを利用するユーザに、予め提供しておくようにすることが好ましい。 利用制御部1と利用許可部2とは、通常SCSIやPCMCIA等の標準インターフェース仕様で接続される。
【0024】
また、利用制御部1の中のコンテンツ部8は、ユーザが利用しようとするソフトウェア本体とそのソフトウェア本体に付与された個別の番号であるコンテンツID、さらに制御に必要なデータが記憶されるものであり、フロッピーディスク、光磁気ディスク、ROM又は不揮発性RAM等が用いられる。
【0025】
認証部3は、認証コード生成及び比較等の機能を実現するためのソフトウェア及びハードウェアから構成され、ハードウェアとしてはCPU,ROM,RAM,タイマー、及びI/Oコントローラなどで構成されるいわゆるマイクロコンピュータを通常用いることが好ましい。
【0026】
また、上記機能を実現するソフトウェア、すなわち乱数生成部4、コード生成部5、コード要求部6、比較部7の機能を実現するソフトウェアは、コンテンツ部8と同様の媒体で供給されることが好ましい。
また、認証部3の機能を実現するソフトウェア(以下認証プログラムと呼ぶ)とコンテンツ部8はソフトウェア供給者から同一の媒体で供給されることが好ましく、たとえば、フロッピーディスク、光磁気ディスク等で供給され、またデータ通信によって供給してもよい。
【0027】
識別ID入力部9は、識別IDコードを入力するものであり、キーボード等のユーザがIDを実際に入力する装置であってもよいが、予めROM、ハードディスクまたはフロッピーディスク等に設定された固有のデータをCPUが読み取るようにしてもよい。
ここで識別IDコードは、コンテンツ部8に格納されたソフトウェアを動作させるハードウェア固有の機器IDや、通常ハードウェアのROMの中に格納されているCPU−IDや、接続されるハードディスクなどの外部機器のIDやソフトウェアを利用するユーザこどに個別に与えられるユーザIDやパスワードを用いることが好ましい。
【0028】
また、認証コード記憶部10は、フロッピーディスク、ICカード、ハードディスク等の外部記憶装置を用いることが好ましく、ここに記憶される認証コードはソフトウェア供給者から、事前に郵送又は通信等の手段によって、ユーザに与えられるものである。
【0029】
コード要求部6は、コンテンツ部8に格納されたコンテンツID、乱数生成部4で生成された乱数あるいは利用許可要求信号を利用許可部2へ転送するものである。
コード生成部5は、認証コードを生成するものであるが、鍵生成部11と暗号化部12とからなり、コンテンツID、識別ID、乱数等を用いて認証鍵を生成した後、暗号化によって認証コードを生成するものである。
【0030】
鍵生成部11は、認証部3のソフトウェアによって実現される一機能ブロックであるが、ソフトウェア供給者からユーザに送付されたソフトウェア本体に付与された個別の番号であるコンテンツIDや、識別ID入力部9から与えられる識別IDコードを基にして、そのソフトウェア本体に付随する鍵コードを生成するものである。
【0031】
暗号化部12も、認証部3のソフトウェアによって実現される一機能ブロックであり、通常用いられる暗号化処理により、ソフトウェア本体の認証コードを生成するものである。
ここで、暗号化処理とは、たとえば鍵生成部11で生成された鍵コードを用いて乱数生成部4で発生された乱数を変換し、所望の認証コードとして暗号化する処理である。
【0032】
比較部7も、認証部3のソフトウェアによって実現される一機能ブロックであり、たとえば、コード生成部5で生成された認証コードの値と、利用許可部2で生成された認証コード、あるいは認証コード記憶部10に記憶された認証コードの値を比較し、その比較結果をコンテンツ部8へ転送するものである。
【0033】
利用記録要求部13は、前記認証部3のソフトウェアによって実現される一機能ブロックであり、利用量管理部14に利用量に関する情報を記録することを要求すること、コンテンツ部8にソフトウェアの起動の可否を指示すること等の処理をするものである。
利用量管理部14は、利用許可部2と同じ別筐体の装置に備えられることが好ましい。
【0034】
ソフト動作監視部15は、コンテンツ部8に属する一機能ブロックであるが、利用記録要求部13にソフトウェアが所定の動作をしたことを通知するものである。
試用認証部16は、利用許可部2において、ソフトウェアの試用をする場合に実行される一機能ブロックであり、認証部3と同様の動作を行うものである。
【0035】
また、試用コード生成部17は、コード生成部5と同様の動作を行うものであり、ソフトウェアの試用をする場合の試用認証コードを生成するものである。
試用回数記録部19は、利用許可部2の中にあって、たとえば、不揮発性RAMが用いられる。
試用回数管理部18は、利用許可部2における一機能ブロックであり、試用回数記録部19に記録される試用回数の更新や、試用回数の残りに応じて試用認証コードを比較部7へ転送すること等を行うものである。
【0036】
【作用】
図1において、利用制御部1におけるコンテンツ部8に格納されているコンテンツIDが認証部3に与えられ、認証部3におけるコード生成部5は、乱数生成部4が生成した乱数と前記コンテンツIDとを変換して認証コードAを生成する。 また前記コンテンツIDと乱数は、コード要求部6によって利用許可部2へ転送され、利用許可部2がこのコンテンツIDと乱数を用いて認証コードBを生成する。
その後、認証部3の比較部7が、前記認証コードAとBとを比較してその比較結果をコンテンツ部へ送る。
【0037】
この発明によれば、利用制御部1と利用許可部2を備え、2つの認証コードを生成して比較することによってソフトウェア利用制御をしているので、ソフトウェア本体をすべて暗号化したときに比べて、ソフトウェアの実際の利用開始をするまでの時間を短縮化することができる。
【0038】
また、コンテンツ部8及び認証部3のソフトウェア自体はユーザ固有のIDには依存することがないため、共通化することができ、供給するソフトウェアの管理が容易である。
さらに、ソフトウェアの供給媒体にはユーザ固有のIDは直接含まれておらず、利用制御部1と利用許可部2において生成される2つの認証コードを比較してソフトウェア利用制御を行うので、ソフトウェアの供給媒体が不正に複写されても利用許可が与えられず不正利用が防止できる。
【0039】
また、図3において、前記コード生成部5において、鍵生成部11が前記コンテンツIDを予め設定された鍵コードを用いて変換し、認証鍵を生成する。
次に、暗号化部12が、この認証鍵を用いて前記乱数を暗号化して認証コードを生成する。
このように、暗号化された認証コードを用いることによって、さらにソフトウェア利用制御の安全性を高めることができる。
【0040】
また、図2に示すように、利用許可部を持たないソフトウェア利用制御装置の場合、コード生成部5は、識別ID入力部から送られる識別IDを変換して認証コードを生成する。
また予め認証コード記憶部10に認証コードを記憶しておく。
比較部7は、生成された認証コードと記憶された認証コードとを比較して、その比較結果をコンテンツ部8へ送る。
【0041】
このように、この発明によれば、利用許可部2を備えていないソフトウェア利用制御装置においても、ソフトウェアの実際の利用開始までの時間の短縮化、供給するソフトウェアの管理の容易化及びより効果的な不正利用の防止ができる。
【0042】
さらに、図4、5に示すように、利用許可部2を備えていないソフトウェア利用制御装置のコード生成部5において、前記したような認証鍵を生成する鍵生成部11と暗号化された認証コードを生成する暗号化部12を備えることによって、よりソフトウェア利用制御の安全性を高めることができる。
【0043】
また、図6において、利用制御部1における利用記録要求部13が前記比較部7からの比較結果を受けて利用量情報を記録することを利用量管理部14に要求し、この要求に従って利用量管理部14が利用量に関する情報を記録する。
さらに、図7において、コンテンツ部8のソフト動作監視部15がソフトウェア本体の動作状況を監視し、利用記録要求部13が所定の条件を満足した動作状況が生じたことを検知した場合に、利用量管理部14が利用量に関する情報を記憶するようにする。
【0044】
このように、この発明によれば、利用量に関する情報を記録するようにしているので、前記したような不正利用の防止と共に、正規利用者の利用可又は不可の柔軟な制御が可能である。
【0045】
また、図8において、前記コンテンツ部8に予め試用回数上限値を格納しておく。
そして、コード要求部6が試用回数上限値を利用許可部2の試用回数記録部19に送り、試用回数を試用回数記録部19に記録させる。
次に、コード要求部6から利用許可要求が利用許可部2に転送されるごとに、試用回数管理部18が試用回数を更新する。
この後、この試用回数が試用回数上限値を越えていない場合に、試用認証部16がコンテンツIDと乱数を変換して試用認証コードを生成し、試用回数管理部19が前記試用認証コードを比較部7に転送する。
比較部7においては、認証部3において生成された認証コードと前記試用認証コードを比較して、一致するかどうか判断する。
【0046】
以上のように、この発明によれば、試用回数記憶部19に試用回数を記憶し、この試用回数がコンテンツ部8に格納された試用回数上限を越えない場合にのみ利用を許可するように制御するので、正規の利用者はコンテンツ部8に格納されたソフトウェアを、すぐに試用回数上限の範囲内で利用することができる。
【0047】
また、コンテンツ部8が、コンテンツIDと、コンテンツIDと1対1に対応し、かつ利用者には秘密にされたコンテンツ認証IDを予め格納しておくことによって、より安全性の高いソフトウェア利用制御が可能である。
【0048】
【実施例】
以下、図に示す実施例に基づいてこの発明を詳述する。なお、この発明はこれによって限定されるものではない。
図9にこの発明におけるソフトウェアの利用制御を行うシステム(以下、超流通システムと呼ぶ)全体の構成図を示す。この超流通システムは、ソフトウェアの生産・販売をするソフトウェア供給者とソフトウェアを利用するユーザとから構成され、さらにソフトウェア供給者は、情報提供者と管理センタとから構成される。
【0049】
この超流通システムの特徴は、ライセンス情報を持たなければ利用できない仕組みを供給するソフトウェアの中に組み込んで広く配付し、利用を希望するユーザはライセンスを購入することによってはじめてソフトウェアの利用が可能になる点にある。
【0050】
すなわち、情報提供者はソフトウェアを管理センタに登録し、ユーザのソフトウェア利用に応じた利用料を管理センタから得る。
【0051】
管理センタは、登録されたソフトウェアに保護機構を組み込み、保護されたソフトウェア、すなわちコンテンツを広く配付する。また登録したユーザに対して、ユーザからのライセンス要求に応じたライセンスを発行し、ソフトウェア利用に対する料金の徴収分配を行う。
コンテンツには、ソフトウェア本体と、保護化のための認証プログラムが組み込まれる。
【0052】
ライセンスの発行を受けたユーザは、必要に応じて利用許可装置を管理センタから有償又は無償で貸与してもらい、ユーザ所有のハードウェアでコンテンツを利用する。
コンテンツの利用に際して、認証プログラムと利用許可装置との間でソフトウェアの利用許可をしてよいかどうかの認証処理が行われ、認証が成功した場合にのみ、ソフトウェアの利用が許可されることになる。
以上が超流通システムの全体構成であるが、この発明は、ユーザに配付されたコンテンツと利用許可装置、及びこれらを用いたソフトウェアの利用許可制御に関するものである。
【0053】
図10に、この発明を実現する一実施例としてのハードウェアの構成図を示す。
同図において、ソフトウェア利用制御装置は、ユーザ所有のハードウェア50、利用許可装置60及びコンテンツ71から構成される。
コンテンツ71には、ユーザが動作させようとするプログラム本体72に認証プログラム73が組み込まれて格納されている。
【0054】
ここでプログラム本体72とは、たとえばワードプロセッサ用ソウトウェア、図面作成用ソフトウェア、データベース用ソフトウェア、あるいはゲームソフトウェアなどを言う。
【0055】
認証プログラム73とは、プログラム本体72を動作させようとするユーザが正規のユーザであるかどうかを確認するためのソフトウェアであり、乱数発生、正規ユーザのみに与えられるソフトウェア認証鍵の生成、ソフトウェア認証鍵を用いて暗号化により利用許可を与えるための認証コードの生成等の処理を行うものである。
【0056】
また、認証プログラム73自体は、プログラム本体72ごとに与えられるコンテンツID、ユーザ所有のハードウェア等の機器ID(CPU−ID)、ユーザに与えられるユーザIDや、ソフトウェア認証鍵に依存しないソフトウェアである。
したがって、ユーザに配付されるコンテンツ71は、ユーザごとに異なる情報は書込まずに、共通化でき、量産が可能である。
【0057】
ユーザ所有のハードウェア50としては、パーソナルコンピュータ、ワークステーション、ゲーム専用機などが利用されるが、コンテンツ71に格納されたプログラム本体72を動作させることのできるコンピュータであればよい。
ユーザ所有のハードウェア50は、同図に示すように一般に、CPU51、ROM52、RAM53、ハードディスク54、CRT55、キーボード56、I/Oコントローラ57、FDD58及び通信回線コントローラ59から構成され、必要に応じて、外部機器が増設されたり、不要な機器が取りはずされる。
【0058】
同図において、コンテンツ71は、フロッピーディスクで供給され、このフロッピーディスクがFDD(フロッピーディスクドライブ)58に挿入される例を示しているが、コンテンツ71は他の媒体で供給してもよく、媒体の種類に応じて、適切な外部機器又はボードをユーザ所有のハードウェアに組込めばよい。
たとえば、コンテンツ71がCD−ROMで供給される場合はCD−ROMドライブ装置、ICカードで供給される場合はICカードリーダ、あるいは公衆回線を通して送信される場合は、モデム等の通信回線コントローラ59を備えればよい。
【0059】
利用許可装置60も、ユーザ所有のハードウェア50と同様にCPU61、ROM62、RAM63、I/Oコントローラ66及び通信回線コントローラ64等で構成される。
利用許可装置60は、ユーザ所有のハードウェアでコンテンツ71に格納されたプログラム本体72の起動を許可するための処理や、プログラム本体72の利用回数に応じた課金や利用の制限等の処理を行う装置(課金モジュール)であり、通常ソフトウェア供給者から、ユーザに有償又は無償で貸与されるものである。
【0060】
利用許可装置60のRAM63には、厳密な管理のもとで、ソフトウェア供給者から、ユーザごとに与えられるソフトウェア認証鍵65が書込まれる。このソフトウェア認証鍵65のハードウェアへの書込みは、プログラム本体72の起動よりも前に行うことが必要である。
【0061】
また、このソフトウェア認証鍵65は、コンテンツ71とは別のフロッピーディスクや光磁気ディスク等の媒体で提供されることが望ましく、通信回線を通して、直接ソフトウェア提供者から利用許可装置60のRAM63に書込んでもよい。
また、ソフトウェア認証鍵65は安全性のために直接ユーザに与えるのではなく、利用許可装置に固有の装置鍵コードによってソフトウェア認証鍵65に変換できる形式のデータをユーザに与えてもよい。
【0062】
利用許可装置60とユーザ所有のハードウェア50は、互いにI/Oコントローラ57、66によって接続され、利用許可制御に必要なデータや信号の転送が行われる。
【0063】
以上のようなハードウェア構成を持つソフトウェア利用制御装置におけるソフトウェア利用許可の動作の概要を次に示す。
1)ソフトウェア認証鍵65をRAM63に書込む。
2)ユーザ所有のハードウェア50のFDD58にコンテンツ71を挿入する。
3)ユーザがコンテンツ71の起動処理を実行させると、ユーザ所有のハードウェア50において認証プログラムが呼び出される。
4)ユーザ所有のハードウェア50において、プログラム本体72に付与されているコンテンツID等に基づき、プログラム本体を利用するための認証コードを生成する。
【0064】
5)利用許可装置60において、予めRAM63に記憶されたソフトウェア認証鍵65を用いてプログラム本体を利用するための認証コードを生成する。
6)ユーザ所有のハードウェア50において、4)で生成された認証コードと5)で生成された認証コードを比較する。
7)6)の比較の結果、両認証コードが一致した場合は、ユーザ所有のハードウェア50においてプログラム本体72が起動される。
以上のように利用制御を行えば、ソフトウェア認証鍵65を持っている正規のユーザのみがコンテンツ71を利用することができ、したがって不正利用の防止ができる。
【0065】
図11に、ソフトウェア利用許可制御の第1実施例の説明図を示す。
この第1実施例は、図10に示した利用許可装置60をユーザ宅内に設置し、ソフトウェア供給者から送られてくるコンテンツ71に格納されたコンテンツIDを用いて、正規のユーザかどうかの認証を行った後に、コンテンツ71に格納されたソフトウェアの許可を与える例である。
【0066】
ここで、認証は、利用許可装置60で生成した認証コードと、ユーザ所有のハードウェア50で生成した認証コードとを比較することにより行う。
また、ユーザ所有のハードウェア50で認証コードを生成するために、認証プログラム自体が持つ乱数発生機能と、認証プログラム自体が持つ固有のライブラリ鍵を用いたソフトウェア認証鍵コードの生成機能と、暗号化機能等を利用する。
【0067】
以下、第1実施例の利用許可の制御について詳説する。
図11は、制御に用いられるデータの流れを説明する模式図であり、これらのデータは、図10に示す装置のRAM、ハードディスク及びI/Oコントローラを介して転送される。
図11において、図10と同様に、71はコンテンツ、72はプログラム本体(以下、プログラムと呼ぶ)、73は認証プログラム(以下、ライブラリと呼ぶ)、60は課金モジュール(以下モジュールと呼ぶ)である。
【0068】
プログラム72には、そのプログラム固有のコンテンツIDが付与されており、このコンテンツIDはコンテンツ71の中の所定の領域に格納されている。
なお、このコンテンツIDは、コンテンツ71に含まれるプログラム72ごとに付与される固有のIDであり、複数のユーザに配付されるすべてのコンテンツ71において同じプログラム72には同じIDが付与されている。
【0069】
ライブラリ鍵klibは、ライブラリに付与された固定の鍵コードであり、これを用いて、コンテンツIDがソフトウェア認証鍵kauに変換される。
このライブラリ鍵klibは、利用されるユーザの目にふれることのないデータであり、ライブラリごとに別の鍵コードを与えることもできる。
したがって、ライブラリ鍵klibと後述する変換処理手順を公開しないようにすることで、利用制御の安全性を確保することができる。
【0070】
ここで変換73aとは、たとえば、コンテンツIDとライブラリ鍵klibをパラメータとして、所定の数式に代入して得られた結果を、ソフトウェア認証鍵とする処理である。
したがって変換処理手順を記述したルーチンは、ライブラリの外部から与えられるコンテンツIDには依存しない手順で記述でき、種々のプログラムに対して共通化される。
【0071】
また、暗号73bとは、ライブラリ内部で発生する乱数Rをもとに、ソフトウェア認証鍵kauを所定の手順で変換し、暗号化された認証コードA Ekau(R)を生成する処理である。
ここで用いられる所定の手順とは、通常暗号化技術で用いられるDESやFEALという処理手順を用いることができる。
したがって、暗号の処理手順を記述したルーチンも、ソフトウェア固有のID等に依存しない手順で記述でき、共通化される。
【0072】
また、比較73cとは、ライブラリで生成された認証コードA Ekau(R)とモジュールで生成された認証コードB Ekau(R)との値が一致するかどうかを判断する処理であり、これもソフトウェア固有のID等に依存する手順ではないので、共通化できる。
また、比較73cでは、判断の結果、両認証コードが一致したか又は相違したかについての情報が、プログラム72に返される。
【0073】
モジュール60における暗号60aでの処理は、ライブラリの暗号73bと同一の処理手順が実行される。
モジュール60では、暗号60aの処理に先立ち、プログラム72からI/Oコントローラ(57、66)を通してモジュールに与えられるコンテンツIDから、ソフトウェア認証鍵kauを生成する処理が行われる。
【0074】
この処理は、ユーザがソフトウェア供給者に、あるソフトウェアの利用を請求したときに、ソフトウェアの利用に先立って郵送又は通信等の手段によってユーザに送られてくる情報を利用する。
たとえばこの送られてくる情報の中に、コンテンツIDと、このコンテンツIDと1対1に対応するソフトウェア認証鍵kauを格納しておき、前記したモジュール60に与えられたコンテンツIDにより、この情報の中の対応するソフトウェア認証鍵kauを検索して求める。
【0075】
また、安全性のために、送られてくる情報の中にソフトウェア認証鍵kauを格納するのではなく、モジュール60に固有の装置鍵kdで復号することによってソフトウェア認証鍵kauが生成できるような鍵データをコンテンツIDと対応させて格納しておくことが望ましい。
このとき、コンテンツIDにより対応する鍵データを検索し、この鍵データを装置鍵で復号することによって対応するソフトウェア認証鍵kauを生成する。
【0076】
このように、コンテンツIDは供給するソフトウェア本体に固有のIDであり、ユーザに開放される可能性のあるものであるので、不正に複写されることがありうるが、モジュール60に固有の装置鍵kdは正規に利用するユーザにも開放されないものであるので、利用許可をする際の安全性をより向上させることができる。
【0077】
上記したように、モジュール60では、コンテンツIDによる検索によってソフトウェア認証鍵kauを生成し、このkauを乱数Rを用いた暗号化処理60aによって変換し、認証コードB Ekau(R)を求める。
【0078】
以上がプログラム72、ライブラリ73及びモジュール60内部での各部分の処理であるが、プログラム72とライブラリ73における処理は、図10のユーザ所有のハードウェア50のCPU51によって実行され、モジュール60における処理はモジュール60内のROMに記憶された手順にしたがって、モジュール60のCPU61によって実行されるものである。
【0079】
図12、13及び14に、第1実施例における各ソフトウェアの処理手順を示し、以下これについて説明する。
図12に、プログラム72におけるフローチャートを示す。
まず、ステップS1においてコンテンツIDをライブラリ73に送る。
具体的には、たとえばCPU51がプログラム72を起動し、コンテンツIDを読み出して、コンテンツIDを引数としてライブラリ73に与え、ライブラリ73を起動させてもよく、また、マルチタスクとしてプログラム72及びライブラリ73を起動させておき、コンテンツIDをライブラリに引き渡してもよい。
【0080】
次に、ステップS2において、ライブラリから認証結果が受理されるのを待つ。
ステップS3において、認証結果を判断し、認証結果がYES、すなわち正規の利用であり利用許可を与えてよい場合には、ステップS4へ進み、プログラム本体を実行させる。
認証結果がNO、すなわち不正利用であり利用許可を与えない場合には、処理を終了する。
【0081】
図13に、ライブラリ73におけるフローチャートを示す。
ステップS11において、コンテンツIDをプログラム72から受理する。
次にステップS12において、コンテンツID及び内部で発生した乱数Rをモジュール60へI/Oコントローラ(57、66)を介して転送する。
ステップS13において、認証コードB Ekau(R)モジュール60から受理されるのを待つ。
【0082】
ステップS14において、コンテンツIDをライブラリ鍵klibで変換し、ソフトウェア認証鍵kauを生成する。
ステップS15において、乱数Rをkauで暗号化し、認証コードA Ekau(R)を生成する。
ステップS16において、上記2つの認証コードA、Bを比較し、その結果を認証結果としてプログラム72に送る。
この比較処理によって2つの認証コードが一致した場合に、プログラム本体の利用許可がされることになる。
【0083】
図14に、モジュール60におけるフローチャートを示す。
ステップS21において、コンテンツIDと乱数Rをライブラリ73から受理する。
ステップS22において、コンテンツIDにより対応するソフトウェア認証鍵kauを検索する。
ステップS23において、検索によって求められたソフトウェア認証鍵kauを用いて乱数Rを暗号化し、認証コードB Ekau(R)を生成する。
【0084】
ステップS24において、生成された認証コードB Ekau(R)をライブラリ73にI/Oコントローラを通して転送する。
以上がプログラム72、ライブラリ73及びモジュール60の個々の処理を示すフローチャートであるが、各部とも互いに同期をとって処理が進められることは言うまでもない。
【0085】
このように、第1実施例において、コンテンツIDを用いて、ライブラリ73すなわち供給媒体に格納された認証プログラムによって生成された認証コードと、モジュール60、すなわち利用許可装置によって生成された認証コードを比較して利用許可制御をしているので、プログラム本体をすべて暗号化した不正利用防止策をとったときよりも、利用許可を出しプログラムの実際の利用開始をするまでの時間を短縮化できる。
【0086】
また、認証プログラム73は、コンテンツIDやその他のユーザ固有のIDやソフトウェア認証鍵などに依存することなく、配付される媒体に共通のソフトウェアとして格納しておくことが可能であり、ソフトウェア本体とこの認証プログラムを格納した媒体をユーザごとに作成する必要はなく、一種類のみを製造すればよいので、供給するソフトウェアの管理が容易である。
【0087】
さらに、供給するソフトウェアには、ユーザごとに付与されるIDやソフトウェア認証鍵が直接含まれていないこと、及び利用許可装置で生成される認証コードと供給ソフトウェアで生成する認証コードとの比較を行うので、供給媒体が正規のユーザ以外の者に流通したり、不正に複写されたとしても利用許可は与えられず不正利用が防止できる。
【0088】
また、特定ユーザグループなどについて特に安全性を確保するために、ライブラリ鍵klibをその特定ユーザグループ向けのコードに書き替えて配付することも可能である。
【0089】
図15に、ソフトウェア利用許可制御の第2実施例の説明図を示す。
この第2実施例は、図10に示した利用許可装置60をユーザが持たない場合のソフトウェア利用制御を示している。
そして、ユーザは、コンテンツ71を動作させるユーザ所有のハードウェア50のみを所有している。
【0090】
ここでは、第1実施例と同様にしてソフトウェア供給者から送られてくるコンテンツ71に格納されたソフトウェアから生成した認証コードと、このコンテンツ71とは別ルートで送られてくる認証コードとを比較して正規のユーザかどうかの認証を行う例である。
【0091】
また、ユーザ所有のハードウェア50で認証コードを生成するために、コンテンツIDと認証プログラム自体が持つ固有のライブラリ鍵と、ユーザあるいはユーザ所有のハードウェア50を特定するための識別コード、たとえばユーザ所有のハードウェア50のCPU固有のID(CPU−ID)、予め正規ユーザに付与されるユーザID、又は、ユーザ所有のハードウェア50に接続される外部機器の機器ID等が用いられる。
【0092】
図15において、図11と同様に、71はコンテンツ、72はプログラム、73はライブラリ、54はユーザ所有のハードウェア50におけるハードディスクである。
ハードディスク54には、ソフトウェア供給者から送られてくる認証コードA
Ekau(コンテンツID)が格納されている。
【0093】
これは、第1実施例と同様に、コンテンツIDと、このコンテンツIDと1対1に対応する認証コードA Ekau(コンテンツID)が格納された情報としてユーザに送られてくるものである。
このハードディスク54に格納されたEkau(コンテンツID)は、プログラム72によって、このプログラム本体に固有のコンテンツIDを基に検索されて読み出される。
この検索処理は、たとえばフロッピーディスクで供給されたコンテンツ71が、ユーザ所有のハードウェア50のFDD58に挿入されて、コンテンツが起動されたときに、CPU51が行う。
【0094】
図15では、ユーザ所有のハードウェア50のCPU51に固有のCPU−IDを識別コードとして用いる例を示している。CPU−IDはCPU51内部のROM又は、ROM52に書き込まれている。
このCPU−ID等の識別コードは、ユーザがソフトウェアの利用をソフトウェア供給者に請求するときに、同時に申告する必要がある。
【0095】
なお、上記した認証コードA Ekau(コンテンツID)は、ソフトウェア供給者側で、上記申告された識別コードをもとに暗号化されて生成されたコードである。
【0096】
したがって認証コードが何らかの手段によって正規ユーザ以外の者に知られたとしても、識別コードがわからない限り不正利用ができないようにすることができ、さらに識別コードとしてこの実施例で示したCPU固有のCPU−IDを用いれば、そのCPU−IDを持つCPUを搭載したハードウェアでなければ使用ができないようにすることが可能である。
【0097】
ライブラリ73において、変換73a、暗号73b及び比較73cの処理は、第1実施例と同様である。
ただし、ここでは変換されるコードはCPU−IDであり、暗号73bによって生成される認証コードBはEkau(コンテンツID)である。
【0098】
図16、17に第2実施例における各ソフトウェアの処理手順を示し、以下これについて説明する。
図16に、プログラム72におけるフローチャートを示す。
ステップS31において、コンテンツ71に格納されているコンテンツID及びハードディスク54に格納されている認証コードA Ekau(コンテンツID)を読み出してライブラリ73に送る。この送る方法は、第1実施例と同様である。
【0099】
次に、ステップS32において、認証結果がライブラリ73から受理されるのを待つ。
ステップS33において、認証結果を判断し、認証結果がYES、すなわち正規の利用であり、利用許可を与えてよい場合にはステップS34へ進み、プログラム本体を実行させる。
認証結果がNO、すなわち不正利用であり、利用許可を与えない場合には処理を終了する。
【0100】
図17に、ライブラリ73におけるフローチャートを示す。
ステップS41において、コンテンツIDと認証コードA Ekau(コンテンツID)を、プログラム72から受理する。
次に、ステップS42において、CPU−IDを読み込む。
ステップS43において、CPU−IDをライブラリ鍵klibで変換し、ソフトウェア認証鍵kauを生成する。
【0101】
ステップS44において、受理したコンテンツIDをソフトウェア認証鍵kauで暗号化し、認証コードB Ekau(コンテンツID)を生成する。
ステップS45において、上記2つの認証コードA、Bを比較し、その結果を認証結果としてプログラム72に送る。
この比較処理によって2つの認証コードが一致した場合にプログラム本体の利用許可がされることになる。
【0102】
このように、第2実施例において、利用許可装置を備えていないユーザの場合にも、第1実施例と同様な不正利用の防止が可能である。
すなわち、プログラム本体をすべて暗号化することがないので、プログラムの実際の利用開始までの時間が短縮化されること、認証プログラム73は配付される媒体に共通化して格納できるので、供給するソフトウェアの管理が容易であること、さらに、供給するソフトウェアにはCPU−IDなどユーザ固有の識別コードは含まれていないので、ソフトウェア自体が不正に複写されても利用許可は与えられないこと、という効果がある。
【0103】
なお、図15の第2実施例においては、識別IDとして与えられるCPU−IDをライブラリ鍵で変換し、さらにこれによって生成されたソフトウェア認証鍵を用いてコンテンツIDを暗号化したが、これとは逆に、コンテンツIDをライブラリ鍵で変換し、さらにこれによって生成されたソフトウェア認証鍵を用いてCPU−IDを暗号化するようにしてもよい。
【0104】
図18に、ソフトウェア利用許可制御の第3実施例の説明図を示す。
この第3実施例は、第1実施例と同様の構成及びソフトウェア利用許可の制御を行い、さらに、ユーザの利用残高などの課金情報を課金モジュールに記憶させ、利用残高が残っている時などソフトウェアが利用可能な状態のときに、ソフトウェアの利用許可を行うものである。
【0105】
ここで、第1実施例とは異なり、ライブラリ73にはモジュール60に対して認証の結果を転送する処理(利用記憶要求処理)等を追加し、モジュール60には、課金情報ここではユーザの利用残高を記憶し、その利用残高に応じて課金結果、すなわち利用可能であるか利用不可とすべきかの情報をライブラリ73に対して転送する処理(利用量管理処理)を追加する。
【0106】
また、プログラム72においては、認証結果と課金結果を受理してこれらの結果を判断して、プログラムが利用可能なときにプログラムを実行させるように処理を変更する。
【0107】
また、比較によって得られた認証結果は、得られたデータをそのままモジュール60へ転送してもよいが、安全性のため、図15に示すようにソフトウェア認証鍵kauで暗号化したコードEkau(R||Y)またはEkau(R||N)を転送するのが好ましい。
また、モジュール60からライブラリ73へ送られる課金結果についても、ソフトウェア認証鍵kauで暗号化したコードEkau(R||Ok)又はEkau(R||No)を転送することが好ましい。
【0108】
図19、20、21に、第3実施例における各ソフトウェアの処理手順を示し、以下これについて説明する。
図19に、プログラム72におけるフローチャートを示す。
ステップS51において、コンテンツIDをライブラリ73に送る。
ステップS52において、ライブラリ73から認証結果及び課金結果が受理されるのを待つ。
【0109】
ステップS53において、認証結果を判断し、認証結果がYES、すなわち正規の利用である場合には、ステップS54へ進む。
ステップS54において、課金結果を判断し、課金結果が成功、すなわちまだ利用残高が残っている場合には、ステップS55へ進み、プログラム本体を実行させる。
ステップS53又はS54において、認証結果がNO、又は課金結果が失敗の場合には、不正利用又は利用残高残っていないので、利用許可を与えずに、処理を終了する。
【0110】
図20に、ライブラリ73におけるフローチャートを示す。
ステップS61において、コンテンツIDをプログラム72から受理する。
次にステップS62において、コンテンツID及び内部で発生した乱数Rをモジュール60へI/Oコントローラ(57、66)を介して転送する。
ステップS63において、認証コードB Ekau(R)がモジュール60から受理されるのを待つ。
【0111】
ステップS64において、コンテンツIDをライブラリ鍵klibで変換しソフトウェア認証鍵kauを生成する。
ステップS65において、乱数Rをkauで暗号化し、認証コードA Ekau(R)を生成する。
ステップS66において、上記2つの認証コードA、Bを比較し、その結果を得る。
【0112】
ステップS67において、認証結果がYES、すなわち、正規利用であると判断された場合には、乱数Rと値“Y”との連接(R||“Y”)を計算し、これをソフトウェア認証鍵kauで暗号化する(ステップS68)。
すなわちEkau(R||Y)を生成する。
認証結果がNO、すなわち正規利用でないと判断された場合には、乱数Rと値“N”との連接(R||“N”)を計算し、これをソフトウェア認証鍵kauで暗号化する(ステップS69)。
すなわちEkau(R||N)を生成する。
【0113】
次に、ステップS70において、上記で生成した認証結果Ekau(R||Y)またはEkau(R||N)をモジュール60へ送る。
ステップS71において、モジュール60から終了通知、すなわち暗号化された課金結果を受理されるのを待つ。
ここで終了通知は、R||“Ok”をkauで暗号化したEkau(R||OK)、あるいはR||“No”をkauで暗号化したEkau(R||No)である。
【0114】
ステップS72において、暗号化された課金結果をkauで復号する。
復号によって得られるコードは、R||“Ok”又はR||“No”であり、R||“Ok”は課金状態が正常、すなわち利用可能な状態であることを示し、R||“No”は課金状態が異常、すなわち利用可能な状態でないことを示す。
【0115】
ステップS73において、復号された課金結果がR||“Ok”のときは、課金結果情報を“成功”、たとえば1という値に設定する。
また復号された課金結果がR||“No”のときは、課金結果情報を“失敗”、たとえば0という値に設定する。
ステップS74において、ステップS66で得られた認証結果と、ステップS73で得られた課金結果情報を、プログラム72へ送る。
【0116】
図21に、モジュール60におけるフローチャートを示す。
ステップS81において、コンテンツIDと乱数Rをライブラリ73から受理する。
ステップS82において、コンテンツIDにより対応するソフトウェア認証鍵kauを検索する。
ステップS83において、検索によって求められたソフトウェア認証鍵kauを用いて乱数Rを暗号化し認証コードB Ekau(R)を生成する。
【0117】
ステップS84において、生成された認証コードB Ekau(R)をライブラリにI/Oコントローラを通して転送する。
ステップS85において、モジュール60から暗号化された認証結果Ekau(R||Y)又はEkau(R||N)が受理されるのを待つ。
ステップS86において、受理した暗号化された認証結果をkauで復号する。
【0118】
ステップS87において、復号された認証結果がR||“Y”の場合、認証が正常であるとして、ステップS88へ進み、モジュール60のハードディスク64に記憶された利用残高を確認する。
ステップS88において、利用残高が残っている場合(≧1)、ステップS89へ進み、利用残高を更新する。
ここで利用残高として利用回数を用いている場合、ステップS89におけるように利用残高から1を減ずる。
【0119】
ステップS90において、課金結果として利用可能であることを示す、R||“Ok”を設定する。
ステップS87において、復号された認証結果がR||“N”の場合、認証が異常、すなわち不正利用であるとして、ステップS91へ進み、課金結果として利用不可であることを示すR||“No”を設定する。
ステップS92において、上記課金結果をkauで暗号化し、Ekau(R||Ok)またはEkau(R||No)を生成する。
ステップS93において、上記暗号化された課金結果Ekau(R||Ok)またはEkau(R||No)をライブラリ73へ送る。
【0120】
このように、第3実施例において、利用許可装置で生成した認証コードと認証プログラムで生成した認証コードとを比較し、さらに利用残高を記憶しておくようにしているので、不正利用の防止と共に、正規ユーザの利用に対して利用ごとに課金するという柔軟な制御が可能である。
【0121】
また、プログラム72において、利用残高の記憶が正常に完了しプログラム本体が起動可能な状態であることを確認後に、プログラム本体を起動しているので、不当にプログラム本体を起動させたり、プログラム本体の実行が不当に継続され続けることがないようにできる。
【0122】
なお、第3実施例では、プログラム本体を実行させる前に認証を行い、利用残高を確認して利用許可の制御を行っているが、これに限られたものではなく、たとえば、プログラム本体が起動後に、所定の機能が実行されたときに、その機能が実行されたことをプログラム72からライブラリ73及びモジュール60に転送し、モジュール60において、その機能が実行されたことを確認した後に課金制御をするようにしてもよい。
【0123】
ここで、所定の機能とは、たとえば作成したデータあるいはファイルの保存や出力などであり、これらの機能が実行されたときに、課金制御を行う。
また、課金制御とは、たとえば、課金を開始する、利用残高を一定量減らす、利用回数を計算する、あるいは利用を一部機能に制限する等が上げられる。
【0124】
以上のような課金制御を行うためには、たとえば、プログラム72において現在の動作状況を監視する機能を追加し、ライブラリがこの動作状況を見て、所定の機能が実行されたと判断した場合にモジュール60に課金制御を要求する処理をライブラリに追加すればよい。
このように所定の機能に課金制御を行う際、必ずライブラリによる認証処理を行った後利用記録要求を行うようにしておいてもよいが、一度認証処理を行った後は利用記録要求だけを行うようにしてもよい。すなわち、一度認証処理を行ったあとは認証の必要はないので、次に課金が必要な処理が実行された時には、利用記録要求だけを行なえば十分である。図22に、このような利用制御を行う場合の説明図を示す。2度目以降に利用記録要求だけを行う際は、安全性を高めるため、図22に示すように毎回新しい乱数R’をモジュールに送ることが望ましい。
【0125】
また、モジュール60においてタイマーを備え、プログラム本体の利用許可を与えた後の経過時間を記憶しておき、所定の時間が経過した後にプログラムの利用を不可とする情報をライブラリ73及びプログラム72に転送してプログラムの利用制御をするようにしてもよい。あるいは、所定の時間経過後に、前記した課金制御を起動させてもよい。
【0126】
このようにすれば、ユーザが所定の時間だけ課金されずにプログラムを利用することが可能となるので、その間に所望のプログラムかどうかを確認することができ、さらに所望するプログラムでなかった時、または誤操作によってプログラムを起動させてしまったときなど、課金されずに動作を終了させることができ、ユーザに不利益を与えることがないようにできる。
【0127】
また、ライブラリ73にタイマーを備え、一定時間ごとに、定期的にモジュール60と何らかの交信を行わせることにより、プログラム動作中にモジュール60が不当に取り去られても、ずっと不当に利用され続けることがないようにできる。
【0128】
すなわち、ライブラリ73からモジュール60に所定のコードを送っても一定時間経過後にモジュール60からの応答がない場合には、モジュールの異常と考えて、プログラム72の実行を停止させるような処理をライブラリ73及びモジュール60に追加すれば、不正利用を防止することができる。
【0129】
この他、ユーザのクラスあるいはレベルに応じて、利用許可できる機能範囲、時間あるいは回数等についての各種条件を設定してきめ細かい利用制御をしたい場合には、プログラム72、ライブラリ73、及びモジュール60においてそれぞれの条件に対応する処理プログラムを追加すればよい。
このように、利用許可を与える時期、機能等についての処理プログラムを、さらにコンテンツ71又は利用許可装置に追加することによって、より柔軟な利用制御が可能となる。
【0130】
以上に示した3つの実施例では、コンテンツIDはコンテンツに格納されたソフトウェアごとに付与されるIDであり、ユーザ等に公開されるものであるので、ユーザは容易に知ることができる。
そこで、よりソフトウェア利用制御の安全性をより高めるために、コンテンツIDと1対1に対応し、かつソフト供給者以外のだれにも知られることのないコンテンツ認証IDをコンテンツ内に格納し、このコンテンツ認証IDを用いて実施例で示したソフトウェア利用制御をすることが考えられる。
【0131】
すなわち、コンテンツ71に、コンテンツIDと、このコンテンツIDに対応するコンテンツ認証IDを格納し、ライブラリ及び利用許可装置にコンテンツ認証IDを送り、このコンテンツ認証IDを用いたソフトウェア利用制御を行わせる。
【0132】
利用許可装置のない場合には、コンテンツ認証IDを基に生成することのできる認証コードを、予めユーザ所有のハードウェア内のハードディスクに記憶しておく。
以上のように、ユーザに知られることのないコンテンツ認証IDを用いることで、より安全性の高いソフトウェア利用制御が可能となる。
【0133】
図23に、ソフトウェア利用許可制御の第4実施例の説明図を示す。
この第4実施例は、ユーザがソフトウェアの正規購入に先立って、そのソフトウェアの試用を何回かできるように利用制御する場合の実施例である。
ここで、第1実施例とは異なり、ライブラリ73においてライブラリ鍵klibのかわりに試用鍵klib−tryを用い、試用認証鍵ktryを生成する。
【0134】
また、比較73cにおいて、この試用認証鍵ktryを用いて生成した試用認証コードの比較を行う。
また、モジュール60において、ライブラリ73で行う変換73a及び暗号73bと同様の機能を備え、コンテンツID及び乱数Rを用いて試用認証コードを生成する処理を行う。
【0135】
さらに、プログラム72には予め試用回数上限を記憶しておき、これをライブラリ73及びモジュール60に送り、モジュール60では、試用回数上限を試用残高に設定して、試用残高の管理を行う。
モジュール60において、この試用残高がなくなれば、試用認証コードとは異なるコードをライブラリに送り、試用を停止させるようにする。
ここでモジュール60において管理される試用残高は、モジュール内のRAM63に格納することが望ましい。
【0136】
また、コンテンツ72の中に格納されているソフトウェアごとに試用残高を管理するために、コンテンツ72から送られてくるコンテンツIDとその試用残高を対応させてRAM63に記憶しておくことが望ましい。
なお、ライブラリからモジュール60にコンテンツID及び乱数が送られてくるたびに、ソフトウェアの試用が新たに行われたものとする。
【0137】
ただし、このコンテンツID等を送る代わりに、新たなソフトウェアの試用が行われたときに、ライブラリ73からモジュール60に認証処理を要求するための利用許可要求データを転送してもよく、後述する試用回数の更新においては、この利用許可要求がモジュール60に転送されてきたときに行うようにしてもよい。
【0138】
この第4実施例において、ソフトウェア供給者は、ユーザに試用してもらうために、コンテンツをユーザに有償又は無償で配布する。
この媒体の中には、ユーザが正規購入した際に配布される媒体と同様に認証プログラム73を組み込んだプログラム本体72が格納されているが、さらに試用回数上限と試用鍵klib−tryが格納され、認証プログラム73の変換処理ルーチンで試用鍵klib−tryを用いるようにプログラミングされている。
なお、ユーザに事前に配布された利用許可装置には、コンテンツに格納された試用鍵klib−tryと試用鍵klib−tryを用いた変換処理がすでに備えられているものとする。
【0139】
以上のような構成を有する各部分の動作について以下に説明する。
図24、25及び26に、第4実施例における各ソフトウェアの処理手順を示す。
図24に、プログラム72におけるフローチャートを示す。
ステップS101において、コンテンツIDと試用回数上限を、ライブラリ73に送る。
【0140】
次に、ステップS102において、ライブラリから認証結果が受理されるのを待つ。
ステップS103において、認証結果を判断し、認証結果がYES、すなわち正規の利用であり利用許可を与えてよい場合にはステップS104へ進み、試用のためにプログラム本体を実行させる。
認証結果がNO、すなわち不正利用であり利用許可を与えない場合には処理を終了する。
【0141】
図25に、ライブラリ73におけるフローチャートを示す。
ステップS111において、コンテンツIDと試用回数上限をプログラム72から受理する。
次にステップS112において、コンテンツID、試用回数上限及び内部で発生した乱数Rをモジュール60へI/Oコントローラ(57,66)を介して転送する。
ステップS113において、認証コードB Ekau(R)がモジュール60から受理されるのを待つ。
【0142】
ステップS114において、コンテンツIDを試用鍵klibで変換し、ソフトウェア認証鍵ktryを生成する。
ステップS115において、乱数Rをktryで暗号化し、試用認証コードAEktry(R)を生成する。
ステップS116において、上記2つの試用認証コードA,Bを比較し、その結果を認証結果としてプログラム72に送る。
【0143】
図26にモジュール60におけるフローチャートを示す。
ステップS121において、コンテンツIDと試用回数上限と乱数Rをライブラリ73から受理する。
ステップS122において、コンテンツIDを試用鍵klib−tryで変換し、試用鍵klib−tryを生成する。
ステップS123において、コンテンツIDを用いて、RAM63に記憶されているコンテンツIDに対応した試用残高を検索する。
【0144】
ステップS124において、検索の結果そのコンテンツIDに対する試用残高がRAM63にエントリーされていない場合には、ステップS125において試用回数上限値をそのコンテンツIDに対する試用残高としてエントリーする。
すでに試用残高がエントリーされている場合には、ステップS126へ進み、試用残高を更新(−1)する。
【0145】
ステップS127において、試用残高が0以上、すなわち試用を許可できる場合には、ステップS128へ進み、乱数Rを試用認証鍵klib−tryで暗号化し、試用認証コードB Ektry(R)を生成する。
試用残高が負の数、すなわち試用を許可できない場合には、試用認証コードBEktry(R)と異なるコードを生成するために、乱数RとコンテンツIDとの排他的論理和をとり、これをktryで暗号化して認証コードEktry(R_コンテンツID)を生成する。(ステップS129)。
【0146】
ステップS130において、上記ステップS128またはS129で生成された認証コードをライブラリに送る。
以上の処理により、ライブラリ73の比較処理において2つの試用認証コードが一致した場合には、プログラムの試用が許可される。
また、2つの認証コードが一致しない場合、すなわち、モジュールからEktry(R コンテンツID)が送られてきた場合には、プログラムの試用が禁止される。
【0147】
このように第4実施例において、配布あるいは購入されるコンテンツに、試用鍵klib−tryと試用回数上限とコンテンツIDとを格納し、コンテンツ内の認証プログラム及び利用許可装置に試用認証コードを生成する処理を備え、さらに利用許可装置に試用残高を記憶するようにしているので、利用許可装置を所有している正規のユーザが、配布されたコンテンツあるいは購入したコンテンツの中に含まれるソフトウェアを、ライセンスの発行をうけることなくすぐに試用回数の限度内で利用することが可能である。
【0148】
【発明の効果】
この発明によれば、利用制御部と利用許可部を備え、2つの認証コードを生成して比較することによってソフトウェア利用制御をしているので、ソフトウェア本体をすべて暗号化したときに比べて、ソフトウェアの実際の利用開始をするまでの時間を短縮化することができる。
【0149】
また、コンテンツ部及び認証部のソフトウェア自体はユーザ固有のIDには依存することがないため、共通化することができ、供給するソフトウェアの管理が容易である。
さらに、ソフトウェアの供給媒体にはユーザ固有のIDは直接含まれておらず、利用制御部と利用許可部において生成される2つの認証コードを比較してソフトウェア利用制御を行うので、ソフトウェアの供給媒体が複写されても利用許可が与えられず不正利用が防止できる。
【0150】
また、暗号化された認証コードを用いることによって、さらにソフトウェア利用制御の安全性を高めることができる。
また、利用許可部を備えていないソフトウェア利用制御装置においても、ソフトウェアの実際の利用開始までの時間の短縮化、供給するソフトウェアの管理の容易化及びより効果的な不正利用の防止ができる。
【0151】
また、利用量に関する情報を記録するようにしているので、前記したような不正利用の防止と共に、正規利用者の利用可又は不可の柔軟な制御が可能である。
【0152】
また、試用回数記憶部に試用回数を記憶し、この試用回数がコンテンツ部8に格納された試用回数上限を越えない場合にのみ利用を許可するように制御するので、正規の利用者はコンテンツ部に格納されたソフトウェアを、すぐに試用回数上限の範囲内で利用することができる。
【0153】
また、コンテンツ部が、コンテンツIDと、コンテンツIDと1対1に対応し、かつ利用者には秘密にされたコンテンツ認証IDを予め格納しておくことによって、より安全性の高いソフトウェア利用制御が可能である。
【図面の簡単な説明】
【図1】この発明のソフトウェア利用制御装置の第1構成ブロック図である。
【図2】この発明のソフトウェア利用制御装置の第2構成ブロック図である。
【図3】この発明のソフトウェア利用制御装置の第3構成ブロック図である。
【図4】この発明のソフトウェア利用制御装置の第4構成ブロック図である。
【図5】この発明のソフトウェア利用制御装置の第5構成ブロック図である。
【図6】この発明のソフトウェア利用制御装置の第6構成ブロック図である。
【図7】この発明のソフトウェア利用制御装置の第7構成ブロック図である。
【図8】この発明のソフトウェア利用制御装置の第8構成ブロック図である。
【図9】超流通システムの全体構成図である。
【図10】この発明の一実施例におけるハードウェア構成ブロック図である。
【図11】この発明の第1実施例における利用制御の説明図である。
【図12】この発明の第1実施例におけるプログラムのフローチャートである。
【図13】この発明の第1実施例におけるライブラリのフローチャートである。
【図14】この発明の第1実施例におけるモジュールのフローチャートである。
【図15】この発明の第2実施例における利用制御の説明図である。
【図16】この発明の第2実施例におけるプログラムのフローチャートである。
【図17】この発明の第2実施例におけるライブラリのフローチャートである。
【図18】この発明の第3実施例における利用制御の説明図である。
【図19】この発明の第3実施例におけるプログラムのフローチャートである。
【図20】この発明の第3実施例におけるライブラリのフローチャートである。
【図21】この発明の第3実施例におけるモジュールのフローチャートである。
【図22】この発明の第3実施例における利用制御の説明図である。
【図23】この発明の第4実施例における利用制御の説明図である。
【図24】この発明の第4実施例におけるプログラムのフローチャートである。
【図25】この発明の第4実施例におけるライブラリのフローチャートである。
【図26】この発明の第4実施例におけるモジュールのフローチャートである。
【符号の説明】
50 ユーザ所有のハードウェア
51 CPU
52 ROM
53 RAM
54 ハードディスク
55 CRT
56 キーボード
57 I/Oコントローラ
58 FDD
59 通信回線コントローラ
60 利用許可装置(課金モジュール)
61 CPU
62 ROM
63 RAM
64 通信回線コントローラ
65 ソフトウェア認証鍵
66 I/Oコントローラ
71 コンテンツ
72 プログラム本体
73 認証プログラム
Claims (11)
- ソフトウェアの利用を許可するための認証コードを生成する利用許可部と、この利用許可部からの認証コードを受けてソフトウェアの利用の可否を決定する利用制御部とからなるソフトウェア利用制御装置において、
前記利用制御部が、ソフトウェア本体とそのソフトウェアごとに付与されているコンテンツIDとを格納したコンテンツ部と、認証部とを備え、
前記認証部が、乱数を生成する乱数生成部と、前記コンテンツIDと前記乱数を変換して認証コードを生成するコード生成部と、前記利用許可部にコンテンツIDと乱数とを転送するコード要求部と、利用許可部が生成した認証コードと前記コード生成部が生成した認証コードとを比較しその比較結果をコンテンツ部に送る比較部とからなり、認証部はライブラリとして構成され、ソフトウェア本体とコンテンツ部と組み合わされて格納された供給媒体がソフトウェア利用制御装置に組み込まれて実行されることを特徴とするソフトウェア利用制御装置。 - ソフトウェアの利用を許可するための識別IDコードを入力する識別ID入力部と、予め与えられた認証コードを記憶する認証コード記憶部と、ソフトウェアの利用の可否を決定する利用制御部とからなるソフトウェア利用制御装置において、
前記利用制御部が、ソフトウェア本体とそのソフトウェアごとに付与されているコンテンツIDとを格納したコンテンツ部と、認証部とを備え、
前記認証部が、前記コンテンツ部から送られるコンテンツIDと前記識別ID入力部から送られる識別IDとを変換して認証コードを生成するコード生成部と、前記認証コード記憶部に記憶された認証コードと前記コード生成部が生成した認証コードとを比較しその比較結果をコンテンツ部に送る比較部とからなり、認証部はライブラリとして構成され、ソフトウェア本体とコンテンツ部と組み合わされて格納された供給媒体がソフトウェア利用制御装置に組み込まれて実行されることを特徴とするソフトウェア利用制御装置。 - 前記コード生成部が、前記コンテンツ部から送られるコンテンツIDを、予め設定された鍵コードを用いて変換し認証鍵を生成する鍵生成部と、
前記乱数生成部が生成した乱数を前記認証鍵を用いて暗号化し認証コードを生成する暗号化部とから構成されることを特徴とする請求項1記載のソフトウェア利用制御装置。 - 前記コード生成部が、前記コンテンツ部から送られるコンテンツIDを、予め設定された鍵コードを用いて変換し認証鍵を生成する鍵生成部と、
前記識別ID入力部から入力される識別IDを前記認証鍵を用いて暗号化し認証コードを生成する暗号化部とから構成されることを特徴とする請求項2記載のソウトウェア利用制御装置。 - 前記コード生成部が、前記識別ID入力部から入力される識別IDを、予め設定された鍵コードを用いて変換し認証鍵を生成する鍵生成部と、
前記コンテンツ部から送られるコンテンツIDを前記認証鍵を用いて暗号化し認証コードを生成する暗号化部とから構成されることを特徴とする請求項2記載のソフトウェア利用制御装置。 - コンテンツ部に格納されたソフトウェア本体の利用量に関する情報を記憶・管理する利用量管理部をさらに備え、
前記利用制御部が、前記比較部から比較結果を受けて利用量情報の記録を前記利用量管理部に要求する利用記録要求部を備えることを特徴とする請求項1または3に記載したソフトウェア利用制御装置。 - 前記コンテンツ部が、ソフトウェア本体の動作状況を監視するソフト動作監視部を備え、
前記利用記録要求部が、前記比較部から認証コードの一致を示す比較結果を受け、ソフト動作監視部で監視されるソフトウェアの動作状況が、課金が必要と設定されている機能の動作となったことを検知した場合のみ、前記利用記録要求部が前記利用量管理部に利用量に関する情報を記憶させることを特徴とする請求項6記載のソフトウェア利用制御装置。 - 前記利用記録要求部が記憶が正常に終了したことを示す情報を前記利用量管理部から受けとったときにのみ、前記利用制御部がコンテンツ部に格納されたソフトウェア本体の実行を継続させることを特徴とする請求項7記載のソフトウェア利用制御装置。
- 前記コンテンツ部が、予め試用回数上限値を格納し、
前記利用許可部が、試用認証部と、試用回数記録部と、試用回数管理部とをさらに備え、
前記試用認証部が、乱数を生成する乱数生成部と、前記コンテンツIDと前記乱数を変換して試用認証コードを生成する試用コード生成部とを備え、
試用回数記録部は、前記コード要求部から送られる試用回数上限値をもとに試用回数を記憶し、
前記コード要求部からソフトウェア利用の認証を求めるための利用許可要求が利用許可部に転送されるごとに試用回数管理部が前記試用回数記録部に記憶された試用回数を更新し、前記試用回数が前記試用回数上限値を越えていない場合に、試用認証部が試用認証コードを生成し、試用回数管理部が前記試用認証コードを前記比較部に転送することを特徴とする請求項1または3に記載したソフトウェア利用制御装置。 - 前記コンテンツ部が、コンテンツIDと1対1に対応しかつ利用者には秘密にされたコンテンツ認証IDを予め格納し、このコンテンツ認証IDを用いて前記認証部及び前記利用許可部が認証コードを生成することを特徴とする前記請求項1,3,6,7または8に記載したソフトウェア利用制御装置。
- 前記コンテンツ部が、コンテンツIDと1対1に対応しかつ利用者には秘密にされたコンテンツ認証IDを予め格納し、前記認証コード記憶部が、このコンテンツ認証IDを用いて生成された認証コードを予め格納し、このコンテンツ認証IDを用いて前記認証部が認証コードを生成することを特徴とする前記請求項2,4または5に記載したソフトウェア利用制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22543594A JP3630451B2 (ja) | 1994-09-20 | 1994-09-20 | ソフトウェア利用制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22543594A JP3630451B2 (ja) | 1994-09-20 | 1994-09-20 | ソフトウェア利用制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0895777A JPH0895777A (ja) | 1996-04-12 |
JP3630451B2 true JP3630451B2 (ja) | 2005-03-16 |
Family
ID=16829328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22543594A Expired - Fee Related JP3630451B2 (ja) | 1994-09-20 | 1994-09-20 | ソフトウェア利用制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3630451B2 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5717756A (en) * | 1995-10-12 | 1998-02-10 | International Business Machines Corporation | System and method for providing masquerade protection in a computer network using hardware and timestamp-specific single use keys |
JP2810033B2 (ja) * | 1996-07-08 | 1998-10-15 | 村越 弘昌 | 稼働管理システム及び稼働管理方法 |
US6282653B1 (en) * | 1998-05-15 | 2001-08-28 | International Business Machines Corporation | Royalty collection method and system for use of copyrighted digital materials on the internet |
JP2000115163A (ja) | 1998-09-29 | 2000-04-21 | Sony Corp | 情報配信方法 |
JP4195746B2 (ja) * | 1998-12-11 | 2008-12-10 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ課金システム、コンテンツ生成装置、データ課金置および方法 |
AU765841B2 (en) * | 1999-12-20 | 2003-10-02 | Ho Keung Tse | Software for restricting other software to be used by the rightful user only and method therefor |
JP2001325455A (ja) * | 2000-05-15 | 2001-11-22 | Nec Nexsolutions Ltd | セーブ・ロード型販売システムおよび方法 |
JP3347128B2 (ja) * | 2000-08-09 | 2002-11-20 | 日本電気株式会社 | 試用ソフトウェアの管理システムおよび管理方法、および記録媒体 |
JP4122707B2 (ja) * | 2000-12-19 | 2008-07-23 | 株式会社日立製作所 | デジタルコンテンツ配信方法およびシステム並びにその処理プログラムを記録した媒体 |
JP2002230432A (ja) * | 2001-02-06 | 2002-08-16 | Canon Inc | デジタルデータ販売システム、デジタルデータ販売方法、コンピュータ読み取り可能な記憶媒体及びコンピュータ・プログラム |
JP4742471B2 (ja) * | 2001-09-07 | 2011-08-10 | 凸版印刷株式会社 | 画像付き通帳作製システム及びこの通帳の作製方法 |
JP4137468B2 (ja) * | 2002-02-27 | 2008-08-20 | 富士通株式会社 | プログラム使用認証方法 |
JP4242112B2 (ja) * | 2002-05-27 | 2009-03-18 | 株式会社医学書院 | ソフトウェアインストール認証方法、ソフトウェアインストール認証プログラム及びソフトウェアインストール認証プログラムを記録したコンピュータ読み取り可能な記録媒体 |
JP5430842B2 (ja) * | 2007-11-16 | 2014-03-05 | 株式会社バンダイナムコゲームス | サーバシステム及びプログラム |
JP5990927B2 (ja) * | 2012-02-17 | 2016-09-14 | 富士電機株式会社 | 制御システム、制御装置及びプログラム実行制御方法 |
JP5900143B2 (ja) * | 2012-05-15 | 2016-04-06 | 富士電機株式会社 | 制御システム、制御装置及びプログラム実行制御方法 |
CN111881423B (zh) * | 2020-07-28 | 2023-09-19 | 杭州海康威视数字技术股份有限公司 | 限制功能使用授权方法、装置、系统 |
-
1994
- 1994-09-20 JP JP22543594A patent/JP3630451B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0895777A (ja) | 1996-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3630451B2 (ja) | ソフトウェア利用制御装置 | |
EP0809244B1 (en) | Software copying system | |
EP2400362B1 (en) | Adaptable security mechanism for preventing unauthorized access of digital data | |
White | ABYSS: ATrusted Architecture for Software Protection | |
CN100424678C (zh) | 使用隐含中间密钥来认证软件的系统和方法 | |
US9305173B2 (en) | Portable authorization device for authorizing use of protected information and associated method | |
US20040098348A1 (en) | License issuance server, processing device, software execution management device, and license issuing method and program | |
US20050204405A1 (en) | Method and system for digital rights management | |
CA2529580C (en) | Method of authentication of memory device and device therefor | |
US20080262968A1 (en) | Software licensing control via mobile devices | |
KR20040030454A (ko) | 콘텐츠 이용권한 관리시스템, 콘텐츠 이용권한 관리방법및 정보처리장치와 컴퓨터 프로그램 | |
JP2001175468A (ja) | ソフトウエア使用制御方法とその装置 | |
AU778380B2 (en) | Portable authorization device for authorizing use of protected information and associated method | |
EP1471405A1 (en) | Method and device for protecting information against unauthorised use | |
AU776977B2 (en) | Computer-readable medium with microprocessor to control reading and computer arranged to communicate with such medium | |
JP3641909B2 (ja) | 証明データ生成装置 | |
KR100310445B1 (ko) | Pc 기반의 암호칩을 사용한 유.에스.비 보안모듈 제어방법 | |
JPH10312277A (ja) | ソフトウェア配給方法 | |
KR100423506B1 (ko) | 아이씨칩내장카드를 이용한 온라인상에서의 소프트웨어불법복제방지방법 | |
JP2004086588A (ja) | ソフトウェア不正使用防止システム | |
JP2000207197A (ja) | コンピュ―タソフトウェアのプロテクトシステム及び方法 | |
WO2012070922A1 (en) | A method of controlling license key generation | |
JP2012142901A (ja) | 情報処理システム、及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040316 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040506 |
|
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: 20041207 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041214 |
|
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: 20071224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121224 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |