JPS63128434A - ソフトウエアの保護方法 - Google Patents

ソフトウエアの保護方法

Info

Publication number
JPS63128434A
JPS63128434A JP62250064A JP25006487A JPS63128434A JP S63128434 A JPS63128434 A JP S63128434A JP 62250064 A JP62250064 A JP 62250064A JP 25006487 A JP25006487 A JP 25006487A JP S63128434 A JPS63128434 A JP S63128434A
Authority
JP
Japan
Prior art keywords
software
coprocessor
token
cartridge
encrypted
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.)
Granted
Application number
JP62250064A
Other languages
English (en)
Other versions
JPH0260009B2 (ja
Inventor
アシュレシワリイ・ナラン・チャンドラ
リーム・デヴィド・カマーホード
ステイブ・リチャード・ホワイト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS63128434A publication Critical patent/JPS63128434A/ja
Publication of JPH0260009B2 publication Critical patent/JPH0260009B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/109Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by using specially-adapted hardware at the client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A、産業上の利用分野 B、従来技術 C0発明が解決しようとする問題点 り1問題点を解決するための手段 E6発明の概説 F、実施例 Fl、序論 F2.ソフトウェア保護構成(第1図、第3図)F3.
カートリッジの実施例(第2図、第5図。
第6図) F4.供給可能なソフトウェア製品の製造方法(第4図
) F5.上位計算機の実行の流れ図(第7図)F6.実行
権獲得過程の流れ図(第8図)F7.LDR中の上位計
算機の機能(第9A図)F8.LDR中のコプロセッサ
の機能(第9B図) G0発明の効果 A、産業上の利用分野 本発明はデータ処理の分野に関し、さらに具体的にはソ
フトウェア保護機構に関する。さらに具体的には、本発
明は、磁気ディスクもしくは他の媒体として供給される
ソフトウェアを特定の物理的に安全なコプロセッサと関
連する任意の計算機上で使用するようにその使用を制限
する機構を与える。この機構はユーザのバックアップ(
補助)コピーの作成はさまたげず、保護機能はこのよう
なバックアップ・コピーによってはそこなわれない。
B、従来技術 本発明の背景技術の良好な説明は特開昭61−7234
5号公報に与えられている。
米国特許第4458315号はソフトウェアがキ一番号
(第1のキー情報)とともに頒布される場合のソフトウ
ェアを保護する安全保護手順を開示している。ソフトウ
ェアを計算機上で、実行させるためには、計算機は第2
のキー情報を記憶する装置にアクセスしなければならな
い。第1と第2のキー情報が成る特定の関係にない限り
、プログラムは適切に実行されない。しかしながらこの
特許は、本発明の重要な構成部分をなすトランザクショ
ン・トークンの使用を開示しておらず、また、レコード
・キー情報に対するアクセスを制限する方法についても
開示していない。
米国特許第4168396号、第4278837号及び
第4465901号は暗号化プログラムを使用したプロ
グラム保護機構を説明している。
プログラムの各コピーは特別にあつらえられ、単一のマ
イクロプロセッサ即ち物理的に一意の単一のマイクロプ
ロセッサ上でだけ実行できるようになっている。しかし
この保護方法はソフトウェアを解読するのに必要なキー
が漏れた場合は保護を維持できないと考えられる。従っ
て、ソフトウェアを保護する実際の技法としてはこの方
法は不適である。ソフトウェアの販売者はそのソフトウ
ェアの各コピー(特注された)を、このソフトウェアを
実行するように特注されたマイクロプロセッサとともに
販売しなければならない。販売者にとっての唯一の代替
方法はユーザが所有しているマイクロプロセッサを知っ
て、ソフトウェアをこれに合うように特製することであ
る。ソフトウェアの販売者がソフトウェアを成るクラス
のマイクロプロセッサ(たとえば、すべての80286
)で実行できるようにすると、保護が失われ、複製ソフ
トウェアがそのクラスのすべてのマイクロプロセッサ上
で自由に実行できるようになる。
特開昭61−72345号公報は読取り動作によってデ
ータが変更されるように、データを磁気媒体上に記録す
る方法を開示している。このような−回読取り式の磁気
記録は通常のディスク駆動装置では作成できず、通常の
パーソナル・コンピュータ・システムによってはコピー
できない。この公報に開示されてるように、計算機は物
理的及び論理的に安全なコプロセッサと関連しており、
磁気媒体として供給されるソフトウェアは少なくとも、
暗号化された重要部分を含んでいる。磁気媒体は又ソフ
トウェアの暗号化部分を解読するためにコプロセッサに
よって使用されなければならない暗号化された解読キー
を含んでいる。暗号化された解読キーを安全なコプロセ
ッサに転送する動作はデータを変更させる機構とリンク
している。
これによって、特別の手段がないときには、暗号化した
解読キーは、一度磁気媒体を読取ると転送できなくなる
。これによって−供給媒体のコピーの作成が防止される
。コプロセッサが一度、暗号化された解読キーにアクセ
スすると、コプロセッサはこれを解読することができる
。ソフトウェアの実行過程で、暗号化部分はコプロセッ
サによって解読される。これによってソフトウェアが実
行可能になることが保証されるが、ユーザは解読された
形の完全なソフトウェア・パッケージにアクセスするこ
とはできない。
この公報に説明された機構は侵害に非常に強い。
それは解読キー及びソフトウェアの保護部分が暗号化さ
れていない形でユーザにさらされることがないからであ
る。ソフトウェアの所有者は無限にバックアップ・コピ
ーを造ることが可能であるが。
これ等のバックアップ・コピーは他のパーソナル・コン
ピュータ(解読キーをすでに記憶している特定のコプロ
セッサにアクセスできないパーソナル・コンピュータ)
では使用できない、保護システムは任意のソフトウェア
作成者がこれを使用したり。
又任意のハードウェア製造者がこれを製造することがで
きるように開放されている。それは、関与する当事者間
に機密情報(キー情報)を共有する必要がなく、その方
法を公開してもその機密保全性を危うくすることがない
からである。
しかしながら−回読取り式の磁気記録はコピー保護シス
テムでは2つの欠点を有する。第1に、磁気媒体を調べ
て、計算機システムに対して模擬動作するような装置を
製造することは(費用がかかるとはいえ)常に可能であ
る。第2に、徹底した侵害者であれば、システムによる
解読キーの受取りを許可するのに使用された一回読取り
の記憶データの読取り前の状態を復元する装置をつ“く
ることが可能かも知れない、従ってこの場合は、再初期
設定媒体を使用して第2のシステムを違法に許可するこ
とができることになる。さらに、この公報のシステムは
あるシステム上では利用できない、もしくはユーザにと
っては高価過ぎるバス・スロットの使用を必要とする。
バス・スロットは。
コプロセッサが上位プロセッサのバス動作を監視して、
−回読取りの磁気記録に関する動作が見掛は上上位プロ
セッサ上のプログラムによってシミュレートされていな
いことを確認するために必要である。
C1発明が解決しようとする問題点 本発明の目的は、ソフトウェアの使用を制限するための
、非常に安全で確実で経済的な保護方法を提供すること
である。
D0問題点を解決するための手段 ソフトウェアは暗号化されて、解読キーと共にユーザに
与えられる。また、解読キーを保持することが許可され
た時、暗号化ソフトウェアを解読できるコプロセッサが
計算機システムに結合される。コプロセッサには、トー
クン情報(暗証情報)を記憶したトークン発生手段が結
合され、トークン発生手段から転送されるトークン情報
が所定の条件を満たす時に、例えば予測された値を持っ
た時に、コプロセッサに解読キーを保持することが許可
され、コプロセッサに解読キーを使用する権利が与えら
れる。トークン発生手段からトークン情報がコプロセッ
サに転送される時にトークン発生手段内のトークン情報
が変更され、完全な形で残らないようにされる。従って
、トークンは再使用できない、暗号化と、解読キーの使
用権を検証する1回使用のトークンとの組合せにより、
ソフトウェアの使用を有効に制限できる。
D1発明の概説 本発明は、今日のソフトウェア供給方式ではユーザに、
ソフトウェア自体の外に、このソフトウェアを実行する
権利を供給しているという認識に基づいてりる。即ち、
ソフトウェアがユーザに販売される時は、ユーザはソフ
トウェア自体のみでなく、これを使用する権利を獲得す
る。しかしながら、ユーザはパーソナル・コンピュータ
によってソフトウェアを複製し、これをその(内在する
)使用権とともに他人に供給できる0本発明はソフトウ
ェアとその使用権とを分離しようとするものである。さ
らに本発明は実行権を発生する手段をソフトウェアの著
作権者もしくはその代理人の手にゆだねることを試みる
6本発明によっても、ソフトウェアの購入者は販売者か
ら受取ったソフトウェアを自由に複製できる。しかしな
がらソフトウェアの購入者はソフトウェアの使用権は複
製できない、事実波はソフトウェアを使用する単一の権
利を受取るだけである。ソフトウェアが実行可能になる
のは使用権が適切なコプロセッサ上に設置された時だけ
である(コプロセッサは、ここでは、使用権(高レベル
の特権)を制御するための支援プロセッサであり、ユー
ザがソフトウェアを実行させることを意図しているパー
ソナル・コンピュータのような上位計算機と組合される
)。ユーザが作成するかも知れないソフトウェアの他の
コピーは(上位計算機が他の適当なコプロセッサと組合
さ九た場合でも)使用権を与えられなげれば、他の上位
計算機上では実行できない。
本発明に従えば、ソフトウェアは磁気媒体(たとえばテ
ープもしくはフロッピー・ディスク)上に記録して供給
でき、もしくは他の手段(電話回線、ケーブルもしくは
同時通報伝送)によっても供給できる。ソフトウェアは
暗号部分Peと非暗号(平文)部分Pcに分けられる0
分割の選択は暗号部分だけが侵害から防護されるという
了解によって、ソフトウェアの販売者によってなされる
ソフトウェアを暗号化するのに使用する暗号キー(アプ
リケーション・キーAK又は実行権キーRTEと呼ばれ
る)はソフトウェアの販売者だけに知られている。ユー
ザに与えられる保護されたソフトウェアは暗号形(EA
K)としてソフトウェア解読キー(AK)で暗号化され
る。ソフトウェア解読キー(AK)はソフトウェアの販
売者に知られていないハードウェアの販売者の暗号キー
(C8K)で暗号化される。この暗号化はコプロセッサ
によって遂行されるサービスである。また、使用権の正
当性を検証するために用いられるトークン・データもA
Kによって暗号化され、暗号化されたソフトウェア、暗
号化された解読キーと共にユーザに供給される。
ソフトウェア販売者が供給するキー(A K)は、ソフ
トウェア供給媒体もしくi±他の手段を介してプログラ
ムとともに暗号形でユーザに供給でき、また一般に、A
Kを暗号化するのに使用するキーは、所与のハードウェ
ア販売者によって供給されるすべてのコプロセッサ中に
製造時に記憶されるコプロセッサ・スーパーバイザ・キ
ー(C8K)のリストから選択される。
キー(C8K)の記憶状態はソフトウェア販売者が知る
必要はないようになっている。ソフトウェアの販売者が
ソフトウェアの販売者のキーを暗号化するのに使用する
コプロセッサはユーザがソフトウェアを解読して実行す
るのに使用するのと全く同じ型のコプロセッサである。
もしくは、この目的のために特殊なプロセッサを販売す
るか、標準のプロセッサにハードウェアの製造者からの
暗号化されたメツセージを供給することによってこの機
能を遂行させることができる。これ等のオプションはこ
のような装置の製造者に柔軟性を与えるのに役立つ6同
様に、ソフトウェアの販売者の解読キーはソフトウェア
のユーザに暴露されることはなく、ハードウェアの販売
者の暗号キー(CS K)はソフトウェアの販売者に暴
露されることはない、従って本発明のシステムは保護を
与えるのにハードウェアとソフトウェアの製造者間で情
報を共有する必要がないという性質を有する。
ソフトウェア実行の要求があった時は、暗号化された解
読キーAKがコプロセッサに与えられ、所定のC8Kを
用いてAKが解読される。しかし、コプロセッサは、解
読された解読キーAKを用いて直ちに暗号化ソフトウェ
アを解読実行できるわけではなく、その実行要求が正当
な使用権に基づいてなされたものであるかを検証した時
にのみ、解読キーAKの使用権を認められる。
このような検証を行なうために、トークン・データ(暗
証情報)を含むハードウェア・カートリッジが設けられ
、カートリッジから与えられるトークンが、先に暗号化
形でソフトウェア・パッケージの一部として与えられて
いるトークン・データ(即ち、トランザクシミン・トー
クン)と一致するかどうか調べられる。ハードウェア・
カートリッジは正当な使用権を有するユーザにソフトウ
ェア販売者から与えられるものである。
トークン・カートリッジ及びその情報内容は物理的に安
全に保持され、不法アクセスを避けることができるもの
でなければならない。本発明と直接関係ないが、この物
理的安全性を得る方法としては、不法にアクセスしよう
とする者が装置の内部構造を調べようとして装置を破壊
したり又はプローブ等を挿入したときこれを検出して記
憶データを破壊する方法が提案されており、トークン・
カートリッジ及びコプロセッサの物理的保護手段として
このような技術を使用することができる。
トークンは単一の、連続的に電力が供給される集積回路
チップとして具体化できるので、この場合は追加の物理
的な機密保持手段は必要でない。たとえトークンの物理
的安全性が破られても、暗号キーが暴露されることなく
、単一の関連ソフトウェア・パッケージを再供給すれば
よい。
ハードウェア・カートリッジがコプロセッサの証拠呈示
要求に答えられる時にだけ、ソフトウェアの解読キーが
有効になる。カートリッジは平文形でトークン・データ
を記憶しているので、ハードウェア・カートリッジは物
理的、論理的に安全でなければならない。コプロセッサ
のハードウェア・カートリッジに対する証拠呈示要求は
照会の形をなし、ハードウェア・カートリッジは照会に
対して、照会とトークン・データの関数である返答を戻
すことによって応答する。この関数は未使用のトークン
の振舞いを再現できるほどトークン・データを十分に開
示しないように選択される。このような関数の例は照会
の内容に基づいて、トークンの内容の50%を選択する
ものである。ハードウェア・カートリッジが応答を発生
する時、記憶していたすべての平文のトークン・データ
は重ね書きされるか、破壊される。照会/応答過程の結
果、コプロセッサは平文のトークン・データの選択され
た一部もしくは変形部分を受取る。従って、コプロセッ
サとハードウェア・カートリッジ間の通信経路が安全で
ない場合でも、トランザクションをモニタする(たとえ
ば照会及び応答をコピーする)者はカートリッジの振舞
いをシミュレートするのに十分な情報が与えられない。
コプロセッサは平文のトークン・データの選択された部
分もしくは変形を受取るだけであるが、コプロセッサは
照会データと平文のトークン・データ(暗号化トークン
・データを解読したもの)の両方を手元に有するから、
コプロセッサはその応答が真正なカートリッジを識別す
るものであるかどうかを判断するのに必要なすべての情
報を有する。
コプロセッサとハードウェア・カートリッジ間の通信経
路は直接(ハードウェア・カートリッジをコプロセッサ
のボートに結合することによって)もしくは間接(許可
さるべき上位計算機もしくはプロセッサを介して)に接
続される。
適切な照会の好ましい例は指定されたビット長の乱数で
ある。この照会はハードウェア・カートリッジへ入力さ
れ、ハードウェア・カートリッジ中に記憶されている平
文のトークン・データの別個の排他的部分を選択するの
に使用される。簡単な例では、照会は2進数であり、平
文のトークン・データが2つの部分に分かれている場合
には、照会の各ビットが第1の部分もしくは第2の部分
から1ビツトを選択するのに使用できる6選択されたビ
ットが応答の1ビツトを構成し、これと同時に、選択さ
れたビット及び選択されないビットは重ね書きされるか
消去される。従ってこの例では照会のビット長は平文の
トークン・データのビット長の半分に等しい。コプロセ
ッサとハードウェア・カートリッジ間の通信経路は安全
ではないので、侵害者が照会と応答をコピーすることが
想定できる。しかし侵害者は他のコプロセッサが発生す
る照会を制御できないので、彼が知り得る応答は真正な
ハードウェア・カートリッジの効果をシミュレートする
には不十分である。
ハードウェア・カートリッジは1回だけ解読キーの使用
を許可できるように構成されている。このことはユーザ
がソフトウェア解読キーAKを単一のコプロセッサに転
送できることを保証している。ユーザは自由にソフトウ
ェア媒体をバックアップできるが、保護されたプログラ
ムはソフトウェア解読キーを含むコプロセッサと協働し
てしか実行できない。コプロセッサは物理的及び論理的
に安全であるから、記憶されているソフトウェアの解読
キーはコピーできない、転送トークンを含むハードウェ
ア・カートリッジは、物理的及び論理的に安全であるか
ら、これはコピーできない。
又ソフトウェア暗号キーの転送動作はトークン情報内容
を変更もしくは破壊するので、この過程は一回限り実行
されるだけである。
コプロセッサを機密情報(A K)の信頼できる受取人
とみなした場合には、トークンは他の者がメツセージ(
A K)を不正に受取らないようにする、封筒の封ろう
にたとえることができる。トークンは従って販売者のソ
フトウェアを実行できる全コプロセッサに対するソフト
ウェア販売者による管理を与えるものである。従来の技
術に欠けていて、ソフトウェアの侵害を許したのはこの
管理である。
F、実施例 Fl、序論 説明のため、上位計算機もしくはワーク・ステーション
はIBMパーソナル・コンピュータ(PC)であるもの
とする。その動作については1981年刊IBMパーソ
ナル・コンピュータ技術マニュアル(I B M Pe
rsonal Computer Technical
Reference Manual、1981)に説明
されている。上位ディスク・オペレーティング・システ
ム(DO8)はIBM  PCDO8であるものとする
。この仮定は単に説明を明確にするためのものであり、
他のシステムでも同様に実施できる。
本発明に従うソフトウェア保護システムは2つの部分、
即ち上位計算機の中に設置されるか、又はこれに結合さ
れるハードウェア特権支援システム(コプロセッサ)及
びソフトウェアを販売者からユーザに供給するのに使用
されるソフトウェア記録媒体(磁性もしくは他の)より
成る。ソフトウェアが磁気媒体(プロッピー・ディスク
もしくはテープ)によって頒布される時には販売もしく
はリリースされるように準備される媒体は次の部分より
成る(第3図参照)。
(1)ソフトウェア販売者によって選択されるキーAK
によって暗号化される少なくとも1つのプログラム・フ
ァイルより成るアプリケーション・プログラム。
(2)暗号化したソフトウェアを、実行可能にする、暗
号化形EAKで与えられた解読キーAK、ここでAKの
暗号化はハードウェアの販売者の(秘密の)暗号キーC
5Kによって行われる。
(3)同じソフトウェア販売者のキー(AK)によって
暗号化された、暗号形トークン・データETD。
以下説明するように、ソフトウェア解読キーの暗号化は
コプロセッサの使用によって遂行される。
このプロセッサはすべての点でユーザPCと関連して動
作するコプロセッサと同じである。ソフトウェアの販売
者はその中に記憶されている情報(ハードウェアの販売
者の暗号キーC3K)にアクセスできない。
以下説明するように、ソフトウェアは上位計算機に転送
される情報のパッケージが上述の3つの項目を含む限り
、通信リンクを介しても供給できる。
本発明の特徴は、コプロセッサがソフトウェアを実行す
る許可を受取らない限り、ソフトウェアを実行できない
ことである。もし侵害者がコプロセッサに結合されたシ
ステム上で実行しようとした場合は、ソフトウェア暗号
キーを供給媒体からコプロセッサの持久メモリに転送し
なければならない。しかしながら、以下に説明するよう
に、この転送には一回しか使用できないハードウェア・
カートリッジからのトークン・データが必要である。八
−ドウエア・カートリッジは複製もしくは偽造が困難な
ように構成されている。適切なトークン・カートリッジ
がない場合には、コプロセッサは保護されたプログラム
を実行するのに必要なAKを受取ることはできない。ま
た、もし侵害者がコプロセッサを用いないシステム上で
実行しようとした場合は、暗号化されたアプリケーショ
ン・プログラムの部分を解読しなければならない。しか
しこれは、先ず不可能なことである。しかも、コプロセ
ッサを装備したシステムには2つのプロセッサがあるの
で、このようなアプリケーション・プログラムは通常、
2つのプロセッサ上で同時に動作するように、もしくは
コプロセッサ上の特別の機構を使用するように書かれる
であろう。従って、仮にこのような解読を達成できたと
しても、ソフトウェアはコプロセッサなしで実行できる
ように大巾に書直さない限り依然後に立たない。
コプロセッサ自体は計算システムである。コプロセッサ
はそれ自身のプロセッサ、ファームウェア及び読取り専
用メモリ(ROM) 、実時間クロック及びRAMを有
する。コプロセッサはメモリ及びI10アドレス・スペ
ース中にマツプされるアダプタ・カード・セットとして
パーソナル・コンピュータ中に設置されるか、単に工/
○ポートを介してパーソナル・コンピュータに結合でき
る。
しかし、コプロセッサのメモリの一部しかPCによって
アドレスできないようにすることが必要である。又PC
によってアドレスできないコプロセッサのメモリの部分
はユーザにとって物理的にアクセス不能でなければなら
ない。コプロセッサがアプリケーション・ソフトウェア
の暗号化部分を解読して実行するのはこのメモリである
プロセッサ・メモリ(RAM及びROM)及びポート・
アドレス・レジスタ(ない場合もある)の外に、コプロ
セッサは(電池で支援された0MO8RAMもしくはE
EPROM(7)ような)ROM及び持久メモリ装置を
含む物理的及び論理的に安全なメモリ・スペースを有す
る。
ROMはシステム・ファームウェアを含む。ファームウ
ェアはモニタの形をなし、その指令はPCがコプロセッ
サから要求できるサービスである。
このようなサービスの完備したセットは最小限法のもの
を含む。
(1)実行権の獲得(ARE) (2)アプリケーションのロード、解読及び実行(LD
R) 持久RAM装置はアプリケーション・ソフトウェアの解
読キーAKI、AK2等がすべてのC8Kとともに記憶
される安全な持久メモリとしてコプロセッサによって使
用される。
コプロセッサは少なくとも2つのレベルの特権を有し、
AKを記憶するのに使用するメモリはユーザから適切に
安全に保護されている。このことが必要なのは、ユーザ
がソフトウェアの書き手になりうるあるからである。も
し1人の著作権者のために実行されるソフトウェアが他
の著作権者のAKを読取ることができると、このユーザ
/著作権者は他の著作権者のAKを取出して、その保護
されたソフトウェアを解読できることになる。AKの設
置、使用及びこれへのアクセスの管理はシステムに対す
る高位の特権レベルの重要な機能であることは明らかで
あろう。
コプロセッサ上で解読及び実行されるすべてのアプリケ
ーション・ソフトウェアは、持久RAMのアクセス並び
に保護ソフトウェアのロード、解読及び開始を制御する
ROM常駐ファームウェアよりも低い特権レベルにある
上述したように、コプロセッサは物理的及び論理的に安
全でなければならない。この安全性はユーザが論理アナ
ライザもしくは他のディジタル制御兼記録装置を適用し
て、安全なメモリ・スペースの内容の記録し従って、A
Kもしくは解読ソフトウェアを獲得するのを防止するた
めに必要である。
PC即ち個人のワーク・ステーションは単一バス・マイ
クロ・プロセッサ・システムである。IBM  PCは
このクラスの機械の代表的なものである。このようなシ
ステムは(中間にソケットを有する伝送線の配列でよい
)バスを、論理的に分離したサブシステム間の通信媒体
として使用している。サブシステムの一部は、バスを支
援する同一パッケージ素子(この場合はシステム・ボー
ドと呼ばれる印刷回路ボード)上に存在し得る。システ
ムの機能にとって必要である。もしくはシステムの機能
の拡張を与えるサブシステムはソケットによってバスに
取付けられる。
F2.ソフトウェア保護構成 第1図の上位計算機と記されている領域におけるサブシ
ステムの集合は普通のほぼ最小構成のPCの例である。
PCCPU4は単一チップのマイクロプロセッサ及び1
群の支援チップより成る。
PCCPU4はクロックと呼ばれる周期的信号が与えら
れ、支援チップによってバスに接続されている。マイク
ロ・プロセッサは通常これ以上の支援が与えられるが、
すべての支援はメモリからの命令のフェッチ(取出し)
、サブシステムのある選択された素子(たとえばRAM
)からのデータのフェッチ、命令の実行、及び必要な時
に、システムの選択された素子に実行結果を記憶すると
いう繰返しサイクルを実行することを目的としている。
CPU4には直接メモリ・アクセス(DMA)と呼ばれ
る支援が与えられている。DMAは、データを1つのア
ドレス可能素子から他のアドレス可能素子へ移動するこ
とを含むタスクをマイクロプロセッサから開放する。
マイクロプロセッサは遂行されるバスの動作のタイプ(
フェッチ、記憶等)、及び選択される素子のタイプを制
御する。これによってバス中の制御線はその役割を主張
する(バス定義と呼ばれるプロトコールに従って適切な
電位に変更される)。
これ等の手段によってマイクロプロセッサは命令の集合
(プログラム)を得て、データの集合に対して命令を実
行し、命令実行の結果としてシステムの他の素子中に記
憶されているデータを変更することができる。
RAM6はCPU4によってデータがフェッチされ、書
込まれるサブシステムである。これはある他のソースか
らロードされるデータ及び命令を記憶するのに使用する
サブシステムである。RAM6に意味のある内容がある
時は、この内容はCPU4によってこれに書込まれたも
のである。計算機の電力がオンになった時点では、RA
M6の内容は実用的な目的にとっては、意味のないもの
である。
ROM8はデータがフェッチだけできるサブシステムで
ある。これは計算機の有用な動作を開始するのに必要な
、及び残りのサブシステムの制御に有用なプログラムの
集合を含んでいる。
残りのサブシステムである。端末制御ユニット9、表示
装置11、手動入力装置13、ディスク・システム制御
ユニット15、ディスク駆動装置17及びI10ポート
19はアドレス可能な素子と、人間の感覚にうったえ、
人間の動作によって影響を与えられ、磁気媒体を操作し
て磁気媒体上の磁気ドメイン間の境界を形成し、感知す
ることを含む読取り及び書込み動作を遂行する機械的、
光学的もしくは電気磁気(もしくは他の)素子を有する
もしくは支援するものとして特徴付けられる。
アドレス可能な素子のあるものの内容はサブシステムの
、機械的、光学的及び電子磁気的装置の動作を制御し、
他のアドレス可能な素子の内容は機械的、光学的もしく
は電子磁気的素子によって制御される。従って、これ等
の装置によって、計算システムはユーザ並びに磁気及び
他の媒体と相互作用をすることが可能になる。ユーザと
相互作用するのに必要な素子を与えるサブシステムは端
末制御サブシステムと呼ばれる。磁気媒体上に読取り及
び書込み動作を可能とする普通の形式のサブシステムは
ディスク制御システムと呼ばれる。
電力上昇時に、マイクロプロセッサはメモリの一定位置
からの命令フェッチを実行する。このアドレスはROM
8によって占有されているものである。この位置にある
命令はシステムが使用可能であるかどうかをテストして
初期設定する効果を有するプログラムへのジャンプであ
る。システムの初期設定プログラムの1つによってディ
スク・オペレーティング・システムと呼ばれるプログラ
ムがディスクから読取って実行する。このプログラム(
DO8)は端末制御システムの使用によってユーザから
コマンドを受取ることが可能である。
これ等のコマンドはユーザが選択したプログラムによっ
てシステム上での実行を可能にする。この動作はこのプ
ログラムが存在するファイルの名前を(手動入力装置を
使用して)DOSプログラムに知らせることによって行
われる。
第1図の15で示したサブシステムの集合は最小構成の
コプロセッサ・システムの例である。このハードウェア
の素子は2つの部分から成るものと考えることができる
。1つの部分(154)はハードウェアがPCと通信で
きるようにするアドレス可能な素子を含み、(ユーザと
上位計算機の間のように)コマンドとデータが交換でき
るようになっている。他の部分はPCとの通信とは直接
関係ないコプロセッサCPU150、RAM151、R
OM152、実時間クロック156及び持久RAM15
3を含んでいる。
持久RAM153はEEPROM、電池支援CMO8R
AMもしくはその記憶内容を消去できる他の技術によっ
て具体化される。
持久性と消去可能性という性質の組合せが必要なのは、
ソフトウェア・キー(A K)とコプロセッサ・スーパ
ーバイザ・キー(C8K)の記憶を維持できるが、侵入
検出システム155が何らかの物理的侵入又は破壊を検
出した時に記憶を消去できるようにするためである。本
発明と直接関係ないが、このような検出システムはコプ
ロセッサの物理的保護を与えるものである。
実時間クロック156は特殊カウンタを含むサブシステ
ムである。これには、持久メモリ及び侵入検出シス与ム
に電力を供給するのに使用したものと同じ電池によって
電力が供給される。この電池は計算システムがオフにな
った時にカウンタ及びその支援チップに電力を供給する
。カウンタはその支援チップによって発生されたクロッ
ク信号に応答してそのレジスタをインクレメントし、そ
のレジスタがコプロセッサの製造者によって初期設定さ
れて以来の経過時間が反映される。従って。
もしレジスタが(標準)時刻に初期設定されると、その
内容は時刻を反映することになる。実時間クロックのレ
ジスタはCPU150によって読取ることができる。
第1図は本発明に従って供給されるソフトウェアが実行
されるPC及び関連コプロセッサの構造を示す。ここで
の説明のためには、ソフトウェアはフロッピーディスク
のような磁気媒体によって供給されるものと仮定するが
、説明が進むにつれて、ソフトウェアは任意の通常の技
術によっても供給できることが明らかになろう、特開昭
61−72345号公報に開示されている発明に従えば
支援ハードウェアは上位電算機とその内部バスによって
通信するが、本発明の1つの特徴はコプロセッサがPC
に通信ポートを介して結合でき、コプロセッサが都合よ
くポータプルにできる点にある。動作の説明はこのよう
な構造を使用してなされるが、本発明はコプロセッサが
内部バスによってPCと通信する時でも使用できること
は明らかであろう。
コプロセッサ15は特開昭61−72345号の支援バ
ードアエアと共通した特徴を有する。具体的にいうと、
コプロセッサは各ソフトウェアの販売者にユーザよりも
高位の特権レベルを与えるが、同時に、どのソフトウェ
ア販売者に対しても、他の販売者の特権情報へのアクセ
スを与えない。
コプロセッサ上で解読及び実行されるすべてのアプリケ
ーション・ソフトウェアは2つの特権レベルのうちの下
のレベルにあり、ROM常駐ファームウェア中で具体化
される高位の特権レベルが持久RAM153へのアクセ
ス、ローディング、解読及び実行動作を制御する。コプ
ロセッサのこの構造はソフトウェアの販売者が、コプロ
セッサ上で実行してファームウェア及び持久メモリ(解
読キーを含む)にアクセスし、その情報を上位計算機1
0に利用可能にするモニタを設計するのを防止する。
従って、コプロセッサ15はRAM 151にアクセス
する第1即ち低位の特権レベルを有する。
上述のようにRAM151はユーザもしくは上位電算機
10あるいはその両方から安全に保護されている。第1
の特権レベルは保護ソフトウェアを実行するために第1
のレベルの動作命令を含む。
しかしながらコプロセッサ15は第2のレベルの安全メ
モリ及び第2のレベルの動作命令を含む第2の特権レベ
ルを定義している。第2のレベルの安全メモリは持久R
AM153によって表わされ。
第2のレベルの動作命令はROM152中に定義されて
いる。第2の特権レベルはユーザ及び任意のソフトウェ
アの著作権者に対して機密を保持している。実行権の獲
得に関与し、従ってこれに先行する手順を制御するのは
コプロセッサ15の第2の特権レベルである。同じ第2
の特権レベルは保護されたソフトウェアの実行を要求す
るユーザに応答し、保護ソフトウェアのローデング及び
解読を与え、第2の特権レベルがこのような実行が許可
されていると判定した場合にのみ第1の特権レベルの動
作を開始して保護ソフトウェアを実行させる。
本発明に従い、保護されたソフトウェアに関する動作に
は2つのモードが存在する。実行権獲得(ARE)と呼
ばれる第1のモードはコプロセッサが保護アプリケーシ
ョンを実行することを許可するのに必要とされる。各コ
プロセッサは各アプリケーションに対してARE トラ
ンザクションを遂行することによって多くのソフトウェ
アを実行するように許可される。従って、装置が許可さ
れているソフトウェア・パッケージを実行する時は、ロ
ード、解読及び実行(LDR)モードで動作する。
第3図は本発明に従い使用されるソフトウェア構造を示
す。第3図に示されたような、3つのファイルが一体と
して(磁気媒体上でもしくは通信リンクを介して)供給
される。第1のファイルは暗号化されたソフトウェア解
読キーEAKである。
第2のファイルは平文ソフトウェア(部分1)及び保護
即ち暗号化されたソフトウェア(部分2)(EAK (
ソフトウェア、部分2))を含むソフトウェアである。
最後のファイルは暗号化されたトークン・データ、EA
K (トークン・データ)である。暗号化ソフトウェア
及び暗号化トークン・データは共通のキー(AK)を使
用して暗号化され、これ等の各々が解読キー(AK)を
使用して解読されるようになっているが、このソフトウ
ェア解読キーは異なるキー(CS K)で暗号化される
ようになっている。ハードウェアの販売者のキー(C5
K)は以下説明するようにソフトウェアの販売者のキー
から秘密に保持することができる。
特開昭61−72345号公報に開示されている発明に
従えば、゛公開キーゝ暗号システムを使用するキーの対
がソフトウェアキーの暗号化及び解読に使用されなけれ
ばならないが1本発明の1つの特徴は暗号化及び解読に
同じキーを使用するDESもしくは他の対称キー・シス
テムを含む任意の適切な安全保護暗号システムが使用で
きる点にある。
説明上、第3図の3つのファイルはディスク駆動装置1
7(第1図)にロードされるフロッピー・ディスク中に
含まれているものとする。コプロセッサを初期設定する
ために、トークン・カートリッジ20がコプロセッサ1
5もしくは上位計算機(PC)10に結合される。カー
トリッジ20は以下説明するように独自の特徴を有する
メモリ装置中に記憶されたトークン・データを含む。こ
こでは、カートリッジ20は一回限り使用できるように
なっていると述べるだけで十分である。カートリッジ2
oを使用すると、その内容が変り、その本来の目的に使
用できなくなる。
(保護された)ソフトウェアを使用するためには、コプ
ロセッサ15にはアプリケーションの暗号部分を実行可
能にするのに必要な解読キーが与えられなければならな
い。このキーはその転送機構が再使用もしくは複製され
ないようにしてソフトウェアの所有者のコプロセッサ1
5に転送されなければならない。この転送は未使用のト
ークン・カートリッジを使用して、解読キーを効果的に
コプロセッサ15の持久メモリに転送することによって
達成される。ここで「未使用」とはソフトウェアの著作
権者によって供給されるトークン・カートリッジの内容
がこの時点以前に絶対に読取られていないということを
意味している。トークンは以下説明する理由で偽造が困
難であり、転送トランザクション中に効果的に消去でき
る。トークンはプログラムに関連する暗号化ファイル中
にリストされている(もしくは以下説明されるように他
のソースによって与えられる)ので、コプロセッサ15
が識別できる情報内容を有する。このリストはトークン
がソフトウェアの著作権者によって与えられたことの証
拠になる。このことはソフトウェアの販売者がアプリケ
ーションの保護部分を暗号化するのに使用したのと同じ
キー(AK)によってこの情報が暗号化されているとい
う事実によってコプロセッサ15に確認される。
転送トークンを記憶するカートリッジ20はコプロセッ
サのI10装置154に直接結合されるか(図示されず
)、pcのI10装置19にこの目的のために与えられ
たコネクタを介して結合される(図示されている)。カ
ートリッジ20へのコネクタは露出していて、従ってユ
ーザによってモニタできるから、コネクタを使用するト
ランザクションはデータの一部が暴露される場合でも。
偽造が困難なものでなければならない。この性質を与え
るために、各トランザクションは一意的で、コプロセッ
サによって検証可能なものでなければならない。
カートリッジ20は物理的及び論理的に安全である。物
理的安全性は多くの方法によって与えることができる。
その1つは先に述べたように、物理的侵入又は破壊を検
出して記憶データを破壊する方法である。物理的安全性
を与える好ましい方法はトークンの回路を単一の集積回
路チップとして具体化することである。カートリッジ2
0は前に使用したことがないという検証及びその真正さ
の検証が可能なように振舞うメモリを含む。この2つの
検証はコプロセッサによって、解読キーAKが将来の使
用のために受取られる前に必要とされる。以下説明する
ように、カートリッジ2oはそのコネクタ及びプロトコ
ルが標準化される限り第3者のソースによって製造でき
る。その情報の内容はソフトウェアの著作権者もしくは
著作権者の代理人によって決定され、ロードされなけれ
ばならない。データはカートリッジからコプロセッサに
照会/応答プロトコルを使用して転送される。
照会は乱数であり、これとトークン・データとの組合せ
によってトークン応答を判断する。コプロセッサ15及
びカートリッジ20間の安全でない経路上を通過するア
クセス可能な情報は乱数とカートリッジの応答であるか
ら、そのどれもトークン・データを暴露することはない
。コプロセッサはトークン・データのコピーにアクセス
できる(たとえばソフトウェア供給媒体からの暗号化ト
ークン・データを解読することによって)。従ってコプ
ロセッサは正しい応答を独立に決定でき、従ってカート
リッジ20からの実際の応答とそれ自身の独立に決定し
た正しい応答とを比較できる。
従ってランダムな照会と実際の応答だけが暴露される。
応答を得るのに必要な完全なトークン情報は露顕されな
い。カートリッジ20がその応答を発生すると同時に、
カートリッジはその内容を変更し、カートリッジは再使
用できなくなる。この動作は読取り動作時に通常のメモ
リのようには振舞わないメモリ領域をカートリッジ20
中に与えることによって達成される(カートリッジ20
のための適切なアーキテクチャのブロック図は第2図に
示されている)。後で詳しく説明するが、簡単に説明す
ると、カートリッジ20は少なくとも2つのメモリ・セ
グメントを含み、この両方にはあたかもこれ等が通常の
直列入力シフト・レジスタであるかのように書込むこと
ができる。しかしながら読取りを遂行する時には、領域
のアクセスが制御される。読取り中に、雨メモリ・セグ
メントがイネーブルされ、通常の直列出力シフト・し 
、ジスタのように出力にデータを発生する。両出力はマ
ルチプレクサは送られる。マルチプレクサは2つ(もし
くはそれ以上)のセグメントのデータのうちのいずれを
コネクタ(従ってコプロセッサ)に指向させるかを、コ
プロセッサの乱数によって駆動される制御線の状態によ
って選択する。カートリッジのメモリ領域が読出される
時に両セグメントの内容は消去される。これによって、
コプロセッサとトークン・カートリッジ間のトランザク
ションを傍受する侵害者はカートリッジの情報内容の1
部を得るだけであることが保証される。このトークン情
報のこの暴露部分は、コプロセッサにとっては、これが
コプロセッサにソフトウェア・パッケージの使用を許可
できる有効なトークンであることを検証するのに十分で
あるが、侵害者にその元の内容を再構成させて、他のコ
プロセッサをだまして正当に所有していないキーを受取
らせるには不十分である。
上述のカートリッジ20の実施例では、2つのシフト・
レジスタが使用され、従って読取り中にはメモリの内容
の選択された50%が暴露される。
代替実施例としては、より多くの(3つ以上の)メモリ
・セグメントを用いて、その中から1つを選択するよう
にすることもできる。これ等の代替実施例はコストと安
全性に関するトレード・オフを与える。
この読取り動作中に、カートリッジ20の内容の1部が
コプロセッサ20に転送される。選択される部分はコプ
ロセッサによって発生される乱数によって決定される。
次にこの乱数とカートリッジ2oからの応答はともにコ
プロセッサ中に記憶される6次にこの情報がソフトウェ
ア供給媒体から同じくコプロセッサに転送されるトーク
ン・データ(第3図、ファイル3)と比較される。トー
クン・データと予想したトークン・データが一致しない
場合にはトークン・カートリッジが偽造されたことの証
拠として受取られ、将来使用するための解読キーがコプ
ロセッサによって拒否される。
勿論将来使用するための解読キーが受取られた時にだけ
、保護されたソフトウェアが実行できる。
F3.カートリッジの実施例 第2図はカートリッジ20の1実施例のブロック図であ
る。この実施例では、トークン装置はコストと物理的安
全性のために単一のシリコンCMO8集積回路チップ2
5として具体化されている。
このチップは適切にパッケージされていて、データ記憶
素子120,220には電池26によって連続的に電力
が供給される。CMO8集積回路は非常に小さな静的電
力しか必要としないように構成できるのでこれ等のレジ
スタに記憶されているデータは、読取られなければ略電
池の寿命と同じ時間保持される。以下説明するように、
データを読取る場合には、読取りを行うのに必要な他の
部品には外部電力線及び接地線27によって外部ソース
から電力が供給される。第2図に示したように、カート
リッジ20はクロック線、選択線、データ入力線、デー
タ出力線、外部電力線及び外部接地線を有するコネクタ
23を介してコプロセッサもしくは上位計算機に結合さ
れる。カートリッジ20は直列入力、左方シフト形のシ
フト・レジスタ120.220より成る2つのメモリ・
セグメントを含む、第1のセグメントはセル121−1
2nを含み、第2のセグメントはセル221−22nを
含む。この種類のシフト・レジスタはその最も左のセル
中に記憶されているビットの状態がその出力線(Di、
D2)の状態に反映されるという性質を有する。これ等
のシフトレジスタはクロック・パルスの立下り縁がクロ
ック線(C1、C2)に印加される時に各セルの状態が
その直ぐ右のセルの状態に変り、レジスタ中のビット・
パターンが左にシフトされるようになっている。
最も右のセル(12n、22n)の場合にはクロック・
パルスの立下り縁はこれ等のセルをデータ入力線(D3
.D4)の状態を占めるようにする。
セルは、データ・ビットを2つのデータ入力線の各々に
供給し、クロック・パルスを供給することによってデー
タで充填される。この手順をnクロック・パルスだけ繰
返すと、レジスタのすべてのnビットが充填される1次
にこれ等のビットの暗号化(AKによる)コピーが形成
され、フロッピー・ディスク上に記憶され、トークン・
データの暗号化記述が与えられる。この手順はソフトウ
ェアの著作権者によって行われ、コプロセッサがAKを
受取るための許可が準備される。
読取り動作が遂行されると、コプロセッサが発生する乱
数の各ビットが連続的に選択線に印加される0選択線2
1の各ビット設定の後にクロック・パルスが続く、第1
のシフト・レジスタからのデータは線Di上に与えられ
、第2のシフト・レジスタからのデータは線D2上に与
えられる。その両方はコプロセッサもしくは上位計算機
からの選択線21によって制御されるマルチプレクサ2
2への入力となる。選択線21は2つの信号D1もしく
はD2のどちらをデータ・ラッチ24を介してデータ出
力線に結合するかを決める。このラッチは、各クロック
・パルス毎に選択を2回変えて。
侵害者がトークン・データを獲得するのを防止するため
に使用される。このような構成にした結果データ出力線
に提示される各ビット毎に、2ビツトがレジスタからシ
フト・アウトされ、許可には使用されない2ビツトがシ
フト・インされる。
従って、カートリッジ2oの全記憶内容が続出された場
合でも1選択線21への入力及びデータ出力を観測する
者はカートリッジ20の内容の高々50%のみを観測す
るに過ぎない。コプロセッサは暗号化トークン情報から
どのビットがその50%中に現われるはずであるかを正
確に知り、そしてその許可の有効性を確認するのに十分
な情報を持っているが、破壊された50%を持たない侵
害者は許可を偽造することはできない。
コプロセッサ15がAKを獲得するように要求される時
(ARE)に、第5図に示された過程が開始する。この
過程で暗号化ソフトウェア解読キー(ファイル1)及び
暗号化トークン・データ(ファイル3)がRAM151
もしくは一時メモリ15Tに読込まれる。さらに、乱数
(3)がコプロセッサによって発生され、上述のように
カートリッジ20の読取り動作に使用される。乱数はど
のメモリ・セグメントのどのビットをマルチプレクサ2
2に通過させるかを選択するのに使用される。コプロセ
ッサ15はカートリッジ20からの結果のデータ(4)
とともに乱数をRAM151に記憶する。
この分野の専門家にとっては、トークン・カートリッジ
の設計には多くの変形が存在することが明らかであろう
。しかしながらこれ等のすべては。
カートリッジから読取られるデータが照会ビットとトー
クン・データの内容の関数として変換され、トークンの
完全な内容がわからなければ、トークンからの応答を全
く予測できないという性質を有する。
コプロセッサはソフトウェア解読キーEcsk(A K
)を解読し、結果のソフトウェア解読キー(A K)を
使用して、トークン・データを解読する。多くのC5K
が存在する場合は、暗号化ソフトウェア・キーはヘッダ
中の正しいC8Kへの参照とともに供給することができ
る。このようなヘッダは平文の正しいC8Kへのインデ
ックス、もしくは正しいC5Kが使用された時にのみ解
読して予想パターンを得る認識フラグを与えることがで
きる。多くの他の方法も可能である。正しいC8Kによ
ってEAKを解読した後、コプロセッサは記憶していた
乱数即ち照会データと平文のトークン・データとを組合
せて正しい応答を決定することができる。次に実際の応
答(カートリッジ20から受取ったデータ)が正しい応
答と比較される。もし2つの値が一致すると、これはコ
プロセッサがAK (5)を将来に備えて持久RAM即
ち永久メモリ15P中に記憶することが許可されたもの
と解読される。ここでユーザはコプロセッサに、新しく
獲得したAKによって保護されていたソフトウェアの実
行を要求することができる。キーAKは記憶する前にコ
プロセッサによって再び暗号化することができる。この
再暗号化の段階は記憶されるキーの保護を改善し、正し
く使用する時はコプロセッサの外部にキーを記憶するこ
ともできる。
他方、もし正しい応答と、カートリッジの実際の応答が
一致しない時には、ソフトウェア解読キー (AK)は
破棄され、コプロセッサは暗号化ソフトウェアを適切に
実行することができず、従ってアプリケーション・プロ
グラムは適切に実行されない。
このトランザクションによってカートリッジ20の内容
は破壊されるので(第6図参照)、他のコプロセッサに
許可を与えてそのアプリケーショ・プログラムもしくは
他のアプリケーション・プログラムを実行させるように
再使用できないことは明らかであろう。偽造が成功する
確立(P(偽造))はコプロセッサが照会データの任意
のビットで同じ選択を要求する確率(P (同一))、
侵害者がwt81!Iシたトランザクション中の失われ
ているデータを正しく推測する確率(P (推81!I
))及び妥当性検証トランザクションにおいてコプロセ
ッサが要求するビット数の関数である、即ちP(偽造)
=(P(同一)) +(1−P (同一))(P(推測
))の(ビット数)乗である。P(同一)=0゜5及び
P(推測)=0.5で、ビット数=128である時には
P(偽造)は略10の一16乗となる。仮に侵害者が彼
の推測をテストする速度を1秒間に1回とすると、この
ような小さなカートリッジでも平均2億年以上続くサー
チを強制する。
従ってコプロセッサは、偽造を成功させるのに必要な情
報を暴露することなく、そのカートリッジが所有者の妥
当性を検証するためにソフトウェアの販売者によって供
給されたものであるか、偽造であるかを信頼性をもって
判断できる。コプロセッサはカートリッジが検証された
後は、後の使用のために解読キー(AK)を記憶するだ
けでよい。
F4.供給可能なソフトウェア製品の製造方法第4図は
ソフトウェアの販売者が磁気媒体によりもしくは通信リ
ンクを介して供給する。ソフトウェア製品を製造する方
法を示す。ソフトウェアの販売者は次の3つの要素から
開始する。
(A)アプリケーション・ソフトウェア(B)ソフトウ
ェア解読キーAK(ソフトウェアの販売者にだけ知られ
ている)。
(C)トークン・データ(ソフトウェアの販売者だけに
しられている乱数)。
ソフトウェアの販売者は第1の機能(Fl)で。
彼自身の(秘密の)暗号キーAKを使用してトークン・
データ及びアプリケーション・ソフトウェアの重要部分
(部分2)を暗号化する。この暗号化過程の結果、供給
される暗号化トークン・データ[E  (トークン・デ
ータ)コ及び暗号化アK プリケーション・ソフトウェア[E   (ソフトK ウェア)]が得られる。
アプリケーション・ソフトウェアの非重要部分(部分1
)はソフトウェア製品の他の部分を構成する。
最後に、ソフトウェア解読キー(AK)が機能F2でハ
ードウェアの販売者の暗号キーC8Kを使用して暗号化
される。その結果、ソフトウェア製品の最後の部分であ
る暗号化された解読キー[E     (AK)]とな
る。
SK 第4図で機能F2は2重の長方形枠で囲まれており、暗
号化がソフトウェア販売者のコプロセッサで行なわれ、
従って、ハードウェア販売者の暗号キー(コプロセッサ
中に含まれる)がソフトウェアの販売者に知られないよ
うになっていることを示している。
このように、ソフトウェア販売者はハードウェアの販売
者の暗号キーを知ることは出来ない。ソフトウェアの販
売者は信頼のおける製造者によって与えられるコプロセ
ッサを選択し、これを用いて暗号化ソフトウェア・キー
(EAK)を作成することができる。信頼性のあるハー
ドウェアの製造者は彼等自身のC8Kを暴露したりC5
Kを使用してソフトウェア販売者のAKを暴露して自身
の製品の信頼性を損うことはない。従って機密データを
ソフトウェアとハードウェアの販売者間で共有する必要
はない。
第5図と第6図を比較すると、ARE過程の後に、トー
クン・カートリッジ20はトークン・データが消去、削
除もしくは重ね書きされていて、もはやアクセス不可能
になっていることがわかる。
第6図のカートリッジ2o中のレジスタは「空き」であ
る。これ等のレジスタはARE過程の前にその中に存在
した平文のトークン・データが線D3及びD4を介して
コネクタ23(第2図)から与えられるデータによって
置換えられているというと意味で「空き」である。これ
等のデータは妥当性検証過程に対しては無意味であり、
トークン・カートリッジ20のレジスタの情報内容の見
地からは「空き」と実質的に同じである。ARE過程が
成功程に完了したときは、暗号形のE。5K(A K)
としてコプロセッサ15によって受取られたソフトウェ
ア解読キーAKが解読されていて、AREの完了に応答
して、AKはコプロセッサ15の永久メモリ15Pに転
送される(5)。第6図は又LDR(ロード、解読及び
実行)中のコプロセッサ15の動作を示している。この
過程中にソフトウェア解読キーAK (5)は一時メモ
リ15Tにコピーされる。平文ソフトウェア(ファイル
2)は上位計算機10に転送され、ここでこれはこれが
平文であるので実行可能である。暗号化ソフトウェア(
8)はコプロセッサ15に転送され、一時メモリ15T
中に存在する。この位置で、ソフトウェア暗号キーAK
を使用して、暗号化ソフトウェアが解読され(9)、コ
プロセッサ15によって実行可能になる。
コプロセッサ15が安全であるから、平文になった保護
ソフトウェアはコプロセッサ15のメモリ中に存在して
も、ユーザもしくは他人に利用されることはない。しか
しながら、このソフトウェアはコプロセッサ15によっ
て実行でき、その実行の結果を上位計算機に送ることが
できる。このように、上位計算機10及びコプロセッサ
15より成る複合計算システムはソフトウェア・アプリ
ケーション・パッケージを実行する際に協働し、上位計
算機もしくはPCIOが平文の部分を実行し、コプロセ
ッサ15が保護された部分を実行する。もし望まれるな
らば、全アプリケーションを保護して、コプロセッサ1
5上だけで実行させることもできる。
第3図乃至第6図は暗号化トークン・データがアプリケ
ーション・ソフトウェアを指示するのと同一媒体によっ
てユーザに与えられる本発明の実施例及び応用を示す。
この媒体は磁気媒体であるが、通信リンクでもよい。
暗号化トークン・データとソフトウェアを組合せる時に
は少なくともある程度、ソフトウェア供給媒体は(暗号
化トークン・データの存在によって)一意的であるか、
相対的に一意的でなければならない。しかしながら、ソ
フトウェア媒体は一般的であることが望ましく1本発明
のこのような実施例では、暗号化トークン・データはソ
フトウェア頒布媒体上には存在しない(もしくは通信リ
ンク上を転送される時にアプリケーション・ソフトウェ
アと組合されない)。しかしながら暗号化トークン・デ
ータをコプロセッサ15に送ることは不可欠である。そ
れはこの情報が実行権を獲得するのに不可欠であるから
である。本発明の代替実施例では、ハードウェア・カー
トリッジ20は少なくとも、暗号化トークン・データを
記憶するための専用のレジスタを含むように修正される
コプロセッサ15は上述の照会データを発生する外に、
暗号化トークン・データをコプロセッサ15に転送する
ための一意的なコマンド及び十分なりロック・パルスを
発生する9本発明のこの代替実施例ではハードウェア・
カートリッジ20は(シフト・レジスタ120及び22
0巾の)平文トークン・データだけでなく、第3のレジ
スタ(第2図には示されていない)に暗号化トークン・
データを記憶する。
F5上位計算機の実行の流れ図 第7図は本発明に従い上位計算機10中で実行される機
能を示す流れ図である。第7図に示したサービスは本発
明に固有なものであり、他の通常のサービス示されてい
ない。第7図に示したように、初期判断H1がARE過
程が要求されているかどうかを判断する。本発明に従う
任意の特定のアプリケーション・パッケージを最初に実
行させる時は、この要求が存在する。従って、機能H2
がARE要求をコプロセッサ15に送るように要求する
。次にH3及びH4より成るループに導入する。このル
ープ中で上位計算機10はコプロセッサ15がARE過
程を完了したことを示す迄コプロセッサの要求をサービ
スさせる。ループが完了すると、処理は機能H1に戻る
段階H1−H4を遂行した後、もしくは(本発明に従う
アプリケーション・ソフトウェアの第2回目もしくは任
意のその後の実行のために)LDR過程を実行すべき時
に、機能H1は機能H5に処理を指示する。H5はLD
R過程が要求されたかどうかを判断する。もしLDRが
要求されていないと1機能H6がこれ等のサービスを脱
出することが要求されているかどうかを判断する。もし
脱出が要求されていないと、処理はブロックH1に戻る
。もし脱出が要求されていると、第7図に示されている
処理が終る。
他方、機能H5でLDR要求が認識されると、機能H7
が遂行され、LDR要求をコプロセッサ15に送る。
次にループH3−H4に全く同じ機能H8及びH9より
成るループに導入する6機能H9でコプロセッサ15が
LDR処理の完了を示すと、機能HIOが遂行されて、
上位計算機1o中の対応するプログラム(たとえば、ア
プリケーション・プログラム)にLDR処理が完了した
ことが知らされる。
機能H2が遂行される時は、コプロセッサ15が刺戟さ
れて、実行権獲得過程の部分を実行する。
これ等の機能は第8図に示されている。上述の2つの特
権レベルのうちで、ARE過程が上位の特権レベルにあ
る。それはその機能がソフトウェアの販売者の保護のた
めに、実行権の拡散を防止することにあるからである。
H6,実行権獲得過程の流れ図 第8図に示されているように、機能CIは上位計算機1
0から暗号化ソフトウェア解読キーを要求する。上位計
算機10はソフトウェア供給媒体(もしくは通信リンク
)から、この情報にアクセスする。機能C2はC5Kを
アクセスして暗号化ソフトウェア解読キーを解読する。
CSKは製造時に永久メモリ15P中にコプロセッサ1
5の製追考によって設置されている。上述のように、C
3Kは1個以上存在するので、暗号化されたソフトウェ
ア解読キー・ファイルは適切なC8Kを識別するための
ヘッダ・インデックスを含む0機能C3は上位計算機か
ら暗号化トークン・データを要求する。暗号化トークン
・データがアプリケーションと同じソフトウェア供給媒
体上に付帯される時は、上位計算機10がこれにアクセ
スする。
これに代って、暗号化トークン・データがハードウェア
・カートリッジ20に記憶されている場合には、上述□
のように上位計算機10がハードウェア・カートリッジ
20にアクセスするが、上位計算機1oがアクセスしな
い時には、コプロセッサ15が直接ハードウェア・カー
トリッジ20にアクセスする。
機能C4は既に利用可能になっているソフトウェア解読
キーを使用して暗号化トークン・データを解読する。次
に解読されたトークン・データは一時メモリ15Tに保
持される。
次に機能C5はトークン照会をなす乱数を発生する。機
能C6は乱数とトークン・データを組合せてトークン応
答をシミュレートし、計算された応答を発生して同じよ
うに一時メモリ15Tに保持する。
機能C7は次に上位計算機に要求して乱数(トークン照
会)によってハードウェア・カートリッジ20を照会す
る。勿論、もしコプロセッサ15がハードウェア・カー
トリッジ20に直接アクセスする場合には、この機能は
上位計算機10による間接的方法でなく直接に具体化さ
れる。次に機能C8は上位計算機に対してトークン応答
を供給することを要求する。このトークン応答も一時メ
モリ15Tに記憶される6次に機能C9は実際の応答と
計算された、即ち予測された応答を比較する。機能CI
Oは機能C9の比較に基づく分岐である。もしトークン
の計算した応答と実際の応答が一致すると、(代表的な
場合はこれ等は等しい)、このことは確認された(真正
の)トークンの証拠として受取られる。機能C13はそ
の後このソフトウェア解読キーを永久メモリに移動する
(5)。
機能C14は次に上位計算機10を介してメツセージを
送りユーザにARE過程が成功裡に完了したことを通知
し、また上位計算機10に対してアプリケーションに対
応するソフトウェア解読キーの位置を識別する情報を与
える。
他方、トークンの実際の応答と計算された応答が一致し
ない場合には(たとえば応答が等しくないと)、機能C
13及びC14の実行に代って、機能C1lが実行され
、ユーザに実行権が獲得されなかったことが知らされる
。この場合、ソフトウェア解読キーは一時メモリ15T
中に利用可能であるが、これは永久メモリ15Pへ転送
されない。従ってソフトウェア解読キーは使用できず、
アプリケーション・パッケージは実行できない。
F7.LDR中の上位計算機の機能 第9A図は代表的なLDR過程中に上位計算機中で遂行
される機能を示す。LDR過程はアプリケーション・プ
ログラムを開始する機能I(11中で開始する。プログ
ラムが保護されていると判断されると、機能H12が遂
行され、DO8にLDRオーダを送ると共に、AKの位
置、たとえば必要なソフトウェア解読キーが存在する、
コプロセッサ15の永久メモリ中の位置を判断するため
のインデックス情報を与える。この情報は前のARE過
程が成功した時に機能C14によってアプリケーション
・プログラムとともに上位計算機に与えられている。
次の機能H13はDOSサービス(第7図参照)からの
通知を待っている単なる遅延である。この通知(第7図
のHlo)によって機能H14は必要に応じてコプロセ
ッサ15中で実行されるコードを使用してアプリケーシ
ョンの実行を遂行する。
コプロセッサ中でどのように保護ソフトウェアが実行さ
れるかを知るためには第9B図を参照されたい。
F8.LDR中のコプロセッサの機能 第9B図に示されているように、コプロセッサ15がL
DR要求を受取ると、機能C15が遂行され、第9B図
に示した機能を開始する。LDR要求はH7(第7図参
照)において開始する。機能C16は上位計算機にAK
の位置を示す情報を与えるように要求する。この要求は
DOSサービス(第7図)に伝えられ、DOSサービス
は機能H8によって与えられた情報で応答する。このイ
ンデックス情報によって、機能C17は永久メモリから
ソフトウェア解読キーのコピーを得て、これをコプロセ
ッサ15の一時メモリ15Tにロードする。機能C18
は次に上位計算機から保護されたソフトウェアを要求す
る。暗号形の保護ソフトウェアは一時メモ゛り中に保持
され、機能C19で機能C17で得たソフトウェア解読
キーを使用して解読される。機能C19の結果は保1さ
れたソフトウェアの平文版である。これはコプロセッサ
15の一時メモリ15Tに保持される。コプロセッサ1
5の論理的及び物理的安全性によって与えられる保護は
ユーザもしくは他の者にこの保護されたソフトウェアの
平文部分が露顕するのを防止する0機能C20は次に上
位計算機に対してLDR処理が完了したことを通知する
。次に機能C21が解読されたソフトウェアを実行する
1機能C17−C19は又2つの特権レベルのうち高い
方のレベルを表わすと考えることができる。それはこれ
等が実行権AKの行使を処理するからである。他方機能
C21は2つの特権レベルのうち低位のレベルの例であ
る。機能H14及びC21は種々の技法を使用して協働
させることができ、アプリケーション・ソフトウェアの
完全な実行を得ることができる。
本発明の範囲には、アプリケーション・ソフトウェアの
すべてが保護されることを含む。コプロセッサ15によ
る保護ソフトウェアの実行中に。
この実行の結果だけが上位計算機10に与えられる。
ソフトウェア供給媒体は自由にコピーできもしくはバッ
クアップできるが、コプロセッサ15のようなコプロセ
ッサを含む複合システムがないと実行できない。さらに
複合システム上で実行できるのは、その中のコプロセッ
サ15が必要なソフトウェア解読キーを利用できるとき
だけである。
さらにコプロセッサ15がソフトウェア解読キーにアク
セスして、この情報を永久メモリに保持するためには、
真正なカートリッジ20が必要である。このカートリッ
ジ20は偽造もしくはシミュレートが困難で、−回限り
使用可能なように構成されている。それ故、適切なハー
ドウェア・カートリッジ20は唯一のコプロセッサ15
だけを許可することができる。唯一のコプロセッサ15
だけが許可されるが、コプロセッサ15はポータプルに
でき、任意の適切な上位計算機10とともに使用して、
保護されたソフトウェアを実行できる。
このようにソフトウェアの販売者は保護されたアプリケ
ーション・ソフトウェアとその実行権とを分離するとい
う所望の結果を達成する。カストマ即ちユーザは望むだ
け多くの、保護されたソフトウェアのコピーを作成でき
るが、単一の複合計算システム上で一回限り実行できる
だけである。
G1発明の効果 本発明によれば、ソフトウェアは暗号化されて提供され
る。従って、ソフトウェアは暗号化によって基本的に保
護されるだけでなく、トークン・データによってその実
行権が最終的に認可される。
しかも、トークン・データは1回の使用によって破壊又
は変更される。従って、ソフトウェアの使用を有効に制
限でき、不正使用を防止することができる。
【図面の簡単な説明】
第1図は本発明のソフトウェア保護構成を示したブロッ
ク図である。 第2図はハードウェア・カートリッジとそのコネクタを
示したブロック図である。 第3図は本発明に基くソフトウェア・セットの内容を示
した図である。 第4図はソフトウェア・セットの内容がソフトウェアの
販売者によってどのように作成されるかを示した図であ
る。 第5図は実行権獲得過程の動作を示した概略図である。 第6図は実行権獲得過程に続くロード、解読及び実行の
動作を示した図である。 第7図は本発明に従い上位計算機中で実行されるサービ
スを示した流れ図である。 第8図はコプロセッサ15中で実行される実行権獲得過
程の流れ図である。 第9A図はロード、解読及び実行過程で上位計算機中で
実行されるサービスを示した流れ図である。 第9B図はロード、解読及び実行過程でコプロセッサ中
で実行されるサービスを示した流れ図である。 4・・・CPU、6・・・RAM、8・・・ROM、9
・・・端末制御ユニット、10・・・上位計算機、11
・・・表示装置、13・・・手動入力装置、15・・・
コプロセッサ、16・・・ディスク制御装置、17・・
・ディスク駆動装置、19・・・I10ポート、20・
・・トークン・カートリッジ、150・・・CPU、1
51・・・RAM、152・・・ROM、153・・・
持久RAM、154・・・工/○ポート、155・・・
侵入検出システム、156・・・実時間クロック。 −   へ    m 第6図 第9BE

Claims (1)

  1. 【特許請求の範囲】 許可された計算機システムにだけソフトウェアの使用を
    制限する方法であって、 (a)少なくとも1部が暗号化されている形のソフトウ
    ェアを与えること、 (b)上記暗号化されたソフトウェア部分を解読するた
    めの解読キーを与えること、 (c)上記計算機システムに結合され、上記解読キーを
    保持した時に上記暗号化されたソフトウェア部分を解読
    できるコプロセッサを与えること、(d)上記コプロセ
    ッサに、トークン情報を記憶したトークン発生手段を結
    合すること、 (e)上記トークン発生手段から転送されるトークン情
    報が所定の条件を満たす時に上記解読キーを上記コプロ
    セッサに保持させること、及び(f)上記トークン発生
    手段からトークン情報が上記コプロセッサに転送される
    時に上記トークン発生手段内のトークン情報を変更する
    こと、を含む、ソフトウェアの保護方法。
JP62250064A 1986-11-05 1987-10-05 ソフトウエアの保護方法 Granted JPS63128434A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/927,629 US4817140A (en) 1986-11-05 1986-11-05 Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
US927629 1986-11-05

Publications (2)

Publication Number Publication Date
JPS63128434A true JPS63128434A (ja) 1988-06-01
JPH0260009B2 JPH0260009B2 (ja) 1990-12-14

Family

ID=25455024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62250064A Granted JPS63128434A (ja) 1986-11-05 1987-10-05 ソフトウエアの保護方法

Country Status (2)

Country Link
US (1) US4817140A (ja)
JP (1) JPS63128434A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005528678A (ja) * 2002-04-18 2005-09-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド セキュア実行モードで動作し得るプロセッサを含むコンピュータシステムの初期化方法
JP2008210225A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法
US8695102B2 (en) 2006-05-01 2014-04-08 International Business Machines Corporation Controlling execution of executables between partitions in a multi-partitioned data processing system

Families Citing this family (275)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965825A (en) 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US4999806A (en) * 1987-09-04 1991-03-12 Fred Chernow Software distribution system
US5581763A (en) * 1988-06-14 1996-12-03 Progressive Technology Inc. Secure architecture and apparatus using an independent computer cartridge
US4932054A (en) * 1988-09-16 1990-06-05 Chou Wayne W Method and apparatus for protecting computer software utilizing coded filter network in conjunction with an active coded hardware device
US5047957A (en) * 1988-10-21 1991-09-10 Minolta Camera Kabushiki Kaisha Printer controller
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
GB9012949D0 (en) * 1989-08-25 1990-08-01 Ibm An apparatus and method for loading bios from a diskette in a personal computer system
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
US5136713A (en) * 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
US5033084A (en) * 1990-04-02 1991-07-16 Data I/O Corporation Method and apparatus for protection of software in an electronic system
GB9010603D0 (en) * 1990-05-11 1990-07-04 Int Computers Ltd Access control in a distributed computer system
US5826009A (en) * 1990-07-12 1998-10-20 Feng; Genquan Protection of software from physical and electronic interrogation by sealing and checking password
US5230052A (en) * 1990-10-01 1993-07-20 International Business Machines Corp. Apparatus and method for loading bios into a computer system from a remote storage location
US5222134A (en) * 1990-11-07 1993-06-22 Tau Systems Corporation Secure system for activating personal computer software at remote locations
US5222133A (en) * 1991-10-17 1993-06-22 Wayne W. Chou Method of protecting computer software from unauthorized execution using multiple keys
US7028187B1 (en) 1991-11-15 2006-04-11 Citibank, N.A. Electronic transaction apparatus for electronic commerce
US5557518A (en) * 1994-04-28 1996-09-17 Citibank, N.A. Trusted agents for open electronic commerce
US5453601A (en) * 1991-11-15 1995-09-26 Citibank, N.A. Electronic-monetary system
US5301231A (en) * 1992-02-12 1994-04-05 International Business Machines Corporation User defined function facility
US5610981A (en) * 1992-06-04 1997-03-11 Integrated Technologies Of America, Inc. Preboot protection for a data security system with anti-intrusion capability
US5327497A (en) * 1992-06-04 1994-07-05 Integrated Technologies Of America, Inc. Preboot protection of unauthorized use of programs and data with a card reader interface
JP2519390B2 (ja) * 1992-09-11 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ通信方法及び装置
US7209901B2 (en) 1992-12-15 2007-04-24 Sl Patent Holdings Llc C/O Aol Time Warner Method for selling, protecting, and redistributing digital goods
US6266654B1 (en) * 1992-12-15 2001-07-24 Softlock.Com, Inc. Method for tracking software lineage
US7089212B2 (en) * 1992-12-15 2006-08-08 Sl Patent Holdings Llc System and method for controlling access to protected information
US7831516B2 (en) * 1992-12-15 2010-11-09 Sl Patent Holdings Llc System and method for redistributing and licensing access to protected information among a plurality of devices
US5521323A (en) * 1993-05-21 1996-05-28 Coda Music Technologies, Inc. Real-time performance score matching
US5400403A (en) * 1993-08-16 1995-03-21 Rsa Data Security, Inc. Abuse-resistant object distribution system and method
JPH07271865A (ja) * 1994-04-01 1995-10-20 Mitsubishi Corp データベース著作権管理方法
US7036019B1 (en) 1994-04-01 2006-04-25 Intarsia Software Llc Method for controlling database copyrights
US6088797A (en) * 1994-04-28 2000-07-11 Rosen; Sholom S. Tamper-proof electronic processing device
US5604803A (en) * 1994-06-03 1997-02-18 Sun Microsystems, Inc. Method and apparatus for secure remote authentication in a public network
EP1845527A3 (en) 1994-07-08 2012-04-25 Sony Corporation Receiving controlled-access broadcast signals
US6041316A (en) * 1994-07-25 2000-03-21 Lucent Technologies Inc. Method and system for ensuring royalty payments for data delivered over a network
JPH0854951A (ja) * 1994-08-10 1996-02-27 Fujitsu Ltd ソフトウェア使用量管理装置
JP3395863B2 (ja) * 1994-08-10 2003-04-14 富士通株式会社 ソフトウエア管理モジュール、ソフトウエア再生管理装置およびソフトウエア再生管理システム
JPH0855021A (ja) * 1994-08-10 1996-02-27 Fujitsu Ltd 鍵認証方式
JP3519134B2 (ja) * 1994-08-10 2004-04-12 富士通株式会社 ソフトウェア使用量測定装置およびマルチメディア情報出力装置
JP3531978B2 (ja) * 1994-08-10 2004-05-31 富士通株式会社 ソフトウエアの課金方式
JP3439838B2 (ja) * 1994-08-10 2003-08-25 富士通株式会社 ソフトウエア従量課金・再生装置
JPH0856356A (ja) * 1994-08-10 1996-02-27 Fujitsu Ltd 符号化装置および復号化装置
JPH0855164A (ja) * 1994-08-10 1996-02-27 Fujitsu Ltd ソフトウェア配送システム、中継装置およびユーザ端末装置
US5530753A (en) * 1994-08-15 1996-06-25 International Business Machines Corporation Methods and apparatus for secure hardware configuration
JPH0877263A (ja) 1994-09-09 1996-03-22 Fujitsu Ltd ソフトウェア処理装置
JP3647907B2 (ja) * 1994-09-09 2005-05-18 富士通株式会社 暗号化ソフトウェアの解凍システム
JPH0883232A (ja) * 1994-09-09 1996-03-26 Fujitsu Ltd ファイルサーバシステム
JP3542088B2 (ja) * 1994-09-09 2004-07-14 富士通株式会社 データコンテンツ利用システム
US7302415B1 (en) 1994-09-30 2007-11-27 Intarsia Llc Data copyright management system
US6424715B1 (en) * 1994-10-27 2002-07-23 Mitsubishi Corporation Digital content management system and apparatus
DE69532434T2 (de) 1994-10-27 2004-11-11 Mitsubishi Corp. Gerät für Dateiurheberrechte-Verwaltungssystem
US6865551B1 (en) 1994-11-23 2005-03-08 Contentguard Holdings, Inc. Removable content repositories
US20050149450A1 (en) * 1994-11-23 2005-07-07 Contentguard Holdings, Inc. System, method, and device for controlling distribution and use of digital works based on a usage rights grammar
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US7117180B1 (en) 1994-11-23 2006-10-03 Contentguard Holdings, Inc. System for controlling the use of digital works using removable content repositories
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
KR0152788B1 (ko) 1994-11-26 1998-10-15 이헌조 디지탈 영상 시스템의 복사 방지 방법 및 장치
KR0136458B1 (ko) 1994-12-08 1998-05-15 구자홍 디지탈 자기 기록재생 시스템의 복사 방지장치
SE504085C2 (sv) 1995-02-01 1996-11-04 Greg Benson Sätt och system för att hantera dataobjekt i enlighet med förutbestämda villkor för användare
US6658568B1 (en) * 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US20060206397A1 (en) * 1995-02-13 2006-09-14 Intertrust Technologies Corp. Cryptographic methods, apparatus and systems for storage media electronic right management in closed and connected appliances
US5892900A (en) * 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US7124302B2 (en) * 1995-02-13 2006-10-17 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US8639625B1 (en) 1995-02-13 2014-01-28 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US7095854B1 (en) * 1995-02-13 2006-08-22 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6948070B1 (en) 1995-02-13 2005-09-20 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
EP1526472A3 (en) * 1995-02-13 2006-07-26 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6157721A (en) * 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
US7143290B1 (en) * 1995-02-13 2006-11-28 Intertrust Technologies Corporation Trusted and secure techniques, systems and methods for item delivery and execution
US7133846B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. Digital certificate support system, methods and techniques for secure electronic commerce transaction and rights management
US7133845B1 (en) * 1995-02-13 2006-11-07 Intertrust Technologies Corp. System and methods for secure transaction management and electronic rights protection
US6636970B2 (en) 1995-02-14 2003-10-21 Fujitsu Limited Software encoding using a combination of two types of encoding and encoding type identification information
US5754761A (en) * 1995-03-06 1998-05-19 Willsey; John A. Universal sofeware key process
US5651068A (en) * 1995-03-08 1997-07-22 Hewlett-Packard Company International cryptography framework
JPH08287653A (ja) * 1995-04-12 1996-11-01 Fujitsu Ltd 光記録媒体
JPH08305662A (ja) * 1995-05-02 1996-11-22 Fujitsu Ltd クライアント認証システムおよび方法
US5745886A (en) * 1995-06-07 1998-04-28 Citibank, N.A. Trusted agents for open distribution of electronic money
US7063615B2 (en) * 1995-06-29 2006-06-20 Igt Electronic gaming apparatus with authentication
USRE39369E1 (en) 1995-06-29 2006-10-31 Igt Electronic casino gaming system with improved play capacity, authentication and security
US5643086A (en) 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
JP3507594B2 (ja) * 1995-07-31 2004-03-15 株式会社東芝 コンピュータ
US7037426B2 (en) * 2000-05-04 2006-05-02 Zenon Environmental Inc. Immersed membrane apparatus
US5671280A (en) * 1995-08-30 1997-09-23 Citibank, N.A. System and method for commercial payments using trusted agents
US8595502B2 (en) 1995-09-29 2013-11-26 Intarsia Software Llc Data management system
EP0880840A4 (en) * 1996-01-11 2002-10-23 Mrj Inc DEVICE FOR CONTROLLING ACCESS AND DISTRIBUTION OF DIGITAL PROPERTY
US5732258A (en) * 1996-02-08 1998-03-24 Oracle Corporation Method and apparatus for efficiently evaluating exists and not exists equivalent subqueries
US20060265337A1 (en) * 1996-02-26 2006-11-23 Graphon Corporation Automated system for management of licensed digital assets
US20010011253A1 (en) 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
JP3486043B2 (ja) * 1996-03-11 2004-01-13 株式会社東芝 ソフトウエア流通システムの動作方法及びソフトウエアシステム
US6088450A (en) * 1996-04-17 2000-07-11 Intel Corporation Authentication system based on periodic challenge/response protocol
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US6523119B2 (en) * 1996-12-04 2003-02-18 Rainbow Technologies, Inc. Software protection device and method
US20050021477A1 (en) * 1997-01-29 2005-01-27 Ganapathy Krishnan Method and system for securely incorporating electronic information into an online purchasing application
US6144743A (en) * 1997-02-07 2000-11-07 Kabushiki Kaisha Toshiba Information recording medium, recording apparatus, information transmission system, and decryption apparatus
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security
US5920861A (en) * 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
US6233684B1 (en) * 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
DE69805403T2 (de) * 1997-03-27 2002-12-05 British Telecommunications P.L.C., London Datenkopierschutz
EP1653463A1 (en) * 1997-05-13 2006-05-03 Kabushiki Kaisha Toshiba License information copying method and apparatus, license information moving method
US20020025852A1 (en) * 2000-09-29 2002-02-28 Alcorn Allan E. Gaming apparatus with portrait-mode display
US6230272B1 (en) * 1997-10-14 2001-05-08 Entrust Technologies Limited System and method for protecting a multipurpose data string used for both decrypting data and for authenticating a user
US6112181A (en) * 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US7092914B1 (en) * 1997-11-06 2006-08-15 Intertrust Technologies Corporation Methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6334189B1 (en) 1997-12-05 2001-12-25 Jamama, Llc Use of pseudocode to protect software from unauthorized use
US6480959B1 (en) 1997-12-05 2002-11-12 Jamama, Llc Software system and associated methods for controlling the use of computer programs
US6643775B1 (en) 1997-12-05 2003-11-04 Jamama, Llc Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications
US6385596B1 (en) 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US6128741A (en) * 1998-03-05 2000-10-03 Rainbow Technologies, Inc. Compact transparent dongle device
US7233948B1 (en) 1998-03-16 2007-06-19 Intertrust Technologies Corp. Methods and apparatus for persistent control and protection of content
US6289344B1 (en) 1998-05-11 2001-09-11 International Business Machines Corporation Context-sensitive authorization in an RDBMS
US20020161709A1 (en) * 1998-09-11 2002-10-31 Michel Floyd Server-side commerce for deliver-then-pay content delivery
US7068787B1 (en) 1998-10-23 2006-06-27 Contentguard Holdings, Inc. System and method for protection of digital works
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US7174457B1 (en) * 1999-03-10 2007-02-06 Microsoft Corporation System and method for authenticating an operating system to a central processing unit, providing the CPU/OS with secure storage, and authenticating the CPU/OS to a third party
US20050060549A1 (en) * 1998-10-26 2005-03-17 Microsoft Corporation Controlling access to content based on certificates and access predicates
US6473777B1 (en) 1998-10-30 2002-10-29 National Semiconductor Corporation Method for accelerating java virtual machine bytecode verification, just-in-time compilation and garbage collection by using a dedicated co-processor
WO2000052690A1 (fr) * 1999-02-26 2000-09-08 Hitachi, Ltd. Enregistreur, lecteur et support d'enregistrement de signal numerique
US6836847B1 (en) * 1999-03-05 2004-12-28 The Johns Hokins University Software protection for single and multiple microprocessor systems
US6367019B1 (en) 1999-03-26 2002-04-02 Liquid Audio, Inc. Copy security for portable music players
US7286665B1 (en) 1999-04-06 2007-10-23 Contentguard Holdings, Inc. System and method for transferring the right to decode messages
US6859533B1 (en) 1999-04-06 2005-02-22 Contentguard Holdings, Inc. System and method for transferring the right to decode messages in a symmetric encoding scheme
US6937726B1 (en) * 1999-04-06 2005-08-30 Contentguard Holdings, Inc. System and method for protecting data files by periodically refreshing a decryption key
US7356688B1 (en) 1999-04-06 2008-04-08 Contentguard Holdings, Inc. System and method for document distribution
US7243236B1 (en) * 1999-07-29 2007-07-10 Intertrust Technologies Corp. Systems and methods for using cryptography to protect secure and insecure computing environments
US7171567B1 (en) * 1999-08-02 2007-01-30 Harris Interactive, Inc. System for protecting information over the internet
US20080082446A1 (en) * 1999-10-01 2008-04-03 Hicks Christian B Remote Authorization for Unlocking Electronic Data System and Method
US6885748B1 (en) 1999-10-23 2005-04-26 Contentguard Holdings, Inc. System and method for protection of digital works
US6928551B1 (en) 1999-10-29 2005-08-09 Lockheed Martin Corporation Method and apparatus for selectively denying access to encoded data
US6725205B1 (en) * 1999-12-02 2004-04-20 Ulysses Esd, Inc. System and method for secure software installation
JP2001318768A (ja) * 2000-03-02 2001-11-16 Sony Computer Entertainment Inc エンタテインメント装置及びその部品、エンタテインメント装置によるディジタル情報のローディング方法、コンピュータプログラム
JP3949341B2 (ja) * 2000-03-03 2007-07-25 株式会社ソニー・コンピュータエンタテインメント エンタテインメント装置及び記録媒体
US7988559B2 (en) * 2001-03-08 2011-08-02 Igt Computerized gaming system, method and apparatus
US7043641B1 (en) * 2000-03-08 2006-05-09 Igt Encryption in a secure computerized gaming system
CA2402389A1 (en) * 2000-03-08 2002-09-19 Shuffle Master, Inc. Computerized gaming system, method and apparatus
US7024696B1 (en) 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
AU2001285125B2 (en) * 2000-08-21 2004-08-26 Igt Method and apparatus for software authentication
US7051211B1 (en) * 2000-08-21 2006-05-23 International Business Machines Corporation Secure software distribution and installation
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US6931545B1 (en) * 2000-08-28 2005-08-16 Contentguard Holdings, Inc. Systems and methods for integrity certification and verification of content consumption environments
US7412605B2 (en) * 2000-08-28 2008-08-12 Contentguard Holdings, Inc. Method and apparatus for variable encryption of data
US7073199B1 (en) 2000-08-28 2006-07-04 Contentguard Holdings, Inc. Document distribution management method and apparatus using a standard rendering engine and a method and apparatus for controlling a standard rendering engine
US7194759B1 (en) 2000-09-15 2007-03-20 International Business Machines Corporation Used trusted co-servers to enhance security of web interaction
US7343324B2 (en) * 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US7765580B2 (en) * 2000-12-22 2010-07-27 Entrust, Inc. Method and apparatus for providing user authentication using a back channel
US6912294B2 (en) 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US8069116B2 (en) * 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US7206765B2 (en) * 2001-01-17 2007-04-17 Contentguard Holdings, Inc. System and method for supplying and managing usage rights based on rules
US6754642B2 (en) 2001-05-31 2004-06-22 Contentguard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
US20030220880A1 (en) * 2002-01-17 2003-11-27 Contentguard Holdings, Inc. Networked services licensing system and method
BR0206506A (pt) 2001-01-17 2003-10-21 Contentguard Holdings Inc Processo e aparelho para gerenciar direitos de uso de conteúdo digital
US7028009B2 (en) * 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US7774279B2 (en) * 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US20070219918A1 (en) * 2001-01-19 2007-09-20 Jonathan Schull System and method for controlling access to protected information
US20020114457A1 (en) * 2001-01-26 2002-08-22 Takahiro Sato LSI having interpreter function and information recording/reproducing apparatus using the same
US20020129261A1 (en) * 2001-03-08 2002-09-12 Cromer Daryl Carvis Apparatus and method for encrypting and decrypting data recorded on portable cryptographic tokens
US7203841B2 (en) 2001-03-08 2007-04-10 Igt Encryption in a secure computerized gaming system
US7016496B2 (en) * 2001-03-26 2006-03-21 Sun Microsystems, Inc. System and method for storing and accessing digital media content using smart card technology
US6966837B1 (en) 2001-05-10 2005-11-22 Best Robert M Linked portable and video game systems
US20030043852A1 (en) * 2001-05-18 2003-03-06 Bijan Tadayon Method and apparatus for verifying data integrity based on data compression parameters
US8001053B2 (en) * 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US6976009B2 (en) 2001-05-31 2005-12-13 Contentguard Holdings, Inc. Method and apparatus for assigning consequential rights to documents and documents having such rights
US8275709B2 (en) * 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7725401B2 (en) * 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US7222104B2 (en) * 2001-05-31 2007-05-22 Contentguard Holdings, Inc. Method and apparatus for transferring usage rights and digital work having transferrable usage rights
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US6973445B2 (en) * 2001-05-31 2005-12-06 Contentguard Holdings, Inc. Demarcated digital content and method for creating and processing demarcated digital works
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
US8099364B2 (en) * 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
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
US20030009424A1 (en) * 2001-05-31 2003-01-09 Contentguard Holdings, Inc. Method for managing access and use of resources by verifying conditions and conditions for use therewith
US7152046B2 (en) * 2001-05-31 2006-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
US7774280B2 (en) * 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
WO2002101490A2 (en) * 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Cryptographic trust zones in digital rights management
EP1323018A4 (en) * 2001-06-07 2004-07-07 Contentguard Holdings Inc PROTECTED CONTENT DELIVERY SYSTEM
CN1539115A (zh) * 2001-06-07 2004-10-20 ��̹�е¿عɹɷ����޹�˾ 管理权限转移的方法和装置
FI20011397A (fi) * 2001-06-29 2002-12-30 Nokia Corp Menetelmä ja järjestely digitaalisen, arvoa omaavan tallenteen varmistamiseksi, järjestelyssä toimiva päätelaite sekä menetelmää hyödyntävä sovellusohjelma
US7421411B2 (en) * 2001-07-06 2008-09-02 Nokia Corporation Digital rights management in a mobile communications environment
US7162036B2 (en) 2001-08-06 2007-01-09 Igt Digital identification of unique game characteristics
US6685567B2 (en) * 2001-08-08 2004-02-03 Igt Process verification
DE60202568T8 (de) * 2001-08-08 2005-10-20 Matsushita Electric Industrial Co., Ltd., Kadoma Urheberrechtschutzsystem, Aufzeichungsvorrichtung, und Wiedergabevorrichtung
US7618317B2 (en) * 2001-09-10 2009-11-17 Jackson Mark D Method for developing gaming programs compatible with a computerized gaming operating system and apparatus
US7931533B2 (en) 2001-09-28 2011-04-26 Igt Game development architecture that decouples the game logic from the graphics logics
US6902481B2 (en) * 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US8708828B2 (en) * 2001-09-28 2014-04-29 Igt Pluggable modular gaming modifiers and configuration templates for gaming environments
US7404202B2 (en) * 2001-11-21 2008-07-22 Line 6, Inc. System, device, and method for providing secure electronic commerce transactions
CA2469839A1 (en) 2001-11-26 2003-06-05 Igt Pass-through live validation device and method
US7562397B1 (en) 2002-02-27 2009-07-14 Mithal Ashish K Method and system for facilitating search, selection, preview, purchase evaluation, offering for sale, distribution, and/or sale of digital content and enhancing the security thereof
US7316032B2 (en) 2002-02-27 2008-01-01 Amad Tayebi Method for allowing a customer to preview, acquire and/or pay for information and a system therefor
US6871192B2 (en) * 2001-12-20 2005-03-22 Pace Anti-Piracy System and method for preventing unauthorized use of protected software utilizing a portable security device
FR2835331B1 (fr) * 2002-01-28 2008-08-22 Gemplus Card Int Procede de controle de l'exploitation de contenus numeriques par un module de securite ou une carte a puce comprenant ledit module
US20030182559A1 (en) * 2002-03-22 2003-09-25 Ian Curry Secure communication apparatus and method for facilitating recipient and sender activity delegation
US7487365B2 (en) * 2002-04-17 2009-02-03 Microsoft Corporation Saving and retrieving data based on symmetric key encryption
US7890771B2 (en) 2002-04-17 2011-02-15 Microsoft Corporation Saving and retrieving data based on public key encryption
US20030203755A1 (en) * 2002-04-25 2003-10-30 Shuffle Master, Inc. Encryption in a secure computerized gaming system
US7350081B1 (en) 2002-04-29 2008-03-25 Best Robert M Secure execution of downloaded software
US20030217280A1 (en) * 2002-05-17 2003-11-20 Keaton Thomas S. Software watermarking for anti-tamper protection
US20050130745A1 (en) * 2002-06-05 2005-06-16 Microsoft Corporation DVD-enabling dongle for a console-based gaming system
US20030228911A1 (en) * 2002-06-05 2003-12-11 Dernis Mitchell S. DVD-enabling code server and loader for a console-based gaming system
JP4016741B2 (ja) * 2002-06-25 2007-12-05 ソニー株式会社 情報記憶装置、メモリアクセス制御システム、および方法、並びにコンピュータ・プログラム
JP3979194B2 (ja) * 2002-06-25 2007-09-19 ソニー株式会社 情報記憶装置、およびメモリアクセス制御方法、並びにコンピュータ・プログラム
EP1795991A1 (en) * 2002-07-30 2007-06-13 Fujitsu Limited Method and apparatus for reproducing information using a security module
AR042599A1 (es) * 2002-11-19 2005-06-29 Schiavoni Juan Jose Metodo de proteccion de programas y equipo para realizarlo
US20050195975A1 (en) * 2003-01-21 2005-09-08 Kevin Kawakita Digital media distribution cryptography using media ticket smart cards
GB2404487A (en) * 2003-07-31 2005-02-02 Sony Uk Ltd Access control for digital storage medium content
JP2005057435A (ja) * 2003-08-01 2005-03-03 Sony Corp クライアント機器及びクライアント機器におけるコンテンツ処理方法、並びにコンテンツ提供システム
CN100422946C (zh) * 2003-09-12 2008-10-01 联华电子股份有限公司 检测非法软件加载的系统、方法及其识别电路与注册系统
US7335021B2 (en) * 2003-09-22 2008-02-26 Stephen Gerard Nikodem Methods and apparatus to facilitate orthodontic alignment of teeth
US20050086173A1 (en) * 2003-10-20 2005-04-21 Kalwit Sham R. Auto-regulated electronic license key mechanism
US7849326B2 (en) * 2004-01-08 2010-12-07 International Business Machines Corporation Method and system for protecting master secrets using smart key devices
US7711951B2 (en) * 2004-01-08 2010-05-04 International Business Machines Corporation Method and system for establishing a trust framework based on smart key devices
US7564976B2 (en) * 2004-03-02 2009-07-21 International Business Machines Corporation System and method for performing security operations on network data
US8468337B2 (en) * 2004-03-02 2013-06-18 International Business Machines Corporation Secure data transfer over a network
US20050216548A1 (en) * 2004-03-04 2005-09-29 Brian Wormington Method and system for digital content distribution
US20050210278A1 (en) * 2004-03-17 2005-09-22 Bruce Conklin Mass storage apparatus for securely delivering digital content to a host computer and method for using same
US7475247B2 (en) * 2004-12-16 2009-01-06 International Business Machines Corporation Method for using a portable computing device as a smart key device
US7386736B2 (en) * 2004-12-16 2008-06-10 International Business Machines Corporation Method and system for using a compact disk as a smart key device
JP2008530663A (ja) * 2005-02-11 2008-08-07 ユニバーサル データ プロテクション コーポレーション マイクロプロセッサのデータセキュリティの方法およびシステム
US7281652B2 (en) * 2005-05-18 2007-10-16 Foss Jonathan G Point-of-sale provider evaluation
US20060271915A1 (en) * 2005-05-24 2006-11-30 Contentguard Holdings, Inc. Usage rights grammar and digital works having usage rights created with the grammar
US8365254B2 (en) * 2005-06-23 2013-01-29 Microsoft Corporation Unified authorization for heterogeneous applications
US20060294042A1 (en) * 2005-06-23 2006-12-28 Microsoft Corporation Disparate data store services catalogued for unified access
US7438078B2 (en) * 2005-08-05 2008-10-21 Peter Woodruff Sleeping bag and system
US20070177433A1 (en) * 2005-09-07 2007-08-02 Jean-Francois Poirier Method and system for data security of recording media
US20070159329A1 (en) * 2005-12-02 2007-07-12 Shmuel Silverman Information protection using a printed electronic circuit and laser impression
US8135645B2 (en) * 2005-12-06 2012-03-13 Microsoft Corporation Key distribution for secure messaging
US20070162390A1 (en) * 2005-12-22 2007-07-12 Macrovision Corporation Techniques for distributing and monitoring content
TW200729064A (en) * 2006-01-26 2007-08-01 Power Quotient Int Co Ltd A medium purchase and playback protection system and its method
DE602007008546D1 (de) * 2006-04-10 2010-09-30 Nxp Bv Sicherheitsspeicherung elektronischer schlüssel innerhalb flüchtiger speicher
TWI324349B (en) * 2006-07-26 2010-05-01 Atp Electronics Taiwan Inc Secure protable storage device and control method for the same
US20110022850A1 (en) * 2006-07-26 2011-01-27 Hondar Lee Access control for secure portable storage device
US20090249492A1 (en) * 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
KR101560131B1 (ko) * 2007-05-18 2015-10-26 베리메트릭스 인코퍼레이티드 데이터를 보호할 때 적용되는 프로그램 가능한 프로세싱 단계들을 정의하기위한 시스템 및 방법
JP2009027525A (ja) * 2007-07-20 2009-02-05 Nec Corp 光伝送システムおよび光伝送方法
US9710384B2 (en) * 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8095735B2 (en) 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
JP5324599B2 (ja) * 2007-12-13 2013-10-23 トムソン ライセンシング コピープロテクトされたソフトウエア・カートリッジ
US8682470B2 (en) 2008-01-08 2014-03-25 International Business Machines Corporation Data storage drive with target of opportunity recognition
US9349410B2 (en) 2008-01-08 2016-05-24 International Business Machines Corporation Automated data storage library with target of opportunity recognition
US9495561B2 (en) * 2008-01-08 2016-11-15 International Business Machines Corporation Target of opportunity recognition during an encryption related process
US8307215B2 (en) * 2008-01-23 2012-11-06 Noam Camiel System and method for an autonomous software protection device
RU2493595C2 (ru) * 2008-02-01 2013-09-20 Томсон Лайсенсинг Защищенный от копирования картридж с программным обеспечением
US20090285390A1 (en) * 2008-05-16 2009-11-19 Ati Technologies Ulc Integrated circuit with secured software image and method therefor
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US20100157766A1 (en) * 2008-12-22 2010-06-24 Gregg Jody L Predicting cartridge failure from cartridge memory data
US20100161895A1 (en) * 2008-12-22 2010-06-24 Qualls William R Securing data on data cartridges
GB2470589A (en) * 2009-05-29 2010-12-01 Vestas Wind Sys As Branching spar wind turbine blade
US9633183B2 (en) 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
US20100323790A1 (en) * 2009-06-19 2010-12-23 Etchegoyen Craig S Devices and Methods for Auditing and Enforcing Computer Game Licenses
US20100324983A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Media Distribution
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US20110213711A1 (en) * 2010-03-01 2011-09-01 Entrust, Inc. Method, system and apparatus for providing transaction verification
FR2957436A1 (fr) * 2011-01-14 2011-09-16 Continental Automotive France Systeme microprocesseur avec partie logicielle cachee
US9158902B2 (en) 2011-12-29 2015-10-13 Intel Corporation Software modification for partial secure memory processing
US8627097B2 (en) 2012-03-27 2014-01-07 Igt System and method enabling parallel processing of hash functions using authentication checkpoint hashes
EP2856377B1 (en) 2012-06-01 2017-09-27 Intel Corporation Identification and execution of subsets of a plurality of instructions in a more secure execution environment
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US8812873B2 (en) 2012-09-26 2014-08-19 Intel Corporation Secure execution of a computer program using binary translators
US9292569B2 (en) * 2012-10-02 2016-03-22 Oracle International Corporation Semi-join acceleration
US9117056B2 (en) * 2013-06-11 2015-08-25 Vatari Corporation System and method for using digital strings to provide secure distribution of digital content
US9898414B2 (en) 2014-03-28 2018-02-20 Oracle International Corporation Memory corruption detection support for distributed shared memory applications
US10606764B1 (en) * 2017-10-02 2020-03-31 Northrop Grumman Systems Corporation Fault-tolerant embedded root of trust using lockstep processor cores on an FPGA
US10467139B2 (en) 2017-12-29 2019-11-05 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
US10452547B2 (en) 2017-12-29 2019-10-22 Oracle International Corporation Fault-tolerant cache coherence over a lossy network
CN109902479B (zh) * 2019-01-28 2023-04-07 深圳市纽创信安科技开发有限公司 权限控制方法、权限控制设备、用户设备及系统
CN113496011B (zh) * 2020-04-03 2024-01-26 杭州海康威视数字技术股份有限公司 受保护智能应用的调用权限认证方法以及智能装置
US20220166762A1 (en) * 2020-11-25 2022-05-26 Microsoft Technology Licensing, Llc Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith
US11985134B2 (en) 2021-02-01 2024-05-14 Bank Of America Corporation Enhanced authentication framework using EPROM grid pattern recognition

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3996449A (en) * 1975-08-25 1976-12-07 International Business Machines Corporation Operating system authenticator
GB1561482A (en) * 1976-11-18 1980-02-20 Ibm Protection of data processing system against unauthorised programmes
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4120030A (en) * 1977-03-11 1978-10-10 Kearney & Trecker Corporation Computer software security system
US4168396A (en) * 1977-10-31 1979-09-18 Best Robert M Microprocessor for executing enciphered programs
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4246638A (en) * 1978-09-14 1981-01-20 Thomas William J Method and apparatus for controlling usage of a programmable computing machine
US4598288A (en) * 1979-04-16 1986-07-01 Codart, Inc. Apparatus for controlling the reception of transmitted programs
US4465901A (en) * 1979-06-04 1984-08-14 Best Robert M Crypto microprocessor that executes enciphered programs
FR2469760A1 (fr) * 1979-11-09 1981-05-22 Cii Honeywell Bull Procede et systeme d'identification de personnes demandant l'acces a certains milieux
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4513174A (en) * 1981-03-19 1985-04-23 Standard Microsystems Corporation Software security method using partial fabrication of proprietary control word decoders and microinstruction memories
US4446519A (en) * 1981-05-26 1984-05-01 Corban International, Ltd. Method and apparatus for providing security for computer software
US4433207A (en) * 1981-09-10 1984-02-21 Best Robert M Cryptographic decoder for computer programs
US4471163A (en) * 1981-10-05 1984-09-11 Donald Thomas C Software protection system
US4458315A (en) * 1982-02-25 1984-07-03 Penta, Inc. Apparatus and method for preventing unauthorized use of computer programs
US4525599A (en) * 1982-05-21 1985-06-25 General Computer Corporation Software protection methods and apparatus
US4523271A (en) * 1982-06-22 1985-06-11 Levien Raphael L Software protection method and apparatus
US4462078A (en) * 1982-08-02 1984-07-24 Ron Ross Computer program protection method
US4558176A (en) * 1982-09-20 1985-12-10 Arnold Mark G Computer systems to inhibit unauthorized copying, unauthorized usage, and automated cracking of protected software
US4562305A (en) * 1982-12-22 1985-12-31 International Business Machines Corporation Software cryptographic apparatus and method
US4609985A (en) * 1982-12-30 1986-09-02 Thomson Components-Mostek Corporation Microcomputer with severable ROM
US4621334A (en) * 1983-08-26 1986-11-04 Electronic Signature Lock Corporation Personal identification apparatus
US4562306A (en) * 1983-09-14 1985-12-31 Chou Wayne W Method and apparatus for protecting computer software utilizing an active coded hardware device
US4652990A (en) * 1983-10-27 1987-03-24 Remote Systems, Inc. Protected software access control apparatus and method
US4577289A (en) * 1983-12-30 1986-03-18 International Business Machines Corporation Hardware key-on-disk system for copy-protecting magnetic storage media
US4633388A (en) * 1984-01-18 1986-12-30 Siemens Corporate Research & Support, Inc. On-chip microprocessor instruction decoder having hardware for selectively bypassing on-chip circuitry used to decipher encrypted instruction codes
US4621321A (en) * 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
US4599489A (en) * 1984-02-22 1986-07-08 Gordian Systems, Inc. Solid state key for controlling access to computer software
US4609777A (en) * 1984-02-22 1986-09-02 Gordian Systems, Inc. Solid state key for controlling access to computer software
US4644493A (en) * 1984-09-14 1987-02-17 International Business Machines Corporation Implementing a shared higher level of privilege on personal computers for copy protection of software

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005528678A (ja) * 2002-04-18 2005-09-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド セキュア実行モードで動作し得るプロセッサを含むコンピュータシステムの初期化方法
US8695102B2 (en) 2006-05-01 2014-04-08 International Business Machines Corporation Controlling execution of executables between partitions in a multi-partitioned data processing system
JP2008210225A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd セキュアプロセッサシステム、セキュアプロセッサ及びセキュアプロセッサシステムの制御方法

Also Published As

Publication number Publication date
US4817140A (en) 1989-03-28
JPH0260009B2 (ja) 1990-12-14

Similar Documents

Publication Publication Date Title
JPS63128434A (ja) ソフトウエアの保護方法
US4916738A (en) Remote access terminal security
White ABYSS: ATrusted Architecture for Software Protection
EP0266748B1 (en) A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
JP4498735B2 (ja) オペレーティングシステムおよびカスタマイズされた制御プログラムとインタフェースする安全なマシンプラットフォーム
US7380275B2 (en) Secure and backward-compatible processor and secure software execution thereon
US5109413A (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
JP4073913B2 (ja) 開放型汎用耐攻撃cpu及びその応用システム
US7389536B2 (en) System and apparatus for limiting access to secure data through a portable computer to a time set with the portable computer connected to a base computer
White et al. ABYSS: An architecture for software protection
Kuhn Cipher instruction search attack on the bus-encryption security microcontroller DS5002FP
US6385727B1 (en) Apparatus for providing a secure processing environment
US7225333B2 (en) Secure processor architecture for use with a digital rights management (DRM) system on a computing device
US20050060568A1 (en) Controlling access to data
KR100611687B1 (ko) 멀티-토큰 실 및 실 해제
US7103782B1 (en) Secure memory and processing system having laser-scribed encryption key
EP0268139A2 (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US5875248A (en) Method of counterfeit detection of electronic data stored on a device
US20070055892A1 (en) Concealment of information in electronic design automation
JP3801833B2 (ja) マイクロプロセッサ
GB2404536A (en) Protection of data using software wrappers
CA2308755A1 (en) Reconfigurable secure hardware apparatus and method of operation
US7275161B2 (en) Method, system, device and computer program for mutual authentication and content protection
AU743775B2 (en) An apparatus for providing a secure processing environment
JPS59173847A (ja) コンピユ−タソフトウエアの保護方法およびその装置