JP2013084294A - Method and system for recursive security protocol for digital copyright control - Google Patents

Method and system for recursive security protocol for digital copyright control Download PDF

Info

Publication number
JP2013084294A
JP2013084294A JP2012276507A JP2012276507A JP2013084294A JP 2013084294 A JP2013084294 A JP 2013084294A JP 2012276507 A JP2012276507 A JP 2012276507A JP 2012276507 A JP2012276507 A JP 2012276507A JP 2013084294 A JP2013084294 A JP 2013084294A
Authority
JP
Japan
Prior art keywords
key
item
list
security
target
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.)
Withdrawn
Application number
JP2012276507A
Other languages
Japanese (ja)
Other versions
JP2013084294A5 (en
Inventor
V Oxford William
ウィリアム ブイ. オックスフォード,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2012276507A priority Critical patent/JP2013084294A/en
Publication of JP2013084294A publication Critical patent/JP2013084294A/en
Publication of JP2013084294A5 publication Critical patent/JP2013084294A5/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a system and method using a recursive security protocol to protect digital data.SOLUTION: The system and method may include a step for encrypting a bit stream with a first encryption algorithm, and a step for associating a first decryption algorithm with the encrypted bit stream. Next, an obtained bit stream may be encrypted by a second encryption algorithm so as to generate a second bit stream. Then, the second bit stream is associated with a second decryption algorithm. The second bit stream may be decrypted by an intended receiver by using a relation key.

Description

(関連出願の相互参照)
本願は、米国特許出願第60/390,180号(名称「Recursive Security Protocol System and Method for Digital Copyright Control」、2002年6月20日出願、出願人「William V.Oxford」)、米国特許出願第10/465,274号(名称「Method and System for a Recursive Security Protocol for Digital Copyright Control」、2003年6月19日出願、出願人「William V.Oxford」)、および米国特許出願第 不明 号(名称「Method and System for a Recursive Security Protocol for Digital Copyright Control」、2007年2月23日出願、出願人「William V.Oxford」)に関連する。本パラグラフにおいて引用された全ての出願は、その全体が本明細書に参考として援用される。
(Cross-reference of related applications)
No. 60 / 390,180 (named “Recursive Security Protocol System and Method for Digital Copy Control”, filed June 20, 2002, patent application “William V. Ox”). No. 10 / 465,274 (named “Method and System for a Recursive Security Protocol for Digital Copyright Control”, filed June 19, 2003, Applicant “William V. Oxford” “Method and System for a Recursive Security Protocol for igital Copyright Control ", filed on February 23, 2007, related to the applicant" William V.Oxford "). All applications cited in this paragraph are hereby incorporated by reference in their entirety.

(発明の技術分野)
本発明は、一般に、デジタルコンテンツの保護に関し、より具体的には、暗号化の使用を通したデジタルデータの保護に関する。さらに具体的には、本発明は、現在利用されている方法よりも優れたセキュリティおよび融通性の両方を提供する、再帰的セキュリティプロトコルで、デジタルコンテンツを保護することに関する。
(Technical field of the invention)
The present invention relates generally to the protection of digital content, and more specifically to the protection of digital data through the use of encryption. More specifically, the present invention relates to protecting digital content with a recursive security protocol that provides both superior security and flexibility over currently utilized methods.

(発明の背景)
過去の著作権法の履行は、印刷された本であろうが、記録されたディスクまたはテープであろうが、いくつかの物理的対象を複製することの困難に依存していた。正確には、個人がそのような対象を複製することは常に可能であったが、物理的対象に含有される情報を別のものに転写する時間費用または機会費用のいずれかを考慮すると、一般的には経済的に実行可能ではなかった。また、この工程に基づくコピーは、現在まで、原本よりも質が低くなる傾向があった。しかしながら、情報のデジタル保存の出現とともに、この費用バランスが混乱している。
(Background of the Invention)
Past copyright law implementations, whether printed books or recorded discs or tapes, relied on the difficulty of copying several physical objects. To be precise, it has always been possible for an individual to duplicate such an object, but considering either the time or opportunity costs of transferring information contained in a physical object to another, Was not economically feasible. Also, copies based on this process have tended to be of lower quality than the original. However, with the advent of digital storage of information, this cost balance has been confused.

著作権のある作品の価値は、創作を含有する物理的対象に必ずしも吹き込まれているとは限らないが、むしろ作品自体を構成する情報に吹き込まれている。したがって、作品を複写する機械費用が無視できるほど小さくなると(現在の多くのデジタルメディアストリームの場合のように)、著作権保護工程は、新しい方式でその問題点に対処しなければならない。本質的には、デジタル形式にカプセル化することができる全ての創作物は、何らかの時点でこの懸念の対象となる。   The value of a copyrighted work is not necessarily infused into the physical object containing the creation, but rather in the information that makes up the work itself. Thus, when the machine cost of copying a work is negligibly small (as is the case with many current digital media streams), the copyright protection process must deal with the problem in a new way. In essence, all creations that can be encapsulated in digital form are subject to this concern at some point.

この時点で所与の多大なデジタルデータストリームを複写することが非現実的となる場合があっても、そのようなデータストリームの複写および保存の費用は、長距離にわたってそれらのデータを伝送する費用と同様に、常に低下している。また、デジタル保存は、経時的に、または反復使用を介して劣化しない完璧なコピーを作製することを可能にする。そのようなものとして、これらの多大なデータセットの寿命は、それらの経済的な実行可能性を潜在的に克服することができ、その時点で、ストリームが無償配給に対応しているか否かにかかわらず、はるかに重要性が低い。この実行可能性の長さは、データへのアクセスを制御する際に使用するために適切であるセキュリティの量に上限値を設置する。   Even if it may be impractical to copy a given large digital data stream at this point, the cost of copying and storing such a data stream is the cost of transmitting those data over long distances. Like, it is always falling. Digital storage also makes it possible to make perfect copies that do not deteriorate over time or through repeated use. As such, the lifetime of these vast datasets can potentially overcome their economic feasibility, at which point whether the stream supports free distribution. Regardless, it is much less important. This length of feasibility places an upper limit on the amount of security that is appropriate for use in controlling access to data.

デジタルセキュリティアルゴリズムにおける公知の技術の現状は、オンライン情報の熟読を介して、または、参照することに完全に本明細書に含まれる、特許文献1、特許文献2、特許文献3、特許文献4、特許文献5、および非特許文献1を含む、本主題を検討する種々の出版物および特許を介して容易に収集することができる。   The current state of the art in digital security algorithms is described in Patent Document 1, Patent Document 2, Patent Document 3, Patent Document 4, which is fully included in the present specification through careful reading of online information, It can be easily collected through various publications and patents that discuss this subject matter, including US Pat.

従来技術のシステムは、デジタルデータ暗号化および暗号解読技術のいくつかの基本的動作カテゴリを利用する。これらのカテゴリは、セキュリティアルゴリズム自体の使用に基づき、実際のデータを暗号化または解読するための実際の機構と無関係である。これらの周知の技術、ならびに幅広く説明されている分類および技術は、以下のとおりである。一方向ハッシング機構および/またはメッセージダイジェスト
メッセージ認証システム
デジタル署名
秘密キー暗号化システム
公開キー暗号化システム
所与のセキュリティシステムでこれらの技術が使用される手段は、セキュリティプロトコルとして知られている。セキュリティプロトコルは、種々の機能がどのように実施されるかという実際の基礎機構と無関係であることに留意されたい。そのようなものとして、完璧に安全な暗号化アルゴリズムさえ、暗号化技術の安全な側面を破るような方法で全体的なセキュリティを損なうセキュリティプロトコルの内側で、潜在的に使用される場合がある。その結果として、任意の所与のセキュリティシステムの全体的なセキュリティは、基礎セキュリティ技術の相対的強度だけでなく、これらのセキュリティ技術が使用される方法にも依存している。セキュリティシステムを実装することへの過去の試行は、保護される種々の種類のビットストリームの(人為的な)区別を行ってきた。
Prior art systems utilize several basic operational categories of digital data encryption and decryption techniques. These categories are based on the use of the security algorithm itself and are independent of the actual mechanism for encrypting or decrypting the actual data. These well-known techniques, as well as the widely described classifications and techniques, are as follows. One-way hashing mechanism and / or message digest message authentication system digital signature private key encryption system public key encryption system The means by which these techniques are used in a given security system is known as a security protocol. Note that the security protocol is independent of the actual underlying mechanism on how the various functions are performed. As such, even perfectly secure encryption algorithms may potentially be used inside security protocols that compromise overall security in a way that breaks the secure aspects of encryption technology. As a result, the overall security of any given security system depends not only on the relative strength of the underlying security technologies, but also on how these security technologies are used. Past attempts to implement security systems have made (artificial) distinctions between the various types of bitstreams that are protected.

米国特許第6,327,652号明細書US Pat. No. 6,327,652 米国特許第6,330,670号明細書US Pat. No. 6,330,670 米国特許出願公開第20020013772号明細書U.S. Patent Application Publication No. 20020013772 米国特許第6,226,742号明細書US Pat. No. 6,226,742 米国特許第6,101,605号明細書US Pat. No. 6,101,605

David Lie,et al.、「Architectural Support for Copy and Tamper−Resistant Software」、Proceedings of the 9th Annual Conference on Architectural Support for Programming Languages and Operating Systems aka ASPLOS−IX、Cambridge、MA、2000David Lie, et al. , "Architical Support for Copy and Tamper-Resistant Software Software, Proc

したがって、デジタルコンテンツをより良好かつ効率的に保護するために業界標準セキュリティ技術および他の種類のセキュリティ標準を利用してもよい、再帰的セキュリティプロトコルに対する必要性がある。   Thus, there is a need for a recursive security protocol that may utilize industry standard security techniques and other types of security standards to better and efficiently protect digital content.

デジタルコンテンツを良好に保護するために種々の暗号化技法を利用してもよい、セキュリティプロトコル用のシステムおよび方法を開示する。これらのシステムおよび方法は、ユーザが希望どおりに元のデータのバックアップコピーを作製できるようにするが、そのようなコピーを使用するために著作権所有者の許可を依然として必要としてもよい方式で、任意のビットストリーム(オーディオ/ビデオストリームまたはソフトウェアプリケーション等の他のデジタルデータ等)を符号化できるようにする。多くの実施形態では、ビットストリームは、暗号化され、この結果は、暗号解読アルゴリズムに関連付けられる。順に、この組み合わせが暗号化され、この第2の暗号化の結果が第2のビットストリームを生じ、順に、第2の暗号解読アルゴリズムに関連付けられる。   Disclosed are systems and methods for security protocols that may utilize various encryption techniques to better protect digital content. These systems and methods allow users to make backup copies of the original data as desired, but may still require the copyright owner's permission to use such copies, Allows any bitstream (such as an audio / video stream or other digital data such as a software application) to be encoded. In many embodiments, the bitstream is encrypted and the result is associated with a decryption algorithm. In turn, this combination is encrypted, and the result of this second encryption results in a second bitstream, which in turn is associated with a second decryption algorithm.

加えて、これらのセキュリティプロトコルを実装するのに好適なコンピュータシステム、ハードウェア、およびソフトウェアでこれらの種類の方法論を具体化する、システムを提示する。   In addition, a system is presented that embodies these types of methodologies with computer systems, hardware, and software suitable for implementing these security protocols.

いくつかの実施形態では、各ビットストリームは、関連暗号解読アルゴリズムおよび1つ以上のキーを使用して解読される。   In some embodiments, each bitstream is decrypted using an associated decryption algorithm and one or more keys.

別の実施形態では、これらのキーは、サーバ上に存在してもよく、またはキーは、標的機械上のハードウェア中に存在してもよい。   In another embodiment, these keys may reside on the server, or the keys may reside in hardware on the target machine.

さらに他の実施形態では、これらのキーは、キーデータ構造に含有される。   In yet other embodiments, these keys are contained in a key data structure.

依然として他の実施形態は、1つ以上のキーデータ構造を含有するキーリストデータ構造を含む。   Still other embodiments include a key list data structure that contains one or more key data structures.

さらに具体的な実施形態は、中央サーバ上に存在する、このキーリストデータ構造を含む。   A more specific embodiment includes this key list data structure residing on a central server.

別の1組の実施形態では、暗号化されたビットストリームが真性であるかどうかを判定するために、メッセージダイジェストが使用される。   In another set of embodiments, a message digest is used to determine whether the encrypted bitstream is authentic.

他の同様の実施形態では、解読されたビットストリームが真性であるかどうかを判定するために、メッセージダイジェストが使用される。
例えば、本発明は以下の項目を提供する。
(項目1)
デジタルコンテンツを保護する再帰的セキュリティプロトコルのための方法であって、
第1の暗号化アルゴリズムによってビットストリームを暗号化することと、
第1の暗号解読アルゴリズムを該暗号化されたビットストリームと関連付けることと、
第2のビットストリームを生じるように、第2の暗号化アルゴリズムによって該暗号化されたビットストリームおよび該第1の暗号解読アルゴリズムの両方を暗号化することと、
第2の暗号解読アルゴリズムを該第2のビットストリームに関連付けることと
を含む、方法。
(項目2)
前記第1の関連暗号解読アルゴリズムおよび前記第2の関連暗号解読アルゴリズムによって前記第1のビットストリームおよび前記第2のビットストリームを解読することをさらに含み、該暗号解読は、標的ユニットによって達成される、項目1に記載の方法。
(項目3)
前記解読することは、各暗号解読アルゴリズムと関連付けられるキーを使用して行われる、項目2に記載の方法。
(項目4)
前記キーは、前記標的ユニットのハードウェア内に常駐するか、または該キーは、サーバから取り出される、項目3に記載の方法。
(項目5)
前記キーは、キーデータ構造に含有される、項目4に記載の方法。
(項目6)
前記キーデータ構造はまた、タイムスタンプおよびカウントダウン値を含有する、項目5に記載の方法。
(項目7)
前記キーデータ構造は、一時キーまたは一次秘密キーを使用して暗号化される、項目5に記載の方法。
(項目8)
前記キーデータ構造は、キーリストデータ構造内に含有される、項目7に記載の方法。
(項目9)
前記標的ユニットは、前記キーリストデータ構造のコピーを維持する、項目8に記載の方法。
(項目10)
前記一時キーまたは前記一次秘密キーを使用して前記キーリストデータ構造を暗号化することをさらに含む、項目9に記載の方法。
(項目11)
各暗号化アルゴリズムは、対称キーシステムまたは非対称キーシステムである、項目3に記載の方法。
(項目12)
第1のメッセージ認証コード(MAC)または第1のデジタル署名を各暗号化されたビットストリームと関連付けることをさらに含む、項目3に記載の方法。
(項目13)
ハッシング関数および公開キーを使用して前記第1のMACまたは第1のデジタル署名を生成することをさらに含む、項目12に記載の方法。
(項目14)
各暗号化されたビットストリームが真性であることを検証することをさらに含む、項目13に記載の方法。
(項目15)
各暗号化されたビットストリームを検証することは、
第2のMACまたは第2のデジタル署名を生成することと、
該第2のMACまたは第2のデジタル署名を前記第1のMACまたは第1のデジタル署名と比較することと
をさらに含む、項目14に記載の方法。
(項目16)
解読されたビットストリームを検証することをさらに含む、項目15に記載の方法。
(項目17)
前記解読されたビットストリームを検証することは、第3のMACまたは第3のデジタル署名を使用して行われる、項目16に記載の方法。
(項目18)
前記キーの暗号化されたバージョンを前記サーバに返送することをさらに含む、項目17に記載の方法。
(項目19)
デジタルコンテンツを保護する再帰的セキュリティプロトコル用のシステムであって、
第1の暗号化アルゴリズムによってビットストリームを暗号化することと、
第1の暗号解読アルゴリズムを該暗号化されたビットストリームに関連付けることと、
第2のビットストリームを生じるように、第2の暗号化アルゴリズムによって該暗号化されたビットストリームおよび該第1の暗号解読アルゴリズムの両方を暗号化することと、
第2の暗号解読アルゴリズムを該第2のビットストリームと関連付けることと
のために動作可能である、システム。
(項目20)
前記第1の関連暗号解読アルゴリズムおよび前記第2の関連暗号解読アルゴリズムによって、前記第1のビットストリームおよび前記第2のビットストリームを解読するためにさらに動作可能であり、該暗号解読は、標的ユニットによって達成される、項目19に記載のシステム。
(項目21)
前記解読することは、各暗号解読アルゴリズムと関連付けられるキーを使用して行われる、項目20に記載のシステム。
(項目22)
前記キーは、前記標的ユニットのハードウェアに常駐するか、または該キーは、サーバから取り出される、項目21に記載のシステム。
(項目23)
前記キーは、キーデータ構造に含有される、項目22に記載のシステム。
(項目24)
前記キーデータ構造はまた、タイムスタンプおよびカウントダウン値を含有する、項目23に記載のシステム。
(項目25)
前記キーデータ構造は、一時キーまたは一次秘密キーを使用して暗号化される、項目23に記載のシステム。
(項目26)
前記キーデータ構造は、キーリストデータ構造に含有される、項目25に記載のシステム。
(項目27)
前記標的ユニットは、前記キーリストデータ構造のコピーを維持する、項目26に記載のシステム。
(項目28)
前記一時キーまたは前記一次秘密キーを使用して前記キーリストデータ構造を暗号化するためにさらに動作可能である、項目27に記載のシステム。
(項目29)
各暗号化アルゴリズムは、対称キーシステムまたは非対称キーシステムである、項目21に記載のシステム。
(項目30)
第1のメッセージ認証コード(MAC)または第1のデジタル署名を各暗号化されたビットストリームに関連付けるためにさらに動作可能である、項目21に記載のシステム。
(項目31)
ハッシング関数および公開キーを使用して前記第1のMACまたは第1のデジタル署名を生成するためにさらに動作可能である、項目30に記載のシステム。
(項目32)
各暗号化されたビットストリームが真性であることを検証するためにさらに動作可能である、項目31に記載のシステム。
(項目33)
各暗号化されたビットストリームを検証することは、
第2のMACまたは第2のデジタル署名を生成することと、該第2のMACまたは第2のデジタル署名を前記第1のMACまたは第1のデジタル署名と比較することとをさらに含む、項目32に記載のシステム。
(項目34)
解読されたビットストリームを検証するためにさらに動作可能である、項目33に記載のシステム。
(項目35)
前記解読されたビットストリームを検証することは、第3のMACまたは第3のデジタル署名を使用して行われる、項目34に記載のシステム。
(項目36)
前記キーの暗号化されたバージョンを前記サーバに返送するためにさらに動作可能である、項目35に記載のシステム。
(項目37)
第1の暗号化アルゴリズムによってビットストリームを暗号化することと、
第1の暗号解読アルゴリズムを該暗号化されたビットストリームに関連付けることと、
第2のビットストリームを生じるように、第2の暗号化アルゴリズムによって該暗号化されたビットストリームおよび該第1の暗号解読アルゴリズムの両方を暗号化することと、
第2の暗号解読アルゴリズムを該第2のビットストリームと関連付けることと
のために翻訳可能な命令を含有する、デジタルコンテンツを保護する再帰的セキュリティプロトコル用のソフトウェアシステムまたはコンピュータプログラム。
(項目38)
前記第1の関連暗号解読アルゴリズムおよび前記第2の関連暗号解読アルゴリズムによって前記第1のビットストリームおよび前記第2のビットストリームを解読するためにさらに翻訳可能であり、該暗号解読は標的ユニットによって達成される、項目37に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目39)
前記解読することは、各暗号解読アルゴリズムと関連付けられるキーを使用して行われる、項目38に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目40)
前記キーは、前記標的ユニットのハードウェア内に常駐するか、または該キーは、サーバから取り出される、項目39に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目41)
前記キーは、キーデータ構造に含有される、項目40に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目42)
前記キーデータ構造はまた、タイムスタンプおよびカウントダウン値も含有する、項目41に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目43)
前記キーデータ構造は、一時キーまたは一次秘密キーを使用して暗号化される、項目41に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目44)
前記キーデータ構造は、キーリストデータ構造内に含有される、項目43に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目45)
前記標的ユニットは、前記キーリストデータ構造のコピーを維持する、項目44に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目46)
前記一時キーまたは前記一次秘密キーを使用して前記キーリストデータ構造を暗号化するためにさらに翻訳可能である、項目45に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目47)
各暗号化アルゴリズムは、対称キーシステムまたは非対称キーシステムである、項目39に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目48)
第1のメッセージ認証コード(MAC)または第1のデジタル署名を各暗号化されたビットストリームと関連付けるためにさらに翻訳可能である、項目39に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目49)
ハッシング関数および公開キーを使用して前記第1のMACまたは第1のデジタル署名を生成するためにさらに翻訳可能である、項目48に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目50)
各暗号化されたビットストリームが真性であることを検証するためにさらに翻訳可能である、項目49に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目51)
各暗号化されたビットストリームを検証することは、
第2のMACまたは第2のデジタル署名を生成することと、
該第2のMACまたは第2のデジタル署名を前記第1のMACまたは第1のデジタル署名と比較することと
をさらに含む、項目50に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目52)
解読されたビットストリームを検証するためにさらに翻訳可能である、項目51に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目53)
前記解読されたビットストリームを検証することは、第3のMACまたは第3のデジタル署名を使用して行われる、項目52に記載のソフトウェアシステムまたはコンピュータプログラム。
(項目54)
前記キーの暗号化されたバージョンを前記サーバに返送するためにさらに翻訳可能である、項目53に記載のソフトウェアシステムまたはコンピュータプログラム。
In other similar embodiments, a message digest is used to determine if the decrypted bitstream is authentic.
For example, the present invention provides the following items.
(Item 1)
A method for a recursive security protocol to protect digital content,
Encrypting the bitstream with a first encryption algorithm;
Associating a first decryption algorithm with the encrypted bitstream;
Encrypting both the encrypted bitstream and the first decryption algorithm with a second encryption algorithm to yield a second bitstream;
Associating a second decryption algorithm with the second bitstream;
Including the method.
(Item 2)
Further comprising decrypting the first bitstream and the second bitstream by the first associated decryption algorithm and the second associated decryption algorithm, wherein the decryption is accomplished by a target unit The method according to Item 1.
(Item 3)
The method of item 2, wherein the decrypting is performed using a key associated with each decryption algorithm.
(Item 4)
Item 4. The method of item 3, wherein the key resides in the hardware of the target unit or the key is retrieved from a server.
(Item 5)
Item 5. The method of item 4, wherein the key is contained in a key data structure.
(Item 6)
6. The method of item 5, wherein the key data structure also contains a time stamp and a countdown value.
(Item 7)
6. The method of item 5, wherein the key data structure is encrypted using a temporary key or a primary secret key.
(Item 8)
8. The method of item 7, wherein the key data structure is contained within a key list data structure.
(Item 9)
9. The method of item 8, wherein the target unit maintains a copy of the key list data structure.
(Item 10)
10. The method of item 9, further comprising encrypting the key list data structure using the temporary key or the primary secret key.
(Item 11)
4. The method of item 3, wherein each encryption algorithm is a symmetric key system or an asymmetric key system.
(Item 12)
4. The method of item 3, further comprising associating a first message authentication code (MAC) or a first digital signature with each encrypted bitstream.
(Item 13)
13. The method of item 12, further comprising generating the first MAC or first digital signature using a hashing function and a public key.
(Item 14)
14. The method of item 13, further comprising verifying that each encrypted bitstream is authentic.
(Item 15)
Validating each encrypted bitstream is
Generating a second MAC or second digital signature;
Comparing the second MAC or second digital signature with the first MAC or first digital signature;
The method according to item 14, further comprising:
(Item 16)
16. The method of item 15, further comprising verifying the decrypted bitstream.
(Item 17)
17. A method according to item 16, wherein verifying the decrypted bitstream is performed using a third MAC or a third digital signature.
(Item 18)
18. The method of item 17, further comprising returning an encrypted version of the key to the server.
(Item 19)
A system for a recursive security protocol that protects digital content,
Encrypting the bitstream with a first encryption algorithm;
Associating a first decryption algorithm with the encrypted bitstream;
Encrypting both the encrypted bitstream and the first decryption algorithm with a second encryption algorithm to yield a second bitstream;
Associating a second decryption algorithm with the second bitstream;
A system that is operable for.
(Item 20)
The first associated decryption algorithm and the second associated decryption algorithm are further operable to decrypt the first bitstream and the second bitstream, the decryption being performed by a target unit 20. A system according to item 19, achieved by:
(Item 21)
21. The system of item 20, wherein the decrypting is performed using a key associated with each decryption algorithm.
(Item 22)
Item 22. The system of item 21, wherein the key resides in hardware of the target unit or is retrieved from a server.
(Item 23)
24. The system of item 22, wherein the key is contained in a key data structure.
(Item 24)
24. The system of item 23, wherein the key data structure also contains a time stamp and a countdown value.
(Item 25)
24. The system of item 23, wherein the key data structure is encrypted using a temporary key or a primary secret key.
(Item 26)
26. The system of item 25, wherein the key data structure is contained in a key list data structure.
(Item 27)
27. The system of item 26, wherein the target unit maintains a copy of the key list data structure.
(Item 28)
28. The system of item 27, further operable to encrypt the key list data structure using the temporary key or the primary secret key.
(Item 29)
Item 22. The system of item 21, wherein each encryption algorithm is a symmetric key system or an asymmetric key system.
(Item 30)
28. The system of item 21, further operable to associate a first message authentication code (MAC) or a first digital signature with each encrypted bitstream.
(Item 31)
32. The system of item 30, further operable to generate the first MAC or first digital signature using a hashing function and a public key.
(Item 32)
32. The system of item 31, wherein the system is further operable to verify that each encrypted bitstream is authentic.
(Item 33)
Validating each encrypted bitstream is
Item 32 further comprising generating a second MAC or second digital signature and comparing the second MAC or second digital signature with the first MAC or first digital signature. The system described in.
(Item 34)
34. A system according to item 33, further operable to verify the decrypted bitstream.
(Item 35)
35. The system of item 34, wherein verifying the decrypted bitstream is performed using a third MAC or a third digital signature.
(Item 36)
36. The system of item 35, further operable to send an encrypted version of the key back to the server.
(Item 37)
Encrypting the bitstream with a first encryption algorithm;
Associating a first decryption algorithm with the encrypted bitstream;
Encrypting both the encrypted bitstream and the first decryption algorithm with a second encryption algorithm to yield a second bitstream;
Associating a second decryption algorithm with the second bitstream;
A software system or computer program for a recursive security protocol that protects digital content, containing instructions that can be translated for.
(Item 38)
Further translatable to decrypt the first bitstream and the second bitstream by the first associated decryption algorithm and the second associated decryption algorithm, the decryption being accomplished by a target unit 38. The software system or computer program according to item 37.
(Item 39)
40. The software system or computer program of item 38, wherein the decrypting is performed using a key associated with each decryption algorithm.
(Item 40)
40. The software system or computer program of item 39, wherein the key resides in the hardware of the target unit or is retrieved from a server.
(Item 41)
41. The software system or computer program according to item 40, wherein the key is contained in a key data structure.
(Item 42)
42. The software system or computer program of item 41, wherein the key data structure also contains a time stamp and a countdown value.
(Item 43)
42. The software system or computer program of item 41, wherein the key data structure is encrypted using a temporary key or a primary secret key.
(Item 44)
44. The software system or computer program according to item 43, wherein the key data structure is contained in a key list data structure.
(Item 45)
45. A software system or computer program according to item 44, wherein the target unit maintains a copy of the key list data structure.
(Item 46)
46. A software system or computer program according to item 45, further translatable to encrypt the key list data structure using the temporary key or the primary secret key.
(Item 47)
40. A software system or computer program according to item 39, wherein each encryption algorithm is a symmetric key system or an asymmetric key system.
(Item 48)
40. The software system or computer program of item 39, further translatable to associate a first message authentication code (MAC) or a first digital signature with each encrypted bitstream.
(Item 49)
49. The software system or computer program of item 48, wherein the software system or computer program is further translatable to generate the first MAC or first digital signature using a hashing function and a public key.
(Item 50)
50. The software system or computer program of item 49, wherein each encrypted bitstream is further translatable to verify that it is authentic.
(Item 51)
Validating each encrypted bitstream is
Generating a second MAC or second digital signature;
Comparing the second MAC or second digital signature with the first MAC or first digital signature;
The software system or computer program of item 50, further comprising:
(Item 52)
52. The software system or computer program of item 51, wherein the software system or computer program is further translatable to verify the decrypted bitstream.
(Item 53)
53. The software system or computer program of item 52, wherein verifying the decrypted bitstream is performed using a third MAC or a third digital signature.
(Item 54)
54. A software system or computer program according to item 53, wherein the encrypted version of the key is further translatable for returning to the server.

本発明のこれらの側面および他の側面は、以下の説明および添付図面と併せて考慮すると、より良好に認識および理解されるであろう。しかしながら、以下の説明は、本発明の種々の実施形態およびその多数の具体的詳細を示す一方で、限定ではなく例証として挙げられることを理解されたい。その精神から逸脱することなく、本発明の範囲内で、多くの置換、修正、追加、および/または再配設を行ってもよく、本発明は、全てのそのような置換、修正、追加、および/または再配設を含む。   These and other aspects of the invention will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. However, it is to be understood that the following description is given by way of illustration and not limitation, while showing various embodiments of the invention and numerous specific details thereof. Many substitutions, modifications, additions and / or rearrangements may be made within the scope of the present invention without departing from the spirit thereof, and the invention includes all such substitutions, modifications, additions, And / or including relocation.

本明細書に付随し、その一部を形成する図面は、本発明のある側面を示すように含まれる。本発明、および本発明に提供されるシステムの構成要素および動作のより明確な概念は、図面に図示された、例示的な、したがって非限定的な実施形態を参照することによってより容易に明白となり、図中、同一参照数字は同じ構成要素を指定する。本発明は、本明細書で提示される説明と組み合わせて、これらの図面のうちの1つ以上を参照することによって、より良好に理解することができる。図面に図示された特徴は、必ずしも一定の縮尺で描かれていないことに留意されたい。
図1は、セキュリティプロトコルエンジンの実施形態のブロック図である。 図2は、暗号解読キーデータ構造の実施形態の表示である。 図3は、セキュリティプロトコルの暗号化および配布工程の実施形態の図である。 図4は、セキュリティプロトコルの実施形態に対する暗号解読およびローディング工程の図である。 図5は、セキュリティプロトコルの暗号化/暗号解読工程の一実施形態の図である。 図6は、キーリストデータ構造の実施形態の表示である。 図7Aは、一時キー所有権譲渡手順の実施形態の図である。 図7Bは、一時キー所有権譲渡手順の実施形態の図である。
The drawings accompanying and forming a part of this specification are included to illustrate certain aspects of the present invention. The invention and the clearer concepts of the components and operation of the system provided by the invention will become more readily apparent by referring to the exemplary and therefore non-limiting embodiments illustrated in the drawings. In the figure, the same reference numerals designate the same components. The invention may be better understood by reference to one or more of these drawings in combination with the description presented herein. It should be noted that the features illustrated in the drawings are not necessarily drawn to scale.
FIG. 1 is a block diagram of an embodiment of a security protocol engine. FIG. 2 is a representation of an embodiment of a decryption key data structure. FIG. 3 is a diagram of an embodiment of a security protocol encryption and distribution process. FIG. 4 is a diagram of a decryption and loading process for an embodiment of a security protocol. FIG. 5 is a diagram of one embodiment of a security protocol encryption / decryption process. FIG. 6 is a display of an embodiment of a key list data structure. FIG. 7A is a diagram of an embodiment of a temporary key ownership transfer procedure. FIG. 7B is a diagram of an embodiment of a temporary key ownership transfer procedure.

添付図面に図示され、以下の説明で詳述される非限定的な実施形態を参照して、本発明ならびにその種々の特徴および有利な詳細をより全体的に説明する。不必要に本発明を細部にわたって判り難くしないように、周知の出発材料、処理技法、構成要素、および同等物の説明は省略する。しかしながら、詳細な説明および具体例は、本発明の好ましい実施形態を示す一方で、限定ではなく例証として挙げられることを理解されたい。基本的な発明概念の精神および/または範囲内である種々の置換、修正、追加、および/または再配設は、本開示から当業者にとって明白となるであろう。   The invention and its various features and advantageous details are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known starting materials, processing techniques, components, and equivalents are omitted so as not to unnecessarily obscure the present invention in detail. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration and not limitation. Various substitutions, modifications, additions and / or rearrangements within the spirit and / or scope of the basic inventive concept will become apparent to those skilled in the art from this disclosure.

ここで、デジタルコンテンツを保護することを目的とする、セキュリティプロトコル用のシステムおよび方法に注意を向ける。これらのセキュリティプロトコルは、任意のデジタルコンテンツに使用可能であり、また、実際のデジタルコンテンツが改変されることを必要とせずに従来の透かし方式に通常は関連付けられる、同一性追跡の概念を支援することもできる。これらのプロトコルは、全てのデジタルビットストリームが平等であるという前提に基づくため、プロトコル自体の更新へのアクセスを制御するために、再帰的様式で使用することさえできる。言い換えれば、データが保護されるメディアストリームであろうと、それらのストリームを再生する必要がある実行可能コードであろうと、それらのストリームを再生する必要がある暗号化された実行可能コードであろうと、それらのストリームを再生する必要がある暗号化されたコードを解読する必要がある、実行可能コードであろうと、暗号解読コードとともに使用されるキー等であろうと、プロトコルは、デジタルデータの種類を区別しない。これらのデータのデジタル性質のみが、プロトコルにとって重要なものである。したがって、デジタルデータの性質および/または使用は、セキュリティプロトコルには関係ないため、プロトコルは、自らを保護することが可能である。   Attention is now directed to systems and methods for security protocols aimed at protecting digital content. These security protocols support the concept of identity tracking that can be used with any digital content and is usually associated with traditional watermarking schemes without requiring the actual digital content to be modified. You can also Because these protocols are based on the premise that all digital bitstreams are equal, they can even be used in a recursive manner to control access to updates of the protocol itself. In other words, whether the data is protected media streams, executable code that needs to play those streams, or encrypted executable code that needs to play those streams, Whether the executable code, the key used with the decryption code, etc. need to decrypt the encrypted code that needs to play those streams, the protocol distinguishes the type of digital data do not do. Only the digital nature of these data is important to the protocol. Thus, because the nature and / or use of digital data is not related to the security protocol, the protocol can protect itself.

この能力は、実行中でさえも、それが作動しているハードウェアの変更を必要とせずに、(例えば、最近発見されたセキュリティホールを修繕するように)セキュリティプロトコルを更新できることを意味する。「古いほうの」セキュリティシステムは、新しいほうのセキュリティシステムの一部として「包含される」(すなわち、システム全体の新しくより安全なレベルの保護を追加するために、古い保護「包装物」を決して剥がさなくてもよい)。したがって、システム全体は、最新で最も安全な暗号化および/またはアクセス制御システムにカプセル化される。新しいキーが追加されてもよいだけではなく、既存のシステムの最上部にも同様に、完全に新しいセキュリティおよび/または暗号化アルゴリズムを追加することができる。   This capability means that the security protocol can be updated (eg, to repair a recently discovered security hole) without requiring a change in the hardware on which it is operating, even during execution. The “older” security system is “included” as part of the newer security system (ie, the old protection “packaging” is never added to add a new, safer level of protection for the entire system. You don't have to remove it). Thus, the entire system is encapsulated in the latest and most secure encryption and / or access control system. Not only can new keys be added, but completely new security and / or encryption algorithms can be added to the top of existing systems as well.

この融通性は、プロトコルが、時間限定レンタル、ペイパービュー、多重バージョニング、機械依存性ライセンス取消、あるユーザから別のユーザへの所有権の永久譲渡を含む、多数のビジネスモデルを支援できるようにする。   This flexibility allows the protocol to support a number of business models, including time-limited rentals, pay-per-view, multiple versioning, machine-dependent license revocation, and permanent transfer of ownership from one user to another.

著作権のあるソフトウェアアプリケーションが例示的実施形態で利用されるものの、ビデオ、音声データ、ソース、およびオブジェクトコードを含む、あらゆるビットストリームにセキュリティを提供するために、同じ方法およびシステムを使用できることが、当業者によって理解されるであろう。   Although copyrighted software applications are utilized in the exemplary embodiments, the same method and system can be used to provide security for any bitstream, including video, audio data, source, and object code, It will be understood by those skilled in the art.

セキュリティプロトコルの実施形態が提供するように設計される基本機能は、以下を含む(しかし、それらに限定されない)。
公正使用(「タイムシフト」、「スペースシフト」、およびアーカイブバックアップ)
増分アップグレード
所有権の一時譲渡
所有権の永久譲渡
時間限定アクセス
使用限定アクセス(使用される回数)
デバイス特有のライセンス取消
データまたはストリーム特有のライセンス取消
上記のように、(少なくとも最新の著作権コントロールシステム用の)著作権のある作品に含有される知的財産の保護のための一次機構は、単純に、アクセス制御である。しかしながら、そのような機構が回避された場合、最も精巧なアクセス制御機構によって与えられる保護さえ、少ししか価値がない。これは、アクセス制御が役に立たない機構であると言うことではなく、それ自体では全セキュリティシステムではないと言うことである。多数の著作権のあるメディアストリームがインターネット上で公共消費に自由に利用可能であるという事実は、そのようなセキュリティシステムをほとんど常に回避できるという事実の証拠である。この種類のアクセス制御はまた、原本が破壊される危険がある場合に必要な、合法的に購入された著作権のある作品のバックアップコピーを作製する機構を確立することをより困難にする。したがって、本明細書で説明されるセキュリティプロトコルは、有用にするために、いかなる種類のアクセス制御システムも必要としない。
The basic functions that the security protocol embodiments are designed to provide include (but are not limited to) the following:
Fair use ("time shift", "space shift", and archive backup)
Temporary transfer of incremental upgrade ownership Permanent transfer time of ownership Limited access Use limited access (number of times used)
Device specific license revocation data or stream specific license revocation As noted above, the primary mechanism for protection of intellectual property contained in copyrighted work (at least for modern copyright control systems) is simple. It is access control. However, if such a mechanism is avoided, even the protection afforded by the most sophisticated access control mechanisms is of little value. This is not to say that access control is a useless mechanism, but that by itself is not a full security system. The fact that a large number of copyrighted media streams are freely available for public consumption on the Internet is evidence of the fact that such a security system can almost always be avoided. This type of access control also makes it more difficult to establish a mechanism to make a backup copy of a legally purchased copyrighted work that is necessary if the original is at risk of being destroyed. Thus, the security protocol described herein does not require any kind of access control system to be useful.

説明されるセキュリティプロトコルは、作品自体を構成するデジタルデータではなく、著作権のある作品の表現を制御することに専念する。そのようなものとして、プロトコルは、著作権のある作品、またはその作品がどのように解釈されるかを説明するために使用される他のデジタルデータをカプセル化するために使用される、デジタルデータを区別しない。結果として、プロトコルは、他のセキュリティプロトコルをカプセル化するためにさえ使用することができる。   The security protocol described is dedicated to controlling the representation of copyrighted work, not the digital data that makes up the work itself. As such, a protocol is a digital data that is used to encapsulate a copyrighted work or other digital data that is used to describe how the work is interpreted. Does not distinguish. As a result, the protocol can even be used to encapsulate other security protocols.

(基本的動作説明:)
セキュリティプロトコルの実施形態は、それらのコードが、そのアルゴリズムをコピーあるいは不正流用しようとする者による分解から保護されるという高い信頼度を、1つのソフトウェアの作者が有することを可能にするように設計される。それらはまた、その機能性を改変しようと試みる者による修正からこのコードを保護するようにも設計される。他の汎用コンピューティングシステムにおいてこれらの主要な特性を実装することができる方法のうちの1つを、以下の項で論議する。これら2つの主要機能の副産物として発生する、付加的財産は、ソフトウェアを作動させることができる条件(すなわち、いつ、どのように、およびどの1つまたは複数の機械上で、コードが実行されることが可能となるか)を制御する能力である。これらの機能のうちの第1は、システムに改ざん防止タイマ要素を追加することによって達成されてもよい。他は、問題のブロックコードを実行するために満たされなければならない、所望の条件を示すために使用される、安全なデータ構造を実装する手段によって達成される。このデータ構造はハードウェア特有ではないため、種々の方法で使用することができ、それを解釈するために使用されるソフトウェアを更新することによって修正されることが可能である。より効率的にプロトコルを実装するために利用される、ハードウェア特有の特徴を論議し、プロトコルを支援するために、これらの特徴をどのように使用できるかという例を挙げる。最後に、著作権のある作品を保護するためにプロトコルをどのように使用できるかを示す。
(Basic operation description :)
Security protocol embodiments are designed to allow one software author to have a high degree of confidence that their code is protected from being broken by those who attempt to copy or misappropriate the algorithm. Is done. They are also designed to protect this code from modification by anyone attempting to alter its functionality. One of the ways in which these key characteristics can be implemented in other general purpose computing systems is discussed in the following section. Additional assets generated as a by-product of these two main functions are the conditions under which the software can be run (ie, when, how, and on which machine or machines) Is the ability to control. The first of these functions may be achieved by adding an anti-tamper timer element to the system. The other is achieved by means of implementing a secure data structure that is used to indicate the desired condition that must be met to execute the block code in question. Since this data structure is not hardware specific, it can be used in a variety of ways and can be modified by updating the software used to interpret it. Discuss the hardware-specific features used to implement the protocol more efficiently and give examples of how these features can be used to support the protocol. Finally, it shows how the protocol can be used to protect copyrighted works.

セキュリティプロトコルの実施形態は、その意図された受信者によって解読されることのみを可能にするような方法で、コードのブロックを暗号化する能力に依存する。これは、よく理解された問題であり、多数の業界標準暗号化アルゴリズムの基礎である。しかしながら、プロトコルのコアが典型的なオンチップ命令キャッシュ(I−キャッシュ)の(比較的)小さい範囲内に適合できれば役立つという事実、および半自律的方式で作動することが可能であるという事実といった、セキュリティプロトコルの実施形態とともに使用するために考慮されるべき2つの付加的な要因がある。言い換えれば、プロトコルが小さく、通常の日常動作に中央セキュリティサーバの使用を必要としなければ、有用である。   An embodiment of a security protocol relies on the ability to encrypt a block of code in such a way that it can only be decrypted by its intended recipient. This is a well-understood problem and the basis for many industry standard encryption algorithms. However, the fact that the core of the protocol is useful if it can fit within a (relative) small range of a typical on-chip instruction cache (I-cache), and the fact that it can operate in a semi-autonomous manner, such as There are two additional factors that should be considered for use with security protocol embodiments. In other words, it is useful if the protocol is small and does not require the use of a central security server for normal daily operations.

(ハードウェア:)
セキュリティプロトコルシステムの要素は、プロトコルエンジン(「標的ユニット」としても知られる)100上で安全な方式でプロトコルを実装する、1組のハードウェアブロックを含んでもよい。このセキュリティプロトコルを実行することが可能なデバイスの一例の全体的なブロック図を図1に示す。これらのブロックは、プロトコルが正しく動作するために、ハードウェアに投入される必要はないが、下記のハードウェア要素の全てを含むデバイスは、最小限の諸経費でプロトコルを実装することが可能となる。
(hardware:)
The elements of the security protocol system may include a set of hardware blocks that implement the protocol in a secure manner on a protocol engine (also known as a “target unit”) 100. A general block diagram of an example of a device capable of executing this security protocol is shown in FIG. These blocks do not need to be put into hardware for the protocol to work correctly, but devices that include all of the hardware elements listed below can implement the protocol with minimal overhead. Become.

これらのハードウェアブロックのうちの第1は、リアルタイムクロック102である。これは、中央サーバとの安全な相互作用によって設定またはリセットされることが可能な、自由作動タイマである。これは完全に必須のブロックではないが、安全な時間標準のクエリを行うことによって時間が確立されてもよいため、この機能をオンチップにすることがより便利となる。これは、時間依存性ソフトウェアライセンスと関係があり、そのようなものの例を本書の以降の項で挙げる。   The first of these hardware blocks is the real time clock 102. This is a free running timer that can be set or reset by a secure interaction with the central server. This is not a completely mandatory block, but it is more convenient to make this feature on-chip because time may be established by doing a secure time standard query. This has something to do with time-dependent software licenses, examples of such are given in later sections of this document.

別のハードウェア要素は、実行されるコードをオンチップで記憶することができるメモリ110のブロックである。これは、典型的にはI−キャッシュとして知られているが、いくつかの実施形態では、このI−キャッシュ110の各部分の重要な特性は、あるブロックに含有されるデータがCPU実行ユニット120のみによって可読であることである。言い換えれば、I−キャッシュメモリ130のこの特定のブロックは、実行専用であり、いずれのソフトウェアによっても、読み取ることも書き込みすることもできない。I−キャッシュのこの特別なセクションを「保護されたコードブロック」130と呼ぶ。実行されるコードが、この保護されたI−キャッシュブロック130に実際に蓄積される方式は、別のハードウェア要素を介するものであってもよい。   Another hardware element is a block of memory 110 that can store code to be executed on-chip. This is typically known as an I-cache, but in some embodiments, an important characteristic of each portion of the I-cache 110 is that the data contained in a block is stored in the CPU execution unit 120. Be readable only by. In other words, this particular block of I-cache memory 130 is dedicated to execution and cannot be read or written by any software. This special section of the I-cache is referred to as a “protected code block” 130. The manner in which the executed code is actually stored in this protected I-cache block 130 may be via another hardware element.

加えて、安全なコードブロックの動作を増進するために使用することができる、他のカテゴリの可能な「強化」がある。これらのうちの1つは、CPU120が安全なコードを実行している間のみアクセス可能である、および/または安全なコードブロックの実行の完了時(または、何らかの理由で、実行ユニットが「通常の」I−キャッシュからコードの任意のセクションに飛んだ場合)に消去される、1組(一部)のCPUレジスタ140を指定する能力である。たとえ「保護された」コードおよび「保護されていないコード」の混合物を実行するCPU120の可能性がないように思われる場合があるとしても、割り込みルーチンに飛ぶ時にコンテキストを切り替える工程に何が起こり得るか、およびCPU120コンテキストがどこに記憶されるか(ほとんどのCPUはコンテキストを主要メモリに記憶し、そこでは潜在的に、保護されていないコードブロックによって、以降の時点で発見の対象となる)を常に考慮しなければならない。   In addition, there are other categories of possible “enhancements” that can be used to enhance the operation of secure code blocks. One of these is accessible only while the CPU 120 is executing secure code and / or upon completion of execution of a secure code block (or for some reason the execution unit is “normal” The ability to specify a set (partial) of CPU registers 140 to be erased (if jumped to any section of code from the I-cache). What may happen to the process of switching contexts when jumping to an interrupt routine, even though it may not seem possible for CPU 120 to execute a mixture of "protected" code and "unprotected code" And where the CPU 120 context is stored (most CPUs store the context in main memory where it is potentially subject to discovery at a later point in time by an unprotected code block) Must be considered.

別の可能性(どのレジスタ140が消去されるかを保護されたコードブロックの作者が明示的に識別することを必要とする以外)は、それを自動的に行わせることである。これは、CPU実行ユニット120が、保護されたコードブロックの内側で実行している間にどのレジスタ140が読み取られるか、または書き込まれるかを追跡し、次いで、「安全」モードの終了時に自動的に消去する場合となる。これは、2種類のコードブロックの間で共有されることが許可されているデータのみが原型を保つように、保護されたコードが自ら迅速に「一掃」できるようにする。「自動」工程は、「明示的」手順よりも潜在的に安全となる場合があるが、コードの作者が保護されたコードブロックと保護されていないコードブロックとの間で情報を共有することを希望する場合をより複雑にする場合がある。   Another possibility (other than requiring the author of the protected code block to explicitly identify which register 140 is to be erased) is to have it done automatically. This keeps track of which registers 140 are read or written while the CPU execution unit 120 is executing inside the protected code block and then automatically at the end of the “safe” mode. It will be erased. This allows the protected code to “wipe” itself quickly so that only data that is allowed to be shared between the two types of code blocks remains intact. The “automatic” process may be potentially safer than the “explicit” procedure, but it allows code authors to share information between protected and unprotected code blocks. It may make the desired case more complicated.

安全なコードセグメントと安全ではないコードセグメントとの間のレジスタ記憶データの「漏出」に対処するための別の潜在的な方式は、CPU120が保護されたコードを実行している時にのみ使用される、一意の1組のレジスタを識別することである。大型汎用レジスタセット140を伴う一部のCPUアーキテクチャにとって、これは、最初はひどく高価に思われるかもしれない。しかしながら、多くの現代CPUで実践されている、レジスタ名変更およびスコアボード構造の修正されたバージョンを使用することによって、とてつもない量の諸経費を必要とせずに(すなわち、物理的に異なった1組の「安全な」レジスタを実装するステップに関与するシリコンの諸経費なしで)、同じ効果が達成され得る。保護されたコードブロックの実行をアトミック作用(すなわち、割り込み可能ではない)として扱う場合、これらの問題点は対処しやすいが、この利便性は、性能および潜在的な全体のコード複雑性を犠牲にする場合がある。I−キャッシュの「保護された」部分130は、I−キャッシュの「通常の」部分150とは異なるCPUへのデータパスを必ずしも必要としないことに留意されたい。実際、2つは完全に同義となり得る。   Another potential scheme for dealing with "leakage" of register stored data between safe and unsafe code segments is only used when CPU 120 is executing protected code Identifying a unique set of registers. For some CPU architectures with a large general purpose register set 140, this may seem terribly expensive at first. However, by using a modified version of the register renaming and scoreboard structure that is practiced on many modern CPUs, it does not require a tremendous amount of overhead (ie, a physically different set). The same effect can be achieved (without the silicon overhead involved in implementing the "safe" register). These issues are easy to address when treating protected code block execution as an atomic action (ie not interruptible), but this convenience comes at the cost of performance and potential overall code complexity. There is a case. Note that the “protected” portion 130 of the I-cache does not necessarily require a different data path to the CPU than the “regular” portion 150 of the I-cache. In fact, the two can be completely synonymous.

一方向ハッシュ関数ブロック160も示されている。ハードウェアにおいてこの機能性を実装する必要なく、セキュリティプロトコルの実施形態を実行することが可能となるエンジンを構築することが可能である。しかしながら、ハッシングアルゴリズムのある部分用のハードウェアアクセラレータは、確かに望ましい特徴である。この関数ブロックのハードウェアおよびソフトウェア実装間のトレードオフを以降で論議する。   A one-way hash function block 160 is also shown. It is possible to build an engine that can implement embodiments of the security protocol without having to implement this functionality in hardware. However, a hardware accelerator for certain parts of the hashing algorithm is certainly a desirable feature. The trade-off between the hardware and software implementation of this function block is discussed below.

標的ユニット100の別の部分は、実行可能コードブロックに翻訳するために、暗号化されたメッセージに影響するように標的ユニット100の秘密キーおよび公開/プライベートキー(以降で説明)を使用する、ハードウェア補助の暗号解読システム170であってもよい。この暗号解読システム170は、多数の方法で実装することができる。プロトコル全体の速度およびセキュリティは、このブロックの構造に依存し得るため、それはセキュリティシステム更新に適応するように十分に融通性があり、かつ、システムがリアルタイムコード更新を行うことを可能にするように十分に高速となるべきである。   Another part of the target unit 100 uses the target unit's 100 private key and public / private key (discussed below) to affect the encrypted message to translate into an executable code block. It may be a wear assisted decryption system 170. The decryption system 170 can be implemented in a number of ways. Because the overall protocol speed and security can depend on the structure of this block, it is flexible enough to accommodate security system updates and allows the system to perform real-time code updates It should be fast enough.

これら2つの制約を念頭に置くと、正確にどの暗号化アルゴリズムがこのハードウェアブロック170に使用されるかは、プロトコルにとって重要ではない。最大限の融通性を促進するためには、実際のハードウェアは、非アルゴリズム特有の方式で使用されるように十分に汎用であるが、この機構を実装することができる多くの異なる手段があると想定される。   With these two constraints in mind, it is not important for the protocol which encryption algorithm is used for this hardware block 170. In order to facilitate maximum flexibility, the actual hardware is general enough to be used in a non-algorithm specific manner, but there are many different means by which this mechanism can be implemented. It is assumed.

また、点線でブロック図に示されたオンチップ乱数発生器180があることにも留意されたい。このブロックはオプションである。加えて、それは、ソフトウェアを用いた疑似乱数発生システムのシード値を供給するために使用することができる、十分な乱数の配列を産生する好適なオンチップ方法に置換することができる。この疑似乱数発生器はまた、ハードウェアまたは「安全な」ソフトウェアに潜在的に実装することもできる。当然ながら、ハードウェア実装と対比した、ソフトウェアを用いたシステムの融通性の同じ原理のトレードオフが、この場合にも該当する。しかしながら、標的デバイス100が乱数を生成しなければならない場合は、このプロトコルで頻繁に発生しないため、この特定の機能がハードウェア加速型ではない場合に、全体的な性能に影響を及ぼす可能性は低い。   It should also be noted that there is an on-chip random number generator 180 shown in the block diagram with a dotted line. This block is optional. In addition, it can be replaced by a suitable on-chip method that produces an array of sufficient random numbers that can be used to provide seed values for a pseudo-random number generation system using software. This pseudo-random number generator can also potentially be implemented in hardware or “secure” software. Of course, the trade-off of the same principle of system flexibility using software compared to hardware implementation also applies here. However, if the target device 100 must generate a random number, it will not occur frequently with this protocol, so if this particular function is not hardware accelerated, it may affect the overall performance. Low.

(秘密キー:)
各プロトコルエンジン(「標的」ユニット)100は、オンチップで記憶される、2組の秘密キー定数104を有してもよく、そのどちらの値もソフトウェア可読ではない。これらのキーの第1(一次秘密キー)は、1組の秘密キーとして実際に編成されてもよく、その1つのみが、任意の特定の時に可読である。ユニットの「所有権」が変更される(例えば、チップを含有する機器が販売あるいは譲渡される)場合、現在動作中の一次秘密キーは、「消去される」か、あるいは異なる値によって上書きされてもよい。この値は、安全な方式でユニットに転送することができるか、または、この第1のキーが消去される時にしか使用されないような方式でユニットにすでに記憶することができるかのいずれかである。事実上、これは、その所有権が変更される時、またはそのような変更の何らかの他の理由(障害が起きたキー等)がある場合に、その特定のユニットに新しい一次秘密キーを発行するステップと同等である。この一次秘密キー値が記憶される唯一の他の場所は、使用許諾権限における中央サーバ上にある。
(Secret key :)
Each protocol engine (“target” unit) 100 may have two sets of secret key constants 104 stored on-chip, neither of which is software readable. The first of these keys (the primary secret key) may actually be organized as a set of secret keys, only one of which is readable at any particular time. If the “ownership” of a unit is changed (eg the device containing the chip is sold or transferred), the primary secret key currently in operation is “erased” or overwritten with a different value Also good. This value can either be transferred to the unit in a secure manner or can already be stored in the unit in a manner that is only used when this first key is erased. . In effect, this will issue a new primary secret key to that particular unit when its ownership changes or if there is some other reason for such a change (such as a failed key) It is equivalent to a step. The only other place where this primary secret key value is stored is on the central server in the licensing authority.

一次秘密キーは、中央サーバのデータベース中の特定の標的ユニット100のシリアル番号106と関連付けられてもよい。シリアル番号106は、標的デバイス100上のどこに記憶されてもよく、ソフトウェアアクセス可能であってもよく、一次秘密キーとは他の関係がない。ユニットの動作側面の任意の更新(セッキュリティシステムの更新等)は、一次秘密キーを使用することによって達成されてもよい。このキーの値が、標的ユニット100および使用許諾権限以外の関係者によって知られていない場合、それは、安全な中央サーバを通るリンクを伴わない、いずれの安全なトランザクションにも使用することができない。しかしながら、この一次キーのセキュリティは、最重要であるため、絶対的に必要なときのみに使用されるべきである。したがって、それはおそらく、例えば、中央使用許諾権限のサーバと標的ユニットとの間の安全なトランザクションのための通信リンクを暗号化するために使用されるべきではない。このリンクは、現在認められている標準的実践に従って、その場で生成される一時キーを使用する標準キー交換プロトコルを使用して保護することができる。   The primary secret key may be associated with the serial number 106 of a particular target unit 100 in the central server database. The serial number 106 may be stored anywhere on the target device 100, may be software accessible, and has no other relationship with the primary secret key. Any updates to the operational aspects of the unit (such as security system updates) may be accomplished by using a primary secret key. If the value of this key is not known by a party other than the target unit 100 and the licensing authority, it cannot be used for any secure transaction without a link through the secure central server. However, this primary key security is of paramount importance and should only be used when absolutely necessary. Thus, it should probably not be used, for example, to encrypt a communication link for secure transactions between a central licensing authority server and a target unit. This link can be protected using a standard key exchange protocol that uses a temporary key generated on the fly in accordance with currently accepted standard practice.

2次秘密キーは、標的ユニット100自体にのみ知られてもよい(したがって、使用許諾権限には知られない)。標的ユニット100のCPU120は、1次または2次秘密キーのいずれかの値にアクセスすることが全くできないため、ある意味、標的ユニット100は、自らの秘密キー104さえも「知らない」。これらのキーは、標的ユニット100のCPU120のセキュリティブロック内でのみ記憶および使用される。標的ユニットの全体的なセキュリティを強化するのは、これらの秘密キーの両方の組み合わせである。それらがどのように使用されるかを以降に説明する。   The secondary secret key may only be known to the target unit 100 itself (and thus not known to the licensing authority). In a sense, the target unit 100 does not even “know” its own secret key 104 because the CPU 120 of the target unit 100 has no access to the value of either the primary or secondary secret key. These keys are stored and used only within the security block of the CPU 120 of the target unit 100. It is a combination of both of these secret keys that enhances the overall security of the target unit. How they are used is described below.

別の1組のキーが、一時公開/プライベートキーシステム(非対称キーシステムまたはPKIシステムとしても知られる)の一部として動作してもよい。このペアのキー108は、その場で生成され、中央サーバの干渉なしに、同様のユニット間の安全な通信リンクを確立するために使用される。そのようなシステムのセキュリティは、典型的には、同等のキー長さの対称キー暗号化システムよりも低いため、これらのキー108は、上記の1組の秘密キー104よりもサイズが大きくなければならない。これらのキー108は、オンチップタイマブロックに存在する値と併用されてもよい。これらのキーはその場で生成されるため、それらが生成される方式は、ある種の乱数発生システム180に依存している。最後に、生成されたキー108がいわゆる「弱い」キーの部類に含まれないことを確実にするように注意を払わなければならないことに留意されたい。「弱い」と見なされる特定の1組のキーは、使用される特定の暗号化アルゴリズムに依存している。   Another set of keys may operate as part of a temporary public / private key system (also known as an asymmetric key system or PKI system). This pair of keys 108 is generated on-the-fly and used to establish a secure communication link between similar units without central server interference. Since the security of such systems is typically lower than symmetric key encryption systems of equivalent key length, these keys 108 must be larger in size than the set of private keys 104 described above. Don't be. These keys 108 may be used in conjunction with values present in the on-chip timer block. Since these keys are generated on the fly, the manner in which they are generated depends on some kind of random number generation system 180. Finally, it should be noted that care must be taken to ensure that the generated key 108 is not included in the so-called “weak” key category. The particular set of keys that are considered “weak” depends on the particular encryption algorithm used.

(動作詳細:)
セキュリティプロトコルの実施形態が動作する方式は、システム初期化、安全なコード生成および大量配布、安全なコードローディングおよび実行、キーリストデータ構造の構成、一時ライセンス譲渡、永久ライセンス譲渡、システム所有権譲渡、ライセンス取消、およびセキュリティシステム更新といった、いくつかの異なる工程に分類することができる。これらのそれぞれを順に論議する。しかしながら、下記の例は、論議を簡素にする目的で選択され、必ずしもこのプロトコルを実装することができる最も効率的な方式ではない(または唯一の方式でもない)ことに留意されたい。
(Operation details :)
The manner in which the embodiments of the security protocol operate includes system initialization, secure code generation and mass distribution, secure code loading and execution, configuration of key list data structures, temporary license transfer, permanent license transfer, system ownership transfer, It can be categorized into several different processes, such as license revocation and security system update. Each of these will be discussed in turn. However, it should be noted that the example below is chosen for the purpose of simplifying the discussion and is not necessarily the most efficient (or not the only) scheme that can implement this protocol.

(システム初期化)
これは、標的ユニット100の104秘密キーが何らかの初期値に設定されるステップである。この手順は、2つの秘密キーのうちのいずれかに対するいくつかの場所のうちの1つで達成することができるが、ロジスティックな理由によって、シリアル番号106または秘密キー104のいずれかが変更される可能性があり得るのは、組立工程の最後のステップとなるべきである。ユニット100のシリアル番号106がオフチップで記憶される場合、この手順は、最終組立の時点で行われる可能性が最も高い。ユニットのシリアル番号106がオンチップに記憶される場合、チップ製造工程の最後の時点で(すなわち、チップが包装された後)この手順を実行することが最も実用的となるため、生産後またはバーンイン副産物には、機能しない部分を選別する機会がある。こうして、安全に保たれなければならないデータの量が最小化される。プロトコル全体のセキュリティは、ユニット100の秘密キー104のセキュリティに基づいてもよいため、初期化手順は、物理的セキュリティが可能な時点で着手されるべきである。
(System initialization)
This is a step in which the 104 secret key of the target unit 100 is set to some initial value. This procedure can be accomplished in one of several locations for either of the two private keys, but either the serial number 106 or the private key 104 is changed for logistic reasons. The possibility should be the last step of the assembly process. If the serial number 106 of the unit 100 is stored off-chip, this procedure is most likely performed at the time of final assembly. If the unit serial number 106 is stored on-chip, it is most practical to perform this procedure at the end of the chip manufacturing process (ie, after the chip has been packaged), so post-production or burn-in By-products have the opportunity to sort out parts that don't work. In this way, the amount of data that must be kept safe is minimized. Since the security of the entire protocol may be based on the security of the secret key 104 of the unit 100, the initialization procedure should be undertaken when physical security is possible.

一次秘密キーは、2次秘密キーを供給するために使用されるものとは異なる手順で初期化される(またはデバイスに「焼き付けられる」)べきである。実践では、この2次キーは何らかの時点で知られるが(製造工程の何らかの時点でユニットにプログラムされるため)、一旦、それが標的デバイス100上に記憶されると、それが関連付けられるユニットはどこにも記録されるべきではない。監査目的で、(配布の無作為性を試験するため、または何らかの他の理由で)どの部分がどのキーを保持するのかを知っていることとは無関係に、全1組の2次秘密キー値が検査されることが潜在的に望ましてくもよい。しかしながら、システムの安全な性質を維持するために、この2次秘密キーをユニットにプログラムするデバイスは、2次秘密キーを第1の秘密キーまたは標的デバイス100のシリアル番号106のいずれかに関連付ける手段を決して持たないことが望ましい。また、これらの秘密キー104の両方は、以降で説明する理由により、改ざん防止方式で実装されるべきである。これらの2つの秘密キー104がどの順番で初期化されるかは重要ではない。例示的な実施形態で説明される初期化手順後、標的デバイス100のシリアル番号106およびそれらの関連一次秘密キー104が共同して位置する唯一の場所(実際のチップ上以外)は、使用許諾権限510における安全なサーバ上にあるべきである。   The primary secret key should be initialized (or “burned” into the device) in a different procedure than that used to provide the secondary secret key. In practice, this secondary key is known at some point (because it is programmed into the unit at some point in the manufacturing process), but once it is stored on the target device 100, where is the unit with which it is associated? Should not be recorded. For audit purposes, a complete set of secondary secret key values, regardless of knowing which part holds which key (for testing randomness of distribution or for some other reason) May be potentially desired to be inspected. However, in order to maintain the secure nature of the system, the device that programs this secondary secret key into the unit is a means of associating the secondary secret key with either the first secret key or the serial number 106 of the target device 100. It is desirable to never have Also, both of these secret keys 104 should be implemented in a tamper-proof manner for the reasons described below. The order in which these two secret keys 104 are initialized is not important. After the initialization procedure described in the exemplary embodiment, the only location (other than on the actual chip) where the serial number 106 of the target device 100 and their associated primary secret key 104 are jointly located is the license authority. Should be on a secure server at 510.

(安全なコード生成および大量配布)
一例のシナリオにおいて、合理的に分解の心配がなく、特定のデバイス上でのみ実行することができる、このプロトコルの下で作動するようにアプリケーションを生産することを開発者520が希望すると仮定する。各登録された開発者520は、使用許諾権限のサーバ510と通信するために、および開発者によって発行されたあらゆる暗号化されたコードブロックを認証するために使用することができる署名されたメッセージ認証コード(典型的には、デジタル署名またはMACと呼ばれる)を作成するために使用する、あらゆるメッセージを認証するために使用される公開キー/プライベートキーペアを有する。
(Safe code generation and mass distribution)
In one example scenario, assume that developer 520 wishes to produce an application to work under this protocol that can reasonably be run on a specific device without fear of disassembly. Each registered developer 520 can use a signed message authentication that can be used to communicate with the licensing authority server 510 and to authenticate any encrypted code blocks issued by the developer. It has a public / private key pair that is used to authenticate every message that is used to create a code (typically called a digital signature or MAC).

アプリケーションは、デバッグされた後、本来の開発者のみに知られているアプリケーション特有の暗号化アルゴリズムおよびキーを使用して符号化される。このアプリケーション特有のアルゴリズムおよびキーは、非対称(秘密)キーシステムまたは非対称(PKI)キーを用いたシステムのいずれかとなり得る。暗号化されたコードのブロックの端には、それらの発行された公開キー/プライベートキーペアのプライベートキー(したがって、暗号化されたコードブロックに対する一義的デジタル署名を形成する)を使用して、開発者520によって署名されるデジタル署名(またはMAC)が添付される。デジタル署名および対応するコード特有のID番号を形成するように暗号化された、デジタル署名または本来のMACのいずれかは、使用許諾権限に供給されてもよい。アプリケーション開発者520はまた、同様に適切な復号キーを供給することを選択してもよい(この決定のトレードオフを本書の以降の項で論議する)。   After the application is debugged, it is encoded using application specific encryption algorithms and keys known only to the original developer. This application specific algorithm and key can be either an asymmetric (secret) key system or a system using an asymmetric (PKI) key. At the end of the block of encrypted code, the developer uses the private key of their issued public / private key pair (thus forming a unique digital signature for the encrypted code block) A digital signature (or MAC) signed by 520 is attached. Either the digital signature or the original MAC encrypted to form the digital signature and the corresponding code-specific ID number may be provided to the licensing authority. Application developer 520 may also choose to provide an appropriate decryption key as well (the trade-off of this decision is discussed in a later section of this document).

アプリケーション特有のアルゴリズムは、非対称暗号化である場合、メッセージ認証コードを生成するために使用される同じ発行されたPKIキーペアを使用して、必ずしも暗号化される必要がないことに留意されたい。しかしながら、コードブロックの端において記憶されるMACは、既知のハッシングアルゴリズムを使用して生成されるべきであり、また、開発者の発行された公開キーのうちの1つを使用して署名されなければならない(したがって、デジタル署名を形成する)。これにより、標的が既知のハッシング関数および公開キーを使用してMACの真正性を検証できるようにする。   Note that if the application specific algorithm is asymmetric encryption, it does not necessarily have to be encrypted using the same issued PKI key pair used to generate the message authentication code. However, the MAC stored at the end of the code block should be generated using a known hashing algorithm and must be signed using one of the developer's issued public keys. Must (thus forming a digital signature). This allows the target to verify the authenticity of the MAC using a known hashing function and public key.

全てのアプリケーション特有の暗号化キーデータ構造210は、(暗号解読キー自体220に加えて)多数の余分なフィールドを含有してもよい。これらのフィールドのうちの1つは、タイムスタンプ230と、関連マスク値240とを備える。第2は、「カウントダウン値」250を含有する。マスク値240は、キーが有効である時を判定するために、他の2つのフィールド230、250と併用される。この構造の一例を図2に示す(しかし、この同じ機能性を実装することができる多数の手段がある)。また、正確にいくつのビットがフィールドのそれぞれに割り付けられるかはプロトコルに関連しないことにも留意されたい。   All application specific encryption key data structures 210 may contain a number of extra fields (in addition to the decryption key itself 220). One of these fields comprises a time stamp 230 and an associated mask value 240. The second contains a “countdown value” 250. The mask value 240 is used in conjunction with the other two fields 230, 250 to determine when the key is valid. An example of this structure is shown in FIG. 2 (but there are numerous means by which this same functionality can be implemented). Note also that the exact number of bits allocated to each of the fields is not protocol related.

タイムスタンプ値230は、タイムスタンプマスク240フィールドに記憶されるビットパターンに応じて、いくつかの方法で使用できることに留意されたい。タイムスタンプマスク240値は、標的ユニット100の現在の時間との比較を行う時に無視される、一部のタイムスタンプ数字を開発者520が選択できるようにする。しかしながら、一例として、タイムスタンプフィールド230によって支援される最小分解能が1秒であると想定する場合、タイムスタンプデータ230の下位5ビットをマスクすることによって、タイムスタンプフィールド230に記憶される時間から始まる、約32秒の経過にわたって使用される時のみに有効な、特定のキーデータ構造210を生成することができる。セキュリティプロトコルの全体的な機能性は、タイムスタンプフィールド230の最下位ビットの実際の分解能に依存していない。   Note that the timestamp value 230 can be used in several ways, depending on the bit pattern stored in the timestamp mask 240 field. The timestamp mask 240 value allows the developer 520 to select some timestamp digits that are ignored when making a comparison with the current time of the target unit 100. However, as an example, assuming that the minimum resolution supported by the timestamp field 230 is 1 second, it starts from the time stored in the timestamp field 230 by masking the lower 5 bits of the timestamp data 230. A specific key data structure 210 can be generated that is valid only when used over the course of approximately 32 seconds. The overall functionality of the security protocol does not depend on the actual resolution of the least significant bits of the timestamp field 230.

マスクフィールド240に関連付けられる他のビットがあってもよく、そのいくつかは、タイムスタンプ230で特定された値の前後でキーが有効かどうかを示すために使用することができる。タイムスタンプ230および「カウントダウン」値250がどのように関連付けられるかを示すために、さらに別のマスクフィールド240ビットを使用することができる。例えば、これは、アプリケーション開発者520の意向が、ある日付および時間窓に単純に関係するよりもむしろ、ある日付の前または後のいずれかに、ソフトウェアの使用をある反復回数に限定することであった場合に有用となる。当然ながら、これらの条件の任意の組み合わせを構築することができるため、プロトコルは、この点で極めて融通性がある。加えて、いくつのキーの合法コピーが本来の標的ユニット100から他者へ同時に配布されてもよいか等、他の特性を示すように、さらなるフラグをこのデータ構造に含むことができる。これは、例えば、デジタルライブラリで見られるような、多重コピーライセンスが所望とされた場合に有用となる。   There may be other bits associated with the mask field 240, some of which may be used to indicate whether the key is valid before or after the value specified in the timestamp 230. Yet another mask field 240 bits can be used to indicate how the timestamp 230 and the “countdown” value 250 are associated. For example, this is because the intention of the application developer 520 is to limit the use of the software to a certain number of iterations either before or after a certain date, rather than simply relating to a certain date and time window. Useful if there is. Of course, the protocol is very flexible in this respect because any combination of these conditions can be constructed. In addition, additional flags can be included in this data structure to indicate other characteristics, such as how many legal copies of the key may be simultaneously distributed from the original target unit 100 to others. This is useful when multiple copy licenses are desired, such as found in digital libraries.

暗号化工程の一実施形態を表すフロー図を、次のページの図3で見ることができる。デジタルメディアストリームまたはソフトウェアアプリケーション(そのメディアストリームを解釈するために使用される暗号解読命令等)を配布するために使用される工程に実質的な差異がないことに留意されたい。いずれにしても、オンラインサーバを介するか、または直列化されたディスク(標準DVD等)上のいずれかで、暗号化されたコードブロック310、320を配布するためのいくつかの異なるオプションがある。後者の場合、開発者520は、使用許諾権限510により、大量生産されたディスクの個別シリアル番号を事前登録する(またはしない)ことを選択することができる。そうする場合、シリアル番号は、バーストカッティングエリア(DVDの場合)に焼き付けることによるか、または標準CDの場合はインクジェットインプリンティングによるかのいずれかによって、ディスクに永久的に取り付けられ得る。同じシリアル番号が大量生産されたディスクの全てにおいて複製されるため、開発者520は、CDまたはDVDのデータエリアにこれらのシリアル番号を埋め込むことができないことに留意されたい。ある種の混成形式が使用された場合で、ディスクの一部が大量生産され、別の部分が一度書き込まれ得る場合、これは、個別シリアル番号を伴うディスクを配布する別の潜在的方法となる。どのような場合でも、登録工程でエラーしにくいため、機械可読シリアル番号が確かに好ましい。   A flow diagram representing one embodiment of the encryption process can be seen in FIG. 3 on the next page. Note that there is no substantial difference in the process used to distribute a digital media stream or software application (such as decryption instructions used to interpret the media stream). In any case, there are a number of different options for distributing the encrypted code blocks 310, 320 either via an online server or on a serialized disk (such as a standard DVD). In the latter case, the developer 520 can choose to pre-register (or not) the individual serial numbers of the mass-produced disks with the use permission authority 510. In doing so, the serial number can be permanently attached to the disc, either by burning into a burst cutting area (in the case of a DVD) or by inkjet imprinting in the case of a standard CD. Note that the developer 520 cannot embed these serial numbers in the data area of the CD or DVD because the same serial numbers are duplicated in all of the mass produced disks. This is another potential way to distribute a disc with an individual serial number if some type of blending formula is used and one part of the disc is mass produced and another part can be written once . In any case, machine-readable serial numbers are certainly preferred because they are less prone to errors in the registration process.

開発者520が使用許諾権限510によりメディアシリアル番号の使用を許諾しないことを選択する場合、適正な暗号化キーをアプリケーションまたはメディアストリームファイルに関連付けることができる、何らかの他の方式があってもよい。したがって、アプリケーション開発者520は、コード特有のIDまたは関連メディアシリアル番号のいずれかを登録してもよい。前者の場合、アプリケーションを自由に配布することができる(すなわち、特定の公表フォーマットおよびメディアに関係しない)。   If the developer 520 chooses not to authorize the use of the media serial number with the license authority 510, there may be some other scheme that can associate the proper encryption key with the application or media stream file. Accordingly, application developer 520 may register either a code-specific ID or an associated media serial number. In the former case, the application can be freely distributed (ie, not related to a specific publication format and media).

個別シリアル番号機構の場合、使用許諾権限510には、どのアプリケーション(またはメディアストリーム)がどのシリアル番号に関連付けられるかという指示がないために、エンドユーザのプライバシーが維持される。開発者520が、その関連キーとともにアプリケーションID(またはメディアストリームID)を登録する場合、使用許諾権限510が、どのアプリケーションまたはメディアストリームが特定のエンドユーザによって「所有」されているかを知ることが可能である。一方で、このプライバシーの潜在的な欠如は、開発者520が物理的メディアを製造して配布することを必要としないという、付加的な利便性および費用節約によって相殺される。「物理的メディア」という用語は、必ずしもディスクを意味しないことに留意されたい。この機能は、個別シリアル番号ステッカーが貼り付けられた、印刷されたマニュアル(または単純な登録フォームさえ)を使用することによって、同様に達成され得る。必要とされるのは、開発者520がエンドユーザによって購入される、一意のシリアル番号を有する何らかの物理的対象を生産しなければならないことだけである。このシリアル番号の目的は、「購入証明」および/またはソフトウェア登録番号の役割を果たすことである。このシリアル番号がプロトコルにおいてどのように使用されるかを以下の項で論議する。   In the case of an individual serial number mechanism, end-user privacy is maintained because the licensing authority 510 does not have an indication of which application (or media stream) is associated with which serial number. When developer 520 registers an application ID (or media stream ID) with its associated key, licensing authority 510 can know which applications or media streams are “owned” by a particular end user. It is. On the other hand, this potential lack of privacy is offset by the added convenience and cost savings that developers 520 do not need to manufacture and distribute physical media. Note that the term “physical media” does not necessarily mean a disc. This function can be similarly achieved by using a printed manual (or even a simple registration form) with an individual serial number sticker attached. All that is required is that the developer 520 must produce some physical object with a unique serial number that is purchased by the end user. The purpose of this serial number is to act as a “proof of purchase” and / or a software registration number. The following section discusses how this serial number is used in the protocol.

図3に示された例について、暗号化されたソフトウェアアプリケーション(またはメディアストリーム)310および機械依存性の暗号解読ソフトウェア330の両方は、同じ機構を使用して配布される。これが事実となるべきということはプロトコルの要件ではなく、暗号化されたコードブロック310、330のいずれかまたは両方は、オンラインで、またはディスクをプレスすることによって配布することができる。しかしながら、デジタルメディアストリームの場合、メディアストリーム自体が2つのブロック310、320の桁違いに大きい方である可能性が高い。したがって、その場合、大量生産されたディスク形式で、少なくともこのブロックの配布を達成することが最も道理にかなう。多くの場合、随伴の暗号化されたコードブロック320(第1のブロックをどのように復号するかという命令を含有するもの)ならびに一次の暗号化されたコードブロックに適合するように、そのようなディスク上に十分な余地があってもよい。また、2つのデータセットのいずれもが、発行後に変更を受ける可能性がないため、オンラインで配布されなければならないという基本要件がないことにも留意されたい。そのようなものとして、それらは両方とも、大量生産されたディスクを用いた配布機構によく適している。両方を同じディスク上に有することにより、一義的な様式で一方を他方に関連付けることがより容易となる。   For the example shown in FIG. 3, both the encrypted software application (or media stream) 310 and the machine-dependent decryption software 330 are distributed using the same mechanism. It is not a protocol requirement that this should be the case, either or both of the encrypted code blocks 310, 330 can be distributed online or by pressing a disc. However, in the case of a digital media stream, there is a high possibility that the media stream itself is an order of magnitude larger than the two blocks 310 and 320. Therefore, in that case, it makes the most sense to achieve at least this block distribution in the mass produced disk format. In many cases, such as to fit the accompanying encrypted code block 320 (which contains instructions on how to decrypt the first block) as well as the primary encrypted code block There may be enough room on the disc. It should also be noted that neither of the two datasets has the basic requirement that it must be distributed online because it cannot be changed after publication. As such, they are both well suited for distribution mechanisms using mass-produced disks. Having both on the same disk makes it easier to associate one with the other in a unique manner.

(安全なコードローディングおよび実行)
配布機構が実際のディスクを介する場合、消費者は、従来のソフトウェア購入と正確に同じ方式で、アプリケーションを含有するディスクを購入することができる。当然ながら、エンドユーザは、「標的」ユニット100のプロセッサ上で修正されていない暗号化されたコードブロックを作動させることができない。ユーザが機械上でアプリケーションを作動させようとすると、CPU120が、暗号化されたソフトウェアブロックをロードし、問題のコードブロックが真性であることを検証するために、ソフトウェア開発者の公開キーとともにコードブロックの端において保存されたデジタル署名(「署名された」MAC)を使用する。これは、他の汎用CPU120への第1のハードウェア修正が作用し始めてもよい場合である。そのような保護されたコードのブロックをロードして解読するための工程を図4に示す。
(Safe code loading and execution)
If the distribution mechanism is via an actual disc, the consumer can purchase the disc containing the application in exactly the same way as a traditional software purchase. Of course, the end user cannot run the encrypted code block that has not been modified on the processor of the “target” unit 100. When the user tries to run the application on the machine, the CPU 120 loads the encrypted software block and verifies that the code block in question is authentic with the software developer's public key. Use a digital signature ("signed" MAC) stored at the end of This is the case when the first hardware modification to another general purpose CPU 120 may begin to work. The process for loading and decrypting such a block of protected code is shown in FIG.

ハッシング関数が正しく計算されること(および、さらには、生成されたメッセージダイジェストと「本物の」メッセージダイジェストとの間の比較が有効であること)を確認するために、CPU120は、安全な方式でこのハッシング関数を実行しなければならない。したがって、ハッシング関数は、デコーダのハードウェアによって直接生成されてもよいか、またはハッシング関数自体は、「安全な」コードのブロックを使用して計算されなければならないかのいずれかであり、その動作は、他の「安全ではない」プログラムによって改ざんすることができない。   In order to verify that the hashing function is calculated correctly (and that the comparison between the generated message digest and the “real” message digest is valid), the CPU 120 is in a safe manner. This hashing function must be executed. Thus, the hashing function may either be generated directly by the decoder hardware, or the hashing function itself must be calculated using a block of “safe” code and its behavior Cannot be tampered with by other “unsafe” programs.

ソフトウェアを用いたハッシュの場合、この安全なコードのブロックは、ユニット100のセキュリティシステムの一部と見なされるべきであり、そのようなものとして、ユニット100と使用許諾権限510との間の安全なトランザクションを介してプレーヤにダウンロードすることしか可能でなくてもよいことに留意されたい。大変興味深いことには、「安全な」ハッシング関数の確立は、本明細書で説明される同じ保護プロトコルを介して達成することができる。セキュリティシステムの前側面に対するこの再帰的挙動は、このプロトコルのソフトウェアを用いたバージョンが、その暗号化/暗号解読アーキテクチャにおいて極度に融通性(したがって、更新可能)となることを可能にするものである。   In the case of hashing with software, this block of secure code should be considered as part of the security system of unit 100, and as such, a secure block between unit 100 and licensing authority 510. Note that it may only be possible to download to the player via a transaction. Interestingly, the establishment of a “safe” hashing function can be achieved via the same protection protocol described herein. This recursive behavior on the front side of the security system allows a software version of this protocol to be extremely flexible (and therefore updatable) in its encryption / decryption architecture. .

メッセージダイジェスト計算がハードウェアに固定される場合、ある程度のセキュリティを潜在的に獲得することができるが、これは融通性を犠牲にして成り立つ。ハッシュ値を生成するために専用ハードウェアブロックが使用される場合、チップが製造された後のある時点でハッシングアルゴリズムの多少の脆弱性が発見され(またはその実装に何らかのバグがある場合に)、そのとき事後に問題に対処する機会がない。これは、処理を加速するために、ソフトウェアを用いたハッシング関数のある種のハードウェア加速(プログラム可能なS−Box構造等)を使用できないと言うものではない。しかしながら、その場合、ハードウェアは、理想的には、多種多様の一方向ハッシング関数を支援するように十分に汎用性となるべきである。   If message digest computation is fixed in hardware, some degree of security can potentially be gained, but this comes at the expense of flexibility. If a dedicated hardware block is used to generate the hash value, some vulnerability in the hashing algorithm is discovered at some point after the chip is manufactured (or if there is some bug in its implementation) At that time there is no opportunity to deal with the problem after the fact. This does not mean that some kind of hardware acceleration (such as a programmable S-Box structure) of a hashing function using software cannot be used to accelerate the process. In that case, however, the hardware should ideally be sufficiently versatile to support a wide variety of one-way hashing functions.

しかしながら、このプロトコルのセキュリティは、最終的には、この安全なコードローディング手順の一部として提供される、最下位機能に依存している。下位機能(ハッシング関数で使用される、秘密キーまたは原始的操作等)は、署名されたメッセージダイジェスト等の上位機能性を産生するように、異なる方法で共に組み合わせられる。順に、これらの上位機能ブロックは、同一性確認等の、上位ユーティリティを提供するために使用される。より多くの原始層の最上部に上位機能を構築するこの工程は、「信用の連鎖」を構築するステップとして知られている。システムの融通性は、セキュリティ関連機能をこの階層内でできる限り低く修正することができる点を設置することにある。しかしながら、ある点で、この連鎖が基づく基本原始的操作は、性質がアトミックでなければならない(すなわち、これは、ハードウェアに実装されなければならない機能性である)。ハードウェアのデータ塊(granularity)のこの点の正確な選択は、大部分が実装詳細であり、このプロトコルの全体的動作は、上記の条件を考慮すると、この側面に依存していない。   However, the security of this protocol ultimately relies on the lowest level functionality provided as part of this secure code loading procedure. Sub-functions (such as secret keys or primitive operations used in hashing functions) are combined together in different ways to produce higher functionality such as signed message digests. In turn, these higher function blocks are used to provide higher utilities such as identity verification. This process of building higher functions on top of more primitive layers is known as building a “trust chain”. The flexibility of the system is to establish that security-related functions can be modified as low as possible within this hierarchy. However, at some point, the basic primitive operations on which this chain is based must be atomic in nature (ie, this is functionality that must be implemented in hardware). The exact selection of this point in the hardware data granularity is largely implementation details, and the overall operation of the protocol is independent of this aspect given the above conditions.

一旦暗号化されたコードブロック310が標的100のメモリ空間110にロードされ、メッセージダイジェストが計算されると、結果は、そのとき開発者の公開キーによって、暗号化されたコード310とともに記憶されたデジタル署名340を解読することによって計算されるメッセージダイジェストと比較される。2つが一致する場合、標的ユニット100は、暗号化されたコードブロック310が真性である(または、少なくとも、公開キーがデジタル署名を解読するために使用された開発者520によってコードが配布された)と確信することができる。   Once the encrypted code block 310 is loaded into the memory space 110 of the target 100 and the message digest is calculated, the result is then stored in the digital code stored with the encrypted code 310 by the developer's public key. It is compared with the message digest calculated by decrypting the signature 340. If the two match, the target unit 100 is authentic with the encrypted code block 310 (or at least the code was distributed by the developer 520 whose public key was used to decrypt the digital signature). Can be convinced.

この時点で、標的100は、最近検証された、暗号化されたコードブロック310と協調して使用される、暗号解読キーのコピーを要求する使用許諾権限510への安全なメッセージを送信する。使用許諾権限510との安全な接続を設定するステップの一部として、標的ユニット100は、一時公開/プライベートキーペア(その公開部分は使用許諾権限510サーバに供給される)を生成する。キー交換手順の詳細は、周知であり、これが達成される正確な機構を本論議で詳細に述べる必要はない。どのような場合でも、標的ユニット100と使用許諾権限510における中央サーバとの間の全体的なネットワークトラフィックは、いくつかのキー転送、コード特有のID、およびそれとともに記憶されたMACから成るため、適度に小さなデータセットに限定されることに留意されたい。   At this point, the target 100 sends a secure message to the licensing authority 510 requesting a copy of the decryption key that is used in conjunction with the recently validated encrypted code block 310. As part of setting up a secure connection with the licensing authority 510, the target unit 100 generates a temporary public / private key pair (the public part of which is supplied to the licensing authority 510 server). Details of the key exchange procedure are well known and the exact mechanism by which this is accomplished need not be detailed in this discussion. In any case, because the overall network traffic between the target unit 100 and the central server at the licensing authority 510 consists of several key transfers, a code specific ID, and a MAC stored with it, Note that it is limited to reasonably small data sets.

コード特有のIDは使用許諾権限510が認識するものであると想定すると、アプリケーションの作者がすでに使用許諾権限510に要求された暗号解読キーの「暗号化されていない」コピーを提供しているか否かに応じて、2つの可能な行動方針があってもよい。開発者520が使用許諾権限510にそのような情報を提供していない場合、中央サーバは、アプリケーション開発者のサーバ520に標的デバイス100の一時公開キーのコピー(ならびに、問題のコード特有のID)を伝送する。その時点で、開発者のサーバ520は、要求暗号解読キー(標的の一時公開キーで暗号化される)を含有するメッセージ、および適正に解読されたコードから生成されるメッセージダイジェストで、使用許諾権限510サーバに応答する。こうして、標的デバイス100のみがメッセージを解読して暗号解読キーを得ることができ、使用許諾権限510は、暗号化されていない形の暗号解読キーにアクセスできない。   Assuming that the code-specific ID is recognized by the licensing authority 510, whether the application author has already provided an “unencrypted” copy of the decryption key requested by the licensing authority 510 Depending on how, there may be two possible action policies. If the developer 520 has not provided such information to the licensing authority 510, the central server will copy the temporary public key of the target device 100 to the application developer's server 520 (as well as the ID specific to the code in question). Is transmitted. At that point, the developer's server 520 may grant a license authorization with a message containing the requested decryption key (encrypted with the target's temporary public key) and a message digest generated from the properly decrypted code. Respond to 510 server. Thus, only the target device 100 can decrypt the message to obtain the decryption key, and the license authority 510 cannot access the decryption key in an unencrypted form.

メッセージダイジェストは、事前計算し、使用許諾権限520のサーバ上に記憶することができるが、それがトランザクション中に開発者520によって提供されてもよいという事実は、万一ハッシング関数(メッセージダイジェストを生成するために使用される)が変化する場合に潜在的に役立つ。万一このことが起こった場合、開発者520は、標的デバイス100との実際のトランザクションの前または後のいずれかにおいて、解読されたコードのメッセージダイジェストの更新されたバージョンを使用許諾権限510に提供する必要がある。使用許諾権限510は、本来の(解読された)コードに決してアクセスするべきではないため、開発者520は、この情報を提供しなければならない。前述のように、使用許諾権限510のサーバと開発者520のサーバとの間のネットワークトラフィックの量は、依然として極めて少ない。次いで、開発者520から受信された暗号化されたキーは、使用許諾権限510から標的への伝送の前に、標的デバイス100の一次秘密キーでさらにもう一度暗号化される。   The message digest can be pre-computed and stored on the server of the license authority 520, but the fact that it may be provided by the developer 520 during the transaction is in the unlikely event that a hashing function (generates a message digest) Potentially used in case that changes). Should this happen, the developer 520 provides the license authority 510 with an updated version of the message digest of the decrypted code either before or after the actual transaction with the target device 100. There is a need to. Developer 520 must provide this information because license authority 510 should never have access to the original (decrypted) code. As mentioned above, the amount of network traffic between the license authority 510 server and the developer 520 server is still very small. The encrypted key received from developer 520 is then encrypted once more with the primary secret key of target device 100 prior to transmission from licensing authority 510 to the target.

アプリケーション開発者520が使用許諾権限510と標的デバイス100との間のトランザクションのために「ループ外」でいることを希望する場合、単純に、暗号化されていない(非暗号化)形の関連暗号解読キーのコピー、および解読されたコードブロックに対する関連MAC(その値はハッシングアルゴリズムが変更される度に更新されなければならない)を使用許諾権限510に提供することができる。したがって、使用許諾権限510における中央サーバは、自律的に作用することが可能となり、標的ユニットからのキー要求を履行するために、開発者のサーバ520への通信リンクを確立する必要はない。しかしながら、これは、万一「暗号化されていないキー」情報が損なわれた場合、開発者にとって潜在的なセキュリティの危険である。   If the application developer 520 wishes to be “out of the loop” for the transaction between the license authority 510 and the target device 100, simply the unencrypted (unencrypted) form of the associated cipher A copy of the decryption key and the associated MAC for the decrypted code block (its value must be updated each time the hashing algorithm is changed) can be provided to the licensing authority 510. Thus, the central server at the licensing authority 510 can act autonomously and does not need to establish a communication link to the developer's server 520 to fulfill the key request from the target unit. However, this is a potential security risk for developers if the “unencrypted key” information is compromised.

この場合、暗号化されていないキーは、標的デバイス100の一時公開キーによる(上記のような)伝送、および再度、標的の一次秘密キーによる伝送の両方の前に、依然として暗号化される。この時点で、標的デバイス100は、二重に暗号化された形式における適正な暗号解読キーを有する。使用許諾権限510が暗号化されていないアプリケーション特有のキー550情報にアクセスしない場合、各ユニット100に対する秘密キーは、使用許諾権限510のみに知られるべきであり、伝送のためのプライベートキーは、標的100のみによって知られるため、意図された標的デバイス100以外の誰もが、暗号化されていない形でこのキーデータを複製できることが可能となるべきでない。   In this case, the unencrypted key is still encrypted both before transmission with the temporary public key of the target device 100 (as described above) and again with the target primary secret key. At this point, the target device 100 has the proper decryption key in double encrypted form. If the license authority 510 does not access unencrypted application-specific key 550 information, the secret key for each unit 100 should be known only to the license authority 510 and the private key for transmission is the target Since it is known only by 100, it should not be possible for anyone other than the intended target device 100 to replicate this key data in an unencrypted form.

しかしながら、この時点で、標的100がアプリケーション開発者520から受信する符号化された暗号解読キーは、まだ、標的100において誰にでも見られる状態で安全に記憶する(例えば、フラッシュROMに記憶する、またはハードドライブ上にバックアップする)ことができない。問題は、標的デバイス100が、使用許諾権限510から伝送された、符号化された暗号解読キーとともに、一時プライベートキーのコピーも記憶しなければならないことである。使用許諾権限510における誰かが、何らかの手段によってこれら2つのデータへのアクセスを獲得した場合には、(標的デバイス100の一次秘密キーへのアクセスも同様に有する場合があると考えれば)解読されたアプリケーション特有のキー550を再構築することが潜在的に可能となる。   However, at this point, the encoded decryption key that the target 100 receives from the application developer 520 is still securely stored in a state that is visible to anyone at the target 100 (eg, stored in flash ROM, Or backup to hard drive). The problem is that the target device 100 must also store a copy of the temporary private key along with the encoded decryption key transmitted from the licensing authority 510. If someone in the licensing authority 510 gains access to these two data by any means, it has been decrypted (provided that it may also have access to the primary secret key of the target device 100 as well) It is potentially possible to reconstruct application specific keys 550.

これは、標的デバイス100の2次秘密キーが使用され始める時点である。2次秘密キーは、標的ユニット200以外の誰にでも知られていないことを思い出されたい。したがって、使用許諾権限510から標的100に供給されたキーを解読するために、いったん一時プライベートキーが使用されると、その使用(および/または保管)前にアプリケーション特有のキーを再暗号化するために、2次秘密キーが使用される。   This is the point at which the secondary secret key of the target device 100 begins to be used. Recall that the secondary secret key is unknown to anyone other than the target unit 200. Thus, once a temporary private key is used to decrypt the key supplied to the target 100 from the licensing authority 510, it re-encrypts the application specific key prior to its use (and / or storage). The secondary secret key is used.

次いで、標的は、コードブロック(またはメディアストリーム)を解読するために、アプリケーション特有の(暗号化されていない)キーを使用することができる。したがって、アプリケーションコードが暗号化されていない形で存在する、2つだけの場所は、元の開発者520自身、および標的デバイス100のI−キャッシュ110の「保護された」部分の内側にある(そこでは実行することしかできず、暗号化されていない形でメモリに再び書き出すことは決してできない)。これは、ユーザと使用許諾権限510との間のプライバシーを可能にする。言い換えれば、使用許諾権限510は、ユーザがライセンスを有するものが何なのか(大きなプライバシーの問題点)を知らなくてもよいが、ユニット100が損傷される、または盗まれる、あるいは動作不能である場合に、ユーザのキーリストに対する保存場所(またはバックアップ)の役割を果たすことが依然として可能である。   The target can then use the application specific (unencrypted) key to decrypt the code block (or media stream). Thus, the only two places where the application code exists in unencrypted form are inside the “protected” portion of the original developer 520 itself and the I-cache 110 of the target device 100 ( It can only be executed there and can never be written back to memory in unencrypted form). This allows privacy between the user and the licensing authority 510. In other words, license authority 510 may not know what the user has a license for (a major privacy issue), but unit 100 is damaged, stolen, or inoperable. In some cases, it is still possible to act as a storage location (or backup) for the user's key list.

暗号解読工程が正しく行われたことを検証するチェックとして、適正に解読されたコードのメッセージダイジェストは、元の開発者520から使用許諾権限510を通して標的ユニット100へと転送された、デジタル署名と比較される。前述のように、このデジタル署名は、アプリケーション開発者のプライベートキーで、暗号化されていないコードブロックのメッセージダイジェストを暗号化することによって作成される。代替として、このデジタル署名はまた、接続が確立された時に使用許諾権限510に供給された、別の一時公開キー530を使用して、再度、開発者520によって暗号化することもできる。どのような場合でも、正しいメッセージダイジェストは、開発者の公開キーでデジタル署名を解読することによって、標的デバイス100によって復号することができる。このメッセージダイジェスト解読されたコードブロックのハッシュに一致する場合、コードは真性であると見なされ、標的100上で作動することが可能になる。次いで、このメッセージダイジェストは、再暗号化されたアプリケーション特有のキー550とともに保管するために、標的ユニット100の2次キー540で再暗号化されてもよい。キー暗号化/暗号解読工程全体のフロー図を以下の図5で概説する。   As a check to verify that the decryption process was performed correctly, the message digest of the properly decrypted code is compared with the digital signature transferred from the original developer 520 to the target unit 100 through the licensing authority 510. Is done. As described above, this digital signature is created by encrypting a message digest of an unencrypted code block with the application developer's private key. Alternatively, this digital signature can also be encrypted again by developer 520 using another temporary public key 530 provided to licensing authority 510 when the connection is established. In any case, the correct message digest can be decrypted by the target device 100 by decrypting the digital signature with the developer's public key. If it matches the hash of this message digest decrypted code block, the code is considered authentic and can run on the target 100. This message digest may then be re-encrypted with the secondary key 540 of the target unit 100 for storage with the re-encrypted application-specific key 550. The overall flow of the key encryption / decryption process is outlined in FIG. 5 below.

この手順の最終ステップは、アプリケーション特有のキー560の新しく暗号化されたバージョンが、保管目的で使用許諾権限510サーバに再伝送されることである。この再伝送は、いくつかの目的を果たす。第1に、標的デバイス100がコードブロックを適正に解読できたという確認である。第2に、エンドユーザがある種の壊滅的なデータ不具合を被り、アクセスキーの自らのバックアップコピーを作製することを怠っていた場合に対処するために、使用許諾権限510が、この暗号化されたキー560のコピーを有する必要がある。次いで、使用許諾権限510は、任意の特定のユーザに対するバックアップ記憶設備としての役割を果たすことができる。この手段のさらに別の理由は、特定の標的デバイス100の持ち主が1人のユーザから別のユーザへ変化する場合、または標的デバイス100をアップグレードすることを希望する場合に対処するためである。この種類の所有権の永久譲渡は、そのユニット100に対する許諾されたアプリケーションキーの全ての移譲を伴うことができる(その場合、新しい所有者の名前の下でユニットを登録する以外に、何も行われる必要はない)。しかしながら、ユーザが第1のデバイスから第2のデバイスへキーデータの永久所有権を譲渡することを希望する場合、これは、使用許諾権限510と標的デバイス100の両方との間の安全なトランザクションを用いて達成されてもよい。   The final step in this procedure is that a newly encrypted version of the application specific key 560 is retransmitted to the licensing authority 510 server for storage purposes. This retransmission serves several purposes. First, it is a confirmation that the target device 100 has successfully decoded the code block. Second, the licensing authority 510 is encrypted in order to handle the end user suffering some catastrophic data failure and neglecting to make their own backup copy of the access key. You must have a copy of the key 560. The license authority 510 can then serve as a backup storage facility for any particular user. Yet another reason for this measure is to address the case where the owner of a particular target device 100 changes from one user to another or desires to upgrade the target device 100. This kind of permanent transfer of ownership can involve the transfer of all authorized application keys for that unit 100 (in which case nothing is done other than registering the unit under the name of the new owner). Need not be) However, if the user wishes to transfer the permanent ownership of the key data from the first device to the second device, this is a secure transaction between both the licensing authority 510 and the target device 100. May be achieved using.

標的デバイス100が使用許諾権限510サーバに返送する他の情報は、標的デバイス100の新しく更新されたキーリストデータ構造610のメッセージダイジェストである。これは、新しく更新されたキーリストデータ610構造の確認であるとともに、使用許諾権限510サーバ上および標的デバイス100上の特定の標的デバイス100に関連付けられるキーリストデータ構造610の等価性を検証するためにも使用される。このデータ構造の正確な構成を、以下の項に説明する。また、特定のキーまたは1組のキーの所有権の永久譲渡が達成される方法を以降の項で論議する。   Other information that the target device 100 returns to the license authority 510 server is the message digest of the newly updated key list data structure 610 of the target device 100. This is a confirmation of the newly updated key list data 610 structure and to verify the equivalence of the key list data structure 610 associated with the specific target device 100 on the licensing authority 510 server and the target device 100. Also used for. The exact structure of this data structure is described in the following section. Also, the following sections discuss how the permanent transfer of ownership of a particular key or set of keys is achieved.

この時点で、上記で概説される工程は、開発者520から標的デバイス100にアプリケーション特有のキー550を譲渡するためにプロトコルを使用することができる、唯一の方式ではないことに留意されたい。例えば、実際のキー譲渡トランザクションは、標的100とアプリケーション開発者520との間でのみ、直接接続を伴うことができる。しかしながら、その場合、接続は、トランザクションにデバイス特有の暗号化情報を寄与するために、開発者520のサーバと使用許諾権限510のサーバとの間で確立されなければならない。安全な態様でこのプロトコルを動作させることができる多数の機構があり、上記で議論される例は、これらのうちの1つにすぎない。しかしながら、共通することは、標的100に譲渡されるキーデータが、その標的デバイス100のみに使用可能であることを確実にするために、3つ全ての関係者が協働しなければならないことである。   At this point, it should be noted that the process outlined above is not the only way in which a protocol can be used to transfer an application specific key 550 from developer 520 to target device 100. For example, an actual key transfer transaction can involve a direct connection only between the target 100 and the application developer 520. However, in that case, a connection must be established between the server of developer 520 and the license authority 510 server to contribute device specific encryption information to the transaction. There are numerous mechanisms that can operate this protocol in a secure manner, and the example discussed above is just one of these. However, what is common is that all three parties must work together to ensure that the key data transferred to the target 100 is only available to that target device 100. is there.

キーの構造は、ハードウェア特有の部分ならびにアプリケーション特有の部分といった、2つの断片を有するように設定できることに留意されたい。これら2つの断片が完全に分離不可能であることは要件ではない。そうである(分離不可能である)ならば、前述の特性を得る。しかしながら、キー断片を独立して動作可能にする方法がある場合、包括的な1組のコピーを有効にし、実際のコードまたは実際の標的デバイス100とは無関係となり得る制限を使用することができる。言い換えれば、いずれの開発者520も、配布の制限がないが、読み取ることができず、実行することしかできない、アプリケーションまたはメディアストリームを発行することができる。これは、使用許諾権限510が、製造業者とは無関係に、全てのデバイス上で作動するセキュリティシステム更新を送信したい場合に、有用となり得る。これの別の例は、そのストリームの著作権の制御を依然として維持しながら、公的に利用可能なメディアストリームを放送することである。同様に、発行者は、誰もが読み取る、および/またはコピーすることができるが、1つの特定の標的デバイス100または1組のデバイス上のみで実行するアプリケーションを配布することができる。これは、例えば、「この特定の部類のデバイスを更新する」というメッセージを送信するために有用となり得る。別の可能なアプリケーションは、どこにおいても作動し、配布に制限がないアプリケーションを送信することである。これは、特定のアプリケーションに対するソースコード(すなわち、オープンソース)を発行するステップと性質が同様である。分離可能なH/W特有およびS/W特有のキー構造によって有効にされる、セキュリティの異なる部類を表1に図示する。   Note that the key structure can be configured to have two pieces, a hardware specific part as well as an application specific part. It is not a requirement that these two pieces are completely inseparable. If so (cannot be separated), the above-mentioned characteristics are obtained. However, if there is a way to make key fragments operable independently, a comprehensive set of copies can be enabled and restrictions that can be independent of the actual code or actual target device 100 can be used. In other words, any developer 520 can publish an application or media stream that has no distribution restrictions but cannot be read and only executed. This can be useful if the licensing authority 510 wants to send a security system update that works on all devices regardless of the manufacturer. Another example of this is broadcasting a publicly available media stream while still maintaining copyright control of the stream. Similarly, publishers can distribute applications that run on only one specific target device 100 or set of devices that anyone can read and / or copy. This can be useful, for example, for sending the message “Update this particular class of devices”. Another possible application is to send an application that runs anywhere and has no restrictions on distribution. This is similar in nature to the step of issuing source code (ie open source) for a particular application. Different classes of security enabled by separable H / W specific and S / W specific key structures are illustrated in Table 1.

Figure 2013084294
(キーリストデータ構造の構成)
特定の標的デバイス100に許諾されているアプリケーションまたはメディア特有のキーのリストを含有する、データ構造610は、貴重な物品であり、所有者によってバックアップされることが可能となるべきである。個別キーは、(上記のような)標的の2次秘密キーで暗号化されるため、リストは、キーが許諾されるユニットにとって有益であるのみである。しかしながら、このデータ構造610が改ざん、破損、および/または完全な損失の恐れがないことを確認できる必要がある。損失したキーリストデータ構造610の場合、前述のように、使用許諾権限510から、その特定の標的デバイス100に対するキーリスト610の新しいコピーを要求することによって、データ構造610全体を回復することができる。キーリストデータ構造610に一時的変更が行われた場合(そのようなシナリオの理由をこの後の項で論議する)、プロトコルは、一時的であるような変更を識別するための手段に適応してもよい。最終的に、キーリストデータ構造610の真正性、適時性、および有効性を立証するための何らかの一義的な機構を含む。
Figure 2013084294
(Structure of key list data structure)
A data structure 610 containing a list of application or media specific keys that are licensed to a particular target device 100 is a valuable item and should be able to be backed up by the owner. Since the individual key is encrypted with the target's secondary secret key (as described above), the list is only useful for the unit to which the key is granted. However, it should be possible to verify that this data structure 610 is not subject to tampering, corruption, and / or complete loss. In the case of a lost key list data structure 610, the entire data structure 610 can be recovered by requesting a new copy of the key list 610 for that particular target device 100 from the licensing authority 510 as described above. . If a temporary change is made to the key list data structure 610 (the reason for such a scenario is discussed in a later section), the protocol adapts to a means for identifying such a change that is temporary. May be. Finally, it includes some unique mechanism for verifying the authenticity, timeliness, and validity of the key list data structure 610.

これらの要件を念頭に置いて、次のページの図6に示されるもののような方式で、これらの品質の全てを示す、安全なキーリストデータ構造610を構築することができる。例のごとく、以下に示される例は、そのようなデータ構造に所望の特性の全てを含むことができる唯一の方法ではない。それでもなお、図6に図示された特定のデータ構造は、実際に、プロトコルの基本要件の全てを満たす。   With these requirements in mind, a secure key list data structure 610 can be constructed that shows all of these qualities in a manner like that shown in FIG. 6 on the next page. As an example, the example shown below is not the only way that such a data structure can include all of the desired properties. Nevertheless, the particular data structure illustrated in FIG. 6 actually meets all of the basic requirements of the protocol.

上記の図では、留意すべきいくつかの基本的規則がある。第1は、キーリストデータ構造610の最上位暗号化が、標的デバイス100の一次秘密キーで行われるべきことである。この特定のキーを使用することのいくつかの理由があるが、主要な問題点は、このデータ構造のローカルコピーを修復しなければならない場合に、使用許諾権限510が、標的デバイス100とは無関係に、このデータ構造の暗号化された形態を再生できなければならないことである。このデータ構造を暗号化するために、任意の他のキー(例えば、標的の2次秘密キー等)が使用される場合、標的100がデータ構造の変更を行う必要がある時(キーがリストに追加される時のように)、リスト全体は、バックアップ目的で使用許諾権限510に転送されなければならない。これは、使用許諾権限510に返送されなければならないネットワークトラフィックの量を大きく増加させる可能性があり、必ずしもチャネル帯域幅の最も効率的な使用ではない。   In the above diagram, there are some basic rules to keep in mind. First, the top-level encryption of the key list data structure 610 should be performed with the primary secret key of the target device 100. There are several reasons for using this particular key, but the main problem is that if the local copy of this data structure must be repaired, the licensing authority 510 is independent of the target device 100. In addition, it must be able to reproduce the encrypted form of this data structure. If any other key is used to encrypt this data structure (eg, the target's secondary secret key, etc.), when the target 100 needs to change the data structure (the key is listed) As when added), the entire list must be transferred to the license authority 510 for backup purposes. This can greatly increase the amount of network traffic that must be returned to the licensing authority 510 and is not necessarily the most efficient use of channel bandwidth.

また、このキーリストデータ構造610は、標準アプリケーションまたはメディアストリーム特有のライセンスキーの記憶に使用されることに加えて、セキュリティシステム関連キーの記憶に使用されることが望ましい。このデータ構造は、使用許諾権限510によって再生されることができるため、標的デバイス100上で作動するセキュリティソフトウェアを更新することが望ましい場合、両方の機能に同じキーリストデータ構造610が使用され得るならば、より安全で、より効率的であることの両方となる(標的デバイス100に対するコード記憶の要件の観点から)。   Also, this key list data structure 610 is preferably used for storing security system related keys in addition to storing license keys specific to standard applications or media streams. This data structure can be played by the licensing authority 510, so if it is desired to update the security software running on the target device 100, the same key list data structure 610 can be used for both functions. Both safer and more efficient (in terms of code storage requirements for the target device 100).

第2の問題点は、キーリストデータ構造610の暗号化されたバージョンが本来のキーリストデータ構造610のメッセージダイジェストを含むことである。個別キーのそれぞれが暗号化されるものの、リスト自体の他の部分は、メッセージダイジェストが計算される時点で別々に暗号化されないことに留意されたい。メッセージダイジェスト計算の後、キーリストデータ構造610の全体(メッセージダイジェストを含む)は、最上位(またはマスター)キーによって識別される、キー値およびアルゴリズムで暗号化される。これは、悪意のある第3者がリストを改ざんし、新しいメッセージダイジェストを計算し、次いで修正されたリストを真性のリストに代用することを防止するために行われる。キーリストデータ構造610が標的ユニット100のメモリスペースに読み込まれると、任意の他の安全な暗号化されたコードブロックにMACが使用される方法と同じ方式で、キーリスト自体の真正性および有効性を検証するために、この(解読された)メッセージダイジェストが使用される。個別キー以外の要素の全てが、マスターキーで暗号化されるのみであるという事実は、最上位キー以外の任意のキーにアクセスする必要なく、リストを詳しく検討できる(およびリストを維持できる)ことを意味する。また、暗号解読ブロックを通る単一パスのみで、キーリスト目録を編纂することができる。   A second problem is that the encrypted version of the key list data structure 610 includes a message digest of the original key list data structure 610. Note that although each individual key is encrypted, other parts of the list itself are not separately encrypted when the message digest is calculated. After the message digest calculation, the entire key list data structure 610 (including the message digest) is encrypted with a key value and algorithm identified by the top (or master) key. This is done to prevent malicious third parties from tampering with the list, calculating a new message digest, and then substituting the modified list for the authentic list. Once the key list data structure 610 is read into the memory space of the target unit 100, the authenticity and validity of the key list itself in the same manner that MAC is used for any other secure encrypted code block. This (decrypted) message digest is used to verify The fact that all elements other than the individual key are only encrypted with the master key allows the list to be examined (and maintained) without having to access any key other than the top key Means. Also, the key list inventory can be compiled with only a single pass through the decryption block.

関心の第3の原則は、個別アプリケーションコードまたはメディアストリーム特有のキーを、各標的デバイス100に対する個別キーに適応するように十分大きくできることである。コードまたはメディアストリームが大量生産されたディスクを介して配布される場合、これは、アプリケーション開発者520が、個別暗号解読キーとともに、新しいコード特有のIDを発行する必要があることを意味する。使用許諾工程に関与する関係者の全ての間で転送されなければならないデータの量を最小化しようとする観点より、これはあまり効率的ではないかもしれないが、損なわれた暗号解読キーを追跡する能力を含む(しかし、それに限定されない)機能性をプロトコルに追加する。これはまた、キー取消を扱う以降の項でも論議する。   A third principle of interest is that the individual application code or media stream specific key can be large enough to accommodate the individual key for each target device 100. If the code or media stream is distributed via a mass produced disc, this means that the application developer 520 needs to issue a new code specific ID along with the individual decryption key. This may not be very efficient in terms of trying to minimize the amount of data that has to be transferred between all parties involved in the licensing process, but it tracks the compromised decryption key Add functionality to the protocol, including but not limited to the ability to This is also discussed in the following sections dealing with key revocation.

注目すべき次の問題点は、キーリストデータ構造610のヘッダが、リストの残りの部分を構成するアプリケーション特有のキーと同じ1組の特性を共有することである。実際、ヘッダは、キーリストデータ構造610自体の残りの部分に対するマスターキー620と考えることができる。したがって、リストの残りの部分の管理を判定するために、このキーをどのように使用できるかに関する限りは、動作の同じ原則を適用することができる。これは、標的デバイス100のセキュリティシステムの時間依存性管理を含む。したがって、標的ユニット100は、所定の間隔でそのセキュリティシステムを更新せざるを得なくなり、それだけで極度に強力な概念である。   The next issue to note is that the header of the key list data structure 610 shares the same set of characteristics as the application specific keys that make up the rest of the list. In fact, the header can be thought of as the master key 620 for the rest of the key list data structure 610 itself. Therefore, as long as this key can be used to determine management of the rest of the list, the same principles of operation can be applied. This includes time dependency management of the security system of the target device 100. Therefore, the target unit 100 is forced to update its security system at predetermined intervals, which is an extremely powerful concept.

キーリストが多数のセクションを含有することができ、それぞれが独自のマスターキー620(リストヘッダ)を有し、したがって、独自の独立暗号化機構を有するという可能性も存在する。任意の他のキーと同様に、リストヘッダは、キーリストデータ構造610を解釈するために使用される、暗号化されたコードブロックを指し示すことができる、コード特有のIDフィールドを含有する。次いで、リスト全体は、独自のマスターキー(さらに別のリストヘッダ)を含む、さらに別のマスターリスト内に含有され得る。したがって、キーリストデータ構造610全体を再帰的に定義することができる。前述のように、この再帰的特性は、新しいキーリストデータ構造610を作成して同じデータ構造の以前のバージョンの欠点に対処することによって、セキュリティシステムを更新するために使用することができる。リスト全体のセキュリティが「最外の」(または最新の)セキュリティ層内に含有されるため、キーリストデータ構造610全体のセキュリティは、常にセキュリティソフトウェアの最新の反復に基づく。   There is also the possibility that the key list can contain multiple sections, each with its own master key 620 (list header) and thus with its own independent encryption mechanism. Like any other key, the list header contains a code-specific ID field that can point to an encrypted code block that is used to interpret the key list data structure 610. The entire list can then be contained in yet another master list, including its own master key (another list header). Accordingly, the entire key list data structure 610 can be recursively defined. As described above, this recursive property can be used to update the security system by creating a new key list data structure 610 to address the shortcomings of previous versions of the same data structure. Because the entire list security is contained within the “outermost” (or latest) security layer, the security of the entire key list data structure 610 is always based on the latest iteration of the security software.

したがって、キーリストデータ構造610の再帰的特性は、強力な特徴である。前の項で論議された、データ構造の正確な実装が最重要ではないということも理由である。上記で提供した説明は、単に、プロトコルの再帰的性質を機能させるために必要とされる最小限の一部の機能性である特徴を含んだ、一例であった。   Thus, the recursive nature of the key list data structure 610 is a powerful feature. It is also because the exact implementation of the data structure discussed in the previous section is not the most important. The description provided above is merely an example that includes features that are the minimum part of functionality required to make the recursive nature of the protocol work.

それがどのように構造化されるかとは無関係に、キーリスト610は、いくつかの一般的な状況下で維持および/または更新されてもよい。これらの状況は、リストに含有されるキーのうちの1つ以上の状態が修正される場合を含む(しかし、それに限定されない)。1つのユニットから別のユニットへ特定のキー210の所有権を譲渡することができるいくつかの基本的機構があり、これらを以降の項で論議する。しかしながら、どのような場合でも、改訂されたキーリストが維持される機構は、使用許諾権限510の干渉を必要とするもの、および独立して実行することができるものといった、2つの部類に分けることができる。   Regardless of how it is structured, the key list 610 may be maintained and / or updated under some common circumstances. These situations include (but are not limited to) when the state of one or more of the keys contained in the list is modified. There are several basic mechanisms that can transfer ownership of a particular key 210 from one unit to another, and these are discussed in the following sections. However, in any case, the mechanism by which the revised key list is maintained is divided into two categories: those that require the interference of licensing rights 510 and those that can be performed independently. Can do.

このプロトコルが基づく主要な動作概念のうちの1つは、使用許諾権限510の中央サーバと個別標的ユニット100との間の必要なネットワークトラフィックの量を最小に削減するというものである。したがって、キーリストデータ構造610の任意の一時的変更(その理由は以下に説明する)は、標的ユニット100によって独立して維持されることができるべきである。このことの主要な理由は、これらの変更が、表向きは、デバイスのセキュリティシステムの永久的変更(常に、標的デバイス100と使用許諾権限との間の相互作用によってのみ達成されるべきである)よりも頻繁に発生するということである。   One of the main operational concepts on which this protocol is based is to minimize the amount of network traffic required between the central server of the licensing authority 510 and the individual target unit 100. Accordingly, any temporary changes to the key list data structure 610 (for reasons explained below) should be able to be maintained independently by the target unit 100. The main reason for this is that these changes are more obvious than permanent changes in the device's security system (always should be achieved only by interaction between the target device 100 and the licensing rights). It also happens frequently.

どのような場合でも、標的デバイス100が、一義的な方式でマスターキーリストデータ構造610の現在の状態を追跡することができる、何らかの機構が存在しなければならない。このことは、2つの「マスター」リストを有することによって達成することができる。これら2つのリストのうちの第1(永久キーリストと呼ぶ)は、使用許諾権限510によって維持される。このリストは、問題の標的ユニット100に関連付けられる、アプリケーション特有のキーの「永久」所有権に関係している。第2のリストは、等しく重要であるが、「永久」キーリストデータ構造610の一時的修正に関係しているものである。これらの修正は、リストへの追加となり得るか、または、リストからの削除となり得るかのいずれかであることに留意されたい。2つのリスト自体のデータ構造の実装には必要な差異はなく、主要な差異は、それらがどのように使用されるかによって発生する。これらのリストのうちの一方または他方のいずれかが、損失したイベントから標的ユニット100を回復するために、何らかの方法が存在すべきことが望ましい。この損失は、何らかの壊滅的な不具合によるもの、またはリストのうちの1つの中に含有された情報がどういうわけか破損した(悪意がなく、または悪意を持ってのいずれかで)場合によるものとなり得る。そのような「キーリスト破損」イベントの含意を以降の項で論議する。使用許諾権限との接続によって、永久リストを修復できることが必要であるものの、使用許諾権限510が特定の標的デバイス100の一時キーリストを回復できることは必要ではない(望ましくさえない)。この見解には多くの理由があるが、主要な理由は、一時キーリストが、永久キーリストよりもはるかに頻繁に更新される可能性が高いことであり、中央使用許諾権限510と標的ユニット100との間の必要なネットワークトラフィックの量を絶対最小値に保つことが望ましい。それでもなお、いくつかの理由で(そのいくつかを以降で論議する)、使用許諾権限510が特定の標的100の一時キーリストに修正を行うことができることが潜在的に望ましくあり得る。この場合、標的デバイス100の一次秘密キー(使用許諾権限510に知られている)を使用して、このリストを暗号化させることが望ましくなる。   In any case, there must be some mechanism that allows the target device 100 to track the current state of the master key list data structure 610 in a unique manner. This can be accomplished by having two “master” lists. The first of these two lists (referred to as the permanent key list) is maintained by the licensing authority 510. This list relates to “permanent” ownership of the application-specific key associated with the target unit 100 in question. The second list is equally important, but relates to a temporary modification of the “permanent” key list data structure 610. Note that these modifications can either be added to the list or removed from the list. There are no necessary differences in the implementation of the data structures of the two lists themselves, the main differences occur depending on how they are used. It is desirable that there should be some way for either one or the other of these lists to recover the target unit 100 from a lost event. This loss may be due to some catastrophic failure or if the information contained in one of the lists is somehow corrupted (either maliciously or maliciously). obtain. The implications of such a “key list corruption” event are discussed in the following sections. Although it is necessary to be able to repair the permanent list by connection with the license authority, it is not necessary (even undesirable) that the license authority 510 can recover the temporary key list of a particular target device 100. There are many reasons for this view, but the main reason is that the temporary key list is likely to be updated much more frequently than the permanent key list, and the central licensing authority 510 and the target unit 100 It is desirable to keep the amount of network traffic required between and the absolute minimum. Nevertheless, it may be potentially desirable for a number of reasons (some of which will be discussed later) that the licensing authority 510 can make modifications to the temporary key list of a particular target 100. In this case, it would be desirable to encrypt this list using the primary secret key of the target device 100 (known to the licensing authority 510).

前述のように、キーリストデータ構造610の両方の完全性は、リスト自体とともに保存される、署名されたメッセージダイジェスト(デジタル署名)を使用することによって検証することができる。このメッセージダイジェストを生成するために使用される安全なコード機構の実装は、以前の項において説明し、手順を再び繰り返す必要はない。また、損失および/または破損の場合に永久キーリストデータ構造610を回復するための手順もすでに説明した。対処しなければならない唯一の残っている問題点は、一時キーリストデータ構造610の時間依存性部分をどのように解釈するか、および一時キーリストがどういうわけか使用不能になった場合にどのように対処するかである。   As mentioned above, the integrity of both of the key list data structure 610 can be verified by using a signed message digest (digital signature) that is stored with the list itself. The implementation of the secure code mechanism used to generate this message digest is described in the previous section and the procedure need not be repeated again. A procedure for recovering the permanent key list data structure 610 in the event of loss and / or corruption has also been described. The only remaining issues that must be addressed are how to interpret the time-dependent part of the temporary key list data structure 610, and what if the temporary key list is somehow unavailable. To deal with.

(一時ライセンス譲渡)
これは、タイムスタンプフィールド230の使用が重要である、セキュリティプロトコルのセクションのうちの1つである。前述のように、一時キーリストデータ構造610は、標的デバイス100の永久キーリストと正確に同じ方式で構築される。しかしながら、2つの間にはいくつかの差異がある。第1の差異は、標的ユニット100の秘密キーのうちのいずれか1つによって、一時キーリストを潜在的に暗号化できることである。通常の条件下で、使用許諾権限510が、このデータ構造を再構築できることは必要ではないため、それを暗号化するためにキーのうちのどれが使用されるかは、表向きは関連性がない。しかしながら、このリストがまた、ユニット100の一次秘密キーを使用して暗号化された場合、それは潜在的に使用許諾権限510の役に立つであろう。このことの理由は、ライセンス取消と関係があり、その状況を以降の項で論議する。
(Temporary license transfer)
This is one of the sections of the security protocol where the use of the timestamp field 230 is important. As described above, the temporary key list data structure 610 is constructed in exactly the same manner as the permanent key list of the target device 100. However, there are some differences between the two. The first difference is that the temporary key list can potentially be encrypted with any one of the target unit's 100 private keys. Under normal conditions, it is not necessary for the licensing authority 510 to be able to reconstruct this data structure, so it is irrelevant which of the keys is used to encrypt it. . However, if this list was also encrypted using the primary secret key of unit 100, it would potentially be useful for licensing authority 510. The reason for this has to do with license revocation, and the situation is discussed in the following sections.

一時および永久キーリストの第2の(かつ最も重要な)区別は、一時キーリストデータ構造に関連するタイムスタンプ値230のコピーもまた、標的デバイス100の内部に記憶されることである。このレジスタは、ソフトウェア可読ではなく、セキュリティブロックの一部であるため、安全なコードによって上書きされることができるのみである。このレジスタにおける値は、一時キーリストデータ構造がどういうわけか損失および/または破損した場合にどうするかを判定するために使用される。その手順をこの項の以降で論議する。   The second (and most important) distinction between the temporary and permanent key lists is that a copy of the timestamp value 230 associated with the temporary key list data structure is also stored within the target device 100. This register is not software readable and is part of the security block, so it can only be overwritten by secure code. The value in this register is used to determine what to do if the temporary key list data structure is somehow lost and / or corrupted. The procedure is discussed later in this section.

一時キーリストと永久キーリストとのさらに別の区別は、標的ユニット100が、その永久リストからユニット100の一時リストへ特定のキーの所有権を(一時的に)譲渡できることであるが、いずれの(同時に動作している)デバイスも、その一時キーリストから任意の他のキーリストへは特定のキーの所有権を譲渡できない。これは、当然ながら、他のユニットの一時キーリストだけでなく、標的100独自の永久キーリストも同様に含む。これは、誰が(および、いつ)任意の特定のキーを「借用」することができるようになるかを永久所有者のみが決定できることを意味する。しかしながら、この「貸出」期間は無期限にできる(および、このトランザクションは使用許諾権限に連絡する必要なく実行できる)ことに留意されたい。この「永久貸出」特徴は、最も近代的なデジタル著作権コントロール情報(CCI)システムの一部である、標準的「コピーワンス」機能要件と同等である。   Yet another distinction between a temporary key list and a permanent key list is that the target unit 100 can (temporarily) transfer ownership of a particular key from the permanent list to the temporary list of the unit 100, whichever A device (operating simultaneously) also cannot transfer ownership of a particular key from its temporary key list to any other key list. This of course includes not only the temporary key list of other units, but also the permanent key list unique to the target 100 as well. This means that only the permanent owner can determine who (and when) will be able to “borrow” any particular key. Note, however, that this “lending” period can be indefinite (and this transaction can be performed without having to contact the licensing authority). This “permanent lending” feature is equivalent to the standard “copy once” functional requirement that is part of the most modern digital copyright control information (CCI) system.

「キー所有権」譲渡手順は、図書館から本のコピーを借り出す手順といくぶん同様である。「借り手720」が永久所有者(「貸し手710」)から特定のアプリケーション特有のキー550の一時使用を要求する場合、貸し手710はまず、キー借出交渉工程の持続時間にわたって特定のキーの使用を禁止する、自らのための更新された一時キーリストを生成する。このアクションは、2つ以上の借り手720ユニットが同じキーを要求することを禁止する。貸し手ユニット710の一時キーリスト上の「借り出されたキー」の存在は、任意の特定のキーへのアクセスを制御するために、セマフォとして効果的に使用される。しかしながら、キーが「制限」に設置される初期時間量は、比較的短い期間に限定されるべきである。これは、借り手720デバイスが、長い期間にわたって特定のキーのアクセスを要求し、次いで、特定のキーの使用を不正に独占することにより、何らかの理由でトランザクションを完了できない場合を防止するためである。この比較的短い借出交渉段階のタイムアウトもまた、貸し手ユニット710に対する「サービス妨害」攻撃の同等物を搭載しようとしているかもしれない、悪意のあるデバイスの対策に役立つ。実際、貸し手ユニット710は、選択的に、その「承認された借り手」リスト上にないデバイスからの要求、または、万一これらのユニットのうちのいずれか1つがある期間内に過度に多くの要求を行おうとした場合に要求を無視することができる。この一時ブロックがキーに設置される正確な時間の長さは重要ではないが、任意の所与の借出手順が完了することを可能にするように十分長くなるべきである。高ネットワークトラフィックまたは潜時の時には、この期間を延長することができる。一時「キー借り出し」手順を描写する詳細フロー図を図7に示す。   The procedure for transferring “key ownership” is somewhat similar to the procedure for borrowing a copy of a book from a library. When a “borrower 720” requests a temporary use of a specific application-specific key 550 from a permanent owner (“lender 710”), the lender 710 first asks for the use of a specific key for the duration of the key borrowing negotiation process. Produce an updated temporary key list for yourself, prohibit. This action prohibits two or more borrower 720 units from requesting the same key. The presence of a “borrowed key” on the lender unit 710's temporary key list is effectively used as a semaphore to control access to any particular key. However, the initial amount of time that the key is placed at the “limit” should be limited to a relatively short period of time. This is to prevent the borrower 720 device from requesting access to a particular key for a long period of time and then illegally monopolizing the use of the particular key, thereby preventing the transaction from being completed for any reason. This relatively short borrowing negotiation stage timeout also helps counter malicious devices that may be trying to mount the equivalent of a “denial of service” attack on lender unit 710. In fact, the lender unit 710 can optionally request from a device that is not on its “approved borrowers” list, or in the unlikely event that any one of these units is too many requests within a certain period. You can ignore the request if you try to do this. The exact length of time that this temporary block is placed on the key is not critical, but should be long enough to allow any given borrowing procedure to be completed. This period can be extended during high network traffic or latency. A detailed flow diagram depicting the temporary “key borrowing” procedure is shown in FIG.

所与のキーの2つ移譲のコピーが同時に借り出されることが可能となる場合、所与のキーのいくつのコピーがいずれか1つの時点で借り出されるかを示すために、貸し手デバイス710の一時キーリスト内の適切なフィールドを使用できることに留意されたい。いったん借り手720および貸し手710が所与のキーの特定の借出期間を交渉すると、貸し手710は、借り手720にキー740の暗号化されたコピーを送信する。この暗号化は、貸し手デバイス710のみに知られている、一時秘密キー730を使用して実行される。次いで、借り手720が暗号化されたキーの正確な受信を確認する(暗号化されたメッセージから計算されるメッセージダイジェストを用いて)と、貸し手710は、借り出されたキーの「貸出期間」を延長し、借り手デバイス720に一時秘密キー730を送信する。この貸出工程の最大持続時間は、プロトコルの動作にとって重要ではなく、この値の選択において行われなければならないいくつかのトレードオフがある。これらの特定の問題点をこの項の以降で繰り返す。上記の例では、「借り手720」および「貸し手710」デバイスは、キー毎に借り出し期間の実際の長さを交渉できると想定するが、これは、確かにプロトコルの要件ではない。   If two copies of a given key can be borrowed at the same time, a temporary key on lender device 710 to indicate how many copies of the given key are borrowed at any one time Note that the appropriate fields in the list can be used. Once borrower 720 and lender 710 negotiate a specific borrowing period for a given key, lender 710 sends an encrypted copy of key 740 to borrower 720. This encryption is performed using a temporary secret key 730 known only to the lender device 710. The borrower 720 then confirms the correct receipt of the encrypted key (using a message digest calculated from the encrypted message) and the lender 710 determines the “lending period” of the borrowed key. Extend and send temporary private key 730 to borrower device 720. The maximum duration of this lending process is not critical to the operation of the protocol, and there are some tradeoffs that must be made in selecting this value. These specific issues are repeated later in this section. In the above example, it is assumed that the “borrower 720” and “lender 710” devices can negotiate the actual length of the borrow period for each key, but this is certainly not a protocol requirement.

借り手720または貸し手710のいずれかの一時キーリストが更新される時点の直前に、新しい一時リストに関連付けられるタイムスタンプ値230のコピーが、標的100上に不揮発性様式で記憶される。その時点で、一時キーリストデータ構造の暗号化されたバージョンは、安全にメモリに書き出すことができる(または、オンボードNVRAM、フラッシュROM、または何らかのハードディク上のどこか750のバックアップファイル等の、何らかの他のより永久的な場所に記憶される)。一時キーリストは、潜在的に、永久キーリストよりもはるかに頻繁に読み取られ、更新されるため、このリストは標的ユニットに迅速にアクセス可能であるべきことが望ましく、よって、アクセス潜時が比較的短い少なくとも1つの場所に、このリストが記憶されることが推奨される(しかし、プロトコルの実際の要件ではない)。一方で、電力不具合が不確定時間量にわたってユニット100の機能性の損失を潜在的に引き起こし得るため、このリストが記憶される唯一の場所が、何らかの揮発性記憶媒体(DRAM等)であることは推奨されない。この問題点について、この項の以降で詳細に述べる。   Just prior to the time when either the borrower 720 or the lender 710 is updated, a copy of the timestamp value 230 associated with the new temporary list is stored on the target 100 in a non-volatile manner. At that point, the encrypted version of the temporary key list data structure can be safely written to memory (or onboard NVRAM, flash ROM, or some other 750 backup file on some hard disk, etc. Stored in some other more permanent location). Since the temporary key list is potentially read and updated much more frequently than the permanent key list, it is desirable that this list should be quickly accessible to the target unit, so the access latencies are compared. It is recommended that this list be stored in at least one short place (but not the actual requirement of the protocol). On the other hand, it is possible that the only place where this list is stored is some volatile storage medium (such as DRAM), as power failures can potentially cause a loss of functionality of the unit 100 over an indeterminate amount of time. Not recommended. This problem will be described in detail later in this section.

特定のキーの借り出し期間が満了すると、借り手720および貸し手710デバイスの両方は、それぞれの一時キーリストデータベースを独立して更新することができる。したがって、「特定のキーを流通に戻す」ために、借り手720が貸し手710ユニットと連絡を取っていることは要件ではない。これは、借り手720および貸し手710デバイスが大きく離れている場合に、主要な利便性要因である。当然ながら、この動作のセキュリティは、キータイムスタンプ記録を生成および制御するために使用されるオンチップクロック間の非常に緊密な相関に依存してもよい。したがって、時間/日付クロックは、セキュリティシステムの不可欠な部分でなければならず、そのようなものとして、中央サーバとのトランザクションによって上書きされることができるべきである。また、クロックは、悪意のあるユーザが内部タイムスタンプ値230を修正しようとする場合に改ざん抵抗し、また、通常発生するシステム電力不具合を乗り切ることができるように、十分にロバストとなるように設計されなければならない。このクロックがバッテリ電源式であること、およびバッテリが除去され得るか、または経時的に電池切れになり得ることが想定できないわけではないため、システムは、クロックが潜在的に、使用許諾権限との相互作用によって再開およびリセットされ得るような態様で設計されるべきである。   When the borrowing period for a particular key expires, both the borrower 720 and the lender 710 device can independently update their temporary key list database. Therefore, it is not a requirement that the borrower 720 is in contact with the lender 710 unit to “return a particular key to circulation”. This is a major convenience factor when the borrower 720 and lender 710 devices are far apart. Of course, the security of this operation may depend on a very close correlation between the on-chip clocks used to generate and control the key timestamp records. The time / date clock must therefore be an integral part of the security system and as such should be able to be overwritten by transactions with the central server. In addition, the clock is designed to be robust enough to resist tampering when a malicious user attempts to modify the internal timestamp value 230, and to survive normal system power failures. It must be. Because it is not impossible to assume that this clock is battery-powered and that the battery can be removed or run out of battery over time, the system potentially It should be designed in such a way that it can be resumed and reset by interaction.

こうして、特定のアプリケーション特有のキー550の所有権を1つのユニットから別のユニットへ一時的に譲渡することができる状況を説明した。「貸出期間」の最後に、「借り手720」および「貸し手710」ユニットの両方は、それらの一時キーリストデータ構造を更新して、本来の所有者へのキーの「返却」を反映することができる。この手順は、両方のユニット上で独立して実行することができ、したがって、2つのデバイス間の相互作用を必要としないことに留意されたい。   Thus, a situation has been described in which ownership of a key 550 specific to a particular application can be temporarily transferred from one unit to another. At the end of the “lending period”, both the “borrower 720” and “lender 710” units may update their temporary key list data structure to reflect the “return” of the key to the original owner. it can. Note that this procedure can be performed independently on both units and therefore does not require interaction between the two devices.

ここで、1つ以上のキーが「借り出されている」または「貸出中」である間に、一時キーリストデータ構造の一方または他方が破損および/または損失した場合に対処しなければならない。「貸し手710」ユニット側では、キーが借り出されると、それが最初に行うことは、「貸出」期間の終了を判定することである。この値は明らかに、現在の時間/日付フィールドの値に貸出期間の持続時間を加算することによって構築される。次いで、この時間/日付値は、デバイスの一時キーリストが最後に更新された時の結果としてオンチップに記憶されている値と比較される。新しい値が古い値よりも大きい(後である)場合、新しい値は、古い値の代わりに上書きされる。「借り手720」側では、この同じ処理が使用されるため、結果は、任意の所与の標的ユニットにおいて、一時キーリストタイムスタンプは、常に特定のユニット100の一時キーリストの一部として保存されるタイムスタンプのうちのいずれかの最新のものである。   Here, one or more of the temporary key list data structures must be dealt with if damaged or / and lost while one or more keys are “borrowed” or “lending”. On the “lender 710” unit side, when a key is borrowed, the first thing it does is determine the end of the “lending” period. This value is clearly constructed by adding the duration of the loan period to the value of the current time / date field. This time / date value is then compared to the value stored on-chip as a result of the last time the device's temporary key list was updated. If the new value is greater (later) than the old value, the new value is overwritten instead of the old value. Since this same process is used on the “borrower 720” side, the result is that, for any given target unit, the temporary key list timestamp is always stored as part of the temporary key list for a particular unit 100. The latest one of the time stamps.

ユニット100の一時キーリストが損失あるいは不正に修正された場合、この「最新のタイムスタンプ」値が満了する時点まで、一時キーリストおよび永久リストの両方は無効となる。次いで、その時点で、ユニットは、永久キーリストを使用することに再び着手することができ、新しい一時キーリストを再構築する工程を開始することができる。   If the temporary key list of unit 100 is lost or tampered with, both the temporary key list and the permanent list will be invalid until this "latest timestamp" value expires. At that point, the unit can then start again using the permanent key list and can begin the process of rebuilding a new temporary key list.

したがって、デバイスの一時リストが改ざんまたは削除された場合、ユニットは、タイムアウト期間が満了するまで、効果的に動作不能となる。このタイムアウト手順は、不必要に制限的と思われる場合がある一方で、何らかの悪意のある行為の結果として、または1つのユニットから別のユニットへのキーの譲渡中に発生する何らかの故障(停電またはネットワーク接続の停止等)により存在する、任意の特定のアプリケーション特有のキーの複数のコピーの潜在的問題を回避する。また、一時キーリストデータ構造の改ざんの結果としてのそのようないくつかの影響の可能性は、実践の阻止を助長するはずである。   Thus, if the temporary list of devices has been tampered with or deleted, the unit is effectively disabled until the timeout period expires. While this timeout procedure may appear to be unnecessarily restrictive, any failure that occurs as a result of some malicious activity or during the transfer of a key from one unit to another (power failure or Avoid the potential problem of multiple copies of any particular application specific key that exists due to network connectivity outages, etc.). Also, the possibility of some such effects as a result of tampering with the temporary key list data structure should help prevent practice.

この点で、プロトコルの動作を強化するために使用され得る、多数のオプションの付加的特徴がある。1つのそのような考えられるオプションは、標的ユニットのオンチップセキュリティセクションに保存されている値に、暗号化されたキーリストデータ構造610のうちのいずれか一方(または両方)から生成される、署名されたメッセージダイジェスト(デジタル署名)を追加することである。デジタル署名の暗号解読に起因するMAC値は、暗号解読工程全体を経過する必要なく、任意の特定のキーリストのうちのいずれかの有効性を迅速に検証するために使用され得る。しかしながら、複数のネスト化されたキーリストの問題点は、暗号化されていないキーを最終的に産出するために、この暗号解読手順をある時点で複数回行わなければならない可能性が全面的に高いことを意味し、よって、これらのデジタル署名がオンチップに保存されることは、プロトコルの動作にとって重大ではない。   In this regard, there are a number of optional additional features that can be used to enhance the operation of the protocol. One such possible option is a signature generated from either (or both) of the encrypted key list data structures 610 into a value stored in the on-chip security section of the target unit. Is to add a signed message digest (digital signature). The MAC value resulting from the decryption of the digital signature can be used to quickly verify the validity of any of the particular key lists without having to go through the entire decryption process. However, the problem with multiple nested key lists is that it is possible that this decryption procedure must be performed multiple times at some point in order to ultimately produce an unencrypted key. It means high, so that these digital signatures are stored on-chip is not critical to the operation of the protocol.

別の強化の可能性は、1つだけよりもむしろ、1対のオンチップタイムスタンプ230値を記憶することである。一時キーリストを更新しなければならない最も早い(次の)時間を示すために、付加的なタイムスタンプ230が使用され得る。リストを常にチェックする(暗号解読工程を経過することを伴う)必要がないため、これにより、標的デバイス100が、その一時キーリストを改訂する必要がある時を決定しやすくなる。この特徴は、非常に有用となるが、再度、ユニットがこのプロトコルを実行できるための基本要件ではない。しかしながら、この第2のタイムスタンプを含有するシステムが実装される場合、2つのタイムスタンプが何らかの理由で「同期しなくなる」場合に混乱の可能性を提起する。思い浮かぶ1つのそのような例は、1つのそのようなタイムスタンプが書き込まれた直後であるが、第2のものが更新される前の時点で発生する、電力故障が存在する場合である。   Another enhancement possibility is to store a pair of on-chip timestamp 230 values rather than just one. An additional time stamp 230 may be used to indicate the earliest (next) time at which the temporary key list must be updated. This makes it easier for the target device 100 to determine when it needs to revise its temporary key list, since there is no need to constantly check the list (which involves going through the decryption process). This feature is very useful, but again is not a basic requirement for a unit to be able to run this protocol. However, if a system containing this second timestamp is implemented, it raises the possibility of confusion if the two timestamps are “out of sync” for some reason. One such example that comes to mind is when there is a power failure that occurs immediately after one such timestamp is written, but before the second is updated.

対処されるべき最後の問題点は、これらの一時キーリストタイムスタンプの値に対して、何が最小限度および最大限度であるかという問題である。一方で、最大「一時貸出期間」のより大きい限度は、ユーザが、適度に長期間にわたって1つのユニットから別のユニットへ、特定のデータアプリケーション(またはメディアストリーム)の使用を譲渡できるようにし得る。これは、ユーザが「ホームユニット」から携帯用ユニットへメディアストリームの所有権を譲渡することを希望する場合に、潜在的に役立つ。長い「借り出し期間」を有することにより、本来の「貸し手」ユニット710と連絡を取っていることを必要とせずに、ユーザが長期の旅行に携帯用ユニット(その関連一時キーとともに)を持っていくことが可能となる。長い「借り出し」期間の不利な面は、万一、元のユニット上の一時キーリストデータ構造に何かが起こった場合、そのユニットが長期間にわたって潜在的に無効となることである。   The final issue to be addressed is what is the minimum and maximum limits for these temporary key list timestamp values. On the other hand, a larger limit on the maximum “temporary lending period” may allow a user to transfer the use of a particular data application (or media stream) from one unit to another over a reasonably long period of time. This is potentially useful if the user wishes to transfer ownership of the media stream from the “home unit” to the portable unit. Having a long “borrowing period” allows the user to take a portable unit (with its associated temporary key) for a long trip without having to contact the original “lender” unit 710 It becomes possible. The disadvantage of a long “borrow” period is that if something happens to the temporary key list data structure on the original unit, that unit is potentially invalid for a long period of time.

この最後の問題点はまた、1つの悪意のあるコードが、オンチップタイムスタンプレジスタの値をある不確定値に設定できる場合に、標的ユニット100に対する潜在的危険も指摘する。これは、潜在的に、攻撃の標的を無効化することに等しくなり得るため、このタイムスタンプレジスタの値は、「安全な」コードブロックによって書き込まれることができるのみとなるべきである。再度、各ユニットは、異なる1組の秘密キーを有するため、悪意のあるデバイスが正当なユニットを効果的に装う場合を除いて、1つの特定のユニット100の秘密キーデータ104の発見は、他のユニットへの関心を引き起こすべきではない。この攻撃のモードを、同一性確認に関する問題点を扱う以降の項で論議する。   This last issue also points out a potential danger to the target unit 100 if one malicious code can set the value of the on-chip timestamp register to some uncertain value. This could potentially be equivalent to invalidating the target of the attack, so the value of this timestamp register should only be able to be written by a “safe” code block. Again, since each unit has a different set of secret keys, the discovery of the secret key data 104 for one particular unit 100 is the other, except when a malicious device effectively disguises a legitimate unit. Should not cause interest in the unit. This mode of attack will be discussed in the following sections dealing with the issues related to identity verification.

(永久ライセンス譲渡)
この手順の要素の多くを、本書の以前の項において論議した。特有のキーが1つのユニットから別のユニットへ永久に譲渡される基本工程を図5に示した。多くの点で、この手順は、この項の直前の項で説明されているような、キー所有権の一時譲渡の手順と本質的に同様である。
(Permanent license transfer)
Many of the elements of this procedure were discussed in previous sections of this document. FIG. 5 shows the basic process in which a unique key is permanently transferred from one unit to another. In many respects, this procedure is essentially similar to the procedure for temporary transfer of key ownership, as described in the section immediately preceding this section.

2つの手順の間の主要な差異は、永久譲渡が一時譲渡よりも単純な工程であること、永久キー所有権の譲渡手順が使用許諾権限510と標的ユニット100との間の相互作用を利用してもよいことである。永久譲渡工程がより単純である理由は、一時キー借り出し手順において必須条件である借出期間交渉を必要としないという事実にある。永久譲渡機能が使用許諾権限510と標的ユニット100との間の相互作用を利用する理由は、更新されたキーリストデータ構造が、トランザクションの両端で再構築されることができなければならないという事実によるものである。   The main difference between the two procedures is that the permanent transfer is a simpler process than the temporary transfer, and the permanent key ownership transfer procedure takes advantage of the interaction between the licensing authority 510 and the target unit 100. It may be. The reason why the permanent transfer process is simpler is the fact that it does not require borrowing period negotiation, which is a prerequisite in the temporary key borrowing procedure. The reason that the permanent transfer function utilizes the interaction between the license authority 510 and the target unit 100 is due to the fact that the updated key list data structure must be reconstructed at both ends of the transaction. Is.

永久ライセンス譲渡は、通常、使用許諾権限510との相互作用を用いて発生するため、どのアプリケーションまたはメディアストリーム特有のキーがどの標的ユニットに属するかという記録がある。前述のように、これは、標的ユニット100のキーリストが何らかの壊滅的なデータ損失状況後に修復されなければならない場合に、または特定の標的ユニット100の所有権が異なる実体に譲渡される場合に、必要である。使用許諾権限510側のこの干渉はまた、特定のキーの永久所有権が1つの標的ユニット100から別のユニットへ譲渡される場合にも必要である。別の実体から最初に購入された資産を所有者が再販売する能力は、「第1販売権」として知られており、本明細書で説明されているプロトコルがこの特定の機能を支援する能力は重要である。   Permanent license transfers typically occur through interaction with the licensing authority 510, so there is a record of which application or media stream specific key belongs to which target unit. As mentioned above, this is the case when the key list of the target unit 100 must be repaired after some catastrophic data loss situation, or when ownership of a particular target unit 100 is transferred to a different entity. is necessary. This interference on the licensing authority 510 side is also necessary if the permanent ownership of a particular key is transferred from one target unit 100 to another. The ability of an owner to resell an asset originally purchased from another entity is known as a “first sale right” and the protocol described herein supports this particular function. Is important.

標的ユニット100の永久キーリストが使用許諾権限510によって維持されるという事実の別の重要な側面は、ユニット100がどういうわけか損なわれたことが証明された場合に、またはキーが損なわれているとして識別された場合に、この本体が、個別標的ユニット100のライセンスキーのいずれかまたは全てを取り消す能力を有することである。(前述のように)あらゆる標的ユニット100にキーの一意のリストを付与する可能性が存在するため、使用許諾権限510が損なわれたキーのソースを追跡する機会も提供し得る。そのような状況では、このプロトコルは、通常は「透かし」特徴に関連付けられる機能を果たし得るが、従来の透かし処理の欠点(透かしがメディアストリームの質に悪影響を及ぼす可能性等)がない。   Another important aspect of the fact that the permanent key list of the target unit 100 is maintained by the licensing authority 510 is that the unit 100 is somehow proven to be compromised, or the key is compromised. The main body has the ability to revoke any or all of the license keys of the individual target unit 100. Because there is a possibility of giving every target unit 100 a unique list of keys (as described above), the licensing authority 510 may also provide an opportunity to track the source of the compromised key. In such situations, this protocol may perform the function normally associated with the “watermark” feature, but without the disadvantages of traditional watermarking (such as the possibility that the watermark adversely affects the quality of the media stream).

たとえ事実と思えないかもしれなくても、アプリケーションコードまたはメディアストリーム特有のID情報がアプリケーション開発者520から発生し、使用許諾権限510が、任意の特定のアプリケーションまたはメディアストリームとその許諾所有者との間で関連付けを行うことができるように、十分な情報を必ずしも有するわけではないため、デジタルコンテンツ所有者のプライバシーは、この工程によって依然として維持される。ユーザのプライバシーを保護する能力もまた、このプロトコルの重要な側面である。   Even though it may not seem true, application code or media stream specific ID information is generated from the application developer 520 and the licensing authority 510 allows any particular application or media stream and its license owner to The privacy of the digital content owner is still maintained by this process, since it does not necessarily have enough information to allow associations between them. The ability to protect user privacy is also an important aspect of this protocol.

永久キー譲渡工程について留意すべき最後の問題点は、永久キー譲渡が果たす同じ機能の全てを、一時キーライセンス譲渡によって達成することが実際に可能なことである。しかしながら、標的ユニット100のセキュリティシステムの維持は、中央の安全なサーバによって理想的に制御されるべき機能であるため、連鎖のどこかにそのような機構を設置することが必要である。また、ユーザがプライバシーを維持することを懸念する場合、中央サーバが著作権所有者と標的ユニット100との間の緩衝の役割を果たすことができるという事実は、大変有用である。最後に、使用許諾権限510は、一時キー譲渡機構からこの機能を除外する、特定の標的ユニット100の永久キーリストに対する中央バックアップ記憶機構の役割を果たすことができるという魅力もある。   The final issue to note about the permanent key transfer process is that it is actually possible to achieve all of the same functions that a permanent key transfer performs by temporary key license transfer. However, since maintaining the security system of the target unit 100 is a function that should be ideally controlled by a central secure server, it is necessary to install such a mechanism somewhere in the chain. Also, the fact that the central server can serve as a buffer between the copyright owner and the target unit 100 is very useful if the user is concerned about maintaining privacy. Finally, the licensing authority 510 also has the appeal of being able to act as a central backup storage mechanism for the permanent key list of a particular target unit 100, excluding this function from the temporary key transfer mechanism.

(システム所有権譲渡、ライセンス取消、およびセキュリティシステム更新)
標的ユニット100のライセンス(またはキー)のうちの1つ以上が取り消されてもよい、いくつかの異なる手段がある。最も単純な方法は、標的100の一次秘密キーを単純に更新する方法である。この点で、標的100は、その永久キーリストにアクセスできなくなり、したがって、新しいものを作成する工程を開始しなければならない。一次秘密キーが一時キーリストデータ構造に対する暗号化工程で使用されなかった場合、たとえそうでなければ永久キーリストがアクセス不可能となる場合があるとしても、この一時キーリストは、潜在的に依然としてアクセスされ得ることに留意されたい。この点は、一時キーリストに対する暗号化工程の説明で以前に述べた。この理由により、永久および一時キーリストデータ構造610の両方に対する暗号化キーとして、標的ユニット100の一次秘密キーを使用することがおそらく最善の考えである。
(System ownership transfer, license revocation, and security system update)
There are several different means by which one or more of the licenses (or keys) of the target unit 100 may be revoked. The simplest method is to simply update the target 100 primary secret key. At this point, the target 100 becomes inaccessible to its permanent key list and therefore must start the process of creating a new one. If the primary private key is not used in the encryption process for the temporary key list data structure, this temporary key list will still remain, even if the permanent key list may otherwise be inaccessible. Note that it can be accessed. This point was mentioned earlier in the description of the encryption process for the temporary key list. For this reason, it is probably best to use the primary secret key of the target unit 100 as the encryption key for both permanent and temporary key list data structures 610.

標的ユニット100の所有権がある個人から別の個人へ変わる場合、この所有権変更を達成するための最も単純な方式は、ユニット100の一次秘密キーを何らかの新しい値に設定することである。しかしながら、本来の所有者が標的から永久キーの全てを回復する機会を有する前に、これが発生した場合には、ライセンスを失う。本来の所有者が、標的ユニットとともに関連永久キーリストの所有権を譲渡することを希望する場合には、特定のデバイスに関連付けられる所有権情報(使用許諾権限において記憶される)を変更すること以外に、何も標的ユニット100になされる必要はない。   If the ownership of the target unit 100 changes from one individual to another, the simplest way to accomplish this ownership change is to set the primary secret key of the unit 100 to some new value. However, if this occurs before the original owner has the opportunity to recover all of the permanent keys from the target, the license is lost. If the original owner wishes to transfer ownership of the associated permanent key list along with the target unit, other than changing the ownership information associated with the specific device (stored in the licensing rights) In addition, nothing needs to be done to the target unit 100.

ライセンス取消が発生することができる別の方式は、特定の標的ユニット100の永久キーリストに対するマスターキーが「満了する」場合である。ユニット100のセキュリティシステムの更新が永久キーリストの一部として保存されるため、この状況は、潜在的に破滅的な影響を及ぼし得る。   Another manner in which license revocation can occur is when the master key for a particular target unit 100's permanent key list “expires”. This situation can potentially be catastrophic because updates to the unit 100 security system are stored as part of the permanent key list.

この窮地から回復することは潜在的に可能となるが、標的100が、徹底的に構築される全く新しい「信用の連鎖」を必要とすることを要求する。この状況では、新しく初期化されたセキュリティシステムのコアは、標的100のある部分上でアトミックに作動することができるとして検証され得る計算のみに基づかなければならない。したがって、これは、(潜在的に疑わしくなり得る)最小量の他の汎用コードさえも要求した、任意のハッシング関数の使用を排除する。幸運にも、この状況は、検証可能な形で安全なコード断片の永久コアを永久キーリストデータ構造610の一部として常に保つという単純な事柄によって回避することができる。   Although it is potentially possible to recover from this remote location, it requires that the target 100 require a completely new “trust chain” that is thoroughly constructed. In this situation, the core of the newly initialized security system must be based solely on calculations that can be verified as being able to operate atomically on a portion of the target 100. This therefore eliminates the use of any hashing functions that required even a minimal amount of other general purpose code (which could potentially be suspicious). Fortunately, this situation can be avoided by the simple matter of always keeping a permanent core of code fragments that is verifiable and secure as part of the permanent key list data structure 610.

ライセンス取消のさらに別の方式は、使用許諾権限510が標的ユニット100の永久または一時キーリストにおける特定のキー入力を無視することを選択した場合に、発生することができる。これは、セキュリティシステムアップグレードが必要とされる場合に、または特定の標的ユニット100が特定のアプリケーションまたはメディアストリームの無許諾コピーを有していると識別された場合に、使用され得る。標的ユニット100は通常、独自のキーリストデータ構造610を維持するため、この手順は、使用許諾権限510と標的ユニットとの間で、通常よりも大量のネットワークトラフィックを伴う。   Yet another manner of license revocation can occur if the licensing authority 510 chooses to ignore certain keystrokes in the target unit 100's permanent or temporary key list. This can be used when a security system upgrade is required or when a particular target unit 100 is identified as having an unauthorized copy of a particular application or media stream. Since the target unit 100 typically maintains its own key list data structure 610, this procedure involves a greater amount of network traffic between the licensing authority 510 and the target unit than usual.

それでもなお、そのような手順は、破壊されたキーを検索して無効にする、および/または古いソフトウェアを更新されたバージョンと交換するように設計される、標的特有のカスタムバージョンで、問題の標的デバイス100にセキュリティシステムソフトウェアを強制的に改訂させることによって、達成することができる。当然ながら、この手順は、標的デバイス100が使用許諾権限510の中央サーバとの接続を開始する時点でしか発動させることができない。通常の状況下で、任意の特定の標的ユニット100が、任意の特定のスケジュール通りに使用許諾権限510への連絡を開始することは保証できない。幸運にも、問題の標的デバイス100は、その永久キーリストへの任意の新しい追加を認可するために、使用許諾権限510に接続しなければならない(直接または間接的のいずれかで)ため、あらゆるキー取消アクションは、新しいキー使用許諾手順の一部として達成することができる。また、この「リスト監視」アクションを支援するために、前述の「セキュリティシステムタイムアウト」機構が使用され得ることも可能である。しかしながら、これが事実であることは、このプロトコルにとっての要件ではなく、そのようなシステムがユーザのプライバシー権利の侵害をもたらす可能性が高い。   Nonetheless, such a procedure is a target-specific custom version that is designed to find and invalidate corrupted keys and / or replace old software with updated versions. This can be accomplished by forcing device 100 to revise the security system software. Of course, this procedure can only be triggered when the target device 100 initiates a connection with the central server of the licensing authority 510. Under normal circumstances, it cannot be guaranteed that any particular target unit 100 will begin contacting the licensing authority 510 according to any particular schedule. Fortunately, the target device 100 in question must connect to the licensing authority 510 (either directly or indirectly) to authorize any new additions to its permanent key list, so any The key revocation action can be accomplished as part of a new key authorization procedure. It is also possible that the aforementioned “security system timeout” mechanism can be used to support this “list monitoring” action. However, this is not a requirement for this protocol, and it is likely that such a system will violate the privacy rights of the user.

(他の懸念事項:)
必ずしもプロトコル自体の一部ではないが、それでもなお、本明細書で説明されるプロトコルを適正に実行することができる特定のシステムを作成する工程で対処されなければならない、多数の問題点が存在する。これらの問題点のうちのいくつかは、実際の工程またはデバイスの実装に依存しており、他のものは、大部分はアプリケーションに特有である。この情報は、好適な標的デバイス100の適正な構成に密接に結び付いているため、これらの問題のいくつかを以下の項で論議する。
(Other concerns :)
Although not necessarily part of the protocol itself, there are still a number of issues that must be addressed in the process of creating a particular system that can properly implement the protocol described herein. . Some of these issues depend on the actual process or device implementation, others are largely application specific. Since this information is closely tied to the proper configuration of the preferred target device 100, some of these issues are discussed in the following sections.

(相互動作することができるユニットの数の限度)
著作権所有者が、主要標的が一時的に所有権を譲渡することができるデバイスの合計数を限定することを希望する場合、これは、どの時点においても有効であってもよい限定数の公開/プライベートキーペアを確立することによって達成されてもよい。これは、以前の項で説明された、同じアプリケーション特有のキーの複数のコピーが同時に「貸出中」であった場合とは異なることに留意されたい。他のシナリオが可能であり、その場合、特定の標的デバイス100からアプリケーション特有のキーのうちのいずれかを「借り出す」ことができる、デバイスのリストは、ある1組のシリアル番号に限定することができる。使用許諾権限510は、標的ユニット100のセキュリティシステムが管理される正確に同じ方式で、そのような「承認された借り手」リストを管理することができる。したがって、使用許諾権限510は、例えば、「承認された借り手」リスト上の1組のシリアル番号を、元の標的デバイス100と同じ所有権情報を有する者に限定し得る。
(Limit on the number of units that can interact)
If the copyright owner wishes to limit the total number of devices that the primary target can temporarily transfer ownership to, this is a limited number of publications that may be in effect at any point in time. / May be accomplished by establishing a private key pair. Note that this differs from the case described in the previous section where multiple copies of the same application-specific key were simultaneously “lending”. Other scenarios are possible, in which case the list of devices that can “borrow” any of the application-specific keys from a particular target device 100 is limited to a set of serial numbers. Can do. License authority 510 can manage such an “approved borrower” list in exactly the same manner in which the security system of target unit 100 is managed. Thus, the licensing authority 510 may limit, for example, a set of serial numbers on the “approved borrower” list to those who have the same ownership information as the original target device 100.

(秘密キー発見および同一性確認の問題点)
特定のプレーヤに対する一次秘密キーが、物理的分解およびチップ金型検査によって発見された場合、これは、各デバイスが異なる1組の秘密キーを有するため、任意の他のデバイスのセキュリティを損なうべきではない。しかしながら、特定のプレーヤに対する一次キーがどういうわけか損なわれた場合、無許諾デバイスが正当な標的ユニットを装うことが潜在的に可能である。この問題が未検出のままとなった場合、この知識を装備した無許諾デバイスが、その特定の標的ユニットへ発行されたアプリケーション特有の暗号解読キーのうちのいずれかを損ない得るという可能性存在する。標的ユニット100のシリアル番号は、まず第1に、使用許諾権限510がデバイスへ暗号解読キーを発行するために登録されなければならないため、この目的の問題は、表向きは、無許諾デバイスによる他の正当な標的ユニット100の限定に限定される。
(Problems of secret key discovery and identity verification)
If the primary secret key for a particular player is discovered by physical disassembly and chip mold inspection, this should not compromise the security of any other device because each device has a different set of secret keys Absent. However, if the primary key for a particular player is somehow compromised, it is potentially possible for an unauthorized device to impersonate a legitimate target unit. If this problem remains undetected, there is a possibility that an unauthorized device equipped with this knowledge could compromise any of the application-specific decryption keys issued to that particular target unit . Since the serial number of the target unit 100 must first be registered in order for the licensing authority 510 to issue a decryption key to the device, the problem for this purpose is that Limited to legitimate target unit 100 limitations.

しかしながら、ユニット100の秘密キー104の両方がそのような工程によって発見された場合、暗号化されたキーリストダイジェストの以前にバックアップされたコピーの検査に基づいて、そのユニットに許諾されたアプリケーション特有のキーの全てのセキュリティを損なうことが可能となる可能性がある。この理由により、一次および2次秘密キーの両方は、これらのキーの値を発見しようとする試行がキーデータの損失をもたらすように、「改ざん防止」方式で標的チップ上に実装されるべきである。   However, if both of the unit's 100 private keys 104 are discovered by such a process, the application-specific license granted to that unit based on the examination of a previously backed up copy of the encrypted key list digest. It may be possible to compromise all security of the key. For this reason, both primary and secondary secret keys should be implemented on the target chip in a “tamper-proof” manner so that attempts to discover the values of these keys will result in loss of key data. is there.

この改ざん防止特徴を標的デバイス100上に実装することができる、多数の手段があるが、そのようなものの正確な実装は、本書で説明されるプロトコルにとって重要ではない。「秘密キー損失」状況が、ユーザ側の怠慢(または乱用)という何らかの悪意のない行為を通して発生した場合、正当なユーザは、損傷されたユニット100のアプリケーション特有のキーを新しいデバイスに譲渡させるように手配することができる使用許諾権限510に、損傷されたユニットを戻すことができるべきである。しかしながら、元の標的デバイス100が機能しない場合、新しい標的デバイス100へのキーの譲渡は、アプリケーション開発者520とのトランザクションを伴わなければならない(少なくとも、まず第1に暗号化されていない状態で使用許諾権限510に供給されなかったキーに対して)ことに留意されたい。   Although there are numerous means by which this tamper-proof feature can be implemented on the target device 100, the exact implementation of such is not critical to the protocol described herein. If a “secret key loss” situation occurs through some non-malicious act of user negligence (or abuse), the legitimate user will cause the application-specific key of the damaged unit 100 to be transferred to a new device. It should be possible to return the damaged unit to a licensing authority 510 that can be arranged. However, if the original target device 100 does not work, the transfer of the key to the new target device 100 must be accompanied by a transaction with the application developer 520 (at least used primarily unencrypted). Note that (for keys that were not supplied to licensing authority 510).

しかしながら、他の真性標的ユニット100に扮することができたデバイスは、表向きは、疑いを持たない合法的に許諾されたデバイスをだまして、そのアプリケーション特有のキーのうちの1つ以上の所有権を一時的に放棄させるか、または(前述のように)動作を一時停止させることが可能となり得たことに留意されたい。後者が発生した場合、それからキーを借用しようとしたユニットの全てを無効にし得る「不正ユニット」を有する可能性が存在する。前者が発生した場合、任意の数のアプリケーションまたはメディア特有のキーが潜在的に損なわれ得る。   However, a device that was able to deceive another genuine target unit 100 would trick an unsuspecting legitimately licensed device and take ownership of one or more of its application-specific keys. Note that it could be possible to temporarily abandon or suspend the operation (as described above). If the latter occurs, there is the possibility of having an “illegal unit” that can then invalidate all of the units that attempted to borrow the key. If the former occurs, any number of application or media specific keys can potentially be compromised.

したがって、特定の標的ユニット100に対する潜在的な「許諾された借り手」の数を、使用許諾権限510サーバからの安全な更新を用いて、正当なユニットに供給されることしかできないリストに限定するという、以前に議論された概念は、良好なものである。前者の場合、これは、他の疑いを持たないユニットの所有者が、そのユニットがそもそもハッカーに実際に属しない限り、機能ユニットを分解してその秘密キーへのアクセスを獲得するハッカーによって無効化された正当なデバイスを有することを防止する。後者の場合、これは、アプリケーションまたはメディア特有のキーの譲渡を、使用許諾権限により適正に登録された、ある時点で許諾されたデバイスであったデバイスのみに限定する。それでもなお、断固としたハッカーは、依然として正当なユニットを購入し、それを暴露し、何とかして秘密キーデータへのアクセスを獲得し、次いで、正当なデバイスを装うためにこの情報を使用し得る。   Thus, limiting the number of potential “licensed borrowers” for a particular target unit 100 to a list that can only be supplied to legitimate units using secure updates from the licensing authority 510 server. The concept previously discussed is good. In the former case, this can be overridden by a hacker who has no other suspicion as the owner of the unit, disassembling the functional unit to gain access to its private key, unless the unit actually belongs to the hacker in the first place To prevent having a legitimate device. In the latter case, this limits the transfer of applications or media-specific keys to only those devices that were properly licensed at some point in time and that were properly registered with the licensing rights. Nevertheless, a determined hacker can still purchase a legitimate unit, reveal it, somehow gain access to the private key data, and then use this information to pretend to be a legitimate device .

そのため、この種の偽装イベントをどのように検出しようとするかという問題点が残る。この性質の極度に資金力のある敵を打倒するための唯一の成功する戦略は、少なくとも費用トレードオフの観点から、潜在的利得が必要とされる努力に値しないように、システムを設計することである。   Therefore, there remains the problem of how to detect this type of impersonation event. The only successful strategy for defeating extremely funded enemies of this nature is to design the system so that the potential gain is not worth the effort required, at least in terms of cost tradeoffs It is.

通信している他の未知のデバイスの真正性を証明しようとする、いくつかの手段が存在する。しかしながら、デバイスが実際に主張するものであることを証明するための最も成功する方法は、このデバイスを他のデバイスから独特にする特性に焦点を当てることである。本明細書によって説明されるもの等の、デジタル暗号解読機構等の特殊目的装置の場合、セキュリティプロトコルを適正に実行すること、および所与の1組の入力変数に基づいて正しい結果を計算することは、デバイスの能力となる。しかしながら、本明細書で説明されるセキュリティプロトコルは、公知のアルゴリズムに基づくため、計算を完了するまで十分な時間があることを考慮すれば、これは、表向きは、任意の汎用計算デバイスによって達成され得る。実際、デバイスを独特にする秘密キー情報がどういうわけか損なわれた場合に、この問題点は、公的に利用可能な技術に基づく任意のデバイスにとって潜在的な問題となる。したがって、分解およびチップ金型点検に直面しても、正当な標的デバイスの全てに対してオンチップに記憶される秘密キー情報が秘密のままでなければならないという教訓に、最終的には依存しなければならない。   There are several ways to try to prove the authenticity of other unknown devices with which you are communicating. However, the most successful way to prove that a device is what it claims is to focus on the characteristics that make this device unique from other devices. For special purpose devices, such as those described herein, for a special purpose device such as a digital cryptanalysis mechanism, to properly execute the security protocol and to calculate the correct result based on a given set of input variables Is the ability of the device. However, since the security protocol described herein is based on known algorithms, this is achieved by any general purpose computing device, considering that there is sufficient time to complete the calculation. obtain. In fact, if the secret key information that makes the device unique is somehow compromised, this problem becomes a potential problem for any device based on publicly available technology. Therefore, in the face of disassembly and chip mold inspection, it ultimately depends on the lesson that the private key information stored on-chip for all legitimate target devices must remain secret. There must be.

ある時間量内で検証可能なMAC値を正しく見つけ出す能力等の要件を、標的識別および検証工程に確かに追加することができる。最終的なMAC値が複数回に暗号化されることを要求することによって、手順をさらに困難にすることができる。したがって、ライセンスの正当なコピーを自ら単純に購入する費用よりも通常はるかに高価となる、(より一般的な)計算リソースへのアクセスを有することを必要とされる点で、攻撃者が正当なデバイスを模倣する能力を潜在的に制限することができる。メディアストリームプレーヤの場合、プレーヤが表向きは適応するように設計されている、メディアストリームのうちの1つ以上の一部分を正しく復号する能力も含むことができる。   Requirements such as the ability to correctly find verifiable MAC values within a certain amount of time can certainly be added to the target identification and verification process. By requiring the final MAC value to be encrypted multiple times, the procedure can be made more difficult. Thus, an attacker is legitimate in that he is required to have access to (more general) computational resources, which are usually much more expensive than simply purchasing a legitimate copy of the license. The ability to mimic a device can potentially be limited. In the case of a media stream player, it may also include the ability to correctly decode a portion of one or more of the media streams that the player is designed to adapt face up.

しかしながら、どのような場合でも、デジタル著作権保護の全工程は、チューリング問題である。したがって、十分な時間およびリソースを考慮すると、いずれのデジタル著作権保護方式も、断固とした敵に打倒される可能性がある。これは、当然ながら、秘密キー情報へのアクセスが間違いなく攻撃未遂者にとって大きな利点となるという事実とは無関係でさえある。したがって、ユニットの秘密キーが損なわれることを防ぐ能力は、このセキュリティプロトコルの重要な部分である。   However, in any case, the whole process of digital copyright protection is a Turing problem. Therefore, given sufficient time and resources, any digital copyright protection scheme can be defeated by a determined enemy. This is, of course, even unrelated to the fact that access to private key information is definitely a great advantage for an attacker. The ability to prevent the unit's private key from being compromised is therefore an important part of this security protocol.

(結論:)
上記の著作権保護プロトコルは、いくつかの点で独特である。第1は、ユーザが合法的に購入されたアプリケーションまたはメディア特有のキーデータのバックアップコピーを作製する能力を有することを禁止しようとしないという事実である。第2に、このプロトコルは、いずれの種類のデジタルデータの区別も行わず、したがって、セキュリティプロトコルが、保護するように設計されているデータストリームと同じように容易に更新されることを可能にする。第3に、このプロトコルは、ユーザが、それらのアプリケーションまたはメディア特有のキーの所有権を、プロトコルを実行することが可能な別のユニットに一時的に譲渡できるようにする。また、このプロトコルは、ライセンス取得者が1つの標的ユニット100から別のユニットへの所有権の永久譲渡を達成する能力を提供する。この最後の特性は、このプロトコルの下で、消費者の合法的な「第1販売権」の実現を可能にする。
(Conclusion :)
The above copyright protection protocol is unique in several ways. The first is the fact that it does not attempt to prohibit users from having the ability to make backup copies of legally purchased applications or media-specific key data. Second, this protocol does not differentiate between any kind of digital data, thus allowing security protocols to be updated as easily as data streams that are designed to protect. . Third, this protocol allows users to temporarily transfer ownership of their application or media specific keys to another unit capable of executing the protocol. This protocol also provides the ability for the licensee to achieve a permanent transfer of ownership from one target unit 100 to another. This last feature allows the consumer to realize a legal “first sale right” under this protocol.

実際、本明細書で説明されるプロトコルと他のコピー保護方式との間の基本的な差異のうちの1つは、このシステムのセキュリティが、特定のデータセットにアクセスする能力を制御することに依存しないが、むしろ、そのデータセット内に含有される着想を表現する行為を制御する能力に依存することである。   In fact, one of the fundamental differences between the protocols described herein and other copy protection schemes is that the security of this system controls the ability to access a particular data set. It does not depend, but rather relies on the ability to control the act of expressing the ideas contained within the data set.

先述の詳細では、具体的な実施形態を参照して本発明を説明した。しかしながら、当業者であれば、以下の請求項で説明されるような本発明の範囲を逸脱することなく、種々の修正および変更を行うことができると理解する。それに応じて、明細書および図は、制限的よりもむしろ例証的な意味で見なされるものであり、全てのそのような修正は、本発明の範囲内に含まれることを目的とする。   In the foregoing details, the invention has been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present invention.

具体的実施形態に関して、便益、他の利点、および問題の解決法を上記で説明した。しかしながら、便益、利点、問題の解決法、および、任意の便益、利点、または解決法を発生させる、またはより顕著にさせる任意の構成要素は、任意または全ての請求項の重大、必要、または不可欠な特徴として解釈されないものである。   Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, benefits, benefits, solutions to problems, and any components that generate or make any benefit, advantage, or solution significant, essential, or essential to any or all claims It is not interpreted as a unique feature.

Claims (1)

明細書に記載の発明。Invention described in the specification.
JP2012276507A 2012-12-19 2012-12-19 Method and system for recursive security protocol for digital copyright control Withdrawn JP2013084294A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012276507A JP2013084294A (en) 2012-12-19 2012-12-19 Method and system for recursive security protocol for digital copyright control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012276507A JP2013084294A (en) 2012-12-19 2012-12-19 Method and system for recursive security protocol for digital copyright control

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009552649A Division JP2010520703A (en) 2007-03-06 2007-03-06 Method and system for recursive security protocol for digital rights control

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015086478A Division JP2015135703A (en) 2015-04-21 2015-04-21 Method and system for recursive security protocol for digital copyright control

Publications (2)

Publication Number Publication Date
JP2013084294A true JP2013084294A (en) 2013-05-09
JP2013084294A5 JP2013084294A5 (en) 2013-08-01

Family

ID=48529350

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012276507A Withdrawn JP2013084294A (en) 2012-12-19 2012-12-19 Method and system for recursive security protocol for digital copyright control

Country Status (1)

Country Link
JP (1) JP2013084294A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110708155A (en) * 2019-09-19 2020-01-17 北京奇艺世纪科技有限公司 Copyright information protection method, copyright information protection system, copyright confirming method, copyright confirming device, copyright confirming equipment and copyright confirming medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003101526A (en) * 2001-06-27 2003-04-04 Microsoft Corp Method for binding digital license to portable device and for checking out or checking in digital license from or to portable device in digitized right management (drm) system
JP2003234728A (en) * 2001-09-27 2003-08-22 Matsushita Electric Ind Co Ltd Encryption device, decrypting device, secret key generation device, copyright protection system and cipher communication device
WO2006080754A1 (en) * 2004-10-12 2006-08-03 Information And Communications University Research And Industrial Cooperation Group Contents encryption method, system and method for providing contents through network using the encryption method
JP2006222496A (en) * 2005-02-08 2006-08-24 Matsushita Electric Ind Co Ltd Digital image receiver and system for receiving digital image

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003101526A (en) * 2001-06-27 2003-04-04 Microsoft Corp Method for binding digital license to portable device and for checking out or checking in digital license from or to portable device in digitized right management (drm) system
JP2003234728A (en) * 2001-09-27 2003-08-22 Matsushita Electric Ind Co Ltd Encryption device, decrypting device, secret key generation device, copyright protection system and cipher communication device
WO2006080754A1 (en) * 2004-10-12 2006-08-03 Information And Communications University Research And Industrial Cooperation Group Contents encryption method, system and method for providing contents through network using the encryption method
JP2006222496A (en) * 2005-02-08 2006-08-24 Matsushita Electric Ind Co Ltd Digital image receiver and system for receiving digital image

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110708155A (en) * 2019-09-19 2020-01-17 北京奇艺世纪科技有限公司 Copyright information protection method, copyright information protection system, copyright confirming method, copyright confirming device, copyright confirming equipment and copyright confirming medium

Similar Documents

Publication Publication Date Title
US7203844B1 (en) Method and system for a recursive security protocol for digital copyright control
JP5636371B2 (en) Method and system for code execution control in a general purpose computing device and code execution control in a recursive security protocol
JP2015511050A (en) Method and system for process working set isolation
US6889209B1 (en) Method and apparatus for protecting information and privacy
JP4680564B2 (en) Content encryption and data protection on portable media
US7716474B2 (en) Anti-piracy software protection system and method
JP4884535B2 (en) Transfer data objects between devices
US20060064756A1 (en) Digital rights management system based on hardware identification
US20070219917A1 (en) Digital License Sharing System and Method
US20060064488A1 (en) Electronic software distribution method and system using a digital rights management method based on hardware identification
JP2010520703A (en) Method and system for recursive security protocol for digital rights control
JP2015135703A (en) Method and system for recursive security protocol for digital copyright control
Myles et al. Content protection for games
JP2013084294A (en) Method and system for recursive security protocol for digital copyright control
JP2014017871A (en) Method and system for recursive security protocol for digital copyright control
Abbadi Digital rights management for personal networks
KR20070022257A (en) Digital license sharing system and method
AU2005226064A1 (en) Digital license sharing system and method

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20130408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140401

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140404

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140501

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141021

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20141231

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150123

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150421

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20150423