JPH0332813B2 - - Google Patents

Info

Publication number
JPH0332813B2
JPH0332813B2 JP62250063A JP25006387A JPH0332813B2 JP H0332813 B2 JPH0332813 B2 JP H0332813B2 JP 62250063 A JP62250063 A JP 62250063A JP 25006387 A JP25006387 A JP 25006387A JP H0332813 B2 JPH0332813 B2 JP H0332813B2
Authority
JP
Japan
Prior art keywords
coprocessor
key
software
execution
rights
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP62250063A
Other languages
English (en)
Other versions
JPS63127334A (ja
Inventor
Deuido Kamaafuoodo Riimu
Richaado Howaito Suteibu
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 JPS63127334A publication Critical patent/JPS63127334A/ja
Publication of JPH0332813B2 publication Critical patent/JPH0332813B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Storage Device Security (AREA)

Description

【発明の詳細な説明】
以下の順序で本発明を説明する。 A 産業上の利用分野 B 従来技術 C 発明が解決しようとする問題点 D 問題点を解決するための手段 E 実施例 E1 ソフトウエア資産保護機構(第2図) E2 実行権の制約(第1図、第3図、第4図) E3 実行権の転送(第5図、第6図、第7図、
第19図) E4 実行権のバツクアツプ(第8図、第9図、
第10図、第11図、第12図、第13図、第
14図、第15図、第16図、第17図) E5 販売者のキー暗号化(EVK)(第18図) E6 ソフトウエアの返品 F 発明の効果 A 産業上の利用分野 本発明はデータ処理、具体的にはソフトウエア
保護機構に関する。この機構は磁気媒体もしくは
他の媒体によつて頒布されるソフトウエアを許可
された物理的に安全なコプロセツサに関連する任
意に計算機上で使用するように制限する。この機
構はユーザのバツクアツプ・コピーの作成を妨げ
ないが、その保護はこのようなバツクアツプ・コ
ピーによつて危くされることはない。本発明は特
にコピー防止機構に顕著な特徴である実行権の処
遇に関する。 B 従来技術 関連文献としては、本出願人に係る次の米国特
許出願明細書があげられる。 米国特許出願第927309号(1986年11月5日出
願) 米国特許出願第927306号(1986年11月5日出
願) 米国特許出願第927629号(1986年11月5日出
願)(特開昭63−128434号) 米国特許出願第927298号(1986年11月5日出
願)(特開昭63−124155号) 米国特許出願第927286号(1986年11月5日出
願)(特開昭63−124151号) 米国特許出願第927297号(1986年11月5日出
願) 基本的なコピー防止機構は上述の米国特許出願
第927629号に開示されている。この機構は保護さ
れるべきソフトウエアをこのソフトウエアの実行
権から分離している。安全を与え、上記機構を具
体化するために、保護されたアプリケーシヨンを
実行する各計算機(以下上位計算機と呼ぶ)は論
理的及び物理的に安全なコプロセツサと関連付け
られる。コプロセツサ中に設置される時は、特定
の保護されたアプリケーシヨンの実行権はアプリ
ケーシヨン・キー(AK)と呼ばれるソフトウエ
ア解読キーの形で存在する。ソフトウエア解読キ
ーAKがコプロセツサの永久メモリに保持されて
いる限り、これに対応する保護されたソフトウエ
アは上位計算機及びコプロセツサを含む複合シス
テム上で実行できる。このソフトウエアのコピー
防止機構は現存の及び計画中のソフトウエア頒布
技術にほとんど抵触せず、ユーザに無制限のバツ
クアツプ(補助)コピーの作成を可能にし、ユー
ザとソフトウエアの販売者間に2方向通信を必要
としないという利点がある。この利点はハードウ
エア・カートリツジ(即ちトークン)の形で与え
られる、実行権を受取るための許可をコプロセツ
サに頒布することによつて支援される。さらにユ
ーザは未使用のトークンによつて表わされる実行
権をコプロセツサに転送するため、保護されたア
プリケーシヨンを実行する始めにトークンを使用
するだけでよい。その後、トークンは廃棄され、
その後はこの実行権(トークン)の保持もしくは
使用は全く必要がない。 上記米国特許出願第927629号に開示されている
発明は(ユーザが最初どのようにして実行権を獲
得するかを説明しているだけであり)実行権の処
遇については向けられていず、実行権は条件を付
ける可能性についての説明がない。 C 発明が解決しようとする問題点 本発明の目的はコプロセツサ中に存在するソフ
トウエアの実行権に条件を付け、その処遇を決
め、もしくはこれを転送することにある。 本発明の他の目的は、実行権を安全に転送する
機能を与えることにある。 D 問題点を解決するための手段 ソフトウエアの実行権は他のコプロセツサに転
送できもしくは、外部に記憶するためにコプロセ
ツサの外部に移すことができる。いずれの場合に
も、実行権を転送する過程は擬似的もしくは複製
の実行権を発生したり、許したりするものでない
ことが重要である。このようなことは勿論コピー
防止の目的に反する。以下説明するように、実行
権の転送は転送セツト(多くの点で実行権を獲得
した時の頒布媒体と同じである)の使用によつて
間接的か、コプロセツサからコプロセツサへの通
信リンクを介して直接的に行うことができる。
尚、このとき、転送トランザクシヨンが傍受され
るかも知れないという意味で通信が安全でない時
でも安全が保持される。 本発明は又実行権に条件を付けるための技術を
与える。たとえば実行権は期間(〆切り日もしく
は〆切り時間迄存在する権利)によつて条件を付
けられなくてはならず、又呼び起される回数によ
つて条件を付けることができる(たとえば販売者
は保護されたアプリケーシヨンを10回実行する権
利をユーザに販売することができる)。以下説明
するように実行権は実行権のソース(ソフトウエ
アの販売者)を満足するようにコプロセツサによ
つて測定できる限り任意の他のパラメータによつ
て条件を付けることができる。条件を付された実
行権が使用されると、ソフトウエアの販売者にさ
らに柔軟性が与えられ、ソフトウエアの分野に始
めて真に安全な「返品」対策の可能性が開かれ
る。明らかに、現在のソフトウエアの頒布技術を
使用するソフトウエアの販売者は完全購買信用取
引きのソフトウエアの返品を受取るようなことが
あれば彼の製品を只で与えるという危険がある。
現在の頒布技術では、販売者はユーザがすでにソ
フトウエアを複製して返品した時に、ユーザが完
全に使用可能なアプリケーシヨンのコピーを保持
しているかどうかを検証する手段がない。本明細
書の原理を使用すると、ソフトウエアの販売者は
「返品」対策を具体化でき、ユーザがソフトウエ
アを返品すると、ユーザはもはや実行可能なコピ
ーを保持できなくなる。 ソフトウエアのコピー防止機構は現実に、現実
の装置により動作するためと、別個の実行権がコ
プロセツサの永久メモリ中に暗号キーの形で存在
するので、実行権を記憶するコプロセツサが故障
する可能性も考慮しなければならない。このよう
な故障が生じてもユーザの実行権が完全に失われ
るようなことがあつてはならない。本発明はユー
ザのコプロセツサが故障した場合における実行権
の消失に対してユーザを保護する装置及び方法を
与える。実行権を移動即ち転送する場合と同じよ
うに、任意のハードウエアのバツクアツプ技術
(コプロセツサの故障の場合に利用可能になる)
は擬似実行権を許容する性質を持つていてはなら
ない。 本発明のハードウエア・バツクアツプ方法は実
行権を不当に複製する機会を最小にし、その活動
を妨げる。 条件の付された実行権 実行権を条件を付すためには、上記米国特許出
願第927629号に開示されているシステムに、次の
ものがなくてはならない。 (1) アプリケーシヨン・ソフトウエアの実行が完
全に許される(もしくは許されない)条件のス
テートメント (2) この条件を測定できるある客観的規準 (3) 条件と規準を比較して、比較の結果によつて
実行されるソフトウエア・プログラム これ等の目的はユーザもしくはソフトウエアの
販売者によつて特別に許可されていない他人がこ
の条件もしくはこの条件の満足をテストする客観
的規準を変えようとする試みに対して安全な方法
で満足されなければならない。 本発明に従い、この規準はソフトウエア中に、
より具体的にはアプリケーシヨン・ソフトウエア
の保護された、即ち暗号化部分中に記述される。
上記米国特許出願第927629号に説明されているよ
うに保護されたアプリケーシヨン・ソフトウエア
がユーザに使用される唯一の形式は暗号形式にお
いてである。それはユーザはデータ・オブジエク
トとして暗号キーにアクセスできず、保護された
ソフトウエアを修正したり、読取りすらできない
からである。保護ソフトウエア内に実行権の条件
を組込むことによつて、ソフトウエアの販売者に
よつて許可されない限りこれ等の条件はユーザも
しくは他人による変更から安全に保護される。プ
ログラムされた規準に対してテストする条件を保
管するためには、コプロセツサ中の持久メモリ中
のある記憶スペースを使用する。この記憶スペー
スはすでに暗号化ソフトウエアを解読するのに必
要な解読キーを記憶する機能が割当てられてい
る。従つてソフトウエアの特定の保護された部分
に割当てられている記憶スペースを拡張して規準
とテストされる条件を含めるようにする。メモリ
が持久性であるために実行権がコプロセツサ中に
利用可能であるかぎり、この客観的条件も利用可
能である。コプロセツサはその物理的に安全な境
界内に連続的に電力が供給される実時間クロツク
を含むので、時間を含む規準を使用したい時は、
時間情報が利用可能である。この情報はコプロセ
ツサの持久メモリ中に記憶され、特定のアプリケ
ーシヨンに割当てられたこのメモリの部分だけが
そのアプリケーシヨンによつてアクセスできるの
で、情報はユーザによる修正から安全に保護され
る。アプリケーシヨン・ソフトウエアは持久メモ
リのこの部分に記憶された条件を変更できるかも
しれないが、実時間クロツクの値は変更できな
い。 たとえば、ソフトウエアはこのメモリ中に保持
している回数を変更することによつて回数もしく
は総時間がカウントでき、実行の回数もしくは総
時間に関連する規準がもはや記憶した条件を満足
しなくなる迄実行できる。 たとえば、ソフトウエアの販売者がユーザにあ
る期限の日付を超えてはならないという条件付き
(たとえば、ユーザは1987年の3月1日迄は保護
されたアプリケーシヨンを実行できるが、その後
の不可という権利を有する場合)で実行権を転送
したものと仮定する。従つてコプロセツサの動作
命令はソフトウエア解読キーとともに最後の許可
日付(期限の日付)が記憶できなくてはならな
い。コプロセツサは実時間クロツクを保持してい
るので、解読キーをアクセスする時もしくはアプ
リケーシヨンの実行の途中にはいつでも、期限の
日付及び現在の日付が利用できる。この期限の日
付けは実時間クロツクのセツト時間と同じように
コプロセツサの安全性によつて不法な変更から守
られている。ソフトウエアの暗号化部分(保護部
分)は実行が期限の日付けを越えていると使用で
きないという規準を記述している。保護ソフトウ
エアが実行される時はいつでも、解読キーと期限
の日付けがコプロセツサの持久メモリからアクセ
スされる。保護ソフトウエア中でテストされる規
準は期限の日付を現在の日付と比較することを必
要とする。もし現在の日付が期限の日付を越えて
いると、保護ソフトウエアの実行は進行しない。
保護ソフトウエアは又現在の日付が期限の日付を
越えると特定のソフトウエア解読キーを抹消でき
るように作成できる。この分野の専門家にとつて
は期限の日付に代る条件としてソフトウエアを実
行する回数の使用できることは明らかであろう。
この場合、保護ソフトウエアはソフトウエア解読
キーとともに現在のデータを記憶する代りに、許
可された実行回数を記述し、許容使用回数を記憶
していて、この回数をソフトウエアの実行のたび
にデクレメントする。従つて保護部分が許容実行
回数を規準と比較して、残りの回数が0より大き
いことを確かめる。許容実行回数が0になると、
ユーザのソフトウエア実行要求は拒否される(お
そらくソフトウエア解読キーも抹消される)。こ
のような特定の具体例には経過時間、パスワード
及びこれ等の組合せ並びに他の測定可能な変数を
含む多くの変形が存在することは明らかであろ
う。 実行権の転送 1人のユーザから他のユーザへの実行権の転送
(具体的にはソース・コプロセツサからシンク・
コプロセツサへの転送)は頒布セツトを再構成す
ることによつて達成できる。この手順は最初に実
行権を獲得した形と実質的に同じであるポータブ
ルな形に戻す(上記米国特許出願第927629号参
照)。この手順は必然的に実行権をソース・コプ
ロセツサから移動させる。 このトランザクシヨンはユーザがトークン(一
種の割印)の構造に依存してトークンもしくはデ
イスクのいずれか及びトークン対(転送セツトと
も呼ばれる)を得ることを必要とする。これ等の
セツトはハードウエアの販売者によつて与えるこ
とができる。これ等のセツト中のトークン(即ち
カートリツジ)はコプロセツサのハードウエア製
造者によつてロードされる。ユーザによつて使用
される前の転送セツトは2つの形で記憶される単
一の情報片であるトークン・データを有する。ト
ークンはハードウエアの販売者によつて平文のト
ークン・データとしてロードされる。トークンの
物理的特性がこの高度に機密性の情報を不許可の
者から保護する。同じデータが共通スーパーバイ
ザ・キー(CSK)と呼ばれるハードウエアの製
造者の秘密のキーによつて暗号化されるECSK(ト
ークン・データ)が発生される。これは転送セツ
トのデイスク上もしくは(可能な構造になつてい
れば)トークン中に記憶される。ECSK(トーク
ン・データ)は暗号化されているから、誰もが読
取ることができ、さらにコピーできるようなデイ
スク上に記憶できる。転送セツトはハードウエア
の販売者のような信頼の置けるソースによつて製
造されることが必要である。それは仮にトークン
の内容が知られると、他のトークンにその知られ
た内容がロードでき、転送される実行権が複製さ
れるからである。ユーザが適切な転送セツトを獲
得したと仮定すると、頒布セツトはたとえば次の
ようにしてユーザと彼の複合計算システムによつ
て、頒布セツト再構成(RDS)過程を使用して
作成される。 上位計算機上で実行中のユーテイリテイ・プロ
グラムが(ソース)コプロセツサにRDSシーケ
ンスが開始することを知らせる。ユーテイリテ
イ・プログラムはコプロセツサに転送すべきキー
の位置を知らせる。コプロセツサはインデツクス
付きキーを除くすべての許可されたキーについて
CBS(バツクアツプ・セツト作成)手順を実行す
る。CBS手順については後に説明する。この時
点では、CBS手順は存在する任意のハードウエ
ア・バツクアツプ機構を無効にすると述べておく
だけで十分である。コプロセツサは転送セツトか
ら暗号化されたトークン記述子ECSK(トークン・
データ)のコピーを要求してこれを受取る。コプ
ロセツサはトークン記述子を解読して平文のトー
クン・データを与える。この平文トークン・デー
タは次にインデツクスによつて識別されるソフト
ウエア解読キーを使用して暗号化され、EAK(ト
ークン・データ)を発生する。次にコプロセツサ
はこの暗号化トークン記述子EAK(トークン・デ
ータ)をトークンもしくはデイスク上の予約され
た持久メモリ領域中に記憶し、所定のメモリ位置
にあるソフトウエア解読キーAKを抹消即ち非活
性化する。従つてコプロセツサは暗号化トークン
記述子を上位計算機に渡して転送セツト・デイス
ク上に記憶する。以下説明するように、転送すべ
きキー(AK)は実行の条件に関連付けられる。
もしこれ等の条件が(期限の日付のように)不変
ならば、暗号化アプリケーシヨン・キーは転送セ
ツト・デイスクにコピーできる。もし実行の条件
が変ると(使用の残り時間もしくは使用の残り回
数のように)、アプリケーシヨン・キーを含む暗
号化フアイル及び実行の条件はこの条件をリセツ
トすることなくしては頒布デイスクからのコピー
ができない。トークン記述子フアイルとアプリケ
ーシヨン・キー・フアイルのこの同期は各フアイ
ル中に照応テスト回数を含ませることによつて達
成できる。転送の次の段階で転送デイスク上に記
憶させるために暗号化アプリケーシヨン・フアイ
ルを作成する。この作成は照応テスト回数が乱数
に代る点を除き以下に説明する販売者キー暗号化
(EVK)と同じである。この照応数はトークン・
データの一部であつてよい。この作成と転送の後
に、上位計算機中で実行されているユーテイリテ
イ・プログラムは転送セツト・デイスクに保護さ
れたプログラムの平文と暗号文の部分を含む2つ
のフアイルを転送する。ここでこの頒布セツトは
これがソフトウエア解読キーAKで暗号化された
暗号化トークン・データ、平文フアイル及び同じ
くソフトウエア解読キーAKで暗号化された保護
された即ち暗号化ソフトウエア・フアイル並びに
ハードウエアの販売者のキーCSKによつて暗号
化されたソフトウエア解読キーを含む点で上記米
国特許第927629号に開示されている頒布セツトと
同じことがわかるであろう。後の3つの要素はも
し実行条件が許容されているならば原頒布デイス
クもしくはこれ等のフアイルのバツクアツプ・コ
ピーからコピーできる。頒布セツトは一つの点を
除いてすべての点で同じであるから、これは任意
のコプロセツサによつて特定の暗号化ソフトウエ
ア・フアイルを実行する権利を転送するように使
用可能である。この頒布セツトと実行権を獲得し
た原頒布セツト間の唯一の差異はトークン・デー
タが異なつている可能性が極めて大きいことであ
る。しかしながらこのことはセツトの両方の部分
(カートリツジ及びデイスケツト)が同一のトー
クン・データから得られる限り重要ではない。
(ソース)コプロセツサはここで一時メモリから
解読キーAKを抹消する。この時点で実行権はソ
ース・コプロセツサから抹消され、転送セツトだ
けに存在する。 しかしながら、実行権の転送は間接的、たとえ
ば上述のように転送セツトを介して行う必要はな
い。実行権の転送は直接的でよく、コプロセツサ
からコプロセツサへの通信リンクを使用しても行
うことができる。さらにコプロセツサ間の通信リ
ンクは転送される実行権の安全を守るために保護
されている必要はなく、安全は以下説明するよう
に暗号化によつて保護される。以下の説明ではコ
プロセツサ間の転送について説明するが、コプロ
セツサ間の通信リンクは直接でもよく、双方向デ
ータ通信システムを介するものでもよい。1つの
コプロセツサから他のコプロセツサへの実行権の
転送は関与する2つのコプロセツサが互を「フア
ミリのメンバ」として確認でき、このトランザク
シヨンに使用するための一回限りのセツシヨン・
キーを発生できるときは安全と考えることができ
る。フアミリのメンバであることの識別は各々の
使用する手順が正しくかみ合い、従つて実行権の
拡散が生ぜず、他の保護された情報が露顕しない
ことを保証するために必要である。 セツシヨン・キーを発生するトランザクシヨン
はこのトランザクシヨンに関与する2つのコプロ
セツサ・システムに共通な高い特権メモリ中に情
報が存在すること、及びコプロセツサが良い乱数
を発生することができる能力に依存する。セツシ
ヨン・キーを発生する過程は両コプロセツサが必
要な前提情報を共通に保持している限り、トラン
ザクシヨンに関与する両コプロセツサに同じキー
を所有させることができる。 相互識別とセツシヨン・キーの発生のトランザ
クシヨンは次のように行われる。説明の目的のた
めに、実行権があるユーザ、複合計算システムも
しくはコプロセツサから転送される時はこのユー
ザ、ユーザの複合計算システムもしくはユーザの
コプロセツサをソース・ユーザ、ソース複合計算
システムもしくはソース・コプロセツサと呼ぶこ
とにする。実行権が転送されて来る時は、そのユ
ーザ、複合計算システムもしくはコプロセツサを
シンク・ユーザ、シンク複合計算システムもしく
はシンク・コプロセツサと呼ぶことにする。ソー
ス・ユーザは、ソース・コプロセツサにセツシヨ
ン・キーが必要になつたことを信号する。ソー
ス・コプロセツサはセツシヨン・キーを発生する
のに使用する乱数を発生し、これを他のランダム
なビツト・ストリングに埋込み、メツセージ確認
コード(MAC)を添付する。MACは解読によつ
て復元した平文メツセージが転送されて来たメツ
セージに同じであることを保証するのに使用でき
る。ソース・コプロセツサはこの数をキーCSK
で暗号化し、暗号化した数をシンク・コプロセツ
サに送る。シンク・コプロセツサも同じ機能を遂
行してその暗号化乱数をソース・コプロセツサに
送る。ソース・コプロセツサは暗号化キー
(CSK)によつて受取つた乱数を解読する。各コ
プロセツサが多くのCSKを記憶している場合に
は各コプロセツサは受取つた数を各CSKによつ
て相継いで、有効なMACが得られるか、スーパ
ーバイザ・キー(CSK)のコレクシヨンが尽き
る迄解読する。有効なMACが発見されなかつた
時は、誤りメツセージが戻される。この誤りメツ
セージの発生はフアミリのメンバでないプロセツ
サがそうであるものとしてそれ自身を偽装した場
合の代表的な結果である。もし有効なMACを得
た場合には、2つのコプロセツサ中で発生した乱
数は両コプロセツサ中で組合され、セツシヨン・
キーとして使用される。勿論コプロセツサのため
の動作命令の一部は乱数を組合して、セツシヨ
ン・キーを発生する特定の方法を前もつて決定し
ている。ここで、1つの乱数は他の乱数と連結で
き、もしくは排他的にORできる等々である。 正しいスーパーバイザ・キーの検索において相
続く解読を必要とする手順を避けるために、使用
したスーパーバイザ・キーのためのインデツクス
のような位置情報を暗号化した数とともに送るこ
とができる。しかしながら、コプロセツサに正し
いスーパーバイザ・キーを探索させることを要求
する技術には長所がある。暗号化した数とともに
インデツクスされた数を送る手順は傍受者に対し
てスーパーバイザ・キーに関する情報の集まりを
増大させる。 セツシヨン・キーが一度発生すると、コプロセ
ツサは実行権をセツシヨン・キーで暗号化して転
送することが可能になる。この手順を制御するコ
プロセツサのフアームウエアは実行権がソース・
プロセツサから抹消されることを保証する。実行
権はソース・プロセツサによつて転送される時に
抹消できるが、好ましい技術はシンク・コプロセ
ツサが実行権を安全に受取つた時にのみ実行権
(ソフトウエア・キー)を抹消すること及びソー
ス・コプロセツサが実行権が非活性化されたこと
を示す時にのみ実行権をアクテイベートするもの
である。暗号化されて転送される実行権は、その
暗号化によつて傍受者から安全であり、安全な通
信リンクもしくはチヤネルを使用する必要はな
い。 直接、即ちコプロセツサ間通信は回路網もしく
は本体リンク環境で実行権を移動する方法であ
る。これ等の場合においてもしくは特定のコプロ
セツサ中の特定のアプリケーシヨン中に2つ以上
の権利を設定することを含む他の場合には、所与
のパツケージ当りの権利のカウントがソース・コ
プロセツサのキー記憶領域中に保持され、すでに
受取られている権利の数が頒布されて来る権利を
制限するようにされる。 上述のことから、AKをいくつかの次元(時
間、使用回数等)のAKの寿命の記述に関連付け
るのはこの機構の領域内であることは明らかであ
ろう。 この機構の能力にはソフトウエア販売者によつ
て与えられ、コプロセツサによつて実行されるソ
フトウエアの制御の下にこの寿命を分割し、区分
することが含まれることが明らかであろう。ソフ
トウエアのライブラリは実行権の保存を侵害する
ことなく、分散計算システムのユーザに利益を与
えるこれ等の手段によつて分散計算システム中に
保持できる。 複数の実行権の転送を必要とする場合には、コ
プロセツサ間の転送は次のように一度セツシヨ
ン・キーが作成されてから行われる。ソース・ユ
ーザはソース・コプロセツサに対しこれ等の実行
権(AK)を転送させることを確認させる。ソー
ス・ユーザはCBS手順(以下定義する)を実行
し、実行権のバツクアツプ・セツトを更新する。
次にソース・コプロセツサはセツシヨン・キーに
よつてソフトウエア・キーを暗号化し、これ等を
セツシヨン・キーとともに一時メモリの予約され
た位置中に記憶する。ソース・コプロセツサは各
ソフトウエア・キーをキー・メモリ(永久メモ
リ)に非活性としてマークし、暗号化情報をシン
ク・コプロセツサに送る。シンク・コプロセツサ
は暗号化キーの集りをソース・コプロセツサから
受取り、これ等をセツシヨン・キーによつて解読
する。シンク・コプロセツサは次にキー・メモリ
(永久メモリ)に解読したキーを記憶し、これ等
を非活性とマークし、その上位計算機に位置情報
を送る。この位置情報によつてアプリケーシヨン
はロード解読実行手順でキーをアクセスできる。
実際に保護されたソフトウエアより成るフアイル
は通常の(非保護の)技術もしくは装置によつて
送ることができる。シンク・コプロセツサはソー
ス・プロセツサにメツセージを戻して特定のソフ
トウエア・キー(単・複)の受取りを示して、ソ
ース・コプロセツサにその一時メモリからこれ等
のソフトウエア・キーを除去せしめる。ソース・
コプロセツサがこの除去を確認すると、キーがシ
ンク・コプロセツサによつて活性化される。 ソフトウエア販売者は実行権の転送が可能なの
を欲しないかも知れず、それによつて販売に条項
もしくは条件が定められることに注意されたい。
実行権の許容可能な移動を制御する条件はAKを
獲得した手順の1部によつてAKと関連して記憶
できる。 AKの処遇がユーザによつて要求されると、こ
れ等の条件(フラグ)は、要求された処遇を具体
化したコプロセツサ・フアームウエア中に記憶さ
れた進行/非進行規準とテストされる。 実行権のバツクアツプ 以下説明するバツクアツプ手順はユーザのコプ
ロセツサ中に記憶した実行権の集りが、不測の故
障、たとえば、コプロセツサの持久メモリの電源
の故障によつて失われないことを保証するもので
ある。このAKのバツクアツプ手順はデータ及び
ソフトウエアのフアイルに適用されるバツクアツ
プ・手順とは区別すべきものである。後者の手順
は完全に通常のもので、一般に知られているもの
であり、このシステム中に存在する時は、これ等
の種類のオブジエクト(平文及び暗号化したソフ
トウエア並びに暗号化したアプリケーシヨン・キ
ー)に適用できるものである。これ等のオブジエ
クトの多くの機能的コピーは任意の認可システム
によつて使用するために保存され、損失に対処で
きるようになつている。これに対し、以下説明す
るバツクアツプ手順の目的は実行権をバツクアツ
プして、これ等が失われることなく、この種のオ
ブジエクトの多くの機能的コピーが作成できない
ようにすることにある。 このバツクアツプ手順にコプロセツサ中の不測
の故障の影響が免がれるよう設計されているの
で、このバツクアツプ手順はプロセツサの外部で
十分な情報を作成できて、完全に有効な実行権を
記憶する(ソース)プロセツサとは完全に独立に
実行権設置できるものでなくてはならない。この
ような独立性のために、バツクアツプ手順自体が
(複製もしくは擬似的の)実行権の可能なソース
になる。バツクアツプ権利の作成の許可はソフト
ウエア販売者の施策決定による。このバツクアツ
プ権利の作成はソフトウエアの販売者に損害を与
える可能性があるが、カスタマの便宜のために与
えられるものである。権利の転送に関してすでに
説明したように、ソフトウエアの供給者はバツク
アツプを許可することを望まないであろう。この
販売の条件はAKに関連する非バツクアツプ・フ
ラグが存在すると、転送の制御について説明した
のと同じ機構によつて強化できる。このオプシヨ
ンは実行権が変更できるような場合に望ましい。
バツクアツプ権の影響を最小にするために、これ
等はこのシステム中では条件付きにされ、即ち実
際に故障したコプロセツサを有するユーザが例え
ばハードウエアの製造者によつてこの故障を検査
させるに十分長い、適当な短かい時間間隔の後に
切れるようにされる。ハードウエア製造者がユー
ザのコプロセツサの故障を検査したと仮定する
と、ユーザにバツクアツプ権に与えられた条件を
除去する追加の手順を遂行する手段が与えられ
る。バツクアツプ権の発生と、以下説明する他の
能力とを安全に統合するために、バツクアツプ権
の発生は最初はこの時未完のまま残されているす
べての許容された権利の転送であると考えるべき
である。転送手順は必然的にバツクアツプ手順と
関連付けられ(可能な実行権を保持している)ユ
ーザのバツクアツプ・セツトは完全な転送が行わ
れる時に無効にされる。これによつて転送された
権利が同じように有効なバツクアツプ中に存在す
るのが防止される。従つて、ユーザはバツクアツ
プ手続と関連して次のオプシヨンを有する。 (1) ユーザの実行権がコプロセツサ上に設置され
る時は、ユーザは実際の、但し条件の付された
実行権に変換できるバツクアツプ・セツト(潜
在的な実行権の集りを表わす)を持つことがで
きるか、 (2) ユーザは1乃至それ以上の実行権を彼のコプ
ロセツサから移動してこれ等を転送セツト中に
設置するか、もしくは直接他のコプロセツサに
転送できるが、この手順は現存のバツクアツ
プ・セツトの無効化を必要とする。この条件は
ユーザの権利と完全に両立する。それは実行権
がコプロセツサから除去される時は、権利はバ
ツクアツプ・セツトに表わされる必要がないか
らである。明らかに、設置された実行権の縮小
したセツトを正しく反映したバツクアツプ・セ
ツトを転送後に直ちに形成することもできる。 バツクアツプ権を発生するための手順は単一の
バツクアツプ・セツトが多くのアプリケーシヨン
のために潜在実行権を保持できる点で包括的であ
る。この手順はユーザの実行権の集りが動的であ
ること、たとえばある日の実行権の集りが他の日
の実行権の集りと比較して大きいかもしくは小さ
いことが考慮している。これによつてバツクアツ
プ権も動的であり、ユーザの実行権の集りの変更
を追跡することが要求される。 基本的には、このバツクアツプ手順は2段階過
程であり、第1段階では、バツクアツプ・セツト
が始めて発生される(バツクアツプ・セツト作
成、即ちCBS)。バツクアツプ・セツトは(一群
のアプリケーシヨンのための)実行権の暗号化フ
アイルを記憶するデイスクを含む。この(ソー
ス)プロセツサに一意的なスーパーバイザ・キー
(USK)も又このフアイル中に含まれる。この情
報はハードウエアの製造者が故障の証拠として受
取つた時に、故障したプロセツサがこれ等の権利
を含むことを主張できるプロセツサであることを
検査させるものである。この集りをコプロセツサ
に対して有効にするトークンも又このセツトの一
部である。このフアイルを暗号化するのに使用で
きるキーはコプロセツサによつて、たぶん日付及
び時間を一意的なスーパーバイザ・キー(USK)
によつて暗号化することによつて発生される乱数
である。バツクアツプ・セツトのトークンによつ
て有効にされるのはこの乱数キー(RK)の使用
に対する許可である。上述の如く、バツクアツ
プ・セツトは保留中の転送と考えることができ
る。バツクアツプ過程の第2の段階はバツクアツ
プ・セツト設置(IBS)である。この段階ではト
ークン及びデイスクより成るバツクアツプ・セツ
トによつて表わされる潜在実行権がコプロセツサ
上に設置される。ユーザIBS段階を実行する前の
複数の機会にバツクアツプ手順のCBS段階を実
行する可能性があると考えているので、バツクア
ツプ・セツトに使用されるトークンは頒布セツト
に使用するトークンよりも能力がなければならな
い。この能力は新らしいアプリケーシヨンが獲得
されるたび毎にCBS段階を実行するという事実
のために必要である。ユーザの現存のバツクアツ
プはこの時無効にされて、追加的な実行権の発生
を防止しなければならない。従つてこのトーク
ン・データは代表的には頒布セツトに使用できる
トークン・データよりもはるかに長く、従つてこ
のトークンの1部が各CBSトランザクシヨンの
1部として読取られ、この結果トークンの内容が
変化し、トークンを完全に放出し尽す過程におい
てではなく途中で、前のバツクアツプ・デイス
ク・フアイルが無効になる。同じトークンがもし
必要ならばIBSトランザクシヨンに使用できる。
現在はこのようなバツクアツプ・セツトのトーク
ン上にシフト・レジスタ・メモリを使用せず、メ
モリはランダム・アクセス・メモリとして設計で
きることを考慮している。しかしながら以下の説
明では簡単のために、上記米国特許第927629号と
同じく、シフト・レジスタに基づくが、余分の長
さのシフト・レジスタを含むものと仮定する。 CBS段階を開始する前に、ユーザはトークン
とデイスクより成るバツクアツプ・セツトを入手
している。ユーザが獲得したデイスクは暗号化
(された)トークン・データECSK(トークン・デー
タ)を記憶している。トークンは獲得した時は平
文のトークン・データを記憶している。 CBS段階は次のように進行する。 ユーテイリテイ・プログラムがコプロセツサに
CBSシーケンスが開始することを知らせる。 コプロセツサはバツクアツプ・セツトのトーク
ン部分に対応する暗号化トークン・データを要求
して、これを受取る。 コプロセツサはトークン・データを解読し、使
用される分のトークン・データを選択する。トー
クン・データの一部の使用とはトークン・データ
のこの部分が破壊されることを意味する。トーク
ン・データの残りの部分はCBS手順のその後の
実行、たとえばユーザがその後のアプリケーシヨ
ンを得て、彼がこれをバツクアツプする権利を有
する時に使用される。 コプロセツサは使用すべきトークン・データの
長さに等しい長さの乱数を発生し、この乱数を使
用してトークンを読取る、即ち照合して、トーク
ンの応答を得る。コプロセツサはすでに平文のト
ークン・データ及びこれが発生した乱数が利用で
きるので正しい応答を予測即ち計算できる。トー
クンの計算された応答と実際の応答が比較され
る。もし比較がトークンの実際の応答と計算した
応答が一致しないことを示すと、無効のトークン
が提示されたことになり、誤りメツセージが戻さ
れ、このシーケンスは終る。しかしながら計算し
た応答と実際の応答が一致すると、トランザクシ
ヨンは継続する。バツクアツプ・トークンを読取
る、即ち照合することによつて、その中に含まれ
るトークン・データが変更される(検査されるだ
けでなく)。トークン・データの変更によつて前
のバツクアツプのすべてのコピーを無効にする。
従つてトークンに必要とされる長さについて云え
ば、トークンのビツト長をCBS段階が実行され
る各度に使用される部分のビツト長で割つた値の
回数使用されるに過ぎない。トークンがもう1回
トランザクシヨンを行うのに十分なだけのデータ
を含む時は、このデータが読取られて破壊され、
新らしいバツクアツプ・トークンを開始できる。 このトランザクシヨンの残りについては、コプ
ロセツサ中で使用する暗号システムは任意の数字
を有効なキーにすることができるものと仮定して
いる。従つて乱数は有効なキーである。この性質
はDESシステムの特徴である。 トークンの確認を検査した後、コプロセツサは
第2の乱数でトークン・データの残りの未使用の
部分、そのキー・メモリの許容部分及びそのソー
ス・プロセツサを識別する一意的なスーパーバイ
ザ・キー(USK)を暗号化する。上述のように
暗号化されたブロツクは次にデイスク上に記憶で
きる。このフアイルはバツクアツプ設置手順のた
めに使用できる。 上述の暗号化キーとして使用できる乱数のコピ
ーはここで暗号化販売者キー手順を使用してスー
パーバイザ・キーによつて暗号化される。このデ
ータはここでバツクアツプ・デイスク上に記憶で
きる。 これ等のフアイルは保護されるソフトウエアが
コピーできるのと同じように、無限回コピーでき
る。しかしながら、このフアイルはトークンとと
もにだけ使用でき、従つてトークンが途中で読取
られない場合だけ使用できる。すでに説明したよ
うに、その後の転送動作はトークンを無効化でき
る。ユーザがCBS段階の最後の実行中に発生さ
れたフアイルの両方及び中間で読取られていない
トークンにアクセスしたものと仮定して、バツク
アツプ・セツト設置段階を説明する。 さらに、中間に、ユーザのコプロセツサ、即ち
ソース・コプロセツサが故障したが、ユーザは他
の(シンク)コプロセツサが利用できるものと仮
定する。バツクアツプ・セツト設置手順はシン
ク・コプロセツサ上にユーザのソース・コプロセ
ツサ上に(バツクアツプの許可される程度に)存
在した実行権のすべてを設置できる。しかしなが
ら、ソフトウエアの販売者を保護するために実行
権の全集りが許可期間によつて条件付けられる。
許可期間中に、実行権の各々は動作できるので、
ユーザは彼の(ソース)コプロセツサ中でこれ等
を使用できる。許可期間中に、ユーザは彼の故障
した(ソース)コプロセツサをハードウエア販売
者に戻すことができる。ハードウエアの販売者
は、コプロセツサが実際に故障したことを検査し
た後、(シンク)コプロセツサに(ソース)コプ
ロセツサが故障しているので実行権についての許
可期間の条件を引上げることができることを確認
させる暗号化したメツセージを有するデイスクを
ユーザに与える。従つてIBS段階は2つのサブ段
階を含む。第1のサブ段階は実行権を(シンク)
コプロセツサに設置する。これ等の実行権を設置
する時に、これ等は条件が付されて、許可期間が
切れると無効になることを示す。IBS段階の第2
のサブ段階は実行権についての条件をハードウエ
ア販売者から獲得したデイスクを使用することに
よつて除去する。 次にIBS段階は次のように進行する。 ユーテイリテイ・プログラムがシンク・コプロ
セツサにIBSシーケンスが始まろうとしているこ
とを知らせる。最初コプロセツサにはバツクアツ
プ・フアイルを暗号化するのに使用する暗号化乱
数キーを要求して、これが送られてくる。このキ
ーは適切なCSKによつて解読される。次にコプ
ロセツサは暗号化バツクアツプ・フアイルを要求
して、それが与えられる。暗号化バツクアツプ・
フアイルは暗号化したトークン・データ、(ソー
ス)コプロセツサからのキー・メモリの内容及び
ソース・コプロセツサの一意的なスーパーバイ
ザ・キーを含む。 (シンク)コプロセツサは前の段階で見出した
乱数キーを使用してバツクアツプ・フアイルを解
読し、トークン・データを取出し、トークンを検
査する。トークン検査は頒布セツトの検査と同じ
く進行する。即ち検査はトークンの内容を変更す
る。この結果、トークンはIBS手順を一回だけ遂
行するのに使用できる。トークンが有効であるを
仮定すると、バツクアツプ実行権のセツトが(シ
ンク)コプロセツサの永久メモリ中に許可期間の
範囲を決定する〆切りの日付とともに設置され
る。 ここで(シンク)コプロセツサによつて両コプ
ロセツサの一意的なキーのコピーを含むメツセー
ジが準備される。このメツセージは故障したソー
ス・コプロセツサとともに戻され、ハードウエア
の条件引上げメツセージはシンク・コプロセツサ
によつてシンク・コプロセツサ向けられたもので
あること、及び特定のソース・コプロセツサの実
行権のセツトのためのものであることが識別され
る。 この点で、(シンク)コプロセツサはすべての
実行権が〆切りの日付について条件付けられた点
を除き、(ソース)コプロセツサが最後にバツク
アツプされた時と同じ条件にある。ユーザがハー
ドウエア販売者から許可期間内に検査デイスクを
受取つたと仮定すると、IBS段階の第2のサブ段
階は次のように進行する。 ユーテイリテイ・プログラムは(シンク)コプ
ロセツサにIBSシーケンスが完了しようとしてい
ることが知らせる。(シンク)コプロセツサは検
証フアイルを要求し、これを受取つてこれをスー
パーバイザ・キー(シンクのUSK)によつて解
読する。もしフアイルが(ソース)コプロセツサ
を識別する一意的なキーを含むならば、条件が引
上げられる。もしフアイルが(ソース)コプロセ
ツサの一意的キーを含まない時は、誤りメツセー
ジが戻され、サブ段階は完了する。 プロセツサ間通信によるバツクアツプ 前の章では、ハードウエア・バツクアツプはと
もに拡張トークンに依存するCBS及びIBS手順よ
り成るものとしてハードウエア・バツクアツプを
説明した。しかしながら、トークンもしくは拡張
トークンの使用はハードウエア・バツクアツプに
とつては不可欠でなく、中間のコプロセツサが先
ずソース・コプロセツサと(CBS手順のために)
通信し、次にシンク・コプロセツサと(IBS手順
のために)通信できるように配列できる限り、ハ
ードウエア・バツクアツプの目的のために、トー
クンもしくは拡張トークンに代つて中間のコプロ
セツサが使用できる。 ハードウエア・バツクアツプ手順のプロセツサ
間型の変形について説明する。 この説明の目的のために、ソース・コプロセツ
サは中間のコプロセツサと通信するものと仮定す
る。コプロセツサは最初送信するコプロセツサが
選択したスーパーバイザ・キーによつて各々暗号
化した暗号化乱数を交換する。既に説明したよう
に、コプロセツサの各々は最初は使用された特定
のスーパーバイザ・キーを知らないにもかかわら
ず、他のコプロセツサによつて転送されてきた暗
号化乱数を解読して認識できる。受信するコプロ
セツサの各々は暗号化乱数を成功裡に解読したと
仮定すると、これ等はこれ等の平文乱数を組合し
てセツシヨン・キーを発生し、その後の通信に使
用する。 次にソース・コプロセツサはその永久メモリか
らアプリケーシヨン・キー(AK)即ちバツクア
ツプされることが求められているキーを引出し、
このキー情報及びそのUSKをセツシヨン・キー
によつて暗号化して暗号化キー・ブロツクを発生
する。これはバツクアツプ・デイスク上に記憶さ
れる。セツシヨン・キーの中間のコプロセツサに
よつて、このキーがバツクアツプ・セツトに対応
することを示す記述子とともにその安全なメモリ
中に記憶される。この時点で、中間のコプロセツ
サはバツクアツプされつつあるAK(単もしくは
複数)にアクセスするのに必要なキーを所有する
が、このコプロセツサが信頼性のある受取り手で
ない場合は偽の実行権を発生できる。しかしなが
ら、上述の識別化手順によつてソース・コプロセ
ツサには中間コプロセツサが一族のメンバである
ことが知らされている。そのようなフアミリのメ
ンバとして、中間のコプロセツサの論理及び物理
的安全性が転送されて来た実行権を偽の複製もし
くは使用から防止する。実際の暗号化アプリケー
シヨンは通常の手段によつてIBS手順のために中
間のコプロセツサに送ることができる。 もしその後ソース・コプロセツサに中間のコプ
ロセツサを介してバツクアツプされている実行権
を転送するように要求されると、上述のようにソ
ース・プロセツサが中間のコプロセツサと通信し
てバツクアツプ権を無効にする迄はトランザクシ
ヨンは生じない。このような通信は3つの主要部
分を有するだけである。第1の部分はすでに説明
された識別子シーケンスである。これによつてソ
ース及び中間のコプロセツサはこの通信の当事者
が実際に一族のメンバであるという条件が満足さ
れる。第2の部分はソース・コプロセツサからの
中間のコプロセツサへの、バツクアツプ権のキー
の無効を要求するメツセージの転送である。第3
の部分は、自分がバツクアツプ権を記憶する真の
中間のコプロセツサであり、権利が無効にされた
ことを示す中間のコプロセツサからの返答であ
る。中間のコプロセツサ中に記憶されているバツ
クアツプ権はIBS手順を使用して中間のコプロセ
ツサ中に設置できるか、もしくは異なる(シン
ク)コプロセツサ中に設置される。バツクアツプ
権が中間のコプロセツサ中に設置される場合に
は、この動作は中間のコプロセツサに関連する上
位計算機を介してユーザによつて容易に行われ
る。この権利はトークンを必要とすることなく設
置できるが、すでに説明したように、これ等の権
利は許可期間によつて条件が付されている。 中間のコプロセツサを使用するIBS手順が遂行
される場合には、両コプロセツサは先ずセツシヨ
ン・キーを確立することによつてフアミリのメン
バであるとして相互のアイデンテイテイを確立す
る。次に乱数キーがセツシヨン・キーによつて暗
号化され、シンク・コプロセツサに転送できる。
シンク・コプロセツサがこのようにして許可さ
れ、許可期間を有するバツクアツプ実行権のセツ
トが設置でき、上述のようにハードウエアの製造
者のためのメツセージが準備される。 販売者のキーの暗号化 本明細書及び上記米国特許第927629号に説明さ
れているように、コプロセツサは又ソフトウエア
解読キー(AK)を暗号化するというサービスを
ソフトウエアの販売者に与える。全ソフトウエア
のコピー防止システムによつて与えられる保護に
とつては、ソフトウエアの販売者の解読キーを暗
号化するのに使用するスーパーバイザ・キー
(CSK)が秘密に保持されることが重要である。
ソフトウエアの販売者にコプロセツサの使用と無
数のキーを暗号化する能力を与えると、ソフトウ
エアの販売者はハードウエア販売者の暗号キー
(CSK)に通常行われている選択された平文(を
求める)侵害を試みることができる立場になる。
ソフトウエアの販売者がハードウエアの販売者の
キー(CSK)を知ることができると、そのソフ
トウエアの販売者はこれ等のキーを使用して他の
ソフトウエアの販売者の暗号化ソフトウエアを侵
害することができる。選択された平文を攻略する
には、侵害者が対応する平文及び暗号テキストの
セツトにアクセスできることが必要である。これ
等セツトを使用して、侵害者は平文から暗号化テ
キストを作成した、もしくは逆の解読に使用する
キーを識別しようと試みる。この試みの困難さ
は、もちろん、選択した暗号システム及びバツク
トラツク・タスクに利用できる計算能力による。
ある暗号システム(DESのような)は非限定回
数試みられる平文攻略に極めて抵抗性がある。 平文の攻略に対するコプロセツサの使用につい
ての第1の制約では、コプロセツサはソフトウエ
アの販売者がハードウエアの製造業者からの許可
を求めて実行権を発生するようになつている。こ
の許可はハードウエアの販売者によつてソフトウ
エアの販売者に販売されるようになつている。従
つて、平文の攻略に対するコプロセツサのソフト
ウエアの販売者についての1つの制約は、平文及
び対応する暗号テキストのセツトの発生に支払わ
れる経済的コストである。他の技術は次の販売者
キー(EVK)手順の使用である。 ユーテイリテイ・プログラムはコプロセツサに
EVKシーケンスが開始しようとしていることを
知らせる。コプロセツサは暗号化すべきキー
(AK)、代表的にはソフトウエア販売者のキーを
要求して、これを受取る。キーはソフトウエアの
販売者によつてスーパーバイザ・フラグの所望の
セツト値とともに与えられる。これ等のフラグは
スーパーバイザが(たとえば)関連キーのバツク
アツプもしくは転送を許容するかどうかを制御す
るものである。 アプリケーシヨン・キーによつて検査されるか
変更される(あるいはこの両方を行う)実行の条
件も与えられる。次の説明でAKはこの過程によ
る転送に準備された全データ(フラグ、キー及び
条件)をさすものとする。 コプロセツサは乱数(RN)を発生しこれをキ
ーAKの前端に埋込む。コプロセツサはキーの後
端に認識フラツグ(RF)を埋込む。上述のよう
に、RFは正しいCSKが(解読中)に使用された
ことを検査し、コプロセツサによつて正しい暗号
システムが使用されたことを検査するのに適した
任意のMACでよい。乱数及び認識フラグはユー
ザ、たとえばソフトウエアの販売者には知られて
いない。コプロセツサは結果のプロツクをスーパ
ーバイザ・キー(CSK)によつて暗号化し、こ
の結果をユーテイリテイ・プログラムに渡す。こ
の結果、ECSK(RN,AK,RF)はCSKを知つて
いる任意のコプロセツサによつて解読できる。こ
こで「.」はストリングの連結を示す。即ち
01.111はストリング01111を生ずる。解読の結果
RN,AK,RFは3つの要素、乱数(RN)、解読
キー(AK)及び認識フラツグ(RF)を含む。
解読コプロセツサはサフイツクスの認識フラツグ
の長さに先ずアクセスできる限り常にAKを識別
できる。乱数の埋込みによつて、たとえ同じキー
(AK)が多数回提示されたとしても、結果のブ
ロツク及び暗号化の結果が異なるので、平文の攻
略を妨害することができる。EVK手順は解読コ
プロセツサが認識フラツグ(RF)を先に知つて
いる限り、又すべての可能なCSKの先験知識を
有する限り、特定のCSKの先見知識がなくても
暗号化ブロツクを解読できるという他の利点を有
する。さらに具体的に、各コプロセツサにはハー
ドウエアの販売者によつてCSK1−CSK5が与
えられているものとする。もし暗号侵害を避ける
ための適切な手段をさらに与えたければ、使用さ
れる認識フラツグ(RF)は常に暗号キー自体で
あると仮定することができる。これ等の手段はブ
ロツク暗号化の場合はRNがブロツクの長さの整
数倍でないものとする。さらに暗号化に使用する
コプロセツサは特定のソフトウエア・キーAKを
暗号化するのにランダムにCSK3を選択したも
のとする。従つて暗号化ブロツクはECSK3(RN,
AK,CSK3)となる。CSK1−5にアクセスで
きる任意の他のコプロセツサはたとえキーCSK
1−5のうちのどれが使用されたかを知らなくて
もこのブロツクを正しく解読できる。コプロセツ
サは唯一CSK1−5の各々で暗号化ブロツクを
解読するだけでよい。唯1つの場合にだけ、平文
版はサフイツクスとして実際に使用する解読キー
を含んでいる。 仮想キー・メモリ 本明細書及び上記米国特許出願第927629号に説
明されているソフトウエア保護機能の実際の具体
化には、コプロセツサの実行権を記憶する能力に
ある制限を与えられなければならない。ユーザが
コプロセツサ中に記憶できる数よりも多くの実行
権を受取つた場合には、ユーザはめつたに使用し
ない実行権を転送トランザクシヨンによつて移動
可能な形に変換して戻すことができる。これ等の
方法によるコプロセツサへのAKのスワツプ・イ
ン及びスワツプ・アウトの動作はユーザの負担に
なることが容易に明らかであり、このような保護
機構の精神に反する。しかしながら、コプロセツ
サにリソースを与えると、この問題を克服するの
は容易である。 最も簡単な場合、AKはソフトウエアの一部の
サービスにアクセスできる権利を表わす。この概
念をわずかに拡張すると、メタAK(MAK)は実
行権の集りをアクセスする権利を表わすものとで
きる。このキーの種類はすでに制限的な形でバツ
クアツプ・トランザクシヨンに使用するRKもし
くはランダム・キーに見られる。 ユーザがそのコプロセツサのすべてのキーの位
置を充満し、さらにもう一つを設置しようとした
とすると、コプロセツサはユーザにシステム・デ
イスク(ハード・デイスクもしくはフロツピー・
デイスク)上にキーのフアイルを開始させるオプ
シヨンを与えることができる。この仮想キーの集
りはMAKによつて暗号化形で記憶される。この
集りがアクセスされてAKが移動もしくは加えら
れる度に、この集りは新らしいランダムなMAK
で再暗号化される。MAKはキー・メモリ中に記
憶され、バツクアツプ及び転送を制御するフラグ
中にMAKとしてマークされ、プロセツサによる
正しい処理が行われるようにされる。アクセス毎
にMAKの変更が必要であり、このようにしてコ
プロセツサによつて使用される仮想キーがユーザ
によつて所有される実行権の実際の集りと同期さ
れる。転送された仮想実行権を含む旧仮想キー・
メモリのコピーはローデングしても正しく解読さ
れないのでコプロセツサ上に紛れ込むことはな
い。 仮想キーを発生する(キー・メモリを解放する
目的のために)特定の手順は次のように進行す
る。上位計算機上で実行中のユーテイリテイ・プ
ログラムがコプロセツサに、ユーザが仮想キーの
発生を要求したことを知らせる。コプロセツサは
ユーザに上位計算機を介して位置情報によつて仮
想メモリ内に含まれるべきAKを識別することを
要求する。ユーザの識別に基づいて、識別された
AKはキー・メモリからそのフラグ(転送、バツ
クアツプ等のための許可を識別する)、実行条件
及び位置情報とともに取出される。コプロセツサ
は乱数を発生し、そのデータより成るブロツクを
暗号化する。結果の暗号化ブロツクはここでデイ
スク(ハードもしくはフロツピー)に書込まれ
る。乱数(仮想メモリのためのキー)が次に永久
メモリ中に仮想化されたAKの1つに代つて書込
まれる。仮想キーを乱数のMAKインデツクスに
マツプするキー参照経路フアイルが平文で上位計
算機のアクセス・ユーテイリテイに与えられ、参
照のあいまいさが解決される。このフアイルは乱
数キーを、仮想化したAKを識別する位置情報と
関連付ける。ユーザが後に仮想キーの1つによつ
て保護されているソフトウエアの実行を要求す
る。コプロセツサは先ず参照された位置のキーの
使用を試みる。この位置にあるキーの正しさは通
常のメツセージ許可技術によつてテストされる。
このキーの検査は短かいメツセージ・フアイルに
(保護されたプログラムの1部として与えられる)
確認セクシヨンをロードして解読することによつ
て遂行できる。もし解読によつて確認が有効であ
ることがわかると、正しいキーが見出されてい
る。もし確認が無効であると、アクセス・ユーテ
イリテイはもしユーザが実際にキーを有する時に
は、そのキーを含んでいる仮想キー・アクセス経
路のリストを与えることができる。これ等のキー
は仮想ブロツクを解読し、適切なAKを引出すこ
とによつて得られる。この時点で、コプロセツサ
は選択された、前もつて仮想化したAKをアクセ
スしている。 明らかに、仮想キー・メモリはそれ自身に
MAKを含むことができ、キー・メモリの寸法は
無限に拡張できる。 デモンストレーシヨン用ソフトウエア 仮想メモリ技術は又トークン・ソースもしくは
カートリツジのような検証機構なしでデモンスト
レーシヨン用ソフトウエアを支援することができ
る。トランザクシヨンは以下説明するように進行
する。キーの転送及びバツクアツプを許したり許
さなかつたりするフラグのセツト値はさらにキー
の抹消を許したり許さなかつたりするフラグを含
む。トークンがない状態でAKを受取らなければ
ならない時には、このAKをローデングするため
のデータ・フアイルは空のトークン記述子を含
み、空のトークン・コネクタがトークンの照合に
正しく応答する。この特殊なAKのためのフラ
グ・セツトはバツクアツプを可能とするが、移動
もしくは消去は可能としないセツト値を含んでい
る。このようなAKの設置には設置されたキー・
メモリと仮想キー・メモリの両方を探索して、こ
のキーが前に設置されたものであるかどうかを知
る必要がある。 デモンストレーシヨン用ソフトウエアの実行条
件には(好ましくは)経過時間もしくは使用回数
を含む。上述のような条件の下で進行するAK設
置はデモンストレーシヨンの目的のためのソフト
ウエアの1部の実行権、代表的には1回使用の実
行権の獲得を許容する。同じAKを許置しようと
する2回目の試みは前の獲得を検出する。それは
キー・メモリが探索されるが、キーが移動もしく
は消去されていないからである。ユーザは無用の
デモンストレーシヨン用キーを仮想化することに
よつて、そのキー・メモリにこれ等の無用のキー
で充満させることから守られる。ソフトウエアの
販売者はデモンストレーシヨン用ソフトウエアを
使用することによつて彼のコードが繰返し、勝手
に再設置されることから守られる。 E 実施例 E1 ソフトウエア資産保護機構 参照文献として、前記米国特許出願第927629号
及び第927297号(トークンの実施例)があげられ
た。米国特許出願第927629号は基本的なソフトウ
エア資産保護機構を開示している。この機構を簡
単に第2図関連して説明する。ソフトウエア資産
保護機構はユーザにある通信リンクもしくは経路
14を介して接続した上位計算機10及びコプロ
セツサ20を含む複合計算システムの使用を要求
する。米国特許出願第927629号に説明したよう
に、経路14はたとえば上位計算機10とコプロ
セツサ20の両方を含むカバー内に封入された内
部バスでもよく、コプロセツサ20内に含まれる
I/O装置と上位計算機10に関連するI/O装
置間のリンクでもよい。リンク14の特定の性質
にかかわらず、コプロセツサ20にはユーザもし
くは侵害者によるコプロセツサ20の内部への機
械的干渉もしくはアクセスを防止する効果のある
物理的安全性が与えられている。この物理的安全
性は内部の破線の境界によつて第2図に示されて
いる。コプロセツサ20の2つの重要な機能部分
は永久(持久)メモリ25及び一時メモリ26で
ある。後者は通常の計算機の作業メモリ
(RAM)と同種のものである。コプロセツサ2
0は永久メモリ25中に少なくとも1つの解読キ
ーCSKが記憶された形でユーザに与えられる。
解読キーCSKはコプロセツサ20の販売者によ
つて与えられ記憶される。ユーザが保護されたア
プリケーシヨンを実行するためには、このアプリ
ケーシヨンを実行する権利を永久メモリ25中に
設置しなくてはならない。この実行権はソフトウ
エア解読キーAKによつて表わされる。上記米国
特許第927629号に説明されているように、ユーザ
は実行権を設置するために、ソフトウエアの販売
者からハードウエア・カートリツジ30及び頒布
デイスク16を含む頒布セツトを受取る。第2図
に示したように、頒布デイスク16は3つのフア
イルを代表的には記憶している。1つのフアイル
は保護されたアプリケーシヨンである。代表的な
場合、保護アプリケーシヨンは2つのサブ・フア
イル中の2つの部分、即ち平文アプリケーシヨ
ン・フアイルAと暗号化された即ち保護された部
分アプリケーシヨン・フアイルBより成る。第2
図に示すように、アプリケーシヨン・フアイルB
はソフトウエア解読キーAKによつて暗号化され
ている。頒布デイスク16の第2のフアイルはキ
ーCSKによつて暗号化されたソフトウエア解読
キーAKである。最後に頒布デイスク上の最後の
フアイルはソフトウエア解読キーAKによつて暗
号化されたトークン・データT1である。上記米
国特許出願第927629号に開示されているように第
3のフアイルはかならずしも頒布デイスク16中
に組込まれている必要はなく、ハードウエア・カ
ートリツジ30中に組込まれてもよい。 ハードウエア・カートリツジ30は平文形でト
ークン・データT1を記憶している。コプロセツ
サ20を同じように、ハードウエア・カートリツ
ジ30は物理的安全性が与えられている。実行権
を設置するために、ハードウエア・カートリツジ
30は組合せ計算システムに結合即ちリンクされ
る。第2図は接続ケーブル18によるこの結合を
表わす。コプロセツサ20は一時メモリ26中に
ある暗号化したソフトウエア解読キーAKを解読
する。ソフトウエア解読キーAKを永久メモリ2
5に受入れる前に、コプロセツサ20はハードウ
エア・カートリツジ30が偽造防止性のある照
合/応答トランザクシヨンで確認されたものであ
ることが検査される(その内容T1は暗号化フア
イルEAK(T1)に対応する)。ハードウエア・カー
トリツジ30は読取り後に破壊されるので、まだ
使用されていない時はトークン・データT1を含
むだけである。ハードウエア・カートリツジ30
が確認されたものであり、未使用であることを検
査し(この過程でハードウエア・カートリツジの
有用性を破壊した)後に、コプロセツサは実行権
を受取り、その永久メモリ25中にソフトウエア
解読キーAKを記憶する。ソフトウエア解読キー
AKにアクセスすることによつて、保護されたア
プリケーシヨン・フアイルBが解読でき、コプロ
セツサ20の一時メモリ26中に記憶され、コプ
ロセツサ20によつて実行できるようになる。物
理的及び論理的安全性のために、アプリケーシヨ
ン・フアイルBは実行過程中に平文形で一時メモ
リ26中に記憶されるが、ユーザもしくは侵害者
に利用されることはない。 E2 実行権の制約 上述のように、ソフトウエア資産保護機構はコ
プロセツサ20中に制約のない実行権を設置して
いる。しかしながら本発明の特徴の1つは実行権
に条件を付けることである。その例は期限の日付
及び時間もしくは実行の回数である。第1図は第
2図と似ているが、第1図ではアプリケーシヨ
ン・フアイルの保護部分が実行の規準、たとえば
期限の日付もしくは時間が現在の日付けの前なら
ば実行を許可するという規準を含んでいる。第1
図に示したように頒布セツトを上位計算機10及
びコプロセツサ20より成る複合処理システムに
提示すると、実行権の設置は正確に第2図に関連
して説明したのと同じように、コプロセツサ20
は上位計算機10の仲介によつてトークン30の
平文の内容T1をデイスク16から読取つたフア
イルEAKT1の解読版とを比較することによつてト
ークン30を検査して(破壊する)。トークン3
0の確認及び未使用なことを検査した後、コプロ
セツサ20は永久メモリ25中にソフトウエア解
読キーAKを読取る。実行の条件はAKと同じフ
アイル中に記憶でき、AKと同時に設置される。
第1図の場合には、コプロセツサ20は期限の日
付、もしくは時間(あるいはこの両方)として解
釈できるデータを記憶している。この解釈は任意
の使用時にそのアプリケーシヨンの保護部分によ
つて遂行できる。期限の日付メモリは第3図に示
したようにソフトウエア解読キーAKと関連して
いる。具体的に説明すると、第3図はソフトウエ
ア解読キーAK及び期限の日付もしくは時間がコ
プロセツサ20の永久メモリ中に記憶されてい
て、トークン30が削除されている点を除き第1
図と全く同じである。その後、保護アプリケーシ
ヨンがコプロセツサ20上で実行されるたびに、
実行の許可の前に、アプリケーシヨンは暗号化ア
プリケーシヨン・フアイル中に現在の日付もしく
は時間が期限の日付もしくは時間よりも遅くては
ならないと述べてある規準を使用し、規準を満足
した場合にのみ実行が許可される。現在の日付も
しくは時間はコプロセツサ20による要求によつ
て実行中のアプリケーシヨンに供給される。 第4図は暗号化アプリケーシヨン・キー・フア
イル中に述べられている規準が許可される実行の
残り回数を与えている点を除き第3図と類似して
いる。実行権の設置により、ソフトウエア解読キ
ーAKはカウントCと関連し、アプリケーシヨン
の実行が要求されるたびに、カウントCの内容が
残された許可実行回数Cが0より大きいという規
準に対してテストされる。次にカウントCが1だ
け減少される。Cが0より大きい限り実行は許可
される。 制約が期限の日付であるか時間であるか、もし
くは実行の回数であるかにかかわらず、コプロセ
ツサ20には最初に定めた条件がもはや満足しな
くなつた時に関連ソフトウエア解読キーAKを抹
消する命令を与えることが望ましい。従つてソフ
トウエア解読キーは永久メモリから自動的に除去
され、実行権が削除される。 E3 実行権の転送 第5図、第6図及び第7図は実行権の転送を説
明するためのものである。第5図に示したよう
に、コプロセツサ20はその永久メモリ25中に
ソフトウエア・キーAKの形で特定の保護アプリ
ケーシヨンを実行する権利を設置している。ユー
ザは実行権を転送するために、転送セツトを得
る。転送セツトはトークン40及び付帯デイスク
46を含む。トークン40はコプロセツサのハー
ドウエア製造者のような信頼のおけるソースによ
つてトークン・データT2がロ−ドされていて、
デイスクはハードウエアの販売者のキーによつて
暗号化されさトークン・データが書込まれ、従つ
てデイスクはフアイルECSKT2を記憶している。
ユーザは又第5図中に列挙されているフアイルを
含む原型のソース・デスク16が利用できる。 第6図は転送シーケンスの第1の段階の後のこ
れ等の部品の条件を示す。さらに具体的には、転
送セツトのデイスク46が読取られ、その内容が
解読され、コプロセツサ20がその一時メモリ2
6中にトークン・データT2を記憶できる。転送
されるべきソフト解読キーAKは永久メモリ25
から一時メモリ26に移動される。 転送シーケンスの次の段階はキーRKによつて
トークン記述子T2を暗号化してERKT2を求めるこ
と、デイスク46上に多数のフアイル、即ちアプ
リケーシヨン・フアイルA(平文)、暗号化アプリ
ケーシヨン・フアイルEAK(アプリケーシヨン・
フアイルB)、ソフトウエア解読キーECSK(AK)
(必要ならば上述のようにして準備される)及び
暗号化トークン・データEAKT2を書込むことであ
る。従つて第7図に示した、2つの段階の終りに
は転送セツトのデイスク46はユーザがすでに取
得していた原型のデイスク16と略同じものにな
る。異なる点はデイスク46と16上では(暗号
形で存在する)トークン・データが異なること、
(カウントのような)実行条件が変つた時に、新
らしい暗号化アプリケーシヨン・キー・フアイル
ECSK(AK)が使用されることである。このフアイ
ルは上述の同期機構によつて、新らしいトークン
に関連付けられる。従つて転送は侵害的手段によ
つて行なわれると無用のものになる。勿論コプロ
セツサ20上に実行権を設置する時には、ユーザ
はトークン・データT1を含む彼のトークンが使
用済であるので(従つて無効化しているので)、
原型のデイスク16上のフアイル・セツトを使用
して他のコプロセツサ中に実行権を設置できな
い。しかしながら、デイスク46はユーザが現在
所有するトークン40に対応する暗号化トーク
ン・データを含んでいる。従つてユーザは保護さ
れたアプリケーシヨンを他のコプロセツサ上に保
護アプリケーシヨンを実行する権利を設置する立
場にある。同時に前にソフトウエア解読キーAK
を記憶していた元のコプロセツサはもはやこのキ
ーを記憶していないことに注意されたい。従つて
保護アプリケーシヨンを実行する権利はコプロセ
ツサ20からカートリツジ40及びデイスク46
を含む頒布セツトによつて表わされたポータブル
な形に移されている。 デイスク46及びカートリツジ40を含む転送
セツトは異なるコプロセツサ上に保護アプリケー
シヨンの実行権を設置するのに使用できるが、実
行権のための外部メモリの形として利用できる。
たとえば、ユーザは望むときに実行権を、最初に
これを引出したコプロセツサ20に戻すことがで
きる。 コプロセツサからコプロセツサへの実行権の転
送を第19図及び第1表に示す。第19図はソー
ス複合プロセツサが上位計算機10及びコプロセ
ツサ20を含み、シンク複合プロセツサはシンク
上位計算機110及びシンク・コプロセツサ12
0を含む。第19図に示したように、ソース・コ
プロセツサは転送さるべき実行権(AK)を含
む。一般に両コプロセツサは同じスーパーバイ
ザ・キーの集り(CSK)を含んでいるので、一
般化するために、第19図はシンク・コプロセツ
サは以下の過程でスーパーバイザ・キーCSK1
を使用し、他方シンク・コプロセツサ120は異
なるスーパーバイザ・キーCSK2を使用するも
のとする。どちらのコプロセツサも他方のコプロ
セツサがどのスーパーバイザ・キーを使用するか
をあらかじめ知つていないものとする。ソース及
びシンク・コプロセツサは通信リンク200を介
して相互接続されている。 上述のように、一度通信を確立すると、コプロ
セツサは識別子シーケンスを開始してそれ等自身
が他方を一族のメンバであることを確かめる。こ
の過程のあらましを述べた第1表の段階1では、
各コプロセツサは乱数を発生し、従つてソース・
コプロセツサはRN1をシンク・コプロセツサは
RN2を発生する。段階2で乱数の各々は各コプ
ロセツサによつて独立に選択されたスーパーバイ
ザ・キーによつて暗号化され、暗号化した情報を
転送して、段階3でシンク・コプロセツサ120
はECSK1(RN1)、ソース・コプロセツサ20は
ECSK(RN2)がアクセスできるようになる。上述
のように、フアミリのメンバだけが転送されて来
た乱数を解読して認識できる。ソース及びシン
ク・コプロセツサは一族のメンバと仮定したの
で、各々は送信されたメツセージを解読でき、従
つてその後両コプロセツサはRN1及びRN2が利
用可能になる。すなわち説明したように、セツシ
ヨン・キーSKは両方の乱数の合成であるから、
第1表の段階4で各コプロセツサは独立に同じセ
ツシヨン・キーSKを決定できる。 第1表 ソース・コプロセツサ シンク・コプロセツサ (1) RN1 RN2 (2) ECSK1(RN1)→ ←ECSK2(RN2) (3) ECSK2(RN2) ECSK1(RN1) (4) SK=RN1・RN2 RN1・RN2=SK (5) ESK(AK)→ ESK(AK) (6) ←ESK(AK)の受取証 (7) AKの抹消 (8) AKを抹消した→ (9) AKをアクテイベート その後ユーザが転送さるべき実行権(AK)を
識別した後、ソース・コプロセツサはセツシヨ
ン・キーSKによつて実行権を暗号化し、これを
シンク・コプロセツサに転送する(段階5)。こ
の時点でシンク・コプロセツサ120は実行権
AKにアクセスできるが、まだ実効はない。この
実行性の欠如はコプロセツサの各々に課せられる
信頼のおける安全手順によつて強請されるもので
ある。シンク・コプロセツサはメツセージをソー
ス・コプロセツサに戻し(段階6)、実行権の受
取りを示す。これによつてソース・コプロセツサ
は実行権を抹消できる(段階7)。最後にソー
ス・コプロセツサはメツセージをシンク・コプロ
セツサに転送し、実行権が抹消されたことを示
す。この後初めて、段階9でシンク・コプロセツ
サは実行権をアクテイベートできる。 実行権もしくは実行権の集りの直接転送につい
て説明したので、ネツトワーク中の計算機間のラ
イブラリ型のソフトウエア頒布のための安全な手
順を説明することは簡単な拡張である。すでに説
明した理由のために、保護ソフトウエアは上述の
ように各々上位計算機(たとえばPC)及びコプ
ロセツサより成る複合計算システムに頒布できる
だけである。たとえネツトワーク中の関与システ
ムの一部が上述のような複合計算システムでない
場合でも保護が守られることは明らかである。こ
のような介入システムが存在しても保護されたソ
フトウエアは簡単にこれ等には利用できない。こ
のようなネツトワークでは、このような複合計算
システムの任意の対間ですでに説明した手順によ
つて実行権を安全に転送できる。転送が観測(及
びコピー)されるということはすでに説明した理
由で重要でない。実行権の転送を観測する者は往
復する暗号化メツセージを単に観測するだけであ
り、スーパーバイザもしくはセツシヨン・キーに
アクセスできないので、安全は任意のメツセージ
を解読もしくは読取ることができないことによつ
て保護される。このようなネツトワーク中ではソ
ースが代表的には単一の保護アプリケーシヨンの
ための重複実行権を含む多くの実行権を利用でき
るという意味で1つもしくはそれ以上のソフトウ
エア・ソースが存在する。明らかにこのようなソ
ースは実行権を多くの他の複合計算システムに転
送できる(ソフトウエア・フラグが転送を可能に
すると仮定している)。実行権が転送される度に、
ソースの権利の集りは転送された権利の分だけ減
少し、権利が戻されるたびに、ソースの権利の集
りはこの戻りによつて増加する。任意のソースの
永久メモリは常に利用可能な権利のカウントを保
持し、利用可能な権利の1つもしくはすべてが転
送される度に内容が変更できる。ソースはたとえ
ば、被転送ユーザが転送のために払出される口座
をもつべきことを規定するように転送される権利
を条件づけることが明らかである。転送される権
利は又使用時間もしくは使用回数等によつて条件
付けることができる。ある場合、たとえば転送さ
れる権利に条件が付せられていて、将来のある日
付に時間切れになつている場合には、ソースは前
提としている転送トランザクシヨンの日付が過ぎ
るとその実行権の集りインクレメントできるよう
になつている。換言すると、転送できる権利が条
件付けられていて、特定の日付けに消滅するよう
になつているので、ソースにとつては実際の転送
が生じなかつた場合でも、その特定の日付の後
に、前に転送した権利を再獲得することは適切で
ある。ソースは又実行回数によつて測られる利用
可能な権利のカウントを保持でき、勿論このよう
なソースはこのような権利の集りの全部もしくは
一部を1回もしくは多数回のトランザクシヨンで
転送できる。又これ等の権利の一部は戻されてソ
ースの集りを増すことができる。 任意の転送トランザクシヨンで、コプロセツサ
からコプロセツサに実際に転送される唯一の必要
なデータは暗号化キー(及び関連フラグ及び条
件)であり、保護ソフトウエア自体、暗号化テキ
スト及び平文の部分はともに、通常の手段によつ
て転送できる。もし効果的ならば、すべての複合
計算システムは保護ソフトウエア(暗号化形式)
のすべて(もしくは一部)にアクセスできるよう
になつていて、キーだけを転送すればよいように
することができる。転送しなければならないソフ
トウエアはキーが転送されるのと同りネツトワー
クを介して転送できる。これに代つて、ソフトウ
エアは郵便のような他のネツトワークによつて転
送できる。 E4 実行権のバツクアツプ 以下の説明で、しばしばトークンの読取りにつ
いて言及するが、トークンを記憶するハードウエ
ア・カートリツジの構造及びこれが読取られる方
法については上記米国特許出願第927629号及び第
927297号に説明されている。 全バツクアツプ・シーケンスは故障コプロセツ
サを前提とし、実行権を異なるコプロセツサ上に
実行権を設置するので、故障コプロセツサをソー
ス・コプロセツサと呼び、異なるコプロセツサを
シンク・コプロセツサと呼ぶことにする。 ソフトウエア解読キーAKの形の実行権がすで
に(ソース)コプロセツサ20中に記憶されてい
るものとする。 コプロセツサ20は固有的な特徴を有するが少
なくとも1点、即ち故障し得る点で任意の他のプ
ロセツサと似ている。現在のソフトウエア頒布技
術では、ユーザがプロセツサが故障した時に、ソ
フトウエアが実行できなくなるが、実行能力は故
障プロセツサを修理するか、代りのプロセツサを
使用することによつて再び獲得できる。しかしな
がらコプロセツサ20の場合には、装置が故障す
ると、その中に記憶していた実行権が完全に永久
に破壊される。従つて、ソフトウエアの販売者は
顧客に実行権のハードウエアの形のバツクアツプ
(予備)を与えることを望む。本明細書で説明さ
れるハードウエア・バツクアツプは実行権の安全
性に最小の影響を与えるように、たとえば偽造も
しくは複製の実行権の回数及び持続時間を制限す
るようになつている。説明されるハードウエア・
バツクアツプは実行権の転送の保留もしくは未完
として概念的にとらえることができる。バツクア
ツプ・の必要性は将来の不確実な事件、たとえば
コプロセツサ20の故障に依存するので、未完の
実行権はコプロセツサ20と全く独立に実際の使
用可能な実行権に変換できなくてはならない。こ
の理由のために、複製実行権を発生できる部分が
生じ、これが不法使用者によつて使用されてソフ
トウエアの販売者によつて追求されている保護の
裏をかかれる危険性を与える。しかしながら、以
下説明するようにバツクアツプの設置は任意(ソ
ース)プロセツサにとつて一回しか遂行できず、
許可期間(代表的な場合はバツクアツプの設置の
時から測定する)の条件の付された、条件付き実
行権を発生する。許可期間が終ると、さらにアク
シヨンがなされない場合には、バツクアツプ権か
ら誘導できる実行権はもはや無効になる。この無
法行為を著しく制限するこの代償は、実際のコプ
ロセツサが故障した時に実行権の集りを再要求で
きる可能性が与えられないことである。合法的な
ユーザの場合は、ユーザはハードウエアの販売者
のような信頼のおけるオブザーバに彼のコプロセ
ツサが本当に故障したことを立証する責任があ
る。代表的な場合、この立証はハードウエアの販
売者に故障したコプロセツサを物理的に送ること
によつて行われる。故障したコプロセツサを検討
して、ハードウエアの販売者はユーザに検査デイ
スクを与える。ユーザはこの検査デイスクは、
(シンク)コプロセツサに検証された許可を与え、
バツクアツプ実行権に与えられた条件をなくし、
実行権を、検査デイスクを獲得した時点に設定さ
れた条件によつてだけで条件付けられた実行権に
変える。検査デイスクが置換えられた、元々実行
権を記憶しているコプロセツサと同じコプロセツ
サの故障の証拠に基づいて準備されたことを保証
するために、検査デイスクは暗号の形で故障した
コプロセツサの一意的な識別子を帯びている。こ
の一意的な識別子は条件の除去を可能ならしめる
ために必要である。シンク・プロセツサは又設置
された実行権のセツトから、条件を除去するため
のメツセージがシンク・プロセツサによつて受取
られることが意図されたものであることを認識で
きることが望まれる。この認識はメツセージ中に
(シンク)コプロセツサの一意的キーのコピーを
含ませて、そのメツセージの検証に使用するか、
メツセージをシンク・コプロセツサの一意的なキ
ー(USK)で暗号化することによつて達成され
る。ソース及びシンク・コプロセツサの識別子は
ともに、シンク・コプロセツサによつて用意され
た暗号化(CSKによる)メツセージによつてハ
ードウエアの販売者に利用可能になり、故障プロ
セツサに戻される。 上述の手順は左から右に進む時間の関数として
第17図に示されている。最初コプロセツサ20
は実行権のセツトを含んでいる。CBS手順(バ
ツクアツプ・セツトの作成)が開始され、これに
よつてカートリツジ及びデイスクを含むバツクア
ツプ・セツトが作成される。このバツクアツプ・
セツトは以下説明するように、転送セツトと似て
いるが、CBS手順はユーザが新らしい実行権を
獲得するたびに遂行されて、単一のバツクアツ
プ・セツトがコプロセツサのレパトリー内の各実
行権のバツクアツプを与えるか、もしくはバツク
アツプ・セツトがソフトウエアの販売者によつて
許可されている各アプリケーシヨンにバツクアツ
プ権を与えることが好ましい。第17図は又、
CBS手順の実行の後に、コプロセツサ20が故
障したことを示している。その後ユーザは時刻
Tsにバツクアツプ・セツト設置(IBS)手順を実
行する。従つて時刻Tsの後に、ユーザは故障し
たコプロセツサ20に代つてコプロセツサ120
上で彼の実行権を使用できる。この期間中にユー
ザは故障したコプロセツサ20を販売者に送り、
販売者はシング・コプロセツサ120へのメツセ
ージとして検査デイスクを作成する。許可期間が
切れる前に、ユーザが検査デイスクを受取る限
り、ユーザは検査デイスクを使用してバツクアツ
プ・セツト設置手順を完了し(時刻Teで)、コプ
ロセツサ120中の実行権の条件付けを除去す
る。 第8図をここで参照するに、コプロセツサ20
はソフトウエア解読キーAK1及びAK2によつて
表わされた実行権の集りを有する。バツクアツプ
される必要があるののはこれ等のキーである。バ
ツクアツプ手順の第1の段階(第9図)はトーク
ン50及びデイスク56より成る未使用のバツク
アツプ・セツトをユーザが獲得する段階である。
トークンはトークン・データTBを含み、TBは説
明の目的のために、多くの部分、TB1,TB2…
TBoより成るものとして示されている。デイスク
56はキーCSKによつて暗号化したトークン・
データを含む。ユーザはデイスクの読取りと行わ
せ、上位計算機10上の適切なユーテイリテイ手
順によつて、コプロセツサはデイスク56から読
取つた暗号化フアイルを解読してTBをその一時
メモリ26中に記憶する。ここで(第10図)、
ユーザはトークン50を上位計算機10にカート
リツジの接続ケーブル18を介して結合する。コ
プロセツサ20は使用するためのトークン・デー
タの部分を選択する。ここでの説明の目的のため
には、部分TB1を使用するように選択する。コ
プロセツサ20は乱数RNを発生し、CRと表わ
される、TB1とRNの関数、即ちトークン・の計
算応答を計算する。コプロセツサ20は乱数RN
をトークン50に印加して、最初の部分TB1を
破壊的に読取る。トークン50のこの部分を読取
ると、部分TB1が破壊され、コプロセツサ20
には実際の応答が戻される。 第11図はこの状態における、即ちトークン5
0がもはやTB1を記憶せず、一時メモリ26が
実際の応答ARを含んだ装置を示す。この時点で
コプロセツサ20はARとCRを比較する。もし
これ等が一致しない時は、誤り条件が検出され、
トークン50は確認されたものではないと考えら
れ、バツクアツプ手順は終了する。他方ARと
CRが一致すると、コプロセツサはトークン50
を確認されたものであると受取り、バツクアツプ
手順をさらに続ける。第12図は上位計算機10
が、コプロセツサ20によつて促されて、キーと
して使用される新らしい乱数(RK)を発生し、
デイスク56に多数のフアイルを含ませるように
書込んだところを示している。最初に示されてい
るフアイルはトークン15の確認を検査するのに
必要とされる読取り動作によつて修正された(た
とえばトークン・データTBは暗号化前に部分
TB1が削除されることによつて修正されている)
単なるトークン・データの暗号化(RKによる)
版である。コプロセツサ20によつてデイスク5
6について形成される第2のフアイルはトーク
ン・データを暗号化するのに使用した乱数キーの
暗号化版である。第3のフアイルは第2のフアイ
ル中に暗号化で与えられたキーの下に暗号化され
たAK及びその個々の関連フラグ及び条件のコピ
ーである。このフアイルは又ソース・プロセツサ
を識別する一意的なスーパーバイザ・キー
(USKソース)のコピーを含んでいる。以下説明
するように、検査過程中この後に、検査デイスク
が販売者に証拠を与えた故障コプロセツサを識別
する。検査過程は検査によつてソース及びシン
ク・コプロセツサの両方を正しく識別した時にの
み、設置されている実行権のセツトに課せられて
いる満期条件を除去するように進行する。このフ
アイル及びハードウエアのセツトの、実行権獲得
もしくは転送のトランザクシヨンにおけるセツト
に対する構造上及び機能上の類似性は明らかであ
ろう。ここでは、ユーザはトークン中の平文のト
ークン・データがデイスク56中の暗号化トーク
ン・データに対応するバツクアツプ・セツト、即
ちトークン50及びデイスク56を有すると述べ
るだけで十分である。これ等の装置はユーザに実
行権AK1及びAK2を任意のコプロセツサ上に設
置させるに十分である。それはこれ等の権利を設
置するのに使用される手順がIBSであり、すなわ
ち、実行権のセツトは、導入されたとき、許可期
間によつて条件づけられるからである。 第12図に示されたバツクアツプ・セツトの発
生に続き、ユーザが他のアプリケーシヨンであ
る、アプリケーシヨン3の実行権を得て、コプロ
セツサ20中にその実行権AK3を設置したとす
ると、彼はバツクアツプ・セツトを使用して、
AK1及びAK2だけでなく、AK3をも包含するバ
ツクアツプ・セツトを発生することができる。そ
の時、ユーザがデイスク56を暗号化トークン・
データを読取る複合計算システムに提示する。次
にユーザは第9図乃第12図に関連して説明した
段階を遂行する。この処理の過程で、トークン部
分TB2はこのトークンを検査する時に破壊され、
その後、結果のトークン・データはTB3…TBo
になり、デイスク56上の暗号化トークン記述子
フアイルもこれに応答し、デイスク56はさらに
AK3の暗号化版を含むようになる。もしユーザ
がこの点以前にデイスク56のコピーを形成した
としても、これ等のデイスクCBSもしくはIBSト
ランザクシヨンのために使用できない。それはこ
れ等のデイスク上の暗号化トークン記述子及び
RKがバツクアツプ・トークンを正しく検証し得
ないからである。 勿論、ユーザは唯一つのトークン記述子部分が
トークン50中に残される迄、トークン50及び
デイスク56より成るバツクアツプ・セツトの使
用を続けることができる。この時点で、他の
CBSが遂行される場合には新らしいバツクアツ
プが必要である。バツクアツプ・トークンの最後
の部分がコプロセツサによつて読取られ、古いバ
ツクアツプが無効にされ、新らしいバツクアツ
プ・セツトが開始される。 コプロセツサ20が故障した場合には、ユーザ
はバツクアツプ・セツト設置(IBS)手順中にト
ークン50及びデイスク56より成るバツクアツ
プ・セツトを使用できる。IBS手順については、
第13図の参照から始めて以下に説明する。 第13図に示したように、ユーザはバツクアツ
プ・セツトを上位計算機110及びコプロセツサ
120より成る異なる複合計算システムに提示す
る。上位計算機110は原複合計算システム中の
上位計算機10と異なる必要はなく、コプロセツ
サ120が故障したコプロセツサ20とは異なる
ことだけが必要である。第13図に示したよう
に、コプロセツサ120はその永久メモリ中に実
行権を含んでいない。ユーザがデイスク56を提
示すると、暗号化ランダム・キーECSK(RK)が読
取られて解読され、デイスク56から暗号化トー
クン・データERK(TB2+TB3…TBo)が読取ら
れ、第14図に示したように解読される。ここで
一時メモリ26はこのトークン記述子を平文形で
含んでいる。次にコプロセツサ120は他の乱数
SRNを発生して、平文のトークン・データの選
択された部分(TB2)及び乱数SRNの関数CRを
計算する。次にコプロセツサ120はトークンを
照合(質問)し、照合中に次の部分TB2を破壊
して、実際の応答ARを発生する。第14図はこ
の時点での装置の状態を示す。次にコプロセツサ
120はARとCRが一致するかどうかを判断す
る。もし一致しない時には、トークン50は確認
されたものとみなされず、誤り条件に導入し、
IBS手順が終了する。 次の段階(具体的には示されていない)で、
AK1,AK2及びUSK(ソース)を含む暗号化フア
イルがデイスク56から読取られ、解読され、そ
の個々の条件及びこれ等がすべて許可期間によつ
て条件付けられたという表示とともに永久メモリ
に記憶される。 ここでシンク・コプロセツサはハードウエアの
販売者に与えるメツセージを用意する。このメツ
セージはスーパーバイザ・キーCSKによつて暗
号化され、上位計算機によつてデイスク上に記憶
される。メツセージは共通のスーパーバイザ・キ
ーCSKで暗号化されたソース及びシンク・コプ
ロセツサの両方の一意的なスーパーバイザ・キー
(USK)のコピーECSK(USKソース及びUSKシン
ク)を含んでいる。この情報はハードウエアの販
売者に提示される故障プロセツサがソース・プロ
セツサであることを実証し、シンク・プロセツサ
がソース・プロセツサの実行権のセツトから期限
の日付条件を解除するためだけの検査メツセージ
を作成するのに使用される。 コプロセツサ120がこの条件にある時は、ユ
ーザは許可期間の継続中にAK1及びAK2によつ
てイネーブルされる保護アプリケーシヨンを実行
できる。許可期間はIBSの実行の開始時点から測
定される。許可期間中にIBSを完了できない時
は、実行権の行使は延期され、IBSを完了するこ
とによつて復位される。しかしながら、ユーザが
販売者から適切な検査デイスクを受取ると、IBS
手順は第15図に示したように完了する。第15
図に示したように、データは複合計算システムに
検査デイスク66を提示する。検査デイスク66
はその中にその故障が販売者に立証されたソー
ス・コプロセツサを識別する一意的なスーパーバ
イザ・キーのコピーを帯びる、シンク・コプロセ
ツサの一意的なキーによつて暗号化した単一フア
イルを含む。コプロセツサ120は検査デイスク
66を読取つて、フアイルを解読する。コプロセ
ツサ120は次に検査フアイルの内容を記憶して
いたソースUSKのコピーと比較する。もしこれ
等が一致しないと誤り条件が検査され、条件付き
実行権は条件が付されたまま残る。これ等は許可
期間の満了によつて中断する。他方、検査フアイ
ルがすべての点で一致したものと仮定すると、コ
プロセツサ120は最終IBS段階を行うように許
可される。これ等は実行権のセツトAK1及び
AK2の条件付けを抹消する。IBS手順が完了する
と(第16図)、コプロセツサ120はその永久
メモリ中に(ソース・プロセツサのバツクアツプ
時の条件によつてのみ条件付けられた)実行権
AK1及びAK2を含む。この条件では、コプロセ
ツサ120は故障する直前のコプロセツサ20と
同じ条件にある(第8図)。従つて、上述の段階
はコプロセツサ20のためのハードウエアのバツ
クアツプを与えるが、ソフトウエアの販売者の最
小のインパクトを与え、たとえば実行権の不許可
の複製の可能性が最小になる。 トークンを使用するバツクアツプ手順はトーク
ンとこれに関連する手順を使用し、セツトが提示
され、セツトによつて表わされた実行権を受取る
ことができる任意のコプロセツサを検証する。バ
ツクアツプの目的の中間のコプロセツサを使用す
る時は、トークンは不要である。安全性を与える
のはコプロセツサを支配する(ユーザの手の届く
範囲外の)この手順である。従つてバツクアツプ
の目的のために中間のコプロセツサを使用する場
合には、トークン・データを表わすデイスク・フ
アイルが完全に不要なことを除き、トークン/デ
イスク対を使用する時に準備したのと実質的に同
じようにしてデイスク46が準備される。おそら
くもう一つの他の差異は、バツクアツプ・セツト
を使用した時は、解読キーがスーパーバイザ・キ
ーによつて暗号化されることである。このような
構成は不用意に使用すると、このようなデイスク
を与えられるる任意のコプロセツサがバツクアツ
プを受取つてしまう。これを防止するために、解
読キーを暗号化するキーはソース・コプロセツサ
と中間のコプロセツサ間で発生されるセツシヨ
ン・キーである。このようなセツシヨン・キーの
発生については既に説明された。中間のコプロセ
ツサによつて記憶される唯一の情報は、セツシヨ
ン・キー及びこれがバツクアツプに関連すること
を示す表示である。転送手順は現在存在するバツ
クアツプの無効化を必要とするので、中間のコプ
ロセツサはこれにセツシヨン・キーが利用可能で
あるか、バツクアツプ・セツト設置手順が有効で
あるかどうかが確認される。そして上述のように
中間のコプロセツサがシンク・コプロセツサにセ
ツシヨン・キーを転送する限り、バツクアツプ・
セツトがシンク・コプロセツサ上に設置できる。 E5 販売者のキーの暗号化(EVK) 上述のように、多くのコプロセツサがユーザの
複合計算システム(コプロセツサ以外に上位計算
機を含む)中で使用でき、保護されたアプリケー
シヨン・ソフトウエアを実行することができる。
この設定で、コプロセツサは1部もしくはそれ以
上のソフトウエアを実行する権利を安全に記憶す
る機能及び上述のようにこのような実行権の処遇
を定める機能を有する。しかしながら、上述のよ
うにこれ等はコプロセツサの唯一の機能ではな
い。コプロセツサは又ソフトウエアの販売者によ
つて頒布可能パツケージを準備するのに使用され
る。ソフトウエアの販売者は任意の計算システム
を使用して上記米国特許出願第927629号に説明し
たソフトウエア保護機能に従つて彼自身の秘密の
キー(AK)によりトークン・データ及びソフト
ウエアを暗号化できるが、頒布可能なセツトの他
の部分はハードウエアの販売者のキーによつて暗
号化されたソフトウエア解読キー、たとえばECSK
(AK)である。ハードウエアの販売者のキー
CSKがソフトウエアの販売者に知られないよう
に、ソフトウエアの販売者はこの機能に(キー
CSKが安全なメモリ中に与えられている)コプ
ロセツサを使用できる。このサービスは、既に説
明したように、キーCSK上での平文テキスト攻
略をはかるために使用することができる。本発明
では平文の攻略に特に抵抗力のあるDESを、こ
の抵抗力を増強する以下説明する手順とともに使
用することを考慮している。平文の侵害は侵害者
に平文及び侵害しようとしているキーによつて暗
号化された暗号テキストをアクセスすることを要
求する。以下説明する手順を使用すると、侵害者
はこのような情報にアクセスできなくなる。 第18図ソフトウエアの販売者が必要とするモ
ードで使用されている代表的なコプロセツサ22
0を示す。ここで入力は1乃至それ以上のソフト
ウエア解読キーAK1,AK2…等であり、出力は
キーCSKによつて暗号化したこれ等のキーであ
る。すでに確立した約束により、コプロセツサ2
20は物理的に安全にされている。この安全性は
破線の内部境界によつて示されている。コプロセ
ツサ220が各ソフトウエア解読キーの入力に対
して単に出力ECSK(AK)を出力するだけならば侵
害者には選択された平文攻略に必要なデータが容
易に与えられる。 本発明のこの態様に従えば、コプロセツサ20
は暗号化の前に解読キーを修正する。しかしなが
らこの修正はすべての他のコプロセツサが知つて
いるものであり、従つてすべての他のコプロセツ
サは逆修正をほどこすことができる。一般的に説
明すると、各ソフトウエア解読キーAK1はその
前後に埋込みを行うことによつて修正される。さ
らに具体的には、第18図に示されたように、代
表的には既知のビツト長のメツセージ確認コード
(MAC)の形のサイフツクス認識フラグ(RF)
がプレフイツクス乱数(RN)とともに使用され
る。従つてコプロセツサ220はAK1の提示に
応答してRN1・AK1・RF(ここで「.」は連結を
示す)。コプロセツサはここでCSKのセツトの中
のあるキーCSKによつて結果のデータ・ブロツ
クの連結を暗号化してECSKi(RN1.AK1.RF)を発
生する。DESを理解すると、CSKiにアクセスし
た他のコプロセツサはこの結果を解読してストリ
ングRN1AK1RFを発生できることは明らかであ
る。解読を行うコプロセツサはRFの内容及びビ
ツト長のみならずAK1のようなソフトウエア解
読キーのビツト長についての知識を前もつて有す
るので、コプロセツサはメツセージECSKi(RN1.
AK1.RF)をCSKのセツトの各々でメツセージ
ECSKi(RN1.AK1.RF)を解読し、最後にRFを正し
く解読できる。一度コプロセツサが正しいCSK
を発見して、暗号化情報を解読すると、AK1
分離して、これを特に識別できる。プリフイツク
スRN1は(前に述べられたように、ある他の検
査タフクを実行することが必要でないなら)単に
破棄される。 DESを理解すると、平文の侵害はAK1,E
(AK1);AK2,E(AK2);AK3,E(AK3)等の
平文及び暗号化情報のセツトの知識を必要とする
ことがわかるが、コプロセツサ220にアクセス
できる者は容易に次の組、AK1,ECSKi(RN1.
AK1.RF);AK2,ECSKj(RN2.AK2.RF;AK3
ECSKk(RN3.AK3.RF)等を識別できる。この平文
及び暗号化データの組はこれ等の種々のストリン
グを暗号化したキーを識別しようと試みる侵害者
にとつては、平文AK1,AK2,AK3等を知つて
いたとしてもほとんど助けにはならない。 従つてソフトウエアの販売者が使用してそのソ
フトウエア解読キーを暗号化するためのすべての
コプロセツサを表わすコプロセツサ220は次の
販売者キー暗号化(EVK)手順を遂行する。ユ
ーテイリテイ・プログラムはコプロセツサ220
にEVKシーケンスが開始する事を知らせる。コ
プロセツサ220は乱数(RN)を発生しこれを
キーAKの前端に埋込むためのプリフエツクスと
して使用する。コプロセツサ220は又認識フラ
グ(RF)をサフイツクスとして使用して後端に
埋込む。結果のブロツク即ちストリングはスーパ
ーバイザ・キーのCSKの下に暗号化され、結果
が上位計算機に受渡される。 このEVK手順は認識フラツグを適切に選択す
ることによつて、データ・ブロツクは1つのコプ
ロセツサによつて選択されるスーパーバイザ・キ
ーによつて暗号化される。暗号化ブロツクは解読
するコプロセツサがすべての可能なスーパーバイ
ザ・キーを含むスーパーバイザ・キーのセツトに
アクセスできる限り、どスーパーバイザ・キーが
暗号化するのに使用されたかをあらかじめ知らな
くても、解読できる。この解読は両方のプロセツ
サ中の予備知識、メツセージ許可コードを含む多
くの手段並びに認識フラツグ(RF)として暗号
化スーパーバイザ・キーを選択することによつて
達成できる。たとえば、暗号化コプロセツサが
AKoを暗号化する目的のためにCSK3を選択した
と仮定する。上述の手段によつて暗号化するコプ
ロセツサはECSK3(RN.AKo.RF)を発生する。
解読するコプロセツサはどのCSKが暗号化に選
択されたかを知らないが、すべてのCSKにアク
セスできるものと仮定する。解読するコプロセツ
サはCSK1で始まつて各解読キーで順番に暗号
化ブロツクを解読する。ブロツク解読するたび
に、サフイツクスが解読キーと比較される。サフ
イツクスと解読キーが一致すると、解読するコプ
ロセツサは暗号キーを識別し、同時にAKoにア
クセスできる。それはこのブロツクが正しい解読
キーを使用してすでに解読されているからであ
る。同じように、もし予備知識を使用すると、予
想したストリングはRF位置に見出されなくては
ならない。もしくはMACを使用すると、MACは
AKoもしくはRN.AKoに対して有効でなければな
らない。 上述の説明では、参照はソフトウエア解読キー
AKについてなされた。以下に説明する理由で、
AKと呼ばれるブロツクはソフトウエア解読キー
だけでなく、いくつかのフラグを含んでいる。そ
の条件はソフトウエアの販売者によつて選択さ
れ、ある手順の実行を許容したりしなかつたりす
る。たとえば、1ビツトのフラグをセツトして、
ハードウエア・バツクアツプ手順の使用を許容
し、許容しなかつたりする。ハードウエア・バツ
クアツプ・フラグがバツクアツプ手順を許容しな
いようにセツトされている場合には、解読キーを
記憶する任意のコプロセツサはバツクアツプ手順
を制限してこのキー(及びそのようにマークされ
た他のキー)を除去する。ソフトウエアの販売者
は一度設置したソフトウエア解読キーの転送を禁
止したい場合がある。この目的のために、1ビツ
ト転送フラグが与えられて、転送動作を許容した
り許容しなかつたりするのに使用できる。上位計
算機が転送手順を要求すると、この手順は転送フ
ラグが転送動作を可能ならしめるようにセツトさ
れている時にのみ許容できる。これ等の制限の
各々は各コプロセツサ中に与えられた機能に与え
られるデータとして理解される。AKは又個々の
アプリケーシヨンによつてテストされる上記の実
行条件も含んでいる。 第2表はしばらく使用されており、実行権の集
りを記憶する代表的なコプロセツサの永久メモリ
25の一部の内容を示す。
【表】

Claims (1)

  1. 【特許請求の範囲】 1 ソフトウエア・キーによつて暗号化された部
    分を少なくとも含む特定の保護されたアプリケー
    シヨンを、ホスト・プロセツサ及び物理的且つ論
    理的に安全なコプロセツサを含む複合コンピユー
    タ・システム上で実行するための権利を条件付け
    る方法であつて、該実行する権利は、該コプロセ
    ツサの永久メモリ中に記憶された該ソフトウエ
    ア・キーによつてあらわされるものである方法に
    おいて、 (a) 上記アプリケーシヨンを、第1の暗号化キー
    で暗号化して記憶媒体に記憶する段階と、 (b) 上記第1の暗号化キーのデータを上記ソフト
    ウエア・キーで暗号化して上記記憶媒体に記憶
    する段階と、 (c) 上記記憶媒体から上記コプロセツサの上記永
    久メモリ中に、上記第1の暗号化キーのデータ
    を上記ソフトウエア・キーで暗号化したデータ
    を読み込む段階と、 (d) 上記コプロセツサの上記永久メモリ中に、ア
    プリケーシヨンが満たすべき使用期限または使
    用回数の条件ステートメントを与える段階と、 (e) 上記コプロセツサの上記永久メモリ中に、上
    記ソフトウエア・キー及び上記条件に関する上
    記アプリケーシヨンの使用時点または使用回数
    に依存するデータを記憶する段階と、 (f) 上記アプリケーシヨンの使用を許可する前
    に、上記条件ステートメントと上記データにア
    クセスするように上記コプロセツサに要求する
    段階と、 (g) 上記コプロセツサに、上記条件ステートメン
    ト中の条件と上記データとを比較して該条件が
    満たされているかどうか判断するように要求
    し、該条件が満足されている場合のみ上記ソフ
    トウエア・キーを使用して上記第1の暗号化キ
    ーを解読し、以て上記アプリケーシヨンを解読
    することにより上記アプリケーシヨンの使用を
    許可する段階を有する、 保護されたアプリケーシヨンの実行権に条件
    を付ける方法。
JP62250063A 1986-11-05 1987-10-05 保護されたアプリケーションの実行権に条件を付ける方法 Granted JPS63127334A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US92729986A 1986-11-05 1986-11-05
US927299 1986-11-05

Publications (2)

Publication Number Publication Date
JPS63127334A JPS63127334A (ja) 1988-05-31
JPH0332813B2 true JPH0332813B2 (ja) 1991-05-14

Family

ID=25454540

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62250063A Granted JPS63127334A (ja) 1986-11-05 1987-10-05 保護されたアプリケーションの実行権に条件を付ける方法

Country Status (1)

Country Link
JP (1) JPS63127334A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598470A (en) * 1994-04-25 1997-01-28 International Business Machines Corporation Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block
EP1249754A4 (en) * 1999-06-08 2004-05-12 Interlex Inc COMPUTER CONSIDERING THE OPPORTUNITY TO EXECUTE A SOFTWARE, METHOD FOR CONTROLLING THE EXECUTION OF SOFTWARE, DEVICE DETERMINING THE OPPORTUNITY TO EXECUTE A SOFTWARE, AND COMPUTER PROGRAM
JP2002258965A (ja) * 2001-02-28 2002-09-13 Mitsubishi Electric Corp 情報処理装置
JP2007188530A (ja) * 2007-03-30 2007-07-26 Fujitsu Ltd ライセンス委譲装置、記録媒体およびメディア読み出し方法
JP2007220134A (ja) * 2007-03-30 2007-08-30 Fujitsu Ltd ライセンス委譲装置、記録媒体およびライセンス委譲方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5887631A (ja) * 1981-11-20 1983-05-25 Fujitsu Ltd 有償ソフトウエア期限管理方式
JPS58154040A (ja) * 1982-03-08 1983-09-13 Fujitsu Ltd 有償プログラム使用禁止方法
JPS59173847A (ja) * 1983-03-23 1984-10-02 Oyo Syst Kenkyusho:Kk コンピユ−タソフトウエアの保護方法およびその装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5887631A (ja) * 1981-11-20 1983-05-25 Fujitsu Ltd 有償ソフトウエア期限管理方式
JPS58154040A (ja) * 1982-03-08 1983-09-13 Fujitsu Ltd 有償プログラム使用禁止方法
JPS59173847A (ja) * 1983-03-23 1984-10-02 Oyo Syst Kenkyusho:Kk コンピユ−タソフトウエアの保護方法およびその装置

Also Published As

Publication number Publication date
JPS63127334A (ja) 1988-05-31

Similar Documents

Publication Publication Date Title
US5109413A (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US4817140A (en) Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
EP0268139A2 (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US20210294879A1 (en) Securing executable code integrity using auto-derivative key
CN101523398B (zh) 用于管理对插件数据文件访问的系统和方法
US7487366B2 (en) Data protection program and data protection method
CN101026455B (zh) 安全处理器
EP2264640B1 (en) Feature specific keys for executable code
JP3243331B2 (ja) ソフトウェア管理用階層媒体の作成方法,ソフトウェア管理用階層媒体の作成装置およびソフトウェア管理用階層媒体
US20070055892A1 (en) Concealment of information in electronic design automation
EP0266748B1 (en) A software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor
JP2007531127A (ja) デジタルライセンス共有システム及び共有方法
WO2013142517A1 (en) Method and system for process working set isolation
JPH11328033A (ja) ライセンス委譲装置
US20090222927A1 (en) Concealment of Information in Electronic Design Automation
JP2023548572A (ja) ブロックチェーンに機密データを記憶すること
US20060259978A1 (en) Secure exchange of information in electronic design automation with license-related key generation
CN101132275B (zh) 一种实现数字内容使用权利的安全保护系统
EA006661B1 (ru) Способ и система защиты информации от несанкционированного использования
JP3624971B2 (ja) ソフトウエア利用制御方法
JP2010520703A (ja) デジタル著作権制御用再帰的セキュリティプロトコルのための方法およびシステム
KR20010044823A (ko) 컴퓨터에서 사용자 인증이 필요한 자료의 보호방법 및그에 관한 시스템
JPH0332813B2 (ja)
JPS59173847A (ja) コンピユ−タソフトウエアの保護方法およびその装置
KR20020081762A (ko) 디지털 콘텐츠를 위한 보안 서비스 방법 및 그를 위한시스템