JP2723231B2 - ソフトウェア権利管理制御方法 - Google Patents

ソフトウェア権利管理制御方法

Info

Publication number
JP2723231B2
JP2723231B2 JP22710687A JP22710687A JP2723231B2 JP 2723231 B2 JP2723231 B2 JP 2723231B2 JP 22710687 A JP22710687 A JP 22710687A JP 22710687 A JP22710687 A JP 22710687A JP 2723231 B2 JP2723231 B2 JP 2723231B2
Authority
JP
Japan
Prior art keywords
program
state
key
rights management
software
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
JP22710687A
Other languages
English (en)
Other versions
JPS6468835A (en
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to JP22710687A priority Critical patent/JP2723231B2/ja
Publication of JPS6468835A publication Critical patent/JPS6468835A/ja
Application granted granted Critical
Publication of JP2723231B2 publication Critical patent/JP2723231B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は,個々の権利対象ソフトウェア毎に,ソフト
ウェアの使用許諾,使用記録情報の収集などを,他のソ
フトウェアによる影響および干渉を受けずに行うことが
できるようにしたデータ処理装置におけるソウトウェア
権利管理制御方法に関する。 半導体技術の進歩によって,計算機ハードウェアの価
格低下,小型化,高機能化が急速に進みつつある。ハー
ドウェア機能の高度化は,ソフトウェアの高度化を要求
し,結果として,ハードウェア開発者,ソフトウェア開
発者,利用者の明確な分業化が促進されている。 しかしながら,ソフトウェア流通の環境は,現在,混
乱した状況にあるといってよく,その環境を改善するた
めに,ソフトウェア権利者の保護と利用者の便利さとを
両立させるシステムであって,ソフトウェアの自由な大
量流通を支援するシステムを構築することが望まれてい
る。 〔従来の技術〕 ソフトウェアの開発には,大量の人員および時間を要
するにもかかわらず,利用者または第三者は,完成した
ソフトウェアを複製して,全く同じものを作成すること
が比較的容易にできる。そのため,ソフトウェアを開発
した権利者(ソフトウェア権利者)は,開発コストの回
収が不能になるケースが多く,これに対して,(1)ソ
フトウェア製品の価格を盗用による紛失分を上乗せした
値とする,(2)契約によって無断複製を禁止する,
(3)ソフトウェアを複製不能な媒体に封入して流通さ
せる,(4)計算機のシリアルナンバーなどにより使用
可能な装置を限定する,などによって対処することが行
われている。 しかしながら,上記(1)は,正当な利用者に過度の
負担を与え,上記(2)は,繁雑な契約手続きが必要に
なると共に,それによる効果が充分でなく,上記(3)
は,バックアップがとれなくなるという問題や,複製不
能にしている手段を調べ,それを回避することにより複
製可能となるという問題があり,上記(4)は,特定計
算機を識別するために,ソフトウェアの販売時などに特
殊化処理が必要となり,自由なソフトウェアの流通が阻
害されるという問題がある。 これらの問題を解決するものとして,本出願人は,ソ
フトウェア権利者の権利と,利用者の自由と,流通の容
易性の3つを同時に満たすソフトウェアサービスシステ
ム(SSS)の基本構想を提案している。〔森亮一:“ソ
フトウェアサービスシステム",電子通信学会誌,Vol.67,
No.4,pp.431−436(Apr.1984)〕 ここで提案されたソフトウェアサービスシステムの基
本は, (1) ソフトウェアは,いかなる条件が成立した場合
に,その実行を許すかの許諾条件を内部に持つべきであ
る。 (2) 計算機内部には,利用者の持つ権利を記述した
権利記録があるべきである。これには,共通クレジッ
ト,買い取り記録,試用記録,特別許諾コード等が有り
得る。 (3) 計算機は,上記(2)の権利記録が上記(1)
の許諾条件を満足した場合にのみ,ソフトウェアの利用
を許す実行管理機構を持つべきである。 (4) 権利者が,ソフトウェアの利用状況を把握でき
るように,計算機は,回収用作業記録を持つべきであ
る。利用者に特別な面倒を与えることなく,この作業記
録を回収する電子的手段が有り得る。…というものであ
る。 ところで,このソフトウェアサービスシステムの提案
とは別に,暗号化された命令およびデータを主記憶にロ
ードし,命令フェッチ時に,計算機のシリアルナンバー
などの復号鍵によって復号して実行する計算機アーキテ
クチャが知られている。 〔発明が解決しようとする問題点〕 上記ソウトウェアサービスシステムを,マルチプログ
ラミングの環境下で実現する場合,複数のソフトウェア
権利者に係る複数のプログラムが,時分割的に同時に計
算機資源を利用して,走行することになる。この場合,
第1に,権利の管理に係るハードウェア機構を制御する
主体を,いかにして許諾条件をチェックするプログラム
(以下,許諾条件プログラムという)に限定するか,第
2に,マルチプログラミングの環境において,許諾条件
プログラムと,それによって実行を制御されるソフトウ
ェア本体との対応関係をいかにして保つか,第3に,オ
ペルーティング・システムに対し,スワッピングやプロ
セス・スイッチを行うためのアクセス権を認めつつ,許
諾条件プログラムの内容を改ざんしたり,権利管理のた
めの流れを乱したりすることがないように,いかにして
アクセス権を制限するか,といったことに対する考慮が
重要となる。従来,このような権利管理に対する適切な
計算機の実行制御を行う機構はなかった。 本発明は上記問題点の解決を図り,マルチプログラミ
ングの環境における権利管理の実現に適した制御方法を
提供することを目的としている。 〔問題点を解決するための手段〕 第1図は本発明の原理説明図である。 第1図において,10は権利管理の単位となる権利管理
対象プログラム,11は許諾条件をチェックしソフトウェ
ア本体の実行を制御する許諾条件プログラム,12はワー
プロソフト,コンパイラなどの利用者の使用目的に応じ
た処理を行うソフトウェア本体,13は権利管理状態の変
更に関する割込みを制御する権利管理割込み発生機構,1
4は権利管理割込みによって権利管理状態を変更する権
利管理状態の変更処理,15はプログラムステータスワー
ド(PSW),16は権利管理対象プログラム10を識別する権
利管理ID(PMID),17は権利管理対象プログラム10の暗
号化された命令を復号化する鍵を権利管理ID16毎に記録
管理する権利管理テーブル,18は暗号化された命令をそ
の命令のフェッチ時に復号化する復号化回路を表す。 権利管理対象プログラム10は,例えば許諾条件プログ
ラム11とソフトウェア本体12との対によって構成され
る。これらの全体または一部は,権利管理対象プログラ
ム10毎に定められた複数の暗号鍵によって予め暗号化さ
れている。 権利管理対象プログラム10のロード時に,暗号化され
た命令を復号化する鍵情報が,その権利管理対象プログ
ラム10に対してシステムでユニークに割り当てた権利管
理ID16と共に,権利管理テーブル17に書き込まれる。 プログラムステータスワード15は,カレントの権利管
理ID16が設定されるフィールドを持っている。プログラ
ム実行時に,プログラムステータスワード15に設定され
ている権利管理ID16により,権利管理テーブル17の該当
エントリがアクセスされ,そのエントリ中の復号鍵(KE
Y)が読み出されて,復号化回路18へ送られる。復号化
回路18は,暗号化された命令をフェッチしたときに,権
利管理テーブル17から読みだした復号鍵によって復号
し,その復号した命令を計算機の命令実行ユニットへ送
る。 本発明では,オペレーティング・システム等の処理機
能を起動するスーパバイザ割込みなどとは別に,権利管
理状態に関する変更を制御する権利管理割込み発生機構
13を設ける。そして,権利管理割込み発生機構13によ
り,権利管理割込みが発生した場合に,権利管理状態の
変更処理14によって,権利管理テーブル17への権利管理
状態の退避やプログラムステータスワード15のカレント
の権利管理ID16の変更などを行う。これにより,命令な
どを復号化する鍵を切り換える。 〔作用〕 本発明によれば,割込みが,オペレーティング・シス
テムによる資源管理などが関連する従来の割込みと,権
利管理状態を制御するための権利管理割込みの2系統に
分離されることになる。 権利管理割込みが発生したときに,権利管理状態の変
更処理14によって,権利管理テーブル17に基づく権利管
理状態を変更するので,権利管理に係るハードウェア機
構を制御することができる主体を,特定の許諾条件プロ
グラム11などに個別的に限定することができる。また,
個々に復号鍵が管理されるので,ある許諾条件プログラ
ム11に対応した権利管理テーブル17中のエントリ等,権
利管理に関する情報を,他の権利管理対象プログラム10
などによって,改ざんされることを防止することができ
る。 また,割込みが,少なくとも従来の割込みと権利管理
割込みの2系統になるので,オペレーティング・システ
ムによる権利管理に対する望ましくない関与も,防止す
ることが可能となる。 〔実施例〕 第2図は本発明を用いたソフトウェアの流通形態の例
を説明するための図,第3図は本発明による権利管理の
説明図,第4図は権利管理状態の状態遷移図,第5図は
本発明に用いるハードウェア構成例,第6図は権利管理
対象となるソフトウェアの構成例,第7図は権利管理テ
ーブルの構成例,第8図はP割込み要求テーブルの構成
例,第9図はS割込み制御の例,第10図はS割込みから
の復帰制御の例,第11図は本発明の一実施例におけるス
タックの使用例,第12図は本発明の一実施例における空
間と鍵の関係説明図を示す。 本発明は,ソフトウェアの保護と利用促進のため,例
えば第2図に示すようにソフトウェアの流通形態を採用
する場合に用いることができる。 ソフトウェアを開発したソフトウェア権利者は,そ
のソフトウェアを流通させる場合,ソフトウェアの利用
者に対して要求する条件を記述した許諾条件プログラム
を作成し,それを開発したソフトウェア本体と結合し
て,暗号化し,電波による放送も含めた自由な媒体によ
り,ソフトウェアを配布する。 ソフトウェアを利用したい利用者は,例えば予め共
通クレジット(CC)を自動販売機などのベンディングマ
シンにより購入する。この共通クレジットの内容は,例
えばICカードによる媒体を介して,データ処理装置20に
入力できるようになっている。 利用者は,共通クレジットの内容が記録されたICカ
ードを,本発明に係るソフトウェア権利管理制御機能を
持つデータ処理装置20に装着し,適当な流通路から入手
したソフトウェアを,データ処理装置20上で動作させ
る。これにより,そのソフトウェアの許諾条件プログラ
ムが復号化されて動作し,ICカードへのアクセスによ
り,共通クレジット情報に関連するチェックなどを行
う。必要に応じて共通クレジットに記録されている料金
の減算を行う。チェックに合格した場合にのみ,必要な
ソフトウェア本体の実行を可能とする制御を行う。その
とき,その利用に関する作業記録情報を蓄積しておき,
その作業記録(AR)を適当な時期にICカードへ転記す
る。 ICカードに書き込まれた作業記録は,例えば共通ク
レジットを継続使用するために,新たな料金の支払いに
より共通クレジットの内部を再設定するときに,ベンデ
ィングマシンに読み取られ,収集される。この作業記録
情報を参照することにより,ソフトウェア利用状況の統
計をとり,それに基づいて複数のソフトウェア権利者間
で妥当な料金の分配を行うことができる。 第2図に示したソフトウェア流通形態は,一例であ
り,本発明は,共通クレジットではなく,各ソフトウェ
ア個別の利用資格情報を管理する流通形態をとる場合に
も採用することができる。また,ICカード以外の媒体を
用いることも可能である。 本発明による場合,データ処理装置20は,複数の独立
したソフトウェアを,マルチプログラミングによって並
列動作させることができる。 本発明による権利管理は,概念的には,第3図に示す
ようになる。 マルチプログラミングの環境では,オペレーティグ・
システムが,入出力装置の割り当て,プロセッサの割り
当てなどの計算機ハードウェア資源の管理を行ってい
る。この場合,誤ったプログラムの実行などによって支
障をきたさないようにするために,また計算機の資源を
多く利用しようとする利用者によって,資源が恣意的に
用いられることを防ぐために,計算機の実行状態をユー
ザ状態と,スーパバイザ状態に分けることが広く行われ
ている。 利用者のプログラムは,ユーザ状態で実行され,資源
管理用のオペレーティング・システムは,通常,スーパ
バイザ状態で実行される。そして,利用者による資源の
濫用を防止し,また利用者が勝手に実行状態を変更でき
ないようにするために,ユーザ状態からスーパバイザ状
態へと状態を変更する手段を,割込み(割出しを含む)
に限ることによって,両状態の分離を図っている。 ここで,第2図で説明したような許諾条件プログラム
の復号化や,共通クレジットの読み書きなどに関連する
権利管理を,スーパバイザ状態のもとで,オペレーティ
ング・システムにより制御するとすれば,利用者が自己
の都合のよいように内部を改変したオペレーティング・
システムをロードすることに関して,抵抗力を持たな
い。これに対し,オペレーティング・システムをフォー
ムウェア化して,内容の変更を困難にするという対応策
も考えられるが,オペレーティング・システムのバージ
ョンアップが不可能になるなどの他の問題が発生する。 そこで本発明では,スーパバイザ状態とは異なる権利
管理状態という特別な実行状態を新設している。権利管
理状態は,ソフトウェアをできるだけ無料で実行したい
と考える利用者があり得る環境の中で,利用者の故意ま
たは過失による介入を避けつつ,外部から供給されたソ
フトウェアの権利に関する管理を行うためのプログラム
を実行可能とする状態である。 権利管理状態は,他の状態からそこへ状態を変更する
手段を割込みに限っている点および他の状態では実行で
きない命令を持つ点で,スーパバイザ状態に類似してい
るが,暗号の応用と鍵の管理とによって不正なアクセス
の防止を図る点が,スーパバイザ状態と大きく異なる。 第3図に示すように,オペレーティング・システム
が,スーパバイザ状態のもとで,資源管理を行うのに対
し,権利管理対象となっているプログラムの各許諾条件
プログラム11A,11B,…は,個々に暗号化された命令を復
号化する鍵情報が設定された権利管理状態のもとで,ソ
フトウェア本体12A,12B,…の実行を監視することによっ
て,権利管理を行う。以下,許諾条件プログラムと,そ
れによって制御されるソフトウェア本体とを合わせて権
利管理対という。 権利管理状態を設けることにより,本発明に係るデー
タ処理装置は,例えば第4図に示すような状態遷移を行
う。ユーザ(US)状態,スーパバイザ(SV)状態,権利
管理(PM)状態があり,スーパバイザ状態は,さらにSV
p状態とSVu状態とに分かれる。SVp状態とSVu状態とは,
使用できる命令,アクセス権等に関しては全く同様であ
るが,割込みからの復帰命令を実行した場合に,PM状態
に復帰するかUS状態に復帰するかの点が異なる。 以上の4つの状態(SVp,SVu,PM,US)は,独立した2
つの状態ビットにより表現される。その1つは,ログラ
ムステータスワード15中に置くSビットであり,他の1
つは権利管理テーブル17中に置くPビットである。 Sビットの変化に伴う状態遷移は,スーパバイザ状態
で実行するプログラム,即ち,オペレーティング・シス
テムの制御に関係するものであり,Pビットの変化に伴う
状態遷移は,PM状態で実行されるプログラム,即ち,許
諾条件プログラムの制御に関係するものである。 これら2系統の状態遷移を直交した関係におき,互い
に他の系統の状態遷移には直接影響を及ぼさないように
しているので,資源管理と権利管理との制御機構の分離
が図られている。 以下,Sビットに関連する従来の割込みをS割込みとい
い,Pビットに関連する本発明に係る権利管理割込みをP
割込みという。 本発明に用いるハードウェア構成は,例えば第5図に
示すようになっている。 第5図において,第1図と同符号のものは,第1図に
示すものに対応する。30は命令実行ユニットである演算
/制御部,31はICカードインタフェース,32はICカードか
ら入力された共通クレジット情報を記憶する共通クレジ
ットレジスタ(CCR),33はソフトウェア買い取り情報な
どの個々のソフトウェアに特有な権利管理情報を持つ個
別権利メモリ(SRM),34はソフトウェアの利用実績情報
が記録される作業記録メモリ(ARM)である。 共通クレジットレジスタ32,個別権利メモリ33,作業記
録メモリ34は,不揮発メモリによって構成される。 35は許諾条件プログラムまたはソフトウェア本体の全
部または一部をDES方式により復合化するDES暗号機構,3
6はP割込みの要因などの制御情報を記憶するP割込み
要求テーブル(PIT),37は権利管理対象となるソフトウ
ェアをロードする際に後述するキー格納部の復号化を行
う公開鍵暗号機構である。 第5図に示す装置が扱うソフトウェアの構造は,例え
ば第6図に示すようになっている。キー格納部,許諾条
件プログラム11,ソフトウェア本体12の3つの部分から
なる。 本実施例では,許諾条件プログラム11を,権利者が任
意に与える鍵(KEY1)によって,いわゆるDES方式で暗
号化する。また,ソフトウェア本体12の少なくとも一部
を,やはり権利者が任意に与える鍵(KEY2)によってDE
S方式で暗号化する。なお,DES方式については,例えば
「一松信監修:“データ保護と暗号化の研究",日本経済
新聞社〔1983〕)」に記述されている。 キー格納部には,このソフトウェアを識別するユニー
クな権利番号(PN)と,個別権利記録(SR)に対するア
クセスを管理するための非公開のSRアクセスキーと,許
諾条件プログラム11,ソフトウェア本体12を復号化する
ためのKEY1,KEY2とが設定されるようになっている。キ
ー格納部は,例えば公開鍵暗号方式のひとつであるRSA
法により暗号化される。なお、このRSA法も,例えば上
記“データ保護と暗号化の研究”の著者などにより知ら
れている。公開鍵暗号方式は,暗号化を用いる鍵を知っ
ていても,秘密鍵である復号化鍵を知っていないと,暗
号を解くことができないという特徴がある。もちろん他
の暗号方式を用いても,同様に本発明を実施することは
可能である。 このキー格納部を復号化するための鍵は,ハードウェ
ア製造時に,第5図に示す公開鍵暗号機構37の内部に封
入しておく。このソフトウェアを主記憶上にロードする
際に,公開鍵暗号機構37によってキー格納部を復号化
し,その復号結果を権利管理テーブル17に設定する。 権利管理テーブル17は,例えば第7図に示すような権
利管理に関する情報を持つ。 権利管理テーブル17中のレコードは,このレコードに
対応する権利管理対を識別するためのPMID,権利番号(P
N),SRアクセスキー,許諾条件プログラムを実行するた
めに必要なDES鍵(KEY1),ソフトウェア本体を実行す
るために必要なDES鍵(KEY2),KEY2の有効/無効を示す
ビット(K2F),許諾条件プログラムによる権利管理状
態か否かを表すPビット,対応する権利管理対がロード
された直後であることを表すイニシャルビット,および
スタックの正当性を確認するためのスタックチェックコ
ードの9つのフィールドからなる。 システム中に同時に存在し得る権利管理対の数は,権
利管理テーブル17のレコード数に等しい。複数のレコー
ドのうち,PSW中のカレントPMIDの値と一致したPMIDを持
つレコードを,カレントPMTレコードと呼び,権利管理
テーブル17のレコードに対するアクセスは,通常の場
合,このカレントPMTレコードに対して行われる。 第5図に示すP割込み要求テーブル(PIT)36は,権
利管理割込み(P割込み)発生機構13が使用するテーブ
ルであり,例えば第8図に示すような構成になってい
る。PIT36中の各レコードは,P割込みを要求する権利管
理対のPMID,そのSRアクセスキーを記憶するフィール
ド,要求するP割込みの要因を記述するフィールド(P
−Reason),P割込み発生時の飛び先アドレスを記述する
フィールド(New−PC),P割込み要求の要因に対するパ
ラメータを記述するフィールドの5つのフィールドから
なる。 PIT36中のレコードは,PM状態でしか使用できない特権
命令によってのみ,生成/消去が可能にされ,また,SR
アクセスキーを用いたアクセス権のチェックにより,正
当な権利者以外の許諾条件プログラムからは,既に存在
するPITレコードの書き換えや消去ができないようにな
っている。 P割込みの要因には,例えばUS状態におけるP割込み
命令の実行,タイマー割込み,US状態における特定命令
の実行(命令トラップ)がある。タイマー割込みに対し
ては,パワメータとして割込み発生の時間間隔を与える
ことができ,命令トラップに対しては,任意の命令コー
ドをパラメータとして与えることができる。これによ
り,許諾条件プログラムは,必要に応じてソフトウェア
本体の実行制御を行い,またソフトウェア本体の実行に
関する作業記録をとる契機を得ることができるようにな
っている。 第5図に示すP割込み発生機構13は,許諾条件プログ
ラムがPIT36に指定した要因が発生したときに,自動的
にP割込みを起こす機構であるが,その内部の回路構成
等については,従来技術と同様な一般的な割込み技術を
用いて実施可能であるので,これ以上の説明を省略す
る。 S割込みとP割込みとを独立させるために,S割込が発
生した場合におけるプロセッサの動作は,例えば第9図
に示す(a)〜(i)のようになる。 (a) S割込みが発生した場合,ファームウェアなど
により,カレントPMTレコードのPビットの0/1をチェッ
クし、0であれば(g)へ制御を移す。 (b) Pビットが1であれば,現在のPSW多びプログ
ラムカウンタの値から,16bitのサイクリックコードを生
成し,新スタックチェックコード1とする。 (c) 16bitの乱数を生成し,新スタックチェックコ
ード2とする。 (d) 新スタックチェックコード1,2及びカレントPMT
レコードから取り出した旧スタックチェックコード1,2
の4ワード(64bit)をKEY1で暗号化し,スタックへス
トアする。 (e) 新スタックチェックコード1,2を,カレントPMT
レコードへストアする。 (f) PITの飛び先アドレス(New−PC)を,プログラ
ムカウンタにセットする。そして,(h)の制御へ移
る。 (g) Pビットが0の場合には,割込みベクタをプロ
グラムカウンタにセットする。 (h) PSW,プログラムカウンタ,スタックフォーマッ
トコードをスタックストアする。 (i) PSWのSビットを“1"にし,オペレーティング
・システムの割込み処理ルーチンへ制御を移す。 なお,この例では,S割込み時における飛び先アドレ
ス,即ち,プログラムカウンタに設定する新しい値を,
いわゆる割込みベクタテーブルからロードする方式を用
いている。 スーパバイザ状態において,RSE(Return from S−Exc
eption)命令を実行することにより,PM状態またはUS状
態のいずれかへ遷移する。そのときのプロセッサの動作
は,例えば第10図に示す(a)〜(g)のようになる。 (a) カレントPMTレコードのPビットの0/1をチェッ
クする。それが0であれば,(f)へ制御を移す。 (b) スタックから,スタックチェックコード1,2お
よび旧スタックチェックコード1,2を取り出し,それら
をKEY1で復号化してプロセッサ内に保持する。 (c) スタックのPSW及びプログラムカウンタの値か
ら,16bitのサイクリックコードを生成し,上記(b)で
取り出したスタックチェックコード1と比較する。不一
致であれば,エラーとして処理する。即ち,PM状態への
遷移などを防止する。 (d) 次に,カレントPMTレコードのスタックチェッ
クコード2と,上記(b)で取り出したスタックチェッ
クコード2とを比較する。不一致であればエラーとして
処理する。 (e) 旧スタックチェックコード1,2をカレントPMTレ
コードへストアする。 (f) PSWのSビットを“0"に戻す。 (g) スタックにストアされているプログラムカウン
タの値を,プログラムカウンタにセットする。そして,
割込み発生直前に実行されていたルーチンへ復帰する。 PM状態からS割込みによりSVp状態へ遷移する際に,
例えば第11図(a)に示すようにスタック情報が,プロ
セッサによってスーパバイザ空間に退避される。スタッ
クチェックコードは,スタックに退避された情報が,オ
ペレーティング・システムによって書き換えられことを
防止するために使用されるコードである。 スタックチェックコード1は,第9図で説明したよう
に,スタックに退避されるPSW及びプログラムカウンタ
の値から生成するサイクリックコードであり,スタック
チェックコード2は,16bitの乱数である。これらは,ス
タックに退避されると同時に,カレントPMTレコードに
も格納され,後にスタックの情報を取り出す際にチェッ
クされる。これにより,スタック内容が書き換えられる
ことを検出できるようになっている。 旧スタックチェックコード1,2は,割込みがネストさ
れた場合に,古いスタックチェックコードを記録するた
めのものである。 US状態からSVu状態へ遷移する場合には,第11図
(b)に示すデータがスタックに退避される。また,SV
状態時におけるS割込み発生時には,第11図(c)に示
すデータがスタックに退避され,US状態時におえるP割
込み発生時には,第11図(d)に示すデータがスタック
に退避される。なお,SV状態においては,P割込みはマス
クされる。 本実施例では,SV,PM,USの各状態毎に,プログラムの
アクセスできる空間およびハードウェアによって自動的
に使用される暗号の鍵が決められる。第12図は,その空
間と鍵の関係を示している。 PM状態におけるプログラムの実行は,以下のとおりで
ある。 PM状態において,命令フェッチ,データのロード/ス
トア,サブルーチン呼び出し,割込み発生時におけるプ
ログラムカウンタのスタックへの退避など,主記憶に対
するあらゆる書き込み,読み出しの際に,カレントPMT
レコード中のKEY1を用いた自動的な暗号化および復号化
が,第5図に示すDES暗号機構35によって行われる。PM
状態で使用するアドレス空間は,US状態の空間と全く同
一であり,区別されてない。これらは,鍵の管理によっ
てのみ隔離されている。 オペレーティング・システムといえども,鍵を知らな
い限り,許諾条件プログラムを一時停止,強制終了させ
ること以外,その動作に不正に介入することはできな
い。 PM状態からUS状態への戻りは,RPE(Return from P−E
xception)命令の実行によって行われる。 US状態においては,命令フェッチ時に限り,カレント
PMTレコードのKEY2を用いた復号化を行う。ただし,複
合化による命令実行速度の低下を軽減するために,プロ
グラムのすべての部分を暗号化するのではなく,暗号化
する範囲を任意に指定できるようにする方式をとること
が望ましい。そのため,US状態で,カレントPMTレコード
のK2Fビットをコントロールする命令が用意され,K2Fビ
ットが“1"の間だけ,命令フェッチ時に,KEY2による復
号化を自動的に行うようになっている。 オペレーティング・システムは,以下の処理を行う。 権利管理対象のソフトウェア全体を,暗号化された
まま主記憶ヘロードする。 次に,権利管理テーブル17内に新しいレコードを生
成する命令を発行する。この命令では,これから実行し
ようとする権利管理対に与えるPMIDの値と,ロードした
ソフトウェアのキー格納部の先頭論理アドレスとをパラ
メータとする。PMIDの値は,システム内部においてユニ
ークであれば,任意でよい。この命令によって,ハード
ウェア,ソフトウェアのキー格納部を復号化し,その情
報を権利管理テーブル17に格納して新しいPMTレコード
を作成する。同時に,PSWのカレントPMIDのフィールド
を,これから実行しようとする権利管理対のPMIDの値に
セットする。権利管理テーブル17のイニシャルビットお
よびPビットを“1"にセットする。 RSE命令を実行する。カレントPMTレコードは,新し
く生成されたレコードであり,このイニシャルビットが
“1"である場合に,RSE命令が実行されると,プロセッサ
の状態はPM状態に遷移し,許諾条件プログラムに実行制
御が渡される。同時に,イニシャルビットはクリアさ
れ,以後,オペレーティング・システムから許諾条件プ
ログラムへ制御を移す手段は,S割込みに対するRSE命令
の実行以外に存在しなくなる。 上記までで,権利管理対が生成され,許諾条件プ
ログラムの先頭から実行が開始される。許諾条件プログ
ラムの先頭部分には,利用者との会話を行うプログラ
ム,ソフトウェア本体の実行時間等の計量を開始するた
めに,P割込み要求テーブルに割込み要求を書き込むプロ
グラム等を置くことができる。その後,ソフトウェア本
体に制御を移す命令を発行する。この命令では,Pビット
のクリアが行われる。 以後,P割込みとRPE命令によって,US状態とPM状態とを
間を行き来しながらプログラムの実行がなされる。権利
管理対の実行を終了する場合,オペレーティング・シス
テムは,消去したい権利管理対のPMIDをパラメータとす
るPMT消去命令を発行する。これにより,ハードウェア
によって,権利管理テーブルの対応するレコードおよび
PITの該当エントリが消去される。 権利管理に関する命令について,例えばいかなる命令
を用意すればよいかについては,以上の実施例の説明で
明らかであるが,各命令の機能変更,拡張は任意になし
得る。 〔発明の効果〕 以上説明したように,本発明によれば,マルチプログ
ラミングの環境において,保全性,柔軟性に優れた権利
管理を行うことが可能になり,ソフトウェアを自由に大
量に流通させ,かつソフトウェアの保護が充分であるシ
ステムを構築できるようになる。
【図面の簡単な説明】 第1図は本発明の原理説明図, 第2図は本発明を用いたソウトウェアの流通形態の例を
説明するための図, 第3図は本発明による権利管理の説明図, 第4図は権利管理状態の状態遷移図, 第5図は本発明に用いるハードウェア構成例, 第6図は権利管理対象となるソフトウェアの構成例, 第7図は権利管理テーブルの構成例, 第8図はP割込み要求テーブルの構成例, 第9図はS割込み制御の例, 第10図はS割込みからの復帰制御の例, 第11図は本発明の一実施例におけるスタックの使用例, 第12図は本発明の一実施例における空間と鍵の関係説明
図を示す。 図中,10は権利管理対象プログラム,11は許諾条件プログ
ラム,12はソフトウェア本体,13は権利管理割込み発生機
構,14は権利管理状態の変更処理,15はプログラムステー
タスワード,16は権利管理ID,17は権利管理テーブル,18
は復号化回路を表す。
フロントページの続き (56)参考文献 特開 昭60−77218(JP,A) 特開 昭60−191322(JP,A) 特開 昭63−145532(JP,A) 電子情報通信学会論文誌,J70−D [1] (1987−1−25) P.70−81 情報処理学会 「超編集・超流通・超 管理のアーキテクチャシンポジュウム論 文集」 (1994) P.67−76

Claims (1)

  1. (57)【特許請求の範囲】 1.暗号化された命令を与えられた鍵により復号化して
    実行する計算機を有し,この計算機の実行状態として,
    オペレーティング・システムが利用する特権的な命令が
    実行可能なスーパバイザ状態と,権利管理に係る命令が
    実行可能な権利管理状態と,上記特権的な命令および上
    記権利管理に係る命令が実行不可能なユーザ状態とを有
    するデータ処理装置におけるソフトウェア権利管理制御
    方法であって, 上記ユーザ状態から上記権利管理状態へ計算機の実行状
    態を遷移させる権利管理割込みを制御する権利管理割込
    み発生機構(13)を設け, 権利管理対象となるプログラムのうち,利用者の使用目
    的に応じた処理を行う第1のプログラムの一部または全
    部と,この第1のプログラムに対する実行の許諾条件を
    チェックし第1のプログラムの実行を制御する第2のプ
    ログラムとを,それぞれ第1と第2の異なる鍵によりあ
    らかじめ暗号化し, 上記権利管理状態において上記第2のプログラムを上記
    第2の鍵により復号化して動作させることにより,上記
    第1のプログラムの実行を制御し, 上記第1のプログラムを上記ユーザ状態にて上記第1の
    鍵により復号化して実行させ, このユーザ状態における上記権利管理割込みにより,上
    記権利管理状態に実行状態を遷移させるとともに上記第
    1の鍵から上記第2の鍵へ復号化する鍵を切り換える制
    御を行い, かつ,上記権利管理対象となる第1のプログラムと第2
    のプログラムの対ごとに,これらをそれぞれ復号化する
    第1の鍵と第2の鍵とを管理し, 上記スーパバイザ状態において上記権利管理対象となる
    第1のプログラムと第2のプログラムの対の実行制御
    を,他の権利管理対象となる第1のプログラムと第2の
    プログラムの対に渡すときに,上記復号化する第1の鍵
    と第2の鍵とを切り換える制御を行う ことを特徴とするソフトウェア権利管理制御方法。
JP22710687A 1987-09-10 1987-09-10 ソフトウェア権利管理制御方法 Expired - Lifetime JP2723231B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22710687A JP2723231B2 (ja) 1987-09-10 1987-09-10 ソフトウェア権利管理制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22710687A JP2723231B2 (ja) 1987-09-10 1987-09-10 ソフトウェア権利管理制御方法

Publications (2)

Publication Number Publication Date
JPS6468835A JPS6468835A (en) 1989-03-14
JP2723231B2 true JP2723231B2 (ja) 1998-03-09

Family

ID=16855570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22710687A Expired - Lifetime JP2723231B2 (ja) 1987-09-10 1987-09-10 ソフトウェア権利管理制御方法

Country Status (1)

Country Link
JP (1) JP2723231B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801823B2 (en) 2000-10-25 2010-09-21 Nec Corporation Large capacity data sales server and recording medium recording program thereof

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0383132A (ja) * 1989-08-28 1991-04-09 Fujitsu Ltd ソフトウェア保護制御方式
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
DE69722277T2 (de) 1996-01-31 2004-04-01 Canon K.K. Abrechnungsvorrichtung und ein die Abrechnungsvorrichtung verwendendes Informationsverteilungssystem
JPH09231276A (ja) * 1996-02-27 1997-09-05 Canon Inc 課金装置、通信装置及び通信システム
US6671675B2 (en) 1996-02-27 2003-12-30 Canon Kabushiki Kaisha Metering the flow of electronic information
US7263558B1 (en) 1999-09-15 2007-08-28 Narus, Inc. Method and apparatus for providing additional information in response to an application server request
JP2002074238A (ja) * 2000-08-30 2002-03-15 Tokyo Gas Co Ltd 通信型プリペイドシステム、機器、携帯端末
JP2003044297A (ja) 2000-11-20 2003-02-14 Humming Heads Inc コンピュータリソースの制御を行なう情報処理方法および装置、情報処理システム及びその制御方法並びに記憶媒体、プログラム
JP2002244756A (ja) * 2001-02-19 2002-08-30 Sony Corp データ処理方法、半導体回路および認証用装置
SG160187A1 (en) 2001-02-16 2010-04-29 Sony Corp Data processing method and its apparatus
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2624249B2 (ja) * 1986-07-04 1997-06-25 株式会社 セガ・エンタープライゼス 模倣防止機能付プロセッサ

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
情報処理学会 「超編集・超流通・超管理のアーキテクチャシンポジュウム論文集」 (1994) P.67−76
電子情報通信学会論文誌,J70−D[1] (1987−1−25) P.70−81

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7801823B2 (en) 2000-10-25 2010-09-21 Nec Corporation Large capacity data sales server and recording medium recording program thereof
US7835995B2 (en) 2000-10-25 2010-11-16 Nec Corporation Large capacity data sales mediation server and terminal

Also Published As

Publication number Publication date
JPS6468835A (en) 1989-03-14

Similar Documents

Publication Publication Date Title
White et al. ABYSS: An architecture for software protection
White ABYSS: ATrusted Architecture for Software Protection
KR100375158B1 (ko) 변조방지 마이크로프로세서
Mori et al. Superdistribution: the concept and the architecture
US5530752A (en) Systems and methods for protecting software from unlicensed copying and use
US7673152B2 (en) Microprocessor with program and data protection function under multi-task environment
US8838950B2 (en) Security architecture for system on chip
US6868495B1 (en) One-time pad Encryption key Distribution
US5999622A (en) Method and apparatus for protecting widely distributed digital information
US6834799B2 (en) IC card with capability of having plurality of card managers installed
EP1084549B1 (en) Method of controlling usage of software components
US7721114B2 (en) Method for using shared library in tamper resistant microprocessor
US7469346B2 (en) Dual virtual machine architecture for media devices
KR101081118B1 (ko) 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
JP2723231B2 (ja) ソフトウェア権利管理制御方法
JP3243331B2 (ja) ソフトウェア管理用階層媒体の作成方法,ソフトウェア管理用階層媒体の作成装置およびソフトウェア管理用階層媒体
US8307215B2 (en) System and method for an autonomous software protection device
WO2012076266A1 (en) Computer-readable storage mediums for encrypting and decrypting a virtual disc
WO1996034334A1 (fr) Dispositif pour l'execution d'un programme chiffre
JP4347582B2 (ja) 情報処理装置
CN107729758A (zh) 用于多租户云工作量的安全处理器
WO1997025675A1 (en) A secure pay-as-you-use system for computer software
JP4591163B2 (ja) バスアクセス制御装置
JPH0283622A (ja) 単一媒体による複数計算機への有償ソフトウエアのインストール方式
JPS59173847A (ja) コンピユ−タソフトウエアの保護方法およびその装置

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term