JPH10161864A - ソフトウェアの保護方式 - Google Patents
ソフトウェアの保護方式Info
- Publication number
- JPH10161864A JPH10161864A JP8317917A JP31791796A JPH10161864A JP H10161864 A JPH10161864 A JP H10161864A JP 8317917 A JP8317917 A JP 8317917A JP 31791796 A JP31791796 A JP 31791796A JP H10161864 A JPH10161864 A JP H10161864A
- Authority
- JP
- Japan
- Prior art keywords
- software
- bytecode
- user computer
- decryption key
- encryption section
- 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.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
(57)【要約】
【課題】 ソフトウェアの使用機能に着目し、ソフトウ
エアの使用回数などに応じた使用料の徴収を可能とし、
また、不正コピーを防止できる保護方式を提供する。 【解決手段】 ソースコードをコンパイルして得られた
バイトコードを利用者コンピュータ3に配布し、利用者
コンピュータ3では、バイトコードをインタプリタによ
って解釈実行するシステムにおいて、配布されるバイト
コードの一部を暗号区間として暗号化する。ネットワー
ク2に接続され暗号区間に対応する復号鍵を保持する課
金センタ1を設ける。利用者コンピュータ3には、課金
センタ1から復号鍵を取得する復号鍵受信部34と、配
布されたバイトコード中での暗号区間の開始と終了とを
検出する暗号区間検出部33と、復号鍵を用いて暗号区
間内のバイトコードを復号する復号化部35と、復号さ
れたバイトコードを解釈実行するインタプリタ部32
と、を設ける。
エアの使用回数などに応じた使用料の徴収を可能とし、
また、不正コピーを防止できる保護方式を提供する。 【解決手段】 ソースコードをコンパイルして得られた
バイトコードを利用者コンピュータ3に配布し、利用者
コンピュータ3では、バイトコードをインタプリタによ
って解釈実行するシステムにおいて、配布されるバイト
コードの一部を暗号区間として暗号化する。ネットワー
ク2に接続され暗号区間に対応する復号鍵を保持する課
金センタ1を設ける。利用者コンピュータ3には、課金
センタ1から復号鍵を取得する復号鍵受信部34と、配
布されたバイトコード中での暗号区間の開始と終了とを
検出する暗号区間検出部33と、復号鍵を用いて暗号区
間内のバイトコードを復号する復号化部35と、復号さ
れたバイトコードを解釈実行するインタプリタ部32
と、を設ける。
Description
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はいわゆる中間コード
としてのバイトコードを使用するソフトウエアに対する
保護方式に関し、特に、ソフトウエアの使用量に比例し
た使用料金の徴収を可能とするソフトウエアの保護方式
に関する。
としてのバイトコードを使用するソフトウエアに対する
保護方式に関し、特に、ソフトウエアの使用量に比例し
た使用料金の徴収を可能とするソフトウエアの保護方式
に関する。
【0002】
【従来の技術】ソフトウエアの中には、Javaアプレ
ットやある種のアプリケーションなど、ソフトウエアの
開発時にはコンパイラによりソースコードをバイトコー
ド(中間コード)に変換し、このバイトコードを利用者
に配布し、ソフトウエアの実行時にインタプリタにより
このバイトコードを、順次、解釈実行するものがある。
この利用者側のコンピュータには、バイトコードを解釈
実行するためのインタプリタを予め用意しておくものと
する。この方法では、利用者側のコンピュータに要求さ
れるハードウエアがそれほど大きくなくて済む上、配布
されるバイトコード自体も比較的コンパクトなため、ネ
ットワークなどの使用を前提として、例えば、ネットワ
ークに接続された多数のコンピュータにソフトウエアを
同時にインストールしたりするのに有効な技術として、
注目を集めている。
ットやある種のアプリケーションなど、ソフトウエアの
開発時にはコンパイラによりソースコードをバイトコー
ド(中間コード)に変換し、このバイトコードを利用者
に配布し、ソフトウエアの実行時にインタプリタにより
このバイトコードを、順次、解釈実行するものがある。
この利用者側のコンピュータには、バイトコードを解釈
実行するためのインタプリタを予め用意しておくものと
する。この方法では、利用者側のコンピュータに要求さ
れるハードウエアがそれほど大きくなくて済む上、配布
されるバイトコード自体も比較的コンパクトなため、ネ
ットワークなどの使用を前提として、例えば、ネットワ
ークに接続された多数のコンピュータにソフトウエアを
同時にインストールしたりするのに有効な技術として、
注目を集めている。
【0003】ところで、従来、パーソナルコンピュータ
などのアプリケーションソフトウエアは、一般に、これ
らソフトウエアの実行形式プログラムを格納した記録媒
体を用いて、買い取り方式により販売されている。しか
しながら、買い取り方式では、流通経費を相対的に低減
したいという動機づけ(インセンティブ)が働くので、
ソフトウエアの機能が必要以上に肥大化し、ほとんど使
用しない機能まで含めて利用者は高額の費用を負担せざ
るを得なくなることが多い。この場合、購入代金は、利
用者がそのソフトウエアを実際に使用した頻度によら
ず、一定である。また、機能が必要以上に肥大化した際
には、そのソフトウエアを実行させるために必要なハー
ドウエア量も増大し、動作速度が低下する。さらに、実
際にソフトウエアを購入して実行してみなければ、利用
者が必要とする機能が満足されているか否かを判断する
ことができない。
などのアプリケーションソフトウエアは、一般に、これ
らソフトウエアの実行形式プログラムを格納した記録媒
体を用いて、買い取り方式により販売されている。しか
しながら、買い取り方式では、流通経費を相対的に低減
したいという動機づけ(インセンティブ)が働くので、
ソフトウエアの機能が必要以上に肥大化し、ほとんど使
用しない機能まで含めて利用者は高額の費用を負担せざ
るを得なくなることが多い。この場合、購入代金は、利
用者がそのソフトウエアを実際に使用した頻度によら
ず、一定である。また、機能が必要以上に肥大化した際
には、そのソフトウエアを実行させるために必要なハー
ドウエア量も増大し、動作速度が低下する。さらに、実
際にソフトウエアを購入して実行してみなければ、利用
者が必要とする機能が満足されているか否かを判断する
ことができない。
【0004】最近では、買い取り方式の変形として、暗
号化したソフトウェアをCD−ROMなどの記録媒体ま
たはネットワーク経由で配布し、電話、ファクシミリ、
手紙(郵送)または電子メールによる購入手続きの後、
復号鍵を通知する方式も採用されている。この場合で
も、使用回数にかかわらず同一の金額を支払わなければ
ならず、使用回数または使用時間当たりの価格には大き
な幅がある。さらにこの方式では、復号したソフトウェ
アを不正にコピーして使用することを防ぐことができ
ず、著作権者の権利の保護に万全を期することができな
い。
号化したソフトウェアをCD−ROMなどの記録媒体ま
たはネットワーク経由で配布し、電話、ファクシミリ、
手紙(郵送)または電子メールによる購入手続きの後、
復号鍵を通知する方式も採用されている。この場合で
も、使用回数にかかわらず同一の金額を支払わなければ
ならず、使用回数または使用時間当たりの価格には大き
な幅がある。さらにこの方式では、復号したソフトウェ
アを不正にコピーして使用することを防ぐことができ
ず、著作権者の権利の保護に万全を期することができな
い。
【0005】
【発明が解決しようとする課題】以上説明したように、
アプリケーションソフトウエアの現行の販売方法では、
利用者の側には、不要な機能にまで代金を払っていると
いう不満があり、一方、著作権者の側には権利が十分保
護されないという不満がある。
アプリケーションソフトウエアの現行の販売方法では、
利用者の側には、不要な機能にまで代金を払っていると
いう不満があり、一方、著作権者の側には権利が十分保
護されないという不満がある。
【0006】本発明の目的は、ソフトウェアの使用機能
に着目し、ソフトウエアの使用量、使用回数などに応じ
た使用料の徴収を可能とするとともに、ソフトウエアの
不正なコピーを防ぐことができるソフトウェアの保護方
式を提供することにある。
に着目し、ソフトウエアの使用量、使用回数などに応じ
た使用料の徴収を可能とするとともに、ソフトウエアの
不正なコピーを防ぐことができるソフトウェアの保護方
式を提供することにある。
【0007】
【課題を解決するための手段】本発明のソフトウエア保
護方式は、ソフトウエアのソースコードをコンパイラに
より変換して得られたバイトコードを利用者コンピュー
タに配布し、利用者コンピュータでは、バイトコードを
インタプリタによって、順次、解釈実行するソフトウエ
ア実行システムにおける、ソフトウエアの保護方式にお
いて、ソフトウエアごとに利用者コンピュータに配布さ
れたバイトコードの少なくとも一部の区間が暗号区間と
して暗号化されており、利用者コンピュータが接続され
たネットワークと、ネットワークに接続され暗号区間に
対応する復号鍵を保持する課金センタとを有し、利用者
コンピュータが、課金センタから復号鍵を取得する復号
鍵取得手段と、配布されたバイトコード中での暗号区間
の開始と終了とを検出する暗号区間検出手段と、復号鍵
を用いて暗号区間内のバイトコードを復号する復号手段
と、復号手段で復号されたバイトコードを、順次、解釈
実行するインタプリタ手段と、を備えている。
護方式は、ソフトウエアのソースコードをコンパイラに
より変換して得られたバイトコードを利用者コンピュー
タに配布し、利用者コンピュータでは、バイトコードを
インタプリタによって、順次、解釈実行するソフトウエ
ア実行システムにおける、ソフトウエアの保護方式にお
いて、ソフトウエアごとに利用者コンピュータに配布さ
れたバイトコードの少なくとも一部の区間が暗号区間と
して暗号化されており、利用者コンピュータが接続され
たネットワークと、ネットワークに接続され暗号区間に
対応する復号鍵を保持する課金センタとを有し、利用者
コンピュータが、課金センタから復号鍵を取得する復号
鍵取得手段と、配布されたバイトコード中での暗号区間
の開始と終了とを検出する暗号区間検出手段と、復号鍵
を用いて暗号区間内のバイトコードを復号する復号手段
と、復号手段で復号されたバイトコードを、順次、解釈
実行するインタプリタ手段と、を備えている。
【0008】すなわち、本発明では、CD−ROMやフ
ロッピーディスクなどの記録媒体により、あるいは、ネ
ットワークを介して流通するソフトウエアは、バイトコ
ードであって、その一部がソフトウエア開発時に暗号化
されている。そして、課金センタを設けて復号鍵を課金
センタで集中して管理し、利用者コンピュータ側からの
要求にしたがいネットワークを介して復号鍵が配送され
る。そして利用者コンピュータとして、バイトコードを
インタプリタによって1命令ずつ解釈実行するものを使
用する。
ロッピーディスクなどの記録媒体により、あるいは、ネ
ットワークを介して流通するソフトウエアは、バイトコ
ードであって、その一部がソフトウエア開発時に暗号化
されている。そして、課金センタを設けて復号鍵を課金
センタで集中して管理し、利用者コンピュータ側からの
要求にしたがいネットワークを介して復号鍵が配送され
る。そして利用者コンピュータとして、バイトコードを
インタプリタによって1命令ずつ解釈実行するものを使
用する。
【0009】本発明によれば、バイトコードの一部を暗
号化し、復号鍵はその都度配送するようにしてソフトウ
エアの実行中に復号処理を行うので、いずれの時点にお
いても、利用者コンピュータ側では、復号されたソフト
ウエアが磁気ディスクなどのファイルシステム内に格納
されることがなく、ソフトウエアを不正にコピーして使
用することが防止される。
号化し、復号鍵はその都度配送するようにしてソフトウ
エアの実行中に復号処理を行うので、いずれの時点にお
いても、利用者コンピュータ側では、復号されたソフト
ウエアが磁気ディスクなどのファイルシステム内に格納
されることがなく、ソフトウエアを不正にコピーして使
用することが防止される。
【0010】課金センタでは、復号鍵の配布履歴に基づ
き、あるいは、利用者コンピュータ側からネットワーク
を介して集めた使用記録すなわち使用状況に関するデー
タに基づいて課金処理を行うことができ、これにより、
使用回数などに比例した使用料の徴収が保証される。
き、あるいは、利用者コンピュータ側からネットワーク
を介して集めた使用記録すなわち使用状況に関するデー
タに基づいて課金処理を行うことができ、これにより、
使用回数などに比例した使用料の徴収が保証される。
【0011】本発明では、暗号化に使用される暗号鍵と
してソフトウェア全体で1つの鍵またはソフトウェアの
機能の単位で異なる複数の鍵が使用でき、これら暗号鍵
に対応して1あるいは複数の復号鍵が使用される。複数
の鍵を使用する場合には、ソフトウェア内の暗号区間の
開始を指定するバイトコードのオペランドに暗号区間I
Dが設定され、暗号区間IDに対応させて復号鍵が管理
されるようにすればよい。復号鍵の配送に当たっては、
適切な認証および暗号化を実施することが好ましい。
してソフトウェア全体で1つの鍵またはソフトウェアの
機能の単位で異なる複数の鍵が使用でき、これら暗号鍵
に対応して1あるいは複数の復号鍵が使用される。複数
の鍵を使用する場合には、ソフトウェア内の暗号区間の
開始を指定するバイトコードのオペランドに暗号区間I
Dが設定され、暗号区間IDに対応させて復号鍵が管理
されるようにすればよい。復号鍵の配送に当たっては、
適切な認証および暗号化を実施することが好ましい。
【0012】
【発明の実施の形態】次に、本発明の実施の形態につい
て、図面を参照して説明する。図1は本発明の実施の一
形態のソフトウエアの保護方式の構成を示すブロック図
である。
て、図面を参照して説明する。図1は本発明の実施の一
形態のソフトウエアの保護方式の構成を示すブロック図
である。
【0013】このソフトウエアの保護方式では、課金セ
ンタ1と利用者コンピュータ(実行マシン)3とが、ネ
ットワーク2を介して接続している。ここでは、利用者
コンピュータ3は、アプリケーションソフトウエアとし
て、実行形式プログラムを直接実行するのではなく、ソ
ースコードをコンパイルして得られたバイトコード(中
間コード)が配布され、この配布されたバイトコードを
インタプリタによって1命令ずつ解釈して実行するよう
に構成されている。そして、利用者コンピュータ3に配
布されるバイトコードは、その一部(暗号区間という)
が暗号化されており、暗号区間の復号に必要な復号鍵
は、利用者コンピュータ3でのソフトウエアの解釈実行
の都度、課金センタ1からネットワーク2を介して利用
者コンピュータ3に転送される。また、ソースコードか
ら一部暗号化されたバイトコードを生成し、利用者コン
ピュータ3に配布するために、開発センタ4が設けられ
ている。開発センタ4から利用者コンピュータ3へのバ
イトコードの配布は、ネットワークを介してもよいし、
CD−ROMなどの記録媒体を介してもよい。図1では
利用者コンピュータ3が1つしか描かれていないが、当
然のことながら、ネットワーク2には多数の利用者コン
ピュータ3を接続することができる。
ンタ1と利用者コンピュータ(実行マシン)3とが、ネ
ットワーク2を介して接続している。ここでは、利用者
コンピュータ3は、アプリケーションソフトウエアとし
て、実行形式プログラムを直接実行するのではなく、ソ
ースコードをコンパイルして得られたバイトコード(中
間コード)が配布され、この配布されたバイトコードを
インタプリタによって1命令ずつ解釈して実行するよう
に構成されている。そして、利用者コンピュータ3に配
布されるバイトコードは、その一部(暗号区間という)
が暗号化されており、暗号区間の復号に必要な復号鍵
は、利用者コンピュータ3でのソフトウエアの解釈実行
の都度、課金センタ1からネットワーク2を介して利用
者コンピュータ3に転送される。また、ソースコードか
ら一部暗号化されたバイトコードを生成し、利用者コン
ピュータ3に配布するために、開発センタ4が設けられ
ている。開発センタ4から利用者コンピュータ3へのバ
イトコードの配布は、ネットワークを介してもよいし、
CD−ROMなどの記録媒体を介してもよい。図1では
利用者コンピュータ3が1つしか描かれていないが、当
然のことながら、ネットワーク2には多数の利用者コン
ピュータ3を接続することができる。
【0014】以下、課金センタ1、利用者コンピュータ
3及び課金センタ4の構成について、詳しく説明する。
なお、図1において破線で表わされた各構成要素は、本
実施の形態における付加的な構成要素である。
3及び課金センタ4の構成について、詳しく説明する。
なお、図1において破線で表わされた各構成要素は、本
実施の形態における付加的な構成要素である。
【0015】課金センタ1には、利用者コンピュータ3
に配布する復号鍵を格納する鍵格納部11と、利用者コ
ンピュータ3側からの要求に応じてネットワーク2を介
し復号鍵をその利用者コンピュータに送信する復号鍵送
信部12と、課金の集計処理を行う課金集計部13とが
設けられている。さらに、ネットワーク2を介して利用
者コンピュータ3がその利用者コンピュータ3でのソフ
トウエアの使用状況を送信する場合には、この使用状況
のデータを受信するために、使用状況受信部14を課金
センタ1内に設ければよい。課金集計部13は、復号鍵
送信部12での復号鍵の送信の履歴に応じ、使用状況受
信部14が設けられている場合には受信した使用状況の
データに応じ、利用者ごとの課金を集計する。
に配布する復号鍵を格納する鍵格納部11と、利用者コ
ンピュータ3側からの要求に応じてネットワーク2を介
し復号鍵をその利用者コンピュータに送信する復号鍵送
信部12と、課金の集計処理を行う課金集計部13とが
設けられている。さらに、ネットワーク2を介して利用
者コンピュータ3がその利用者コンピュータ3でのソフ
トウエアの使用状況を送信する場合には、この使用状況
のデータを受信するために、使用状況受信部14を課金
センタ1内に設ければよい。課金集計部13は、復号鍵
送信部12での復号鍵の送信の履歴に応じ、使用状況受
信部14が設けられている場合には受信した使用状況の
データに応じ、利用者ごとの課金を集計する。
【0016】利用者コンピュータ3は、開発センタ4で
生成したアプリケーションソフトウエア(課金対象のソ
フトウエア)のバイトコードを格納するバイトコード格
納部31と、バイトコードを解釈実行するインタプリタ
部32と、バイトコード格納部31に格納されたバイト
コード中の暗号区間を検出する暗号区間検出部33と、
課金センタ1に対して復号鍵の送信を要求しネットワー
ク2を介して送信されてきた復号鍵を受信する復号鍵受
信部34と、復号鍵受信部34で受信した復号鍵に基づ
き、暗号区間検出部33で検出された暗号区間のバイト
コードを復号する復号化部35とを備えている。この利
用者コンピュータ3には、復号化部35で復号された、
暗号区間のバイトコードを一時的に格納する作業領域を
設けるようにしてもよい。この作業領域は、例えば利用
者コンピュータ3の主記憶メモリ上の領域として確保す
ることができる。また、課金センタ1側にソフトウエア
の使用状況を通知するために、復号化部35での復号処
理の実行を検出してソフトウエアの使用状況を検出して
記憶する使用状況検出部37と、検出された使用状況に
関するデータを課金センタ1側にネットワークを介して
送信するための使用状況送信部38とを、利用者コンピ
ュータ3内に設けるようにしてもよい。
生成したアプリケーションソフトウエア(課金対象のソ
フトウエア)のバイトコードを格納するバイトコード格
納部31と、バイトコードを解釈実行するインタプリタ
部32と、バイトコード格納部31に格納されたバイト
コード中の暗号区間を検出する暗号区間検出部33と、
課金センタ1に対して復号鍵の送信を要求しネットワー
ク2を介して送信されてきた復号鍵を受信する復号鍵受
信部34と、復号鍵受信部34で受信した復号鍵に基づ
き、暗号区間検出部33で検出された暗号区間のバイト
コードを復号する復号化部35とを備えている。この利
用者コンピュータ3には、復号化部35で復号された、
暗号区間のバイトコードを一時的に格納する作業領域を
設けるようにしてもよい。この作業領域は、例えば利用
者コンピュータ3の主記憶メモリ上の領域として確保す
ることができる。また、課金センタ1側にソフトウエア
の使用状況を通知するために、復号化部35での復号処
理の実行を検出してソフトウエアの使用状況を検出して
記憶する使用状況検出部37と、検出された使用状況に
関するデータを課金センタ1側にネットワークを介して
送信するための使用状況送信部38とを、利用者コンピ
ュータ3内に設けるようにしてもよい。
【0017】利用者コンピュータ3において、バイトコ
ード格納部31は、例えば、ハードディスク装置などの
記憶装置によって構成される。また、インタプリタ部3
2は、暗号区間でない部分のバイトコードについては、
バイトコード格納部31から読み出されたバイトコード
をそのまま解釈実行し、暗号区間のバイトコードについ
ては、復号されて復号化部35から出力されるバイトコ
ード(作業領域36が設けられている場合は復号され作
業領域36に格納されたバイトコード)を解釈実行す
る。インタプリタ部32は、具体的には、バイトコード
を1命令ずつ解釈して実行するためのインタプリタと呼
ばれるソフトウエアと、インタプリタを実行するCPU
(中央処理装置)などによって、構成される。また、復
号鍵受信部34が復号鍵の送信を要求するのは、例え
ば、暗号区間を含むバイトコードで表わされるソフトウ
エアを起動するとき、あるいは、実行中のソフトウエア
のバイトコードで暗号区間を検出したとき、などであ
る。
ード格納部31は、例えば、ハードディスク装置などの
記憶装置によって構成される。また、インタプリタ部3
2は、暗号区間でない部分のバイトコードについては、
バイトコード格納部31から読み出されたバイトコード
をそのまま解釈実行し、暗号区間のバイトコードについ
ては、復号されて復号化部35から出力されるバイトコ
ード(作業領域36が設けられている場合は復号され作
業領域36に格納されたバイトコード)を解釈実行す
る。インタプリタ部32は、具体的には、バイトコード
を1命令ずつ解釈して実行するためのインタプリタと呼
ばれるソフトウエアと、インタプリタを実行するCPU
(中央処理装置)などによって、構成される。また、復
号鍵受信部34が復号鍵の送信を要求するのは、例え
ば、暗号区間を含むバイトコードで表わされるソフトウ
エアを起動するとき、あるいは、実行中のソフトウエア
のバイトコードで暗号区間を検出したとき、などであ
る。
【0018】利用者コンピュータ3は、パーソナルコン
ピュータなどの形態をとるものであって、ここでは具体
的には図示していないが、キーボードやマウスなどの入
力手段、液晶ディスプレイやCRTなどの出力手段、イ
ンタプリタ部32の構成要素ともなるCPU、さらに
は、メモリ、各種の記憶装置などを備えている。
ピュータなどの形態をとるものであって、ここでは具体
的には図示していないが、キーボードやマウスなどの入
力手段、液晶ディスプレイやCRTなどの出力手段、イ
ンタプリタ部32の構成要素ともなるCPU、さらに
は、メモリ、各種の記憶装置などを備えている。
【0019】開発センタ4は、ソースコードを格納する
ソースコード格納部41と、ソースコード格納部41に
格納されたソースコードをコンパイルしてバイトコード
とするコンパイル部42と、コンパイル部42の指示に
よってバイトコードの一部の暗号化処理を行う暗号化部
43と、生成したバイトコードを格納するバイトコード
格納部44とを備えている。暗号化部43での暗号化に
対応する復号鍵が、課金センタ1の鍵格納部11に格納
される。バイトコードでの暗号区間の指定は、ソースコ
ードに、暗号区間の開始や終了を示すソースコードを記
述することで行い、コンパイル部42は、このようなソ
ースコードを検出した場合、暗号区間の開始や終了を表
わすバイトコードを生成するともに、この区間内のバイ
トコードを暗号化部43に渡して暗号化させ、暗号化後
のバイトコードをバイトコード格納部44内に格納す
る。
ソースコード格納部41と、ソースコード格納部41に
格納されたソースコードをコンパイルしてバイトコード
とするコンパイル部42と、コンパイル部42の指示に
よってバイトコードの一部の暗号化処理を行う暗号化部
43と、生成したバイトコードを格納するバイトコード
格納部44とを備えている。暗号化部43での暗号化に
対応する復号鍵が、課金センタ1の鍵格納部11に格納
される。バイトコードでの暗号区間の指定は、ソースコ
ードに、暗号区間の開始や終了を示すソースコードを記
述することで行い、コンパイル部42は、このようなソ
ースコードを検出した場合、暗号区間の開始や終了を表
わすバイトコードを生成するともに、この区間内のバイ
トコードを暗号化部43に渡して暗号化させ、暗号化後
のバイトコードをバイトコード格納部44内に格納す
る。
【0020】以上説明したシステムにおいて、復号鍵受
信部34は復号鍵取得手段であり、暗号区間検出部33
は暗号区間検出手段であり、復号化部35は復号手段で
あり、インタプリタ部32はインタプリタ手段であり、
使用状況検出部37及び使用状況送信部38は使用記録
検出手段である。さらに、コンパイル部42がコンパイ
ル手段であり、暗号化部43が暗号化手段である。
信部34は復号鍵取得手段であり、暗号区間検出部33
は暗号区間検出手段であり、復号化部35は復号手段で
あり、インタプリタ部32はインタプリタ手段であり、
使用状況検出部37及び使用状況送信部38は使用記録
検出手段である。さらに、コンパイル部42がコンパイ
ル手段であり、暗号化部43が暗号化手段である。
【0021】次に、上述したソフトウエアの保護方式の
動作について、具体的な実施例を用いて説明する。
動作について、具体的な実施例を用いて説明する。
【0022】《実施例1》実施例1は、基本構成、すな
わち、使用状況受信部14や作業領域36、使用状況検
出部37、使用状況送信部38を含まない構成について
のものである。実施例1での処理の流れが図2に示され
ている。
わち、使用状況受信部14や作業領域36、使用状況検
出部37、使用状況送信部38を含まない構成について
のものである。実施例1での処理の流れが図2に示され
ている。
【0023】課金対象のソフトウエアが、予めバイトコ
ードとして利用者コンピュータ3のバイトコード格納部
31に格納されている。このバイトコードでは、予め一
部が暗号化されており、上述したように、暗号区間の開
始及び終了を示すバイトコードが埋め込まれている。暗
号区間は1箇所または複数箇所存在するが、ここでは、
暗号区間が複数箇所存在する場合でも、復号のための復
号鍵は1種類であるとする。
ードとして利用者コンピュータ3のバイトコード格納部
31に格納されている。このバイトコードでは、予め一
部が暗号化されており、上述したように、暗号区間の開
始及び終了を示すバイトコードが埋め込まれている。暗
号区間は1箇所または複数箇所存在するが、ここでは、
暗号区間が複数箇所存在する場合でも、復号のための復
号鍵は1種類であるとする。
【0024】利用者コンピュータ3では、課金対象のア
プリケーションソフトウェアが起動されると(ステップ
101)、復号鍵受信部34が、このソフトウェアの実
行前に、ネットワーク2を介し、課金センタ1からこの
ソフトウェアの復号鍵を取得する(ステップ102)。
復号鍵の配送には、適切な認証及び暗号化を実施するも
のとする。暗号区間検出部33は、暗号区間が開始した
かどうか、すなわち暗号区間開始を表わすバイトコード
(暗号区間開始バイトコード)があるかを常時監視して
いる(ステップ103)。暗号区間開始でない場合に
は、インタプリタ部32が、1命令ずつバイトコードを
バイトコード格納部31から読み出し、解釈実行し(ス
テップ104)、そののちステップ103に戻る。ステ
ップ104を含むループは、暗号区間開始バイトコード
を検出するまで繰り返される。
プリケーションソフトウェアが起動されると(ステップ
101)、復号鍵受信部34が、このソフトウェアの実
行前に、ネットワーク2を介し、課金センタ1からこの
ソフトウェアの復号鍵を取得する(ステップ102)。
復号鍵の配送には、適切な認証及び暗号化を実施するも
のとする。暗号区間検出部33は、暗号区間が開始した
かどうか、すなわち暗号区間開始を表わすバイトコード
(暗号区間開始バイトコード)があるかを常時監視して
いる(ステップ103)。暗号区間開始でない場合に
は、インタプリタ部32が、1命令ずつバイトコードを
バイトコード格納部31から読み出し、解釈実行し(ス
テップ104)、そののちステップ103に戻る。ステ
ップ104を含むループは、暗号区間開始バイトコード
を検出するまで繰り返される。
【0025】ステップ103で暗号区間開始バイトコー
ドを検出した場合、すなわち暗号区間が開始した場合に
は、暗号区間検出部33は、暗号区間終了であるかどう
か、すなわち暗号区間終了を示すバイトコード(暗号区
間終了バイトコード)を常時監視する(ステップ10
5)。暗号区間終了であればステップ103に戻り、暗
号区間終了でなければ、復号化部35が、課金センタか
ら復号鍵受信部34が取得した復号鍵を用いて、1命令
ずつ読み出されたバイトコードを復号し(ステップ10
6)、このように復号されたバイトコードをインタプリ
タ部32が解釈実行し(ステップ107)、ステップ1
05に戻る。このステップ106及びステップ107を
含むループは、暗号区間終了バイトコードを検出するま
で、すなわち暗号区間終了を検出するまで繰り返され
る。
ドを検出した場合、すなわち暗号区間が開始した場合に
は、暗号区間検出部33は、暗号区間終了であるかどう
か、すなわち暗号区間終了を示すバイトコード(暗号区
間終了バイトコード)を常時監視する(ステップ10
5)。暗号区間終了であればステップ103に戻り、暗
号区間終了でなければ、復号化部35が、課金センタか
ら復号鍵受信部34が取得した復号鍵を用いて、1命令
ずつ読み出されたバイトコードを復号し(ステップ10
6)、このように復号されたバイトコードをインタプリ
タ部32が解釈実行し(ステップ107)、ステップ1
05に戻る。このステップ106及びステップ107を
含むループは、暗号区間終了バイトコードを検出するま
で、すなわち暗号区間終了を検出するまで繰り返され
る。
【0026】結局、暗号区間終了バイトコードを検出し
た場合には、暗号区間開始バイトコードを再度検出する
まで、復号を行うことなしに、インタプリタ部32が1
命令ずつバイトコードを読み出して解釈実行する。
た場合には、暗号区間開始バイトコードを再度検出する
まで、復号を行うことなしに、インタプリタ部32が1
命令ずつバイトコードを読み出して解釈実行する。
【0027】以上、利用者コンピュータ3での処理を説
明したが、このとき、課金センタ1では、復号鍵送信部
12による復号鍵の送信履歴に基づき、課金集計部13
が利用者ごとの課金処理を実行する。
明したが、このとき、課金センタ1では、復号鍵送信部
12による復号鍵の送信履歴に基づき、課金集計部13
が利用者ごとの課金処理を実行する。
【0028】《実施例2》実施例1ではアプリケーショ
ンプログラムごとに1つの復号鍵が用いられていたが、
この実施例2は、アプリケーションプログラムのバイト
コード中に複数の暗号区間が設定されるとともに、典型
的には暗号区間ごとに異なる復号鍵を用いることによ
り、全体として複数の復号鍵が用いられていることで、
実施例1と異なっている。暗号区間ごとにそこで使用す
べき復号鍵を特定するために、暗号区間開始バイトコー
ドには暗号区間を識別する暗号区間IDが埋め込まれて
おり、暗号区間IDとその暗号区間を復号するための復
号鍵が対で管理されている。その他の点では、この実施
例2は実施例1と同様の構成である。実施例2での処理
の流れが図3に示されている。
ンプログラムごとに1つの復号鍵が用いられていたが、
この実施例2は、アプリケーションプログラムのバイト
コード中に複数の暗号区間が設定されるとともに、典型
的には暗号区間ごとに異なる復号鍵を用いることによ
り、全体として複数の復号鍵が用いられていることで、
実施例1と異なっている。暗号区間ごとにそこで使用す
べき復号鍵を特定するために、暗号区間開始バイトコー
ドには暗号区間を識別する暗号区間IDが埋め込まれて
おり、暗号区間IDとその暗号区間を復号するための復
号鍵が対で管理されている。その他の点では、この実施
例2は実施例1と同様の構成である。実施例2での処理
の流れが図3に示されている。
【0029】利用者コンピュータ3では、課金対象のア
プリケーションソフトウェアが起動されると(ステップ
111)、復号鍵受信部34が、このソフトウェアの実
行前に、ネットワーク2で接続された課金センタ1か
ら、暗号区間IDと対応付けられた復号鍵を複数個一括
して取得する(ステップ112)。暗号区間検出部33
は、暗号区間が開始したかどうかを常時監視しており
(ステップ113)、暗号区間開始でない場合は、実施
例1と同様に、インタプリタ部32は、1命令ずつバイ
トコードを解釈実行し(ステップ114)、ステップ1
13に戻る。
プリケーションソフトウェアが起動されると(ステップ
111)、復号鍵受信部34が、このソフトウェアの実
行前に、ネットワーク2で接続された課金センタ1か
ら、暗号区間IDと対応付けられた復号鍵を複数個一括
して取得する(ステップ112)。暗号区間検出部33
は、暗号区間が開始したかどうかを常時監視しており
(ステップ113)、暗号区間開始でない場合は、実施
例1と同様に、インタプリタ部32は、1命令ずつバイ
トコードを解釈実行し(ステップ114)、ステップ1
13に戻る。
【0030】ステップ113で暗号区間が開始した場合
には、復号鍵受信部34は、暗号区間開始バイトコード
で指定された暗号区間IDに対応した復号鍵を選択する
(ステップ115)。そして、暗号区間終了であるかど
うかが判断され(ステップ116)、暗号区間終了であ
ればステップ113に戻り、暗号区間終了でなければ、
復号化部35が、ステップ115で選択された復号鍵に
よって、1命令ずつ読み出されたバイトコードを復号し
(ステップ117)、復号されたバイトコードをインタ
プリタ部32が解釈実行し(ステップ118)、ステッ
プ116に戻る。このステップ117及びステップ11
8を含むループは、暗号区間終了を検出するまで繰り返
される。
には、復号鍵受信部34は、暗号区間開始バイトコード
で指定された暗号区間IDに対応した復号鍵を選択する
(ステップ115)。そして、暗号区間終了であるかど
うかが判断され(ステップ116)、暗号区間終了であ
ればステップ113に戻り、暗号区間終了でなければ、
復号化部35が、ステップ115で選択された復号鍵に
よって、1命令ずつ読み出されたバイトコードを復号し
(ステップ117)、復号されたバイトコードをインタ
プリタ部32が解釈実行し(ステップ118)、ステッ
プ116に戻る。このステップ117及びステップ11
8を含むループは、暗号区間終了を検出するまで繰り返
される。
【0031】この実施例2でも、課金センタ1では、復
号鍵送信部12による復号鍵の送信履歴に基づき、課金
集計部13が利用者ごとの課金処理を実行する。
号鍵送信部12による復号鍵の送信履歴に基づき、課金
集計部13が利用者ごとの課金処理を実行する。
【0032】《実施例3》この実施例3は、実施例2と
同様のものであるが、アプリケーションソフトウエアの
実行開始後に暗号区間ごとの復号鍵をその都度取得する
点で、実施例2と異なっている。実施例3での処理の流
れが図4に示されている。この実施例3でも、アプリケ
ーションソフトウエアには複数の暗号区間が設定され、
それぞれ異なる暗号区間IDで特定される複数の復号鍵
が使用され、暗号区間IDが暗号区間開始バイトコード
に埋め込まれている。
同様のものであるが、アプリケーションソフトウエアの
実行開始後に暗号区間ごとの復号鍵をその都度取得する
点で、実施例2と異なっている。実施例3での処理の流
れが図4に示されている。この実施例3でも、アプリケ
ーションソフトウエアには複数の暗号区間が設定され、
それぞれ異なる暗号区間IDで特定される複数の復号鍵
が使用され、暗号区間IDが暗号区間開始バイトコード
に埋め込まれている。
【0033】利用者コンピュータ3では、課金対象のア
プリケーションソフトウェアが起動されると(ステップ
121)、そのまま、このアプリケーションプログラム
の実行が開始される。暗号区間検出部33は、暗号区間
が開始したかどうかを常時監視しており(ステップ12
2)、暗号区間開始でない場合は、実施例1と同様に、
インタプリタ部32が1命令ずつバイトコードを解釈実
行し(ステップ123)、ステップ122に戻る。
プリケーションソフトウェアが起動されると(ステップ
121)、そのまま、このアプリケーションプログラム
の実行が開始される。暗号区間検出部33は、暗号区間
が開始したかどうかを常時監視しており(ステップ12
2)、暗号区間開始でない場合は、実施例1と同様に、
インタプリタ部32が1命令ずつバイトコードを解釈実
行し(ステップ123)、ステップ122に戻る。
【0034】ステップ122で暗号区間が開始が検出さ
れた場合には、復号鍵受信部34が、暗号区間開始バイ
トコードで指定された暗号区間IDに対応した復号鍵の
送信を課金センタ1側に要求し、その鍵を取得する(ス
テップ124)。そして、暗号区間終了であるかどうか
が判断され(ステップ125)、暗号区間終了であれば
ステップ122に戻り、暗号区間終了でなければ、復号
化部35が、ステップ124で取得された復号鍵によっ
て、1命令ずつ読み出されたバイトコードを復号し(ス
テップ126)、復号されたバイトコードをインタプリ
タ部が解釈実行し(ステップ127)、ステップ125
に戻る。このステップ126及びステップ127を含む
ループは、暗号区間終了を検出するまで繰り返される。
れた場合には、復号鍵受信部34が、暗号区間開始バイ
トコードで指定された暗号区間IDに対応した復号鍵の
送信を課金センタ1側に要求し、その鍵を取得する(ス
テップ124)。そして、暗号区間終了であるかどうか
が判断され(ステップ125)、暗号区間終了であれば
ステップ122に戻り、暗号区間終了でなければ、復号
化部35が、ステップ124で取得された復号鍵によっ
て、1命令ずつ読み出されたバイトコードを復号し(ス
テップ126)、復号されたバイトコードをインタプリ
タ部が解釈実行し(ステップ127)、ステップ125
に戻る。このステップ126及びステップ127を含む
ループは、暗号区間終了を検出するまで繰り返される。
【0035】この実施例3では、暗号区間IDで特定さ
れる暗号区間ごとの復号鍵の送信履歴に基づき、課金集
計部13での利用者ごとの課金処理が実行される。した
がって、アプリケーションプログラムに複数の機能が含
まれているとして、各機能ごとの使用頻度に応じた課金
が可能となる。具体的には、利用者は、その使用しなか
った機能に対する使用量を払う必要がなくなる。
れる暗号区間ごとの復号鍵の送信履歴に基づき、課金集
計部13での利用者ごとの課金処理が実行される。した
がって、アプリケーションプログラムに複数の機能が含
まれているとして、各機能ごとの使用頻度に応じた課金
が可能となる。具体的には、利用者は、その使用しなか
った機能に対する使用量を払う必要がなくなる。
【0036】《実施例4》実施例1では、復号鍵を用い
た復号の際、バイトコードの1命令ごとに、復号と解釈
実行が行われている(図1のステップ117、118の
ループ)。これに対し、この実施例4では、暗号区間を
検出したらその暗号区間内のバイトコードを一括して復
号して作業領域36に格納し、その後、インタプリタ部
32が復号されたバイトコードを1命令ずつ実行する。
その他の点では、実施例4は実施例1と同様の構成であ
り、復号鍵の種類は、暗号区間が複数ある場合でも、1
つである。図5は実施例4での処理を示す流れ図であ
る。
た復号の際、バイトコードの1命令ごとに、復号と解釈
実行が行われている(図1のステップ117、118の
ループ)。これに対し、この実施例4では、暗号区間を
検出したらその暗号区間内のバイトコードを一括して復
号して作業領域36に格納し、その後、インタプリタ部
32が復号されたバイトコードを1命令ずつ実行する。
その他の点では、実施例4は実施例1と同様の構成であ
り、復号鍵の種類は、暗号区間が複数ある場合でも、1
つである。図5は実施例4での処理を示す流れ図であ
る。
【0037】利用者コンピュータ3では、アプリケーシ
ョンソフトウェアが起動されると(ステップ131)、
復号鍵受信部34が、このソフトウェアの実行前に、ネ
ットワーク2で接続された課金センタ1から、復号鍵を
取得する(ステップ132)。暗号区間検出部33は、
暗号区間が開始したかどうかを常時監視しており(ステ
ップ133)、暗号区間開始でない場合は、実施例1と
同様に、インタプリタ部32が1命令ずつバイトコード
を解釈実行して(ステップ134)、ステップ133に
戻る。
ョンソフトウェアが起動されると(ステップ131)、
復号鍵受信部34が、このソフトウェアの実行前に、ネ
ットワーク2で接続された課金センタ1から、復号鍵を
取得する(ステップ132)。暗号区間検出部33は、
暗号区間が開始したかどうかを常時監視しており(ステ
ップ133)、暗号区間開始でない場合は、実施例1と
同様に、インタプリタ部32が1命令ずつバイトコード
を解釈実行して(ステップ134)、ステップ133に
戻る。
【0038】ステップ133で暗号区間の開始を検出し
た場合には、暗号区間の終了となったかどうかを常時監
視するようにし(ステップ135)、暗号区間終了でな
い場合には、復号鍵受信部34が受信した復号鍵に基づ
いて、復号化部32が1命令ずつバイトコードを復号し
(ステップ136)、復号したバイトコードを作業領域
36内に格納し(ステップ137)、ステップ135に
戻る。すなわち、暗号区間終了となるまで、ステップ1
35〜137のループが繰返し実行され、その暗号区間
のバイトコードが一括して復号されて作業領域36内に
格納されることになる。そして、ステップ135で暗号
区間終了を検出したら、今度はインタプリタ部32が作
業領域36から1命令ずつバイトコードを取り出し(ス
テップ138)、作業領域36から取り出したバイトコ
ードが暗号区間終了バイトコードであるかどうかを判断
する(ステップ139)。暗号区間終了バイトコードで
なければ、インタプリタ部32は、作業領域36から取
り出した1命令分のバイトコードを解釈実行し(ステッ
プ140)、ステップ138に戻る。すなわち、インタ
プリタ部32は、作業領域36内の復号されたバイトコ
ードを連続して解釈実行する。ステップ139で暗号区
間終了を検出した場合には、ステップ133に戻る。
た場合には、暗号区間の終了となったかどうかを常時監
視するようにし(ステップ135)、暗号区間終了でな
い場合には、復号鍵受信部34が受信した復号鍵に基づ
いて、復号化部32が1命令ずつバイトコードを復号し
(ステップ136)、復号したバイトコードを作業領域
36内に格納し(ステップ137)、ステップ135に
戻る。すなわち、暗号区間終了となるまで、ステップ1
35〜137のループが繰返し実行され、その暗号区間
のバイトコードが一括して復号されて作業領域36内に
格納されることになる。そして、ステップ135で暗号
区間終了を検出したら、今度はインタプリタ部32が作
業領域36から1命令ずつバイトコードを取り出し(ス
テップ138)、作業領域36から取り出したバイトコ
ードが暗号区間終了バイトコードであるかどうかを判断
する(ステップ139)。暗号区間終了バイトコードで
なければ、インタプリタ部32は、作業領域36から取
り出した1命令分のバイトコードを解釈実行し(ステッ
プ140)、ステップ138に戻る。すなわち、インタ
プリタ部32は、作業領域36内の復号されたバイトコ
ードを連続して解釈実行する。ステップ139で暗号区
間終了を検出した場合には、ステップ133に戻る。
【0039】この実施例4では、暗号区間ごとにバイト
コードを一括して復号して作業領域33に格納するの
で、バイトコードの復号に伴うスループットを向上させ
ることができる。
コードを一括して復号して作業領域33に格納するの
で、バイトコードの復号に伴うスループットを向上させ
ることができる。
【0040】《実施例5》上述の各実施例では、復号鍵
の配送に着目して課金処理を行っているが、この実施例
5では、課金センタ1内に使用状況受信部14を設け、
利用者コンピュータ3内に使用状況検出部37と使用状
況送信部38を設け、利用者コンピュータ3から課金セ
ンタ1にネットワークを介して送信される使用状況デー
タに基づいて、課金処理が行われるようにしている。こ
こでは、実施例1と同様に、復号鍵の種類は1種類であ
って、ソフトウエアの実行前に復号鍵受信部34が復号
鍵を取得するものとする。実施例5での処理の流れが図
6に示されている。
の配送に着目して課金処理を行っているが、この実施例
5では、課金センタ1内に使用状況受信部14を設け、
利用者コンピュータ3内に使用状況検出部37と使用状
況送信部38を設け、利用者コンピュータ3から課金セ
ンタ1にネットワークを介して送信される使用状況デー
タに基づいて、課金処理が行われるようにしている。こ
こでは、実施例1と同様に、復号鍵の種類は1種類であ
って、ソフトウエアの実行前に復号鍵受信部34が復号
鍵を取得するものとする。実施例5での処理の流れが図
6に示されている。
【0041】利用者コンピュータ3では、課金対象のア
プリケーションソフトウェアが起動されると(ステップ
151)、復号鍵受信部34が、このソフトウェアの実
行前に、ネットワーク2で接続された課金センタ1か
ら、復号鍵を取得する(ステップ152)。暗号区間検
出部33は、暗号区間が開始したかどうかを常時監視し
ており(ステップ153)、暗号区間開始でない場合
は、実施例1と同様に、インタプリタ部32が、1命令
ずつバイトコードを解釈実行し(ステップ154)、ス
テップ153に戻る。
プリケーションソフトウェアが起動されると(ステップ
151)、復号鍵受信部34が、このソフトウェアの実
行前に、ネットワーク2で接続された課金センタ1か
ら、復号鍵を取得する(ステップ152)。暗号区間検
出部33は、暗号区間が開始したかどうかを常時監視し
ており(ステップ153)、暗号区間開始でない場合
は、実施例1と同様に、インタプリタ部32が、1命令
ずつバイトコードを解釈実行し(ステップ154)、ス
テップ153に戻る。
【0042】ステップ153で暗号区間が開始した場合
には、使用状況検出部37がソフトウエアの使用記録を
取得し、記憶する(ステップ155)。そして、暗号区
間終了であるかどうかが判断され(ステップ156)、
暗号区間終了であればステップ153に戻り、暗号区間
終了でなければ、復号化部35が、復号鍵受信部34に
よって取得した復号鍵によって、1命令ずつ読み出され
たバイトコードを復号し(ステップ157)、復号され
たバイトコードをインタプリタ部32が解釈実行し(ス
テップ158)、ステップ156に戻る。このステップ
157及びステップ158を含むループは、暗号区間終
了を検出するまで繰り返される。
には、使用状況検出部37がソフトウエアの使用記録を
取得し、記憶する(ステップ155)。そして、暗号区
間終了であるかどうかが判断され(ステップ156)、
暗号区間終了であればステップ153に戻り、暗号区間
終了でなければ、復号化部35が、復号鍵受信部34に
よって取得した復号鍵によって、1命令ずつ読み出され
たバイトコードを復号し(ステップ157)、復号され
たバイトコードをインタプリタ部32が解釈実行し(ス
テップ158)、ステップ156に戻る。このステップ
157及びステップ158を含むループは、暗号区間終
了を検出するまで繰り返される。
【0043】一方、使用状況検出部37で取得され記憶
された使用状況のデータは、使用状況受信部38によ
り、上記処理とは非同期に例えば所定の期間ごとに、ネ
ットワーク2を介して課金センタ1の使用状況受信部1
4に送信される(ステップ159)。課金センタ1で
は、受信した使用状況データによって、利用者ごとの課
金処理が実行される。
された使用状況のデータは、使用状況受信部38によ
り、上記処理とは非同期に例えば所定の期間ごとに、ネ
ットワーク2を介して課金センタ1の使用状況受信部1
4に送信される(ステップ159)。課金センタ1で
は、受信した使用状況データによって、利用者ごとの課
金処理が実行される。
【0044】この実施例5では、復号鍵の配送ごとに課
金処理を行う必要がないので、課金センタ1での処理が
軽減される。
金処理を行う必要がないので、課金センタ1での処理が
軽減される。
【0045】《実施例6》この実施例6は、開発センタ
4での処理に係るものである。図7は実施例6での処理
を示す流れ図である。
4での処理に係るものである。図7は実施例6での処理
を示す流れ図である。
【0046】ソースコード格納部41にはソースコード
が格納されており、ソースコード中では、暗号区間の開
始と終了とがそれぞれ暗号区間開始ソースコードと暗号
区間終了ソースコードで示されているものとする。ソー
スコードのコンパイルが開始すると(ステップ16
1)、コンパイル部42は、ソースコードをバイトコー
ドに変換する(ステップ162)。その際、暗号区間開
始ソースコード及び暗号区間終了ソースコードは、それ
ぞれ、暗号区間開始バイトコード及び暗号区間終了バイ
トコードに変換される。そして、暗号化部43により、
予め指定された暗号鍵を用いて、暗号区間開始バイトコ
ードと暗号区間終了バイトコードとの間の区間、すなわ
ち暗号区間のバイトコードを暗号化する(ステップ16
3)。このように一部が暗号化されたバイトコードは、
バイトコード格納部44内に格納され、ネットワークや
CD−ROMなどを用いて、利用者コンピュータ3に配
布される。また、上記の暗号鍵に対応する復号鍵は、課
金センタ1の鍵格納部11内に格納される。
が格納されており、ソースコード中では、暗号区間の開
始と終了とがそれぞれ暗号区間開始ソースコードと暗号
区間終了ソースコードで示されているものとする。ソー
スコードのコンパイルが開始すると(ステップ16
1)、コンパイル部42は、ソースコードをバイトコー
ドに変換する(ステップ162)。その際、暗号区間開
始ソースコード及び暗号区間終了ソースコードは、それ
ぞれ、暗号区間開始バイトコード及び暗号区間終了バイ
トコードに変換される。そして、暗号化部43により、
予め指定された暗号鍵を用いて、暗号区間開始バイトコ
ードと暗号区間終了バイトコードとの間の区間、すなわ
ち暗号区間のバイトコードを暗号化する(ステップ16
3)。このように一部が暗号化されたバイトコードは、
バイトコード格納部44内に格納され、ネットワークや
CD−ROMなどを用いて、利用者コンピュータ3に配
布される。また、上記の暗号鍵に対応する復号鍵は、課
金センタ1の鍵格納部11内に格納される。
【0047】
【発明の効果】以上説明したように本発明によれば、利
用者コンピュータにおいて、いずれの時点においても、
暗号化されていない部分を含まないソフトウェアがハー
ドディスク等の記憶媒体上に存在しない。このため、ソ
フトウェアの不正な反復使用を確実に阻止することがで
き、著作権者はソフトウェアの使用のつど確実に使用料
を徴収することが可能になり、ユーザにとっても必要な
機能のみを安価な使用料で使用することが可能になると
いう効果がある。また、ソフトウェアの暗号化に用いる
暗号鍵の個数と暗号化の範囲を選択することにより、起
動するソフトウェアの単位で課金することも、起動する
ソフトウェア内の機能単位に課金することも可能とな
る。
用者コンピュータにおいて、いずれの時点においても、
暗号化されていない部分を含まないソフトウェアがハー
ドディスク等の記憶媒体上に存在しない。このため、ソ
フトウェアの不正な反復使用を確実に阻止することがで
き、著作権者はソフトウェアの使用のつど確実に使用料
を徴収することが可能になり、ユーザにとっても必要な
機能のみを安価な使用料で使用することが可能になると
いう効果がある。また、ソフトウェアの暗号化に用いる
暗号鍵の個数と暗号化の範囲を選択することにより、起
動するソフトウェアの単位で課金することも、起動する
ソフトウェア内の機能単位に課金することも可能とな
る。
【0048】暗号区間の復号による性能低下は、暗号区
間全体を一度に復号して作業記憶に格納することによ
り、軽減できる。さらに、暗号区間に入った時点で使用
記録を取得し、ソフトウェア使用終了後あるいは一定期
間間隔で使用記録を課金センタに送付することにより、
きめ細かい使用記録に基づく課金が、課金センタとの通
信のオーバヘッドを増やすことなく実現可能となる。
間全体を一度に復号して作業記憶に格納することによ
り、軽減できる。さらに、暗号区間に入った時点で使用
記録を取得し、ソフトウェア使用終了後あるいは一定期
間間隔で使用記録を課金センタに送付することにより、
きめ細かい使用記録に基づく課金が、課金センタとの通
信のオーバヘッドを増やすことなく実現可能となる。
【0049】さらにまた、コンパイラに暗号区間開始/
終了のソースコードを解釈し暗号化する機能を付加する
ことにより、高い保護特性を持つソフトウェアの自動生
成が可能となる。
終了のソースコードを解釈し暗号化する機能を付加する
ことにより、高い保護特性を持つソフトウェアの自動生
成が可能となる。
【図1】本発明の実施の一形態のソフトウエアの保護方
式の構成を示すブロック図である。
式の構成を示すブロック図である。
【図2】実施例1での利用者コンピュータにおける処理
を説明する流れ図である。
を説明する流れ図である。
【図3】実施例2での利用者コンピュータにおける処理
を説明する流れ図である。
を説明する流れ図である。
【図4】実施例3での利用者コンピュータにおける処理
を説明する流れ図である。
を説明する流れ図である。
【図5】実施例4での利用者コンピュータにおける処理
を説明する流れ図である。
を説明する流れ図である。
【図6】実施例5での利用者コンピュータにおける処理
を説明する流れ図である。
を説明する流れ図である。
【図7】実施例6での開発センタにおける処理を説明す
る流れ図である。
る流れ図である。
1 課金センタ 2 ネットワーク 3 利用者コンピュータ 4 開発センタ 11 鍵格納部 12 復号鍵送信部 13 課金集計部 14 使用状況受信部 31,44 バイトコード格納部 32 インタプリタ部 33 暗号区間検出部 34 復号鍵受信部 35 復号化部 36 作業領域 37 使用状況検出部 38 使用状況送信部 41 ソースコード格納部 42 コンパイル部 43 暗号化部 101〜107,111〜118,121〜127
ステップ 131〜140,151〜159,161〜163
ステップ
ステップ 131〜140,151〜159,161〜163
ステップ
Claims (9)
- 【請求項1】 ソフトウエアのソースコードをコンパイ
ラにより変換して得られたバイトコードを利用者コンピ
ュータに配布し、前記利用者コンピュータでは、前記バ
イトコードをインタプリタによって、順次、解釈実行す
るソフトウエア実行システムにおける、ソフトウエアの
保護方式において、 ソフトウエアごとに前記利用者コンピュータに配布され
たバイトコードの少なくとも一部の区間が暗号区間とし
て暗号化されており、 前記利用者コンピュータが接続されたネットワークと、
前記ネットワークに接続され前記暗号区間に対応する復
号鍵を保持する課金センタとを有し、 前記利用者コンピュータが、前記課金センタから前記復
号鍵を取得する復号鍵取得手段と、前記配布されたバイ
トコード中での前記暗号区間の開始と終了とを検出する
暗号区間検出手段と、前記復号鍵を用いて前記暗号区間
内のバイトコードを復号する復号手段と、復号手段で復
号されたバイトコードを、順次、解釈実行するインタプ
リタ手段と、を備えていることを特徴とするソフトウエ
アの保護方式。 - 【請求項2】 前記利用者コンピュータ内に、当該利用
者コンピュータでのソフトウエアの使用を検出して使用
記録を保持し、前記使用記録を前記課金センタに送付す
る使用記録検出手段を有し、 前記課金センタが、送付されてきた前記使用記録に基づ
いて課金処理を実行する、請求項1に記載のソフトウエ
アの保護方式。 - 【請求項3】 前記配布されたバイトコードを前記利用
者コンピュータが実行する前に前記復号鍵取得手段が前
記課金センタから前記復号鍵を取得し、前記課金センタ
が前記復号鍵の配布履歴に基づいて課金処理を実行す
る、請求項1に記載のソフトウエアの保護方式。 - 【請求項4】 前記配布されたバイトコードに複数の暗
号区間が設定されて各暗号区間に暗号区間IDが付与さ
れ、前記暗号区間IDごとに復号鍵が対応して前記配布
されたバイトコードが複数種類の復号鍵に対応し、 前記復号鍵取得手段が、前記配布されたバイトコードを
前記利用者コンピュータが実行する前に前記課金センタ
から復号鍵を一括して取得するとともに、前記バイトコ
ードの実行中に、前記暗号区間ごとに前記暗号区間ID
に基づいて復号鍵の選択を実行する、請求項1乃至3い
ずれか1項に記載のソフトウエアの保護方式。 - 【請求項5】 前記配布されたバイトコードに複数の暗
号区間が設定されて各暗号区間に暗号区間IDが付与さ
れ、暗号区間IDごとに復号鍵が対応して前記配布され
たバイトコードが複数種類の復号鍵に対応し、 前記復号鍵取得手段が、前記配布されたバイトコードの
実行中に前記暗号区間が検出されるたびに、当該暗号区
間の前記暗号区間IDに基づいて前記課金センタから該
当する復号鍵を取得し、 前記課金センタが前記復号鍵の配布履歴に基づいて課金
処理を実行する、請求項1に記載のソフトウエアの保護
方式。 - 【請求項6】 前記利用者コンピュータ内に、当該利用
者コンピュータでのソフトウエアの使用を検出して使用
記録を保持し、前記使用記録を前記課金センタに送付す
る使用記録検出手段を有し、 前記課金センタが、送付されてきた前記使用記録に基づ
いて課金処理を実行する、請求項5に記載のソフトウエ
アの保護方式。 - 【請求項7】 前記利用者コンピュータに作業領域を有
し、前記配布されたバイトコードの実行中に前記暗号区
間を検出した場合には、当該暗号区間内の全バイトコー
ドをまとめて復号してから、前記インタプリタ手段が当
該バイトコードの解釈実行を行う、請求項1乃至6いず
れか1項に記載のソフトウエアの保護方式。 - 【請求項8】 ソフトウエアのソースコードをコンパ
イラにより変換して得られたバイトコードを利用者コン
ピュータに配布し、前記利用者コンピュータでは、前記
バイトコードをインタプリタによって、順次、解釈実行
するソフトウエア実行システムにおける、ソフトウエア
の保護方式において、 前記利用者コンピュータが接続されたネットワークと、
前記ネットワークに接続され前記暗号区間に対応する復
号鍵を保持する課金センタとを有し、 前記利用者コンピュータ内に、当該利用者コンピュータ
でのソフトウエアの使用を検出して使用記録を保持し、
前記使用記録を前記課金センタに送付する使用記録検出
手段が設けられ、 前記課金センタが、送付されてきた前記使用記録に基づ
いて課金処理を実行することを特徴とするソフトウエア
の保護方式。 - 【請求項9】 ソフトウエアのソースコードをコンパイ
ル手段により変換して得られたバイトコードを利用者コ
ンピュータに配布し、前記利用者コンピュータでは、前
記バイトコードをインタプリタによって、順次、解釈実
行するソフトウエア実行システムにおける、ソフトウエ
アの保護方式において、 前記コンパイル手段は、暗号区間の開始、暗号区間の終
了を示すコードが前記ソースコードに存在する場合に
は、当該コードを暗号区間の開始、暗号区間の終了を示
すバイトコードに変換するものであり、 前記暗号区間内のバイトコードを暗号化する暗号化手段
をさらに備え、 ソフトウエアごとに前記利用者コンピュータに配布され
るバイトコードの少なくとも一部の区間が前記暗号区間
として暗号化されていることを特徴とする、ソフトウエ
アの保護方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8317917A JPH10161864A (ja) | 1996-11-28 | 1996-11-28 | ソフトウェアの保護方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8317917A JPH10161864A (ja) | 1996-11-28 | 1996-11-28 | ソフトウェアの保護方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10161864A true JPH10161864A (ja) | 1998-06-19 |
Family
ID=18093495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8317917A Pending JPH10161864A (ja) | 1996-11-28 | 1996-11-28 | ソフトウェアの保護方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10161864A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001160106A (ja) * | 1999-09-21 | 2001-06-12 | Olympus Optical Co Ltd | 医療機器リース方法、医療機器リースシステム及び医療機器 |
JP2002304515A (ja) * | 2001-04-04 | 2002-10-18 | Sharp Corp | エネルギ消費機器、課金額算出装置、ならびに課金額算出方法 |
JP2005208752A (ja) * | 2004-01-20 | 2005-08-04 | Canon Inc | コマンドインタプリタ・プログラム、情報処理装置及び方法 |
JP2006180277A (ja) * | 2004-12-22 | 2006-07-06 | Nec Corp | 情報配信システム、及び情報配信方法とこれに用いられる装置 |
JP2006202009A (ja) * | 2005-01-20 | 2006-08-03 | Toshiba Corp | 医用機器及びアクセス制御プログラム |
WO2010023941A1 (ja) * | 2008-08-29 | 2010-03-04 | 株式会社ニコン・エシロール | レンズ加工管理システム |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
-
1996
- 1996-11-28 JP JP8317917A patent/JPH10161864A/ja active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001160106A (ja) * | 1999-09-21 | 2001-06-12 | Olympus Optical Co Ltd | 医療機器リース方法、医療機器リースシステム及び医療機器 |
JP2002304515A (ja) * | 2001-04-04 | 2002-10-18 | Sharp Corp | エネルギ消費機器、課金額算出装置、ならびに課金額算出方法 |
JP2005208752A (ja) * | 2004-01-20 | 2005-08-04 | Canon Inc | コマンドインタプリタ・プログラム、情報処理装置及び方法 |
JP2006180277A (ja) * | 2004-12-22 | 2006-07-06 | Nec Corp | 情報配信システム、及び情報配信方法とこれに用いられる装置 |
JP4678184B2 (ja) * | 2004-12-22 | 2011-04-27 | 日本電気株式会社 | 情報配信システム、及び情報配信方法とこれに用いられる装置 |
JP2006202009A (ja) * | 2005-01-20 | 2006-08-03 | Toshiba Corp | 医用機器及びアクセス制御プログラム |
WO2010023941A1 (ja) * | 2008-08-29 | 2010-03-04 | 株式会社ニコン・エシロール | レンズ加工管理システム |
US9311684B2 (en) | 2008-08-29 | 2016-04-12 | Nikon-Essilor Co., Ltd. | Lens treatment management system |
CN101957903A (zh) * | 2010-09-13 | 2011-01-26 | 中兴通讯股份有限公司 | 一种保护类文件的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3766197B2 (ja) | ソフトウエア流通方法およびサーバ装置およびクライアント装置 | |
US8443455B2 (en) | Apparatus, method, and computer program for controlling use of a content | |
JP3507594B2 (ja) | コンピュータ | |
JP3914430B2 (ja) | ソフトウェア・オブジェクトの配布を可能にするための方法および装置 | |
JP4235691B2 (ja) | 自己保護文書システム | |
JP3503774B2 (ja) | ファイルへのアクセスを保護するための方法および装置 | |
US6920567B1 (en) | System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files | |
JP4835167B2 (ja) | ライセンス管理のためのプログラム、システム及び方法 | |
US20030200177A1 (en) | Method and system for authenticating user and providing service | |
US20010011254A1 (en) | Distributed execution software license server | |
US20040098348A1 (en) | License issuance server, processing device, software execution management device, and license issuing method and program | |
US20010000709A1 (en) | Software distribution system and software utilization scheme for improving security and user convenience | |
JP2001517845A (ja) | 暗号化された素材の動的な変換の方法とシステム | |
US7464273B2 (en) | Content utilizing method | |
JP2004164299A (ja) | コンテンツ利用システムおよび方法ならびにサーバ | |
US20090228450A1 (en) | Digital right management client system and method thereof as well as digital right management system | |
KR20060089632A (ko) | 컴퓨팅 장치상에서 다수의 특성을 포함하는 어플리케이션을사용하기 위한 사용 라이센스를 획득하는 방법 및 그러한어플리케이션과 사용 라이센스 | |
EP1287416A2 (en) | System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files | |
KR20020029657A (ko) | 디지털 컨텐츠의 정보보호 방법 및 시스템 | |
JPH0855021A (ja) | 鍵認証方式 | |
JPH10161864A (ja) | ソフトウェアの保護方式 | |
JPH09319573A (ja) | 流通プログラムの課金システム、課金方法、および流通プログラムを課金するプログラムを記憶するコンピュータ読み出し可能な媒体 | |
JPH1153185A (ja) | プログラムの機能単位利用量課金方法 | |
JP2009058983A (ja) | 著作権管理システム | |
JP2009252120A (ja) | プログラム課金管理装置及びカプセル実行処理装置 |