JP2009516961A - Method and system for managing key and / or rights objects - Google Patents

Method and system for managing key and / or rights objects Download PDF

Info

Publication number
JP2009516961A
JP2009516961A JP2008541468A JP2008541468A JP2009516961A JP 2009516961 A JP2009516961 A JP 2009516961A JP 2008541468 A JP2008541468 A JP 2008541468A JP 2008541468 A JP2008541468 A JP 2008541468A JP 2009516961 A JP2009516961 A JP 2009516961A
Authority
JP
Japan
Prior art keywords
file
key
rights object
medium
storage
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
JP2008541468A
Other languages
Japanese (ja)
Inventor
オクタイ ラシザデ,
バーマン カワミ,
ファブリス ジョガンド−クーロン,
ロバート シー. チャン,
ファーシド サベット−シャーヒ,
Original Assignee
サンディスク コーポレーション
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
Priority claimed from US11/283,225 external-priority patent/US20070116288A1/en
Priority claimed from US11/283,221 external-priority patent/US8156563B2/en
Application filed by サンディスク コーポレーション filed Critical サンディスク コーポレーション
Publication of JP2009516961A publication Critical patent/JP2009516961A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

権利オブジェクト(RO)を、望ましくは、認証されたユーザーだけがアクセス可能になっている保護されている領域に、記憶するのに、1つ又はそれ以上の権利オブジェクト(RO)ファイルを使用することができる。ROナビゲーションファイルは、望ましくは、ROファイル内の或る場所が有効なROを保有しているか否かを識別する各状態ビットを保有している保護されていない公開領域に記憶されている。ROファイル内のROの場所と、ROナビゲーションファイル内の、ROファイル内のその対応する場所が有効なROを保有しているか否かを識別する状態ビットの場所との間には、1対1の対応関係が在るのが望ましい。ROファイル内の特定の場所が有効なROを保有しているか否かは、ROナビゲーションファイル内のその対応する状態ビットを調べることにより見つけることができる。ROファイル内の特定の場所が有効なROを保有しているか否かをこのやり方で見極めることにより、認証プロセスを通過する必要無しに、ROを削除することが可能になる。ROファイル内に、新しいROを記憶するための空のスロットを見つけるプロセスも簡単になる。これにより、RO管理の効率は格段に向上する。同様のシステムは、コンテンツファイルを保護するためのコンテンツ暗号化/暗号化キーの管理にも使用することができる。  Using one or more rights object (RO) files to store the rights object (RO), preferably in a protected area that is accessible only to authorized users Can do. The RO navigation file is preferably stored in an unprotected public area that holds each status bit that identifies whether a location in the RO file has a valid RO. There is a one-to-one correspondence between the location of the RO in the RO file and the location of the status bit in the RO navigation file that identifies whether the corresponding location in the RO file has a valid RO. It is desirable that there is a corresponding relationship. Whether a particular location in the RO file has a valid RO can be found by examining its corresponding status bit in the RO navigation file. By determining in this manner whether a particular location in the RO file has a valid RO, it is possible to delete the RO without having to go through the authentication process. The process of finding an empty slot for storing a new RO in the RO file is also simplified. Thereby, the efficiency of RO management is remarkably improved. A similar system can be used for content encryption / encryption key management to protect content files.

Description

本発明は、概括的には、暗号化/暗号解読システムに関し、より詳細には、暗号化及び/又は暗号解読に使用されるキー、及び/又はコンテンツの使用又はコンテンツへのアクセスを制御する権利オブジェクトを、管理するためのシステムに関する。   The present invention relates generally to encryption / decryption systems, and more particularly to keys used for encryption and / or decryption and / or the right to control the use or access to content. The present invention relates to a system for managing objects.

音楽、映像、及びゲームの様なメディアコンテンツは、デジタルファイルとして配給されることが増えている。その様なデジタルコンテンツは、インターネット及び記憶装置の使用を含め、複数のチャネルを介して広く配信されている。デジタルコンテンツは、例えば、磁気又は光ディスク、テープ、及びフラッシュメモリの様な不揮発性メモリなど、多種多様な装置に記憶されてもよい。それら記憶装置のデジタルコンテンツは、デスクトップ及びポータブル両様式のパーソナルコンピュータ、iPod(商標)及び他の種類の内蔵型又は自立型メディアプレーヤー、携帯情報端末(「PDA」)、ゲームコントローラ、MP3プレーヤー(商標)、及び携帯電話送受話器の様な多岐にわたる各種装置(ここでは総称的に「ホスト装置」と称する)により、再生され、記憶され、及び操作される。   Media content such as music, video, and games is increasingly distributed as digital files. Such digital content is widely distributed over multiple channels, including the use of the Internet and storage devices. Digital content may be stored on a wide variety of devices, such as magnetic or optical disks, tapes, and non-volatile memory such as flash memory. The digital content of these storage devices includes both desktop and portable personal computers, iPod (TM) and other types of built-in or self-supporting media players, personal digital assistants ("PDA"), game controllers, MP3 players (TM) ), And various devices (generally referred to herein as “host devices”), such as mobile phone handsets, are played, stored, and operated.

デジタルコンテンツの所有者がコンテンツへの認可されていないアクセスを減らすか又は防止するために、デジタルコンテンツは、認可されているユーザーしかコンテンツにアクセスできないように暗号化されることが多い。歌曲の様な多種多様なデジタルファイルの急増に伴い、管理する必要があるキーの数は膨大になりつつある。また、セキュリティー強化のために、デジタルファイルのそれぞれの暗号化及び暗号解読に多数のキーが関与することになる。従って、デジタル権利管理((digital rights management)「DRM」)に予想される一つの問題は、膨大な数のキーを効率的に管理すると共に、何れの特定のデジタルファイルにおいても、それを暗号化及び/又は暗号解読するための公正なキーを判定する性能である。   In order for digital content owners to reduce or prevent unauthorized access to content, digital content is often encrypted such that only authorized users can access the content. With the proliferation of a wide variety of digital files such as songs, the number of keys that need to be managed is increasing. In order to enhance security, a large number of keys are involved in the encryption and decryption of each digital file. Thus, one possible problem with digital rights management ("DRM") is to efficiently manage a large number of keys and encrypt any particular digital file. And / or the ability to determine a fair key for decryption.

複数のキー管理システムが使用されている。第1の型式のキー管理システムでは、暗号化及び/又は暗号解読キーを識別し見つけるのが更に容易になるように、コンテンツファイルに名前が付けられる。ファイル暗号化システム((encrypting file system)「EFS」)として知られている別の型式のキー管理システムでは、ファイルの暗号化に使用されるキー自体が暗号化され、この暗号化されたキーが、対応する暗号化されたコンテンツファイルのヘッダに記憶される。上記キー管理システムは、アプリケーションによっては有用であるが、それらはそれぞれ限界がある。上記システムはどれも全面的に満足のいくものではない。従って、更に柔軟性に富み、更に使用し易いキー管理システムを提供することが望まれている。   Multiple key management systems are used. In a first type of key management system, content files are named so that it is easier to identify and find encryption and / or decryption keys. In another type of key management system known as a file encryption system (“EFS”), the key itself used to encrypt the file is encrypted, and the encrypted key is stored in the encrypted file system. , Stored in the header of the corresponding encrypted content file. The key management system is useful for some applications, but each has its limitations. None of the above systems are entirely satisfactory. Accordingly, it is desired to provide a key management system that is more flexible and easier to use.

デジタル権利管理(DRM)では、各コンテンツファイルは、コンテンツファイルがどのようにアクセスされ及び/又は使用されるかに関する又はそれを制御する規則と関係付けられてもよい。その様な規則を、DRMでは権利オブジェクトと称している。例えば、規則は、コンテンツファイルが、限定された回数のみ、又は特定の失効日以前にのみ、又は特定の期間中にのみ、アクセスできることを定めてもよい。従って、コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御することが望まれるときには、上で説明した規則並びにコンテンツファイルの暗号化及び/又は暗号解読に使用されるコンテンツ暗号化/暗号解読キーを保有することができる権利オブジェクトが作成される。権利オブジェクトは、そこで、更に、権利オブジェクトにより制御されるコンテンツファイルと関係付けられる。多くの場合、権利オブジェクトは、コンテンツファイルの暗号化/暗号解読に使用されるコンテンツ暗号化/暗号解読キーへのアクセスを制御することにより、コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御する。而して、保護されているコンテンツファイルを使用すること及び/又はコンテンツファイルにアクセスすることができるようになるには、先ず、それと関係付けられている権利オブジェクトを取り出すか何らかのやり方で取得し、その権利オブジェクトの規則を解読し、そこで、その規則に則ってコンテンツファイルを使用し又はコンテンツファイルにアクセスすることになる。コンテンツファイルが暗号化されている場合は、関係付けられている権利オブジェクトから単数又は複数のキーを取り出し、それを使用してファイルを暗号解読して、初めてその中のコンテンツを使用し又はコンテンツにアクセスすることができる。コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御することが望まれるときは、そのコンテンツファイルと関係付けられており、ファイルの使用及び/又はファイルへのアクセスを統制する規則を有し、且つコンテンツファイルの暗号化/暗号解読に使用される何らかの暗号化/暗号解読キーを有している、権利オブジェクトが作成される。   In digital rights management (DRM), each content file may be associated with rules relating to or controlling how the content file is accessed and / or used. Such a rule is called a rights object in DRM. For example, a rule may define that a content file can be accessed only a limited number of times, only before a specific expiration date, or only during a specific period of time. Thus, when it is desired to control the use of and / or access to the content file, the rules described above and the content encryption / decryption key used to encrypt and / or decrypt the content file A rights object is created that can hold The rights object is then further associated with a content file controlled by the rights object. In many cases, rights objects control content file usage and / or access to content files by controlling access to content encryption / decryption keys used to encrypt / decrypt content files. To do. Thus, in order to be able to use and / or access a protected content file, first retrieve or otherwise obtain the rights object associated with it, and the rights The rule of the object is deciphered, and the content file is used or accessed according to the rule. If the content file is encrypted, take the key or keys from the associated rights object and use it to decrypt the file before using or converting it to the content for the first time Can be accessed. When it is desired to control the use and / or access to a content file, it is associated with that content file and has rules governing the use and / or access to the file; A rights object is created that has some encryption / decryption key used to encrypt / decrypt the content file.

DRMでは、管理する必要がある権利オブジェクトは多数に上るであろう。而して、更に柔軟性に富み、使用し易く、多数の権利オブジェクトを管理することができる、権利オブジェクトを管理するための管理システムを提供することも望まれてよい。   In DRM, there will be many rights objects that need to be managed. Thus, it may also be desirable to provide a management system for managing rights objects that is more flexible, easy to use, and capable of managing multiple rights objects.

本発明の1つの実施形態によれば、キー管理をやり易くするために、キーナビゲーションファイルと1つ又は複数のキー記憶ファイルが使用されてもよい。暗号化/暗号解読されることになるコンテンツファイルは、それぞれ、どのキー記憶ファイルが、当該コンテンツファイルを暗号化及び/又は暗号解読するために使用されることになるキーを保有しているか、を表す場所情報を保有しているヘッダ部分を備えている。キーナビゲーションファイルは、1つ又はそれ以上のキー記憶ファイル内の1つ又はそれ以上の場所に、有効キーが記憶されているか否かを示す状態情報を保有している。これは、1つ又はそれ以上のキー記憶ファイル内にキーを記憶するための場所を見つけ出すプロセスをやり易くする。状態情報は、1つ又は複数のキー記憶ファイル内の、1つ又はそれ以上の有効キーが記憶されていない1つ又はそれ以上の場所を示しているのが望ましい。   According to one embodiment of the present invention, a key navigation file and one or more key storage files may be used to facilitate key management. Each content file that is to be encrypted / decrypted indicates which key storage file has a key that will be used to encrypt and / or decrypt the content file. It has a header part that holds location information. The key navigation file holds state information indicating whether a valid key is stored at one or more locations in one or more key storage files. This facilitates the process of finding a place to store the key in one or more key storage files. The status information preferably indicates one or more locations in one or more key storage files where one or more valid keys are not stored.

上で説明したキーナビゲーションファイルと1つ又はそれ以上のキー記憶ファイルを備えているキーナビゲーション機構は、不揮発性コンピュータ読取可能媒体に記憶されてもよい。   The key navigation mechanism comprising the key navigation file described above and one or more key storage files may be stored on a non-volatile computer readable medium.

上の実施形態の1つの実施例では、キーナビゲーションファイルは、記憶媒体の公開の保護されていない領域に記憶されており、キーを記憶するための1つ又はそれ以上のキー記憶ファイルは、認証されたユーザー、アプリケーション又は装置しかアクセスすることができない、媒体の保護されている領域に記憶されている。明白な理由により、1つ又はそれ以上のキー記憶ファイルは、認可されていないアクセスに対してアクセス可能になっていない保護されている領域に記憶するのが望ましい。而して、キー記憶ファイル内の1つ又はそれ以上の場所が有効キーを保有しているか否かを示す状態情報を保有するキーナビゲーションファイルを、公開の領域に提供することにより、キー管理性能は一段と強化されることになる。而して、キー記憶ファイル内の特定のキーが有効か否かを見極めるために保護されている領域にアクセスする必要はなく、代わりに、この情報は、認証無しにアクセスすることができるキーナビゲーションファイル内で容易に取得できる。また、この特性は、特に、コンテンツファイル及びその暗号化/暗号解読キーを容易に削除できるようにする。1つの実施形態では、キーを削除するために、キーを保有している保護されている領域のキー記憶ファイルに実際にアクセスする必要なしに、単にキーナビゲーションファイル内の状態情報を変えるだけで、キーの削除が成し遂げられる。   In one example of the above embodiment, the key navigation file is stored in a public unprotected area of the storage medium, and the one or more key storage files for storing the keys are authenticated. Stored in a protected area of the media that can only be accessed by a designated user, application or device. For obvious reasons, it is desirable to store one or more key storage files in a protected area that is not accessible for unauthorized access. Thus, key management performance is provided by providing a public area with a key navigation file that holds state information indicating whether one or more locations in the key storage file hold a valid key. Will be further strengthened. Thus, there is no need to access a protected area to determine if a particular key in a key storage file is valid, but instead this information can be accessed without authentication. Can be easily obtained in a file. This property also makes it particularly easy to delete a content file and its encryption / decryption key. In one embodiment, to delete a key, without having to actually access the key storage file of the protected area holding the key, simply change the state information in the key navigation file, Key deletion is accomplished.

本発明のもう1つの実施形態によれば、キーナビゲーションファイルと1つ又はそれ以上のキー記憶ファイルは、コンテンツファイルを暗号化/暗号解読するためのプロセスに容易に利用される。キーナビゲーションファイルのエントリのそれぞれは、1つ又はそれ以上のキー記憶ファイル内の、複数の暗号化/暗号解読キーの1つを記憶するための場所に対応している。キーナビゲーションファイルは、その中に、1つ又はそれ以上のキー記憶ファイル内の或る場所の有効キーに対応していないエントリを見つけることを許可するために開かれてもよい。暗号化/暗号解読キーが生成され、コンテンツファイルはそれにより暗号化/暗号解読される。次いで、暗号化/暗号解読キーは、前記1つのキー記憶ファイル内の、キーナビゲーションファイル内の見つけられた当該エントリに対応している場所に記憶される。   According to another embodiment of the present invention, the key navigation file and one or more key storage files are easily utilized in a process for encrypting / decrypting content files. Each entry in the key navigation file corresponds to a location for storing one of a plurality of encryption / decryption keys in one or more key storage files. The key navigation file may be opened to allow it to find an entry that does not correspond to a valid key at a location in one or more key storage files. An encryption / decryption key is generated and the content file is encrypted / decrypted thereby. The encryption / decryption key is then stored in the location corresponding to the entry found in the key navigation file in the one key storage file.

上で説明した実施形態の1つの実施例では、キーナビゲーション情報は、キーナビゲーションファイル内の、有効キーに対応していないことが見い出されたエントリの場所から導き出され、この場所情報が暗号化されたファイルのヘッダ部分に挿入される。而して、逆のプロセスでは、暗号化されたファイルのヘッダ部分の場所情報を解読することにより、単数又は複数のキー記憶ファイルの1つの中の暗号化/暗号解読キーの場所が判明し、取り出されて、暗号化されたファイルの暗号解読及び/又は暗号化が行われる。   In one example of the embodiment described above, the key navigation information is derived from the location of the entry found in the key navigation file that does not correspond to a valid key, and this location information is encrypted. Inserted in the header of the file. Thus, in the reverse process, by decrypting the location information in the header portion of the encrypted file, the location of the encryption / decryption key in one of the one or more key storage files is determined, Once extracted, the encrypted file is decrypted and / or encrypted.

本発明の別の実施形態によれば、コンテンツファイルは、記憶媒体の保護されている領域内のキー記憶ファイルの暗号解読キーを使用して暗号解読される。コンテンツファイルのヘッダ部分は、キー記憶ファイル内の、コンテンツファイルの/暗号解読のための暗号化/暗号解読キーの場所を示すキーナビゲーション情報を保有している。キーナビゲーション情報が、コンテンツファイルのヘッダ部分から取り出され、次いで、そのキーナビゲーション情報から、暗号解読キーが記憶されているキー記憶ファイル内の場所が導き出される。次いで、暗号解読キーが、保護されている領域から取得され、当該コンテンツファイルを暗号解読するのに使用される。このプロセスは、キー記憶ファイル内の、コンテンツファイルを暗号化するための特定のキーを発見するのにも利用でき、その場合は、そのキーの場所情報は、当該コンテンツファイルのヘッダ内で見つけられる。   According to another embodiment of the invention, the content file is decrypted using the decryption key of the key storage file in the protected area of the storage medium. The header portion of the content file holds key navigation information indicating the location of the encryption / decryption key for decrypting / decrypting the content file in the key storage file. Key navigation information is retrieved from the header portion of the content file, and then the location in the key storage file where the decryption key is stored is derived from the key navigation information. A decryption key is then obtained from the protected area and used to decrypt the content file. This process can also be used to find a specific key in the key storage file for encrypting the content file, in which case the key location information can be found in the header of the content file .

直ぐ上で説明した実施形態の1つの特定の実施例では、キーを記憶するために複数のキー記憶ファイルが使用されている。この実施例では、コンテンツファイルのヘッダ部分のキーナビゲーション情報は、インデスクを備えており、このインデクスは整数である。キー記憶ファイルのそれぞれは、キーを記憶するためのm個の場所を保有している。インデクスをmで割ると、商が得られる。商の整数部は、複数のキー記憶ファイルのどの1つが暗号解読/暗号化キーを記憶しているかを示しており、ここではオフセットとも呼ばれる余り部分は、そのようなキー記憶ファイル内の、暗号解読/暗号化キーが記憶されている場所を示している。   In one particular example of the embodiment just described, multiple key storage files are used to store the keys. In this embodiment, the key navigation information in the header portion of the content file includes an indesk, and this index is an integer. Each key storage file has m locations for storing keys. Divide the index by m to get the quotient. The integer part of the quotient indicates which one of the key storage files stores the decryption / encryption key, where the remainder, also referred to as an offset, is the encryption in such a key storage file. It shows where the decryption / encryption key is stored.

本発明の更に別の実施形態は、キー記憶ファイルに記憶されており、キー記憶ファイルに記憶されているキーが有効か否かを示す状態情報を保有しているキーナビゲーションファイルを用いたコンテンツファイルの暗号化/暗号解読に使用される、暗号化/暗号解読キーを、無効にするための方法に着眼している。コンテンツファイルは、キー記憶ファイル内のキーの場所を示す場所情報を保有しているヘッダ部分を備えている。キーファイル内のキーの場所情報は、コンテンツファイルのヘッダ部分から取得される。この場所情報を使用して、キーナビゲーションファイル内のキーの状態情報が見つけられる。   Yet another embodiment of the present invention provides a content file using a key navigation file stored in a key storage file and having state information indicating whether or not the key stored in the key storage file is valid It focuses on a method for revoking the encryption / decryption key used for encryption / decryption. The content file includes a header portion that holds location information indicating the location of the key in the key storage file. The key location information in the key file is obtained from the header portion of the content file. This location information is used to find key status information in the key navigation file.

キーナビゲーションファイル内のキーの状態情報が変更されて、キーが無効であることが示される。   The key status information in the key navigation file is changed to indicate that the key is invalid.

上で説明した方法は、何れも、プロセッサにより実行されるコンピュータプログラムにより行われてもよく、プログラムはコンピュータ読取可能記憶媒体に記憶されている。   Any of the methods described above may be performed by a computer program executed by a processor, and the program is stored in a computer-readable storage medium.

本発明の別の実施形態によれば、コンピュータ読取可能媒体に記憶されているコンピュータプログラムは、キー管理をやり易くするために使用されてもよい。コンピュータプログラムは、キーナビゲーションファイルを作成し、1つ又はそれ以上のキー記憶ファイルを、それがまだ存在していない場合には作成する。各コンテンツファイルは、どのキー記憶ファイルがそのコンテンツファイルの暗号化/暗号解読キーを保有しているかを示す場所情報を保有しているヘッダ部分を備えている。キーナビゲーションファイルは、1つ又はそれ以上のキー記憶ファイル内の1つ又はそれ以上の場所が有効キーを保有しているか否かを示す状態情報を保有している。   According to another embodiment of the present invention, a computer program stored on a computer readable medium may be used to facilitate key management. The computer program creates a key navigation file and creates one or more key storage files if they do not already exist. Each content file has a header portion that holds location information indicating which key storage file holds the encryption / decryption key for that content file. The key navigation file holds state information indicating whether one or more locations in the one or more key storage files have valid keys.

上記実施形態の1つの実施例では、キーナビゲーションファイル内に、少なくとも1つのキー記憶ファイル内の有効キーに対応していないエントリが発見される。このコンテンツファイルのキーナビゲーション情報が、キーナビゲーションファイル内の前記エントリの場所から取得される。暗号化/暗号解読キーが生成され、それを使用して、当該コンテンツファイルが暗号化/暗号解読される。暗号化/暗号解読キーは、少なくとも1つのキー記憶ファイル内の、前記エントリに対応している場所に記憶される。   In one example of the above embodiment, an entry is found in the key navigation file that does not correspond to a valid key in at least one key storage file. The key navigation information of this content file is obtained from the location of the entry in the key navigation file. An encryption / decryption key is generated and used to encrypt / decrypt the content file. The encryption / decryption key is stored in a location corresponding to the entry in at least one key storage file.

本発明の別の実施形態によれば、コンピュータ読取可能媒体に記憶されているコンピュータプログラムは、記憶装置の保護されている領域のキー記憶ファイル内の暗号化/暗号解読キーを使用して、コンテンツファイルを暗号化/暗号解読する。コンテンツファイルヘッダは、キー記憶ファイル内の暗号化/暗号解読キーの場所を示すキーナビゲーション情報を保有している。コンピュータプログラムは、コンテンツファイルからキーナビゲーション情報を取り出し、このキーナビゲーション情報から、キー記憶ファイル内の、暗号化/暗号解読キーが記憶されている場所を導き出し、暗号化/暗号解読キーを取得して、このキーを使用してコンテンツを暗号化/暗号解読する。この実施形態の1つの実施例では、それぞれm個の場所を保有している複数のキー記憶ファイルが、キーを記憶するのに使用されている。キーナビゲーション情報は、インデクスを備えており、このインデクスは整数であり、コンピュータプログラムは、このインデクスをmで割って商を得ることにより、キー記憶ファイルのどの1つが暗号解読/暗号化キーを記憶しているかと、そのキー記憶ファイル内の、キーが記憶されている場所とを見つける。商の整数部は、複数のキー記憶ファイルのどの1つが暗号解読/暗号化キーを記憶しているかを示しており、ここではオフセットとも呼ばれている余り部分は、そのキー記憶ファイル内の、暗号解読/暗号化キーが記憶されている場所を示している。   According to another embodiment of the present invention, a computer program stored on a computer readable medium uses an encryption / decryption key in a key storage file in a protected area of a storage device to Encrypt / decrypt files. The content file header holds key navigation information indicating the location of the encryption / decryption key in the key storage file. The computer program extracts the key navigation information from the content file, derives the location where the encryption / decryption key is stored in the key storage file from the key navigation information, and obtains the encryption / decryption key. , This key is used to encrypt / decrypt the content. In one example of this embodiment, a plurality of key storage files, each having m locations, are used to store the keys. The key navigation information includes an index, which is an integer, and the computer program divides this index by m to obtain the quotient, so that one of the key storage files stores the decryption / encryption key. And the location where the key is stored in the key storage file. The integer part of the quotient indicates which one of the plurality of key storage files stores the decryption / encryption key, and the remainder, also referred to herein as the offset, is in the key storage file, It shows where the decryption / encryption key is stored.

上で説明したコンピュータプログラムにより実施される方法は、本発明の他の態様の対象である。   The method implemented by the computer program described above is the subject of another aspect of the present invention.

本発明の更に別の実施形態によれば、不揮発性コンピュータ読取可能媒体は、キーナビゲーション機構を記憶しており、この媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えている。この機構は、キーナビゲーションファイルと、少なくとも1つのキー記憶ファイルを備えている。各キー記憶ファイルは、そのキー記憶ファイル内の対応する場所に、複数のコンテンツファイルの対応する1つの暗号化及び/又は暗号解読に使用される複数のキーを保有している。この機構は、媒体の少なくとも1つの保護されていない領域に、複数のコンテンツファイルの一覧とキーナビゲーションファイルを保有しているディレクトリを備えている第1ディレクトリツリーを含んでいる。この機構は、更に、媒体の少なくとも1つの保護されている領域に、少なくとも1つのキー記憶ファイル内のキーの一覧を保有しているディレクトリを備えている第2ディレクトリツリーを含んでおり、前記2つのディレクトリツリーは、互いに鏡像となる構造を有している。   According to yet another embodiment of the invention, a non-volatile computer readable medium stores a key navigation mechanism, the medium comprising at least one protected area and at least one unprotected area. It has. This mechanism comprises a key navigation file and at least one key storage file. Each key storage file has a plurality of keys used for corresponding one encryption and / or decryption of a plurality of content files at a corresponding location in the key storage file. The mechanism includes a first directory tree comprising a directory holding a list of content files and a key navigation file in at least one unprotected area of the medium. The mechanism further includes a second directory tree comprising a directory holding a list of keys in at least one key storage file in at least one protected area of the medium, the 2 Two directory trees have structures that are mirror images of each other.

上で説明したシステムと方法は、キーの管理に代えて又はこれに加えて、コンテンツへのアクセス及び/又はコンテンツの使用を統制する規則の様なコンテンツ保護情報を管理するように適合させてもよい。而して、一使用例では、上で説明したシステムと方法は、コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御する権利オブジェクトを管理するように適合されてもよい。   The systems and methods described above may be adapted to manage content protection information such as rules governing access to and / or use of content instead of or in addition to key management. Good. Thus, in one use case, the systems and methods described above may be adapted to manage rights objects that control the use and / or access to content files.

而して、本発明の更に別の実施形態によれば、権利オブジェクト管理をやり易くするために、権利オブジェクトナビゲーションファイル及び1つ又はそれ以上の権利オブジェクト記憶ファイルが使用されてもよい。権利オブジェクトを用いて制御されることになるコンテンツファイルは、それぞれ、どの権利オブジェクト記憶ファイルが、コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御するのに使用されるべき権利オブジェクトを保有しているか、を示す場所情報を保有しているヘッダ部分を備えている。権利オブジェクトナビゲーションファイルは、1つ又はそれ以上の権利オブジェクト記憶ファイル内の1つ又はそれ以上の場所に、有効な権利オブジェクトが記憶されているか否かを示す状態情報を保有している。これは、1つ又はそれ以上の権利オブジェクト記憶ファイル内の権利オブジェクトキーを記憶するための場所を見つけ出すプロセスをやり易くする。状態情報は、1つ又は複数の権利オブジェクト記憶ファイル内の、1つ又はそれ以上の有効なキーが記憶されていない1つ又はそれ以上の場所を示すのが望ましい。   Thus, according to yet another embodiment of the present invention, a rights object navigation file and one or more rights object storage files may be used to facilitate rights object management. Each content file that is to be controlled with a rights object has a rights object that should be used to control which rights object storage file uses and / or accesses the content file. It has a header portion that holds location information indicating whether or not it exists. The rights object navigation file holds state information indicating whether a valid rights object is stored in one or more locations within one or more rights object storage files. This facilitates the process of finding a location for storing rights object keys in one or more rights object storage files. The status information preferably indicates one or more locations in the one or more rights object storage files where one or more valid keys are not stored.

上で説明した権利オブジェクトナビゲーションファイルと1つ又はそれ以上の権利オブジェクト記憶ファイルを備えている権利オブジェクトナビゲーション機構は、不揮発性コンピュータ読取可能媒体に記憶されてもよい。   The rights object navigation mechanism comprising the rights object navigation file described above and one or more rights object storage files may be stored on a non-volatile computer readable medium.

上の実施形態の1つの実施例では、権利オブジェクトナビゲーションファイルは、記憶媒体の公開の保護されていない領域に記憶されており、権利オブジェクトを記憶するための1つ又はそれ以上の権利オブジェクト記憶ファイルは、認証されたユーザー、アプリケーション、又は装置しかアクセスすることができない、媒体の保護されている領域に記憶されている。明白な理由により、1つ又はそれ以上の権利オブジェクト記憶ファイルは、認可されていないアクセスに対してはアクセス可能になっていない保護されている領域に記憶するのが望ましい。而して、権利オブジェクト記憶ファイルの1つ又はそれ以上の場所が有効な権利オブジェクトを保有しているか否かを示す状態情報を保有している権利オブジェクトナビゲーションファイルを、公開領域に提供することにより、権利オブジェクト管理性能は一段と強化されることになる。而して、権利オブジェクト記憶ファイル内の特定の権利オブジェクトが有効か否かを見極めるために保護されている領域にアクセスする必要はなく、代わりに、この情報は、認証無しにアクセスすることができる権利オブジェクトナビゲーションファイル内で容易に入手することができる。また、この特性は、特に、コンテンツファイル及びこれに関係付けられている権利オブジェクトを容易に削除できるようにする。1つの実施例では、権利オブジェクトを削除するために、権利オブジェクトを保有している保護されている領域の権利オブジェクト記憶ファイルに実際にアクセスする必要無しに、単に権利オブジェクトナビゲーションファイル内の状態情報を変えれば、権利オブジェクトの削除が成し遂げられる。   In one example of the above embodiment, the rights object navigation file is stored in a public unprotected area of the storage medium, and one or more rights object storage files for storing rights objects. Is stored in a protected area of the media that can only be accessed by authorized users, applications or devices. For obvious reasons, it is desirable to store one or more rights object storage files in a protected area that is not accessible for unauthorized access. Thus, by providing to the public area a rights object navigation file that holds state information indicating whether one or more locations of the rights object storage file have valid rights objects. The rights object management performance will be further enhanced. Thus, there is no need to access the protected area to determine whether a particular rights object in the rights object storage file is valid, instead this information can be accessed without authentication. It can be easily obtained in the rights object navigation file. This property also makes it particularly easy to delete content files and rights objects associated with them. In one embodiment, in order to delete a rights object, the state information in the rights object navigation file is simply stored without having to actually access the rights object storage file of the protected area holding the rights object. In other words, the deletion of the rights object is accomplished.

本発明の1つ又はそれ以上の実施形態によれば、権利オブジェクトナビゲーションファイルと1つ又はそれ以上の権利オブジェクト記憶ファイルは、権利オブジェクトをコンテンツファイルと関係付けるプロセスに容易に利用することができる。権利オブジェクトナビゲーションファイルのエントリのそれぞれは、1つ又はそれ以上の権利オブジェクト記憶ファイル内の、複数の権利オブジェクトの1つを記憶するための場所に対応している。権利オブジェクトナビゲーションファイルは、その中に、1つ又はそれ以上の権利オブジェクト記憶ファイル内の或る場所の有効な権利オブジェクトに対応していないエントリを見つけることを許可するために開かれてもよい。権利オブジェクトが生成され、コンテンツファイルはそれと関係付けられる。そこで、権利オブジェクトは、前記1つの権利オブジェクト記憶ファイル内の、権利オブジェクトナビゲーションファイル内で見つけられた当該エントリに対応している、場所に記憶される。   In accordance with one or more embodiments of the present invention, the rights object navigation file and one or more rights object storage files can be readily utilized in the process of associating rights objects with content files. Each entry in the rights object navigation file corresponds to a location for storing one of a plurality of rights objects in one or more rights object storage files. The rights object navigation file may be opened to allow it to find an entry that does not correspond to a valid rights object at a location in one or more rights object storage files. A rights object is created and the content file is associated with it. Thus, the rights object is stored in a location in the one rights object storage file corresponding to the entry found in the rights object navigation file.

上の実施形態の1つの実施例では、権利オブジェクトナビゲーション情報は、権利オブジェクトナビゲーションファイル内の、有効な権利オブジェクトに対応していないことが見い出されたエントリの場所から導き出され、この場所情報が暗号化されたファイルのヘッダ部分に挿入される。而して、逆のプロセスでは、コンテンツファイルのヘッダ部分の場所情報を解読することにより、単数又は複数の権利オブジェクト記憶ファイルの1つの中の権利オブジェクトの場所が判明し、その権利オブジェクトが、コンテンツファイルの使用及び/又はアクセスを行うために取り出される。   In one example of the above embodiment, rights object navigation information is derived from the location of an entry found in the rights object navigation file that does not correspond to a valid rights object, and the location information is encrypted. It is inserted into the header part of the converted file. Thus, in the reverse process, the location information of the header portion of the content file is decrypted to determine the location of the rights object in one of the rights object storage file or files, and the rights object is the content object. Retrieved for file use and / or access.

本発明の別の実施形態によれば、コンテンツファイルは、記憶媒体の保護されている領域内の権利オブジェクト記憶ファイルの暗号化/暗号解読権利オブジェクトを使用して暗号化/暗号解読されてもよい。コンテンツファイルのヘッダ部分は、権利オブジェクト記憶ファイル内の、コンテンツファイルに関係付けられている権利オブジェクトの場所を示す権利オブジェクトナビゲーション情報を保有している。権利オブジェクトナビゲーション情報が、コンテンツファイルのヘッダ部分から取り出され、次いで、その権利オブジェクトナビゲーション情報から、権利オブジェクト記憶ファイル内の、権利オブジェクトが記憶されている場所が導き出される。次いで、権利オブジェクトが、保護されている領域から取得され、当該コンテンツファイルにアクセスするため及び/又は何らかのやり方でコンテンツファイルを使用するために利用される。このプロセスは、コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスが望まれるとき、権利オブジェクト記憶ファイル内の特定の権利オブジェクトを発見するのにも利用でき、その場合は、その権利オブジェクトの場所情報は当該コンテンツファイルのヘッダに見つけられる。   According to another embodiment of the invention, the content file may be encrypted / decrypted using the rights object storage file encryption / decryption rights object in the protected area of the storage medium. . The header portion of the content file holds rights object navigation information indicating the location of the rights object associated with the content file in the rights object storage file. Rights object navigation information is retrieved from the header portion of the content file, and then from the rights object navigation information, the location in the rights object storage file where the rights object is stored is derived. A rights object is then obtained from the protected area and utilized to access the content file and / or use the content file in some way. This process can also be used to find a particular rights object in a rights object storage file when use of and / or access to the content file is desired, in which case location information for that rights object Is found in the header of the content file.

直ぐ上で説明した実施形態の1つの特定の実施例では、権利オブジェクトを記憶するために複数の権利オブジェクト記憶ファイルが使用されている。この実施例では、コンテンツファイルのヘッダ部分の権利オブジェクトナビゲーション情報は、インデスクを備えており、このインデクスは整数である。権利オブジェクト記憶ファイルのそれぞれは、権利オブジェクトを記憶するためのm個の場所を保有している。インデクスをmで割ると、商が得られる。商の整数部分は、複数の権利オブジェクト記憶ファイルのどの1つが権利オブジェクトを記憶しているかを示しており、ここではオフセットとも呼ばれている余り部分は、その権利オブジェクト記憶ファイル内の、権利オブジェクトが記憶されている場所を示している。   In one particular example of the embodiment just described, multiple rights object storage files are used to store rights objects. In this embodiment, the rights object navigation information in the header portion of the content file includes an indesk, and this index is an integer. Each rights object storage file has m locations for storing rights objects. Divide the index by m to get the quotient. The integer part of the quotient indicates which one of the plurality of rights object storage files stores the rights object, and the remainder part, also referred to as offset here, is the rights object in the rights object storage file. Indicates the location where is stored.

本発明の更に別の実施形態は、権利オブジェクト記憶ファイルに記憶されている権利オブジェクトが有効か否かを示す状態情報を保有している権利オブジェクトナビゲーションファイルを用いて、権利オブジェクト記憶ファイルに記憶されているコンテンツファイルの使用及び/又はコンテンツファイルへのアクセスの制御に使用される、権利オブジェクトを、無効にするための方法に着眼している。コンテンツファイルは、権利オブジェクト記憶ファイル内の権利オブジェクトの場所を示す場所情報を保有しているヘッダ部分を備えている。権利オブジェクトファイル内の権利オブジェクトの場所情報は、コンテンツファイルのヘッダ部分から取得される。権利オブジェクトナビゲーションファイル内の権利オブジェクトの状態情報は、場所情報を使用して見つけられる。権利オブジェクトナビゲーションファイルの権利オブジェクトの状態情報が変更され、権利オブジェクトは無効であると示される。   Yet another embodiment of the present invention is stored in a rights object storage file using a rights object navigation file that holds state information indicating whether the rights object stored in the rights object storage file is valid. Focus on methods for revoking rights objects that are used to control the use of and / or access to content files. The content file has a header portion that holds location information indicating the location of the rights object in the rights object storage file. The location information of the rights object in the rights object file is obtained from the header portion of the content file. The status information of the rights object in the rights object navigation file is found using the location information. The status information of the rights object in the rights object navigation file is changed to indicate that the rights object is invalid.

上で説明した方法は何れも、プロセッサにより実行されるコンピュータプログラムによって行われてもよく、プログラムはコンピュータ読取可能記憶媒体に記憶されている。   Any of the methods described above may be performed by a computer program executed by a processor, and the program is stored in a computer-readable storage medium.

本発明の別の実施形態によれば、コンピュータ読取可能媒体に記憶されているコンピュータプログラムは、権利オブジェクト管理をやり易くするために使用されてもよい。コンピュータプログラムは、権利オブジェクトナビゲーションファイルを作成し、且つ、1つ又はそれ以上の権利オブジェクト記憶ファイルを、それがまだ存在していない場合には作成する。各コンテンツファイルは、どの権利オブジェクト記憶ファイルがそのコンテンツファイルの権利オブジェクトを保有しているかを示す場所情報を保有しているヘッダ部分を備えている。権利オブジェクトナビゲーションファイルは、1つ又はそれ以上の権利オブジェクト記憶ファイル内の1つ又はそれ以上の場所が有効な権利オブジェクトを保有しているか否かを示す状態情報を保有している。   According to another embodiment of the invention, a computer program stored on a computer readable medium may be used to facilitate rights object management. The computer program creates a rights object navigation file and creates one or more rights object storage files if they do not already exist. Each content file has a header portion that holds location information indicating which rights object storage file holds the rights object of the content file. The rights object navigation file holds state information indicating whether one or more locations in the one or more rights object storage files have valid rights objects.

上記実施形態の1つの実施例では、権利オブジェクトナビゲーションファイル内に、少なくとも1つの権利オブジェクト記憶ファイル内の有効な権利オブジェクトに対応していないエントリが発見される。このコンテンツファイルの権利オブジェクトナビゲーション情報は、権利オブジェクトナビゲーションファイル内の前記エントリの場所から取得される。権利オブジェクトが生成され、当該コンテンツファイルと関係付けられる。権利オブジェクトは、少なくとも1つの権利オブジェクト記憶ファイル内の、前記エントリに対応している場所に記憶される。   In one example of the above embodiment, an entry is found in the rights object navigation file that does not correspond to a valid rights object in at least one rights object storage file. The rights object navigation information of the content file is obtained from the location of the entry in the rights object navigation file. A rights object is generated and associated with the content file. The rights object is stored in a location corresponding to the entry in at least one rights object storage file.

本発明の別の実施形態によれば、コンピュータ読取可能媒体に記憶されているコンピュータプログラムは、記憶装置の保護されている領域の権利オブジェクト記憶ファイル内の権利オブジェクトを用いて、コンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御する。コンテンツファイルヘッダは、権利オブジェクト記憶ファイル内の権利オブジェクトの場所を示す権利オブジェクトナビゲーション情報を保有している。コンピュータプログラムは、コンテンツファイルから権利オブジェクトナビゲーション情報を取り出し、この権利オブジェクトナビゲーション情報から、権利オブジェクト記憶ファイル内の、権利オブジェクトが記憶されている場所を導き出し、権利オブジェクトを取得して、その権利オブジェクトを用いてコンテンツファイルを使用し又はコンテンツファイルにアクセスする。この実施形態の1つの実施例では、それぞれm個の場所を保有している複数の権利オブジェクト記憶ファイルが、権利オブジェクトを記憶するのに使用されている。権利オブジェクトナビゲーション情報は、インデスクを備えており、このインデクスは整数であり、コンピュータプログラムは、このインデクスをmで割って商を取得することにより、権利オブジェクト記憶ファイルのどの1つが権利オブジェクトを記憶しているかと、その権利オブジェクト記憶ファイル内の、権利オブジェクトが記憶されている場所とを見つける。商の整数部分は、複数の権利オブジェクト記憶ファイルのどの1つが権利オブジェクトを記憶しているかを示しており、ここではオフセットとも呼ばれている余り部分は、その権利オブジェクト記憶ファイル内の、権利オブジェクトが記憶されている場所を表している。   According to another embodiment of the present invention, a computer program stored on a computer readable medium uses a rights object in a rights object storage file of a protected area of a storage device to use the content file and Control access to content files. The content file header holds rights object navigation information indicating the location of the rights object in the rights object storage file. The computer program extracts the rights object navigation information from the content file, derives from the rights object navigation information the location where the rights object is stored in the rights object storage file, obtains the rights object, and obtains the rights object. Use to use or access content files. In one example of this embodiment, multiple rights object storage files, each having m locations, are used to store rights objects. The rights object navigation information includes an index, the index is an integer, and the computer program divides the index by m to obtain the quotient, so that one of the rights object storage files stores the rights object. And the location where the rights object is stored in the rights object storage file. The integer part of the quotient indicates which one of the plurality of rights object storage files stores the rights object, and the remainder part, also referred to as offset here, is the rights object in the rights object storage file. Represents the location where is stored.

本発明の更に別の実施形態によれば、不揮発性コンピュータ読取可能媒体は、権利オブジェクトナビゲーション機構を記憶しており、この媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えている。この機構は、権利オブジェクトナビゲーションファイルと少なくとも1つの権利オブジェクト記憶ファイルを備えている。各権利オブジェクト記憶ファイルは、その権利オブジェクト記憶ファイル内の対応する場所に、複数のコンテンツファイルの対応する1つの使用及びファイルへのアクセスを制御するのに使用される複数の権利オブジェクトを保有している。この機構は、媒体の少なくとも1つの保護されていない領域に、複数のコンテンツファイルの一覧と権利オブジェクトナビゲーションファイルを保有しているディレクトリを備えている第1ディレクトリツリーを含んでいる。機構は、更に、媒体の少なくとも1つの保護されている領域に、少なくとも1つの権利オブジェクト記憶ファイル内の権利オブジェクトの一覧を保有しているディレクトリを備えている第2ディレクトリツリーを含んでおり、前記2つのディレクトリツリーは、互いを鏡像とする構造を有している。   According to yet another embodiment of the invention, a non-volatile computer readable medium stores a rights object navigation mechanism, the medium having at least one protected area and at least one unprotected. Has an area. This mechanism comprises a rights object navigation file and at least one rights object storage file. Each rights object storage file has a plurality of rights objects that are used to control one corresponding use of the plurality of content files and access to the file at a corresponding location in the rights object storage file. Yes. The mechanism includes a first directory tree comprising a directory holding a list of content files and a rights object navigation file in at least one unprotected area of the medium. The mechanism further includes a second directory tree comprising a directory holding a list of rights objects in the at least one rights object storage file in at least one protected area of the medium; The two directory trees have a structure in which each other is a mirror image.

上で説明したコンピュータプログラムにより実施される方法は、本発明の他の態様の対象である。   The method implemented by the computer program described above is the subject of another aspect of the present invention.

上の特性は、単独で、又は何れかの組み合わせで一緒に使用されてもよい。   The above properties may be used alone or together in any combination.

説明を分かり易くするために、本出願では、同一の構成要素は、同じ番号を付して識別している。   For ease of explanation, in this application, identical components are identified with the same numbers.

本発明の様々な実施形態を実施することができるメモリシステムの一例を図1のブロック図に示している。図1に示すように、メモリシステム10は、中央演算処理ユニット(CPU)12、バッファ管理ユニット(BMU)14、ホストインターフェースモジュール(HIM)16とフラッシュインターフェースモジュール(FIM)18、フラッシュメモリ20、及び周辺アクセスモジュール(PAM)22を含んでいる。メモリシステム10は、ホストインターフェースバス26及びポート26aを通してホスト装置24と通信する。フラッシュメモリ20は、NAND型式でもよいが、ホスト装置24のためのデータ記憶部を提供している。CPU12のソフトウェアコードもフラッシュメモリ20に記憶されている。FIM18は、フラッシュインターフェースバス28及びポート28aを通してフラッシュメモリ20に接続されている。HIM16は、デジタルカメラ、デスクトップ又はポータブルパーソナルコンピュータ、携帯情報端末(PDA)、デジタルメディアプレーヤー、MP3プレーヤー、ビデオゲームプレーヤー、及び携帯電話又は他のデジタル装置の様なホストシステムへの接続に適している。周辺アクセスモジュール22は、CPU12と通信するため、FIM、HIM、及びBMUの様な適切な制御モジュールを選択する。1つの実施形態では、システム10の点線で囲んだボックス内の構成要素の全ては、メモリカード又はスティック10’の様な単一のユニットに封入されてよく、望ましくは、同一ハウジング又は容器内のカード又はスティックにカプセル封入されてもよい。   An example of a memory system in which various embodiments of the present invention can be implemented is shown in the block diagram of FIG. As shown in FIG. 1, the memory system 10 includes a central processing unit (CPU) 12, a buffer management unit (BMU) 14, a host interface module (HIM) 16, a flash interface module (FIM) 18, a flash memory 20, and A peripheral access module (PAM) 22 is included. The memory system 10 communicates with the host device 24 through the host interface bus 26 and the port 26a. The flash memory 20 may be a NAND type, but provides a data storage unit for the host device 24. The software code of the CPU 12 is also stored in the flash memory 20. The FIM 18 is connected to the flash memory 20 through the flash interface bus 28 and the port 28a. The HIM 16 is suitable for connection to host systems such as digital cameras, desktop or portable personal computers, personal digital assistants (PDAs), digital media players, MP3 players, video game players, and mobile phones or other digital devices. . Peripheral access module 22 selects an appropriate control module such as FIM, HIM, and BMU to communicate with CPU 12. In one embodiment, all of the components in the dotted box of system 10 may be enclosed in a single unit, such as a memory card or stick 10 ', preferably in the same housing or container. It may be encapsulated in a card or stick.

バッファ管理ユニット14は、ホストダイレクトメモリアクセス(HDMA)32、フラッシュダイレクトメモリアクセス(FDMA)制御装置34、アービター36、バッファランダムアクセスメモリ(BRAM)38、及び暗号エンジン40を含んでいる。アービター36は、常にたった1つのマスター又はイニシエータ(HDMA32、FDMA34、又はCPU12が考えられる)だけがアクティブになるように共有型のバスアービターであり、スレーブ又はターゲットはBRAM38である。アービターは、BRAM38への適切なインシエータ要求のチャネリングに責任を持つ。HDMA32とFDMA34は、HIM16、FIM18、及びBRAM38又はCPUランダムアクセスメモリ(CPU RAM)12aの間を輸送されるデータに責任を持つ。HDMA32及びFDMA34それぞれの動作は従来通りなので、ここでは詳しく説明する必要はない。BRAM38は、ホスト装置24、フアッシュメモリ20、及びCPU RAM12aの間を送信されるデータをバッファリングするのに使用されている。HDMA32とFDMA34は、HIM16/FIM18とBRAM38又はCPU RAM12aの間でデータを転送すること及びセクタ転送完了を表示することに責任を持つ。   The buffer management unit 14 includes a host direct memory access (HDMA) 32, a flash direct memory access (FDMA) controller 34, an arbiter 36, a buffer random access memory (BRAM) 38, and a cryptographic engine 40. The arbiter 36 is a shared bus arbiter so that only one master or initiator (possibly HDMA 32, FDMA 34, or CPU 12) is active at all times, and the slave or target is the BRAM 38. The arbiter is responsible for channeling the appropriate initiator request to the BRAM 38. HDMA 32 and FDMA 34 are responsible for data transported between HIM 16, FIM 18, and BRAM 38 or CPU random access memory (CPU RAM) 12a. Since the operation of each of the HDMA 32 and the FDMA 34 is conventional, it is not necessary to explain in detail here. The BRAM 38 is used to buffer data transmitted between the host device 24, the flash memory 20, and the CPU RAM 12a. HDMA 32 and FDMA 34 are responsible for transferring data between HIM 16 / FIM 18 and BRAM 38 or CPU RAM 12a and for indicating sector transfer completion.

先ず、フラッシュメモリ20からのデータがホスト装置24により読み取られるとき、メモリ20内の暗号化されているデータは、バス28、FIM18、FDMA34、暗号エンジン40を通して取り出され、暗号エンジン40で、暗号化されているデータは暗号解読され、BRAM38に記憶される。暗号解読されたデータは、次いで、BRAM38から、HDMA32、HIM16、バス26を通して、ホスト装置24に送られる。BRAM38から取り出されたデータは、HDMA32に送られる前に、暗号エンジン40を用いて再度暗号化されてもよいので、ホスト装置24に送られるデータは再度暗号化されるが、メモリ20に記憶されているデータが暗号解読された際のキー及び/又はアルゴリズムとは異なるキー及び/又はアルゴリズムを用いて暗号化される。望ましくは、或る代わりの実施形態では、上で説明したプロセスの中で暗号解読されたデータをBRAM38に記憶するのではなく、というのも、その様なデータは認可されていないアクセスに曝されることになることがあるので、メモリ20からのデータは、暗号解読されると、暗号エンジン40により再度暗号化されてからBRAM38に送られる。BRAM38内の暗号化されたデータは、次いで、先ほどのように、ホスト装置24に送られる。以上、読出プロセスの際のデータの流れを説明した。   First, when data from the flash memory 20 is read by the host device 24, the encrypted data in the memory 20 is taken out through the bus 28, FIM 18, FDMA 34, and the cryptographic engine 40, and encrypted by the cryptographic engine 40. The data being decrypted is decrypted and stored in the BRAM 38. The decrypted data is then sent from the BRAM 38 through the HDMA 32, HIM 16, and bus 26 to the host device 24. Since the data retrieved from the BRAM 38 may be re-encrypted using the cryptographic engine 40 before being sent to the HDMA 32, the data sent to the host device 24 is re-encrypted but stored in the memory 20. The data being encrypted is encrypted using a key and / or algorithm that is different from the key and / or algorithm that was decrypted. Desirably, in an alternative embodiment, rather than storing the decrypted data in the process described above in the BRAM 38, such data is exposed to unauthorized access. Therefore, when the data from the memory 20 is decrypted, the data is encrypted again by the cryptographic engine 40 and then sent to the BRAM 38. The encrypted data in the BRAM 38 is then sent to the host device 24 as before. The flow of data during the reading process has been described above.

データがホスト装置24によりメモリ20に書き込まれるときには、データスの流れの方向は逆になる。例えば、暗号化されていないデータが、ホスト装置により、バス26、HIM16、HDMA32を通して、暗号エンジン40に送られると、そのデータは、BRAM38に記憶される前に、エンジン40により暗号化されてもよい。代わりのやり方では、暗号化されていないデータがBRAM38に記憶されてもよい。データは、この場合、メモリ20への途中でFDMA34に送られる前に暗号化される。書き込まれるデータが多段暗号化処理を受ける場合、エンジン40がその処理を完遂して初めて、この処理されたデータがBRAM38に記憶されるのが望ましい。   When data is written into the memory 20 by the host device 24, the direction of the data flow is reversed. For example, if unencrypted data is sent by the host device through the bus 26, HIM 16, HDMA 32 to the cryptographic engine 40, the data may be encrypted by the engine 40 before being stored in the BRAM 38. Good. In the alternative, unencrypted data may be stored in the BRAM 38. In this case, the data is encrypted before being sent to the FDMA 34 on the way to the memory 20. When the data to be written is subjected to the multi-stage encryption process, it is desirable that the processed data is stored in the BRAM 38 only after the engine 40 completes the process.

図1に示すメモリシステム10は、フラッシュメモリを保有しているが、システムは、別のやり方として、代わりに、磁気ディスク、光学CDの様な別の型式の不揮発性メモリ、並びその他のあらゆる型式の書き換え可能な不揮発性メモリシステムを保有していてもよく、上で説明した様々な利点は、その様な代わりの実施形態にも等しく当てはまる。代わりの実施形態では、やはり望ましいやり方として、メモリは、同一の物理的個体(例えば、メモリカードやスティックなど)内に、メモリシステムの残りの構成要素と共にカプセル封入されている。
タイトルキー管理
Although the memory system 10 shown in FIG. 1 possesses flash memory, the system may alternatively be instead of another type of non-volatile memory, such as a magnetic disk, optical CD, or any other type. And the various advantages described above are equally applicable to such alternative embodiments. In an alternative embodiment, as is also desirable, the memory is encapsulated with the remaining components of the memory system in the same physical entity (eg, memory card, stick, etc.).
Title key management

図2は、本発明の1つの実施形態を例示するために、タイトルキーファイルの構造を示している概略図である。デジタル権利管理のために多数の暗号化/暗号解読キーが採用されている場合、それらキーを図2に示す様な複数の個別タイトルキーファイルに編成し記憶するのが便利であり得る。図2の実施形態では、タイトルキーファイル102は、127個のスロット又は場所を有し、127個までのキーを保有することができる設計である。図2に示すように、ファイル102は、合計128個のスロット又は場所を保有しており、一番最初のスロット又は場所102aは、ヘッダ用に予約され、キーを記憶するのには使用されない。最初は、127個のスロット又は場所には、全て1又は0、或いは任意の値が入っていてもよく、それらは有効なキー値ではない。初期値に上書きすることにより、有効なタイトルキーエントリ(「TKE」)が127個のスロット又は場所に連続的に書き込まれるのが望ましく、全127個のスロット又は場所が有効キー値で満たされたとき、それらは、以下の値、即ちTKE1、TKE2、・・・TKE127、を保有することになる。特定のタイトルキーエントリが有効キーであるか否かは、図3Aに例示しているキーナビゲーションファイルに記憶されているタイトルキー状態ビットにより示されるのが望ましい。而して、ファイル102内の何がしかの特定のタイトルキーエントリの対応するタイトルキー状態ビットを調べれば、タイトルキーファイル102に実際にアクセスすること無く、そのエントリが有効キーから構成されているか又は有効キーを保有しているか否かを判定することができる。   FIG. 2 is a schematic diagram illustrating the structure of a title key file to illustrate one embodiment of the present invention. If multiple encryption / decryption keys are employed for digital rights management, it may be convenient to organize and store these keys into a plurality of individual title key files as shown in FIG. In the embodiment of FIG. 2, the title key file 102 is designed to have 127 slots or locations and can hold up to 127 keys. As shown in FIG. 2, the file 102 has a total of 128 slots or locations, and the very first slot or location 102a is reserved for the header and is not used to store the key. Initially, 127 slots or locations may all contain 1 or 0, or any value, which is not a valid key value. By overwriting the initial value, it is desirable that a valid title key entry (“TKE”) be continuously written to 127 slots or locations, and all 127 slots or locations are filled with valid key values. Sometimes they will have the following values: TKE1, TKE2,... TKE127. Whether or not a particular title key entry is a valid key is preferably indicated by a title key status bit stored in the key navigation file illustrated in FIG. 3A. Thus, by examining the corresponding title key status bits of some particular title key entry in the file 102, whether the entry is composed of valid keys without actually accessing the title key file 102? Alternatively, it can be determined whether or not a valid key is held.

図3Aは、キーナビゲーションファイルの、その構造を示す概略図である。図3Aに示すように、キーナビゲーションファイル104は、多数のキーファイル状態(「KFS」)フィールド、即ちKFS000、KFS001、・・・KFS031、KFS032、KFS033、・・・KFS063・・・を含んでいる。タイトルキー状態フィールドのそれぞれは、対応するタイトルキーファイルのタイトルキー状態ビットを保有している。而して、KFS000とタイトルが付けられたキーファイル状態フィールド104aは、タイトルキーファイル102の127個のタイトルキーエントリの127個のタイトルキー状態ビットを保有することになるので、ファイル104aは、16バイトの記憶部を必要とする。暗号化/暗号解読に使用されるキーの個数が127を超えた場合は、タイトルキーファイル102のスロット又は場所は全て使い果たされているので、127個を越えている分のキーを記憶するための新しいタイトルキーファイルを作成することが必要になる。そこで、タイトルキー状態フィールド104bが、キーナビゲーションファイル104内に、その新しいタイトルキーファイル内の超過したタイトルキーエントリの状態を表示するタイトルキー状態ビットを記憶するために作成される。図3Aは、少なくとも64個のタイトルキーファイルが作成された状況を例示しており、キーナビゲーションファイル104は、KFS000からKFS063までの少なくとも64個のタイトルキー状態フィールドを含んでいる。キーナビゲーションファイル104とタイトルキーファイルの間の関係は、図3Bに更に詳しく示されている。   FIG. 3A is a schematic diagram showing the structure of a key navigation file. As shown in FIG. 3A, the key navigation file 104 includes a number of key file status (“KFS”) fields, namely KFS000, KFS001,... KFS031, KFS032, KFS033,. . Each title key status field has a title key status bit of the corresponding title key file. Thus, since the key file status field 104a titled KFS000 holds 127 title key status bits of 127 title key entries of the title key file 102, the file 104a contains 16 title keys. Requires byte storage. When the number of keys used for encryption / decryption exceeds 127, all slots or places of the title key file 102 are used up, so the keys for the number exceeding 127 are stored. It is necessary to create a new title key file. Thus, a title key status field 104b is created in the key navigation file 104 to store title key status bits that indicate the status of excess title key entries in the new title key file. FIG. 3A illustrates a situation in which at least 64 title key files have been created, and the key navigation file 104 includes at least 64 title key status fields from KFS000 to KFS063. The relationship between the key navigation file 104 and the title key file is shown in more detail in FIG. 3B.

図3A及び図3Bに示すように、タイトルキーファイルは、フォーマット「key_file.xxx」で名前を付けられており、このxxxは、タイトルキーファイルの通し番号である。而して、最初に作成されたキーファイル102は、ファイル名key_file.000が与えられ、次に作成されたキーファイルにはkey_file.001という名前が割り当てられ、以下同様に名前が付けられる。   As shown in FIGS. 3A and 3B, the title key file is named in the format “key_file.xxx”, where xxx is the serial number of the title key file. Thus, the first created key file 102 is given a file name key_file.000, the next created key file is assigned the name key_file.001, and so on.

1つの実施形態では、キーナビゲーションファイル104内の各スロット又は場所及びその中のエントリは、タイトルキーファイルの内の1つのファイル内の或る特定のスロット又は場所及びそのスロット又は場所のタイトルキーエントリと既知の1対1対応関係を有している。このやり方では、特定のタイトルキーエントリが有効キーを有しているか否かを調べるには、キーナビゲーションファイル104内に、タイトルキーファイルのそのタイトルキーエントリに対応する場所又はスロットを見つけ、キーナビゲーションファイル104内のその場所のキーファイル状態ビットを調べるだけでよいことになる。   In one embodiment, each slot or location in key navigation file 104 and the entry therein is a particular slot or location in one of the title key files and the title key entry for that slot or location. And a known one-to-one correspondence. In this manner, to determine whether a particular title key entry has a valid key, find the location or slot in the key navigation file 104 corresponding to that title key entry in the key navigation file 104, and key navigation. All that is required is to examine the key file status bit at that location in file 104.

本発明のこの実施形態では、タイトルキーエントリは、図3Bに示すように、異なるタイトルキーファイルに亘って順にラベルが付けられている。而して、タイトルキーファイルkey_file.000内のタイトルキーエントリは、TKE1−TKE127のラベルが付けられる。タイトルキーファイルkey_file.001内のタイトルキーエントリは、TKE129−TKE255のラベルが付けられる。そして、タイトルキーファイルkey_file.002内のそれらは、TKE257−TKE383のラベルが付けられ、以下同様にラベルが付けられる。タイトルキーファイル(即ち、TKE0、TKE128、TKE256・・・)のそれぞれの1番目の場所及びエントリは、ファイルの大きさ、バージョンナンバー、及びファイルに関する他の情報の様な情報を保有することができるヘッダ用に予約されている。而して、各タイトルキーエントリは、それに関係付けられた固有番号を有しており、この固有番号は、以下の番号、即ち1−127、129−255、257−383などの内の1つである。この固有番号は、そこで、キーナビゲーションファイル内の、対応するキーファイル状態ビットが置かれている特定の場所を識別するのにも使用されるのが望ましい。図3Bに示すように、タイトルキーエントリに対応するキーファイル状態ビットは、異なるタイトルキーファイルに亘って、タイトルキーエントリと同じ順序で各場所に記憶される。例えば、図3Bに示すように、タイトルキーエントリTK
E[i]が有効キーを保有しているか否かを表示するためのキーファイル状態ビット「KFS[i]」は、キーナビゲーションファイル104内の、第1キーファイル状態フィールドKFS000の一番上の1番目の場所から数えてi番目の場所に記憶され、i番目の場所がKFS000とは異なるキーファイル状態フィールド内に在る場合にでもそうである。換言すると、この固有番号は、全キー状態フィールドに亘って固有であり、それは、全キーファイル状態フィールドKSF000、KFS001・・・に亘って、KFS000の一番上の1番目のエントリから開始してキーナビゲーションファイル104内の最後のキーファイル状態エントリまで、順に番号が付られる。
In this embodiment of the invention, title key entries are labeled sequentially across different title key files, as shown in FIG. 3B. Thus, the title key entries in the title key file key_file.000 are labeled TKE1-TKE127. The title key entry in the title key file key_file.001 is labeled TKE129-TKE255. Those in the title key file key_file.002 are labeled TKE257-TKE383, and so on. Each first location and entry of the title key file (ie, TKE0, TKE128, TKE256...) Can hold information such as file size, version number, and other information about the file. Reserved for header use. Thus, each title key entry has a unique number associated with it, which is one of the following numbers: 1-127, 129-255, 257-383, etc. It is. This unique number is then preferably also used to identify the specific location within the key navigation file where the corresponding key file status bit is located. As shown in FIG. 3B, the key file status bits corresponding to the title key entry are stored at each location in the same order as the title key entry across different title key files. For example, as shown in FIG. 3B, the title key entry TK
The key file status bit “KFS [i]” for indicating whether or not E [i] has a valid key is at the top of the first key file status field KFS000 in the key navigation file 104. This is true even if it is stored in the i th location counting from the first location, and the i th location is in a key file status field different from KFS000. In other words, this unique number is unique across all key status fields, starting from the first entry at the top of KFS000 across all key file status fields KSF000, KFS001. Numbers are assigned in order up to the last key file status entry in the key navigation file 104.

このやり方では、キーファイル状態ビットの特定の場所と、キーナビゲーションファイル104内のそのビットと関係付けられている通し固有番号内の固有番号とを調べることにより、どの特定のタイトルキーファイル及びそのファイル内のどの場所かを容易に判定することができ、そうすれば、下に説明する単純なプロセスを使用して、対応するタイトルキーエントリを見つけることができる。逆のプロセスも、従って、真である。特定のタイトルキーファイルと関係付けられている固有番号と、特定のタイトルキーエントリの、そのファイル内の場所が分かれば、そのエントリに関する対応するキーファイル状態ビットも、キーナビゲーションファイル104内で見つけることができる。   In this manner, by examining the specific location of the key file status bit and the unique number in the serial unique number associated with that bit in the key navigation file 104, which particular title key file and its file Can be easily determined, and the corresponding title key entry can be found using the simple process described below. The reverse process is therefore also true. Knowing the unique number associated with a particular title key file and the location of that particular title key entry in that file, the corresponding key file status bits for that entry can also be found in the key navigation file 104. Can do.

この1つの実施形態では、キーナビゲーションファイル104内の特定のキーファイル状態ビットに対応するタイトルキーエントリを見つけるプロセスは、以下の様に実施される。各タイトルキーエントリとその対応するキーファイル状態ビットに関係付けられている固有番号は、キーナビゲーションインデクス(「KNI」)と呼ばれている。而して、KNI値0、128、256、384、・・・(N+128)は規則違反であり、ここにNは整数である。KNIは、従って、キーナビゲーションファイル104内のキーファイル状態ビットの、KFS000のヘッダ内の一番最初の状態ビットからのオフセットでもある。キーナビゲーションファイル104内の特定の状態ビットの場所、オフセット、従ってその対応するKNI値に留意することにより、対応するタイトルキーエントリの場所を容易に求めることができる。これは、KNI値を、タイトルキーファイル及びキーファイル状態フィールドのそれぞれのスロットの個数、即ち図3Bの実施形態では128、で割ることにより行われる。ここで、商の整数部分は、対応するタイトルキーエントリを保有しているタイトルキーファイルの通し番号を提供する。換言すると、そのタイトルキーエントリを保有しているタイトルキーファイルの通し番号は、KNI/128の整数部分により与えられる。そのエントリを保有しているタイトルキーファイル内のそのタイトルキーエントリの特定の場所は、その部分の余り部分から、又はKNI%128又はKNI mod 128により、見つけることができ、この値は、そのタイトルキーエントリの特定の場所の、そのタイトルキーエントリが見つけられることになるそのタイトルキーファイル内における一番上のエントリからのオフセットである。   In this one embodiment, the process of finding a title key entry corresponding to a particular key file status bit in the key navigation file 104 is performed as follows. The unique number associated with each title key entry and its corresponding key file status bit is called a key navigation index (“KNI”). Thus, the KNI values 0, 128, 256, 384,... (N + 128) are rule violations, where N is an integer. KNI is therefore also the offset of the key file status bit in key navigation file 104 from the very first status bit in the KFS000 header. By noting the location, offset, and thus its corresponding KNI value of a particular status bit in the key navigation file 104, the location of the corresponding title key entry can be easily determined. This is done by dividing the KNI value by the number of slots in each of the title key file and key file status fields, ie 128 in the embodiment of FIG. 3B. Here, the integer part of the quotient provides the serial number of the title key file holding the corresponding title key entry. In other words, the serial number of the title key file holding the title key entry is given by the integer part of KNI / 128. The specific location of the title key entry in the title key file holding the entry can be found from the remainder of the part or by KNI% 128 or KNI mod 128, and this value is the title The offset from the top entry in the title key file where the title key entry will be found at the particular location of the key entry.

図3Bに示す1つの実施例では、タイトルキーエントリi(TKE i)、即ちキーナビゲーションインデクス(KNI)がiであるエントリについて、特定のタイトルキーファイルとそのファイル内の場所を見つけようとしている状況を想定している。而して、そのタイトルキーエントリの状態を示すタイトルキーエントリは、ナビゲーションファイル104ではKFS[i]である。図3Bに示す特定の実施例では、その状態ビットは、キーファイル状態フィールド001、即ちKFS001、に見い出される。そのタイトルキーエントリが見つけられる特定のタイトルキーファイルは、i%128又はi mod 128により与えられる。図3Bに例示している実施例では、iは129から255の間の値を有しているので、iを128で割ったものの整数部分は1となり、従って、タイトルキーファイルkey_file.001が対応するタイトルキーエントリiを保有していることが容易に求められる。次に、演算i mod 128を行うことにより、除算の余り部分を求め、この余りから、タイトルキーエントリTKEiの、タイトルキーファイルkey_file.001内の一番上のエントリからのオフセットが与えられる。而して、上で説明した2つの非常に簡単な演算により、特定のタイトルキーファイルと、そのファイル内の、キーナビゲーションファイル内の特定の場所に対応するタイトルキーエントリを保有している場所が、見つけられる。   In one embodiment shown in FIG. 3B, for a title key entry i (TKE i), i.e., an entry with a key navigation index (KNI) i, a situation is being attempted to find a specific title key file and the location within that file. Is assumed. Thus, the title key entry indicating the state of the title key entry is KFS [i] in the navigation file 104. In the particular embodiment shown in FIG. 3B, the status bits are found in the key file status field 001, ie KFS001. The particular title key file where the title key entry is found is given by i% 128 or i mod 128. In the embodiment illustrated in FIG. 3B, since i has a value between 129 and 255, the integer part of i divided by 128 is 1, so the title key file key_file.001 corresponds. It is easily required to have the title key entry i to be held. Next, the remainder of the division is obtained by performing operation i mod 128, and the offset of the title key entry TKEi from the top entry in the title key file key_file.001 is given from this remainder. Thus, with the two very simple operations described above, a place that has a particular title key file and a title key entry in that file that corresponds to a particular place in the key navigation file. ,can be found.

上記実施形態では、タイトルキーファイルのそれぞれは、各々16バイトの128個のエントリを保有している。タイトルキーファイルが128個以外の個数のエントリを保有してもよく、その場合は各エントリが16以外のバイト数を有することもあるのは明白である。而して、mを何れかの正の整数として、各タイトルキーファイルがm個のエントリを有している場合、上記演算は、KNI又はキーナビゲーションインデクスを128の代わりにmで割るように変更する必要がある。オフセットは、タイトルキーエントリTKEiの、そのタイトルキーファイル内の一番上のエントリからのオフセットを見つける代わりに、i mod mにより見いだすことができる。その様な変形の全ては本発明の範囲内にある。   In the above embodiment, each title key file has 128 entries of 16 bytes each. Obviously, the title key file may have a number of entries other than 128, in which case each entry may have a number of bytes other than 16. Thus, if m is any positive integer and each title key file has m entries, the above operation is changed to divide KNI or key navigation index by m instead of 128 There is a need to. The offset can be found by i mod m instead of finding the offset of the title key entry TKEi from the top entry in its title key file. All such variations are within the scope of the present invention.

タイトルキーファイル内でキーの場所を突き止めるのに、又はキーナビゲーションファイル内の状態ビットの場所を突き止めるのに、上記のように固有番号KNIと演算i/m及びi mod mを使用する代わりに、キーナビゲーションファイル内のエントリと、タイトルキーファイルの各ファイル内のTKEとの間の1対1の対応関係を、ルックアップ表を用いて確立することができる。CPU12は、この場合、キーナビゲーションファイル内の状態ビットの場所が与えられている対応するキーの場所を見つけるためにルックアップ表を調べる必要があり、逆の場合(即ち、特定のタイトルキーファイル内のキーの場所が与えられていることを前提として、キー状態を提示する、キーナビゲーションファイル内の状態ビットを見つける場合)も同様である。上記及びこの他の変形も、本発明の範囲内にある。   Instead of using the unique number KNI and the operations i / m and i mod m as described above to locate the key in the title key file or to locate the status bit in the key navigation file, A one-to-one correspondence between entries in the key navigation file and the TKE in each file of the title key file can be established using a lookup table. In this case, the CPU 12 needs to look up the lookup table to find the location of the corresponding key given the location of the status bit in the key navigation file, and vice versa (ie in a particular title key file). The same is true for finding a state bit in the key navigation file that presents the key state, assuming that the key location is given. These and other variations are within the scope of the present invention.

1つの実施形態では、16バイト中の7バイトだけが、暗号化/暗号解読用のキーの値として各タイトルキーエントリに使用される。キー値は、別のキーを使用して暗号化又は暗号解読されるのが望ましい。図3Bの実施形態では、タイトルキー状態ビットが値0であるとき、このことはタイトルキーエントリがビジーであることを表しており、即ち、これは、各タイトルキーファイルのヘッダの場合のようにビットが予約されているか、対応するタイトルキーエントリが有効キーを保有しており、従って、新しいキーを記憶するのに利用することができないか、の何れかであることを意味する。タイトルキー状態ビットが値1である場合は、このことは、対応するタイトルキーエントリが空であるか、それが有効キー保有しておらず、従って、タイトルキーファイル内の対応するスロット又は場所は、タイトルキーエントリをそのスロット又は場所に上書きすることにより、暗号化/暗号解読キーを記憶するのに利用可能であることを表している。   In one embodiment, only 7 of the 16 bytes are used for each title key entry as the key value for encryption / decryption. The key value is preferably encrypted or decrypted using another key. In the embodiment of FIG. 3B, when the title key status bit has a value of 0, this indicates that the title key entry is busy, i.e., as in the header of each title key file. It means that either the bit is reserved or the corresponding title key entry has a valid key and therefore cannot be used to store a new key. If the title key status bit is a value of 1, this means that the corresponding title key entry is empty or does not have a valid key, so the corresponding slot or location in the title key file is , Indicating that it can be used to store the encryption / decryption key by overwriting the slot or location of the title key entry.

キーナビゲーションファイルの長さは、定義されておらず、タイトルキーファイルの個数により決まる。図3A及び図3Bに例示している実施形態では、キーナビゲーションファイルは512バイトの記録を備えている。従って、ファイルの長さが定義されていなくても、それは図3A及び図3Bの実施形態では、512バイトの倍数になる。必要に応じて、新たな記録がファイルに追加される。タイトルキー状態ビット値は、ブール数であり、一方、タイトルキーファイルの通し番号、キーナビゲーションインデクスは、図3A及び図3Bの実施形態では10進数である。   The length of the key navigation file is not defined and is determined by the number of title key files. In the embodiment illustrated in FIGS. 3A and 3B, the key navigation file comprises a 512 byte record. Thus, even if the length of the file is not defined, it is a multiple of 512 bytes in the embodiment of FIGS. 3A and 3B. New records are added to the file as needed. The title key status bit value is a Boolean number, while the serial number of the title key file and the key navigation index are decimal numbers in the embodiment of FIGS. 3A and 3B.

図4は、本発明の1つの実施形態を例示するのに使用される、保護されていないユーザーデータ領域内のディレクトリツリー構造130の概略図である。図4のディレクトリツリー構造130は、フラッシュメモリ20に記憶されているファイルであり、ここでは、ディレクトリ構造は、保護されていないユーザーデータ領域に記憶されているため、あらゆるユーザー、装置、又はアプリケーションが認証無しにアクセスすることができる。図4に示すように、ディレクトリツリー構造は、ルートディレクトリと2つのサイドブランチ、即ちプレーヤー1ディレクトリとプレーヤー2ディレクトリ、を有している。プレーヤー1又は2は、どの様なユーザー、装置、又はアプリケーションでもよい。2つのブランチは、2つの異なるプレーヤーが容易にアクセスできるようにしている。プレーヤー1ディレクトリは、「Mysong.MP3」、「Another.MP3」・・・の様な複数の異なるコンテンツファイルと、キーナビゲーションファイル「KNF.bin」を掲載している。プレーヤー2ディレクトリは、同様なコンテンツファイルの一覧と、別のキーナビゲーションファイル「KNF.bin」を保有している。而して、プレーヤー1がユーザーデータ領域にアクセスしたとき、プレーヤー1は、プレーヤー1ディレクトリに、そしてそのディレクトリ下のコンテンツファイルとキーナビゲーションファイルに導かれる。プレーヤー2によるアクセスについても同じことが言え、プレーヤー2はプレーヤー2ディレクトリ内のコンテンツファイル並びにそのディレクトリ内のキーナビゲーションファイルに導かれる。このようにして、プレーヤー1がコンテンツファイルを作成するとき、このファイルは、作成されてプレーヤー1ディレクトリ下の一覧に加えられる。コンテンツファイルがプレーヤー2用に作成されるとき、この新たなコンテンツファイルは、やはりプレーヤー2ディレクトリ内に掲載される。   FIG. 4 is a schematic diagram of a directory tree structure 130 in an unprotected user data area used to illustrate one embodiment of the present invention. The directory tree structure 130 of FIG. 4 is a file stored in the flash memory 20, and here, since the directory structure is stored in an unprotected user data area, any user, device, or application can be accessed. Can be accessed without authentication. As shown in FIG. 4, the directory tree structure has a root directory and two side branches, namely a player 1 directory and a player 2 directory. Player 1 or 2 can be any user, device, or application. The two branches make it easily accessible to two different players. The player 1 directory includes a plurality of different content files such as “Myson.MP3”, “Another.MP3”, and the key navigation file “KNF.bin”. The player 2 directory holds a list of similar content files and another key navigation file “KNF.bin”. Thus, when the player 1 accesses the user data area, the player 1 is led to the player 1 directory and to the content file and key navigation file under the directory. The same is true for access by player 2, player 2 being directed to a content file in the player 2 directory as well as a key navigation file in that directory. In this way, when the player 1 creates a content file, this file is created and added to the list under the player 1 directory. When a content file is created for player 2, this new content file is also posted in the player 2 directory.

ツリー130内のコンテンツファイル(例えば、「Mysong.MP3」、「Another.MP3」・・・)は、図5のツリー150のディレクトリに記憶されているキーを使用して暗号化される。幾つかのアプリケーションでは、暗号化されたコンテンツファイルと暗号化されていないコンテンツファイル(図4では図示せず)は、共に、認証無しにアクセスすることのできる同じ保護されていないユーザーデータ領域に記憶されてもよい。   The content files in the tree 130 (for example, “Myson.MP3”, “Another.MP3”...) Are encrypted using the keys stored in the directory of the tree 150 in FIG. In some applications, encrypted content files and unencrypted content files (not shown in FIG. 4) are both stored in the same unprotected user data area that can be accessed without authentication. May be.

図5は、メモリ装置20の保護されている領域のディレクトリツリー150の概略図であり、図4と図5のディレクトリツリー130と150は互いに鏡像関係にある。従って図5では、ディレクトリツリーは、ルートディレクトリ並びにプレーヤー1ディレクトリとプレーヤー2ディレクトリを有している。プレーヤー1ディレクトリは、ツリー130内のプレーヤー1ディレクトリのコンテンツファイルを暗号化及び/又は暗号解読するための複数の異なるタイトルキーエントリを保有するタイトルキーファイルkey_file.000を掲載している。プレーヤー2ディレクトリも、複数のタイトルキーエントリを保有するタイトルキーファイルkey_file.000を保有している。なお、2つのディレクトリ下の2つのタイトルキーファイルが同一名(即ち、key_file.000)を有していても、それらは異なるディレクトリにあることから、混同されることはないことに留意されたい。図4のツリー130の2つのディレクトリ内のキーナビゲーションファイルについても同じことが言える。   FIG. 5 is a schematic diagram of the directory tree 150 of the protected area of the memory device 20, and the directory trees 130 and 150 of FIGS. 4 and 5 are mirror images of each other. Accordingly, in FIG. 5, the directory tree has a root directory and a player 1 directory and a player 2 directory. The player 1 directory includes a title key file key_file.c that holds a plurality of different title key entries for encrypting and / or decrypting the content file of the player 1 directory in the tree 130. 000 is published. The player 2 directory also has a title key file key_file. 000. Note that even though two title key files under two directories have the same name (ie, key_file.000), they are not confused because they are in different directories. The same is true for the key navigation files in the two directories of the tree 130 of FIG.

2つのディレクトリツリー130と150は、同一のブランチ、即ちプレーヤー1ディレクトリとプレーヤー2ディレクトリ、を有しているため、たとえディレクトリプレーヤー1とプレーヤー2のコンテンツが2つのツリー130と150の間で異なっていたとしても、互いに鏡像関係にある。2つのディレクトリが、ツリー130と150のそれぞれの間で、プレーヤー1及びプレーヤー2と同じレベルのブランチを更に多く、例えばプレーヤー3(図4及び図5では図示せず)などを、有することもできる。2つのディレクトリプレーヤー1及びプレーヤー2が、サブディレクトリを有することもできる。例えば、ツリー130内のプレーヤー1ディレクトリは、2つのサブディレクトリ、即ち、映像ファイル用に1つと音声ファイル用に1つ(図4では図示せず)を有している。音声ファイルサブディレクトリは、歌曲の様な音声ファイルの一覧と、その様な音声ファイルの間をナビゲーションするためのキーナビゲーションファイルを保有することになる。映像サブディレクトリは、映像ファイルと、その様な音声ファイルの間をナビゲーションするためのキーナビゲーションファイルを保有してもよい。その様な場合には、図5のディレクトリツリー150も同様のツリー構造を有することになる。このようにして、ツリー150のプレーヤー1ディレクトリは、2つの異なるサブディレクトリ、即ち、音声及び映像のサブディレクトリ(図5には図示せず)を有してもよい。映像サブディレクトリは、それぞれディレクトリツリー130の映像サブディレクトリ内の映像ファイルの暗号化/暗号解読に使用されるタイトルキーエントリを保有する、単数又は複数のタイトルキーファイルの一覧を保有している。ディレクトリツリー150も、プレーヤー1ディレクトリ下に音声サブディレクトリを有することになり、この音声サブディレクトリは、それぞれディレクトリツリー130の音声サブディレクトリ内に掲載されている対応する音声ファイルを暗号化/暗号解読するために使用されるタイトルキーエントリを保有する、1つ又はそれ以上のタイトルキーファイルを保有することになる。下で説明しているように、保護されていない領域と保護されている領域に互いに鏡像関係にあるディレクトリツリー130と150を有することで、キーナビゲーション機構の動作が格段に円滑になる。   Since the two directory trees 130 and 150 have the same branch, namely the player 1 directory and the player 2 directory, the contents of the directory players 1 and 2 are different between the two trees 130 and 150. Even if they are mirror images of each other. Two directories may have more branches at the same level as Player 1 and Player 2 between each of the trees 130 and 150, such as Player 3 (not shown in FIGS. 4 and 5). . Two directory players 1 and 2 can also have subdirectories. For example, the Player 1 directory in the tree 130 has two subdirectories, one for video files and one for audio files (not shown in FIG. 4). The audio file subdirectory will hold a list of audio files such as songs and key navigation files for navigating between such audio files. The video subdirectory may have a key navigation file for navigating between video files and such audio files. In such a case, the directory tree 150 in FIG. 5 also has a similar tree structure. In this way, the Player 1 directory of the tree 150 may have two different subdirectories, an audio and video subdirectory (not shown in FIG. 5). Each video subdirectory holds a list of one or more title key files that each have a title key entry that is used to encrypt / decrypt video files in the video subdirectory of the directory tree 130. The directory tree 150 will also have an audio subdirectory under the player 1 directory, which encrypts / decrypts the corresponding audio files listed in the audio subdirectory of the directory tree 130, respectively. You will have one or more title key files that hold the title key entries that are used for this purpose. As will be described below, having directory trees 130 and 150 that are mirror images of each other in the unprotected area and the protected area makes the operation of the key navigation mechanism much smoother.

保護されているコンテンツファイルがメモリ装置20内に作成される前は、通常、メモリ装置20にはキーナビゲーションファイルもキー記憶ファイルも一切存在していない。その場合には、保護されるべき最初のコンテンツファイルが作成されると、ここではキーナビゲーション機構とも呼ぶキーマネジャが、保護されていないユーザー領域にキーナビゲーションファイルを作成し、保護されている領域に最初のタイトルキー記憶ファイルを作成する。   Before a protected content file is created in the memory device 20, there is typically no key navigation file or key storage file in the memory device 20. In that case, when the first content file to be protected is created, the key manager, also referred to here as the key navigation mechanism, creates a key navigation file in the unprotected user area and first in the protected area. Create a title key storage file.

図6は、キーナビゲーションファイル機構により実行されるプロセス又は方法を例示しているフローチャートである。図6のプロセスを実行する機構は、コンテンツファイル、タイトルキーファイル、及びキーナビゲーションファイルが記憶されているメモリシステムにコマンドを送るホスト装置24に記憶され実行されるコンピュータプログラムコードを備えていてもよい。代わりに、機構は、CPU12にロードされて実行される、フラッシュメモリ20に記憶されているコンピュータプログラムコードを備えていてもよい。而して、図6及び図7のキーナビゲーション機構のためのコンピュータプログラムは、ホスト装置24の一部であるかこれに接続されているコンピュータ読取可能媒体に記憶されていてもよいが、代わりに、その様なコンピュータプログラムは、タイトルキーファイル、キーナビゲーションファイル、及びコンテンツファイルが記憶されているフラッシュメモリ20に記憶されていてもよい。全てのその様な変型は、本発明の範囲内にある。   FIG. 6 is a flowchart illustrating a process or method performed by the key navigation file mechanism. The mechanism for performing the process of FIG. 6 may comprise computer program code stored and executed on the host device 24 that sends commands to the memory system in which the content file, title key file, and key navigation file are stored. . Alternatively, the mechanism may comprise computer program code stored in flash memory 20 that is loaded into CPU 12 and executed. Thus, the computer program for the key navigation mechanism of FIGS. 6 and 7 may be stored on a computer readable medium that is part of or connected to the host device 24, but instead. Such a computer program may be stored in the flash memory 20 in which the title key file, the key navigation file, and the content file are stored. All such variations are within the scope of the present invention.

図6を参照すると、図6の機構のプロセスは、保護されているコンテンツファイルを開くことが望まれている場合か、又は保護されるコンテンツファイルが作成されようとする時に開始される(ブロック202)。キーナビゲーション機構は、コンテンツファイルが存在するか否かを判定する(菱形204)。コンテンツファイルが存在していなければ、このことは、コンテンツファイルを作成すべきであることを意味するので、ホスト装置24又はCPU12は、ファイルを、例えば、プレーヤー1ではディレクトリツリー130内に、作成すること(ブロック206)に進む。コンテンツファイルが作成されると、キーナビゲーション機構は、キーナビゲーションファイルが既に存在しているか既に作成されているかを調べる(菱形207a)。存在していなければ、機構は、キーナビゲーションファイルを作成する(ブロック207b)。存在していれば、機構は、図4に示すディレクトリ130の様なディレクトリ内の新しく作成されたコンテンツファイルと同じディレクトリ内に見つけられるキーナビゲーションファイルを開く(ブロック208)。何れの場合も、機構は、ここで、ツリー130のプレーヤー1ディレクトリ内のキーナビゲーションファイルを調べ、第1キーエントリが「空の」状態であることを見い出す。キーナビゲーションファイルのオフセットが「空の」状態であることにより、キーナビゲーションインデクス(KNI)が与えられ(ブロック208及び210)、KNIを使用した上記実施形態が採用される。   Referring to FIG. 6, the process of the mechanism of FIG. 6 is initiated when it is desired to open a protected content file or when a protected content file is about to be created (block 202). ). The key navigation mechanism determines whether a content file exists (diamond 204). If the content file does not exist, this means that the content file should be created. Therefore, the host device 24 or the CPU 12 creates the file, for example, in the directory tree 130 in the player 1. (Block 206). When the content file is created, the key navigation mechanism checks whether the key navigation file already exists or has been created (diamond 207a). If not, the mechanism creates a key navigation file (block 207b). If so, the mechanism opens a key navigation file that is found in the same directory as the newly created content file in a directory such as directory 130 shown in FIG. 4 (block 208). In either case, the mechanism now looks in the key navigation file in the player 1 directory of the tree 130 and finds that the first key entry is in the “empty” state. The key navigation file offset is “empty”, so that a key navigation index (KNI) is provided (blocks 208 and 210) and the above embodiment using KNI is employed.

タイトルキーファイルとキーナビゲーションファイルが上の実施例に使用されるとき、タイトルキーファイル内の場所又はタイトルキーエントリは順番に使用される。このことは、1つの暗号化/暗号解読キーが作成され、タイトルキーファイルに記憶される必要が生じるとき、タイトルキーファイル内のスロット又は場所は、それらキーを記憶するのに、タイトルキーファイルkey_file.000のタイトルキーエントリ1から開始して順に使用されるという意味である。そのキーが記憶され、キーエントリTKE1又はその一部を形成した後、その対応するキーファイル状態ビットKFS[1]の値は1から0に変更され、これにより、それが空ではなく今はビジーである、即ち、この場所はヘッダ用に予約されたものではないことから、今は有効キーが入っている、ということが表示される。最初、キーファイル状態ビットの全てが値1を有しているが、0、128、256・・・のキーファイル状態ビットは例外で、それらは値0を有している。   When a title key file and a key navigation file are used in the above embodiment, the locations or title key entries in the title key file are used in turn. This means that when one encryption / decryption key is created and needs to be stored in the title key file, the slot or location in the title key file stores the key in the title key file key_file. . It means that the title key entries 1 are used in order starting from 000. After that key is stored and forms key entry TKE1 or a part thereof, the value of its corresponding key file status bit KFS [1] is changed from 1 to 0, so that it is now not busy and now busy That is, since this location is not reserved for the header, it is displayed that it now contains a valid key. Initially, all of the key file status bits have a value of 1, except for the 0, 128, 256... Key file status bits, which have the value 0.

KNIを取得した後、キーナビゲーション機構は、次に、タイトルキーファイルのそれぞれが128個のスロット又は場所を有している場合、KNI/128の整数部に等しいキーファイルインデクス又はnnnを計算する(ブロック212)。nnn又はキーファイルインデクスは、数KNI/128の整数部分である。このnnn又はキーファイルインデクス値は、タイトルキーファイルの通し番号である。次いで、そのタイトルキーファイル内のオフセットを、量KNI%128又はKNI mod 128を計算することにより取得する(ブロック214)。   After obtaining the KNI, the key navigation mechanism then calculates a key file index or nnn equal to the integer part of KNI / 128 if each of the title key files has 128 slots or locations ( Block 212). The nnn or key file index is an integer part of several KNI / 128. The nnn or key file index value is a serial number of the title key file. The offset in the title key file is then obtained by calculating the quantity KNI% 128 or KNI mod 128 (block 214).

上で指摘したように、コンテンツファイルは、図4のディレクトリツリー130のプレーヤー1ディレクトリの様なディレクトリ内に作成される。保護されている領域のタイトルキーファイル内に、作成されたばかりのこのコンテンツファイルの暗号化/暗号解読に使用される暗号化/暗号解読キーを記憶するための場所を取得するために、キーナビゲーション機構は、ここで、保護されていないユーザーデータ領域の公開区画名を保護されている領域の保護されている区画名で置き換えることにより、保護されていないユーザーデータ領域内のディレクトリツリー130に従って構築されたアクセス経路を、保護されている領域又は区画内のディレクトリツリー150に従って構築されたものへ変換する(ブロック216)。キーナビゲーション機構は、次いで、キーファイル名、即ち「key_file.nnn」を形成する(ブロック218)。キーナビゲーション機構は、次いで、完全なキーファイル名を形成する(ブロック220)。一例として、プレーヤー1が、暗号化されることになる新しい歌曲ファイルを、ブロック208、210、212、214、216、218、及び220に従って作成している場合を仮定する。その場合には、作成される完全なキーファイル名は、「prot_partition/layer1directory/key_file.nnn」となる。   As pointed out above, the content file is created in a directory such as the player 1 directory of the directory tree 130 of FIG. A key navigation mechanism to obtain a location in the protected area title key file to store the encryption / decryption key used to encrypt / decrypt this content file just created Is now constructed according to the directory tree 130 in the unprotected user data area by replacing the public partition name of the unprotected user data area with the protected partition name of the protected area The access path is converted to one constructed according to the directory tree 150 within the protected area or partition (block 216). The key navigation mechanism then forms a key file name, “key_file.nnn” (block 218). The key navigation mechanism then forms a complete key file name (block 220). As an example, assume that Player 1 is creating a new song file to be encrypted according to blocks 208, 210, 212, 214, 216, 218, and 220. In this case, the complete key file name to be created is “prot_partition / layer1directory / key_file.nnn”.

キーナビゲーション機構は、次いで、このキーファイル名を有するタイトルキーファイルが存在するか否かを調べて判断する(菱形221a)。このタイトルキーファイルが存在していない場合、機構は、ファイルを1つ作成して、ディレクトリツリー150内の適切なディレクトリ(例えば、プレーヤー1)にそれを加える(ブロック221b)。このタイトルキーファイルが存在する場合、機構は、完全なキーファイル名に基づくアクセス経路を使用して、当該タイトルキーファイルを開く(ブロック222)。キーナビゲーション機構は、次に、コンテンツファイルが、ブロック206の前に元からそこに存在していたか否かを調べる(菱形224)。上の例では、そのコンテンツファイルは、ブロック206でそれが作成される以前は存在しておらす、従ってキーナビゲーション機構は、ブロック226に進んで、KNIを作成されたファイルのファイルヘッダに挿入する。コンテンツ暗号化キー(CEK)が暗号化エンジン40により作成され、これを使用して、作成されたファイルが暗号化される(228)。暗号化された新規に作成されたファイルは、メモリ装置20内のツリー130のディレクトリプレーヤー1に加えられる。この作成されたキーは、暗号化され、ブロック212で識別されたタイトルキーファイル内の、ブロック214で取得されたオフセットにより示される場所に挿入され(ブロック230)、ツリー150のディレクトリプレーヤー1のタイトルキーファイルに新規タイトルキーエントリとして加えられる。キーナビゲーション機構は、次いで、タイトルキーファイルを閉じ(ブロック232)、ツリー130のプレーヤー1ディレクトリのキーナビゲーションファイル内のその対応する状態ビットの値を1から0に変更するが、キーファイル状態ビットは、KNIの値をツリー130のプレーヤー1ディレクトリのキーナビゲーションファイル内のオフセットとして使用して突き止められる。次いで、キーナビゲーションファイルは閉じられる(ブロック234及び236)。   The key navigation mechanism then determines whether there is a title key file having this key file name (diamond 221a). If this title key file does not exist, the mechanism creates one file and adds it to the appropriate directory (eg, player 1) in the directory tree 150 (block 221b). If this title key file exists, the mechanism opens the title key file using an access path based on the complete key file name (block 222). The key navigation mechanism then checks whether the content file was originally present before block 206 (diamond 224). In the above example, the content file exists before it was created at block 206, so the key navigation mechanism proceeds to block 226 and inserts the KNI into the file header of the created file. . A content encryption key (CEK) is created by the encryption engine 40 and is used to encrypt the created file (228). The newly created file that has been encrypted is added to the directory player 1 of the tree 130 in the memory device 20. This created key is encrypted and inserted into the title key file identified at block 212 at the location indicated by the offset obtained at block 214 (block 230) and the title of directory player 1 in tree 150. Added as a new title key entry to the key file. The key navigation mechanism then closes the title key file (block 232) and changes the value of its corresponding status bit in the key navigation file in the player 1 directory of the tree 130 from 1 to 0, but the key file status bit is , Using the value of KNI as an offset in the key navigation file of the player 1 directory of the tree 130. The key navigation file is then closed (blocks 234 and 236).

以上は、暗号化される(及び/又は暗号解読される)ことになるコンテンツファイルが最初に作成されるときの、2つのディレクトリツリー130と150を使用したキーナビゲーション機構のプロセスである。コンテンツファイルを暗号解読することが望まれ、従ってキーナビゲーション機構が、コンテンツファイルを暗号解読するのに必要とされる暗号解読キーを見つけることを要求されるとき、図6のキーナビゲーション機構は以下のように動作する。キーナビゲーション機構は、ツリー130のプレーヤー1ディレクトリの様な特定のディレクトリ内の保護されているコンテンツファイルを開き、コンテンツファイルが既に存在していることから、ブロック252に進むことになる。キーナビゲーション機構は、次いで、コンテンツファイルのファイルヘッダから値KNIを取り出す(ブロック252)。キーナビゲーション機構が、保護されているコンテンツファイルを開くとき、それは、保護されていないユーザーデータ領域のディレクトリツリー130内で動作していることになる。例えば、保護されているコンテンツファイルが、プレーヤー1ディレクトリ内の歌曲「mysong.MP3」の様な歌曲ファイルの1つである場合、そのコンテンツファイルへのアクセス経路は、ディレクトリツリー130に従って構築される。キーナビゲーション機構は、そこで、ブロック212から222の動作を上で説明したやり方で行って、コンテンツファイルの暗号解読(及び/又は暗号化)に使用される暗号解読キーが記憶されている或る特定のタイトルキーファイルのキーファイルインデクス又はnnnと、そのタイトルキーファイル内のキーの場所を示すオフセットを見つけ出す。キーナビゲーション機構は、更に、ディレクトリツリー130に従った公開の又は保護されていないユーザーデータ領域へのアクセス経路を、保護されている領域のディレクトリツリー150に従って構築されたアクセス経路に変換し、ブロック216、218、及び220に基づき、保護されている領域の暗号解読キーの完全なキーファイル名を確立する。認証プロセスの後、次いで、キーナビゲーション機構は、構築された完全なキーファイル名に従って、保護されている領域内のタイトルキーファイルを開いて(ブロック222)コンテンツ暗号解読キーが容易に入手し、取り出せるようにする。キーナビゲーション機構は、次いで、コンテンツファイルが上記動作以前に存在していたか否かを調べる。本例では、それは実際に存在しており、従って機構はブロック254に進んで、適正なタイトルキーファイルのキーエントリオフセットから暗号化されているコンテンツ暗号化キーを取り出す(ブロック254)。コンテンツ暗号化キーは、次いで、暗号解読され、暗号化によって保護されているか保護されることになるコンテンツファイルの暗号解読/暗号化に使用される。(ブロック256)。   The above is the process of a key navigation mechanism using two directory trees 130 and 150 when a content file to be encrypted (and / or decrypted) is first created. When it is desired to decrypt the content file, and thus the key navigation mechanism is required to find the decryption key required to decrypt the content file, the key navigation mechanism of FIG. To work. The key navigation mechanism opens the protected content file in a particular directory, such as the Player 1 directory of the tree 130, and proceeds to block 252 because the content file already exists. The key navigation mechanism then retrieves the value KNI from the file header of the content file (block 252). When the key navigation mechanism opens a protected content file, it will be operating in the directory tree 130 of the unprotected user data area. For example, if the protected content file is one of song files such as song “mysong.MP3” in the player 1 directory, the access path to the content file is constructed according to the directory tree 130. The key navigation mechanism then performs the operations of blocks 212 through 222 in the manner described above, and stores certain decryption keys that are used to decrypt (and / or encrypt) the content file. The key file index or nnn of the title key file and the offset indicating the location of the key in the title key file are found. The key navigation mechanism further converts the access path to the public or unprotected user data area according to the directory tree 130 into an access path constructed according to the protected area directory tree 150, block 216. Based on 218 and 220, the complete key file name of the decryption key for the protected area is established. After the authentication process, the key navigation mechanism then opens the title key file in the protected area according to the constructed full key file name (block 222) and the content decryption key can be easily obtained and retrieved. Like that. The key navigation mechanism then checks whether the content file existed before the operation. In this example, it actually exists, so the mechanism proceeds to block 254 and retrieves the encrypted content encryption key from the key entry offset of the proper title key file (block 254). The content encryption key is then decrypted and used to decrypt / encrypt the content file that is or will be protected by encryption. (Block 256).

上で説明したキーナビゲーションファイル、タイトルキーファイル構造を使用すると、コンテンツファイルを削除する際、特に簡単に行える。これを図7のフローチャートに例示している。而して、この目的に使用されるキーナビゲーション機構は、ホスト装置24又はメモリシステム10の何れかに記憶され、実行されるコンピュータプログラムであってもよく、最初に、ディレクトリ内で、削除されるべき保護されているコンテンツファイルを識別する(ブロック302)。コンテンツファイルは、メモリ20の保護されていない公開領域にあってもよい。キーナビゲーション機構は、そこで、コンテンツファイルを開き、ファイルヘッダからKNIを取得して、ファイルを閉じる(ブロック304)。次いで、機構は、コンテンツファイルと同じディレクトリ内のキーナビゲーションファイルを開く(ブロック306)。例えば、削除されるべきコンテンツファイルが、例えば、ディレクトリツリー130のプレーヤー1ディレクトリにある場合、ビットオフセットが、コンテンツファイルと同じディレクトリ(本例ではプレーヤー1ディレクトリ)内のキーナビゲーションファイルで見つけ出される。キーナビゲーション機構は、そこで、KNIをキーナビゲーションファイル内の1番目のエントリからのオフセットとして使用し、削除されるべきコンテンツファイルを暗号化/暗号解読するために使用されるタイトルキーエントリの、タイトルキーファイル内での状態を示しているキーファイル状態ビットの位置を見つける。機構は、次に、オフセット場所で見つけられたキーファイル状態ビットを0から1にリセットし、これにより、当該ファイル状態ビットの、タイトルキーファイル内での対応するタイトルキーエントリ(TKE)が、有効キーを保有していないことを表示する(ブロック308)。これは、従って、タイトルキーファイル内のその対応するTKEの場所は、これより、新たなキーを記憶するのに使用することができ、実質的に「空である」ことを表示している。実際に、保護されている領域(通常、認証を要する)に入り込んで、タイトルキーファイル内のその場所のキーを削除する必要はない。キーナビゲーション機構は、次に、キーナビゲーションファイルを閉じて、コンテンツファイルの削除に進む(ブロック310と312)。
Using the key navigation file and title key file structure described above is particularly easy when deleting content files. This is illustrated in the flowchart of FIG. Thus, the key navigation mechanism used for this purpose may be a computer program stored and executed in either the host device 24 or the memory system 10 and is first deleted in the directory. The content file to be protected is identified (block 302). The content file may be in an unprotected public area of the memory 20. The key navigation mechanism then opens the content file, gets the KNI from the file header, and closes the file (block 304). The mechanism then opens the key navigation file in the same directory as the content file (block 306). For example, if the content file to be deleted is in the player 1 directory of the directory tree 130, for example, the bit offset is found in the key navigation file in the same directory as the content file (player 1 directory in this example). The key navigation mechanism then uses the KNI as an offset from the first entry in the key navigation file and the title key of the title key entry used to encrypt / decrypt the content file to be deleted. Find the location of the key file status bit indicating the status in the file. The mechanism then resets the key file status bit found at the offset location from 0 to 1, so that the corresponding title key entry (TKE) in the title key file for that file status bit is valid. An indication that no key is held (block 308). This therefore indicates that its corresponding TKE location in the title key file can now be used to store the new key and is substantially "empty". In fact, there is no need to go into the protected area (usually requiring authentication) and delete the key at that location in the title key file. The key navigation mechanism then closes the key navigation file and proceeds to delete the content file (blocks 310 and 312).

(権利オブジェクト管理)
上で説明したキーを管理するためのシステムは、コンテンツファイルが、限定された回数だけ、又は特定の失効日以前にのみ、又は特定の期間中にのみ、アクセスできることを規定している規則の様な、他の型式のコンテンツ保護情報を管理するのにも使用される。DRMでは、その様な規則は、権利オブジェクトとして知られているオブジェクト内のコンテンツを保護するために使用されるコンテンツ暗号化/暗号解読キーと共に取り扱われる。暗号化されているコンテンツファイルがどの様に使用され及び/又はアクセスされてもよいかかを見極めるために、まず、その権利オブジェクトを突き止め、そこから暗号化/暗号解読キーを抽出し、その使用を統制している規則を抽出する。次いで、キーを使用してコンテンツファイルが暗号解読/暗号化され、コンテンツにアクセスすることができる。コンテンツファイルは、ダウンロードされるか別のやり方で受け取られることがあるが、その場合、その権利オブジェクトを見つけることが必要になる。ダウンロード時にファイルが暗号化される場合は、アクセスの権利を購入する必要があることがあり、その場合には、権利オブジェクトは購入後に供給されることになり、ダウンロードすることができる。ダウンロードされたファイルが暗号化されていない場合、権利オブジェクトを、コンテンツファイルを保護するために作成することができる。権利オブジェクトが取得されると、権利オブジェクト内のキーが権利オブジェクトから抽出され、そのキーを使用して、コンテンツファイルが暗号化又は暗号解読される。ファイルは、その後、必要に応じて更に処理される。対照的に、ファイルが作成された後、そのファイル用に権利オブジェクトが作成されることもあるが、その場合、このオブジェクトは、その暗号化/暗号解読のために使用されるキーを含んでいる。
(Rights object management)
The system for managing keys described above is like a rule that stipulates that a content file can be accessed only a limited number of times, only before a specific expiration date, or only during a specific period of time. It is also used to manage other types of content protection information. In DRM, such rules are handled with a content encryption / decryption key that is used to protect content in an object known as a rights object. To determine how an encrypted content file may be used and / or accessed, first locate the rights object, extract the encryption / decryption key from it, and use it Extract rules governing The content file can then be decrypted / encrypted using the key to access the content. A content file may be downloaded or otherwise received, in which case it will be necessary to find its rights object. If the file is encrypted at download time, it may be necessary to purchase access rights, in which case the rights object will be supplied after purchase and can be downloaded. If the downloaded file is not encrypted, a rights object can be created to protect the content file. When the rights object is obtained, the key in the rights object is extracted from the rights object and the content file is encrypted or decrypted using the key. The file is then further processed as needed. In contrast, after a file is created, a rights object may be created for the file, in which case this object contains the key used for the encryption / decryption .

追加的なセキュリティが求められている場合、暗号解読されたコンテンツファイルは、権利オブジェクト内のものとは異なるキーを使用して再度暗号化されてもい。このやり方では、コンテンツファイルの権利オブジェクトに対するアクセスを同様に有している認可されていないユーザーは、その様な再暗号化されたコンテンツファイルにはアクセスすることができなくなる。而して、コンテンツファイルをダウンロードしたユーザーは、権利発行者から取得した権利オブジェクト内のものとは異なっていて、コンテンツファイルが権利発行者から取得した権利オブジェクト内のキーを使用して暗号解読された後でこのコンテンツファイルを再度暗号化する、キーを生成してもよい。権利オブジェクト内のキーは、そこで、ユーザーにより生成されたキーと置き換えられる。代わりのやり方では、ユーザーは、コンテンツファイルを最初に暗号解読することなく、自分が生成したキーを使用して単純にコンテンツファイルを暗号化するだけであり、これにより、コンテンツファイルは、2つの異なるキー、即ち、権利発行者によるキー(即ち、コンテンツファイルは権利オブジェクト内の第1のキーを用いて暗号解読することができる)と、ユーザーが生成して、当該ユーザーにしか利用することのできない第2のキー、によって暗号化される。ユーザーは、そこで、権利オブジェクト内に同様にこの追加の第2キーを保管する。   If additional security is required, the decrypted content file may be re-encrypted using a different key than that in the rights object. In this manner, unauthorized users who also have access to the rights object of the content file will not be able to access such re-encrypted content files. Thus, the user who downloaded the content file is different from the one in the rights object obtained from the rights issuer, and the content file is decrypted using the key in the rights object obtained from the rights issuer. After that, the content file may be encrypted again to generate a key. The key in the rights object is then replaced with the key generated by the user. In the alternative, the user simply encrypts the content file using his generated key without first decrypting the content file, which makes the content file two different A key, i.e. a key by the rights issuer (i.e. the content file can be decrypted using the first key in the rights object) and can be generated by the user and used only by that user Encrypted by the second key. The user then stores this additional second key in the rights object as well.

図8は、権利オブジェクト管理の、権利オブジェクト(RO)ナビゲーション機構を例示しているフローチャートである。図8のプロセスを行うROナビゲーション機構は、コンテンツファイル、ROファイル、及びキーナビゲーションファイルが記憶されているメモリシステムにコマンドを送るホスト装置24に記憶され実行されるコンピュータプログラムコードを備えていてもよい。代わりに、機構は、CPU12にロードされ実行される、フラッシュメモリ20に記憶されているコンピュータプログラムコードを備えていてもよい。従って、図8び図9のROナビゲーション機構に使用されるコンピュータプログラムは、ホスト装置24の一部であるかこれに接続されているコンピュータ読取可能媒体に記憶されていてもよいし、或いは、その様なコンピュータプログラムは、ROファイル、権利オブジェクトナビゲーションファイル、及びコンテンツファイルが記憶されているフラッシュメモリ20に記憶されていてもよい。全てのその様な変形は、本発明の範囲内にある。一方の図6、図7を、他方の図8及び図9と比較すると、それらは極めて似ており、図8及び図9のRO管理プロセスは、それぞれ、図6及び図7のキー管理プロセスと極めて似通っていることがわかる。   FIG. 8 is a flowchart illustrating a rights object (RO) navigation mechanism for rights object management. The RO navigation mechanism that performs the process of FIG. 8 may comprise computer program code stored and executed in the host device 24 that sends commands to the memory system in which the content file, the RO file, and the key navigation file are stored. . Alternatively, the mechanism may comprise computer program code stored in flash memory 20 that is loaded into CPU 12 and executed. Accordingly, the computer program used in the RO navigation mechanism of FIGS. 8 and 9 may be stored on a computer readable medium that is part of or connected to the host device 24, or Such a computer program may be stored in the flash memory 20 in which the RO file, the rights object navigation file, and the content file are stored. All such variations are within the scope of the present invention. Comparing one of FIGS. 6 and 7 with the other of FIGS. 8 and 9, they are very similar, and the RO management process of FIGS. 8 and 9 is similar to the key management process of FIGS. You can see that they are very similar.

そのような事象では、上で説明したキー管理とよく似たRO管理用のアーキテクチャ及びコンセプトが使用されてもよく、例えば、ROファイルに亘るROエントリ(ROE)のラベル付けには、図3に例示しているのと同様のやり方で、RONIが使用されている(KNIとコンセプトは同様)。ROナビゲーションファイル内の状態ビットROS[i]は、対応するi番目のROがROファイルの1つのファイル内で有効であるか否かを表すのに使用される。ROナビゲーションファイルは、図4に示す、キー管理が関与しているやり方と同じやり方で、ディレクトリツリーのディレクトリ内のコンテンツファイルと共に公開区画又は領域に記憶されている。ROファイルは、図5に示すキー管理でのやり方と同じやり方で、ディレクトリツリーのディレクトリ内の保護されている区画又は領域に記憶されており、2つの領域のツリーは、互いに鏡像関係にある(図示せず)。   In such an event, an architecture and concept for RO management that is very similar to the key management described above may be used, for example, for labeling RO entries (ROE) across RO files, see FIG. RONI is used in the same way as illustrated (similar concept to KNI). The status bit ROS [i] in the RO navigation file is used to indicate whether the corresponding i-th RO is valid in one of the RO files. The RO navigation file is stored in the public section or region along with the content files in the directory tree directory in the same way that key management is involved, as shown in FIG. The RO file is stored in a protected partition or area within the directory tree directory in the same manner as in the key management shown in FIG. 5, and the two area trees are mirror images of each other ( Not shown).

図8を参照すると、図8の機構のプロセスは、保護されているコンテンツファイルを開くか又はダウンロードすることが所望される場合に開始される(ブロック402)。ROナビゲーション機構は、コンテンツファイルがダウンロードされているか否かを判定する(菱形404)。コンテンツファイルがダウンロードされていない場合、コンテンツファイルが既に存在しており、ダウンロードの必要性は無いという意味になる。コンテンツファイルはダウンロードされており、保護される必要があると仮定すると、機構は、ブロック406に進み、ファイルを公開ドメイン(図4の公開領域と同様)の割り当てられたディレクトリに記憶する。ROナビゲーション機構は、ROナビゲーションファイルが同じディレクトリ内に存在するか否かを調べる(菱形407a)。存在していなければ、機構は、ROナビゲーションファイルを作成する(ブロック407b)。存在していれば、機構は、図4に見られるものと同様に、ダウンロードされたコンテンツファイルと同じディレクトリ内で見つけ出されたROナビゲーションファイルを開く(ブロック408)。何れの場合も、機構は、ディレクトリツリーの適切なディレクトリ内のROナビゲーションファイルを調べ、「空の」又は「有効でない」状態を有する最初のROエントリを見つける。ROナビゲーションファイルの「空の」又は「有効でない」状態のオフセットにより、ROナビゲーションインデクス(RONI)が与えられ(ブロック408と410)、ROINを使用する上の実施形態が採用される。   Referring to FIG. 8, the process of the mechanism of FIG. 8 begins when it is desired to open or download a protected content file (block 402). The RO navigation mechanism determines whether the content file has been downloaded (diamond 404). If the content file has not been downloaded, it means that the content file already exists and there is no need for downloading. Assuming that the content file has been downloaded and needs to be protected, the mechanism proceeds to block 406 and stores the file in the assigned directory of the public domain (similar to the public area of FIG. 4). The RO navigation mechanism checks whether the RO navigation file exists in the same directory (diamond 407a). If not, the mechanism creates an RO navigation file (block 407b). If so, the mechanism opens the RO navigation file found in the same directory as the downloaded content file, similar to that seen in FIG. 4 (block 408). In either case, the mechanism looks in the RO navigation file in the appropriate directory of the directory tree and finds the first RO entry that has an “empty” or “invalid” state. The “empty” or “invalid” state offset of the RO navigation file gives the RO navigation index (RONI) (blocks 408 and 410) and the above embodiment using ROIN is employed.

ROファイル及びROナビゲーションファイルが上記実施例に使用されるとき、ROファイル内の場所又はROエントリは、順番に使用される。これは、1つのROが作成されROファイルに記憶される必要が生じたときに、ROファイル内のスロット又は場所は、ROファイルRO_file.000内のROエントリ1から開始して順にROを記憶するのに使用されるという意味である。その様なROが記憶され、最初のROエントリ又はその一部を形成した後、その対応するROファイル状態ビットROS[1]値は1から0に変更され、それが空ではなく今はビジーであること、即ち、この場所はヘッダ用に予約されたものではないことから、今は有効なROが入っていることが表示される。最初は、ROファイル状態ビットは全て値1を有しているが、0、128、256・・・のROファイル状態ビットは例外であり、それらは値0を有している。但し、この実施形態の代わりに、キーナビゲーション機構の場合のように代わりにルックアップ表を使用してもよく、全てのその様な変形は本発明の範囲内にあるものと理解頂きたい。   When RO files and RO navigation files are used in the above embodiment, the locations or RO entries in the RO file are used in sequence. This means that when one RO needs to be created and stored in the RO file, the slot or location in the RO file is stored in the RO file RO_file. Meaning that it is used to store ROs in sequence starting from RO entry 1 in 000. After such an RO is stored and forms the first RO entry or part thereof, its corresponding RO file status bit ROS [1] value is changed from 1 to 0 and it is not empty and is now busy It is indicated that there is a valid RO now because it is not reserved for the header. Initially, the RO file status bits all have the value 1, except for the RO file status bits of 0, 128, 256..., Which have the value 0. However, it should be understood that instead of this embodiment, a look-up table may be used instead as in the case of a key navigation mechanism, and all such variations are within the scope of the present invention.

RONIを取得すると、次に、ROナビゲーション機構は、ROファイルのそれぞれが128個のスロット又は場所を有している場合、RONI/128の整数部分に等しいROファイルインデクス又はnnnを計算する(ブロック412)。nnn又はROファイルインデクスは、数RONI/128の整数部分である。このnnn又はROファイルインデクス値は、ROファイルの通し番号である。次いで、そのROファイル内のオフセットを、RONI%128すなわちRONI mod 128の値を計算することにより取得する(ブロック414)。   Having obtained the RONI, the RO navigation mechanism then calculates the RO file index or nnn equal to the integer portion of the RONI / 128 if each of the RO files has 128 slots or locations (block 412). ). The nnn or RO file index is the integer part of the number RONI / 128. This nnn or RO file index value is a serial number of the RO file. The offset in the RO file is then obtained by calculating the value of RONI% 128 or RONI mod 128 (block 414).

上で指摘したように、ダウンロードされたコンテンツファイルは、(図4のディレクトリツリー130のプレーヤー1ディレクトリと同様のディレクトリの様な)ディレクトリに割り当てられる。保護されている領域のROファイル内に、ダウンロードされたばかりのこのコンテンツファイルの使用及び/又はコンテンツファイルへのアクセスを制御するのに使用されるROを記憶するための場所を取得するために、ROナビゲーション機構は、図6のやり方と同様なやり方で、保護されていないユーザーデータ領域の公開区画名を保護されている領域の保護されている区画名で置き換えることにより、保護されていないユーザーデータ領域内のディレクトリツリーに従って構築されたアクセス経路を、保護されている領域又は区画内のディレクトリツリーに従って構築されたものへ変換する(ブロック416)。ROナビゲーション機構は、次いで、ROファイル名、即ち「RO_file.nnn」を形成する(ブロック418)。ROナビゲーション機構は、次いで、完全なROファイル名を形成する(ブロック420)。一例として、プレーヤーxが、ROにより制御され、作成されるかダウンロードされることになる新規コンテンツファイルを作成する場合を想定すると、このROが記憶されることになる完全なROファイル名は、ブロック408、410、412、414、416、418、及び420に従って構築される。その場合には、作成される完全なROファイル名は、「prot_partition/playerxdirectory/RO_file.nnn」となる。   As pointed out above, the downloaded content file is assigned to a directory (such as a directory similar to the player 1 directory in the directory tree 130 of FIG. 4). To obtain a location in the protected area RO file to store the RO used to control the use and / or access to the content file that has just been downloaded. The navigation mechanism replaces the public partition name of the unprotected user data area with the protected partition name of the protected area in a manner similar to that of FIG. The access path constructed according to the directory tree within is converted to a path constructed according to the directory tree within the protected area or partition (block 416). The RO navigation mechanism then forms the RO file name, “RO_file.nnn” (block 418). The RO navigation mechanism then forms a complete RO filename (block 420). As an example, assuming that player x creates a new content file that is controlled by RO and will be created or downloaded, the complete RO file name where this RO will be stored is block 408, 410, 412, 414, 416, 418, and 420. In that case, the complete RO file name to be created is “prot_partition / playerxdirectory / RO_file.nnn”.

ROナビゲーション機構は、次いで、このROファイル名を有するROファイルが存在するか否かを調べて判断する(菱形421a)。このROファイルが存在しない場合、機構は、ファイルを1つ作成して、保護されている領域又は区画のディレクトリツリー内の適切なディレクトリ(例えば、プレーヤーx)にそれを加える(ブロック421b)。このROファイルが存在する場合、機構は、完全なROファイル名に基づくアクセス経路を使用して、当該ROファイルを開く(ブロック422)。ROナビゲーション機構は、次に、コンテンツファイルが、ブロック406でダウンロードされたのか即ち元はなかったのか否かを調べる(菱形424)。上の例では、そのコンテンツファイルはダウンロードされていたので、ROナビゲーション機構は、ブロック426に進んで、RONIをダウンロードされたファイルのファイルヘッダに挿入する。而して、RONIは、各ROを、それが制御しているコンテンツファイルと関係付ける役目も果たすと同時に、ROナビゲーションと管理のための上で説明した機能も果たしている。   Next, the RO navigation mechanism determines whether or not there is an RO file having this RO file name (diamond 421a). If this RO file does not exist, the mechanism creates one file and adds it to the appropriate directory (eg, player x) in the directory tree of the protected area or partition (block 421b). If this RO file exists, the mechanism opens the RO file using an access path based on the complete RO file name (block 422). The RO navigation mechanism then checks to see if the content file was downloaded at block 406, i.e., was not present (diamond 424). In the above example, since the content file has been downloaded, the RO navigation mechanism proceeds to block 426 and inserts the RONI into the file header of the downloaded file. Thus, RONI not only serves to associate each RO with the content file it controls, but also performs the functions described above for RO navigation and management.

RO(キーを含む)が暗号化エンジン40により作成されるか別のやり方(例えば、購入後にダウンロード)で取得されると、生成されるか上記のように取得されたキーが使用され、ダウンロードされたファイルが暗号化される(428)。暗号化された新しくダウンロードされたファイルは、メモリ装置20内の公開領域又は区画のツリーのディレクトリプレーヤーxに加えられる。このROは、暗号化され、ブロック412で識別されたROファイル内の、ブロック414で取得されたオフセットにより示された場所に挿入され(ブロック430)、保護されている区画又は領域のツリーのディレクトリプレーヤーxのROファイルに新しいROエントリとして加えられる。ROナビゲーション機構は、次にROファイルを閉じ(ブロック432)、公開領域内のツリーのプレーヤーxディレクトリのROナビゲーションファイル内のその対応する状態ビットの値を、1から0に変更するが、ROファイル状態ビットは、RONIの値を公開領域内のツリーのプレーヤーxディレクトリのROナビゲーションファイル内のオフセットとして使用して突き止められる。次いで、ROナビゲーションファイルが閉じられる(ブロック434及び436)。   When the RO (including the key) is created by the encryption engine 40 or otherwise obtained (eg, downloaded after purchase), the key generated or obtained as described above is used and downloaded. The file is encrypted (428). The newly downloaded file that has been encrypted is added to the directory player x in the tree of public areas or partitions in the memory device 20. This RO is encrypted and inserted into the RO file identified at block 412 at the location indicated by the offset obtained at block 414 (block 430) and a directory of the protected partition or area tree. It is added as a new RO entry to Player x's RO file. The RO navigation mechanism then closes the RO file (block 432) and changes the value of its corresponding status bit in the RO navigation file of the player x directory of the tree in the open area from 1 to 0, but the RO file The status bit is located using the value of RONI as an offset in the RO navigation file of the player x directory of the tree in the open area. The RO navigation file is then closed (blocks 434 and 436).

上記は、ROと関係付けられることになるコンテンツファイルが最初にダウンロードされ暗号化される(及び/又は暗号解読される)ときの、2つのディレクトリツリーを使用したROナビゲーション機構のプロセスである。既存のコンテンツファイル(即ち、ダウンロードされたものではないファイル)にアクセスすることが所望され、従ってROナビゲーション機構が、コンテンツファイルにアクセスするのに必要なROを見つけるよう要求される場合、図8のROナビゲーション機構は以下のように動作する。ROナビゲーション機構は、公開領域内のプレーヤーxディレクトリの様な特定のディレクトリ内の保護されているコンテンツファイルを開き、コンテンツファイルが既に存在していることから、ブロック452に進むことになる。ROナビゲーション機構は、次いで、コンテンツファイルのファイルヘッダから値RONIを取り出す(ブロック452)。ROナビゲーション機構が、保護されているコンテンツファイルを開くとき、それは、保護されていないユーザーデータ領域のディレクトリツリー内で動作していることになる。例えば、保護されているコンテンツファイルが、プレーヤーxディレクトリ内の歌曲ファイルの1つである場合、そのコンテンツファイルへのアクセス経路は、そのディレクトリツリーに従って構築される。ROナビゲーション機構は、そこで、ブロック412から422の動作を上で説明したやり方で行って、コンテンツファイルと関係付けられているROが記憶されている或る特定のROファイルのROファイルインデクス又はnnnと、そのROファイル内のROの場所を示すオフセットを見つけ出す。ROナビゲーション機構は、更に、公開領域内のディレクトリツリーに従った公開の又は保護されていないユーザーデータ領域へのアクセス経路を、保護されている領域内のディレクトリツリーに従って構築されたアクセス経路に変換し、ブロック416、418、及び420に基づき、保護されている領域の暗号解読ROの完全なROファイル名を確立する。認証プロセスの後、次いで、ROナビゲーション機構は、構築された完全なROファイル名に基づいて、保護されている領域内のROファイルを開いて(ブロック422)ROが容易に入手でき、取り出すことができるようにする。ROナビゲーション機構は、次いで、コンテンツファイルが上記動作以前に存在していたか否かを調べる。本例では、それは存在しているので、機構はブロック454に進んで、適正なROファイルのオフセットのROエントリから暗号化されているROを取り出す(ブロック254)。ROは、次いで、暗号解読され、その中のキーを使用して、ROの規則に従ってコンテンツファイルが暗号解読/暗号化されることになる(ブロック456)。   The above is the process of the RO navigation mechanism using two directory trees when the content file to be associated with the RO is first downloaded and encrypted (and / or decrypted). If it is desired to access an existing content file (ie, a file that has not been downloaded) and therefore the RO navigation mechanism is required to find the RO needed to access the content file, FIG. The RO navigation mechanism operates as follows. The RO navigation mechanism opens the protected content file in a particular directory, such as the player x directory in the open area, and proceeds to block 452 because the content file already exists. The RO navigation mechanism then retrieves the value RONI from the file header of the content file (block 452). When the RO navigation mechanism opens a protected content file, it will be operating in the directory tree of the unprotected user data area. For example, if the protected content file is one of the song files in the player x directory, the access path to the content file is constructed according to the directory tree. The RO navigation mechanism then performs the operations of blocks 412 to 422 in the manner described above to store the RO file index or nnn of a particular RO file in which the RO associated with the content file is stored. , Find the offset indicating the location of the RO in the RO file. The RO navigation mechanism further converts the access path to the public or unprotected user data area according to the directory tree in the public area into an access path constructed according to the directory tree in the protected area. , Based on blocks 416, 418, and 420, establish the complete RO filename for the decrypted RO in the protected area. After the authentication process, the RO navigation mechanism then opens the RO file in the protected area based on the constructed full RO file name (block 422) and the RO is readily available and can be retrieved. It can be so. The RO navigation mechanism then checks whether the content file existed before the operation. In this example, because it exists, the mechanism proceeds to block 454 and retrieves the encrypted RO from the RO entry with the correct RO file offset (block 254). The RO will then be decrypted and the content file will be decrypted / encrypted using the keys therein according to the rules of the RO (block 456).

図9は、権利オブジェクト管理システムの更なる特性を説明するため、権利オブジェクトナビゲーション機構のファイルを削除する動作を例示しているフローチャートである。上で説明したROナビゲーションファイル、ROファイル構造を使用すると、コンテンツファイルを削除するのが特に簡単になる。これを図9のフローチャートに例示している。而して、この目的に使用されるROナビゲーション機構は、ホスト装置24又はメモリシステム10の何れかに記憶され、実行されるコンピュータプログラムであってもよく、最初に、ディレクトリ内で、削除されるべき保護されているコンテンツファイルを識別する(ブロック502)。コンテンツファイルは、メモリ20の保護されていない公開領域にあってもよい。ROナビゲーション機構は、そこで、コンテンツファイルを開き、ファイルヘッダからRONIを取得して、ファイルを閉じる(ブロック504)。次いで、機構は、コンテンツファイルと同じディレクトリ内のROナビゲーションファイルを開く(ブロック506)。例えば、削除されるべきコンテンツファイルが、例えば、公開領域又は区画内のディレクトリツリーのプレーヤーxディレクトリにある場合、ビットオフセットは、コンテンツファイルと同じディレクトリ(本例ではプレーヤーxディレクトリ)内のROナビゲーションファイル内で見つけ出される。ROナビゲーション機構は、そこで、RONIをROナビゲーションファイル内の1番目のエントリからのオフセットとして使用し、削除されるべきコンテンツファイルと関係付けられているROエントリの、ROファイル内での状態を示しているROファイル状態ビットの位置を見つける。機構は、次にオフセット場所で見つけられたROファイル状態ビットを0から1にリセットし、これにより、当該ファイル状態ビットの、ROファイル内での対応するROエントリ(ROE)が、有効なROを保有していないことを表示する(ブロック508)。これは、従って、ROファイル内のその対応するROEの場所は、これより、新しいROを記憶するのに使用することができ、実質的に「空である」又は「有効でない」ことを示している。実際に、保護されている領域(通常、認証を要する)に入り込んで、ROファイル内のその場所のROを削除する必要はない。ROナビゲーション機構は、次に、ROナビゲーションファイルを閉じて、コンテンツファイルの削除に進む(ブロック510と512)。   FIG. 9 is a flowchart illustrating an operation for deleting a file of the rights object navigation mechanism in order to explain further characteristics of the rights object management system. Using the RO navigation file and RO file structure described above makes it particularly easy to delete content files. This is illustrated in the flowchart of FIG. Thus, the RO navigation mechanism used for this purpose may be a computer program that is stored and executed either in the host device 24 or the memory system 10 and is first deleted in the directory. A content file to be protected is identified (block 502). The content file may be in an unprotected public area of the memory 20. The RO navigation mechanism then opens the content file, obtains the RONI from the file header, and closes the file (block 504). The mechanism then opens the RO navigation file in the same directory as the content file (block 506). For example, if the content file to be deleted is in the player x directory of the directory tree in the public area or partition, for example, the bit offset is the RO navigation file in the same directory (player x directory in this example) Is found in. The RO navigation mechanism then uses RONI as an offset from the first entry in the RO navigation file to indicate the state in the RO file of the RO entry associated with the content file to be deleted. Find the location of the RO file status bit. The mechanism then resets the RO file status bit found at the offset location from 0 to 1, so that the corresponding RO entry (ROE) in the RO file for that file status bit sets a valid RO. It is displayed that it is not owned (block 508). This therefore indicates that the location of that corresponding ROE in the RO file can now be used to store the new RO and is substantially “empty” or “not valid”. Yes. In fact, it is not necessary to go into the protected area (usually requiring authentication) and delete the RO at that location in the RO file. The RO navigation mechanism then closes the RO navigation file and proceeds to delete the content file (blocks 510 and 512).

以上、本発明を、様々な実施形態を参照しながら説明してきたが、本発明の範囲から逸脱することなく変更及び修正を施すことができること、及び本発明の範囲は、特許請求の範囲並びにその等価物によってのみ定義されるものであることを理解されたい。例えば、図6のものと同様のプロセスは、タイトルキー記憶ファイルの1つのファイル内に、作成された暗号解読用のキーを記憶するための場所を見つけるのに、及び、タイトルキー記憶ファイルの1つのファイル内で、既存のファイルを暗号化するための既存の暗号化キーを見つけるのに、適用することもできる。キー又はROは、歌曲、映画、ゲームの様なメディアタイトル、並びにタイトルの有無にかかわらず他の型式のコンテンツを含め、あらゆるコンテンツの保護に使用されてもよい。ナビゲーション又は場所情報は、ヘッダとは異なっているコンテンツファイルの部分、例えばファイル名の中に記憶してもよい。ここで参照した全ての引例は、参考文献として援用されるものとする。   The present invention has been described above with reference to various embodiments. However, changes and modifications can be made without departing from the scope of the present invention, and the scope of the present invention is defined by the claims and the scope thereof. It should be understood that it is defined only by the equivalents. For example, a process similar to that of FIG. 6 finds a place in one file of the title key storage file to store the created decryption key and 1 of the title key storage file. It can also be applied to find an existing encryption key for encrypting an existing file within one file. The key or RO may be used to protect any content, including songs, movies, media titles such as games, and other types of content with or without a title. Navigation or location information may be stored in a portion of the content file that is different from the header, eg, the file name. All references referred to herein are incorporated by reference.

本発明を例示している、ホスト装置と通信しているメモリシステムのブロック図である。1 is a block diagram of a memory system in communication with a host device illustrating the present invention. タイトルキーファイルの構造を例示している図である。It is a figure which illustrates the structure of a title key file. キーナビゲーションファイルの構造を例示している図である。It is a figure which illustrates the structure of the key navigation file. 図3Aのキーナビゲーションファイルと図2に示す型式の複数のタイトルキーファイルを示している図であり、それらの間の関係を例示している図である。FIG. 3B is a diagram showing the key navigation file of FIG. 3A and a plurality of title key files of the type shown in FIG. 2, and illustrating the relationship between them. キーナビゲーション及びキー管理に有用な、保護されていないユーザーデータ領域のディレクトリツリーを例示している図である。FIG. 6 illustrates a directory tree of unprotected user data areas useful for key navigation and key management. キーナビゲーション及びキー管理に有用な、保護されている領域のディレクトリツリーの図である。FIG. 3 is a diagram of a protected area directory tree useful for key navigation and key management. キー管理のキーナビゲーション機構を例示しているフローチャートである。It is the flowchart which illustrates the key navigation mechanism of key management. キー管理システムの更なる特性を例示するために、ファイルを削除するためのキーナビゲーション機構を例示しているフローチャートである。FIG. 6 is a flowchart illustrating a key navigation mechanism for deleting files to illustrate further characteristics of the key management system. FIG. 権利オブジェクト管理のための権利オブジェクトナビゲーション機構を例示しているフローチャートである。6 is a flowchart illustrating a rights object navigation mechanism for rights object management. 権利オブジェクト管理システムの更なる特性を例示するために、ファイルを削除するための権利オブジェクトナビゲーション機構を例示しているフローチャートである。FIG. 6 is a flowchart illustrating a rights object navigation mechanism for deleting files to illustrate further properties of a rights object management system. FIG.

Claims (101)

複数のキーの管理をやり易くするコンピュータプログラムを記憶しているコンピュータ読取可能媒体であって、前記コンピュータプログラムは、キーナビゲーションファイルを作成し、且つ、1つ又は複数のキー記憶ファイルを、それがまだ存在していない場合には作成し、各キー記憶ファイルは、そのキー記憶ファイル内の対応する場所に1つ又はそれ以上のキーを保有するために使用されているか使用されるものであり、前記キーのそれぞれは、複数のコンテンツファイルの内の対応する1つのファイルの暗号化及び/又は暗号解読に使用されているか使用されるものであり、各コンテンツファイルはヘッダ部分を備えており、前記コンテンツファイルのそれぞれの前記ヘッダ部分の場所情報は、前記対応するキーが置かれている前記キー記憶ファイルの1つ、及び、そのキー記憶ファイル内でのそのキーの前記対応する場所を表しており、前記キーナビゲーションファイルは、有効キーが前記1つ又はそれ以上のキー記憶ファイル内の1つ又はそれ以上の場所に記憶されているか否かを示す状態情報を保有している、コンピュータ読取可能媒体。   A computer readable medium storing a computer program that facilitates management of a plurality of keys, the computer program creating a key navigation file and storing one or more key storage files Create if not already present, and each key storage file is or will be used to hold one or more keys in the corresponding location in that key storage file; Each of the keys is used or used for encryption and / or decryption of a corresponding one of a plurality of content files, and each content file includes a header portion, The location information of each header portion of the content file includes the key where the corresponding key is placed. One of the storage files and the corresponding location of the key in the key storage file, wherein the key navigation file has one valid key in the one or more key storage files Or a computer readable medium having state information indicating whether it is stored in a location beyond that. 前記キーナビゲーションファイルと1つ又はそれ以上のキー記憶ファイルは、記憶装置に記憶されており、前記装置は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記コンピュータプログラムは、暗号化されたキーを記憶するための前記1つ又はそれ以上のキー記憶ファイルを、それがまだ存在していない場合には、前記少なくとも1つの保護されている領域に作成する、請求項1に記載の媒体。   The key navigation file and one or more key storage files are stored in a storage device, the device comprising at least one protected area and at least one unprotected area; The at least one protected area is accessible only to authorized users, and the computer program stores the one or more key storage files for storing encrypted keys. The medium of claim 1, wherein the medium is created in the at least one protected area if it does not already exist. 前記コンピュータプログラムは、前記キーナビゲーションファイルを、それがまだ存在していない場合には、前記少なくとも1つの保護されていない領域に作成する、請求項2に記載の媒体。   The medium of claim 2, wherein the computer program creates the key navigation file in the at least one unprotected area if it does not already exist. 前記キーナビゲーションファイルはエントリを含み、前記キーナビゲーションファイルの前記エントリのそれぞれは、前記1つ又はそれ以上のキー記憶ファイル内の、複数の暗号化/暗号解読キーの1つを記憶するための場所に対応しており、有効キーがその場所に記憶されているか否かについての状態情報を提供する、請求項1に記載の媒体。   The key navigation file includes entries, and each of the entries of the key navigation file is a location for storing one of a plurality of encryption / decryption keys in the one or more key storage files. The medium of claim 1, wherein the medium provides status information about whether a valid key is stored at the location. 前記コンピュータプログラムは、前記キーナビゲーションファイルの前記エントリにより提供される前記状態情報から、有効キーが記憶されていない前記キー記憶ファイルの1つの対応する場所を示している状態情報を提供しているエントリを見つける、請求項4に記載の媒体。   The computer program provides, from the state information provided by the entry of the key navigation file, state information indicating one corresponding location of the key storage file in which no valid key is stored. The medium of claim 4, wherein: 前記コンピュータプログラムは、前記複数のコンテンツファイルの1つを暗号化及び/又は暗号解読するためのキーを生成し、前記生成されたキーを、前記キー記憶ファイルの1つの、前記見つけられたエントリにより示されている前記対応する場所に記憶し、前記場所情報をそのコンテンツファイルのヘッダ部分に挿入する、請求項5に記載の媒体。   The computer program generates a key for encrypting and / or decrypting one of the plurality of content files, and the generated key is generated by the found entry of one of the key storage files. 6. The medium of claim 5, wherein the medium is stored at the corresponding location shown and the location information is inserted into a header portion of the content file. 前記キーナビゲーションファイル内の前記エントリのそれぞれは、インデクスiの異なる値に対応しており、前記インデクス値のそれぞれは、前記1つ又はそれ以上のキー記憶ファイル内の前記対応する場所の状態情報と関係付けられており、前記コンピュータプログラムは、前記キーナビゲーションファイル内で見つけられた前記エントリの前記インデクスiを、前記生成されたキーを使用して暗号化/暗号解読されることになる対応するコンテンツファイルのヘッダ部分に挿入する、請求項6に記載の媒体。   Each of the entries in the key navigation file corresponds to a different value of index i, and each of the index values includes state information of the corresponding location in the one or more key storage files. Associated with which the computer program will encrypt / decrypt the index i of the entry found in the key navigation file using the generated key. The medium of claim 6, wherein the medium is inserted into a header portion of a file. Nを1より大きい整数として、前記コンピュータプログラムは1からNまでの番号が付されたN個までのキー記憶ファイルを使用しており、mを正の整数として、前記N個のキー記憶ファイルのそれぞれは、m個のキーを記憶するためのm個の場所を保有しており、数値i/mの整数部分は、前記N個のキー記憶ファイルの内の、前記対応するキーが記憶されているか記憶されることになる特定の1つを示しており、i mod mは、前記見つけられたエントリに対応している前記特定のキー記憶ファイル内の対応するキーの場所を示しており、前記コンピュータプログラムは、前記数値i/mの整数部分を見つけるため、及びi mod mを見つけるための動作を実行する、請求項7に記載の媒体。   The computer program uses up to N key storage files numbered from 1 to N, where N is an integer greater than 1, and m is a positive integer. Each has m locations for storing m keys, and the integer part of the numerical value i / m stores the corresponding key in the N key storage files. I mod m indicates the location of the corresponding key in the particular key storage file corresponding to the found entry, and 8. The medium of claim 7, wherein a computer program performs operations to find an integer part of the numerical value i / m and to find i mod m. 前記コンピュータプログラムは、前記整数部分によって、前記N個のキー記憶ファイルの中から、前記生成されたキーを記憶するのに使用されることになる前記キー記憶ファイルを見つける、請求項8に記載の媒体。   9. The computer program of claim 8, wherein the computer program finds the key storage file to be used to store the generated key from the N key storage files by the integer portion. Medium. 前記コンピュータプログラムは、i mod mを使用して、前記生成されたキーを記憶するのに使用されることになる、前記キー記憶ファイル内の前記対応する場所を見つける、請求項9に記載の媒体。   10. The medium of claim 9, wherein the computer program uses i mod m to find the corresponding location in the key storage file that will be used to store the generated key. . 前記キーナビゲーションファイルは、複数のビットを保有しており、各ビットは、有効キーが前記1つ又はそれ以上のキー記憶ファイル内の対応する場所に記憶されているか否かを示している、請求項1に記載の媒体。   The key navigation file has a plurality of bits, each bit indicating whether a valid key is stored in a corresponding location in the one or more key storage files. Item 10. The medium according to Item 1. 前記コンピュータプログラムは、前記キーナビゲーションファイルを作成し、且つ、前記1つ又は複数のキー記憶ファイルを、それがまだ存在していない場合には、前記媒体とは別体である記憶装置内に作成する、請求項1に記載の媒体。   The computer program creates the key navigation file and creates the one or more key storage files in a storage device that is separate from the medium if it does not already exist. The medium of claim 1. 前記コンピュータプログラムは、前記キーナビゲーションファイルを作成し、且つ、前記1つ又は複数のキー記憶ファイルを、それがまだ存在していない場合には記憶装置内に作成し、前記媒体は前記装置の一部である、請求項1に記載の媒体。   The computer program creates the key navigation file and creates the one or more key storage files in a storage device if they do not already exist, and the medium is one of the devices. The medium according to claim 1, wherein the medium is a part. 前記コンピュータプログラムは、前記キー記憶ファイル内の、各コンテンツファイルに対応する前記キーを記憶するのに使用されているか使用されることになる前記対応する場所を、そのコンテンツファイルの前記ヘッダ部分の前記場所情報を使用して見つける、請求項1に記載の媒体。   The computer program identifies the corresponding location in the key storage file that is used or will be used to store the key corresponding to each content file in the header portion of the content file. The medium of claim 1, wherein the medium is found using location information. キーナビゲーション機構を記憶している不揮発性コンピュータ読取可能媒体であって、前記機構は、キーナビゲーションファイルと少なくとも1つのキー記憶ファイルを備えており、各キー記憶ファイルは、そのキー記憶ファイル内の対応する場所に複数のキーを保有しており、前記キーは、複数のコンテンツファイルの内の対応する1つを暗号化及び/又は暗号解読するために使用され、各コンテンツファイルはヘッダ部分を備えており、前記コンテンツファイルのそれぞれの前記ヘッダ部分の情報は、前記対応するキーが置かれている前記キー記憶ファイルの1つ、及び、そのキー記憶ファイル内のそのキーの前記対応する場所を示しており、前記キーナビゲーションファイルは、前記少なくとも1つのキー記憶ファイル内の1つ又はそれ以上の場所が有効キーを保有しているか否かを示す情報を保有している、不揮発性コンピュータ読取可能媒体。   A non-volatile computer readable medium storing a key navigation mechanism, the mechanism comprising a key navigation file and at least one key storage file, each key storage file corresponding to a corresponding key storage file A plurality of keys in a location that is used to encrypt and / or decrypt a corresponding one of the plurality of content files, each content file comprising a header portion And the information of the header portion of each of the content files indicates one of the key storage files where the corresponding keys are located and the corresponding location of the key in the key storage file And the key navigation file is one or more of the at least one key storage file. It holds information indicating whether or not more locations holds a valid key, a non-volatile computer-readable media. 前記媒体は、メモリカード内の不揮発性フラッシュメモリセルを備えている、請求項15に記載の媒体。   The medium of claim 15, wherein the medium comprises non-volatile flash memory cells in a memory card. 前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記少なくとも1つのキー記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されており、前記キーナビゲーションファイルは、前記少なくとも1つの保護されていない領域に記憶されている、請求項15に記載の媒体。   The medium comprises at least one protected area and at least one unprotected area, the protected area being accessible only to an authenticated user, and the at least one key The medium of claim 15, wherein a storage file is stored in the at least one protected area and the key navigation file is stored in the at least one unprotected area. 少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、キーナビゲーション機構を記憶している、不揮発性コンピュータ読取可能媒体であって、前記機構は、
キーナビゲーションファイルと少なくとも1つのキー記憶ファイルであって、各キー記憶ファイルは、そのキー記憶ファイル内の対応する場所に複数の暗号化されたキーを保有しており、前記キーのそれぞれは、複数のコンテンツファイルの対応する1つの暗号化及び/又は暗号解読のために使用される、キーナビゲーションファイルと少なくとも1つのキー記憶ファイルと、
前記媒体の前記少なくとも1つの保護されていない領域の、前記複数のコンテンツファイルの一覧と前記キーナビゲーションファイルを保有しているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の、前記少なくとも1つのキー記憶ファイル内の前記キーの一覧を保有しているディレクトリを備えている、第2ディレクトリと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係となる構造を有している、不揮発性コンピュータ読取可能媒体。
A non-volatile computer-readable medium comprising at least one protected area and at least one unprotected area and storing a key navigation mechanism, the mechanism comprising:
A key navigation file and at least one key storage file, each key storage file having a plurality of encrypted keys at corresponding locations in the key storage file, each of said keys being a plurality of A key navigation file and at least one key storage file used for a corresponding encryption and / or decryption of a content file of
A first directory tree comprising a directory holding the list of the plurality of content files and the key navigation file of the at least one unprotected area of the medium;
A second directory comprising a directory holding a list of the keys in the at least one key storage file of the at least one protected area of the medium; and A non-volatile computer-readable medium in which two directory trees have structures that are mirror images of each other.
記憶装置の保護されている領域のキー記憶ファイル内の暗号解読/暗号化キーを使用して、コンテンツファイルを暗号解読/暗号化するコンピュータプログラムを記憶しているコンピュータ読取可能媒体であって、前記コンテンツファイルは、キー記憶ファイル内の、前記コンテンツファイルを暗号解読/暗号化するための前記暗号解読/暗号化キーへのアクセス経路を示すキーナビゲーション情報を保有しており、前記コンピュータプログラムは、
前記キーナビゲーション情報を前記コンテンツファイルから取り出し、
前記キーナビゲーション情報から、前記記憶装置の前記保護されている領域の前記キー記憶ファイル内の、前記暗号解読/暗号化キーが記憶されている場所を導き出し、
前記導き出された場所を使用して、前記記憶媒体の前記保護されている領域の前記キー記憶ファイルから前記暗号解読/暗号化キーを取得し、
前記暗号解読/暗号化キーを使用して、前記コンテンツファイルを暗号解読/暗号化する、コンピュータ読取可能媒体。
A computer readable medium storing a computer program for decrypting / encrypting a content file using a decryption / encryption key in a key storage file of a protected area of a storage device, comprising: The content file has key navigation information indicating an access path to the decryption / encryption key for decrypting / encrypting the content file in the key storage file, and the computer program includes:
Extracting the key navigation information from the content file;
Deriving from the key navigation information where the decryption / encryption key is stored in the key storage file of the protected area of the storage device;
Obtaining the decryption / encryption key from the key storage file of the protected area of the storage medium using the derived location;
A computer readable medium for decrypting / encrypting the content file using the decryption / encryption key.
前記コンピュータプログラムは、それぞれがキーを記憶するためのm個の場所を有する複数のキー記憶ファイルを使用しており、前記キーナビゲーション情報は、インデクスを備えており、前記コンピュータプログラムは、前記インデクスをmで割り、商を取得して、前記商の整数部分と等しい整数を取得すると共に、前記商の余り部分と等しいオフセットを取得することにより、前記複数のキー記憶ファイルの内のどの1つが、前記暗号解読/暗号化キーを記憶しているかということと、そのキー記憶ファイル内の、前記暗号解読/暗号化キーが記憶されている場所とを見つける、請求項19に記載の媒体。   The computer program uses a plurality of key storage files each having m locations for storing keys, the key navigation information includes an index, and the computer program stores the index. Divide by m to obtain the quotient to obtain an integer equal to the integer part of the quotient and obtain an offset equal to the remainder of the quotient, so that any one of the plurality of key storage files is 20. The medium of claim 19, wherein the medium finds whether the decryption / encryption key is stored and where the decryption / encryption key is stored in the key storage file. 前記整数は、前記1つ又はそれ以上のキー記憶ファイルの内のどの1つが、前記暗号解読/暗号化キーを記憶しているかを示しており、前記オフセットは、そのキー記憶ファイル内の、前記暗号解読/暗号化キーが記憶されている前記場所を示している、請求項20に記載の媒体。   The integer indicates which one of the one or more key storage files stores the decryption / encryption key, and the offset is within the key storage file, 21. The medium of claim 20, indicating the location where a decryption / encryption key is stored. 前記記憶装置は、保護されていない領域を備えており、前記コンピュータプログラムは、更に、前記保護されていない領域内の或る場所へのアクセス経路を、前記保護されている領域にアクセスするためのアクセス経路に変換する、請求項19に記載の媒体。   The storage device includes an unprotected area, and the computer program further accesses an access path to a certain place in the unprotected area to the protected area. The medium of claim 19, wherein the medium is converted to an access path. 前記記憶装置は、
前記媒体の前記保護されていない領域の、複数のコンテンツファイルの一覧と少なくとも1つのキーナビゲーションファイルを備えているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の、1つ又はそれ以上のキー記憶ファイルを備えているディレクトリを備えている、第2ディレクトリツリーと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係となる構造を有しており、
前記コンピュータプログラムは、前記2つのディレクトリツリーを使って、前記保護されていない領域の或る場所にアクセスするためのアクセス経路を、前記キー記憶ファイル内の、前記暗号化/暗号解読キーが記憶されている前記場所にアクセスするための前記アクセス経路に変換する、請求項22に記載の媒体。
The storage device
A first directory tree comprising a directory comprising a list of a plurality of content files and at least one key navigation file of the unprotected area of the medium;
A second directory tree comprising a directory comprising one or more key storage files of the at least one protected area of the medium, wherein the two directory trees are They have structures that are mirror images of each other,
The computer program uses the two directory trees to store the encryption / decryption key in the key storage file for an access path for accessing a location in the unprotected area. 23. The medium of claim 22, wherein the medium translates to the access path for accessing the location.
前記媒体は、前記記憶装置の一部である、請求項19に記載の媒体。   The medium of claim 19, wherein the medium is part of the storage device. 複数の権利オブジェクトの管理をやり易くするコンピュータプログラムを記憶しているコンピュータ読取可能媒体であって、前記コンピュータプログラムは、権利オブジェクトナビゲーションファイルを作成し、且つ、1つ又は複数の権利オブジェクト記憶ファイルを、それがまだ存在していない場合には作成し、各権利オブジェクト記憶ファイルは、その権利オブジェクト記憶ファイル内の対応する場所に1つ又はそれ以上の権利オブジェクトを保有するために使用されているか使用されるものであり、前記権利オブジェクトのそれぞれは、複数のコンテンツファイルの内の対応する1つの使用及び/又は同ファイルへのアクセスを制御するために使用されているか使用されるものであり、各コンテンツファイルはヘッダ部分を備えており、前記コンテンツファイルのそれぞれの前記ヘッダ部分の場所情報は、前記対応する権利オブジェクトが置かれている前記権利オブジェクト記憶ファイルの1つと、その権利オブジェクト記憶ファイル内でのその権利オブジェクトの前記対応する場所とを示しており、前記権利オブジェクトナビゲーションファイルは、有効な権利オブジェクトが前記1つ又はそれ以上の権利オブジェクト記憶ファイル内の1つ又はそれ以上の場所に記憶されているか否かを示す状態情報を保有している、コンピュータ読取可能媒体。   A computer-readable medium storing a computer program for facilitating management of a plurality of rights objects, the computer program creating a rights object navigation file and storing one or more rights object storage files Create, if it does not already exist, each rights object storage file is used or used to hold one or more rights objects in corresponding locations in that rights object storage file Each of the rights objects is used or used to control a corresponding one of a plurality of content files and / or access to the files, The content file has a header part The location information of each header portion of the content file includes one of the rights object storage file in which the corresponding rights object is located, and the corresponding location of the rights object in the rights object storage file. And the rights object navigation file contains state information indicating whether valid rights objects are stored in one or more locations in the one or more rights object storage files. A computer readable medium. 前記権利オブジェクトナビゲーションファイルと1つ又はそれ以上の権利オブジェクト記憶ファイルは、記憶装置に記憶されており、前記装置は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記コンピュータプログラムは、暗号化された権利オブジェクトを記憶するための前記1つ又はそれ以上の権利オブジェクト記憶ファイルを、それがまだ存在していない場合には、前記少なくとも1つの保護されている領域に作成する、請求項25に記載の媒体。   The rights object navigation file and one or more rights object storage files are stored in a storage device, the device comprising at least one protected area and at least one unprotected area. The at least one protected area is accessible only to authenticated users, and the computer program stores the one or more rights object stores for storing encrypted rights objects. 26. The medium of claim 25, wherein a file is created in the at least one protected area if it does not already exist. 前記コンピュータプログラムは、前記権利オブジェクトナビゲーションファイルを、それがまだ存在していない場合には、前記少なくとも1つの保護されていない領域に作成する、請求項26に記載の媒体。   27. The medium of claim 26, wherein the computer program creates the rights object navigation file in the at least one unprotected area if it does not already exist. 前記権利オブジェクトナビゲーションファイルはエントリを保有しており、前記権利オブジェクトナビゲーションファイルの前記エントリのそれぞれは、前記1つ又はそれ以上の権利オブジェクト記憶ファイル内の、複数の権利オブジェクトの1つを記憶するための場所に対応しており、有効な権利オブジェクトがその場所に記憶されているか否かについての状態情報を提供する、請求項25に記載の媒体。   The rights object navigation file has entries, each of the entries of the rights object navigation file storing one of a plurality of rights objects in the one or more rights object storage files. 26. The medium of claim 25, wherein the medium provides status information about whether a valid rights object is stored at that location. 前記コンピュータプログラムは、前記権利オブジェクトナビゲーションファイルの前記エントリにより提供される前記状態情報から、前記権利オブジェクト記憶ファイルの1つの、有効権利オブジェクトが記憶されていない対応する場所、を示している状態情報を提供するエントリを見つける、請求項28に記載の媒体。   The computer program obtains status information indicating one corresponding location in the rights object storage file where no valid rights object is stored from the status information provided by the entry of the rights object navigation file. 30. The medium of claim 28, wherein an entry to provide is found. 前記コンピュータプログラムは、前記複数のコンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するための権利オブジェクトを生成し、前記生成された権利オブジェクトを、前記権利オブジェクト記憶ファイルの中の1つの、前記見つけられたエントリにより表示されている前記対応する場所に記憶し、前記場所情報をそのコンテンツファイルのヘッダ部分に挿入する、請求項29に記載の媒体。   The computer program generates a rights object for controlling use of and / or access to the plurality of content files, and the generated rights object is stored in one of the rights object storage files. 30. The medium of claim 29, storing at the corresponding location displayed by the found entry and inserting the location information into a header portion of the content file. 前記権利オブジェクナビゲーションファイル内の前記エントリのそれぞれは、インデクスiの異なる値に対応しており、前記インデクス値のそれぞれは、前記1つ又はそれ以上の権利オブジェクト記憶ファイル内の前記対応する場所の状態情報と関係付けられており、前記コンピュータプログラムは、前記権利オブジェクトナビゲーションファイル内で見つけられた前記エントリの前記インデクスiを、前記生成された権利オブジェクトを使用して制御されることになる対応するコンテンツファイルのヘッダ部分に挿入する、請求項30に記載の媒体。   Each of the entries in the rights object navigation file corresponds to a different value of index i, and each of the index values is a status of the corresponding location in the one or more rights object storage files. Associated with the information, and the computer program controls the index i of the entry found in the rights object navigation file using the rights object generated. The medium of claim 30, wherein the medium is inserted into a header portion of a file. Nを1より大きい整数として、前記コンピュータプログラムは1からNまでの番号が付されたN個までの権利オブジェクト記憶ファイルを使用しており、mを正の整数として、前記N個の権利オブジェクト記憶ファイルのそれぞれは、m個の権利オブジェクトを記憶するためのm個の場所を保有しており、前記数i/mの整数部分は、前記N個の権利オブジェクト記憶ファイルの中の、前記対応する権利オブジェクトが記憶されているか記憶されることになる特定の1つを示しており、i mod mは、前記見つけられたエントリに対応している前記特定の権利オブジェクト記憶ファイル内の対応する権利オブジェクトの場所を示しており、前記コンピュータプログラムは、前記数i/mの整数部分を見つけるための、及びi mod mを見つけるための演算を実行する、請求項31に記載の媒体。   The computer program uses up to N rights object storage files numbered 1 to N, where N is an integer greater than 1, and the N rights object storage files, where m is a positive integer. Each of the files has m locations for storing m rights objects, and the integer part of the number i / m corresponds to the corresponding one of the N rights object storage files. Indicates a particular one where a rights object is stored or will be stored, i mod m is the corresponding rights object in the particular rights object storage file corresponding to the found entry Where the computer program finds the integer part of the number i / m, and i mod m Calculating the execution to give, medium of claim 31. 前記コンピュータプログラムは、前記整数部分によって、前記N個の権利オブジェクト記憶ファイルの中から、前記生成された権利オブジェクトを記憶するのに使用されることになる前記権利オブジェクト記憶ファイルを見つける、請求項32に記載の媒体。   The computer program finds the rights object storage file to be used to store the generated rights object from the N rights object storage files by the integer portion. The medium described in 1. 前記コンピュータプログラムは、i mod mを使用して、前記生成された権利オブジェクトを記憶するのに使用されることになる、前記権利オブジェクト記憶ファイル内の前記対応する場所を見つける、請求項33に記載の媒体。   36. The computer program of claim 33, wherein the computer program uses i mod m to find the corresponding location in the rights object storage file that will be used to store the generated rights object. Medium. 前記権利オブジェクトナビゲーションファイルは、複数のビットを保有しており、各ビットは、有効な権利オブジェクトが前記1つ又はそれ以上の権利オブジェクト記憶ファイル内の対応する場所に記憶されているか否かを示している、請求項25に記載の媒体。   The rights object navigation file has a plurality of bits, each bit indicating whether a valid rights object is stored at a corresponding location in the one or more rights object storage files. 26. The medium of claim 25. 前記コンピュータプログラムは、前記権利オブジェクトナビゲーションファイルを作成し、且つ、前記1つ又は複数の権利オブジェクト記憶ファイルを、それがまだ存在していない場合に、前記媒体とは別体の記憶装置内に作成する、請求項25に記載の媒体。   The computer program creates the rights object navigation file and creates the one or more rights object storage files in a storage device separate from the medium if it does not already exist. 26. The medium of claim 25. 前記コンピュータプログラムは、前記権利オブジェクトナビゲーションファイルを作成し、且つ、前記1つ又は複数の権利オブジェクト記憶ファイルを、それがまだ存在していない場合には、或る記憶装置内に作成し、前記媒体は前記記憶装置の一部である、請求項25に記載の媒体。   The computer program creates the rights object navigation file and creates the one or more rights object storage files in a storage device if they do not already exist, the medium 26. The medium of claim 25, wherein is a part of the storage device. 前記コンピュータプログラムは、前記権利オブジェクト記憶ファイル内の、各コンテンツファイルに対応する前記権利オブジェクトを記憶するのに使用されているか使用されることになる前記対応する場所を、そのコンテンツファイルの前記ヘッダ部分の前記場所情報を使用して見つける、請求項25に記載の媒体。   The computer program identifies the corresponding location used or to be used to store the rights object corresponding to each content file in the rights object storage file in the header portion of the content file. 26. The medium of claim 25, wherein the medium is found using the location information. 権利オブジェクトビゲーション機構を記憶している不揮発性コンピュータ読取可能媒体であって、前記機構は、権利オブジェクトナビゲーションファイルと少なくとも1つの権利オブジェクト記憶ファイルを備えており、各権利オブジェクト記憶ファイルは、その権利オブジェクト記憶ファイル内の対応する場所に複数の権利オブジェクトを保有しており、前記権利オブジェクトは、複数のコンテンツファイルの内の対応する1つの使用及び/又は同ファイルへのアクセスのために使用され、各コンテンツファイルはヘッダ部分を備えており、前記コンテンツファイルのそれぞれの前記ヘッダ部分の情報は、前記対応する権利オブジェクトが置かれている前記権利オブジェクト記憶ファイルの1つと、その権利オブジェクト記憶ファイル内のその権利オブジェクトの対応する場所と、を表示しており、前記権利オブジェクトナビゲーションファイルは、前記少なくとも1つの権利オブジェクト記憶ファイル内の1つ又はそれ以上の場所が有効な権利オブジェクトを保有しているか否かを示す情報を保有している、不揮発性コンピュータ読取可能媒体。   A non-volatile computer-readable medium storing a rights object navigation mechanism, the mechanism comprising a rights object navigation file and at least one rights object storage file, each rights object storage file having its rights object Holding a plurality of rights objects in corresponding locations in the storage file, said rights objects being used for a corresponding one of a plurality of content files and / or access to the file, The content file includes a header portion, and the information of each header portion of the content file includes one of the rights object storage file in which the corresponding rights object is placed, and the rights object storage file The rights object navigation file displays whether or not one or more locations in the at least one rights object storage file contain valid rights objects. A non-volatile computer-readable medium having information indicating the above. 前記媒体は、メモリカード内の不揮発性フラッシュメモリセルを備えている、請求項39に記載の媒体。   40. The medium of claim 39, wherein the medium comprises non-volatile flash memory cells in a memory card. 前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記少なくとも1つの権利オブジェクト記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されており、前記権利オブジェクトナビゲーションファイルは、前記少なくとも1つの保護されていない領域に記憶されている、請求項39に記載の媒体。   The medium comprises at least one protected area and at least one unprotected area, the protected area being accessible only to authenticated users, and the at least one right 40. The medium of claim 39, wherein an object storage file is stored in the at least one protected area, and the rights object navigation file is stored in the at least one unprotected area. 少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、権利オブジェクトナビゲーション機構を記憶している、不揮発性コンピュータ読取可能媒体にであって、前記機構は、
権利オブジェクトナビゲーションファイルと少なくとも1つの権利オブジェクト記憶ファイルであって、各権利オブジェクト記憶ファイルは、その権利オブジェクト記憶ファイル内の対応する場所に複数の暗号化された権利オブジェクトを保有しており、前記権利オブジェクトのそれぞれは、複数のコンテンツファイルの対応する1つの使用及び/又は同ファイルへのアクセスを制御する、権利オブジェクトナビゲーションファイルと少なくとも1つの権利オブジェクト記憶ファイルと、
前記媒体の前記少なくとも1つの保護されていない領域の、前記複数のコンテンツファイルの一覧と前記権利オブジェクトナビゲーションファイルを保有しているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の、前記少なくとも1つの権利オブジェクト記憶ファイル内の権利オブジェクトの一覧を保有しているディレクトリを備えている、第2ディレクトリと、を備えており、前記2つのディレクトリツリーは互い鏡像関係となる構造を有している、不揮発性コンピュータ読取媒体。
A non-volatile computer readable medium comprising at least one protected area and at least one unprotected area and storing a rights object navigation mechanism, the mechanism comprising:
A rights object navigation file and at least one rights object storage file, each rights object storage file having a plurality of encrypted rights objects at corresponding locations in the rights object storage file, Each of the objects includes a rights object navigation file and at least one rights object storage file that control a corresponding use and / or access to the plurality of content files,
A first directory tree comprising a directory holding the list of the plurality of content files and the rights object navigation file of the at least one unprotected area of the medium;
A second directory comprising a directory holding a list of rights objects in the at least one rights object storage file of the at least one protected area of the medium; and A non-volatile computer-readable medium in which two directory trees have a structure that is a mirror image of each other.
記憶装置の保護されている領域の権利オブジェクト記憶ファイル内の権利オブジェクトを使用して、コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するコンピュータプログラムを記憶しているコンピュータ読取可能媒体であって、前記コンテンツファイルは、前記権利オブジェクト記憶ファイル内の、前記コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するための前記権利オブジェクトへのアクセス経路を示す権利オブジェクトナビゲーション情報を保有しており、前記コンピュータプログラムは、
前記権利オブジェクトナビゲーション情報を前記コンテンツファイルから取り出し、
前記権利オブジェクトナビゲーション情報から、前記記憶装置の前記保護されている領域の前記権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている場所を導き出し、
前記導き出された場所を使用して、前記記憶媒体の前記保護されている領域の前記権利オブジェクト記憶ファイルから前記権利オブジェクトを取得し、
前記権利オブジェクトに従って、前記コンテンツファイルを使用及び/又は同ファイルにアクセスする、コンピュータ読取可能媒体。
A computer readable medium storing a computer program for controlling the use of and / or access to a content file using a rights object in a rights object storage file of a protected area of a storage device. The content file has rights object navigation information indicating an access path to the rights object for controlling use of the content file and / or access to the content file in the rights object storage file. And the computer program is
Retrieving the rights object navigation information from the content file;
Deriving from the rights object navigation information the location where the rights object is stored in the rights object storage file of the protected area of the storage device;
Using the derived location to obtain the rights object from the rights object storage file of the protected area of the storage medium;
A computer readable medium for using and / or accessing the content file according to the rights object.
前記コンピュータプログラムは、それぞれが権利オブジェクトを記憶するためのm個の場所を有する複数の権利オブジェクト記憶ファイルを使用しており、前記権利オブジェクトナビゲーション情報は、インデクスを備えており、前記コンピュータプログラムは、前記インデクスをmで割り、商を取得して、前記商の前記整数部分と等しい整数を取得すると共に前記商の前記余り部分と等しいオフセットを取得することにより、前記複数の権利オブジェクト記憶ファイルの中のどの1つが、前記権利オブジェクトを記憶しているかと、その権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている場所とを見つける、請求項43に記載の媒体。   The computer program uses a plurality of rights object storage files each having m locations for storing rights objects, the rights object navigation information includes an index, and the computer program includes: By dividing the index by m, obtaining a quotient, obtaining an integer equal to the integer portion of the quotient and obtaining an offset equal to the remainder portion of the quotient, the plurality of rights object storage files 44. The medium of claim 43, wherein one of the: finds the rights object and where in the rights object storage file the rights object is stored. 前記整数は、前記1つ又はそれ以上の権利オブジェクト記憶ファイルの中のどの1つが、前記権利オブジェクトを記憶しているかを示しており、前記オフセットは、その権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている前記場所を示している、請求項44に記載の媒体。   The integer indicates which one of the one or more rights object storage files stores the rights object, and the offset is the rights object in the rights object storage file. 45. The medium of claim 44, wherein the medium indicates the location where it is stored. 前記記憶装置は、保護されていない領域を備えており、前記コンピュータプログラムは、更に、前記保護されていない領域内の或る場所へのアクセス経路を、前記保護されている領域にアクセスするためのアクセス経路に変換する、請求項43に記載の媒体。   The storage device includes an unprotected area, and the computer program further accesses an access path to a certain location in the unprotected area to the protected area. 44. The medium of claim 43, wherein the medium is converted to an access path. 前記記憶装置は、
前記媒体の前記保護されていない領域の、前記複数のコンテンツファイルの一覧と権利オブジェクトナビゲーションファイルを備えているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の第、1つ又はそれ以上の権利オブジェクト記憶ファイルを備えているディレクトリを備えている第2ディレクトリツリーと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係となる構造を有しており、
前記コンピュータプログラムは、前記2つのディレクトリツリーを使用して、前記保護されていない領域の或る場所にアクセスするためのアクセス経路を、前記権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている前記場所にアクセスするためのアクセス経路に変換する、請求項46に記載の媒体。
The storage device
A first directory tree comprising a directory comprising a list of the plurality of content files and a rights object navigation file of the unprotected area of the medium;
A second directory tree comprising a directory comprising a first or more rights object storage files of the at least one protected area of the medium, the two directory trees Have structures that are mirror images of each other,
The computer program uses the two directory trees to store an access path for accessing a certain location in the unprotected area, in which the rights object is stored in the rights object storage file. 47. The medium of claim 46, wherein the medium is converted into an access path for accessing the location.
前記媒体は、前記記憶装置の一部である、請求項43に記載の媒体。   44. The medium of claim 43, wherein the medium is part of the storage device. キー記憶ファイル内に記憶され、且つ、コンテンツファイルを暗号化/暗号解読するのに使用される暗号化/暗号解読キーを、無効にするためのコンピュータプログラムを記憶しているコンピュータ読取可能媒体であって、前記コンテンツファイルは、前記キー記憶ファイル内に記憶された前記キーが有効か否かを示す状態情報を保有しているキーナビゲーションファイルを用いて、前記キー記憶ファイル内の前記キーの前記場所を示す場所情報を保有しているヘッダー部分を備え、前記コンピュータプログラムは、
前記コンテンツファイルの前記ヘッダ部分から、前記キーファイル内の前記キーの場所情報を取得し、
前記場所情報を使用して、前記キーナビゲーションファイル内の前記キーの前記状態情報を突き止め、
前記キーナビゲーションファイル内の前記キーの前記状態情報を変更して、前記キーが無効であることを表示する、コンピュータ読取可能媒体。
A computer readable medium storing a computer program for invalidating an encryption / decryption key stored in a key storage file and used to encrypt / decrypt a content file. The content file uses the key navigation file that holds state information indicating whether the key stored in the key storage file is valid or not, and the location of the key in the key storage file. Including a header portion holding location information indicating the computer program,
Obtaining the key location information in the key file from the header portion of the content file;
Using the location information to locate the state information of the key in the key navigation file;
A computer readable medium that changes the status information of the key in the key navigation file to indicate that the key is invalid.
複数のキー記憶ファイルは、1つ又はそれ以上のコンテンツファイルを保護するためのキーを記憶するのに使用され、前記キーナビゲーションファイルは、前記複数のキー記憶ファイル内に記憶されている前記キーが有効であるか否かを示す状態情報を保有しており、前記場所情報は、更に、キー記憶ファイルの中のどの1つのファイルが、無効にされるべき前記キーを保有しているかを示している、請求項49に記載の媒体。   A plurality of key storage files are used to store keys for protecting one or more content files, and the key navigation file includes the keys stored in the plurality of key storage files. Status information indicating whether it is valid, and the location information further indicates which one of the key storage files contains the key to be invalidated. 50. The medium of claim 49. 前記キーナビゲーションファイルと前記キー記憶ファイルは、記憶装置に記憶されており、前記装置は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記キー記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されているので、前記キー記憶ファイル内の前記キーは、前記少なくとも1つの保護されている領域にアクセスすること無しに、無効であると表示される、請求項49に記載の媒体。   The key navigation file and the key storage file are stored in a storage device, the device comprising at least one protected area and at least one unprotected area, the at least one protection And the key storage file is stored in the at least one protected area, so that the key in the key storage file is stored in the key storage file. 50. The medium of claim 49, displayed as invalid without accessing at least one protected area. 権利オブジェクト記憶ファイル内に記憶され、且つ、コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するのに使用される権利オブジェクトを、無効にするためのコンピュータプログラムを記憶しているコンピュータ読取可能媒体であって、前記コンテンツファイルは、前記権利オブジェクト記憶ファイル内に記憶された権利オブジェクトが有効であるか否かを示す状態情報を保有している前記権利オブジェクトナビゲーションファイルを用いて、前記権利オブジェクト記憶ファイル内の前記権利オブジェクトの前記場所を示す場所情報を保有しているヘッダー部分を備え、前記コンピュータプログラムは、
前記コンテンツファイルの前記ヘッダ部分から、前記権利オブジェクトファイル内の前記権利オブジェクトの場所情報を取得し、
前記場所情報を使用して、前記権利オブジェクトナビゲーションファイル内の前記権利オブジェクトの前記状態情報を突き止め、
前記権利オブジェクトナビゲーションファイル内の前記権利オブジェクトの前記状態情報を変更して、前記権利オブジェクトが無効であることを表示する、コンピュータ読取可能媒体。
A computer readable storing a computer program for invalidating a rights object stored in a rights object storage file and used to control the use and / or access to the content file The content file is a medium that uses the rights object navigation file having status information indicating whether or not the rights object stored in the rights object storage file is valid. A header portion holding location information indicating the location of the rights object in a storage file;
Obtaining the location information of the rights object in the rights object file from the header portion of the content file;
Using the location information to locate the status information of the rights object in the rights object navigation file;
A computer readable medium for changing the status information of the rights object in the rights object navigation file to indicate that the rights object is invalid.
複数の権利オブジェクト記憶ファイルは、1つ又はそれ以上のコンテンツファイルを保護するための権利オブジェクトを記憶するのに使用され、前記権利オブジェクトナビゲーションファイルは、前記複数の権利オブジェクト記憶ファイル内に記憶されている前記権利オブジェクトが有効であるか否かを示す状態情報を保有しており、前記場所情報は、更に、権利オブジェクト記憶ファイルの中のどの1つが、無効にされるべき前記権利オブジェクトを保有しているかを表示する、請求項52に記載の媒体。   A plurality of rights object storage files are used to store rights objects for protecting one or more content files, and the rights object navigation file is stored in the plurality of rights object storage files. State information indicating whether the rights object is valid or not, and the location information further holds which one of the rights object storage files contains the rights object to be invalidated. 54. The medium of claim 52, wherein the medium is displayed. 前記権利オブジェクトナビゲーションファイルと前記権利オブジェクト記憶ファイルは、記憶装置に記憶されており、前記装置は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記権利オブジェクト記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されているので、前記権利オブジェクト記憶ファイル内の前記権利オブジェクトは、前記少なくとも1つの保護されている領域にアクセスすること無しには、無効であると表示される、請求項52に記載の媒体。   The rights object navigation file and the rights object storage file are stored in a storage device, the device comprising at least one protected area and at least one unprotected area, the at least one Since one protected area is accessible only to authorized users and the rights object storage file is stored in the at least one protected area, the rights object storage file 53. The medium of claim 52, wherein a rights object is displayed as invalid without accessing the at least one protected area. キーナビゲーションファイルと1つ又はそれ以上のキー記憶ファイルを使用して、コンテンツファイルを暗号化/暗号解読するための方法であって、前記キーナビゲーションファイル内の前記エントリのそれぞれは、前記1つ又はそれ以上のキー記憶ファイル内の複数の暗号化/暗号解読キーの1つを記憶するための場所に対応し、
キーナビゲーションファイルを開く段階と、
前記キーナビゲーションファイル内で、前記1つ又はそれ以上のキー記憶ファイル内の有効キーの場所に対応していないエントリを見つける段階と、
暗号化/暗号解読キーを生成する段階と、
前記暗号化/暗号解読キーを用いて前記コンテンツファイルを暗号化/暗号解読する段階と、
前記暗号化/暗号解読キーを、前記キー記憶ファイルの中の1つの、前記エントリに対応している前記場所に記憶する段階と、から成る方法。
A method for encrypting / decrypting a content file using a key navigation file and one or more key storage files, wherein each of the entries in the key navigation file is the one or Corresponds to a location for storing one of a plurality of encryption / decryption keys in a further key storage file;
Opening the key navigation file;
Finding an entry in the key navigation file that does not correspond to a valid key location in the one or more key storage files;
Generating an encryption / decryption key;
Encrypting / decrypting the content file using the encryption / decryption key;
Storing the encryption / decryption key in one of the key storage files at the location corresponding to the entry.
前記方法は、前記キーナビゲーションファイル内の前記エントリの場所から、前記コンテンツファイル用のキーナビゲーション情報を取得する段階を更に含んでいる、請求項55に記載の方法。   56. The method of claim 55, further comprising obtaining key navigation information for the content file from the location of the entry in the key navigation file. 前記方法は、それぞれがm個のエントリを有する複数のキー記憶ファイルを使用しており、前記キーナビゲーション情報は、前記キーナビゲーションファイル内の各エントリ毎に異なる値を有するインデクスを備えており、前記方法は、前記1つ又はそれ以上のキー記憶ファイル内の、前記暗号化/暗号解読キーを記憶するための前記エントリに対応する場所を見つける段階を更に含んでおり、前記見つける段階は、前記インデクスをmで割り、商を取得して、前記商の前記整数部分と等しい整数を取得すると共に前記商の余り部分と等しいオフセットを取得する段階を含んでいる、請求項56に記載の方法。   The method uses a plurality of key storage files each having m entries, and the key navigation information comprises an index having a different value for each entry in the key navigation file, The method further includes finding a location in the one or more key storage files corresponding to the entry for storing the encryption / decryption key, the finding step comprising: 57. The method of claim 56, comprising: dividing m by m to obtain a quotient to obtain an integer equal to the integer portion of the quotient and an offset equal to a remainder portion of the quotient. 前記整数は、前記1つ又はそれ以上のキー記憶ファイルのどの1つに、前記暗号化/暗号解読キーが前記記憶する段階により記憶されることになるかを示しており、前記オフセットは、そのキー記憶ファイル内の、前記暗号化/暗号解読キーが前記記憶する段階により記憶されることになる前記場所を示している、請求項57に記載の方法。   The integer indicates in which one or more of the one or more key storage files the encryption / decryption key will be stored by the storing step, and the offset is 58. The method of claim 57, wherein the encryption / decryption key in a key storage file indicates the location where the storing step will store it. 前記インデクスを前記暗号化/暗号解読されたコンテンツファイルのヘッダに挿入する段階を更に含んでいる、請求項57に記載の方法。   58. The method of claim 57, further comprising inserting the index into a header of the encrypted / decrypted content file. 前記キーナビゲーションファイル内の前記エントリを、それが前記少なくとも1つのキー記憶ファイル内の有効キーに対応するように変更する段階を更に備えている、請求項55に記載の方法。   56. The method of claim 55, further comprising modifying the entry in the key navigation file so that it corresponds to a valid key in the at least one key storage file. 前記キーナビゲーションファイルと前記1つ又はそれ以上のキー記憶ファイルは、記憶媒体に記憶されており、前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記1つ又はそれ以上のキー記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されているので、前記記憶する段階では、前記暗号化/暗号解読キーを前記少なくとも1つの保護されている領域に記憶する、請求項55に記載の方法。
The key navigation file and the one or more key storage files are stored on a storage medium, the medium comprising at least one protected area and at least one unprotected area. The at least one protected area is accessible only to authorized users and the one or more key storage files are stored in the at least one protected area 56. The method of claim 55, wherein the storing step stores the encryption / decryption key in the at least one protected area.
前記暗号化/暗号解読キーを記憶するための、前記エントリに対応する前記場所を保有している前記1つのキー記憶ファイルへのアクセス経路を構築する段階を更に含んでいる、請求項55に記載の方法。   56. The method of claim 55, further comprising establishing an access path to the one key storage file holding the location corresponding to the entry for storing the encryption / decryption key. the method of. 前記構築する段階は、前記キーナビゲーション情報からキーファイル名を形成する段階を含んでいる、請求項62に記載の方法。   The method of claim 62, wherein the building includes forming a key file name from the key navigation information. 前記キーナビゲーションファイルと前記1つ又はそれ以上のキー記憶ファイルは、記憶媒体に記憶されており、前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記1つ又はそれ以上のキー記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されており、前記構築する段階は、前記ファイル名から、前記少なくとも1つの保護されている領域の前記1つのキー記憶ファイルへのアクセス経路を導き出す段階を更に含んでいる、請求項63に記載の方法。   The key navigation file and the one or more key storage files are stored on a storage medium, the medium comprising at least one protected area and at least one unprotected area. The protected area is accessible only to authorized users, and the one or more key storage files are stored in the at least one protected area and are constructed 64. The method of claim 63, wherein the step further comprises deriving an access path from the file name to the one key storage file of the at least one protected area. 前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記構築する段階は、前記少なくとも1つの保護されていない領域内の或る場所へのアクセス経路を、前記少なくとも1つの保護されている領域へアクセスするためのアクセス経路に変換する、請求項62に記載の方法。   The medium comprises at least one protected area and at least one unprotected area, and the building step comprises an access path to a location within the at least one unprotected area 64. The method of claim 62, wherein the method converts an access path to access the at least one protected area. 前記媒体は、
前記媒体の前記少なくとも1つの保護されていない領域の、前記複数のコンテンツファイルの一覧と前記キーナビゲーションファイルを備えているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の、前記1つ又はそれ以上のキー記憶ファイルを備えているディレクトリを備えている、第2ディレクトリツリーと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係にあり、
前記変換する段階では、前記2つのディレクトリツリーを使用して、前記保護されていない領域内の或る場所にアクセスするためのアクセス経路を、前記保護されている領域の前記1つのキー記憶ファイル内の前記場所にアクセスするためのアクセス経路に変換する、請求項65に記載の方法。
The medium is
A first directory tree comprising a directory comprising the list of the plurality of content files and the key navigation file of the at least one unprotected area of the medium;
A second directory tree comprising a directory comprising the one or more key storage files of the at least one protected area of the medium, the two directory trees Are mirror images of each other,
In the converting step, using the two directory trees, an access path for accessing a certain place in the unprotected area is set in the one key storage file of the protected area. 66. The method of claim 65, wherein the method converts to an access path for accessing the location.
記憶媒体の保護されている領域のキー記憶ファイル内の暗号解読/暗号化キーを使用して、コンテンツファイルを暗号解読/暗号化するための方法であって、前記コンテンツファイルは、前記キー記憶ファイル内の、前記コンテンツファイルを暗号解読/暗号化するための前記暗号解読/暗号化キーの場所を示すキーナビゲーション情報を保有しており、
前記コンテンツファイルから前記キーナビゲーション情報を取り出す段階と、
前記キーナビゲーション情報から、前記記憶装置の前記保護されている領域の前記キー記憶ファイル内の、前記暗号化/暗号解読キーが記憶されている場所を導き出す段階と、
前記導き出された場所を使用して、前記記憶媒体の前記保護されている領域の前記キー記憶ファイルから前記暗号化/暗号解読キーを取得する段階と、
前記暗号化/暗号解読キーを使用して、前記コンテンツファイルを暗号化/暗号解読する段階と、から成る方法。
A method for decrypting / encrypting a content file using a decryption / encryption key in a key storage file of a protected area of a storage medium, wherein the content file is the key storage file The key navigation information indicating the location of the decryption / encryption key for decrypting / encrypting the content file,
Retrieving the key navigation information from the content file;
Deriving from the key navigation information a location in the key storage file of the protected area of the storage device where the encryption / decryption key is stored;
Obtaining the encryption / decryption key from the key storage file of the protected area of the storage medium using the derived location;
Encrypting / decrypting the content file using the encryption / decryption key.
前記方法は、それぞれがキーを記憶するためのm個の場所を有する複数のキー記憶ファイルを使用しており、前記キーナビゲーション情報は、インデクスを備えており、前記方法は、前記インデクスをmで割り、商を取得して、前記商の前記整数部分と等しい整数を取得すると共に前記商の余り部分と等しいオフセットを取得することにより、前記複数のキー記憶ファイルのどの1つのファイルが、前記暗号解読/暗号化キーを記憶しているかと、そのキー記憶ファイル内の、前記暗号解読/暗号化キーが記憶されている前記場所と、を見つける段階を更に含んでいる、請求項67に記載の方法。   The method uses a plurality of key storage files each having m locations for storing keys, the key navigation information comprises an index, and the method includes the index in m By dividing and obtaining the quotient, obtaining an integer equal to the integer part of the quotient and obtaining an offset equal to the remainder part of the quotient, any one of the plurality of key storage files is the encrypted file. 68. The method of claim 67, further comprising: finding a decryption / encryption key and the location in the key storage file where the decryption / encryption key is stored. Method. 前記整数は、前記1つ又はそれ以上のキー記憶ファイルのどの1つが、前記暗号解読/暗号化キーを記憶しているかを示ししており、前記オフセットは、そのキー記憶ファイル内の、前記暗号解読/暗号化キーが記憶されている前記場所を示している、請求項68に記載の方法。   The integer indicates which one of the one or more key storage files stores the decryption / encryption key, and the offset is the encryption in the key storage file. 69. The method of claim 68, wherein the location where a decryption / encryption key is stored is indicated. 前記媒体は、保護されていない領域を備えており、前記導き出す段階では、前記保護されていない領域内の或る場所へのアクセス経路を、前記保護されている領域にアクセスするためのアクセス経路に変換する、請求項67に記載の方法。   The medium includes an unprotected area, and in the deriving step, an access path to a certain place in the unprotected area is changed to an access path for accessing the protected area. 68. The method of claim 67, wherein the conversion is performed. 前記媒体は、
前記媒体の前記保護されていない領域の、前記複数のコンテンツファイルの一覧と少なくとも1つのキーナビゲーションファイルを備えているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の、1つ又はそれ以上のキー記憶ファイルを備えているディレクトリを備えている、第2ディレクトリツリーと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係にある構造を有しており、
前記変換する段階は、前記2つのディレクトリツリーを使用して、前記保護されていない領域の或る場所にアクセスするためのアクセス経路を、前記キー記憶ファイル内の、前記暗号解読/暗号化が記憶されている前記場所にアクセスするための前記アクセス経路に変換する、請求項70に記載の方法。
The medium is
A first directory tree comprising a directory comprising a list of the plurality of content files and at least one key navigation file of the unprotected area of the medium;
A second directory tree comprising a directory comprising one or more key storage files of the at least one protected area of the medium, wherein the two directory trees are Have structures that are mirror images of each other,
The converting step uses the two directory trees to store an access path for accessing a location in the unprotected area by the decryption / encryption in the key storage file. 71. The method of claim 70, wherein the method translates to the access path for accessing the location being accessed.
コンテンツファイルを暗号化/暗号解読するための方法であって、
キーナビゲーションファイルが存在していない場合には、そのファイルを作成する段階と、
少なくとも1つのキー記憶ファイルが存在していない場合には、少なくとも1つのそのファイルを作成する段階であって、前記キーナビゲーションファイル内のエントリのそれぞれは、前記少なくとも1つのキー記憶ファイル内の、複数の暗号化/暗号解読キーの1つを記憶するための場所に対応している、キー記憶ファイルを作成する段階と、
前記キーナビゲーションファイル内に、前記少なくとも1つのキー記憶ファイル内の有効キーに対応していないエントリを見つける段階と、
前記キーナビゲーションファイル内の前記エントリの場所から、前記コンテンツファイルのキーナビゲーション情報を取得する段階と、
暗号化/暗号解読キーを生成する段階と、
前記暗号化/暗号解読キーを用いて、前記コンテンツファイルを暗号化/暗号解読する段階と、
前記暗号化/暗号解読キーを、前記エントリに対応する前記少なくとも1つのキー記憶ファイル内の場所に記憶する段階と、から成る方法。
A method for encrypting / decrypting a content file, comprising:
If the key navigation file does not exist, create the file,
If at least one key storage file does not exist, creating at least one of the files, wherein each of the entries in the key navigation file includes a plurality of entries in the at least one key storage file; Creating a key storage file corresponding to a location for storing one of the encryption / decryption keys of
Finding an entry in the key navigation file that does not correspond to a valid key in the at least one key storage file;
Obtaining key navigation information of the content file from the location of the entry in the key navigation file;
Generating an encryption / decryption key;
Using the encryption / decryption key to encrypt / decrypt the content file;
Storing the encryption / decryption key in a location in the at least one key storage file corresponding to the entry.
権利オブジェクトナビゲーションファイルと1つ又はそれ以上の権利オブジェクト記憶ファイルを使用して、コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するための方法であって、前記権利オブジェクトナビゲーションファイル内のエントリのそれぞれは、前記1つ又はそれ以上の権利オブジェクト記憶ファイル内の、複数の権利オブジェクトの1つを記憶するための場所に対応しており、
前記権利オブジェクトナビゲーションファイルを開く段階と、
前記権利オブジェクトナビゲーションファイル内に、前記1つ又はそれ以上の権利オブジェクト記憶ファイル内の、有効な権利オブジェクトの場所に対応していないエントリを見つける段階と、
権利オブジェクトを取得する段階と、
前記権利オブジェクトに従って前記コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御する段階と、
前記権利オブジェクトを、前記権利オブジェクト記憶ファイルの中の前記1つの、前記エントリに対応している場所に記憶する段階と、から成る方法。
A method for controlling the use of and / or access to a content file using a rights object navigation file and one or more rights object storage files, the entries in the rights object navigation file Each corresponds to a location for storing one of a plurality of rights objects in the one or more rights object storage files;
Opening the rights object navigation file;
Finding an entry in the rights object navigation file that does not correspond to a valid rights object location in the one or more rights object storage files;
Obtaining a rights object;
Controlling the use of and / or access to the content file according to the rights object;
Storing the rights object at a location corresponding to the entry in the rights object storage file.
前記方法は、前記権利オブジェクトナビゲーションファイル内の前記エントリの場所から、前記コンテンツファイルの権利オブジェクトナビゲーション情報を取得する段階を更に含んでいる、請求項73に記載の方法。   74. The method of claim 73, wherein the method further comprises obtaining rights object navigation information of the content file from a location of the entry in the rights object navigation file. 前記方法は、それぞれがm個のエントリ有する複数の権利オブジェクト記憶ファイルを使用しており、前記権利オブジェクトナビゲーション情報は、前記権利オブジェクトナビゲーションファイル内の各エントリ毎に異なる値を有するインデクスを備えており、前記方法は、前記1つ又はそれ以上の権利オブジェクト記憶ファイル内に、前記権利オブジェクトを記憶するための前記エントリに対応する前記場所を見つける段階を更に含んでおり、前記見つける段階は、前記インデクスをmで割り、商を取得して、前記商の前記整数部分と等しい整数を取得すると共に前記商の余り部分と等しいオフセットを取得する段階を含んでいる、請求項74に記載の方法。   The method uses a plurality of rights object storage files each having m entries, and the rights object navigation information includes an index having a different value for each entry in the rights object navigation file. The method further comprises locating the location corresponding to the entry for storing the rights object in the one or more rights object storage files, wherein the finding step comprises the index. 75. The method of claim 74, comprising: dividing m by m to obtain a quotient to obtain an integer equal to the integer portion of the quotient and an offset equal to a remainder portion of the quotient. 前記整数は、前記1つ又はそれ以上の権利オブジェクト記憶ファイルの中のどの1つに、前記権利オブジェクトが前記記憶する段階により記憶されることになるかを示しており、前記オフセットは、その権利オブジェクト記憶ファイル内の、前記権利オブジェクトが前記記憶する段階により記憶されることになる前記場所を示している、請求項75に記載の方法。   The integer indicates in which one or more of the rights object storage files the rights object will be stored by the storing step, and the offset is the rights 76. The method of claim 75, wherein the rights object in the object storage file indicates the location where the storing step is to be stored. 前記インデクスを前記コンテンツファイルのヘッダに挿入する段階を更に含んでいる、請求項75に記載の方法。   76. The method of claim 75, further comprising inserting the index into a header of the content file. 前記権利オブジェクトナビゲーションファイ内の前記エントリを、それが前記少なくとも1つの権利オブジェクト記憶ファイル内の有効な権利オブジェクトに対応するように変更する段階を更に備えている、請求項73に記載の方法。   74. The method of claim 73, further comprising modifying the entry in the rights object navigation file so that it corresponds to a valid rights object in the at least one rights object storage file. 前記権利オブジェクトナビゲーションファイルと前記1つ又はそれ以上の権利オブジェクト記憶ファイルは、記憶媒体に記憶されており、前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記1つ又はそれ以上の権利オブジェクト記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されているので、前記記憶する段階では、前記権利オブジェクトを前記少なくとも1つの保護されている領域に記憶する、請求項73に記載の方法。   The rights object navigation file and the one or more rights object storage files are stored on a storage medium, the medium comprising at least one protected area and at least one unprotected area. The at least one protected area is accessible only to authorized users, and the one or more rights object storage files are stored in the at least one protected area. 74. The method of claim 73, wherein the storing step stores the rights object in the at least one protected area. 前記権利オブジェクトを記憶するための、前記エントリに対応する前記場所を保有している前記1つの権利オブジェクト記憶ファイルへのアクセス経路を構築する段階を更に含んでいる、請求項73に記載の方法。   74. The method of claim 73, further comprising building an access path to the one rights object storage file that holds the location corresponding to the entry for storing the rights object. 前記構築する段階は、前記権利オブジェクトナビゲーション情報から権利オブジェクトファイル名を形成する段階を含んでいる、請求項80に記載の方法。   81. The method of claim 80, wherein the building comprises forming a rights object file name from the rights object navigation information. 前記権利オブジェクトナビゲーションファイルと前記1つ又はそれ以上の権利オブジェクト記憶ファイルは、記憶媒体内に記憶されており、前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記1つ又はそれ以上の権利オブジェクト記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されており、前記構築する段階は、前記ファイル名から、前記少なくとも1つの保護されている領域の前記1つの権利オブジェクト記憶ファイルへのアクセス経路を導き出す段階を更に含んでいる、請求項81に記載の方法。   The rights object navigation file and the one or more rights object storage files are stored in a storage medium, the medium comprising at least one protected area and at least one unprotected area. The protected area is accessible only to authorized users, and the one or more rights object storage files are stored in the at least one protected area. 83. The method of claim 81, wherein the building further comprises deriving an access path from the file name to the one rights object storage file of the at least one protected area. 前記媒体は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記構築する段階は、前記少なくとも1つの保護されていない領域内の或る場所へのアクセス経路を、前記少なくとも1つの保護されている領域へアクセスするためのアクセス経路に変換する、請求項80に記載の方法。   The medium comprises at least one protected area and at least one unprotected area, and the building step comprises an access path to a location within the at least one unprotected area 81. The method of claim 80, wherein the method is converted to an access path for accessing the at least one protected area. 前記媒体は、
前記媒体の前記少なくとも1つの保護されていない領域の、前記複数のコンテンツファイルの一覧と前記権利オブジェクトナビゲーションファイルを備えているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の少なくとも1つの保護されている領域の、前記1つ又はそれ以上の権利オブジェクト記憶ファイルを備えているディレクトリを備えている、第2ディレクトリツリーと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係にあり、
前記変換する段階では、前記2つのディレクトリツリーを使用して、前記保護されていない領域の或る場所にアクセスするためのアクセス経路を、前記保護されている領域の前記1つの権利オブジェクト記憶ファイル内の前記場所にアクセスするためのアクセス経路に変換する、請求項83に記載の方法。
The medium is
A first directory tree comprising a directory comprising the list of the plurality of content files and the rights object navigation file of the at least one unprotected area of the medium;
A second directory tree comprising a directory comprising the one or more rights object storage files of at least one protected area of the medium, the two directory trees Are mirror images of each other,
In the converting step, an access path for accessing a location in the unprotected area using the two directory trees is stored in the one rights object storage file in the protected area. 84. The method of claim 83, wherein the method translates to an access path for accessing the location.
前記取得する段階は、前記権利オブジェクトを生成する段階を含んでいる、請求項73に記載の方法。   74. The method of claim 73, wherein the obtaining comprises creating the rights object. 前記取得する段階は、前記権利オブジェクトをダウンロードする段階を含んでいる、請求項73に記載の方法。   The method of claim 73, wherein the obtaining includes downloading the rights object. キーを生成する段階と、生成された前記キーを使用して前記コンテンツファイルを暗号化する段階を更に含んでいる、請求項86に記載の方法。   87. The method of claim 86, further comprising generating a key and encrypting the content file using the generated key. 前記権利オブジェクトからのキーを使用して前記コンテンツファイルを暗号解読する段階を更に含んでおり、前記暗号化する段階は、前記暗号解読する段階の後に起こる、請求項87に記載の方法。   88. The method of claim 87, further comprising decrypting the content file using a key from the rights object, wherein the encrypting step occurs after the decrypting step. 前記権利オブジェクト内のキーを前記生成されたキーで置き換える段階を更に含んでいる、請求項87に記載の方法。   88. The method of claim 87, further comprising replacing a key in the rights object with the generated key. 前記暗号化する段階は、前記権利オブジェクト内のキーを用いて既に暗号化されている前記コンテンツファイルを暗号化する、請求項87に記載の方法。   88. The method of claim 87, wherein the encrypting step encrypts the content file that has already been encrypted using a key in the rights object. 前記生成されたキーを、前記権利オブジェクト内に記憶する段階を更に備えている、請求項90に記載の方法。   The method of claim 90, further comprising storing the generated key in the rights object. 記憶媒体の保護されている領域の権利オブジェクト記憶ファイル内の権利オブジェクトを使用して、コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するための方法であって、前記コンテンツファイルは、前記権利オブジェクト記憶ファイル内の、前記コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するための前記権利オブジェクトの場所を示す権利オブジェクトナビゲーション情報を保有しており、
前記コンテンツファイルから前記権利オブジェクトナビゲーション情報を取り出す段階と、
前記権利オブジェクトナビゲーション情報から、前記記憶装置の前記保護されている領域の前記権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている前記場所を導き出す段階と、
前記導き出された場所を使用して、前記記憶媒体の前記保護されている領域の前記権利オブジェクト記憶ファイルから前記権利オブジェクトを取得する段階と、
前記権利オブジェクトに従って、前記コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御する段階と、から成る方法。
A method for controlling the use and / or access of a content file using a rights object in a rights object storage file of a protected area of a storage medium, the content file comprising: Possessing rights object navigation information indicating the location of the rights object for controlling use of and / or access to the content file in the rights object storage file;
Retrieving the rights object navigation information from the content file;
Deriving from the rights object navigation information the location where the rights object is stored in the rights object storage file of the protected area of the storage device;
Obtaining the rights object from the rights object storage file of the protected area of the storage medium using the derived location;
Controlling the use of and / or access to the content file according to the rights object.
前記方法は、それぞれが権利オブジェクトを記憶するためのm個の場所を有する複数の権利オブジェクト記憶ファイルを使用しており、前記権利オブジェクトナビゲーション情報は、インデクスを備えており、前記方法は、前記インデクスをmで割り、商を取得して、前記商の整数部分と等しい整数を取得すると共に前記商の余り部分と等しいオフセットを取得することにより、前記複数の権利オブジェクト記憶ファイルのどの1つが、前記権利オブジェクトを記憶しているかと、その権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている場所と、を見つける段階を更に含んでいる、請求項92に記載の方法。   The method uses a plurality of rights object storage files each having m locations for storing rights objects, and the rights object navigation information comprises an index, and the method comprises the index Divide m by m to obtain a quotient to obtain an integer equal to the integer part of the quotient and an offset equal to the remainder of the quotient, so that any one of the plurality of rights object storage files 94. The method of claim 92, further comprising: finding a rights object and where in the rights object storage file the rights object is stored. 前記整数は、前記1つ又はそれ以上の権利オブジェクト記憶ファイルのどの1つが、前記権利オブジェクトを記憶しているかを示しており、前記オフセットは、その権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている前記場所を示している、請求項93に記載の方法。   The integer indicates which one of the one or more rights object storage files stores the rights object, and the offset is stored by the rights object in the rights object storage file. 94. The method of claim 93, wherein the location is indicated. 前記媒体は、保護されていない領域を備えており、前記導き出す段階は、更に、前記保護されていない領域内の或る場所へのアクセス経路を、前記保護されている領域にアクセスするためのアクセス経路に変換する、請求項92に記載の方法。   The medium includes an unprotected area, and the deriving step further includes an access path to a location in the unprotected area for accessing the protected area. 94. The method of claim 92, wherein the method converts to a path. 前記媒体は、
前記媒体の前記保護されていない領域の、前記複数のコンテンツファイルの一覧と権利オブジェクトナビゲーションファイルを備えているディレクトリを備えている、第1ディレクトリツリーと、
前記媒体の前記少なくとも1つの保護されている領域の、1つ又はそれ以上の権利オブジェクト記憶ファイルを備えているディレクトリを備えている、第2ディレクトリツリーと、を備えており、前記2つのディレクトリツリーは互いに鏡像関係にある構造を有しており、
前記変換する段階は、前記2つのディレクトリツリーを使用して、前記保護されていない領域の或る場所にアクセスするためのアクセス経路を、前記権利オブジェクト記憶ファイル内の、前記権利オブジェクトが記憶されている前記場所にアクセスするための前記アクセス経路に変換する、請求項95に記載の方法。
The medium is
A first directory tree comprising a directory comprising a list of the plurality of content files and a rights object navigation file of the unprotected area of the medium;
A second directory tree comprising a directory comprising one or more rights object storage files of the at least one protected area of the medium, the two directory trees Have structures that are mirror images of each other,
In the converting step, the rights object in the rights object storage file is stored in an access path for accessing a location in the unprotected area using the two directory trees. 96. The method of claim 95, wherein the method translates to the access path for accessing the location.
コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するための方法であって、
権利オブジェクトナビゲーションファイルを、それが存在していない場合には作成する段階と、
少なくとも1つの権利オブジェクト記憶ファイルを、それが存在していない場合には、作成する段階であって、前記権利オブジェクトナビゲーションファイル内のエントリのそれぞれは、前記少なくとも1つの権威オブジェクト記憶ファイル内の、複数の権利オブジェクトの1つを記憶するための場所に対応している、権利オブジェクト記憶ファイルを作成する段階と、
前記権利オブジェクトナビゲーションファイル内に、前記少なくとも1つの権利オブジェクト記憶ファイル内の有効な権利オブジェクトに対応していないエントリを見つける段階と、
前記権利オブジェクトナビゲーションファイル内の前記エントリの場所から、前記コンテンツファイルの権利オブジェクトナビゲーション情報を取得する段階と、
権利オブジェクトを生成する段階と、
前記権利オブジェクトに従って、前記コンテンツファイルの使用及び/又は同ファイルへのアクセスを制御する段階と、
前記権利オブジェクトを、前記エントリに対応する前記少なくとも1つの権利オブジェクト記憶ファイル内の場所に記憶する段階と、から成る方法。
A method for controlling use of and / or access to a content file comprising:
Creating a rights object navigation file if it does not exist;
Creating at least one rights object storage file if it does not exist, each of the entries in the rights object navigation file comprising a plurality of entries in the at least one authority object storage file; Creating a rights object storage file corresponding to a location for storing one of the rights objects;
Finding an entry in the rights object navigation file that does not correspond to a valid rights object in the at least one rights object storage file;
Obtaining rights object navigation information of the content file from the location of the entry in the rights object navigation file;
Creating a rights object;
Controlling the use of and / or access to the content file according to the rights object;
Storing the rights object in a location in the at least one rights object storage file corresponding to the entry.
キー記憶ファイルに記憶され、且つ、コンテンツファイルを暗号化/暗号解読するのに使用される、暗号化/暗号解読キーを無効にするための方法であって、前記コンテンツファイルは、前記キー記憶ファイル内に記憶されている前記キーが有効であるか否かを示す状態情報を保有しているキーナビゲーションファイルを用いて、前記キー記憶ファイル内の前記キーの前記場所を示す場所情報を保有しているヘッダー部分を備え、
前記コンテンツファイルの前記ヘッダ部分から、前記キーファイル内の前記キーの場所情報を取得する段階と、
前記場所情報を使用して、前記キーナビゲーションファイル内の前記キーの前記状態情報を突き止める段階と、
前記キーナビゲーションファイル内の前記キーの前記状態情報を変更して、前記キーが無効であると表示する段階と、から成る方法。
A method for invalidating an encryption / decryption key stored in a key storage file and used to encrypt / decrypt a content file, wherein the content file is the key storage file Using a key navigation file that holds state information indicating whether or not the key stored in the key is valid, holding location information indicating the location of the key in the key storage file With a header part that
Obtaining the key location information in the key file from the header portion of the content file;
Using the location information to locate the state information of the key in the key navigation file;
Changing the status information of the key in the key navigation file to indicate that the key is invalid.
前記キーナビゲーションファイルと前記キー記憶ファイルは、記憶装置に記憶されており、前記装置は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記キー記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されているので、前記少なくとも1つの保護されている領域にアクセスすること無しに、前記キー記憶ファイル内の前記キーは無効であると表示される、請求項98に記載の方法。   The key navigation file and the key storage file are stored in a storage device, the device comprising at least one protected area and at least one unprotected area, the at least one protection The authenticated area is accessible only to authorized users, and the key storage file is stored in the at least one protected area, so that the at least one protected area is accessed. 99. The method of claim 98, wherein, without doing so, the key in the key storage file is displayed as invalid. 権利オブジェクト記憶ファイル内に記憶されている権利オブジェクトであって、前記権利オブジェクト記憶ファイル内の前記権利オブジェクトの場所を示す場所情報を保有しているヘッダ部分を備えているコンテンツファイルの使用及び/又は同ファイルへのアクセスを制御するのに使用される権利オブジェクトを、前記権利オブジェクト記憶ファイル内に記憶されている前記権利オブジェクトが有効であるか否かを示す状態情報を保有している権利オブジェクトナビゲーションファイルを用いて、無効にするための方法において、
前記コンテンツファイルの前記ヘッダ部分から、前記権利オブジェクトファイル内の前記権利オブジェクトの場所情報を取得する段階と、
前記場所情報を使用して、前記権利オブジェクトナビゲーションファイル内の前記権利オブジェクトの前記状態情報の位置を見つける段階と、
前記権利オブジェクトナビゲーションファイル内の前記権利オブジェクトの前記状態情報を変更して、前記権利オブジェクトが無効であると表示する段階と、から成る方法。
Use of a content object that is stored in a rights object storage file and comprises a header portion that holds location information indicating the location of the rights object in the rights object storage file and / or Rights object navigation that holds status information indicating whether or not the rights object stored in the rights object storage file is valid as a rights object used to control access to the file In a way to invalidate using a file,
Obtaining location information of the rights object in the rights object file from the header portion of the content file;
Using the location information to find the position of the state information of the rights object in the rights object navigation file;
Changing the status information of the rights object in the rights object navigation file to indicate that the rights object is invalid.
前記権利オブジェクトナビゲーションファイルと前記権利オブジェクト記憶ファイルは、記憶装置に記憶されており、前記装置は、少なくとも1つの保護されている領域と少なくとも1つの保護されていない領域を備えており、前記少なくとも1つの保護されている領域は、認証されたユーザーだけがアクセス可能であり、前記権利オブジェクト記憶ファイルは、前記少なくとも1つの保護されている領域に記憶されているので、前記少なくとも1つの保護されている領域にアクセスすること無しには、前記権利オブジェクト記憶ファイル内の前記権利オブジェクトは無効であると表示される、請求項100に記載の方法。   The rights object navigation file and the rights object storage file are stored in a storage device, the device comprising at least one protected area and at least one unprotected area, the at least one The one protected area is accessible only to authorized users and the rights object storage file is stored in the at least one protected area, so the at least one protected area 101. The method of claim 100, wherein without accessing an area, the rights object in the rights object storage file is displayed as invalid.
JP2008541468A 2005-11-18 2006-11-15 Method and system for managing key and / or rights objects Withdrawn JP2009516961A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/283,225 US20070116288A1 (en) 2005-11-18 2005-11-18 System for managing keys and/or rights objects
US11/283,221 US8156563B2 (en) 2005-11-18 2005-11-18 Method for managing keys and/or rights objects
PCT/US2006/060928 WO2007094874A2 (en) 2005-11-18 2006-11-15 Method and system for managing keys and/or rights objects

Publications (1)

Publication Number Publication Date
JP2009516961A true JP2009516961A (en) 2009-04-23

Family

ID=38371958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008541468A Withdrawn JP2009516961A (en) 2005-11-18 2006-11-15 Method and system for managing key and / or rights objects

Country Status (5)

Country Link
EP (1) EP1949294A2 (en)
JP (1) JP2009516961A (en)
KR (1) KR20080068757A (en)
TW (1) TW200736954A (en)
WO (1) WO2007094874A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109399A (en) * 2011-11-17 2013-06-06 Sony Corp Information processing device, information storage device, information processing system, and information processing method, and program

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5209945B2 (en) * 2007-12-12 2013-06-12 株式会社日立製作所 Storage device, encryption content validation method, and terminal device
KR101416542B1 (en) 2012-12-24 2014-07-09 주식회사 로웸 Method for Apparatus for managing passcode
KR102289478B1 (en) * 2019-08-02 2021-08-13 주식회사 티모넷 System and method for providing electronic signature service

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4288751B2 (en) * 1999-05-25 2009-07-01 ソニー株式会社 Recording medium, data processing device
BR0006882B1 (en) * 1999-05-28 2014-03-18 Panasonic Corp SEMICONDUCTORY MEMORY CARD, IMPLEMENTATION APPLIANCE, RECORDER, IMPLEMENTATION METHOD, RECORDING METHOD AND RECORDING MEDIA
TWI240250B (en) * 2001-07-09 2005-09-21 Matsushita Electric Ind Co Ltd Content management system and information recording medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013109399A (en) * 2011-11-17 2013-06-06 Sony Corp Information processing device, information storage device, information processing system, and information processing method, and program

Also Published As

Publication number Publication date
KR20080068757A (en) 2008-07-23
WO2007094874A3 (en) 2007-12-06
EP1949294A2 (en) 2008-07-30
WO2007094874A2 (en) 2007-08-23
TW200736954A (en) 2007-10-01

Similar Documents

Publication Publication Date Title
US8913750B2 (en) Method for managing keys and/or rights objects
US20070116288A1 (en) System for managing keys and/or rights objects
KR100608585B1 (en) Method and apparatus for searching rights objects stored in portable storage device using object location data
US7269741B2 (en) Recording apparatus, medium, method, and related computer program
US8145900B2 (en) Crypto-pointers for secure data storage
KR100463842B1 (en) Apparatus for managing key in afile security system and method for managing security key
JP2004185152A (en) License moving device and program
US8032941B2 (en) Method and apparatus for searching for rights objects stored in portable storage device object identifier
KR20100031497A (en) Method of storing and accessing header data from memory
CN105718808A (en) File encryption storage system and method based on multiple network disks
CN101114296A (en) Method and apparatus for managing license
JP2009516961A (en) Method and system for managing key and / or rights objects
KR100608604B1 (en) Method and apparatus for searching right objects stored in portable storage device using object identifier
KR100857760B1 (en) A method and device to store secret key in flash memory
KR100859651B1 (en) Storage medium of recording data structure for storing variable size data, method of storing variable size data, and computer-readable storage medium of storing program for executing method of storing variable size data
JP6205272B2 (en) Digital information protection method, apparatus, and computer-accessible recording medium
JPH10340232A (en) File copy preventing device, and file reader
US20130036474A1 (en) Method and Apparatus for Secure Data Representation Allowing Efficient Collection, Search and Retrieval
US20120124314A1 (en) Recording medium
Ellefsen A Secure Steganographic File System with Non-Duplicating Properties
JP2010510575A (en) Method and apparatus for linking content with a license

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100202