JPS63127334A - 保護されたアプリケーションの実行権に条件を付ける方法 - Google Patents

保護されたアプリケーションの実行権に条件を付ける方法

Info

Publication number
JPS63127334A
JPS63127334A JP62250063A JP25006387A JPS63127334A JP S63127334 A JPS63127334 A JP S63127334A JP 62250063 A JP62250063 A JP 62250063A JP 25006387 A JP25006387 A JP 25006387A JP S63127334 A JPS63127334 A JP S63127334A
Authority
JP
Japan
Prior art keywords
coprocessor
key
software
encrypted
backup
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
JP62250063A
Other languages
English (en)
Other versions
JPH0332813B2 (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 JPS63127334A publication Critical patent/JPS63127334A/ja
Publication of JPH0332813B2 publication Critical patent/JPH0332813B2/ja
Granted legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 以下の順序で本発明を説明する。
A 産業上の利用分野 B 従来技術 C発明が解決しようとする問題点 D 問題点を解決するための手段 E 実施例 El ソフトウェア資産保護機構(第2図)E2 実行
権の制約(第1図、第3図、第4図) E6 実行権の転送(第5図、第6図、第7図、第19
図) E4 実行権のバックアップ(第8図、第9図、第10
図、第11図、第12図、 第13図、第14図、第15図、第1 6図、第17図) E5 販売者のキーの暗号化(EVK)(第18図) E6 ソフトウェアの返品 F 発明の効果 A 産業上の利用分野 本発明はデータ処理、具体的にはソフトウェア保護機構
に関する。この機構は磁気媒体もしくは他の媒体によっ
て頒布されるソフトウェアを許可された物理的に安全な
コプロセッサに関連する任意の計算機上で使用するよう
に制限する。この機構はユーザのバックアップ・コピー
の作成を妨げないが、その保護はこのようなバックアッ
プ・コピーによって危(されることはない。本発明は特
にコピー防止機構の顕著な特徴である実行権の処遇に関
する。
B 従来技術 関連文献としては、本出願人に係る次の米国特許出願明
細書があげられる。
米国特許出願第927309号(1986年11月5日
出願) 米国特許出願第927306号(1986年11月5日
出願) 米国特許出願第927629号(、1986年11月5
日出願) 米国特許出願第927298号(1986年11月5日
出願) 米国特許出願第927286号(1986年11月5日
出願) 米国特許出願第927297号(1986年11月5日
出願) 基本的なコピー防止機構は上述の米国特許出願第927
629号に開示されている。この機構は保護されるべき
ソフトウェアをこのソフトウェアの実行権から分離して
いる。安全を与え、上記機構を具体化するために、保護
されたアプリケーションを実行する各計算機(以下上位
計算機と呼ぶ)は論理的及び物理的に安全なコプロセッ
サと関連付けられる。コプロセッサ中に設置される時は
、特定の保護されたアプリケーションの実行権はアプリ
ケーション・キー(AK)と呼ばれるソフトウェア解読
キーの形で存在する。ソフトウェア解読キーAKがコプ
ロセッサの永久メモリに保持されている限り、これに対
応する保護されたソフトウェアは上位計算機及びコプロ
セッサを含む複合システム上で実行できる。このソフト
ウェアのコピー防止機構は現存の及び計画中のソフトウ
ェア頒布技術にほとんど抵触せず、ユーザに無制限のバ
ックアップ(補助)コピーの作成を可能にし、ユーザと
ソフトウェアの販売者間に2方向通信を必要としないと
いう利点がある。この利点はハードウェア・カートリッ
ジ(即ちトークン)の形で与えられる、実行権を受取る
ための許可をコプロセッサに頒布することによって支援
される。さらにユーザは未使用のトークンによって表わ
される実行権をコプロセッサに転送するため、保護され
たアプリケーションを実行する始めにトークンを使用す
るだけでよい。その後、トークンは廃棄され、その後は
この実行権(トークン)の保持もしくは使用は全く必要
がない。
上記米国特許出願第927629号に開示されている発
明は(ユーザが最初どのようにして実行権を獲得するか
を説明しているだけであり)実行権の処遇については向
けられていす、実行権に条件を付ける可能性についての
説明がない。
C発明が解決しようとする問題点 本発明の目的はコプロセッサ中に存在するソフトウェア
の実行権に条件を付け、その処遇を決め、もしくはこれ
を転送することにある。
本発明の他の目的は、実行権を安全に転送する機能を与
えることにある。
D 問題点を解決するための手段 ソフトウェアの実行権は他のコプロセッサに転送できも
しくは、外部に記憶するためにコプロセッサの外部に移
すことができる。いずれの場合にも、実行権を転送する
過程は擬似的もしくは複製の実行権を発生したり、許し
たりするものでないことが重要である。このようなこと
は勿論コピー防止の目的に反する。以下説明するように
、実行権の転送は転送セット(多くの点で実行権を獲得
した時の頒布媒体と同じである)の使用によって間接的
か、コプロセッサからコプロセッサへの通信リンクを介
して直接的に行うことができる。尚、このとき、転送ト
ランザクションが傍受されるかも知れないという意味で
通信が安全でない時でも安全が保持される。
本発明は又実行権に条件を付けるだめの技術を与える。
たとえば実行権は期間(〆切9日もしくは〆切り時間迄
存在する権利)によって条件を付けられなくてはならず
、又呼び起される回数によって条件を付けることができ
る(たとえば販売者は保護されたアプリケーションを1
0回実行する権利をユーザに販売することができる)。
以下説明するように実行権は実行権のソース(ソフトウ
ェアの販売者)を満足するようにコプロセッサによって
測定できる限り任意の他のパラメータによって条件を付
けることができる。条件を付された実行権が使用される
と、ソフI・ウェアの販売者にさらに柔軟性が与えられ
、ソフトウェアの分野に始めて真に安全な「返品」対策
の可能性が開かれる。明らかに、現在のソフトウェアの
頒布技術を使用するソフトウェアの販売者は完全購買信
用取引きのソフトウェアの返品を受取るようなことがあ
れば彼の製品を只で与えるという危険がある。
現在の頒布技術では、販売者はユーザがすでにソフトウ
ェアを複製して返品した時に、ユーザが完全に使用可能
ねアプリケーションのコピーヲ保持しているかどうかを
検証する手段がない。本明細書の原理を使用すると、ソ
フトウェアの販売者は「返品」対策を具体化でき、ユー
ザがソフトウェアを返品すると、ユーザはもはや実行可
能なコピーを保持できな(なる。
ソフトウェアのコピー防止機構は現実に、現実の装置に
より動作するためと、別個の実行権がコプロセッサの永
久メモリ中に暗号キーの形で存在するので、実行権を記
憶するコプロセッサが故障する可能性も考慮しなげれば
ならない。このような故障が生じてもユーザの実行権が
完全に失われるようなことがあってはならない。本発明
はユーザのコプロセッサが故障した場合における実行権
の消失に対してユーザを保護する装置及び方法を与える
。実行権を移動即ち転送する場合と同じように、任意の
ハードウェアのバックアップ技術(コプロセッサの故障
の場合に利用可能になる)は擬似実行権を許容する性質
を持っていてはならない。
本発明のハードウェア・バックアップ方法は実行権を不
当に複製する機会を最小にし、その活動を妨げる。
条件の付された実行権 実行権に条件を付すためには、上記米国特許出願第92
7629号に開示されているシステムに、次のものがな
(ではならない。
(1)アプリケーション・ソフトウェアの実行が完全に
許される(もしくは許されない)条件のステートメント (2)この条件を測定できるある客観的規準(6)条件
と規準を比較して、比較の結果によって実行されるソフ
トウェア・プログラム これ等の目的はユーザもしくはソフトウェアの販売者に
よって特別に許可されていない他人がこの条件もしくは
この条件の満足をテストする客観的規準を変えようとす
る試みに対して安全な方法で満足されなげればならない
本発明に従い、この規準はソフトウェア中に、より具体
的にはアプリケーション・ソフトウェアの保護された、
即ち暗号化部分中に記述される。
上記米国特許出願第927629号に説明されているよ
うに保護されたアプリケーション・ソフトウェアがユー
ザに使用される唯一の形式は暗号形式においてである。
それはユーザはデータ・オブジェクトとして暗号キーに
アクセスできず、保護されたソフトウェアを修正したり
、読取りすらできないからである。保護ソフトウェア内
に実行権の条件を組込むことによって、ソフトウェアの
販売者によって許可されない限りこれ等の条件はユーザ
もしくは他人による変更から安全に保護される。プログ
ラムされた規準に対してテストする条件を保管するため
には、コプロセッサ中の持久メモリ中のある記憶スペー
スを使用する。この記憶スペースはすでに暗号化ソフト
ウェアを解読するのに必要な解読キーを記憶する機能が
割当てられている。従ってソフトウェアの特定の保護さ
れた部分に割当てられている記憶スペースを拡張して規
準とテストされる条件を含めるようにする。
メモリが持久性であるために実行権がコプロセッサ中に
利用可能であるかぎり、この客観的条件も利用可能であ
る。コプロセッサはその物理的に安全な境界内に連続的
に電力が供給される実時間クロックを含むので、時間を
含む規準を使用したい時は、時間情報が利用可能である
。この情報はコプロセッサの持久メモリ中に記憶され、
特定のアプリケーションに割当てられたこのメモリの部
分だけがそのアプリケーションによってアクセスできる
ので、情報はユーザによる修正から安全に保護される。
アプリケーション・ソフトウェアは持久メモリのこの部
分に記憶された条件を変更できるかもしれないが、実時
間クロックの値は変更できない。
たとえば、ソフトウェアはこのメモリ中に保持している
回数を変更することによって回数もしくは総時間がカウ
ントでき、実行の回数もしくは総時間に関連する規準が
もはや記憶した条件を満足しな(なる迄実行できる。
たとえば、ソフトウェアの販売者がユーザにある期限の
日付を超えてはならないという条件付き(たとえば、ユ
ーザは1987年の6月1日迄は保護されたアプリケー
ションを実行できるが、その後は不可という権利を有す
る場合)で実行権を転送したものと仮定する。従ってコ
プロセッサの動作命令はソフトウェア解読キーとともに
最後の許可日付(期限の日付)が記憶できなくてはなら
ない。コプロセッサは実時間クロックを保持しているの
で、解読キーをアクセスする時もしくはアプリケーショ
ンの実行の途中にはいつでも、期限の日付及び現在の日
付が利用できる。この期限の日付けは実時間クロックの
セット時間と同じようにコプロセッサの安全性によって
不法な変更から守られている。ソフトウェアの暗号化部
分(保護部分)は実行が期限の日付けを越えていると使
用できないという規準を記述している。保護ソフトウェ
アが実行される時はいつでも、解読キーと期限の日付け
がコプロセッサの持久メモリからアクセスされる。保護
ソフトウェア中でテストされる規準は期限の日付を現在
の日付と比較することを必要とする。もし現在の日付が
期限の日付を越えていると、保護ソフトウェアの実行は
進行しない。
保護ソフトウェアは又現在の日付が期限の日付を越える
と特定のソフトウェア解読キーを抹消できるように作成
できる。この分野の専門家にとっては期限の日付に代る
条件としてソフトウェアを実行する回数を使用できるこ
とは明らかであろう。
この場合、保護ソフトウェアはソフトウェア解読キーと
ともに現在のデータを記憶する代りに、許可された実行
回数を記述し、許容使用回数を記憶していて、この回数
をソフトウェアの実行のたびにデクレメントする。従っ
て保護部分が許容実行回数を規準と比較して、残りの回
数が0より大きいことを確かめる。許容実行回数が0に
なると、ユーザのソフトウェア実行要求は拒否される(
おそらくソフトウェア解読キーも抹消される)。このよ
うな特定の具体例には経過時間、パスワード及びこれ等
の組合せ並びに他の測定可能な変数を含む多くの変形が
存在することは明らかであろう。
実行権の転送 1人のユーザから他のユーザへの実行権の転送(具体的
にはソース・コプロセッサからシンク・コプロセッサへ
の転送)は頒布セットを再構成することによって達成で
きる。この手順は最初に実行権を獲得した形と実質的に
同じであるボータプルな形に戻す(上記米国特許出願第
927629号参照)。この手順は必然的に実行権をソ
ース・コプロセッサから移動させる。
このトランザクションはユーザがトークン(一種の割印
)の構造に依存してトークンもしくはディスクのいずれ
か及びトークン対(転送セットとも呼ばれる)を得るこ
とを必要とする。これ等のセットはハードウェアの販売
者によって与えることができる。これ等のセット中のト
ークン(即ちカートリッジ)はコプロセッサのハードウ
ェア製造者によってロードされる。ユーザによって使用
される前の転送セットは2つの形で記憶される単一の情
報片であるトークン・データを有する。トークンはハー
ドウェアの販売者によって平文のトークン・データとし
てロードされる。トークンの物理的特性がこの高度に機
密性の情報を不許可の者から保護する。同じデータが共
通スーパーバイザ・キー(c8K)と呼ばれるハードウ
ェアの製造者の秘密のキーによって暗号化されE   
(SK トークン・データ)が発生される。これは転送セットの
ディスク上もしくは(可能な構造になっていれば)トー
クン中に記憶される。E    ()SK −クン・データ)は暗号化されているから、誰もが読取
ることができ、さらにコピーできるようなディスク上に
記憶できる。転送セットはハードウェアの販売者のよう
な信頼の置けるソースによって製造されることが必要で
ある。それは仮にトークンの内容が知られると、他のト
ークンにその知られた内容がロードでき、転送される実
行権が複製されるからである。ユーザが適切な転送セッ
トを獲得したと仮定すると、頒布セットはたとえば次の
ようにしてユーザと彼の複合計算システムによって、頒
布セット再構成(RDS)過程を使用して作成される。
上位計算機上で実行中のユーティリティ・プログラムが
(ソース)コプロセッサにRDSシーケンスが開始する
ことを知らせる。ユーティリティ・プログラムはコプロ
セッサに転送すべきキーの位置を知らせる。コプロセッ
サはインデックス付きキーを除くすべての許可されたキ
ーについてCBS(バックアップ・セット作成)手順を
実行する。CBS手順については後に説明する。この時
点では、CBS手順は存在する任意の71−ドウエア・
バックアップ機構を無効にすると述べてお(たけて十分
である。コプロセッサは転送セットから暗号化されたト
ークン記述子E   (トークSK ンΦデータ)のコピーを要求してこれを受取る。
コプロセッサはトークン記述子を解読して平文のトーク
ン・データを与える。この平文トークン・データは次に
インデックスによって識別されるンフトウェア解読キー
を使用して暗号化され、EAK(トークン・データ)を
発生する。次にコプロセッサはこの暗号化トークン記述
子EAK(トークン・データ)をトークンもしくはディ
スク上の予約された持久メモリ領域中に記憶し、所定の
メモリ位置にあるソフトウェア解読キーAKを抹消即ち
非活性化する。従ってコプロセッサは暗号化トークン記
述子を上位計算機に渡して転送セット・ディスク上に記
憶する。以下説明するように、転送すべきキー(AK)
は実行の条件に関連付けられる。もしこれ等の条件が(
期限の日付のように)不変ならば、暗号化アプリケーシ
ョン・キーは転送セット・ディスクにコピーできる。も
し実行の条件が変ると(使用の残り時間もしくは使用の
残り回数のように)、アプリケーション・キーを含む暗
号化ファイル及び実行の条件はこの条件をリセットする
ことなくしては頒布ディスクからのコピーができない。
トークン記述子ファイルとアプリケーション・キー・フ
ァイルのこの同期は各ファイル中に照応テスト回数を含
ませることによって達成できる。転送の次の段階で転送
ディスク上に記憶させるために暗号化アプリケーション
・ファイルを作成する。この作成は照応テスト回数が乱
数に代る点を除き以下に説明する販売者キー暗号化(E
VK)と同じである。この照応数はトークン・データの
一部であってよい。この作成と転送の後に、上位計算機
中で実行されているユーティリティ・プログラムは転送
セット・ディスクに保護されたプログラムの平文と暗号
文の部分を含む2つのファイルを転送する。ここでこの
頒布セットはこれがソフトウェア解読キーA、 Kで暗
号化された暗号化トークン・データ、平文ファイル及び
同じくソフトウェア解読キーA Kで暗号化された保護
された即ち暗号化ソフトウェア・ファイル並びにハード
ウェアの販売者のキーC3Kによって暗号化されたソフ
トウェア解読キーを含む点で上記米国特許第92762
9号に開示されている頒布セットと同じことがわかるで
あろう。後の3つの要素はもし実行条件が許容されてい
るならば原頒布ディスクもしくはこれ等のファイルのバ
ックアップ・コピーからコピーできる。頒布セットレi
一つの点を除いてすべての点で同じであるから、これは
任意のコプロセッサによって特定の暗号化ソフトウェア
・ファイルを実行する権利を転送するように使用可能で
ある。この頒布セットと実行権を獲得した原頒布セット
間の唯一の差異はトークン・データが異なっている可能
性が極めて大きいことである。しかしながらこのことは
セットの両方の部分(カートリッジ及びディスケット)
が同・−のトークン・データから得られる限り重要では
ない。(ソース)コプロセッサはここで一部メモリから
解読キーAKを抹消する。この時点で実行権はソース・
コプロセッサから抹消され、転送セットだけに存在する
しかしながら、実行権の転送は間接的、たとえば上述の
ように転送子ツlを介して行う必要はない。実行権の転
送は直接的でよく、コプロセッサからコプロセッサへの
通信リンクを使用しても行うことができる。さらにコプ
ロセッサ間の通信リンクは転送される実行権の安全を守
るために保護されている必要はなく、安全は以下説明す
るように暗号化によって保護される。以下の説明ではコ
プロセッサ間の転送について説明するが、コプロセッサ
間の通信リンクは直接でもよ(、双方向データ通信シス
テムを介するものでもよい。1つのコプロセッサから他
のコプロセッサへの実行権の転送は関与する2つのコプ
ロセッサが互ヲ「ファミリのメンバ」として確認でき、
このトランザクションに使用するための一回限りのセツ
ション・キーを発生できるとぎは安全と考えることがで
きる。ファミリのメンバであることの識別は各々の使用
する手順が正しくかみ合い、従って実行権の拡散が生ぜ
ず、他の保護された情報が露顕しないことを保証するた
めに必要である。
、セツション・キーを発生するトランザクションはこの
トランザクションに関与する2つのコプロセッサ・シス
テムに共通な高い特権メモリ中に情報が存在すること、
及びコプロセッサが良い乱数を発生することができる能
力に依存する。セツション・キーを発生する過程は両コ
ブロセツザが必要な前提情報を共通に保持している限り
、トランザクションに関与する両コプロセッサに同じキ
ーを所有させることができる。
相互識別とセツション・キーの発生のトランザクション
は次のように行われる。説明の目的のために、実行権が
あるユーザ、複合計算システムもしくはコプロセッサか
ら転送される時はこのユーザ、ユーザの複合計算システ
ムもしくはユーザのコプロセッサをソース・ユーザ、ソ
ース複合計算システムもしくはソース・コプロセッサと
呼フことにする。実行権が転送されて来る時は、そのユ
ーザ、複合計算システムもしくはコプロセッサをシンク
・ユーザ、シンク複合計算システムもしくはシンク・コ
プロセッサと呼ぶことにする。ソース・ユーザはソース
・コプロセッサにセツション・キーが必要になったこと
を信号する。ソース・コプロセッサはセツション・キー
を発生するのに使用する乱数を発生し、これを他のラン
ダムなビット・ストリングに埋込み、メツセージ確認コ
ード(MAC)を添付する。MACは解読によって復元
した平文メツセージが転送されて来たメツセージに同じ
であることを保証するのに使用できる。
ソース・コプロセッサはこの数をキーC8Kで暗号化し
、暗号化した数をシンク・コプロセッサに送る。シンク
・コプロセッサも同じ機能を遂行してその暗号化乱数を
ソース・コプロセッサに送る。
ソース−コプロセッサは暗号化キー(c3K)によって
受取った乱数を解読する。各コプロセッサが多くのC8
Kを記憶している場合には各コプロセッサは受取った数
を各C8Kによって相継いで、有効なMACが得られる
か、スーパーバイザ・キー(c8K)のコレクションが
尽きる迄解読する。
有効なMACが発見されなかった時は、誤りメツセージ
が戻される。この誤りメツセージの発生はファミリのメ
ンバでないプロセッサがそうであるものとしてそれ自身
を偽装した場合の代表的な結果である。もし有効なMA
Cを得た場合には、2つのコプロセッサ中で発生した乱
数は両コプロセッサ中で組合され、セツション・キーと
して使用される。勿論コプロセッサのための動作命令の
一部は乱数を組合して、セツション・キーを発生する特
定の方法を前もって決定している。ここで、1つの乱数
は他の乱数と連結でき、もしくは排他的にORできる等
々である。
正しいスーパーバイザ・キーの検索において相続く解読
を必要とする手順を避けるために、使用したスーパーバ
イザ・キーのためのインデックスのような位置情報を暗
号化した数とともに送ることができる。しかしながら、
コプロセッサに正しいスーパーバイザ・キーを探索させ
ることを要求する技術には長所がある。暗号化した数と
ともにインデックスされた数を送る手順は傍受者に対し
てスーパーバイザ・キーに関する情報の集まりを増大さ
せる。
セツション・キーが一度発生するト、コプロセッサは実
行権をセツション・キーで暗号化して転送することが可
能になる。この手順を制御するコプロセッサのファーム
ウェアは実行権がソース・プロセッサから抹消されるこ
とを保証する。実行権はソース・プロセッサによって転
送される時に抹消できるが、好ましい技術はシンク・コ
プロセッサが実行権を安全に受取った時にのみ実行権(
ソフトウェア・キー)を抹消すること及びソース・コプ
ロセッサが実行権が非活性化されたことを示す時にのみ
実行権をアクティベートするものである。暗号化されて
転送される実行権は、その暗号化によって傍受者から安
全であり、安全な通信リンクもしくはチャネルを使用す
る必要はない。
直接、即ちコプロセッサ間通信は回路網もしくは本体リ
ンク環境で実行権を移動する方法である。
これ等の場合においてもしくは特定のコプロセッサ中の
特定のアプリケーション中に2つ以上の権利を設定する
ことを含む他の場合には、所与のパッケージ当りの権利
のカウントがソース・コプロセッサのキー記憶領域中に
保持され、すでに受取られている権利の数が頒布されて
来る権利を制限するようにされる。
上述のことから、AKをい(つかの次元(時間、使用回
数等)のAKの寿命の記述に関連付けるのはこの機構の
領域内であることは明らかであろう。
この機構の能力にはソフトウェア販売者によって与えら
れ、コプロセッサによって実行されるソフトウェアの制
御の下にこの寿命を分割し、区分することが含まれるこ
とが明らかであろう。ソフトウェアのライブラリは実行
権の保存を侵害することなく、分散計算システムのユー
ザに利益を与えるこれ等の手段によって分散計算システ
ム中に保持できる。
複数の実行権の転送を必要とする場合には、コプロセッ
サ間の転送は次のように一度セッション・キーが作成さ
れてから行われる。ソース・ユーザはソース・コプロセ
ッサに対しこれ等の実行権(AK)を転送させることを
確認させる。ソース・ユーザはCBS手順(以下定義す
る)を実行し、実行権のバックアップ・セットを更新す
る。次にソースΦコプロセッサはセツション・キーによ
ってソフトウェア・キーを暗号化し、これ等をセツショ
ン・キーとともに一部メモリの予約された位置中に記憶
する。ソース・コプロセッサは各ソフトウェア・キーを
キー・メモリ(永久メモリ)に非活性としてマークし、
暗号化情報をシンク・コプロセッサに送る。シンク・コ
プロセッサは暗号化キーの集りをソース・コプロセッサ
から受取り、これ等をセツション−キーによって解読す
る。シンク・コプロセッサは次にキー・メモリ(永久メ
モリ)に解読したキーを記憶し、これ等を非活性とマー
クし、その上位計算機に位置情報を送る。
この位置情報によってアプリケーションはロード解読実
行手順でキーをアクセスできる。実際に保護されたソフ
トウェアより成るファイルは通常の(非保護の)技術も
しくは装置によって送ることができる。シンク・コプロ
セッサはソース・プロセッサにメツセージを戻して特定
のソフトウェア・キー(単、複)の受取りを示して、ソ
ース・コプロセッサにその一部メモリからこれ等のソフ
トウェア・キーを除去せしめる。ソース・コプロセッサ
がこの除去を確認すると、キーがシンク・コプロセッサ
によって活性化される。
ソフトウェア販売者は実行権の転送が可能なのを欲しな
いかも知れず、それによって販売の条項もしくは条件が
定められることに注意されたい。
実行権の許容可能な移動を制御する条件はAKを獲得し
た手順の1部によってAKと関連して記憶できる。
AKの処遇がユーザによって要求されると、これ等の条
件(フラグ)は、要求された処遇を具体化したコプロセ
ッサ・ファームウェア中に記憶された進行/非進行規準
とテストされる。
実行権のバックアップ 以下説明するバックアップ手順はユーザのコプロセッサ
中に記憶した実行権の集りが、不測の故障、たとえば、
コプロセッサの持久メモリの電源の故障によって失われ
ないことを保証するものである。このAKのバックアッ
プ手順はデータ及びソフトウェアのファイルに適用され
るバックアップ・手順とは区別すべきものである。後者
の手順は完全に通常のもので、一般に知られているもの
であり、このシステム中に存在する時は、これ等の種類
のオブジェクト(平文及び暗号化したソフトウェア並び
に暗号化したアプリケーション・キー)に適用できるも
のである。これ等のオブジェクトの多(の機能的コピー
は任意の認可システムによって使用するために保存され
、損失に対処できるようになっている。これに対し、以
下説明するバックアップ手順の目的は実行権をバックア
ップして、これ等が失われることなく、この種のオブジ
ェクトの多くの機能的コピーが作成できないようにする
ことにある。
このバックアップ手順はコプロセッサ中の不d]1の故
障の影響を免かれるように設計されているので、このバ
ンクアップ手順はプロセッサの外部で十分な情報を作成
できて、完全に有効な実行権を記憶する(ソース)プロ
セッサとは完全に独立に実行権設置できるものでなくて
はならない。このような独立性のために、バックアップ
手順自体が(複製もしくは擬似的の)実行権の可能なソ
ースになる。バックアップ権利の作成の許可はソフトウ
ェア販売者の施策決定による。このバックアップ権利の
作成はソフトウェア、の販売者に損害を与える可能性が
あるが、カスタマの便宜のために与えられるものである
。権利の転送に関してすでに説明したように、ソフトウ
ェアの供給者はバックアップを許可することを望まない
であろう。この販売の条件はAKに関連する非バツクア
ツプ・フラグが存在すると、転送の制御について説明し
たのと同じ機構によって強化できる。このオプションは
実行権が変更できるような場合に望ましい。
バックアップ権の影響を最小にするために、これ等はこ
のシステム中では条件付きにされ、即ち実際に故障した
コプロセッサを有するユーザが例えばハードウェアの製
造者によってこの故障を検査させるに十分長い、適当な
短かい時間間隔の後に切れるようにされる。ハードウェ
ア製造者がユーザのコプロセッサの故障を検査したと仮
定すると、ユーザにバックアップ権に与えられた条件を
除去する追加の手順を遂行する手段が与えられる。バッ
クアップ権の発生と、以下説明する他の能力とを安全に
統合するために、バックアップ権の発生は最初はこの時
未完のまま残されているすべての許容された権利の転送
であると考えるべきである。
転送手順は必然的にバックアップ手順と関連付けられ(
可能な実行権を保持している)ユーザのバックアップ・
セットは完全な転送が行われる時に無効にされる。これ
によって転送された権利が同じように有効なバックアッ
プ中に存在するのが防止される。従って、ユーザはバッ
クアップ手続と関連して次のオプションを有スる。
(1)ユーザの実行権がコプロセッサ上に設置される時
は、ユーザは実際の、但し条件の付された実行権に変換
できるバックアップ・セット(潜在的な実行権の集りを
表わす)を持つことができるか、(2)  ユーザは1
乃至それ以上の実行権を彼のコプロセッサから移動して
これ等を転送セット中ニ設置するか、もしくは直接他の
コシ”ロセツサに転送できるが、この手順は現存のバッ
クアップ虐セットの無効化を必要とする。この条件はユ
ーザの権利と完全に両立する。それは実行権がコプロセ
ッサから除去される時は、権利はバックアップ・セット
に表わされる必要がないからである。明らかに、設置さ
れた実行権の縮小したセラトラ正しく反映したバックア
ップ・セットを転送後に直ちに形成することもできる。
バックアップ権を発生するための手順は単一のバックア
ップ・セットが多(のアプリケーションのために潜在実
行権を保持できる点で包括的である。この手順はユーザ
の実行権の集りが動的であること、たとえばある日の実
行権の集りが他の日の実行権の集りと比較して大きいか
もしくは小さいことを考慮している。これによってバッ
クアップ権も動的であり、ユーザの実行権の集りの変更
を追跡することが要求される。
基本的には、このバックアップ手順は2段階過程であり
、第1段階では、バックアップ・セットが始めて発生さ
れる(バックアップ・セット作成、即ちCBS)。バッ
クアップ・セットは(一群のアプリケーションのための
)実行権の暗号化ファイルを記憶するディスクを含む。
この(ソース)プロセッサに一意的なスーパーバイザ・
キー(USK)も又このファイル中に含まれる。この情
報はハードウェアの製造者が故障の証拠として受取った
時に、故障したプロセッサがこれ等の権利を含むことを
主張できるプロセッサであることを検査させるものであ
る。この集りをコプロセッサに対して有効にするトーク
ンも又このセットの一部である。このファイルを暗号化
するのに使用できるキーはコプロセッサによって、たぶ
ん日付及び時間を一意的なスーパーバイザ・キー(US
K)によって暗号化することによって発生される乱数で
ある。バックアップ・セットのトークンによって有効に
されるのはこの乱数キー(RK)の使用に対する許可で
ある。上述の如く、バックアップφセットは保留中の転
送と考えることができる。
バックアップ過程の第2の段階はバックアップ・セット
設置(IBS)である。この段階ではトークン及びディ
スクより成るバックアップ・セットによって表わされる
潜在実行権がコプロセッサ上に設置される。ユーザはI
BS段階を実行する前の複数の機会にバックアップ手順
のCBS段階を実行する可能性があると考えているので
、バックアップ・セットに使用されるトークンは頒布セ
ットに使用するトークンよりも能力がなければならない
。この能力は新らしいアプリケーションが獲得されるた
び毎にCBS段階を実行するという事実のために必要で
ある。ユーザの現存のバックアップはこの時無効にされ
て、追加的な実行権の発生を防止しなければならない。
従ってこのトークン・データは代表的には頒布セットに
使用できるトークン・データよりもはるかに長く、従っ
てこのトークンの1部が各CBSトランザクションの1
部として読取られ、この結果トークンの内容が変化し、
トークンを完全に放出し尽す過程においてではな(途中
で、前のバックアップ・ディスク・ファイルが無効にな
る。同じトークンがもし必要ならばIBS )ランザク
ジョンに使用できる。
現在はこのようなバックアップ・セットのトークン上に
シフト・レジスタ・メモリを使用せず、メモリはランダ
ム・アクセス・メモリとして設計できることを考慮して
いる。しかしながら以下の説明では簡単のために、上記
米国特許第927629号と同じく、シフト・レジスタ
に基づくが、余分の長さのシフト・レジスタを含むもの
と仮定する。
CBS段階を開始する前に、ユーザはトークンとディス
クより成るバックアップ・セットを入手している。ユー
ザが獲得したディスクは暗号化(された)トークン・デ
ータE    (トークン・SK データ)を記憶している。トークンは獲得した時は平文
のトークン・データを記憶している。
CBS段階は次のように進行する。
ユーティリティ・プログラムがコプロセッサにCBSシ
ーケンスが開始することを知らせる。
コプロセッサはバックアンプ・セットのトークン部分に
対応する暗号化トークン・データを要求して、これを受
取る。
コプロセッサはトークン・データを解読し、使用される
分のトークン・データを選択する。トークン・データの
一部の使用とはトークン・データのこの部分が破壊され
ることを意味する。トークン・データの残りの部分はC
BS手順のその後の実行、たとえばユーザがその後のア
プリケーションを得て、彼がこれをバックアップする権
利を有する時に使用される。
コプロセッサは使用すべきトークン・データの長さに等
しい長さの乱数を発生し、この乱数を使用してトークン
を読取る、即ち照合して、トークンの応答を得る。コプ
ロセッサはすでに平文のトークン・データ及びこれが発
生した乱数が利用できるので正しい応答を予測即ち計算
できる。トークンの計算された応答と実際の応答が比較
される。
もし比較がトークンの実際の応答と計算した応答が一致
しないことを示すと、無効のトークンが提示されたこと
になり、誤りメツセージが戻され、このシーケンスは終
る。しかしながら計算した応答と実際の応答が一致する
と、トランザクションは継続する。バックアップ・トー
クンを読取る、即ち照合することによって、その中に含
まれるトークン・データが変更される(検査されるだけ
でなく)。トークン争データの変更によって前のバック
アップのすべてのコピーを無効にする。従っ度に使用さ
れる部分のビット長で割った値の回数使用されるに過ぎ
ない。トークンがもう1回トランザクションを行うのに
十分なだけのデータを含む時は、このデータが読取られ
て破壊され、新らしいバックアップ会トークンを開始で
きる。
このトランザクションの残りについては、コプロセッサ
中で使用する暗号システムは任意の数字を有効なキーに
することができるものと仮定している。従って乱数は有
効なキーである。この性質はDESシステムの特徴であ
る。
トークンの確認を検査した後、コプロセッサは第2の乱
数でトークン・データの残りの未使用の部分、そのキー
・メモリの許容部分及びそのソース・プロセッサを識別
する一意的なスーパーバイザ・キー(USK)を暗号化
する。上述のように暗号化されたブロックは次にディス
ク上に記憶できる。このファイルはバックアップ設置手
順のために使用できる。
上述の暗号化キーとして使用できる乱数のコピーはここ
で暗号化販売者キー手順を使用してスーパーバイザ・キ
ーによって暗号化される。このデータはここでバックア
ップ・ディスク上に記憶できる。
これ等のファイルは保護されるソフトウェアがコピーで
きるのと同じように、無限回コピーできる。しかしなが
ら、このファイルはトークンとともにだけ使用でき、従
ってトークンが途中で読取られない場合だけ使用できる
。すでに説明したように、その後の転送動作はトークン
を無効化できる。ユーザがCBS段階の最後の実行中に
発生されたファイルの両方及び中間で読取られていない
トークンにアクセスしたものと仮定して、バックアップ
・セット設置段階を説明する。
さらに、中間に、ユーザのコプロセッサ、即ちソース中
コプロセッサが故障したが、ユーザは他の(シンク)コ
プロセッサが利用できるものと仮定スる。バックアップ
eセット設置手順はシンク・コプロセッサ上にユーザの
ソース・コプロセッサ上に(バックアップの許可される
程度に)存在した実行権のすべてを設置できる。しかし
ながら、ソフトウェアの販売者を保護するために実行権
の全集りが許可期間によって条件付けられる。許可期間
中に、実行権の各々は動作できるので、ユーザは彼の(
ソース)コプロセッサ中でこれ等を使用できる。許可期
間中に、ユーザは彼の故障した(ソース)コプロセッサ
をハードウェア販売者に戻すことができる。ハードウェ
アの販売者は、コプロセッサが実際に故障したことを検
査した後、(シンク)コプロセッサに(ソース)コプロ
セッサが故障しているので実行権についての許可期間の
条件を引上げることができることを確認させる暗号化し
たメツセージを有するディスクをユーザに与える。従っ
てIBS段階は2つのサブ段階を含む。第1のサブ段階
は実行権を(シンク)コプロセッサに設置する。これ等
の実行権を設置する時に、これ等は条件が付されて、許
可期間が切れると無効になることを示す。IBS段階の
第2のサブ段階は実行権についての条件をハードウェア
販売者から獲得したディスクを使用することによって除
去する。
次にIBS段階は次のように進行する。
ユーティリティ・プログラムがシンク・コプロセッサに
IBSシーケンスが始まろうとしていることを知らせる
。最初コプロセッサにはバックアップ・ファイルを暗号
化するのに使用する暗号化乱数キーを要求して、これが
送られてくる。このキーは適切なC8Kによって解読さ
れる。次にコプロセッサは暗号化バックアップ・ファイ
ルを要求して、それが与えられる。暗号化バックアップ
・ファイルは暗号化したトークン・データ、(ソース)
コプロセッサからのキー・メモリの内容及びソース・コ
プロセッサの一意的なスーパーバイザ・キーを含む。
(シンク)コプロセッサは前の段階で見出した乱数キー
を使用してバックアップ・ファイルを解読し、トークン
・データを取出し、トークンを検査する。トークン検査
は頒布セットの検査と同じ(進行する。即ち検査はトー
クンの内容を変更する。この結果、トークンはIBS手
順を一回だけ遂行するのに使用できる。トークンが有効
であると仮定すると、バックアップ実行権のセットが(
シンク)コプロセッサの永久メモリ中に許可期間7の範
囲を決定する〆切りの日付とともに設置される。
ここで(シンク)コプロセッサによって両コプロセッサ
の一意的なキーのコピーを含ムメッセージが準備される
。このメツセージは故障したソース・コプロセッサとと
もに戻され、ハードウェアの条件引上げメツセージはシ
ンク・コプロセッサによってシンク・コプロセッサに向
けられたものであること、及び特定のソース・コプロセ
ッサの実行権のセットのためのものであることが識別さ
れる。
この点で、(シンク)コプロセッサはすべての実行権が
〆切りの日付について条件付けられた点を除き、(ソー
ス)コプロセッサが最後にバックアップされた時と同じ
条件にある。ユーザがハードウェア販売者から許可期間
内に検査ディスクを受取ったと仮定すると、IBS段階
の第2のサブ段階は次のように進行する。
ユーティリティ・プログラムは(シンク)コプロセッサ
にIBSシーケンスが完了しようとしていることを知ら
せる。(シンク)コプロセッサは検証ファイルを要求し
、これを受取ってこれをスーパーバイザ・キー(シンク
のUSK)によって解読する。もしファイルが(ソース
)コプロセッサを識別する一意的なキーを含むならば、
条件が引上げられる。もしファイルが(ソース)コプロ
セッサの一意的キーを含まない時は、誤りメツセージが
戻され、サブ段階は完了する。
プロセッサ間通信によるバックアップ 前の章では、ハードウェア・バックアップはともに拡張
トークンに依存するCBS及びIBS手順より成るもの
としてハードウェア・バックアップを説明した。しかし
ながら、トークンもしくは拡張トークンの使用はハード
ウェア・バックアップにとっては不可欠でな(、中間の
コプロセッサが先ずソース・コプロセッサと(cBS手
順のために)通信し、次にシンク・コプロセッサと(よ
りS手順のために)通信できるように配列できる限り、
ハードウェア・バックアップの目的のために、トークン
もしくは拡張トークンに代って中間のコプロセッサが使
用できる。
ハードウェア・バックアップ手順のプロセッサ間型の変
形について説明する。
この説明の目的のために、ソース−コプロセッサは中間
のコプロセッサと通信するものと仮定する。コプロセッ
サは最初送信するコプロセッサが選択したスーパーバイ
ザ・キーによって各々暗号化した暗号化乱数を交換する
。既に説明したように、コプロセッサの各々は最初は使
用された特定のスーパーバイザ・キーを知らないにもか
かわらず、他のコプロセッサによって転送されてきた暗
号化乱数を解読して認識できる。受信するコプロセッサ
の各々は暗号化乱数を成功裡に解読したと仮定すると、
これ等はこれ等の平文乱数を組合してセツション・キー
を発生し、その後の通信に使用する。
次にノース・コプロセッサはその永久メモリからアプリ
ケーション・キー(AK)即ちバックアップされること
が求められているキーを引出し、このキー情報及びその
USKをセツション・キーによって暗号化して暗号化キ
ー・ブロックを発生する。これはバックアンプ・ディス
ク上に記憶される。セツション・キーは中間のコプロセ
ッサによって、このキーがバックアップ・セットに対応
することを示す記述子とともにその安全なメモリ中に記
憶される。この時点で、中間のコプロセッサはバックア
ップされつつぁるAK(単もしくは複数)にアクセスす
るのに必要なキーを所有するが、このコプロセッサが信
頼性のある受取り手でない場合は偽の実行権を発生でき
る。しがしながら、上述の識別化手順によってソース・
コプロセッサには中間コプロセッサが一族のメンバであ
ることが知らされている。そのようなファミリのメンバ
として、中間のコプロセッサの論理及び物理的安全性が
転送されて来た実行権を偽の複製もしくは使用から防止
する。実際の暗号化アプリケーションは通常の手段によ
ってIBS手順のために中間のコプロセッサに送ること
ができる。
もしその後ソース・コプロセッサに中間のコプロセッサ
を介してバックアップされている実行権を転送するよう
に要求されると、上述のようにソース・コプロセッサが
中間のコプロセッサと通信してバックアップ権を無効に
する迄はトランザクションは生じない。このような通信
は3つの主要部分を有するだけである。第1の部分はす
でに説明された識別子シーケンスである。これによって
ソース及び中間のコプロセッサはこの通信の当事者が実
際に一族のメンバであるという条件が満足される。第2
の部分はソース・コプロセッサからの中間のコプロセッ
サへの、バックアップ権のキーの無効を要求するメツセ
ージの転送である。第3の部分は、自分がバックアップ
権を記憶する真の中間のコプロセッサであり、権利が無
効にされたことを示す中間のコプロセッサからの返答で
ある。中間のコプロセッサ中に記憶されているバックア
ップ権はIBS手順を使用して中間のコブロセッサ中に
設置できるか、もしくは異なる(シンク)コプロセッサ
中に設置される。バックアップ権が中間のコプロセッサ
中に設置される場合には、この動作は中間のコプロセッ
サに関連する上位計算機を介してユーザによって容易に
行われる。この権利はトークンを必要とすることなく設
置できるが、すでに説明したように、これ等の権利は許
可期間によって条件が付されている。
中間のコプロセッサを使用するIBS手順が遂行される
場合には、両コプロセッサは先ずセツション・キーを確
立することによってファミリのメンバであるとして相互
のアイデンティティを確立する。次に乱数キーがセツシ
ョン・キーによって暗号化され、シンク・コプロセッサ
に転送できる。
シンク・コプロセッサがこのようにして許可され、許可
期間を有するバックアップ実行権のセットが設置でき、
上述のようにハードウェアの製造者のためのメツセージ
が準備される。
販売者のキーの暗号化 本明細書及び上記米国特許第927629号に説明され
ているように、コプロセッサは又ソフトウェア解読キー
(AK)を暗号化するというサービスをソフトウェアの
販売者に与える。全ソフトウェアのコピー防止システム
によって与えられる保護にとっては、ソフトウェアの販
売者の解読キーを暗号化するのに使用するスーパーバイ
ザ・キー(c3K)が秘密に保持されることが重要であ
る。ソフトウェアの販売者にコプロセッサの使用と無数
のキーを暗号化する能力を与えると、ソフトウェアの販
売者はハードウェアの販売者の暗号キー(c8K)に通
常行われている選択された平文(を求める)侵害を試み
ることができる立場になる。ソフトウェアの販売者がノ
・−ドウエアの販売者のキー(c8K)を知ることかで
きると、そのソフトウェアの販売者はこれ等のキーを使
用して他のソフトウェアの販売者の暗号化ソフトウェア
を侵害することができる。選択された平文を攻略するに
は、侵害者が対応する平文及び暗号テキストのセットに
アクセスできることが必要である。
これ等セットを使用して、侵害者は平文から暗号テキス
トを作成した、もしくは逆の解読に使用するキーを識別
しようと試みる。この試みの困難さは、もちろん、選択
した暗号システム及びバックトラック・タスクに利用で
きる計算能力による。
ある暗号システム(DESのような)は非限定回数試み
られる平文攻略に極めて抵抗性がある。
平文の攻略に対するコプロセッサの使用についての第1
の制約では、コプロセッサはソフトウェアの販売者がハ
ードウェアの製造業者からの許可を求めて実行権を発生
するようになっている。この許可はハードウェアの販売
者に上ってソフトウェアの販売者に販売されるようにな
っている。従って、平文の攻略に対するコプロセッサの
ソフトウェアの販売者についての1つの制約は、平文及
び対応する暗号テキストのセットの発生に支払われる経
済的コストである。他の技術は次の販売者キー(EVK
)手順の使用である。
ユーティリティφプログラムはコプロセッサにEVKシ
ーケンスが開始しようとしていることを知らせる。コプ
ロセッサは暗号化すべきキー(AK)、代表的にはソフ
トウェア販売者のキーヲ要求して、これを受取る。キー
はソフトウェアの販売者によってスーパーバイザ・フラ
グの所望のセット値とともに与えられる。これ等のフラ
グはスーパーバイザが(たとえば)関連キーのバックア
ップもしくは転送を許容するかどうかを制御するもので
ある。
アプリケーション・キーによって検査されるか変更され
る(あるいはこの両方を行う)実行の条件も与えられる
。次の説明でAKはこの過程による転送に準備された全
データ(フラグ、キー及び条件)をさすものとする。
コプロセッサは乱数(RN)を発生しこれをキーAKの
前端に埋込む。コプロセッサはキーの後端に認識フラッ
グ(RF)を埋込む。上述のように、RFは正しいC8
Kが(解読中)に使用されたことを検査し、コプロセッ
サによって正しい暗号システムが使用されたことを検査
するのに適した任意のMACでよい。乱数及び認識フラ
グはユーザ、たとえばソフトウェアの販売者には知られ
テイナい。コプロセッサは結果のブロックをスーパーバ
イザ・キー(c3K)・によって暗号化し、この結果を
ユーティリティ・プログラムに渡す。
この結果、E    (RN 1A K s RF )
はC8SK Kを知っている任意のコプロセッサによって解読できる
。ここで[、]はストリングの連結を示す。
即ち01.111はストリング01111を生ずる。解
読の結果のRN、AK%RFは3つの要素、乱数(RN
)、解読キー(AK)及び認識フラッグ(RF)を含む
。解読コプロセッサはサフィックスの認識フラッグの長
さに先ずアクセスできる限シ常にAKを識別できる。乱
数の埋込みによって、たとえ同じキー(AK)が多数回
提示されたとしても、結果のブロック及び暗号化の結果
が異なるので、弔文の攻略を妨害することができる。
EVK手順は解読コプロセッサが認識フラッグ(RF)
を先に知っている限り、又すべての可能なC3KO先験
知識を有する限り、特定のC3Kの先見知識がなくても
暗号化ブロックを解読できるという他の利点を有する。
さらに具体的に、各コプロセッサにはハードウェアの販
売者によってC3K1−C8K5が与えられているもの
とする。
もし暗号侵害を避けるための適切な手段をさらに与えた
ければ、使用される認識フラッグ(RF )は常に暗号
キー自体であると仮定することができる。これ等の手段
はブロック暗号化の場合はRNがブロックの長さの整数
倍でないものとする。さらに暗号化に使用するコプロセ
ッサは特定のソフトウェア・キーAKを暗号化するのに
ランダムにCS K 3を選択したものとする。従って
暗号化ブoツクはE。8に3 (RNlAK、C3K3
)となる。C3K1−5にアクセスできる任意の他のコ
プロセッサはたとえキーC3KI−5のウチノどれが使
用されたかを知らなくてもこのブロックを正しく解読で
きる。コプロセッサは唯キーC3K1−5の各々で暗号
化ブロックを解読するだけでよい。唯1つの場合にだけ
、平文版はサフィックスとして実際に使用する解読キー
を含んでいる。
仮想キー・メモリ 本明細書及び上記米国特許出願第927629号に説明
されているソフトウェア保護機能の実際の具体化には、
コプロセッサの実行権を記憶する能力にある制限を与え
られなげればならない。ユーザがコプロセッサ中に記憶
できる数よりも多くの実行権を受取った場合には、ユー
ザはめったに使用しない実行権を転送トランザクション
によって移動可能な形に変換して戻すことができる。こ
し等の方法によるコプロセッサへのAKのスワップ°イ
ン及びスワップφアウトの動作はユーザの負担になるこ
とが容易に明らかであり、このような保護機構の精神に
反する。しかしながら、コプロセッサにリソースを与え
ると、この問題を克服するのは容易である。
最も簡単な場合、AKはソフトウェアの一部のサービス
にアクセスできる権利を表わす。この概念をわずかに拡
張すると、メタAK(MAK)は実行権の集りをアクセ
スする権利を表わすものとできる。このキーの種類はす
でに制限的な形でバックアップ・トランザクションに使
用するR Kもしくはランダム・キーに見られる。
ユーザがそのコプロセッサのすべてのキーの位置を充満
し、さらにもう一つを設置しようとしたとすると、コプ
ロセッサはユーザにシステム−ディスク(ハード・ディ
スクもしくはフロッピー−ディスク)上にキーのファイ
ルを開始させるオプションを与えることができる。この
仮想キーの集りは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 実施例 El ソフトウェア資産保護機構 参照文献として、前記米国特許出願第927629号及
び第927297号(トークンの実施例)があげられた
。米国特許出願第927629号は基本的なソフトウェ
ア資産保護機構を開示している。この機構を簡単に第2
図関連して説明する。
ソフトウェア資産保護機構はユーザにある通信リンクも
しくは経路14を介して接続した上位計算機10及びコ
プロセッサ20を含む複合計算システムの使用を要求す
る。米国特許出願第927629号に説明したように、
経路14はたとえば上位計算機10とコプロセッサ20
の両方を含むカバー内に封入された内部バスでもよ(、
コプロセッサ20内に含まれるI10装置と上位計算機
10に関連する工10装置間のリンクでもよい。リンク
14の特定の性質にかかわらず、コプロセッサ20には
ユーザもしくは侵害者によるコプロセッサ20の内部へ
の機械的干渉もしくはアクセスを防止する効果のある物
理的安全性が与えられている。この物理的安全性は内部
の破線の境界によって第2図に示されている。コプロセ
ッサ20の2つの重要な機能部分は永久(持久)メモリ
25及び一時メモリ26である。後者は通常の計算機の
作業メモリ(RAM)と同種のものである。コプロセッ
サ20は永久メモリ25中に少なくとも1つの解読キー
C8Kが記憶された形でユーザに与えられる。解読キー
C8Kはコプロセッサ20の販売者によって与えられ記
憶される。ユーザが保護されたアプリケーションを実行
するためには、このアプリケーションを実行する権利を
永久メモリ25中に設置しなくてはならない。この実行
権はソフトウェア解読キーAKによって表わされる。
上記米国特許第927629号に説明されているように
、ユーザは実行権を設置するために、ソフトウェアの販
売者からハードウェア・カートリッジ30及び頒布ディ
スク16を含む頒布セットを受取る。第2図に示したよ
うに、頒布ディスク16は3つのファイルを代表的には
記憶している。
1つのファイルは保護されたアプリケーションである。
代表的な場合、保護アプリケーションは2つのサブ・フ
ァイル中の2つの部分、即ち平文アプリケーション・フ
ァイルAと暗号化された即ち保護された部分アプリケー
ション・ファイルBより成る。第2図に示すように、ア
プリケーション・ファイルBはソフトウェア解読キーA
Kによって暗号化されている。頒布ディスク16の第2
のファイルはキーC8Kによって暗号化されたソフトウ
ェア解読キーAKである。最後に頒布ディスク上の最後
のファイルはソフトウェア解読キーAKによって暗号化
されたトークン・データT1である。上記米国特許出願
第927629号に開示されているように第6のファイ
ルはかならずしも頒布ディスク16中に組込まれている
必要はなく、ハードウェア・カートリッジ3o中に組込
まれてもよい。
ハードウェア・カートリッジ6oは平文形でトークン・
データT1を記憶している。コプロセッサ20と同じよ
うに、ハードウェア・カートリッジ60は物理的安全性
が与えられている。実行権を設置するために、ハードウ
ェア・カートリッジ30は組合せ計算システムに結合即
ちリンクされる。第2図は接続ケーブル18によるこの
結合を表わす。コプロセッサ20は一部メモリ26中に
ある暗号化したソフトウェア解読キーAKを解読する。
ソフトウェア解読キーAKを永久メモリ25に受入れる
前に、コプロセッサ2oはハードウェア・カートリッジ
50が偽造防止性のある照合/応答トランザクションで
確認されたものであることが検査される(その内容T1
は暗号化ファイルEAK(T1)に対応する)。ハード
ウェア・カートリッジ60は読取り後に破壊されるので
、まだ使用されていない時はトークン・データT1を含
むだけである。ハードウェア・カートリッジ60が確認
されたものであり、未使用であることを検査しくこの過
程でハードウェア・カートリッジの有用性を破壊した)
後に、コプロセッサは実行権を受取り、その永久メモリ
25中にソフトウェア解読キーAKを記憶する。ソフト
ウェア解読キーAKにアクセスすることによって、保護
されたアプリケーション・ファイルBが解読でき、コプ
ロセッサ20の一部メモリ26中に記憶サレ、コプロセ
ッサ20によって実行できるようになる。
物理的及び論理的安全性のために、アプリケーション・
ファイルBは実行過程中に平文形で一時メモリ26中に
記憶されるが、ユーザもしくは侵害者に利用されること
はない。
E2 実行権の制約 上述のように、ソフトウェア資産保護機構はコプロセッ
サ20中に制約のない実行権を設置している。しかしな
がら本発明の特徴の1つは実行権に条件を付けることで
ある。その例は期限の日付及び時間もしくは実行の回数
である。第1図は第2図と似ているが、第1図ではアプ
リケーション・ファイルの保護部分が実行の規準、たと
えば期限の日付もしくは時間が現在の日付けの前ならば
実行を許可するという規準を含んでいる。第1図に示し
たように頒布セットを上位計算機10及び=+ 7’ロ
セツサ20より成る複合処理システムに提示すると、実
行権の設置は正確に第2図に関連して説明したのと同じ
ように、コプロセッサ20は上位計算機10の仲介によ
ってトークン60の平文の内容(T1)をディスク16
から読取ったファイルEAK(TI)の解読板とを比較
することによってトークン60を検査して(破壊する)
トークン30の確認及び未使用なことを検査した後、コ
プロセッサ20は永久メモリ25中にソフトウェア解読
キーAKを読取る。実行の条件はAKと同じファイル中
に記憶でき、AKと同時に設置される。第1図の場合に
は、コプロセッサ20は期限の日付、もしくは時間(あ
るいはこの両方)として解釈できるデータを記憶してい
る。この解釈は任意の使用時にそのアプリケーションの
保護部分によって遂行できる。期限の日付メモリは第6
図に示したようにソフトウェア解読キーAKと関連して
いる。具体的に説明すると、第3図はソフトウェア解読
キーAK及び期限の日付もしくは時間がコプロセッサ2
0の永久メモリ中に記憶されていて、トークン60が削
除されている点を除き第1図と全く同じである。その後
、保護アプリケーションがコプロセッサ20上で実行さ
れるたびに、実行の許可の前に、アプリケーションは暗
号化アプリケーション・ファイル中に現在の日付もしく
は時間が期限の日付もしくは時間よりも遅くてはならな
いと述べである規準を使用し、規準を満足した場合にの
み実行が許可される。現在の日付もしくは時間はコプロ
セッサ20による要求によって実行中のアプリケーショ
ンに供給される。
第4図は暗号化アプリケーション・キー・ファイル中に
述べられている規準が許可される実行の残り回数を与え
ている点を除き第6図と類似している。実行権の設置に
より、ソフトウェア解読キーAKはカウントCと関連し
、アプリケーションの実行が要求されるたびに、カラン
)Cの内容が残された許可実行回数Cが0より大きいと
いう規準に対してテストされる。次にカウントCが1だ
け減少される。Cが0より大きい限り実行は許可される
制約が期限の日付であるか時間であるか、もしくは実行
の回数であるかにかかわらず、コプロセッサ20には最
初に定めた条件がもはや満足しなくなった時に関連ソフ
トウェア解読キーAKを抹消する命令を与えることが望
ましい。従ってソフトウェア解読キーは永久メモリから
自動的に除去され、実行権が削除される。
E3 実行権の転送 第5図、第6図及び第7図は実行権の転送を説明するた
めのものである。第5図に示したように、コプロセッサ
2oはその永久メモリ25中にソフトウェア・キーAK
の形で特定の保護アプリケーションを実行する権利を設
置している。ユーザは実行権を転送するために、転送セ
ットを得る。転送セットはトークン4o及び付帯ディス
ク46を含む。トークン40はコプロセッサツバ−トウ
エア製造者のような信頼のおけるソースによってトーク
ン・データT2がロードされていて、ディスクはハード
ウェアの販売者のキーによって暗号化されたトークン・
データが書込まれ、従ってディスクはファイルEC8K
(T2)を記憶している。
ユーザは又第5図中に列挙されているファイルを含む原
型のソース・デスク16が利用できる。
第6図は転送シーケンスの第1の段階の後のこれ等の部
品の条件を示す。さらに具体的には、転送セットのディ
スク46が読取られ、その内容が解読され、コプロセッ
サ2oがその一時メモリ26中にトークン・データT2
を記憶できる。転送されるべきソフト解読キーAKは永
久メモリ25から一部メモリ26に移動される。
転送シーケンスの次の段階はキーRKによってトークン
記述子T を暗号化してERK(T2)を求めること、
ディスク46上に多数のファイル、即ちアプリケーショ
ン・ファイルA(平文)、暗号化アプリケーション・フ
ァイルEAK(アプリケーション・ファイルB)、ソフ
トウェア解読キーEo8K(AK)(必要ならば上述の
ようにして準備される)及び暗号化トークン・データE
AK(T2)を書込むことである。従って第7図に示し
た、2つの段階の終りには転送セットのディスク46は
ユーザがすでに取得していた原型のディスク16と略同
じものになる。異なる点はディスク46と16上では(
暗号形で存在する)トークン・データが異なること、(
カウントのような)実行条件が変った時に、新らしい暗
号化アプリケーション・キーΦファイルE    (A
K)が使SK 用されることである。このファイルは上述の同期機構に
よって、新らしいトークンに関連付けられる。従って転
送は侵害的手段によって行なわれると無用のものになる
。勿論コプロセッサ20上に実行権を設置する時には、
ユーザはトークン・データT1を含む彼のトークンが使
用済であるので(従って無効化しているので)、原型の
ディスク16上のファイル・セットを使用して他のコプ
ロセッサ中に実行権を設置できない。しかしながら、デ
ィスク46はユーザが現在所有するトークン40に対応
する暗号化トークン・データを含んでいる。従ってユー
ザは保護されたアプリケーションを他のコプロセッサ上
に保護アプリケーションを実行する権利を設置する立場
にある。同時に前にソフトウェア解読キーA K f記
憶していた元のコプロセッサはもはやこのキーを記憶し
ていないことに注意されたい。従って保護アプリケーシ
ョンを実行する権利はコプロセッサ20からカートリッ
ジ40及びディスク46を含む頒布セットによって表わ
されたポータプルな形に移されている。
ディスク46及びカートリッジ40を含む転送セットは
異なるコプロセッサ上に保護アプリケーションの実行権
を設置するのに使用できるが、実行権のための外部メモ
リの形として利用できる。
たとえば、ユーザは望むときに実行権を、最初にこれを
引出したコプロセッサ20に戻すことができる。
コプロセッサからコプロセッサへの実行権の転送を第1
9図及び第1表に示す。第19図はソース複合プロセッ
サが上位計算機10及びコプロセッサ20を含み、シン
ク複合プロセッサはシンク上位計算機110及びシンク
・コプロセッサ120を含む。第19図に示したように
、ソース・コプロセッサは転送さるべき実行権(AK)
を含む。
一般に両コプロセッサは同じスーパーバイザ・キーの集
り(c8K)を含んでいるので、−膜化するために、第
19図はソース・コプロセッサは以下の過程でスーパー
バイザ・キーC3KIを使用し、他方シンク・コプロセ
ッサ120は異なるスーパーバイザ・キーC3K2を使
用するものとする。どちらのコプロセッサも他方のコプ
ロセッサがどのスーパーバイザ・キーを使用するかをあ
らかじめ知っていなし・ものとする。ソース及びシンク
・コプロセッサは通信リンク200を介して相互接続さ
れている。
上述のように、一度通信を確立すると、コプロセッサは
識別子シーケンスを開始してそれ等自身が他方を一族の
メンバであることを確かめる。この過程のあらましを述
べた第1表の段階1では、各コプロセッサは乱数を発生
し、従ってソース−コプロセッサはRNlをシンク・コ
プロセッサはRN2を発生する。段階2で乱数の各々は
各コプロセッサによって独立に選択されたスーパーバイ
ザ・キーによって暗号化され、暗号化した情報を転送し
て、段階3でシンク・コプロセッサ12゛0はEcsK
l(RNl)、ソース・コプロセッサ20はE    
(RN2)がアクセスできるようSK になる。上述のように、ファミリのメンバだげが転送さ
れて来た乱数を解読して認識できる。ソース及びシンク
・コプロセッサは一族のメンバと仮定したので、各々は
送信されたメツセージを解読でき、従ってその後側コプ
ロセッサはRNl及びRN2が利用可能になる。すでに
説明したように、セツション・キーSKは両方の乱数の
合成であるから、第1表の段階4で各コプロセッサは独
立に同じセツション・キーSKを決定できる。
第   1   表 ソース・コプロセッサ       シンクeコプロセ
ッサ(1)RNI              RN2
(21E     (RNl)→ ←E     (R
N2)C8KI             C3K2(
3)E    (RN2)     EosKl(RN
l)5K2 (4)SK=RN1・RN2       RNl・R
N2=SK(5)ESK(AK)→     E B 
K (AK )(6)              ←
”5K(AK)の受取証(力AKの抹消 (8)AKを抹消したー〉 (9)                 AKをアク
ティベートその後ユーザが転送さるべき実行権(AK)
を識別した後、ソース・コプロセッサはセツション・キ
ーSKによって実行権を暗号化し、これをシンク・コプ
ロセッサに転送する(段階5)。この時点でシンク・コ
プロセッサ120は実行権AKにアクセスできるが、ま
だ実効はない。この実行性ノ欠如はコプロセッサの各々
に課せられる信頼のおける安全手順たよって強請される
ものである。
シンク・コプロセッサはメツセージをソース自コプロセ
ッサに戻しく段階6)、実行権の受取りを示す。これに
よってソース・コプロセッサは実行権を抹消できる(段
階7)。最後にソース・コプロセッサはメツセージをシ
ンク・コプロセッサに転送し、実行権が抹消されたこと
を示す。この後初めて、段階9でシンク・コプロセッサ
は実行権をアクティベートできる。
実行権もしくは実行権の集りの直接転送について説明し
たので、ネットワーク中の計算機間のライブラリ型のソ
フトウェア頒布のための安全な手順を説明することは簡
単な拡張である。すでに説明した理由のために、保護ソ
フトウェアは上述のように各々上位計算機(たとえばp
c)及びコプロセッサより成る複合計算システムに頒布
できるだげである。たとえネットワーク中の関与システ
ムの一部が上述のような複合計算システムでない場合で
も保護が守られることは明らかである。このような介入
システムが存在しても保護されたソフトウェアは簡単に
これ等には利用できない。このようなネットワークでは
、このような複合計算システムの任意の対間ですでに説
明した手順によって実行権を安全に転送できる。転送が
観測(及びコピー)されるということはすでに説明した
理由で重要でない。実行権の転送を観測する者は往復す
る暗号化メツセージを単に観測するだけであす、スーパ
ーバイザもしくはセツション・キーにアクセスできない
ので、安全は任意のメツセージを解読もしくは読取るこ
とができないことによって保護される。このようなネッ
トワーク中では、ソースが代表的には単一の保護アプリ
ケーションのための重複実行権を含む多くの実行権を利
用できるという意味で1つもしくはそれ以上のソフトウ
ェア・ソースが存在する。明らかにこのようなソースは
実行権を多くの他の複合計算システムに転送できる(ソ
フトウェア・フラグが転送を可能にすると仮定している
)。実行権が転送される度に、ソースの権利の集りは転
送された権利の分だけ減少し、権利が戻されるたびに、
ソースの権利・の集りはこの戻りによって増加する。任
意のソースの永久メモリは常に利用可能な権利のカウン
トを保持し、利用可能な権利の1つもしくはすべてが転
送される度に内容が変更できる。ソースはたとえば、被
転送ユーザが転送のために払出される口座をもつべきこ
とを規定するように転送される権利を条件づげできるこ
とか明らかである。転送される権利は又使用時間もしく
は使用回数等によって条件付けることができる。ある場
合、たとえば転送される権利に条件が付せられていて、
将来のある日付に時間切れになっている場合には、ソー
スは前提としている転送トランザクションの日付が過ぎ
るとその実行権の集りをインクレメントできるようにな
っている。換言すると、転送できる権利が条件付けられ
ていて、特定の日付けに消滅するようになって℃・るの
で、ソースにとっては実際の転送が生じなかった場合で
も、その特定の日付の後に、前に転送した権利を再獲得
することは適切である。ソースは又実行回数によって測
られる利用可能な権利のカウントを保持でき、勿論この
ようなソースはこのような権利の集りの全部もしくは一
部を1回もしくは多数回のトランザクションで転送でき
る。又これ等の権利の一部は戻すしてソースの集りを増
すことができる。
任意の転送トランザクションで、コプロセッサからコプ
ロセッサに実際に転送される唯一の必要なデータは暗号
化キー(及び関連フラグ及び条件)であり、保護ソフト
ウェア自体、暗号化テキスト及び平文の部分はともに、
通常の手段によって転送できる。もし効果的ならば、す
べての複合計算システムは保護ソフトウェア(暗号化形
式)のすべて(もしくは一部)にアクセスできるように
なっていて、キーだけを転送すればよいようにすること
ができる。転送しなげればならないソフトウェアはキー
が転送されるのと同じネットワークを介して転送できる
。これに代って、ソフトウェアは郵便のような他のネッ
トワークによって転送できる。
E4  実行権のバックアンプ 以下の説明で、しばしばトークンの読取りについて言及
するが、トークンを記憶するハードウェア・カートリッ
ジの構造及びこれが読取られる方法については上記米国
特許出願第927629号及び第927297号に説明
されている。
全バックアップ・シーケンスは故障コプロセッサを前提
とし、実行権を異なるコプロセッサ上に実行権を設置す
るので、故障コプロセッサをソース・’:j 7” O
セッサと呼び、異なるコブロセッサヲシンク・コプロセ
ッサと呼ぶことにする。
ソフトウェア解読キーAKの形の実行権がすでに(ソー
ス)コプロセッサ2o中に記憶されているものとする。
コプロセッサ20は固有的な特徴を有するが少なくとも
1点、即ち故障し得る点で任意の他のプロセッサと似て
いる。現在のソフトウェア頒布技術では、ユーザはプロ
セッサが故障した時に、ソフトウェアが実行できなくな
るが、実行能力は故障プロセッサを修理するか、代りの
プロセッサを使用することによって再び獲得できる。し
かしながらコプロセッサ2oの場合には、装置が故障す
ると、その中に記憶していた実行権が完全に永久に破壊
される。従って、ソフトウェアの販売者は顧客に実行権
のハードウェアの形のバックアップ(予備)を与えるこ
とを望む。本明細書で説明されるハードウェア・バック
アップは実行権の安全性に最小の影響を与えるように、
たとえば偽造もしくは複製の実行権の回数及び持続時間
を制限するようになっている。説明されるハードウェア
・バックアップは実行権の転送の保留もしくは未完とし
て概念的にとらえることができる。バックアップの必要
性は将来の不確実な事件、たとえばコプロセッサ2oの
故障に依存するので、未完の実行権はコプロセッサ2o
と全(独立に実際の使用可能な実行権に変換できな(て
はならない。この理由のために、複製実行権を発生でき
る部分が生じ、これが不法使用者によって使用されてソ
フトウェアの販売者によって追求されている保護の裏を
かかれる危険性を与える。しかしながら、以下説明する
ようにバックアップの設置は任意の(ソース)プロセッ
サにとって一回しか遂行できず、許可期間(代表的な場
合はバックアップの設置の時から測定する)に条件の付
された、条件付き実行権を発生する。許可期間が終ると
、さらにアクションがなされない場合には、バックアッ
プ権から誘導できる実行権はもはや無効になる。この無
法行為を著しく制限するこの代償は、実際のコプロセッ
サが故障した時に実行権の集りを再要求できる可能性が
与えられないことである。合法的なユーザの場合は、ユ
ーザはハードウェアの販売者のような信頼のおけるオブ
ザーバに彼のコプロセッサが本当に故障したことを立証
する責任がある。
代表的な場合、この立証はハードウェアの販売者に故障
したコプロセッサを物理的に送ることによって行われる
。故障したコプロセッサを検討して、ハードウェアの販
売者はユーザに検査ディスクを与える。ユーザはこの検
査ディスクは、(シンク)コプロセッサに検証された許
可を与え、バックアップ実行権に与えられた条件をな(
し、実行権を、検査ディスクを獲得した時点に設定され
た条件によってだけで条件付けられた実行権に変える。
検査ディスクが置換えられた、元々実行権を記憶してい
るコプロセッサと同じコプロセッサの故障の証拠に基づ
いて準備されたことを保証するために、検査ディスクは
暗号の形で故障したコプロセッサの一意的な識別子を帯
びている。この一意的な識別子は条件の除去を可能なら
しめるために必要である。シンク・プロセッサは又設置
された実行権のセットから、条件を除去するためのメツ
セージがシンク・プロセッサによって受取られることが
意図されたものであることを認識できることが望まれる
。この認識はメツセージ中に(シンク)コプロセッサの
一意的キーのコピーを含ませて、そのメツセージの検証
に使用するか、メツセージをシンク・コプロセッサの一
意的なキー(USK)で暗号化することによって達成さ
れる。ソース及びシンク・コプロセッサの識別子はとも
に、シンク・コプロセッサによって用意された暗号化(
c8Kによる)メツセージによってハードウェアの販売
者に利用可能になり、故障プロセッサに戻される。
上述の手順は左から右に進む時間の関数として第17図
に示されている。最初コプロセッサ20は実行権のセッ
トを含んでいる。cnS手順(バックアップ・セットの
作成)が開始され、これによってカートリッジ及びディ
スクを含むバックアップ・セットが作成される。このバ
ックアップ・セットは以下説明するように、転送セット
と似ているが、CBS手順はユーザが新らしい実行権を
獲得するたびに遂行されて、単一のバックアップ・セッ
ト力コプロセッサのレバトリー内の各実行権のバックア
ップを与えるか、もしくはバックアップがソフトウェア
の販売者によって許可されている各アプリケーションに
バックアップ権を与えることが好ましい。第17図は又
、CBS手順の実行の後に、コプロセッサ20が故障し
たことを示している。その後ユーザは時刻T にバッフ
ァツブ・セット設置(IBS)手順を実行する。従って
時刻T の後に、ユーザは故障したコプロセツブ20に
代ってコプロセッサ120上で彼の実行権を使用できる
。この期間中にユーザは故障したコプロセッサ20を販
売者に送り、販売者はシンク・コプロセッサ120への
メツセージとして検査ディスクを作成する。許可期間が
切れる前K、ユーザが検査ディスクを受取る限り、ユー
ザは検査ディスクを使用してバックアップ・セット設置
手順を完了しく時刻T で)、コプロセッサ12O中の
実行権の条件付けを除去する。
第8図をここで参照するに、コプロセッサ20はソフト
ウェア解読キーAK  及びAK2によつて表わされた
実行権の集りを有する。バックアップされる必要がある
のはこれ等のキーである。バックアップ手順の第1の段
階(第9図)はトークン50及びディスク56より成る
未使用のバックアップ・セットをユーザが獲得する段階
である。
トークンはトークン・データTBを含み、TBは説明の
目的のため罠、多くの部分、TBl、TB2・・@TB
nより成るものとして示されている。ディスク56はキ
ーC8Kによって暗号化したトークン畳データを含む。
ユーザはディスクの読取りを行わせ、上位計算機10上
の適切なユーティリティ手順によって、コプロセッサは
ディスク56から読取った暗号化ファイルを解読早てT
Bをその一部メモリ26中に記憶する。ここで(第10
図)、ユーザはトークン50を上位計算機10にカート
リッジの接続ケーブル18を介して結合スる。コプロセ
ッサ20は使用するためのトークン・データの部分を選
択する。ここでの説明の目的のためには、部分子B1を
使用するように選択する。コプロセッサ20は乱数RN
を発生し、CRと表わされる、TBlとRNの関数、即
ちトークンの計算応答を計算する。コプロセッサ20は
乱数RNをトークン50に印加して、最初の部分子BI
を破壊的に読取る。トークン50のこの部分を読取ると
、部分子BIが破壊され、コプロセッサ20には実際の
応答が戻される。
第11図はこの状態における、即ちトークン50がもは
やTBlを記憶せず、一時メモリ26が実際の応答AR
を含んだ装置を示す。この時点でコプロセッサ20はA
RとCRi比較する。もしこれ等が一致しない時は、誤
り条件が検出され、トークン50は確認されたものでは
ないと考えられ、バックアップ手順は終了する。他方A
RとCRが一致すると、コプロセッサはトークン50を
確認されたものであると受取り、バックアップ手順をさ
らに続ける。第12図は上位計算機10が、コプロセッ
サ20によって促されて、キーとして使用される新らし
い乱数(RK)を発生し、ディスク56に多数のファイ
ルを含ませるように書込んだところを示している。最初
に示されているファイルはトークン15の確認を検査す
るのに必要とされる読取り動作によって修正された(た
とえばトークン・データTBは暗号化前に部分子B1が
削除されることによって修正されている)単なるトーク
ン・データの暗号化(RKによる)版である。コプロセ
ッサ20によってディスク56について形成される第2
のファイルはトークン・データを暗号化するのに使用し
た乱数キーの暗号化版である。第3のファイルは第2の
ファイル中に暗号形で与えられたキーの下に暗号化され
た八K及びその個々の関連フラグ及び条件のコピーであ
る。このファイルは又ソース・プロセッサを識別する一
意的なスーパーバイザ・キー(USKソース)のコピー
を含んでいる。以下説明するように、検査過程中この後
に、検査ディスクが販売者に証拠を与えた故障コプロセ
ッサを識別する。検査過程は検査によってソース及びシ
ンク・コプロセッサの両方を正しく識別した時にのみ、
設置されている実行権のセットに課せられている満期条
件を除去するように進行する。このファイル及びノ・−
ドウエアのセットの、実行権獲得もしくは転送のトラン
ザクションにおけるセットに対する構造上及び機能上の
類似性は明らかであろう。ここでは、ユーザはトークン
中の平文のトークン・データがディスク56中の暗号化
トークン・データに対応するバックアップ・セット、即
ちトークン50及びディスク56を有すると述べるだけ
で十分である。これ等の装置はユーザに実行権A K 
i及びAR2を任意のコプロセッサ上に設置させるに十
分である。それはこれ等の権利を設置するのに使用され
る手順がIBSであり、すなわち、実行権のセットは、
導入されたとき、許可期間によって条件づゆられるから
である。
第12図に示されたバックアップφセットの発生に続き
、ユーザが他のアプリケーションである、アプリケーシ
ョン3の実行権を得て、コプロセッサ20中にその実行
権A K 3を設置したとすると、彼はバックアップ・
セットを使用して、AKl及びA K 2だけでなく、
AR3をも包含するバックアップ・セットを発生するこ
とができる。この時。
ユーザがディスク56を暗号化トークン・データを読取
る複合計算システムに提示する。次にユーザは第9図乃
至第12図に関連して説明した段階を遂行する。この処
理の過程で、トークン部分子B2はこのトークンを検査
する時に破壊され、その後、結果のトークン・データは
TB3・・・TBnになり、ディスク56上の暗号化ト
ークン記述子ファイルもこれに対応し、ディスク56は
さらにA K 3の暗号化版を含むようになる。もしユ
ーザがこの意思前にディスク56のコピーを形成したと
しても、これ等のディスクはCBSもしくはIBS)ラ
ンザクジョンのために使用できな(・。
それはこれ等のディスク上の暗号化トークン記述子及び
RKがバックアップ・トークンを正しく検証し得ないか
らである。
勿論、ユーザは唯一つのトークン記述子部分がトークン
50中に残される迄、トークン50及びディスク56よ
り成るバックアップ・セットの使用を続けることができ
る。この時点で、他のCBSが遂行される場合には新ら
しいバックアップが必要である。バックアップ・トーク
ンの最後の部分がコプロセッサによって読取られ、古い
バックアップが無効にされ、新らしいバックアップ・セ
ットが開始される。
コプロセッサ20が故障した場合には、ユーザはバック
アップ・セット設置(IBS)手順中にトークン50及
びディスク56より成るバックアップ・セットを使用で
きる。IBS手順については、第13図の参照から始め
て以下に説明する。
第13図に示したように、ユーザはバックアップ・セラ
トラ上位計算機110及びコプロセッサ120より成る
異なる複合計算システムに提示する。上位計算機110
は原複合計算システム中の上位計算機10と異なる必要
はな(、コプロセッサ120が故障したコプロセッサ2
0とは異なることだけが必要である。第13図に示した
ように、コプロセッサ120はその永久メモリ中に実行
権を含んでいない。ユーザがディスク56を提示すると
、暗号化ランダム・キーE    (RK)がSK 読取られて解読され、ディスク56から暗号化トークン
・データERK(TB2+TB3・1TBn)が読取ら
れ、第14図に示したように解読される。
ここで一時メモリ26はこのトークン記述子を平文形で
含んでいる。次にコプロセッサ120は他の乱数SRN
を発生して、平文のトークン・データの選択された部分
(TB2)及び乱数SRNの関数CRi計算する。次に
コプロセッサ120はトークンを照合(質問)し、照合
中に次の部分子B2を破壊して、実際の応答ARを発生
する。第14図はこの時点での装置の状態を示す。次に
コプロセッサ120はARとCRが一致するかどうかを
判断する。もし一致しない時には、トークン5oは確認
されたものとみなされず、誤り条件に導入し、IBS手
順が終了する。
次の段階(具体的には示されていない)で、AKl、A
 K 2及びUSK(ソース)を含む暗号化ファイルが
ディスク56から読取られ、解読され、その個々の条件
及びこれ等がすべて許可期間によって条件付けられたと
いう表示とともに永久メモリに記憶される。
ここでシンク・コプロセッサはハードウェアの販売者に
与えるメツセージを用意する。このメツセージはスーパ
ーバイザ・キーC8Kによって暗号化され、上位計算機
によってディスク上に記憶される。メツセージは共通の
スーパーバイザ・キーC8Kで暗号化されたソース及び
シンク・コプロセッサの両方の一意的なスーパーバイザ
・キー(USK)のコピーE    (USKソース及
び5K USKシンク)を含んでいる。この情報はハードウェア
の販売者に提示される故障プロセッサがソース・プロセ
ッサであることを実証し、シンク・プロセッサがソース
・プロセッサの実行権のセットから期限の日付条件を解
除するためだけの検査メツセージを作成するのに使用さ
れる。
コプロセッサ120がこの条件にある時は、ユーザは許
可期間の継続中にAK  及びA K 2によつてイネ
ーブルされる保護アプリケーションを実行できる。許可
期間はIBSの実行の開始時点から測定される。許可期
間中にIBSを完了できない時は、実行権の行使は延期
され、IBSを完了することによって復位される。しか
しながら、ユーザが販売者から適切な復°査ディスクを
受取ると、IBS手順は第15図に示したように完了す
る。
第15図に示したように、ユーザは複合計算システムに
検査ディスク66を提示する。検査ディスク66はその
中にその故障が販売者に立証されたソース・コプロセッ
サを識別する一意的なスーパーバイザ働キーのコピーを
帯びる、シンク・コプロセッサの一意的なキーによって
暗号化した単一ファイルを含む。コプロセッサ120は
検査ディスク66を読取って、ファイルを解読する。コ
プロセッサ120は次に検査ファイルの内容を記憶して
いたソースUSKのコピーと比較する。もしこれ等が一
致しないと誤り条件が検査され、条件付き実行権は条件
が付されたまま残る。これ等は許可期間の満了によって
中断する。他方、検査ファイルがすべての点で一致した
ものと仮定すると、コプロセッサ120は最終IBS段
階を行うように許可される。これ等は実行権のセットA
K1及びA K 2の条件付けを抹消する。IBS手順
が完了すると(第16図)、コプロセッサ120はその
永久メモリ中に(ソース・プロセッサのバックアップ時
の条件によってのみ条件付けられた)実行権A K 1
及びA K 2を含む。この条件では、コプロセッサ1
20は故障する直前のコプロセッサ20と同じ条件にあ
る(第8図)。従って、上述の段階はコプロセッサ20
のためのハードウェアのバックアップを与えるが、ソフ
トウェアの販売者に最小のインパクトを与え、たとえば
実行権の不許可の複製の可能性が最小になる。
トークンを使用するバックアップ手順はトークンとこれ
に関連する手順を使用し、セットが提示され、セットに
よって表わされた実行権を受取ることができる任意のコ
プロセッサを検証する。バックアップの目的に中間のコ
プロセッサを使用する時は、トークンは不要である。安
全性を与えるのはコプロセッサを支配する(ユーザの手
の届(範囲外の)この手順である。従ってバックアップ
の目的のために中間のコプロセッサを使用する場合には
、トークン・データを表わすディスク・ファイルが完全
に不要なことを除き、トークン/ディスク対を使用する
時に準備したのと実質的に同じようにしてディスク46
が準備される。おそらくもう一つの他の差異は、バック
アップ・セットを使用した時は、解読キーがスーパーバ
イザ・キーによって暗号化されることである。このよう
な構成は不用意に使用すると、このようなディスクを与
えられる任意のコプロセッサがバックアップを受取って
しまう。これを防止するために、解読キーを暗号化する
キーはソース・コプロセッサと中間のコプロセッサ間で
発生されるセツション・キーである。このようなセツシ
ョン・キーの発生については既に説明された。中間のコ
プロセッサによって記憶される唯一の情報は、セツショ
ン・キー及びこれがバックアップに関連することを示す
表示である。転送手順は現在存在するバックアップの無
効化を必要とするので、中間のコプロセッサはこれにセ
ツション・キーか利用可能であるか、バックアツプ1セ
ツト設置手順が有効であるかどうかが確認される。そし
て上述のように中間のコプロセッサがシンク・コプロセ
ッサにセツション・キーを転送する限り、バックアップ
・セットがシンク・コプロセッサ上に設置できる。
E5 販売者のキーの暗号化(EVK)上述のように、
多くのコプロセッサがユーザの複合計算システム(コプ
ロセッサ以外に上位計算機を含む)中で使用でき、保護
されたアプリケーション・ソフトウェアを実行すること
ができる。
この設定で、コプロセッサは1部もしくはそれ以上のソ
フトウェアを実行する権利を安全に記憶する機能及び上
述のようにこのような実行権の処遇を定める機能を有す
る。しかしながら、上述のようにこれ等はコプロセッサ
の唯一の機能ではない。
コプロセッサは又ソフトウェアの販売者によって頒布可
能パッケージを準備するのに使用される。
ソフトウェアの販売者は任意の計算システムを使用して
上記米国特許出願第927629号に説明したソフトウ
ェア保護機能に従って彼自身の秘密のキー(AK)によ
りトークン・データ及びソフトウェアを暗号化できるが
、頒布可能なセットの他の部分はハードウェアの販売者
のキーによって暗号化されたソフトウェア解読キー、た
とえばE c S K (A K )である。ハードウ
ェアの販売者のキーCSKがソフトウェアの販売者に知
られないように、ソフトウェアの販売者はこの機能に(
キーCS Kが安全なメモリ中に与えられている)コプ
ロセッサを使用できる。このサービスは、既に説明した
ように、キーC8K上での平文テキスト攻略をはかるた
めに使用することができる。本発明では平文の攻略に特
に抵抗力のあるDESを、この抵抗力を増強する以下説
明する手順とともに使用することを考慮している。平文
の侵害は侵害者に平文及び侵害しようとしているキーに
よって暗号化された暗号テキストをアクセスすることを
要求する。以下説明する手順を使用すると、侵害者はこ
のような情報にアクセスできなくなる。
第18図ソフトウェアの販売者が必要とするモードで使
用されている代表的なコプロセッサ220を示す。ここ
で入力は1乃至それ以上のソフトウェア解読キーAK 
  AK  ・・寺等であり、1′″     2 出力はキーC8Kによって暗号化したこれ等のキーであ
る。すでに確立した約束により、コプロセッサ220は
物理的及び論理的に安全にされている。この安全性は破
線の内部境界によって示されている。コプロセッサ22
0が各ソフトウェア解読キーの入力に対して単に出力E
    (AK)SK を出力するだけならば侵害者には選択された平文攻略に
必要なデータが容易に与えられる。
本発明のこの態様に従えば、コプロセッサ20は暗号化
の前に解読キーを修正する。しかじなからこの修正はす
べての他のコプロセッサが知っているものであり、従っ
てすべての他のコプロセッサは逆修正をほどこすことが
できる。一般的に説明すると、各ソフトウェア解読キー
AK1はその前後に埋込みを行うことによって修正され
る。さらに具体的には、第18図に示されたように、代
表的には既知のビット長のメツセージ確認コード(MA
C)の形のサフィックス認識フラグ(RF)がプレフィ
ックス乱数(RN)とともに使用される。従ってコプロ
セッサ220はAKlの提示に応答して、RN  、A
Kl、RF(ここで「、」は連結を示す)。コプロセッ
サはここでC8Kのセットの中のあるキーC8Kによっ
て結果のデータ・ブロックの連結を暗号化してE   
 、(RNC8K1   1 ・ AKl、RF)を発生する。DBSを理解すると、C3
Kiにアクセスした他のコプロセッサはこの結果を解読
してストリングRN  AKlRFを発生できることは
明らかである。解読を行うコプロセッサはRFの内容及
びビット長のみならずAKlのようなソフトウェア解読
キーのビット長についての知識を前もって有するので、
コプロセッサはメツセージE     (RN  、A
Kl、RF)C8Ki       1 をC3Kのセットの各々でメツセージE。5Ki(RN
  、AKl、RF)を解読し、最後にRFを正しく解
読できる。一度コプロセッサが正しいC8Kを発見して
、暗号化情報を解読すると、A K iを分離して、こ
れを特に識別できる。プリフィックスRN1は(前に述
べられたように、ある他の検査タンクを実行することが
必要でないなら)単に破棄される。
DESを理解すると、平文の侵害はAKl、E(AK 
 );AK   E(AK2);AK3、El    
    21 (AK3)等の平文及び暗号化情報のセットの知識を必
要とすることがわかるが、コプロセッサ220にアクセ
スできる者は容易に次の組、AKl、E CS K t
 (RN  、 A K  、 RF ) ; AK 
2、Ec8Kj(RN  、AK2.RF);AK6、
(RN  、AK3.RF)等を識別でEC8Kk  
  、5 きる。この平文及び暗号化データの組はこれ等の種々の
ストリングを暗号化したキーを識別しようと試みる侵害
者にとっては、平文AK1、AK2、A K 3等を知
っていたとしてもほとんど助けにはならない。
従ってソフトウェアの販売者が使用してそのソフトウェ
ア解読キーを暗号化するためのすべてのコプロセッサを
表わすコプロセッサ220は次の販売者キー暗号化(E
VK)手順を遂行する。ユーティリティ・プログラムは
コプロセッサ220にEVKシーケンスが開始する事を
知らせる。コプロセッサ220は乱数(RN)を発生し
これをキーAKの前端に埋込むためのブリフエツクスと
して使用する。コプロセッサ220は又認識フラグ(R
F)をサフィックスとして使用して後端に埋込む。結果
のブロック即ちストリングはスーパーバイザ・キーC8
Kの下に暗号化され、結果が上位計算機に受渡される。
このEVK手順は認識フラッグを適切に選択することに
よって、データ・ブロックは1つのコプロセッサによっ
て選択されるスーパーバイザ・キーによって暗号化され
る。暗号化ブロックは解読するコプロセッサがすべての
可能なスーパーバイザ・キーヲ含ムスーパーバイザ会キ
ーのセットにアクセスできる限り、どのスーパーバイザ
・キーが暗号化するのに使用されたかをあらかじめ知ら
な(ても、解読できる。この解読は両方のプロセッサ中
の予備知識、メツセージ許可コードを含む多くの手段並
びに認識フラッグ(RF)として暗号化スーパーバイザ
・キーを選択することによって達成できる。たとえば、
暗号化コプロセッサがAK  を暗号化する目的のため
にC3K6を選択したと仮定する。上述の手段によって
暗号化するコプロセッサはE     (RN、AKn
、RF)SK3 を発生する。解読するコプロセッサはとのC3Kが暗号
化に選択されたかを知らないが、すべてのC8Kにアク
セスできるものと仮定する。解読するコプロセッサはC
3KIで始まって各解読キーで順番に暗号化ブロックを
解読する。ブロックを解読するたびに、サフィックスが
解読キーと比較される。サフィックスと解読キーが一致
すると、解読スるコプロセッサは暗号キーを識別し、同
時にAK  にアクセスできる。それはこのブロックが
正しい解読キーを使用してすでに解読されているからで
ある。同じように、もし予備知識を使用すると、予想し
たストリングはRF’位置に見出されなくてはならない
。もしくはMACを使用すると、MACはAK  もし
くはRN 、 AK  に対して有効でなければならな
い。
上述の説明では、参照はソフトウェア解読キーAKにつ
いてなされた。以下に説明する理由で、AKと呼ばれる
ブロックはソフトウェア解読キーだけでなく、いくつか
のフラグを含んでいる。その条件はソフトウェアの販売
者によって選択され、ある手順の実行を許容したりしな
かったりする。
たとえば、1ビツトのフラグをセットして、ノ・−ドウ
エア・バックアップ手順の使用を許容し、許容しなかっ
たりする。ハードウェア・バックアップ・フラグがバッ
クアップ手順を許容しないようにセットされている場合
には、解読キーを記憶する任意のコプロセッサはバック
アップ手順を制限してこのキー(及びそのようにマーク
された他のキー)を除去する。ソフトウェアの販売者は
一度設置したソフトウェア解読キーの転送を禁止したい
場合がある。この目的のために、1ピツト転送フラグが
与えられて、転送動作を許容したり許容しなかったりす
るのに使用できる。上位計算機が転送手順を要求すると
、この手順は転送フラグが転送動作を可能ならしめるよ
うにセットされている時にのみ許容できる。これ等の制
限の各々は各コプロセッサ中に与えられた機能に与えら
れるデータとして理解される。AKは又個々のアプリケ
ーションによってテストされる上記の実行条件も含んで
いる。
第2表はしばらく使用されており、実行権の集りを記憶
する代表的なコプロセッサの永久メモリ25の一部の内
容を示す。
第   2   表 第2表に示したように、永久メモリ25は複数の異なる
キーの各々のためのレコード(即ち記入項目)を含む。
C3K1乃至CS K n 、 A K 1乃至AK 
 及びMAKl及びMAK2が第2表に示されている。
各レコードは多(のフィールドを含む。フィールドの1
つはキー自体である。各キーには多数の2進フラグが関
連し、フラグ:メタ、条件、抹消、転送及びバックアッ
プの各々に1ピツトが存在する。このリストはこのよう
なフラグの有用な部分集合であり、この集合はこの分野
の専門家によりほとんど確実に拡張できることは明らか
である。2進フラグはたとえば第1の欄の下に、キーが
メタ・キーであるかどうかを示していて、第2表では最
後の2つのレコードだけがメタ・キーの記憶を示してい
る。次の欄(条件と題する)中の2進1はキーが条件付
けられていることを示す。第2表ではキーAK3及びA
K  が条件付けられている。第6の欄(抹消と題する
)は2進0によってキーの抹消が許容されていな−・こ
とを示す。この条件はスーパーバイザの各々及び特定の
アプリケーション・キーAK2に適用できる。
第4欄(転送と題する)は2進1によってAKlを除く
すべてのキーが転送が許可されていることを示している
(ただしスーパーバイザ・キーは除く。このキーの転送
は全く必要でなく、又望ましくない)。第2表の2進フ
ラグ部分の下の最後の欄はバックアップと題し、2進1
は関連キーがバックアップが許可されていることを示す
。第2表に示したように、キーA K 3及びAKnは
バックアップは許可されない。
第2表に示したメモリはキーの各々について多くの多重
バイト記入項目を有する。多重バイトの記入項目の1つ
は条件と題し、このフィールドは条件の付せられたキー
に関連するデータを含む。
従ってキーA K 3及びAKnはこのフィールドに、
これ等のキーが解読するアプリケーション中に記憶され
た規準によってテストされ、実行が許可されているかど
うかを判断するデータを含んでいる。
第2表の多重バイト記入項目の最後の欄はアプリケーシ
ョン・キーの探索を助け、探索した時にそのキーの検査
を助ける位置及び検査情報を与える。
E6 ソフトウェアの返品 上述の説明から、実行権のための処遇について説明した
手順はソフトウェア販売者に、彼の顧客だけでなく彼自
身にとっても公平なソフトウェア返品対策を与える。経
済的な理由のために、ある販売者は本発明には関連ない
とはいえ、ソフトウェアの返品をある一定の期間(一種
の保証期間)内に制限したいであろう。ソフトウェアの
販売者はたとえばユーザに特定のソフトウェアのアプリ
ケーション・パッケージを実行する権利を含む転送セッ
トを販売者に与えることを要求することによってソフト
ウェアの返品を(販売者の選択による全面もしくは部分
的信用で)認めている。ユーザがこのような転送セット
を作成する方法は既に説明した。もしユーザがソフトウ
ェアの販売者に返品を求める特定のアプリケーション・
パッケージを含む有効な転送セットを提示すると、ソフ
トウェアの販売者には(ソフトウェアのコピー防止機構
の動作によって)ユーザ自身がもはやこのソフトウェア
を実行する権利を保持しないことが保証される。上述の
如く、転送セットの発生はコプロセッサから解読キーの
削除を必要とする。
上述のことから、本発明は上述の米国特許出願第927
629号中に説明したソフトウェア保護機構を実行権の
処遇に広い柔軟性を与えることは明らかである。本発明
はこれ等の手順をいくつかの論理動作及びそれ等の相互
関係によって説明した。本明細書中の説明からこれ等の
論理動作を実行させるソフトウェアを作成することはこ
の分野の専門家にとって明らかであろう。従って上述の
手順を具体化するソフトウェアの特定の説明は不要であ
ろう。
F 発明の効果 本発明に従い、コプロセッサ中に存在するソフトウェア
の実行権に条件を付け、その処遇を定め、これを転送す
る方法が与えられる。
【図面の簡単な説明】
第1図、第3図、第4図は第2図と類似であるが、本発
明に従う、条件の付された、ソフトウェアの実行権の用
途及び応用を説明する図である。 第2図はソフトウェア資産保護機構の主要部品及びその
相互の関連を示す図である。第5図、第6図及び第7図
は実行権の転送を説明する図である。 第8図、第9図、第10図、第11図、第12図、第1
3図、第14図、第15図、第16図はバックアップ手
順の2段階(cBS及びIBS)を説明する図である。 第17図はCBS及びIBS手順に使用する代表的シー
ケンスを示す図である。 第18図は販売者キーの暗号化を説明する図である。第
19図は実行権の直接転送を説明する図である。 10・・・・上位計算機、14・・・・通信リンク、1
5・・・・ディスク駆動装置、16・・・・頒布ディス
ク、18・・・・接続ケーブル、20・・・・コプロセ
ッサ、25・・・・永久メモリ、26・・・・一時メモ
リ、50・・・・ハードウェア・カートリッジ。 第9図 第16図 −、−1Ll+ 0区 CX  口C +++

Claims (2)

    【特許請求の範囲】
  1. (1)上位計算機に関連する論理的に安全な、少なくと
    も第1のキー及び特定のアプリケーションを実行する権
    利を表わす第2のソフトウェア・キーを記憶するコプロ
    セッサを有し、上記上位計算機が上記第2のソフトウェ
    ア・キーによつて暗号化キーの下に暗号化された上記特
    定のアプリケーションにアクセスできるソフトウェア保
    護機構の上記コプロセッサから実行権を取出すための方
    法であつて、 (a)上記コプロセッサに、少なくとも書込み可能な媒
    体及び物理的及び論理的に安全な、平文のトークン・デ
    ータを記憶する媒体を与え、 (b)上記コプロセッサに上記第1のキーで暗号化され
    た上記平文のトークン・データより成るデータ・ブロッ
    クを与え、 (c)上記データ・ブロックを上記コプロセッサ中で解
    読して、上記平文トークン・データを発生し、 (d)上記平文のトークン・データを上記第2のソフト
    ウェア・キーで暗号化して、対応するデータ・ブロック
    を発生し、 (e)上記ソフトウェア・キーを上記第1のキーによつ
    て暗号化して暗号化したソフトウェア・キーを発生し、 (f)上記対応するデータ・ブロック、暗号化したアプ
    リケーション及び上記暗号化したソフトウェア・キーを
    上記転送セットに書込んで、上記ソフトウェア・キーを
    上記コプロセッサから抹消し、以て上記ソフトウェア・
    キーを上記コプロセッサから除去して上記転送セットに
    書込む段階を有する、 ソフトウェア保護機構から実行権を安全に取出す方法。
  2. (2)ソフトウェア・キーによつて暗号化された部分を
    少なくとも含む特定の保護されたアプリケーションを上
    位プロセッサ並びに物理的及び論理的に安全なコプロセ
    ッサを含む複合計算機上で、実行するための、上記コプ
    ロセッサの永久メモリ中に記憶されている上記ソフトウ
    ェア・キーによつて表わされた実行権に条件を付する方
    法であつて、(a)上記コプロセッサに少なくとも1つ
    の条件のステートメントを与え、 (b)上記永久メモリ中に、上記ソフトウェア・キーの
    記憶とともに、上記条件に関連するデータを記憶し、 (c)上記ソフトウェア・キーもしくは上記保護アプリ
    ケーションの使用を許可する前に上記ステートメント及
    び上記データにアクセスすることを上記コプロセッサに
    要求し、 (d)さらに上記コプロセッサに上記ステートメント及
    び上記データを比較し、上記条件が満足されているかど
    うかを要求し、上記条件を満足している時にのみ使用を
    許可する段階を有する、保護されたアプリケーションの
    実行権に条件を付ける方法。
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 true JPS63127334A (ja) 1988-05-31
JPH0332813B2 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)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306780A (ja) * 1994-04-25 1995-11-21 Internatl Business Mach Corp <Ibm> ファイルへのアクセスを制限するための方法および装置
WO2000075769A1 (fr) * 1999-06-08 2000-12-14 Interlex Inc. Ordinateur jugeant de l'opportunite d'executer un ludiciel, procede de commande d'execution de ludiciels, dispositif jugeant de l'opportunite d'executer un ludiciel, et programme d'ordinateur
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 コンピユ−タソフトウエアの保護方法およびその装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07306780A (ja) * 1994-04-25 1995-11-21 Internatl Business Mach Corp <Ibm> ファイルへのアクセスを制限するための方法および装置
WO2000075769A1 (fr) * 1999-06-08 2000-12-14 Interlex Inc. Ordinateur jugeant de l'opportunite d'executer un ludiciel, procede de commande d'execution de ludiciels, dispositif jugeant de l'opportunite d'executer un ludiciel, et programme d'ordinateur
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 ライセンス委譲装置、記録媒体およびライセンス委譲方法

Also Published As

Publication number Publication date
JPH0332813B2 (ja) 1991-05-14

Similar Documents

Publication Publication Date Title
US5109413A (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
EP0268139A2 (en) Manipulating rights-to-execute in connection with a software copy protection mechanism
US6249866B1 (en) Encrypting file system and method
US7603563B2 (en) Adaptable security mechanism for preventing unauthorized access of digital data
US9075957B2 (en) Backing up digital content that is stored in a secured storage device
US7890993B2 (en) Secret file access authorization system with fingerprint limitation
US5748744A (en) Secure mass storage system for computers
KR100861822B1 (ko) 데이터 관리 방법
US20090276829A1 (en) System for copying protected data from one secured storage device to another via a third party
US20090276474A1 (en) Method for copying protected data from one secured storage device to another via a third party
EP2264640B1 (en) Feature specific keys for executable code
TW200830830A (en) Hard disc streaming cryptographic operations with embedded authentication
JP2003067256A (ja) データ保護方法
JP2008299494A (ja) コンテンツデータ管理システム及び方法
GB2517016A (en) Secure data storage
JPH0383132A (ja) ソフトウェア保護制御方式
JP2023548572A (ja) ブロックチェーンに機密データを記憶すること
CN102073597A (zh) 一种基于用户身份认证的操作系统盘全盘加密方法
JP2007188445A (ja) 情報漏えい防止システム及び情報漏えい防止方法
JPS63127334A (ja) 保護されたアプリケーションの実行権に条件を付ける方法
KR20050032016A (ko) 메모리 카드 내의 파일 구조 관리 방법 및 관련 기술
JPH05233460A (ja) ファイル保護方式
JPH10340232A (ja) ファイル複写防止装置及びファイル読込装置
CN111737722B (zh) 内网终端间数据安全摆渡方法及装置
CN117786721A (zh) 一种文件数据保护方法、装置、系统及存储设备