JP2723231B2 - Software rights management control method - Google Patents
Software rights management control methodInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 17
- 230000007246 mechanism Effects 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 4
- 230000007704 transition Effects 0.000 description 9
- 238000003860 storage Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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の該当エントリが消去される。
権利管理に関する命令について,例えばいかなる命令
を用意すればよいかについては,以上の実施例の説明で
明らかであるが,各命令の機能変更,拡張は任意になし
得る。
〔発明の効果〕
以上説明したように,本発明によれば,マルチプログ
ラミングの環境において,保全性,柔軟性に優れた権利
管理を行うことが可能になり,ソフトウェアを自由に大
量に流通させ,かつソフトウェアの保護が充分であるシ
ステムを構築できるようになる。DETAILED DESCRIPTION OF THE INVENTION [Industrial Application Field] The present invention provides a software
Licenses for software, collection of usage record information, etc.
Software without interference and interference
Software in a data processing device
It relates to a rights management control method. With advances in semiconductor technology, the value of computer hardware
Degradation, miniaturization, and high functionality are rapidly progressing. Her
Advancement of hardware functions requires advancement of software
As a result, hardware developers and software developers
Clear division of labor between the issuers and users is being promoted. However, the software distribution environment is currently mixed.
It can be said that the situation is disturbed, and
For protection of software right holders and user convenience,
It is a system that balances
It is desired to build a system that supports mass distribution
You. [Prior art] Software development requires a large number of people and time.
User or a third party,
Duplicate software to make exactly the same
Can be done relatively easily. To develop software
Right holders (software right holders) pay less
In many cases, it becomes impossible to collect money.
Added the price of software products to losses due to plagiarism
Value (2) Unauthorized duplication is prohibited by contract,
(3) The software is distributed in a non-copyable medium.
(4) Use by computer serial number, etc.
Actions must be taken by limiting the possible devices.
Have been done. However, the above (1) is excessive for legitimate users.
The above (2) requires complicated contract procedures.
And the effect is not enough.
Is a problem that makes backup impossible,
Investigate the means by which it is
There is a problem that it can be manufactured.
In order to identify the computer, special
Specialization is required and free software distribution is hindered.
There is a problem of being harmed. As a solution to these problems, the applicant has
Rights of software right holders, user freedom, and distribution
Software service system that satisfies three easiness at the same time
The basic concept of the SSS is proposed. [Ryoichi Mori: “So
Software Service System ", IEICE Journal, Vol. 67,
No.4, pp.431-436 (Apr.1984)] Based on the software service system proposed here
The book is: (1) If the software meets any conditions
In addition, there should be an internal condition for permitting the execution.
You. (2) The user's rights are described inside the computer
There should be a rights record. This includes common credit
Records, purchase records, trial records, special license codes, etc.
obtain. (3) The computer records the rights record in (2) above in (1)
Use the software only if the license conditions are met
Should have an execution management mechanism that allows (4) The right holder can grasp the usage status of the software
As such, the computer should have a record of recovery work.
You. This work record can be used without any special trouble for the user.
There may be electronic means to retrieve the record. ...
You. By the way, the proposal of this software service system
Separately, encrypted instructions and data are stored in main memory.
When the instruction is fetched, the serial number of the computer
Computer architect that decrypts and executes with a decryption key such as
Kucha is known. [Problems to be Solved by the Invention]
When implementing in a ramming environment, multiple software
Multiple programs related to the right holder are calculated simultaneously in a time-sharing manner.
The vehicle will run using computer resources. in this case,
First, control the hardware mechanism related to rights management
A program that checks how the subject is licensed
(Hereinafter referred to as the license condition program)
2. Permission conditions in a multi-programming environment
The program and the software whose execution is controlled by it
Third, how to maintain the correspondence with the hardware itself
Swapping and professional
Granting access rights to perform
Tampering with the terms and conditions of the terms and conditions program
How to avoid disturbing the flow of
Considerations on whether to restrict access rights
It becomes important. Conventionally, appropriate
There was no mechanism to control the execution of the computer. The present invention solves the above problems, and
Control methods suitable for realizing rights management in a mobile environment
It is intended to provide. [Means for Solving the Problems] FIG. 1 is an explanatory view of the principle of the present invention. In FIG. 1, reference numeral 10 denotes rights management, which is a unit of rights management.
The target program, 11 checks the license conditions and checks the software
A license condition program that controls the execution of the
According to the purpose of use of users such as professional software and compiler
The software that performs the processing
Management interrupt generation mechanism for controlling interrupts related to
4 is the right to change the rights management status by a rights management interrupt
Process for changing the management status, 15 is the program status word
(PSW), 16 is the right to identify the rights-managed program 10.
Management ID (PMID), 17 is the password of the rights management target program 10.
Record the key to decrypt the encrypted instruction for each rights management ID16
Rights management table, 18 for managing encrypted instructions
Of the instruction at the time of fetching the instruction. The rights management target program 10 is, for example, a license condition program.
It is composed of a pair of RAM 11 and software
You. All or part of these may be rights-managed programs.
Encrypted with a plurality of encryption keys determined for each
Have been. Encrypted when loading rights-managed program 10
The key information for decrypting the executed instruction is the rights management target program.
Rights tube uniquely assigned in the system for Ram 10
The information is written in the right management table 17 together with the management ID 16. Program status word 15 is the current rights management
There is a field in which the logical ID 16 is set. Program
Is set in program status word 15 during program execution.
Corresponding to the rights management table 17 according to the rights management ID 16
The entry is accessed, and the decryption key (KE
Y) is read out and sent to the decoding circuit 18. Decryption
When the circuit 18 fetches the encrypted instruction,
Decryption using the decryption key read from the profit management table 17
And sends the decoded instruction to the instruction execution unit of the computer.
You. In the present invention, a processing device such as an operating system is used.
In addition to the supervisor interrupt that activates the function,
Rights management interrupt generation mechanism that controls changes related to logical state
13 will be provided. Then, the rights management interrupt generation mechanism 13
When a rights management interrupt occurs, the rights management
Rights management in the rights management table 17 by the change processing 14
Save status and current program status word 15
Change the rights management ID 16 of. As a result,
Switch the key for decrypting. [Operation] According to the present invention, the interrupt is transmitted to the operating system.
Interrupts related to resource management by the system
Rights management interrupt to control the status
Will be separated. When a rights management interrupt occurs, the rights management state changes.
The rights management based on the rights management table 17
Hardware status related to rights management
An entity that can control the structure is identified by a specific license
It can be individually limited to gram 11 or the like. Also,
Since decryption keys are managed individually, certain license condition programs
Rights such as an entry in the rights management table 17 corresponding to the
Information about rights management in other rights-managed programs10
Can prevent tampering by
You. In addition, interrupts are at least the same as traditional interrupts and rights management.
Since there are two interrupt systems, the operating system
Also prevent unwanted involvement in rights management by the system.
It becomes possible. [Embodiment] FIG. 2 is an example of a distribution form of software using the present invention.
FIG. 3 is a diagram for explaining rights management according to the present invention.
FIG. 4 is a state transition diagram of the rights management state, and FIG.
FIG. 6 shows an example of a hardware configuration used in the present invention.
Figure 7 shows an example of the configuration of the target software.
Fig. 8 shows the configuration of the P interrupt request table
Example, Fig. 9 is an example of S interrupt control, Fig. 10 is from S interrupt
FIG. 11 shows an example of the return control of the motor according to the embodiment of the present invention.
Fig. 12 shows an example of the use of tack,
FIG. 3 is a diagram for explaining the relationship between intervals and keys. The present invention is intended to protect and promote the use of software.
For example, as shown in Fig. 2, software distribution form is adopted.
It can be used when doing. The software right holder who developed the software
Use of software when distributing software
Condition program describing the conditions required of the licensee
And combine it with the software that developed it.
And encrypted, using free media, including broadcasting by radio waves.
And distribute the software. Users who want to use the software, for example,
Vending machines such as vending machines
Purchase by Shin. The content of this common credit is an example
For example, via a medium such as an IC card,
It can be entered. The user can use the IC card on which the contents of the common credit are recorded.
The software rights management control function of the present invention.
Attached to a data processing device 20 and obtained from an appropriate flow passage
The software that has been run on the data processor 20
You. As a result, the license agreement program for the software
The system operates with the decryption of the
Checks related to common credit information
U. Charges recorded on common credits as needed
Is subtracted. Required only if the check passes
Control that enables execution of the software itself. That
At that time, work record information on its use is accumulated,
Post the work record (AR) to the IC card at an appropriate time
You. The work record written on the IC card is
To continue using the credit, pay new fees
When resetting the internals of more common credits,
Read by a scanning machine and collected. This work record
By referring to the information, you can manage the software usage status.
On the basis of which multiple software right holders
And a reasonable distribution of fees can be made. The software distribution form shown in Fig. 2 is an example.
Therefore, the present invention is not a common credit,
A) When using a distribution form that manages individual usage qualification information
Can also be employed. Also, use media other than IC cards.
It is also possible to use. According to the present invention, the data processing device 20 includes a plurality of independent
Software that has been
Can be operated in a row. The rights management according to the invention is conceptually illustrated in FIG.
Become like In a multi-programming environment, operating and
If the system allocates I / O devices and processors
Management of computer hardware resources such as
You. In this case, the error may be caused by executing the wrong program.
In order not to disturb, and to use computer resources
Resources are arbitrarily determined by users who intend to use
In order to prevent the computer from being used,
The state is widely divided into the supervisor state and the supervisor state.
ing. The user's program runs in user state and
The operating system for management is usually a super
Executed in visor state. And the use of resources by users
Prevents abuse and allows the user to change the execution state without permission
Supervisor state from user state to avoid
Interruption (including indexing) by means for changing the state to the state
To separate the two states. Here, the permission condition program as described in FIG.
Related to decryption of data, reading and writing of common credits, etc.
Operate rights management under supervisor status
If it is controlled by the
Operating system that has been internally modified to
Have no resistance to loading the system.
No. On the other hand, the operating system
Countermeasures that make it difficult to change the content by making it hardware
Operating system version
Other problems occur, such as the inability to upgrade. Therefore, in the present invention, rights different from the supervisor state are set.
A special execution state called the management state is newly established. Rights management
Want to run software as free as possible
In an environment where users may think that
Or externally supplied software while avoiding negligence intervention.
Software rights management program
Can be executed. Rights management state changes state from another state to it
The point that the means is limited to interrupts and other states
Is similar to supervisor state in that it has
But unauthorized access due to cryptographic applications and key management
The point of prevention is greatly different from the supervisor state. As shown in FIG. 3, the operating system
Is unable to manage resources under supervisor status.
And the terms and conditions of the licenses
The programs 11A, 11B, ... restore the individually encrypted instructions.
Under the rights management state in which the key information to be encrypted is set,
By monitoring the execution of the software main units 12A, 12B, ...
To manage rights. Below, the license terms program and its
Together with the software itself controlled by
It is called profit management. By establishing a rights management status, the data
The data processing device performs a state transition as shown in FIG. 4, for example.
U. User (US) state, supervisor (SV) state, rights
There is a management (PM) state, and the supervisor state is SV
It is divided into p state and SVu state. SVp state and SVu state are
The instructions and access rights that can be used are exactly the same.
However, if a return instruction from interrupt is executed, the PM status
The difference is whether to return to the US state. The above four states (SVp, SVu, PM, US) are independent 2
It is represented by two status bits. One of them is Logra
S bit to be placed in the system status word 15
One is a P bit placed in the right management table 17. The state transition accompanying the change of the S bit is the supervisor state.
Program to be executed by the OS, that is, the operating system
Related to the control of the system
A state transition is a program executed in the PM state,
It relates to the control of the acceptance condition program. The state transitions of these two systems are placed in an orthogonal relationship, and
So that it does not directly affect the state transition of other systems.
Separation of the control mechanism between resource management and rights management
Is planned. Hereinafter, the conventional interrupt related to the S bit is called the S interrupt.
The rights management interrupt of the present invention related to the P bit
Called interrupt. FIG. 5 shows a hardware configuration used in the present invention.
As shown. In FIG. 5, those having the same reference numerals as those in FIG.
Corresponds to what is shown. 30 is an operation that is an instruction execution unit
/ Control part, 31 is IC card interface, 32 is IC card
Credit that stores the common credit information entered from
Register (CCR) 33 is software purchase information.
Which have rights management information specific to each software
Separate rights memory (SRM), 34 is software usage information
Is a work record memory (ARM) in which is recorded. Common credit register 32, individual rights memory 33, work record
The recording memory 34 is constituted by a nonvolatile memory. 35 is the license agreement program or the entire software
DES encryption mechanism for decrypting part or part by DES method, 3
6 is a P interrupt that stores control information such as P interrupt factors
The request table (PIT), 37 is the software that is subject to rights management.
When loading the software, decrypt the key storage described later.
Public key cryptosystem. The structure of the software handled by the device shown in Fig. 5 is, for example,
For example, it is as shown in FIG. Key storage, license agreement
From program 3 and software 12
Become. In the present embodiment, the license holder designates the license condition program 11.
The key (KEY1) given to the user is encrypted by the so-called DES method.
Encoding. In addition, at least a part of the software main body 12
By the key (KEY2), which is also arbitrarily given by the right holder
Encrypt with S method. For the DES method, for example,
"Shinichi Ichimatsu:" Research on Data Protection and Encryption ", Japanese Economy
Newspapers [1983]). The key storage unit contains a unit that identifies this software.
Security rights number (PN) and individual rights record (SR)
A private SR access key to manage access
Decrypt acceptance condition program 11 and software body 12
KEY1 and KEY2 are set. Ki
-The storage unit is, for example, RSA, one of the public key cryptosystems.
Encrypted by law. Note that this RSA method, for example,
By the authors of the "Research on Data Protection and Encryption"
Have been. Public-key cryptography knows keys that use encryption
If you do not know the decryption key that is the secret key,
There is a characteristic that the number cannot be solved. Of course others
Even if the encryption method of the above is used, the present invention can be similarly implemented.
It is possible. The key for decrypting this key storage is hardware
A) At the time of manufacture, the inside of the public key encryption mechanism 37 shown in FIG.
Keep it in. Load this software into main memory
At the time, the key storage is decrypted by the public key encryption mechanism 37
Then, the decryption result is set in the right management table 17. The rights management table 17 stores, for example, rights as shown in FIG.
It has information about interest management. The record in the rights management table 17 is
PMID, rights number (P
N), SR access key, permission condition program
DES key (KEY1) required to execute the software itself
DES key (KEY2) required to enable, KEY2 valid / invalid
Bit (K2F), Letter of rights management by license terms program
Bit indicating the status or not, the corresponding rights management pair is loaded
Initial bit that indicates that immediately after
Stack check command to confirm stack validity
Consists of nine fields. The number of rights management pairs that can exist simultaneously in the system
It is equal to the number of records in the profit management table 17. Multiple records
Has a PMID that matches the value of the current PMID in the PSW
Record is called the current PMT record, and rights management
Access to records in table 17 is normally
In this case, the operation is performed on the current PMT record. The P interrupt request table (PIT) 36 shown in FIG.
Table used by the P interrupt generation mechanism 13
And has a configuration as shown in FIG. 8, for example.
You. Each record in PIT36 is a rights control requesting a P interrupt.
A field that stores the PMID of the logical pair and its SR access key
Field that describes the cause of the requested P interrupt (P
−Reason), describe the jump destination address when a P interrupt occurs
Field (New-PC), P
From the five fields describing the parameters
Become. Record in PIT36 is a privilege that can be used only in the PM state
Generation / deletion is enabled only by an instruction.
Check the access right using the access key.
Already exists from the license condition program other than the right holder
PIT records cannot be rewritten or erased.
ing. P interrupt sources include, for example, P interrupts in the US state.
Instruction execution, timer interrupt, specific instruction in US state
Execution (instruction trap). For timer interrupt
The time interval of interrupt occurrence as a power meter
Any instruction code can be used for the instruction trap.
Can be given as a parameter. This
The license terms program may be
Controls the execution of the main unit and controls the execution of the main unit.
Work records for
ing. The P interrupt generation mechanism 13 shown in FIG.
Automatically when the cause specified by the RAM in PIT36 occurs.
Is a mechanism that causes a P interrupt to
For example, use the same general interrupt technology as the conventional technology.
Since it can be implemented by using
You. An S interrupt is issued to make the S and P interrupts independent.
The operation of the processor when it is generated is shown in, for example, FIG.
(A) to (i) shown in FIG. (A) When an S interrupt occurs, firmware etc.
Checks the P bit 0/1 of the current PMT record.
If it is 0, the control is transferred to (g). (B) If the P bit is 1, the current PSW and program
Generates a 16-bit cyclic code from the value of the ram counter
And a new stack check code 1 is set. (C) Generate a 16-bit random number and use the new stack check code.
Mode 2. (D) New stack check codes 1, 2 and current PMT
Old stack check code 1,2 taken from record
4 words (64 bits) are encrypted with KEY1 and
To torre. (E) New stack check codes 1 and 2 are assigned to the current PMT
Store to record. (F) The destination address (New-PC) of the PIT is
To the timer counter. Then, control is shifted to (h).
You. (G) If the P bit is 0, the interrupt vector is
Set to the gram counter. (H) PSW, program counter, stack format
Stack code. (I) Set the S bit of the PSW to "1" and set the operating
・ Transfer control to the system interrupt processing routine. In this example, the jump destination address at the time of the S interrupt is
New value to be set in the program counter,
Use the method of loading from the so-called interrupt vector table
Have been. In the supervisor state, RSE (Return from S-Exc
eption) instruction to execute PM status or US status
State. Processor behavior at that time
Are, for example, as shown in (a) to (g) of FIG. (A) Check the P bit 0/1 of the current PMT record.
Click. If it is 0, control is transferred to (f). (B) From the stack, stack check codes 1, 2
And old stack check codes 1 and 2
Is decrypted by KEY1 and stored in the processor. (C) Whether the value is the PSW of the stack and the value of the program counter
Generated a 16-bit cyclic code, and
Compare with the extracted stack check code 1. Irregular
If it matches, treat it as an error. That is, the PM state
Prevent transitions. (D) Next, the stack check of the current PMT record is performed.
Code 2 and the stack check extracted in (b) above.
Compare with code 2. If they do not match, an error
To process. (E) Copy old stack check codes 1 and 2 to the current PMT
Store to code. (F) Return the S bit of PSW to “0”. (G) Program counter stored in the stack
Set the value of the data to the program counter. And
Return to the routine executed immediately before the interrupt occurred. When transitioning from the PM state to the SVp state by an S interrupt,
For example, as shown in FIG.
It is evacuated to supervisor space by Sessa. Stud
The check code indicates that the information saved on the stack is
To be rewritten by the operating system
This is the code used to prevent it. The stack check code 1 is as described in FIG.
PSW and program counter saved on the stack
Is a cyclic code generated from the value of
Check code 2 is a 16-bit random number. These are
At the same time as being saved to the tack, the current PMT record
Is also stored and checked later when the information of the stack is retrieved.
Clicked. This rewrites the contents of the stack
That can be detected. For the old stack check codes 1 and 2, interrupts are nested.
To record the old stack check code
It is for Figure 11 shows the transition from the US state to the SVu state.
The data shown in (b) is saved on the stack. SV
When an S-interrupt occurs in the state shown in FIG.
Data is saved on the stack, and the P value that can be saved in the US state
When an interrupt occurs, the data shown in FIG.
Evacuated to Note that in the SV state, the P interrupt
Clicked. In the present embodiment, the program is executed for each state of SV, PM, and US.
Automatically depending on accessible space and hardware
The encryption key to be used is determined. Figure 12 shows the sky
It shows the relationship between keys and keys. The program execution in the PM state is as follows.
is there. Instruction fetch, data load / scan in PM state
Tor, subroutine call,
Main memory such as saving the program counter to the stack
The current PMT when writing or reading
Automatic encryption and decryption using KEY1 in record
Is performed by the DES encryption mechanism 35 shown in FIG. PM
The address space used in the state is exactly the same as the space in the US state.
One, not distinguished. These are controlled by key management.
Only quarantined. Even operating systems do not know the key
Unless the license condition program is suspended or forcibly terminated
Other than doing something else,
No. To return from the PM state to the US state, use RPE (Return from P-E
xception) by the execution of instructions. In the US state, the current
Performs decryption using KEY2 of the PMT record. However,
To reduce the decrease in instruction execution speed due to
Rather than encrypting all parts of the program
A method that allows the user to specify the range
Is desirable. Therefore, in the US state, the current PMT record
An instruction to control the K2F bit of
When the instruction is fetched, only while the
The encryption is performed automatically. The operating system performs the following processing. Entire rights-managed software is encrypted
Load to main memory as it is. Next, a new record is created in the rights management table 17.
Issue an instruction to execute. In this instruction,
PMID value to be given to the right management pair
The start logical address of the software key storage is
Meter. The PMID value is unique within the system.
If it works, it is optional. With this instruction, the hardware
Decrypts the key storage of software and software
Information in the rights management table 17 and a new PMT record
Create At the same time, the field of the current PMID of the PSW
To the PMID value of the rights management pair to be executed
set. Initial bit of rights management table 17
And the P bit are set to "1". Execute the RSE instruction. The current PMT record is new
This initial bit
When the RSE instruction is executed when this bit is "1", the processor
Status changes to PM status, and execution is controlled by the license condition program.
Is passed. At the same time, the initial bit is cleared
After that, the license agreement
The means for transferring control to the program is the RSE instruction for the S interrupt
Will not exist except for the execution of By the above, the rights management pair is generated, and the permission condition
Execution starts from the beginning of the program. Permission terms program
At the beginning of the program, a program for conversation with the user
Start measuring the execution time of the
To write an interrupt request to the P interrupt request table.
Grams etc. can be placed. After that, the software book
Issue an instruction to transfer control to the body. In this instruction, the P bit
Is cleared. Thereafter, the US state and the PM state are changed by the P interrupt and the RPE instruction.
The program is executed while moving back and forth. right
When the execution of the management pair ends, the operating system
The system uses the PMID of the rights management pair to be erased as a parameter.
Issue a PMT erase instruction. This allows hardware
The corresponding record in the rights management table and
The corresponding entry in the PIT is deleted. For any order relating to rights management, for example, any order
Whether or not to prepare is described in the above description of the embodiment.
Obviously, the function of each instruction is not changed or extended arbitrarily
obtain. [Effects of the Invention] As described above, according to the present invention, a multi-program
Rights with excellent maintainability and flexibility in a ramming environment
Management can be performed, and software can be freely expanded.
Distribution and distribution of software
You can build a stem.
【図面の簡単な説明】
第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
は復号化回路を表す。BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a diagram for explaining the principle of the present invention, FIG. 2 is a diagram for explaining an example of a software distribution form using the present invention, and FIG. FIG. 4 is a state transition diagram of a right management state, FIG. 5 is a hardware configuration example used in the present invention, FIG. 6 is a configuration example of software to be rights managed, and FIG. 7 is a right management table. FIG. 8 is an example of a P interrupt request table, FIG. 9 is an example of an S interrupt control, FIG. 10 is an example of a return control from an S interrupt, and FIG. 11 is a stack in one embodiment of the present invention. FIG. 12 is a diagram for explaining the relationship between a space and a key according to an embodiment of the present invention. In the figure, 10 is a rights management target program, 11 is a license condition program, 12 is a software main body, 13 is a rights management interrupt generation mechanism, 14 is a rights management state change process, 15 is a program status word, 16 is a rights management ID, 17 is the rights management table, 18
Represents a decoding circuit.
フロントページの続き (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−76Continuation of front page (56) References JP-A-60-77218 (JP, A) JP-A-60-191322 (JP, A) JP-A-63-145532 (JP, A) IEICE Transactions, J70-D [1] (1987-1-25) 70-81 IPSJ `` Super Editing / Super Distribution / Super Architecture Symposium on Management Bunshu "(1994) 67−76
Claims (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の鍵とを切り換える制御を行う ことを特徴とするソフトウェア権利管理制御方法。(57) [Claims] It has a computer that decrypts and executes the encrypted instruction with a given key, and as an execution state of this computer,
A supervisor state capable of executing privileged instructions used by the operating system, a rights management state capable of executing rights management instructions, and a user incapable of executing the privileged instructions and rights management instructions A rights management interrupt generation mechanism (13) for controlling a rights management interrupt for transitioning the execution state of a computer from the user state to the rights management state in a data processing device having a state. Among the programs to be rights-managed, a part or all of a first program that performs a process according to a use purpose of a user and a permission condition for execution of the first program are checked, and the execution of the first program is performed. And a second program for controlling the right and the second key respectively in advance by using first and second different keys. Decrypting the second program with the second key in the management state to operate the second program, thereby controlling the execution of the first program, and executing the first program in the user state with the first key The execution is transited to the right management state by the right management interrupt in the user state, and the control for switching the key to be decrypted from the first key to the second key is performed. In addition, the first program and the second
Manages a first key and a second key for decrypting each of the pair of programs, and executes the pair of the first program and the second program to be rights-managed in the supervisor state. When the control is transferred to another pair of the first program and the second program to be rights-managed, control for switching between the first key and the second key to be decrypted is performed. Software rights management control method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22710687A JP2723231B2 (en) | 1987-09-10 | 1987-09-10 | Software rights management control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22710687A JP2723231B2 (en) | 1987-09-10 | 1987-09-10 | Software rights management control method |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6468835A JPS6468835A (en) | 1989-03-14 |
JP2723231B2 true JP2723231B2 (en) | 1998-03-09 |
Family
ID=16855570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22710687A Expired - Lifetime JP2723231B2 (en) | 1987-09-10 | 1987-09-10 | Software rights management control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2723231B2 (en) |
Cited By (1)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0383132A (en) * | 1989-08-28 | 1991-04-09 | Fujitsu Ltd | Software protection control system |
JPH08263438A (en) | 1994-11-23 | 1996-10-11 | Xerox Corp | Distribution and use control system of digital work and access control method to digital work |
DE69722277T2 (en) | 1996-01-31 | 2004-04-01 | Canon K.K. | Billing device and an information distribution system using the billing device |
US6671675B2 (en) | 1996-02-27 | 2003-12-30 | Canon Kabushiki Kaisha | Metering the flow of electronic information |
JPH09231276A (en) * | 1996-02-27 | 1997-09-05 | Canon Inc | Charging device, communication device, and communication system |
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 (en) * | 2000-08-30 | 2002-03-15 | Tokyo Gas Co Ltd | Communication type prepaid system, equipment and portable terminal |
JP2003044297A (en) | 2000-11-20 | 2003-02-14 | Humming Heads Inc | Information processing method and device controlling computer resource, information processing system, control method therefor, storage medium and program |
CN1261870C (en) * | 2001-02-16 | 2006-06-28 | 索尼株式会社 | Data processing method and its apparatus |
JP2002244756A (en) * | 2001-02-19 | 2002-08-30 | Sony Corp | Data processing method, semiconductor circuit, and certification device |
US8275716B2 (en) | 2001-05-31 | 2012-09-25 | Contentguard Holdings, Inc. | Method and system for subscription digital rights management |
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 |
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 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2624249B2 (en) * | 1986-07-04 | 1997-06-25 | 株式会社 セガ・エンタープライゼス | Processor with imitation prevention function |
-
1987
- 1987-09-10 JP JP22710687A patent/JP2723231B2/en not_active Expired - Lifetime
Non-Patent Citations (2)
Title |
---|
情報処理学会 「超編集・超流通・超管理のアーキテクチャシンポジュウム論文集」 (1994) P.67−76 |
電子情報通信学会論文誌,J70−D[1] (1987−1−25) P.70−81 |
Cited By (2)
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 (en) | Tamper resistant microprocessor | |
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 (en) | System and method for securely restoring a program context from a shared memory | |
JP2723231B2 (en) | Software rights management control method | |
JP3243331B2 (en) | Method for creating layered medium for software management, apparatus for creating layered medium for software management, and layered medium for software management | |
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 (en) | Device for executing enciphered program | |
JP4347582B2 (en) | Information processing device | |
CN107729758A (en) | Secure processor for multi-tenant cloud workloads | |
WO1997025675A1 (en) | A secure pay-as-you-use system for computer software | |
JP4591163B2 (en) | Bus access control device | |
JPH0283622A (en) | System for installing chargeable software on plural computers by single medium | |
JPS59173847A (en) | Method and device for protecting computer software |
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 |