KR20080068757A - Method and system for managing keys and/or rights objects - Google Patents

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

Info

Publication number
KR20080068757A
KR20080068757A KR1020087014728A KR20087014728A KR20080068757A KR 20080068757 A KR20080068757 A KR 20080068757A KR 1020087014728 A KR1020087014728 A KR 1020087014728A KR 20087014728 A KR20087014728 A KR 20087014728A KR 20080068757 A KR20080068757 A KR 20080068757A
Authority
KR
South Korea
Prior art keywords
file
key
rights object
storage
navigation
Prior art date
Application number
KR1020087014728A
Other languages
Korean (ko)
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,221 external-priority patent/US8156563B2/en
Priority claimed from US11/283,225 external-priority patent/US20070116288A1/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20080068757A publication Critical patent/KR20080068757A/en

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
    • 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
    • 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

One or more rights objects (RO) files may be used for storing RO's preferably in the protected area available only to authenticated users. A RO navigation file is stored preferably in an unprotected public area containing status bits, where each status bit identifies whether a location in a RO file contains a valid RO or not. Preferably, there is a one-to-one correspondence between the location for a RO in a RO file and a location in the RO navigation file for the status bit which identifies whether its corresponding location in the RO file contains a valid RO or not. Whether a particular location in a RO file contains a valid RO or not can be found by checking its corresponding status bit in the RO navigation file. By finding out whether a particular location in a RO file contains a valid RO or not in this manner, it is possible to delete ROs without having to go through an authentication process. The process of finding an empty slot in the RO file for storing a new RO is also simplified. This greatly increases the efficiency of RO management. A similar system may be used for management of content encryption/ encryption keys for protecting content files.

Description

키 및/또는 권리 객체의 관리 방법 및 시스템{Method and system for managing keys and/or rights objects} Method and system for managing keys and / or rights objects}

본 발명은 일반적으로 암호화/복호화 시스템, 특히 암호화/복호화를 위해 사용되는 키 및/또는 콘텐츠의 사용 또는 콘텐츠로의 접근을 제어하는 권리 객체를 관리하는 시스템에 관한 것이다. The present invention relates generally to an encryption / decryption system, in particular to a system for managing rights objects that control the use or access to content and the keys and / or content used for encryption / decryption.

음악, 비디오 및 게임과 같은 미디어 콘텐츠는 디지털 파일로 더욱 분산된다. 이와 같은 디지털 콘텐츠는 인터넷 및 저장 장치의 사용을 포함하는, 다수의 채널을 통해 광범위하게 분산되어 왔다. 디지털 콘텐츠는 플래시 메모리와 같은 비휘발성 메모리, 자기 또는 광 디스크 및 테이프와 같은, 다수의 다른 종류의 장치에 저장될 수 있다. 이들 저장 장치에서 디지털 콘텐츠는 데스크 탑 및 휴대 유형의 개인용 컴퓨터, iPod 및 다른 유형의 내장형 또는 독립형 미디어 플레이어, PDA(personal digital assistant), 게임 컨트롤러, MP3 플레이어 및 셀룰러 폰 핸드셋("호스트 장치"로 본 발명에서 전체적으로 언급됨)와 같은 매우 다양한 장치에 의해 재생되고, 저장되고 작동될 수 있다.Media content such as music, video, and games is further distributed into digital files. Such digital content has been widely distributed over a number of channels, including the use of the Internet and storage devices. Digital content may be stored in a number of other types of devices, such as nonvolatile memory such as flash memory, magnetic or optical disks and tapes. On these storage devices, digital content can be viewed as desktop and portable types of personal computers, iPods and other types of built-in or stand-alone media players, personal digital assistants, game controllers, MP3 players, and cellular phone handsets ("host devices"). Can be reproduced, stored and operated by a wide variety of devices.

디지털 콘텐츠의 소유자를 위해 콘텐츠로의 인증되지 않은 접근을 감소시키거나 또는 방지하기 위해, 디지털 콘텐츠는 인증된 사용자만이 콘텐츠에 접근할 수 있도록 자주 암호화된다. 노래와 같은, 다수의 다른 디지털 파일의 확산과 함께, 관리되기 위해 필요한 키의 개수는 꽤 클 수 있다. 또한, 강화된 보안에 대해, 다수의 키는 각각의 디지털 파일의 암호화 및 복호화에 포함될 수 있다. 그러므로, 디지털 저작권 관리(DRM)에서 기대될 수 있는 문제는 다수의 키를 효율적으로 관리하고 임의의 특정 디지털 파일을 암호하고 복호하기 위한 권리 키를 결정하기 위한 능력이다. To reduce or prevent unauthorized access to content for owners of digital content, digital content is frequently encrypted so that only authorized users can access the content. With the proliferation of many other digital files, such as songs, the number of keys needed to be managed can be quite large. Also, for enhanced security, multiple keys can be included in the encryption and decryption of each digital file. Therefore, a problem that can be expected in digital rights management (DRM) is the ability to efficiently manage multiple keys and determine right keys for encrypting and decrypting any particular digital file.

다수의 키 관리 시스템이 사용되어 왔다. 제 1 유형의 키 관리 시스템에서, 콘텐츠 파일은 암호화 및/또는 복호화 키를 쉽게 식별하고 찾도록(locate) 이름이 붙여진다. 암호화 파일 시스템(EFS)으로 공지된 또다른 유형의 키 관리 시스템에서, 파일을 암호화하는데 사용되는 키 자체가 암호화되고 암호화된 키는 대응 암호화된 콘텐츠 파일의 헤더에 저장된다. 상기 키 관리 시스템이 몇 개의 애플리케이션에 유용할 수 있는 반면, 이들은 각각 한계를 가진다. 위의 시스템 중 어느 것도 완전히 만족스럽지 않다. 그러므로 사용하기에 더 쉽고 더 유동적인(flexoble) 키 관리 시스템을 제공하는 것이 바람직하다.Many key management systems have been used. In a first type of key management system, a content file is named to easily identify and locate an encryption and / or decryption key. In another type of key management system known as an encrypted file system (EFS), the key itself used to encrypt the file is encrypted and the encrypted key is stored in the header of the corresponding encrypted content file. While the key management system may be useful for several applications, they each have limitations. None of the above systems are completely satisfactory. It would therefore be desirable to provide a key management system that is easier and more flexible to use.

디지털 저작권 관리(DRM)에서, 각각의 콘텐츠 파일은 어떻게 콘텐츠 파일이 접근될 수 있고/있거나 사용되는 지를 제어하거나 또는 주의하는 규칙과 연관될 수 있다. 이와 같은 규칙은 DRM에서 권리 객체로서 언급된다. 예를 들어, 규칙은, 소정의 만료 날짜 전에 또는 소정의 기간(time duration) 동안에만, 제한된 횟수 동안 접근될 수 있음을 명기할 수 있다. 그러므로, 콘텐츠 파일로의 접근 및/또는 사용을 제어하는 것이 요구되는 경우, 권리 객체가 생성되며, 이는 콘텐츠 프로파일 을 암호/복호하는데 사용되는 콘텐츠 암호화/복호화 키뿐만 아니라 위에서 설명된 규칙을 포함할 수 있다. 또한 권리 객체는 이때 권리 객체에 의해 제어되는 콘텐츠 파일과 관련된다. 종종, 권리 객체는 콘텐츠 파일을 암호/복호하기 위해 사용되는 콘텐츠 암호화/복호화 키로의 접근을 제어힘으로써 콘텐츠 파일로의 접근 및/또는 이의 사용을 제어한다. 따라서, 보호된 콘텐츠 파일을 사용하고/하거나 접근할 수 있기 위해, 이와 관련된 권리 객체를 검색하거나 다른 방법으로 획득할 수 있고, 권리 객체에서 규칙을 해독하고, 이후 규칙에 따라 콘텐츠 파일을 사용하거나 접근한다. 콘텐츠 파일이 암호화되는 경우, 키(들)는 관련 권리 객체로부터 검색되고 콘텐츠가 사용되거나 접근될 수 있기 전에 파일을 복호하기 위해 사용된다. 콘텐츠 파일의 사용 및/또는 접근을 제어하는 것이 요구되는 경우, 권리 객체는 파일로의 접근 및/또는 사용을 지배하는 규칙 및 콘텐츠 파일을 암호/복호하는데 사용되는 임의의 암호화/복호화 키를 가지고 생성되며, 객체는 이와 같은 콘텐츠 파일과 관련된다. In digital rights management (DRM), each content file may be associated with rules that control or note how the content file can be accessed and / or used. Such rules are referred to as rights objects in DRM. For example, a rule may specify that it can be accessed for a limited number of times, either before a predetermined expiration date or only for a predetermined time duration. Therefore, if it is desired to control access and / or use of the content file, a rights object is created, which may contain the rules described above as well as the content encryption / decryption key used to encrypt / decrypt the content profile. have. The rights object is then also associated with a content file controlled by the rights object. Often, rights objects control access to and / or use of content files by controlling access to content encryption / decryption keys used to encrypt / decrypt content files. Thus, in order to be able to use and / or access a protected content file, it can retrieve or otherwise obtain the rights object associated with it, decipher the rules in the rights object, and subsequently use or access the content file according to the rules. do. If the content file is encrypted, the key (s) is retrieved from the relevant rights object and used to decrypt the file before the content can be used or accessed. If it is desired to control the use and / or access of the content file, the rights object is created with rules governing access and / or use of the file and any encryption / decryption keys used to encrypt / decrypt the content file. The object is associated with such a content file.

DRM에서, 관리되기 위해 필요한 다수의 권리 객체가 있을 수 있다. 따라서, 사용하는데 더 유동적이고 더 쉬우며 다수의 권리 객체를 관리할 수 있는 권리 객체를 관리하기 위한 관리 시스템을 제공하는 것이 또한 바람직할 수 있다. In DRM, there may be a number of rights objects needed to be managed. Thus, it may also be desirable to provide a management system for managing rights objects that is more flexible and easier to use and capable of managing multiple rights objects.

본 발명의 일 실시예에 따라, 키 탐색(navigation) 파일 및 하나 이상의 저장 파일은 키 관리를 용이하게 하는데 사용될 수 있다. 암호화 및/또는 복호화되는 콘텐츠 파일은 각각 키 저장 파일이 콘텐츠 파일을 암호 및/또는 복호하기 위해 사용되는 키를 포함하는 것을 나타내는 위치 정보를 포함하는 헤더부를 각각 포함한다. 키 탐색 파일은 유효 키가 하나 이상의 키 저장 파일에 하나 이상의 위치에 저장되어 있는지 여부를 나타내는 상태 정보를 포함한다. 이는 키를 저장하기 위한 하나 이상의 키 저장 파일에서 위치를 찾는(locate) 과정을 용이하게 한다. 바람직하게는 상태 정보는 하나 이상의 유효 키(들)가 저장되어 있지 않은 하나 이상이 키 저장 파일에서 하나 이상의 위치를 나타낸다. In accordance with one embodiment of the present invention, a key navigation file and one or more storage files may be used to facilitate key management. The content file to be encrypted and / or decrypted each includes a header portion containing location information indicating that the key storage file contains a key used to encrypt and / or decrypt the content file. The key navigation file includes status information indicating whether the valid key is stored in one or more locations in one or more key storage files. This facilitates the process of locating a location in one or more key storage files for storing keys. Preferably, the status information indicates one or more locations in the key storage file where one or more valid key (s) are not stored.

전술된 키 탐색 파일 및 하나 이상의 키 저장 파일을 포함하는 키 탐색 메커니즘은 비-휘발성 컴퓨터 판독가능 매체에 저장될 수 있다. The key navigation mechanism, including the key navigation file described above and one or more key storage files, can be stored on a non-volatile computer readable medium.

상기 실시예의 하나의 이행에서, 키 탐색 파일은 저장 매체의 공중(public) 비보호 영역에 저장되고 키를 저장하기 위한 하나 이상의 키 저장 파일은 인증된 사용자, 애플리케이션 또는 장치에 의해서만 접근될 수 있는 매체의 보호된 영역에 저장된다. 명백한 이유로, 인증되지 않은 접근에 접근가능하지 않은 보호 영역에 하나 이상의 키 저장 파일을 저장하는 것이 바람직하다. 따라서, 키 저장 파일(들)에서 하나 이상의 위치가 유효 키를 포함하는지 아닌지를 나타내는 상태 정보를 포함하는 공중 영역에 키 탐색 파일을 제공함으로써, 이는 크게 키 관리 성능을 향상시킨다. 따라서, 키 저장 파일에서의 특정 키가 유효한지 아닌지를 발견하기 위해 보호 영역에 접근할 필요가 없다; 대신에, 이 정보는 인증 없이 접근될 수 있는 키 탐색 파일에서 쉽게 이용가능하다. 이 특성은 또한 콘텐츠 파일 및 이의 암호화/복호화 키를 삭제하는 것을 특히 쉽게 한다. 키의 삭제는 키를 삭제하기 위해 키를 포함하는 보호 영역에서 키 저장 파일로 실제로 접근하지 않고, 키 탐색 파일에서 상태 정보를 변경함으로써 하나의 이행으로 간단히 수행될 수 있다. In one implementation of this 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 key are stored on a medium that can only be accessed by an authenticated user, application, or device. It is stored in a protected area. For obvious reasons, it is desirable to store one or more key storage files in a protected area that is not accessible to unauthorized access. Thus, by providing a key navigation file in the public area containing status information indicating whether one or more locations in the key storage file (s) contain a valid key, this greatly improves key management performance. Thus, there is no need to access the protected area to find out whether a particular key in the keystore file is valid or not; Instead, this information is readily available in key navigation files that can be accessed without authentication. This feature also makes it particularly easy to delete content files and their encryption / decryption keys. Deletion of a key can be performed in one implementation simply by changing state information in the key navigation file, without actually accessing the key storage file in the protected area containing the key to delete the key.

본 발명의 다른 하나의 실시예에 따라, 키 탐색 파일 및 하나 이상의 키 저장 파일은 콘텐츠 파일을 암호/복호하기 위한 과정에 쉽게 사용될 수 있다. 키 탐색 파일에서 각각의 엔트리(entry)는 복수의 암호화/복호화 키 중 하나를 저장하기 위한 하나 이상의 키 저장 파일에서의 위치에 대응한다. 키 탐색 파일은 하나 이상의 키 저장 파일에서 위치에 유효 키에 대응하지 않는 엔트리의 발견을 허용하도록 열릴 수 있다. 암호화/복호화 키가 발생되고 콘텐츠 파일이 암호화/복호화된ㄷ.k 암호화/복호화 키는 이때 발견되는 키 탐색 파일에서의 엔트리에 대응하는 하나의 키 저장 파일에 위치에서 저장된다. According to another embodiment of the present invention, the key navigation file and one or more key storage files can be easily used in the process for encrypting / decrypting the content file. Each entry in the key navigation file corresponds to a location in one or more key storage files for storing one of a plurality of encryption / decryption keys. The key navigation file may be opened to allow the discovery of 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. The .k encryption / decryption key is stored at a location in one key storage file corresponding to the entry in the key navigation file found at that time.

위의 실시예에 대한 하나의 이행에서, 키 탐색 정보는 유효 키에 대응하지 않도록 발견된 키 탐색 파일에서의 엔트리의 위치로부터 얻을(derive) 수 있고 이 위치 정보는 암호화된 파일의 헤더부에 삽입된다. 따라서, 역 과정에서, 암호화된 파일의 헤더부에서의 정보의 위치를 해독함으로써, 키 저장 파일 또는 파일들 중 하나에 암호화/복호화 키의 위치가 발견될 수 있고 암호화된 파일의 암호화 및/또는 복호화를 위해 검색될 수 있다. In one implementation of the above embodiment, the key navigation information may be derived from the location of the entry in the key navigation file found so that it does not correspond to a valid key and this location information is inserted into the header of the encrypted file. do. Thus, in the reverse process, by decrypting the location of the information in the header portion of the encrypted file, the location of the encryption / decryption key can be found in the key storage file or one of the files and the encryption and / or decryption of the encrypted file. Can be searched for.

본 발명의 또다른 실시예에 따라, 콘텐츠 파일은 저장 매체의 보호 영역에서 키 저장 파일에 복호화 키를 사용하여 복호될 수 있다. 콘텐츠 파일의 헤더부는 콘텐츠 파일을 암호화/복호화하기 위한 키 저장 파일에 암호화/복호화 키의 위치를 나타내는 키 탐색 정보를 포함한다. 키 탐색 정보는 콘텐츠 파일의 헤더부로부터 검색되고 복호화 키가 저장되어 있는 키 저장 파일에서의 위치는 이때 키 탐색 정보로부터 얻는다. 복호화 키는 이때 보호 영역으로부터 획득되고 콘텐츠 파일을 복호하기 위해 사용된다. 이 공정은 또한 콘텐츠 파일을 암호하기 위해 키 저장 파일에 특정 키를 발견하는데 사용될 수 있고, 이와 같은 키의 위치 정보는 콘텐츠 파일의 헤더에서 발견될 수 있다. According to another embodiment of the present invention, the content file can be decrypted using the decryption key in the key storage file in the protected area of the storage medium. The header portion of the content file includes key navigation information indicating the location of the encryption / decryption key in the key storage file for encrypting / decrypting the content file. The key navigation information is retrieved from the header portion of the content file and the position in the key storage file where the decryption key is stored is then obtained from the key navigation information. The 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 particular key in a key storage file to encrypt the content file, and the location information of such a key can be found in the header of the content file.

상기 실시예의 하나의 특정 구현에서, 복수의 키 저장 파일은 키를 저장하기 위해 사용된다. 이 구현에서, 콘텐츠 파일의 헤더부에 키 탐색 정보는 정수일 수 있는 인덱스를 포함한다. 각각의 키 저장 파일은 키를 저장하기 위한 m 개의 위치를 포함한다. 인덱스는 몫(quotient)을 획득하기 위해 m으로 나누어진다. 몫의 정수부는 복수의 키 저장 파일 중 하나가 암호화/복호화 키를 저장하는 것을 나타내고, 또한 본 발명에서 오프셋이라 말하는, 나머지부는 암호화/복호화 키가 저장되어 있는 이와 같은 키 저장 파일에서의 위치를 나타낸다. In one particular implementation of the above embodiment, a plurality of key storage files are used to store keys. In this implementation, the key navigation information in the header portion of the content file includes an index, which may be an integer. Each key storage file contains m locations for storing keys. The index is divided by m to obtain a quotient. The integer portion of the quotient indicates that one of the plurality of key storage files stores the encryption / decryption key, and the remainder, which is referred to as an offset in the present invention, indicates the position in such a key storage file in which the encryption / decryption key is stored. .

본 발명의 또다른 실시예는 키 저장 파일에 저장된 키가 유효한지 아닌지를 나타내는 상태 정보를 포함하는 키 탐색 파일에 의해 콘텐츠 파일을 암호/복호하는데 사용되고 키 저장 파일에 저장되어 있는 암호화/복호화 키를 무효로 하기 위한 방법으로 지향되어 있다. 콘텐츠 파일은 키 저장 파일에 키의 위치를 나타내는 위치 정보를 포함하는 헤더부를 포함한다. 키 파일에서 키의 위치 정보는 콘텐츠 파일의 헤더부로부터 획득된다. 키 탐색 파일에서 키의 상태 정보는 위치 정보를 사용하여 찾아진다. Another embodiment of the present invention uses an encryption / decryption key stored in the key storage file and used to encrypt / decrypt the content file by a key navigation file including status information indicating whether the key stored in the key storage file is valid. It is aimed at the way to invalidate. The content file includes a header portion including location information indicating the location of the key in the key storage file. The location information of the key in the key file is obtained from the header portion of the content file. In the key navigation file, the status information of a key is found using location information.

키 탐색 파일에서 키의 상태 정보는 키가 무효로 됨을 나타내도록 변경된다. The key's status information in the key navigation file is changed to indicate that the key is invalid.

위에서 설명된 방법 중 임의의 하나는 프로세서에 의해 실행되는 컴퓨터 프로그램에 의해 수행될 수 있고, 프로그램은 컴퓨터 판독가능 저장 매체에 저장된다. Any one 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.

본 발명의 또다른 실시예에 따라, 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램은 키 관리를 용이하게 하는데 사용될 수 있다. 컴퓨터 프로그램은 하나 이상의 이와 같은 파일이 이미 존재하지 않는 경우 하나 이상의 키 저장 파일 및 키 탐색 파일을 생성한다. 각각의 콘텐츠 파일은 키 저장 파일이 이와 같은 콘텐츠 파일에 대한 암호화/복호화 키를 포함하는 지를 나타내는 위치 정보를 포함하는 헤더부를 포함한다. 키 탐색 파일은 하나 이상의 키 저장 파일에서 하나 이상의 위치가 유효키를 포함하는지 아닌지를 나타내는 상태 정보를 포함한다. According to another embodiment of the invention, a computer program stored on a computer readable medium can be used to facilitate key management. The computer program creates one or more key storage files and key navigation files if one or more such files do not already exist. Each content file includes a header portion containing location information indicating whether the key storage file includes an encryption / decryption key for such content file. The key navigation file includes state information indicating whether one or more locations in the one or more key storage files contain a valid key.

상기 실시예의 하나의 이행에서, 엔트리는 적어도 하나의 키 저장 파일에서 유효 키에 대응하지 않는 키 탐색 파일에서 발견된다. 콘텐츠 파일에 대한 키 탐색 정보는 키 탐색 파일에서의 상기 엔트리의 위치로부터 획득된다. 암호화/복호화 키는 발생되고 콘텐츠 파일을 암호/복호하는데 사용된다. 암호/복호화 키는 엔트리에 대응하는 적어도 하나의 키 저장 파일에 위치에서 저장된다.In one implementation of this embodiment, an entry is found in a key navigation file that does not correspond to a valid key in at least one key storage file. Key navigation information for the 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 at a location in at least one key storage file corresponding to the entry.

본 발명이 또다른 실시예에 따라, 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램은 저장 장치의 보호 영역에서 키 저장 파일에 암호화/복호화 키를 사용하여 콘텐츠 파일을 암호/복호한다. 콘텐츠 파일 헤더는 키 저장 파일에 암호화/복호화 키의 위치를 나타내는 키 탐색 정보를 포함한다. 컴퓨터 프로그램은 콘텐츠 파일로부터 키 탐색 정보를 검색하고, 암호화/복호화 키가 저장되어 있는 키 저장 파일에서 키 탐색 정보로부터 위치를 얻고, 암호화/복호화 키를 획득하고 상기 키를 사용하여 콘텐츠 파일을 암호/복호한다. 이 실시예의 일 구현에서, m 개의 위치를 각각 포함하는 복수의 키 저장 파일은 키를 저장하는데 사용된다. 키 탐색 정보는 인젝스를 포함하고, 이는 정수일 수 있으며, 컴퓨터 프로그램은 키 저장 파일 중 하나가 몫을 획득하기 위해 m으로 인덱스를 나눔으로써 키가 저장되어 있는 이와 같은 키 저장 파일에 위치 및 암호화/복호화 키를 저장함을 발견한다. 몫의 정수 부분은 복수의 키 저장 파일 중 하나가 암호화/복호화 키를 저장하는 것을 나타내고 나머지 부분은, 소위 본 발명에서 오프셋은 복호화/암호화 키가 저장되어 있는 이와 같은 키 저장 파일에서 위치를 나타낸다. According to another embodiment of the present invention, a computer program stored in a computer readable medium encrypts / decrypts a content file using an encryption / decryption key in a key storage file in a protected area of the storage device. The content file header includes key navigation information indicating the location of the encryption / decryption key in the key storage file. The computer program retrieves the key navigation information from the content file, obtains a location from the key navigation information in the key storage file in which the encryption / decryption key is stored, obtains an encryption / decryption key, and uses the key to encrypt / encrypt the content file. Decrypt In one implementation of this embodiment, a plurality of key storage files each containing m locations are used to store keys. The key navigation information includes an injection, which may be an integer, and the computer program locates and encrypts / encodes in such a keystore file where the key is stored by dividing the index by m to obtain a share of one of the keystore files. Find the store decryption key. The integer portion of the quotient indicates that one of the plurality of key storage files stores the encryption / decryption key, and the remaining portion, the so-called offset in the present invention, indicates the location in such a key storage file in which the decryption / encryption key is stored.

위에서 설명된 컴퓨터 프로그램에 의해 실행된 방법은 본 발명의 다른 태양의 주제이다. The method executed by the computer program described above is the subject of another aspect of the present invention.

본 발명의 다른 실시예에 따라, 비휘발성 컴퓨터 판독가능 매체는 키 탐색 메커니즘을 저장하고, 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함한다. 메커니즘은 키 탐색 파일 및 적어도 하나의 키 저장 파일을 포함한다. 각각의 키 저장 파일은 이와 같은 키 저장 파일에 대응 위치에서 복수의 키를 포함하고, 상기 키는 복수의 콘텐츠 파일 중 대응하는 하나의 암호화 및/또는 복호화에 사용된다. 메커니즘은 매체의 적어도 하나의 비보호 영역에서 제 1 디렉토리 트리(directory tree)를 포함하고, 상기 제 1 디렉토리 트리는 키 탐색 파일 및 복수의 콘텐츠 파일의 리스트를 포함하는 디렉토리를 포함한다. 메커니즘은 또한 매체의 적어도 하나의 보호 영역에 제 2 디렉토리 트리를 포함하고, 상기 제 2 디렉토리 트리는 적어도 하나의 키 저장 파일에 키의 목록을 포함하는 디렉토리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭(mirror)하는 구조를 가진다. According to another embodiment of the present invention, a nonvolatile computer readable medium stores a key navigation mechanism, and the medium includes at least one protected area and at least one unprotected area. The mechanism includes a key navigation file and at least one key storage file. Each key storage file includes a plurality of keys at corresponding locations in the key storage file, which keys are used for encryption and / or decryption of a corresponding one of the plurality of content files. The mechanism includes a first directory tree in at least one unprotected area of the medium, the first directory tree including a directory comprising a key navigation file and a list of a plurality of content files. The mechanism also includes a second directory tree in at least one protected area of the medium, the second directory tree including a directory comprising a list of keys in at least one key storage file, the two directory trees mirrored each other. (mirror) has a structure.

전술된 시스템 및 방법은 또한 키를 관리하는 것 대신에 또는 이외에, 콘텐츠의 사용 및/또는 콘텐츠로의 접근을 지배하는 규칙과 같은, 콘텐츠 보호 정보를 관리하도록 형성될 수 있다. 따라서, 하나의 예시적인 응용에서, 전술된 방법 및 시스템은 콘텐츠 파일의 사용 및/또는 접근을 제어하는 권리 객체를 관리하도록 형성될 수 있다. The systems and methods described above may also be configured to manage content protection information, such as rules governing the use of and / or access to content, instead of or in addition to managing keys. Thus, in one exemplary application, the methods and systems described above may be configured to manage rights objects that control the use and / or access of content files.

따라서, 본 발명의 또다른 실시예에 따라, 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일은 권리 객체 관리를 용이하게 하는데 사용될 수 있다. 권리 객체에 의해 제어되는 콘텐츠 파일은 권리 객체 저장 파일이 콘텐츠 파일로의 접근 및/또는 이의 사용을 제어하는데 사용되는 권리 객체를 포함하는 것을 나타내는 위치 정보를 포함하는 헤더부를 각각 포함한다. 권리 객체 탐색 파일은 유효 권리 객체가 하나 이상의 권리 객체 저장 파일에 하나 이상의 위치에서 저장되어있는 지 여부를 나타내는 상태 정보를 포함한다. 이는 권리 객체 키를 저장하기 위한 하나 이상의 권리 객체 저장 파일에서 위치를 찾는 과정을 용이하게 한다. 바람직하게는 상태 정보는 하나 이상의 유효 키(들)가 저장되어 있니 않은 하나 이상의 권리 객체 저장 파일에서의 하나 이상의 위치를 나타낸다. Thus, in accordance with 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. The content file controlled by the rights object each includes a header portion containing location information indicating that the rights object storage file includes a rights object used to control access to and / or use of the content file. The rights object navigation file includes state information indicating whether a valid rights object is stored in one or more rights object storage files in one or more locations. This facilitates the process of locating a location in one or more rights object storage files for storing rights object keys. Preferably, the status information indicates one or more locations in one or more rights object storage files in which one or more valid key (s) are not stored.

전술된 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일을 포함하는 권리 객체 탐색 메커니즘은 비-휘발성 컴퓨터 판독가능 매체에 저장될 수 있다. The rights object navigation mechanism, including 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.

상기 실시예의 하나의 이행에서, 권리 객체 탐색 파일은 저장 매체의 공중 비보호 영역에 저장되고 권리 객체를 저장하기 위한 하나 이상의 권리 객체 저장 파일은 인증된 사용자, 애플리케이션 또는 장치에 의해서만 접근될 수 있는 매체의 보호 영역에 저장된다. 명백한 이유로, 비인가된 접근에 접근할 수 없는 보호 영역에 하나 이상의 권리 객체 저장 파일을 저장하는 것이 바람직하다. 따라서, 권리 객체 저장 파일(들)에서의 하나 이상의 위치가 유효 권리 객체를 포함하는지 아닌지를 나타내는 상태 정보를 포함하는 공중 영역에서 권리 객체 탐색 파일을 제공함으로써, 이는 권리 객체 관리 성능을 크게 향상시킨다. 따라서, 권리 객체 저장 파일 안의 특정 권리 객체가 유효한지 아닌지를 찾아내기 위해 보로 영역으로의 접근을 필요로 하지 않는다; 대신에, 이 정보는 인증 없이 접근될 수 없는 권리 객체 탐색 파일에서 쉽게 이용가능하다. 이 특징은 또한 콘텐츠 파일 및 관련 권리 객체를 특히 쉽게 삭제하게 한다. 권리 객체의 삭제는, 권리 객체를 삭제하기 위해 권리 객체를 포함하는 보호 영역에서 권리 객체 저장 파일로의 실제로 접근을 하지 않고, 권리 객체 탐색 파일에서의 상태 정보를 변경함으로써 하나의 이행으로 간단히 수행될 수 있다. In one implementation of the above embodiment, the rights object navigation file is stored in a public unprotected area of the storage medium and the one or more rights object storage files for storing the rights object may be accessed only by authorized users, applications or devices. Stored in the protected area. For obvious reasons, it is desirable to store one or more rights object storage files in protected areas that are inaccessible to unauthorized access. Thus, by providing a rights object navigation file in the public area that includes state information indicating whether one or more locations in the rights object storage file (s) contain valid rights objects, this greatly improves rights object management performance. Thus, access to the borough area is not required to find out whether a particular rights object in the rights object storage file is valid or not; Instead, this information is readily available in the rights object navigation file that cannot be accessed without authentication. This feature also makes it particularly easy to delete content files and related rights objects. Deletion of a rights object can be performed in one implementation simply by changing the state information in the rights object navigation file, without actually accessing the rights object storage file in the protected area containing the rights object to delete the rights object. Can be.

본 발명의 하나 이상의 실시예에 따라, 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일은 콘텐츠 파일과 권리 객체를 관련시키기 위한 과정에서 쉽게 사용될 수 있다. 권리 객체 탐색 파일에서 각각의 엔트리는 복수의 권리 객체 중 하나를 저장하기 위해 하나 이상의 권리 객체 저장 파일에서의 위치에 대응한다. 권리 객체 탐색 파일은 하나 이상의 권리 객체 저장 파일에 위치에서 유효 권리 객체에 대응하지 않는 엔트리의 발견을 허용하도록 개방될 수 있다. 권리 객체는 발생되고 콘텐츠 파일은 이와 관련되어 있다. 권리 객체는 이때 발견되는 권리 객체 탐색 파일에서 엔트리에 대응하는 하나의 군리 객체 저장 파일에 위치에서 저장된다. In accordance with one or more embodiments of the present invention, a rights object navigation file and one or more rights object storage files may be readily used in the process for associating a content file with a rights object. Each entry in the rights object navigation file corresponds to a location in one or more rights object storage files for storing one of a plurality of rights objects. The rights object navigation file may be opened to allow the discovery of entries that do not correspond to valid rights objects at locations in one or more rights object storage files. The rights object is generated and the content file is associated with it. The rights object is then stored at a location in one grouping object storage file corresponding to the entry in the rights object navigation file found.

상기 실시예의 하나의 이행에서, 권리 객체 탐색 정보는 유효 권리 객체에 대응하지 않도록 권리 객체 탐색 파일에서의 엔트리의 위치로부터 얻어질 수 있고 이 위치 정보는 암호화된 파일의 헤더부에 삽입된다. 따라서, 역 과정에서, 콘텐츠 파일의 헤더부에서 위치 정보를 해독함으로써, 권리 객체 저장 파일 또는 파일들 중 하나에서 권리 객체의 위치는 발견될 수 있고 권리 객체는 콘텐츠 파일을 사용 및/또는 접근하기 위해 검색될 수 있다. In one implementation of the above embodiment, the rights object navigation information may be obtained from the location of an entry in the rights object navigation file so that it does not correspond to a valid rights object and this location information is inserted into the header portion of the encrypted file. Thus, in the reverse process, by decrypting the location information in the header portion of the content file, the location of the rights object in the rights object storage file or one of the files can be found and the rights object can be used to access and / or access the content file. Can be retrieved.

본 발명의 또다른 실시예에서 따라, 콘텐츠 파일은 저장 매체의 보호 영역에서 권리 객체 저장 파일의 암호화/복호화 권리 객체를 사용하여 암호/복호될 수 있다. 콘텐츠 파일의 헤더부는 콘텐츠 파일과 관련된 권리 객체 저장 파일에서 권리 객체의 위치를 나타내는 권리 객체 탐색 정보를 포함한다. 권리 객체 탐색 정보는 콘텐츠 파일의 헤더부로부터 검색되고 권리 객체가 저장되어 있는 권리 객체 저장 파일에서의 위치는 권리 객체 탐색 정보로부터 획득된다. 권리 객체는 이때 보호 영역으로부터 획득되고 접근하기 위해 및/또는 다른 방법으로 콘텐츠 파일을 사용하기 위해 사용된다. 이 과정은 또한 콘텐츠 파일로의 접근 및/또는 이의 사용이 요구되는 경우 권리 객체 저장 파일에서의 특정 권리 객체를 발견하는데 사용될 수 있고, 이와 같은 권리 객체의 위치 정보는 콘텐츠 파일의 헤더부에서 발견될 수 있다. According to another embodiment of the present invention, the content file may be encrypted / decrypted using the encryption / decryption rights object of the rights object storage file in the protected area of the storage medium. The header portion of the content file includes rights object navigation information that indicates the location of the rights object in the rights object storage file associated with the content file. The rights object navigation information is retrieved from the header portion of the content file and the location in the rights object storage file where the rights object is stored is obtained from the rights object navigation information. The rights object is then used to obtain and access from the protected area and / or to use the content file in other ways. This process can also be used to find a specific rights object in the rights object storage file if access to and / or use of the content file is required, such location information of the rights object may be found in the header portion of the content file. Can be.

바로 위의 실시예의 하나의 특정 이행에서, 복수의 권리 객체 저장 파일이 권리 객체를 저장하는데 사용된다. 이 이행에서, 콘텐츠 파일의 헤더부에서의 권리 객체 탐색 정보는 정수일 수 있는, 인덱스를 포함한다. 각각의 권리 객체 저장 파일은 권리 객체를 저장하기 위한 m 개의 위치를 포함한다. 인덱스는 몫을 얻기 위해 m으로 나누어진다. 몫의 정수 부분은 복수의 권리 객체 저장 파일 중 하나가 권리 객체를 저장하는 것을 나타내고 본 발명에서 오프셋이라 말하는, 나머지 부분은 권리 객체가 저장되어 있는 이와 같은 권리 객체 저장 파일에서의 위치를 나타낸다.In one particular implementation of the immediately preceding embodiment, a plurality of rights object storage files are used to store rights objects. In this implementation, the rights object navigation information in the header portion of the content file includes an index, which may be an integer. Each rights object storage file contains m locations for storing rights objects. The index is divided by m to get a quotient. The integer portion of the quotient indicates that one of the plurality of rights object storage files stores the rights object, and the remainder, referred to herein as the offset, indicates the location in such a rights object storage file in which the rights object is stored.

본 발명의 또다른 실시예는 권리 객체 저장 파일에 저장되어 있는 권리 객체를 무효로 하기 위한 방법으로 지향되어 있고 권리 객체 저장 파일에 저장되어 있는 권리 객체가 유효한지 아닌지를 나타내는 상태 정보를 포함하는 권리 객체 탐색 파일에 의해 콘텐츠 파일로의 접근 및/또는 사용을 제어하기 위해 사용된다. 콘텐츠 파일은 권리 객체 저장 파일에 권리 객체의 위치를 나타내는 위치 정보를 포함하는 헤더부를 포함한다. 권리 객체 파일에서 권리 객체의 위치 정보는 콘텐츠 파일의 헤더부에서 획득된다. 권리 객체 탐색 파일에서 권리 객체의 상태 정보는 위치 정보를 사용하여 찾아진다. 권리 객체 탐색 파일에서 권리 객체의 상태 정보는 권리 객체가 무효임을 나타내도록 변경된다. Another embodiment of the present invention is directed to a method for invalidating a rights object stored in a rights object storage file and includes rights including state information indicating whether the rights object stored in the rights object storage file is valid or not. Used to control access and / or use of content files by object navigation files. The content file includes a header portion including 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. In the rights object navigation file, the status information of the rights object is retrieved 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 one of the methods described above can be performed by a computer program executed by a processor, the program being stored in a computer readable storage medium.

본 발명의 또다른 실시예에 따라, 컴퓨터 판독가능 매체에 저장되어 있는 컴퓨터 프로그램은 권리 객체 관리를 용이하게 하는데 사용될 수 있다. 컴퓨터 프로그램은 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일이 이미 존재하지 않는 경우 하나 이상의 권리 객체 저장 파일을 생성한다. 각각의 콘텐츠 파일이 권리 객체 저장 파일이 이와 같은 콘텐츠 파일에 대한 권리 객체를 포함하는 것을 나타내는 위치 정보를 포함하는 헤더부를 포함한다. 권리 객체 탐색 파일은 하나 이사의 권리 객체 저장 파일에 하나 이상의 위치가 유효 권리 객체를 포함하는지 아닌지를 나타내는 상태 정보를 포함한다. 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 one or more rights object storage files if the rights object navigation file and one or more rights object storage files do not already exist. Each content file includes a header portion that includes location information indicating that the rights object storage file contains a rights object for such a content file. The rights object navigation file contains status information indicating whether one or more locations in the rights object storage file of one director contain a valid rights object.

위의 실시예의 하나의 이행에서, 엔트리는 적어도 하나의 권리 객체 저장 파일에서 유효 관리 객체에 대응하지 않는 권리 객체 탐색 파일에서 발견된다. 콘텐츠 파일에 대한 권리 객체 탐색 정보는 권리 객체 탐색 파일에서의 상기 엔트리의 위치로부터 획득된다. 권리 객체가 발생되고 콘텐츠 파일과 관련된다. 권리 객체는 엔트리에 대응하는 적어도 하나의 권리 객체 저장 파일에 위치에서 저장된다. In one implementation of the above embodiment, an entry is found in a rights object navigation file that does not correspond to a valid managed object in at least one rights object storage file. The rights object navigation information for 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 at a location in at least one rights object storage file corresponding to the entry.

본 발명의 또다른 실시예에 따라, 컴퓨터 판독가능 매체에 저장되어 있는 컴퓨터 프로그램은 저장 장치의 보로 영역에 권리 객체 저장 파일에서의 권리 객체에 의해 콘텐츠 파일로의 접근 및/또는 이의 사용을 제어한다. 콘텐츠 파일 헤더는 권리 객체 저장 파일에서의 권리 객체의 위치를 나타내는 권리 객체 탐색 정보를 포함한다. 컴퓨터 프로그램은 콘텐츠 파일로부터 권리 객체 탐색 정보를 검색하고, 권리 객체가 저장되어 있는 권리 객체 저장 파일에서 위치를 권리 객체 탐색 정보로부터 얻고, 권리 객체를 획득하고 이와 같은 권리 객체에 의해 콘텐츠 파일을 사용하거나 또는 접근한다. 이 실시예의 하나의 구현에서, m 개의 위치를 각각 포함하는 복수의 권리 객체 저장 파일은 권리 객체를 저장하기 위해 사용된다. 권리 객체 탐색 정보는 정수일 수 있는 인덱스를 포함하고, 컴퓨터 프로그램은 권리 객체 저장 파일 중 하나가 몫을 얻기 위해 m으로 인덱스를 나눔으로써 권리 객체가 저장되어 있는 이와 같은 권리 저장 파일에서의 위치 및 권리 객체를 저장하는 것을 발견한다. 몫의 정수 부분은 복수의 권리 객체 저장 파일 중 하나가 권리 객체를 저장하는 것을 나타내고, 또한 본 발명에서 오프셋이라 불리는 나머지 부분은 권리 객체가 저장되어 있는 이와 같은 권리 저장 파일에서 위치를 나타낸다. In accordance with another embodiment of the present invention, a computer program stored on a computer readable medium controls access to and / or use of a content file by a rights object in a rights object storage file in a borough region of the storage device. . The content file header includes rights object navigation information indicating the location of the rights object in the rights object storage file. The computer program retrieves the rights object navigation information from the content file, obtains a location from the rights object navigation information in the rights object storage file in which the rights object is stored, obtains the rights object and uses the content file by such rights object; Or approach. In one implementation of this embodiment, a plurality of rights object storage files each containing m locations are used to store rights objects. The rights object navigation information includes an index, which may be an integer, and the computer program divides the index by m for one of the rights object storage files to share, such as the location and rights object in the rights storage file where the rights object is stored. Find it to save. The integer portion of the quotient indicates that one of the plurality of rights object storage files stores the rights object, and the remainder, referred to herein as the offset, indicates the location in such a rights storage file in which the rights object is stored.

본 발명의 또다른 실시예에 따라, 비-휘발성 판독가능 매체는 권리 객체 탐색 메커니즘을 저장하고, 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함한다. 메커니즘은 권리 객체 탐색 파일 및 적어도 하나의 권리 객체 저장 파일을 포함한다. 각각의 권리 객체 저장 파일은 이와 같은 권리 객체 저장 파일에서 대응하는 위치에 복수의 권리 객체를 포함하고, 상기 권리 객체는 복수의 코텐츠 파일 중 대응하는 하나로의 접근 및/또는 이의 사용을 제어하는데 사용된다. 메커니즘은 매체의 적어도 하나의 비보호 영역에 제 1 디렉토리 트리를 포함하고, 상기 제 1 디렉토리 트리는 권리 객체 탐색 파일 및 복수의 콘텐츠 파일의 목록록을 포함하는 디렉토리를 포함한다. 메커니즘은 또한 매체의 적어도 하나의 보호 영역에 제 2 디렉토리 트리를 포함하고, 상기 제 2 디렉토리 트리는 적어도 하나의 권리 객체 저장 파일에서 권리 객체의 리스트를 포함하는 디렉토리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가진다. According to another embodiment of the present invention, the non-volatile readable medium stores a rights object navigation mechanism, and the medium includes at least one protected area and at least one unprotected area. The mechanism includes a rights object navigation file and at least one rights object storage file. Each rights object store file includes a plurality of rights objects at corresponding locations in the rights object store file, which rights objects are used to control access to and / or use of the corresponding one of the plurality of content files. do. The mechanism includes a first directory tree in at least one unprotected area of the medium, the first directory tree including a directory including a rights object navigation file and a list of a plurality of content files. The mechanism also includes a second directory tree in at least one protected area of the medium, the second directory tree including a directory comprising a list of rights objects in the at least one rights object storage file, the two directory trees being mutually exclusive. It has a mirror symmetrical structure.

전술된 컴퓨터 프로그램에 의해 수행되는 방법은 본 발명의 다른 양태의 과제이다. The method performed by the computer program described above is a subject of another aspect of the present invention.

상기 특징은 단독으로 또는 임의의 조합에서 함께 사용될 수 있다. The features may be used alone or together in any combination.

도 1은 본 발명을 설명하기 위해 호스트 장치와 통신하는 메모리 시스템의 블록도를 나타낸다. 1 illustrates a block diagram of a memory system in communication with a host device to illustrate the present invention.

도 2는 타이틀 키 파일의 구조를 설명하는 도면이다. 2 is a diagram for explaining the structure of a title key file.

도 3a는 키 탐색 파일의 구조를 설명하는 도면이다. 3A is a diagram for explaining the structure of a key navigation file.

도 3b는 도 3a에서 키 탐색 파일 및 도 2에 도시된 유형의 다수의 타이틀 키 파일을 나타내며, 이들 사이의 관계를 설명하기 위한 도면이다. FIG. 3B shows a key navigation file in FIG. 3A and a plurality of title key files of the type shown in FIG. 2, and is a diagram for explaining the relationship between them.

도 4는 키 탐색 및 키 관리에 유용한 비보호 사용자 데이터 영역에서의 디렉토리 트리를 설명하는 도면이다.4 is a diagram illustrating a directory tree in an unprotected user data area useful for key navigation and key management.

도 5는 키 탐색 및 키 관리에 유용한 보호 영역에서의 디렉토리 트리에 관한도면이다.5 is a diagram of a directory tree in a protected area useful for key navigation and key management.

도 6은 키 관리를 위한 키 탐색 메커니즘을 설명하는 흐름도이다. 6 is a flowchart illustrating a key navigation mechanism for key management.

도 7은 키 관리 시스템의 또다른 특징을 설명하기 위해 파일을 삭제하는 키 탐색 메커니즘을 설명하는 흐름도이다. 7 is a flowchart illustrating a key navigation mechanism for deleting a file to illustrate another feature of the key management system.

도 8은 권리 객체 관리를 위한 권리 객체 탐색 메커니즘을 설명하는 흐름도이다. 8 is a flowchart illustrating a rights object navigation mechanism for rights object management.

도 9는 권리 객체 관리 시스템의 또다른 특징을 설명하기 위해 파일을 삭제 하는 권리 객체 탐색 메커니즘을 설명하는 흐름도이다. 9 is a flow diagram illustrating a rights object navigation mechanism for deleting a file to illustrate another feature of the rights object management system.

간략한 설명을 위해, 동일한 소자는 본 출원에서 동일한 숫자로 식별되어 있다. For the sake of brevity, like elements are identified by like numerals in the present application.

본 발명의 다양한 실시예를 이행할 수 있는 예시적인 메모리 시스템이 도 1의 블록도에 의해 설명되어 있다. 도 1에 도시된 바와 같이, 메모리 시스템(10)은 CPU(cetral processing unit)(12),BMU(buffer management unit)(14). HIM(host interface module)(HIM)(16) 및 FIM(flash interface module)(18), 플래시 메모리(20) 및 PAM(peripheral access module)(22)를 포함한다. 메모리 시스템(10)은 호스트 인터페이스 버스(26) 및 포트(26a)를 통해 호스트 장치(24)와 통신한다. NAND 유형으로 이루어질 수 있는 플래시 메모리(20)는 호스트 장치(24)에 데이터 저장을 제공한다. CPU(12)에 대한 소프트웨어 코드는 또한 플래시 메모리(20)에 저장될 수 있다. FIM(18)은 플래시 인터페이스 버스(28) 및 포트(28a)를 통해 플래시 메모리(20)에 접속한다. HIM(16)은 디지털 카메라, 데스크 탑 또는 휴대용 개인용 컴퓨터, PDA(personal digital assistant), 디지털 미디어 플레이어, MP-3 플레이어, 비디오 게임 플레이어 및 셀룰러 전화기 또는 다른 디지털 장치와 같은 호스트 시스템으로의 접속에 적합하다. 주변 접근 모듈(22)은 CPU(12)와 통신하기 위해 FIM, HIM 및 BMU와 같은 적절한 제어기 모듈을 선택한다. 일 실시예에서, 점선 박스 내의 시스템(10)의 모든 구성소자는 메모리 카드 또는 스틱(10')에서와 같이 단일 유닛에 포함될 수 있고 바람직하게는 동일한 하우징(housing) 또는 컨테이너 내 에 카드 또는 스틱에 캡슐화될 수 있다. An exemplary memory system that can implement various embodiments of the present invention is illustrated by the block diagram of FIG. As shown in FIG. 1, the memory system 10 includes a central processing unit (CPU) 12 and a buffer management unit (BMU) 14. A host interface module (HIM) 16 and a flash interface module 18, a flash memory 20, and a peripheral access module 22 (PAM). The memory system 10 communicates with a host device 24 via a host interface bus 26 and a port 26a. Flash memory 20, which may be of the NAND type, provides data storage to host device 24. Software code for the CPU 12 may also be stored in the flash memory 20. FIM 18 connects to flash memory 20 via flash interface bus 28 and port 28a. The HIM 16 is suitable for connection to host systems such as digital cameras, desktop or portable personal computers, personal digital assistants, digital media players, MP-3 players, video game players and cellular telephones or other digital devices. Do. Peripheral access module 22 selects appropriate controller modules, such as FIM, HIM, and BMU, to communicate with CPU 12. In one embodiment, all components of the system 10 in a dashed box may be included in a single unit, such as in a memory card or stick 10 'and preferably in a card or stick in the same housing or container. Can be encapsulated.

버퍼 관리 유닛(14)은 HDMA(host direct memory access)(32), FDMA(flash direct memory access) 제어기(34), 중재기(arbiter)(36), BRAM(buffer random access memory)(38) 및 암호화-엔진(crypto-engine)(40)을 포함한다. 하나의 (HDMA(32), FDMA(34) 또는 CPU(12)일 수 있는) 개시자(initiator) 또는 마스터(master) 만이 언제라도 활성될 수 있고 슬레이브(slave) 또는 타겟이 BRAM(38)이도록 중재기(36)는 공유 버스 중재기이다. 중재기는 BRAM(38)로의 적절한 개시자 요청을 채널링(channeling)을 담당한다. HDMA(32) 및 FDMA(34)는 HIM(16), FIM(18)과 BRAM(38) 또는 CPU RAM(CPU random access memory)(12a) 사이의 전송된 데이터에 책임이 있다. HDMA(32) 및 FDMA(34)의 동작은 통상적이며 본 발명에서 상세하게 설명될 필요가 없다. BRAM(38)은 호스트 장치(24), 플래시 메모리(20)와 CPU RAM(12a) 사이에 전달되는 버퍼 데이터에 사용된다. HDMA(32) 및 FDMA(34)은 HIM(16)/FIM(18)과 BRAM(38) 또는 CPU RAM(12a) 사이의 데이터를 전송하고 섹터(sector) 전송 완료를 표시하는 것을 담당한다. 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 crypto-engine 40. Only one initiator or master (which may be HDMA 32, FDMA 34 or CPU 12) can be active at any time and the slave or target is BRAM 38 The arbiter 36 is a shared bus arbiter. The arbiter is responsible for channeling the appropriate initiator request to the BRAM 38. HDMA 32 and FDMA 34 are responsible for the data transferred between HIM 16, FIM 18 and BRAM 38 or CPU random access memory (CPU RAM) 12a. The operation of HDMA 32 and FDMA 34 is conventional and need not be described in detail herein. The BRAM 38 is used for buffer data transferred 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 indicating sector transfer completion.

먼저 플래시 메모리(20)로부터의 데이터가 호스트 장치(24)에 의해 판독되는 경우, 메모리(20)에서 암호화된 데이터는 버스(28), FDMA(34), FDMA(34), 암호화 엔진(40)을 통해 인출되며(fetch) 암호화된 데이터가 복호되고 BRAM(38)에 저장된다. 복호된 데이터는 HDMA(32), HIM(16), 버스(26)를 통해, BRAM(38)로부터 호스트 장치(24)로 전송된다. BRAM(38)로부터 인출된 데이터는 호스트 장치(24)로 전송된 데이터가 다시 암호되도록 HDMA(32)로 전달되기 전에 암호화 엔진(40)에 의해 다시 암호화될 수 있지만 그러나 메모리(20)에 저장된 데이터가 복호되는 것과 비교되는 다른 알고리즘 및/또는 다른 키에 의해 암호화될 수 있다. 바람직하게는, 대안의 실시에에서, 위에서 설명된 과정에서 BRAM(38)에 복호된 데이터를 저장하는 것보다는, 상기 데이터가 비인증된 접근에 취약하게 될 수 있으며, 메모리(20)으로부터의 데이터는 BRAM(38)로 전송되기 전에 암호화 엔진(40)에 의해 다시 복호되고 암호될 수 있다. BRAM(38) 안의 암호화된 데이터는 이때 이전과 같이 호스트 장치(24)로 전송된다. 이는 판독 과정 동안의 데이터 스트림을 설명한다. First, when data from the flash memory 20 is read by the host device 24, the data encrypted in the memory 20 is transferred to the bus 28, the FDMA 34, the FDMA 34, and the encryption engine 40. The data that is fetched and encrypted through is decrypted and stored in the BRAM 38. The decoded data is transferred from the BRAM 38 to the host device 24 via the HDMA 32, the HIM 16, and the bus 26. The data retrieved from the BRAM 38 may be re-encrypted by the encryption engine 40 before being transferred to the HDMA 32 so that the data sent to the host device 24 is encrypted again, but stored in the memory 20. May be encrypted by other algorithms and / or other keys compared to being decrypted. Preferably, in an alternative embodiment, rather than storing the decoded data in the BRAM 38 in the process described above, the data may be vulnerable to unauthorized access, and the data from the memory 20 may be It may be decrypted and encrypted again by the encryption engine 40 before being sent to the BRAM 38. The encrypted data in the BRAM 38 is then transmitted to the host device 24 as before. This describes the data stream during the reading process.

데이터는 호스트 장치(24)에 의해 메모리(20)로 기록되는 경우, 데이터 스트림의 방향이 거꾸로 된다. 예를 들어, 비암호화된 데이터가 호스트 장치에 의해, 암호화 엔진(40)으로 버스(26), HIM(16), HDMA(32)를 통해 보내진다면, 이와 같은 데이터는 BRAM(38)에 저장되기 전에 엔진(40)에 의해 암호화될 수 있다. 대안으로, 비암호화된 데이터는 BRAM(38)에 저장될 수 있다. 데이터는 이때 메모리(20)로 가는 중에 FDMA(34)로 전송되기 전에 암호화된다. 기록된 데이터가 다단계 암호 처리를 겪으며, 바람직하게는 엔진(40)은 처리된 데이터가 BRAM(38)에 저장되기 전에 이와 같은 처리를 완료한다. When data is written to the memory 20 by the host device 24, the direction of the data stream is reversed. For example, if unencrypted data is sent by the host device to the encryption engine 40 via bus 26, HIM 16, HDMA 32, such data is stored in BRAM 38. Before it can be encrypted by the engine 40. Alternatively, unencrypted data may be stored in the BRAM 38. The data is then encrypted before being sent to the FDMA 34 on the way to the memory 20. The recorded data undergoes a multi-level encryption process, preferably the engine 40 completes such processing before the processed data is stored in the BRAM 38.

도 1의 메모리 시스템(10)이 플래시 메모리를 포함하는 반면, 대안으로 시스템은 대신, 자기 디스크, 광 CD와 같은, 다른 유형의 비휘발성 메모리뿐만 아니라, 모든 다른 유형의 재기록가능 비휘발성 메모리 시스템을 포함할 수 있고, 위에서 설명된 다양한 이점이 이와 같은 대안의 실시예에 동일하게 적용될 수 있다. 대안의 실시예에서, 메모리는 또한 바람직하게는 메모리 시스템의 잔존 구성소자를 따 라 (메모리 카드 또는 스틱과 같은) 동일한 물리적 바디(body) 내에 캡슐화된다. While memory system 10 of FIG. 1 includes flash memory, alternatively the system may instead include other types of non-volatile memory, such as magnetic disks, optical CDs, as well as all other types of rewritable non-volatile memory systems. And the various advantages described above may equally apply to such alternative embodiments. In an alternative embodiment, the memory is also encapsulated within the same physical body (such as a memory card or stick), preferably along with the remaining components of the memory system.

타이틀 키 관리Title key management

도 2는 본 발명의 일 실시예를 설명하기 위해 타이틀 키 파일의 구조를 나타내는 개략도이다. 다수의 암호화/복호화 키가 디지털 저작권 관리에 이용되는 경우, 도 2에 나타난 것과 같이, 복수의 개별 타이틀 키 파일에서 키를 조직하고 저장하는 것이 편리할 수 있다. 도 2의 실시예에서, 타이틀 키 파일(102)은 127 개의 키를 포함하기 위해 127 개의 슬롯(slot) 또는 위치로 설계된다. 도 2에 나타난 바와 같이, 파일(102)은 합계 128 개의 슬롯 또는 위치를 포함하고, 바로 제 1 슬롯 또는 위치(102a)는 헤더에 예약되어 있고(reserve) 키를 저장하는데 사용되지 않는다. 처음에, 127 개의 슬롯 또는 위치는 모두 1 또는 0, 또는 임의의 값을 포함할 수 있고, 이는 유효 키 값이 아니다. 바람직하게는, 유효 타이틀 키 엔트리("TKE")는 초기 값을 중복기록(overwrite)함으로써 127 개의 슬롯 또는 위치로 연속적으로 기록되어, 모든 127 개의 슬롯 또는 위치가 유효 키 값으로 채워지는 경우, 이들은 다음의 값, 즉 TKE1, TKE2, ... TKE127을 포함할 수 있다. 바람직하게는, 특정 타이틀 키 엔트리가 유효 키 인지 아닌지 여부는 도 3a에 설명된 키 탐색 파일에 저장된 타이틀 키 상태 비트에 의해 나타난다. 따라서 파일(102)에서의 임의의 특정 타이틀 키 엔트리의 대응 타이틀 키 상태 비트를 검사함으로써, 타이틀 키 파일(102)로 실제 접근하지 않고, 이와 같은 엔트리가 유효 키로 이루어졌는지 또는 포함하는지 여부를 결정하는 것이 가능하다. Fig. 2 is a schematic diagram showing the structure of a title key file for explaining one embodiment of the present invention. If multiple encryption / decryption keys are used for digital rights management, it may be convenient to organize and store the keys in a plurality of individual title key files, as shown in FIG. In the embodiment of FIG. 2, the title key file 102 is designed with 127 slots or locations to contain 127 keys. As shown in FIG. 2, file 102 includes a total of 128 slots or locations, and immediately the first slot or location 102a is reserved in the header and is not used to store the key. Initially, all 127 slots or locations may contain 1 or 0, or any value, which is not a valid key value. Preferably, a valid title key entry ("TKE") is successively written to 127 slots or positions by overwriting the initial value, so that if all 127 slots or positions are filled with valid key values, they are It may include the following values: TKE1, TKE2, ... TKE127. Preferably, whether or not a particular title key entry is a valid key is indicated by title key status bits stored in the key navigation file described in FIG. 3A. Thus, by examining the corresponding title key status bits of any particular title key entry in file 102, it is possible to determine whether such an entry is made of or contains a valid key without actually accessing the title key file 102. It is possible.

도 3a는 키 탐색 파일의 구조를 설명하기 위해 키 탐색 파일에 관한 개략도 이다. 도 3a에 나타난 바와 같이, 키 탐색 파일(104)은 다수의 키 파일 상태("KFS") 필드, 즉 KFS000, KFS001, ... KFS031, KFS032, KFS033, ... KFS063 ...를 포함한다. 각각의 타이틀 키 상태 필드는 대응 타이틀 키 파일의 타이틀 키 상태 비트를 포함한다. 따라서 KFS000이라 붙여진 키 파일 상태 필드(104a)는 타이틀 키 파일(102)에서 127 개의 타이틀 키 엔트리의 127 개의 타이틀 키 상태 비트를 포함한다. 암호화/복호화에 사용된 키의 개수가 127을 초과하는 경우, 타이틀 키 파일(120)에서의 모든 슬롯 또는 위치가 다 소모되어서, 새로운 타이틀 키 파일은 127을 초과한 키를 저장하기 위해 생성될 필요가 있다. 타이틀 키 상태 필드(104b)는 이때 새로운 타이틀 키 파일에서 초과 타이틀 키 엔트리의 상태를 나타내도록 타이틀 키 상태 비트를 저장하기 위한 키 탐색 파일(104) 내에 생성된다. 도 3a는 적어도 64 개의 타이틀 키 파일이 생성되는 상황을 설명하여, 키 탐색 파일(104)은 KFS000에서 KFS063까지의, 적어도 64 개의 타이틀 키 상태 필드를 포함한다. 키 탐색 파일(104)과 타이틀 키 파일 사이의 관계는 도 3b에서 더 상세히 설명된다. 3A is a schematic diagram of a key navigation file to explain the structure of the 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, ... KFS063 ... . Each title key status field contains a title key status bit of the corresponding title key file. Thus, the key file status field 104a labeled KFS000 contains 127 title key status bits of 127 title key entries in the title key file 102. If the number of keys used for encryption / decryption exceeds 127, all slots or positions in the title key file 120 are exhausted, so a new title key file needs to be created to store keys exceeding 127. There is. Title key status field 104b is then created in key navigation file 104 for storing title key status bits to indicate the status of excess title key entries in the new title key file. 3A illustrates a situation in which at least 64 title key files are generated, 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 described 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 generated key file 102 is given a file name of key_file.000 and the next generated key file is assigned a name of key_file.001.

일 실시예에서, 키 탐색 파일(104)에서 각각의 슬롯 또는 위치 및 엔트리는 타이틀을 키 파일 중 하나에서 특정 슬롯 또는 위치와 이와 같은 슬롯 또는 위치에서의 타이틀 키 엔트리와 공지된 1 대 1 대응 관계를 가진다. 이 방식에서, 특정 타이틀 키 엔트리가 유효 키를 포함하는지 아닌지를 검사하기 위해, 타이틀 키 파일에서의 이와 같은 타이틀 키 엔트리에 대응하는 키 탐색 파일(104)에서 위치 또는 슬롯을 발견하고 키 탐색 파일(104)에 그 위치에서 키 파일 상태 비트를 검사하는 것만이 필요할 수 있다. In one embodiment, each slot or location and entry in key navigation file 104 has a known one-to-one correspondence with the title key entry in that slot or location and a particular slot or location in one of the key files. Has In this manner, in order to check whether a particular title key entry contains a valid key, the location or slot is found in the key navigation file 104 corresponding to such a title key entry in the title key file and the key navigation file ( It may only be necessary to check the key file status bit at that location in 104.

본 발명의 이 실시예에서, 타이틀 키 엔트리는 도 3b에 나타난 바와 같이 다른 타이틀 키 파일들을 거쳐 순차적으로 라벨 붙여진다. 따라서, 타이틀 키 파일 key_file.000에서의 타이틀 키 엔트리는 TKE1 - TKE127로 라벨 붙여진다. 타이틀 키 파일 key_file.001에서의 타이틀 키 엔트리는 TKE129 - TKE255로 라벨 붙여진다. 그리고 타이틀 키 파일 key_file.002에서의 타이틀 키 엔트리는 TKE257-TKE383으로 라벨 붙여진다. 각각의 타이틀 키 파일의 제 1 위치 및 엔트리(즉, TKE0, TKE128, TKE 256, ...)는 헤더에 대해 예약되어 있고, 이는 파일의 크기, 버전 번호(version number) 이와 같은 정보 및 파일에 대한 다른 정보를 포함할 수 있다. 따라서, 각각의 타이틀 키 엔트리는 이와 관련된 고유 번호를 가지고, 이는 1-127, 129-255, 257-383 등과 같은 것 중 하나이다. 바람직하게는 이 고유 번호는 이때 대응 키 파일 상태 비트가 찾아진 키 탐색 파일에서의 특정 위치를 식별하기 위해 사용된다. 도 3b에 도시된 바와 같이, 타이틀 키 엔트리에 대응하는 키 파일 상태 비트는 다른 타이틀 키 파일을 거쳐 타이틀 키 엔트리로서 동일 시퀀스에서의 위치에 저장된다. 예를 들어, 도 3b에 설명된 바와 같이, 타이틀 키 엔트리 TKE[i]가 유효 키를 포함하는지 아닌지를 나타내기 위한 키 파일 상태 비트 "KFS[i]"는, 제 1 키 파일 상태 필드 KFS000의 상부에서 제 1 위치부터 계산하는, 키 탐색 파 일(104)에서 i 번째 위치에 저장되고, i 번째 위치는 KFS000과 다른 키 파일 상태 필드에 있다. 다시 말해서, 이 고유 번호는 모든 키 상태 필드에서 유일하며, 키 탐색 파일(104)에서 마지막 티 파일 상태 엔트리까지 모든 키 파일 상태 필드 KFS000, KFS001, ...,에 걸쳐 KFS000의 상부에서 제 1 위치로부터 연속하여 시작하며 번호가 매겨진다.In this embodiment of the present invention, title key entries are sequentially labeled across other title key files as shown in FIG. 3B. Thus, the title key entry in the title key file key_file.000 is labeled TKE1-TKE127. Title key entries in the title key file key_file.001 are labeled TKE129-TKE255. The title key entry in the title key file key_file.002 is labeled TKE257-TKE383. The first location and entry (ie, TKE0, TKE128, TKE 256, ...) of each title key file is reserved for the header, which indicates the size of the file, the version number and the like. May contain other information. Thus, each title key entry has a unique number associated with it, which is one such as 1-127, 129-255, 257-383, or the like. Preferably this unique number is then used to identify a particular location in the key navigation file from which the corresponding key file status bit was found. As shown in Fig. 3B, a key file status bit corresponding to a title key entry is stored at a position in the same sequence as a title key entry via another title key file. For example, as described in FIG. 3B, the key file status bit "KFS [i]" for indicating whether or not the title key entry TKE [i] contains a valid key is defined in the first key file status field KFS000. It is stored in the i th position in the key navigation file 104, which calculates from the first position on top, and the i th position is in a key file status field different from KFS000. In other words, this unique number is unique in every key status field and is the first position at the top of KFS000 across all key file status fields KFS000, KFS001, ..., from key navigation file 104 to the last tee file status entry. Are numbered starting consecutively from.

이 방식으로, 키 파일 상태 비트의 특정 위치 및 키 탐색 파일(104)에서 고유 번호의 시퀀스에서 이와 같은 비트와 관련된 고유 번호를 검사함으로써, 특정 타이틀 키 파일, 및 이와 같은 파일에서의 위치가 이때 이하 설명되는 간단한 과정을 사용하여, 대응 타이틀 키 엔트리를 발견할 수 있다는 것을 쉽게 결정할 수 있다. 그러므로 반대 과정 또한 그대로이다. 특정 키 타이틀 키 파일과 관련된 고유 번호 및 특정 타이틀 키 엔트리의 이와 같은 파일에서의 위치를 안다면, 이와 같은 엔트리에 대한 대응 키 파일 상태 비트는 키 탐색 파일(104)에서 찾아질 수 있다. In this way, by examining the specific location of the key file status bits and the unique number associated with such bits in the sequence of unique numbers in the key navigation file 104, the specific title key file, and the location in such a file, is then: Using the simple procedure described, one can easily determine that a corresponding title key entry can be found. So the opposite process is also true. Knowing the unique number associated with a particular key title key file and the location of that particular title key entry in such a file, the corresponding key file status bit for such an entry can be found in the key navigation file 104.

이 하나의 실시예에서, 키 탐색 파일(104)에서의 특정 키 파일 상태에 대응하는 타이틀 키 엔트리를 발견하기 위한 과정은 다음과 같이 이행될 수 있다. 각각의 타이틀 키 엔트리 및 대응 키 파일 상태 비트와 관련된 고유 번호는 키 탐색 인덱스("KNI")로 언급된다. 따라서 KNI 값 0, 128, 256, 384 ... (N+128)은 부적합(illegal)하며, 여기서 N은 정수이다. 그러므로 KNI는 또한 KFS000의 헤더에서 바로 제 1 상태 비트로부터 키 탐색 파일(104)에서 키 파일 상태 비트의 오프셋이다. 위치, 오프셋 및 키 탐색 파일(104)에서 특정 상태 비트의 KNI의 대응 값을 유의함으로써, 대응 타이틀 키 엔트리의 위치를 쉽게 결정할 수 있다. 이는 각각의 타이틀 키 파일 및 키 파일 상태 필드에 슬롯의 개수로 즉, 도 3b의 실시예에서 128로 나눔으로써 이루어진다. 이때 몫의 정수 부분은 대응 타이틀 키 엔트리를 포함하는 타이틀 키 파일의 일련 번호를 제공한다. 다시 말해서, 타이틀 키 엔트리를 포함하는 타이틀 키 파일의 일련 번호는 KNI/128의 정수 부분에 의해 주어진다. 이와 같은 엔트리를 포함하는 타이틀 키 파일에서의 이와 같은 타이틀 키 엔트리의 특정 위치는 이와 같은 부분의 나머지 부분으로부터 또는 KNI % 128 또는 KNI mod 128에 의해 발견될 수 있다; 이 값은 타이틀 키 엔트리가 발견되는 이와 같은 타이틀 키 파일에서 상부 엔트리부터 이와 같은 타이틀 키 엔트리의 특정 위치의 오프셋이다. In this one embodiment, the process for finding a title key entry corresponding to a particular key file state in the key navigation file 104 may be implemented as follows. The unique number associated with each title key entry and corresponding key file status bit is referred to as the key search index ("KNI"). Thus, the KNI values 0, 128, 256, 384 ... (N + 128) are illegal, where N is an integer. Therefore, the KNI is also the offset of the key file status bit in the key navigation file 104 from the first status bit directly in the header of KFS000. By noting the position, offset, and corresponding value of the KNI of a particular status bit in the key navigation file 104, the position of the corresponding title key entry can be easily determined. This is done by dividing the number of slots in each title key file and key file status field, i.e. by 128 in the embodiment of FIG. 3B. The integer portion of the quotient then provides the serial number of the title key file containing the corresponding title key entry. In other words, the serial number of the title key file containing the title key entry is given by the integer portion of KNI / 128. The specific location of such a title key entry in a title key file containing such an entry may be found from the rest of this portion or by KNI% 128 or KNI mod 128; This value is the offset of the specific position of this title key entry from the top entry in such a title key file where the title key entry is found.

도 3b에 설명되어 있는 일 실시예에서, 키 탐색 인덱스(KNI)가 i이도록 타이틀 키 엔트리 i(TKE i)에 대한 이와 같은 파일 내에 위치 및 특정 타이틀 키 파일을 발견하기를 원한다고 가정한다. 따라서 이와 같은 타이틀 키 엔트리의 상태를 나타내는 타이틀 키 에트리는 키 탐색 파일(104)에서 KFS[i]이다. 도 3b에서 설명된 특정 예에서, 이와 같은 상태 비트는 키 파일 상태 필드 001, 즉 KFS001에서 발견된다. 이와 같은 타이틀 키 엔트리가 발견될 수 있는 특정 타이틀 키 파일은 i% 128 또는 i mod 128에 의해 주어진다. 도 3b의 설명된 예에서, i가 129와 255 사이의 값을 가져, 128로 나눠진 i의 정수 부분은 1이고, 타이틀 키 파일 key_file.001이 대응 타이틀 키 엔트리 i를 포함하는 것을 쉽게 결정한다. 이때 연산자 i mod128를 수행함으로써 나눗셈의 나머지 부분을 결정하고, 이는 타이틀 키 파일 key_file.001에서 상부 엔트리로부터 타이틀 키 엔트리 TKEi의 오프셋을 제공한다. 따라서 위에서 설명된 바와 같이 2 개의 매우 간단한 연산자에 의해, 특정 타이틀 키 파일 및 키 탐색 파일에 특정 위치에 대응하는 타이틀 키 엔트리를 포함하는 이와 같은 파일 내의 위치가 발견될 수 있다. In one embodiment described in FIG. 3B, suppose we want to find a specific title key file and location within such a file for title key entry i (TKE i) such that key search index KNI is i. Thus, the title key entry representing the state of such a title key entry is KFS [i] in the key navigation file 104. In the specific example described in FIG. 3B, such a status bit is found in the key file status field 001, ie KFS001. The specific title key file where such a title key entry can be found is given by i% 128 or i mod 128. In the illustrated example of FIG. 3B, i has a value between 129 and 255 so that the integer portion of i divided by 128 is 1 and it is easy to determine that the title key file key_file.001 contains the corresponding title key entry i. The remainder of the division is then determined by performing the operator i mod128, which provides the offset of the title key entry TKEi from the top entry in the title key file key_file.001. Thus, by two very simple operators as described above, a location within such a file containing a title key entry corresponding to a particular location in a particular title key file and key navigation file can be found.

위의 실시예에서, 각각의 타이틀 키 파일은 16 바이트의 128 엔트리를 포함한다. 명백하게는, 타이틀 키 파일은 각각의 엔트리가 16과 다른 다수의 바이트를 가질 수 있는 128과는 다른 다수의 엔트리를 포함할 수 있다. 따라서 각각의 타이틀 키 파일이 m 개의 엔트리를 가지는 경우, 여기서 m은 임의의 양의 정수이고, 이때 위의 연산자는 KNI 또는 키 탐색 인덱스가 128 대신에 m으로 나누어지도록 변경될 필요가 있다. 오프셋은 타이틀 키 엔트리 TKEi의 오프셋을 이와 같은 타이틀 키 파일에서 상부 엔트리로부터 발견하는 것 대신에 i mod m에 의해 발견된다. 모든 이와 같은 변경은 본 발명의 범위 내에 있다.In the above embodiment, each title key file contains 128 entries of 16 bytes. Obviously, the title key file may include a number of entries other than 128, where each entry may have a number of bytes different from sixteen. Thus, if each title key file has m entries, where m is any positive integer, then the above operator needs to be changed so that the KNI or key search index is divided by m instead of 128. The offset is found by i mod m instead of finding the offset of the title key entry TKEi from the top entry in such a title key file. All such changes are within the scope of the present invention.

타이틀 키 파일에서 키를 찾기 위해 또는 키 탐색 파일에서 상태 비트를 찾기 위해 위에서 설명된 바와 같이 연산자 i/m 및 i mod m 및 고유 번호 KNI를 사용하는 것 대신에, 키 탐색 파일의 엔트리와 각각의 타이틀 키 파일의 TKE 사이의 일대일 대응 관계가 룩업 테이블(look-up table)에 의해 수립될 수 있다. CPU(12)는 키 탐색 파일에서 상태 비트의 위치로 주어진 대응하는 키의 위치를 발견하기 위해 룩업 테이블을 검사할 필요가 있을 수 있으며, 반대의 경우도 가능하다(즉, 특정 타이틀 키 파일에서의 키의 위치로 주어진 키 상태를 드러내는 키 탐색 파일에서 상태 비트를 발견하기 위해). 이와 같은 변경 및 다른 변경은 본 발명의 범위 내에 있다. Instead of using the operators i / m and i mod m and the unique number KNI as described above to find the key in the title key file or to find the status bits in the key navigation file, the entries in the key navigation file and each A one-to-one correspondence between TKEs of the title key file may be established by a look-up table. The CPU 12 may need to examine the lookup table to find the location of the corresponding key given the location of the status bits in the key navigation file, and vice versa (ie, in a particular title key file). To find the status bits in the key navigation file that reveal the key state given by the location of the key). Such and other changes are within the scope of the present invention.

일 실시예에서, 16 바이트 중 단지 7 바이트만이 암호화/복호화를 위해 키의 값에 대한 각각의 타이틀 키 엔트리에 사용된다. 바람직하게는, 키 값은 다른 키를 사용하여 암호화된다. 도 3b의 실시예에서, 타이틀 키 상태 비트가 0의 값으로 이루어진 경우, 이는 타이틀 키 엔트리가 사용중(busy)이며, 이는 비트가 각각의 타이틀 키 파일의 헤더에의 경우에서와 같이 예약되어 있거나, 또는 대응하는 타이틀 키 엔트리가 유효 키를 포함하는 것을 의미하며, 그러므로 새로운 키를 저장하기 위해 이용가능하지 않다. 타이틀 키 상태 비트가 1로 이루어진 경우, 이는 대응 타이틀 키 엔트리가 비어있거나(empty) 또는 유효 키를 포함하지 않는다는 것을 나타내어, 타이틀 키 파일에서 대응하는 슬롯 또는 위치는 이와 같은 슬롯 또는 위치에서 타이틀 키 엔트리를 중복기록함으로써 암호화/복호화 키를 저장하는데 이용가능하다. In one embodiment, only 7 of 16 bytes are used for each title key entry for the value of the key for encryption / decryption. Preferably, the key value is encrypted using another key. In the embodiment of FIG. 3B, if the title key status bit is made of a value of zero, it is a title key entry that is busy, which is reserved as in the case of the header of each title key file, or Or a corresponding title key entry contains a valid key, and therefore is not available for storing a new key. If the title key status bit is set to 1, this indicates that the corresponding title key entry is empty or does not contain a valid key, such that the corresponding slot or position in the title key file is the title key entry in that slot or position. Can be used to store the encryption / decryption key by overwriting the.

키 탐색 파일의 길이는 타이틀 키 파일의 개수에 의해 정의되지는 않지만 결정된다. 도 3a 및 도 3b에 설명되어 있는 실시예에서, 키 탐색 파일은 512 바이트 레코드(record)를 포함한다. 그러므로, 파일의 길이가 정의되어 있지 않더라도, 도 3a 및 도 3b의 실시예에서 512 바이트의 배수 내에 있다. 새로운 레코드가 필요하다면 파일에 추가될 수 있다. 타이틀 키 상태 비트 값은 불린 수(Boolean number)인 반면, 타이틀 키 파일의 일련 번호, 키 탐색 인덱스는 도 3a 및 도 3b의 실시예에서 십진수이다. The length of the key navigation file is not defined by the number of title key files but is determined. In the embodiment described in Figures 3A and 3B, the key navigation file includes a 512 byte record. Therefore, even if the length of the file is not defined, it is within a multiple of 512 bytes in the embodiment of Figs. 3A and 3B. New records can be added to the file if needed. The title key status bit value is a Boolean number, while the serial number, key search index of the title key file is decimal in the embodiment of FIGS. 3A and 3B.

도 4는 본 발명의 일 실시예를 설명하는데 사용되는 비보호 사용자 데이터 영역에서의 디렉토리 트리 구조(130)에 관한 개략도이다. 도 4에서의 디렉토리 트 리 구조(130)는 디렉토리 구조가 인증 없이 임의의 사용자, 장치 또는 애플리케이션에 의해 접근될 수 있는 플래시 메모리(20)에 저장된 파일이며, 이는 비보호 사용자 데이터 영역에 저장되어 있기 때문이다. 도 4에 도시된 바와 같이, 디렉토리 트리 구조는 루트 디렉토리 및 2 개의 측면 분기(branch), 즉 플레이어 1 디렉토리 및 플레이어 2 디렉토리를 가진다. 플레이어 1 또는 플레이어 2는 임의의 사용자, 장치 또는 애플리케이션일 수 있다. 2 개의 분기는 2 개의 다른 플레이어에 의해 쉽게 접근을 허용한다. 플레이어 1 디렉토리는 "Mysong,MP3", "Another.MP3"...와 같은 다수의 다른 콘텐츠 파일 및 키 탐색 파일 "KNF.bin"을 나열한다. 플레이어 2 디렉토리는 콘텐츠 파일 및 다른 키 탐색 파일, "KNF.bin"의 유사한 리스트를 포함한다. 따라서 플레이어 1이 사용자 데이터 영역에 접근하는 경우, 플레이어 1은 플레이어 1 디렉토리 및 콘텐츠 파일 및 이와 같은 디렉토리 하의 키 탐색 파일을 향해 지향되어 있다. 똑같은 일이 플레이어 2에 의한 접근에 대해서도 그대로이며, 이는 플레이어 2 디렉토리 내에서 콘텐츠 파일 뿐만아니라 이와 같은 디렉토리에서의 키 탐색 파일을 향해 지향되어 있다. 따라서, 플레이어 1이 콘텐츠 파일을 생성하는 경우, 이 파일이 생성되고 플레이어 1 디렉토리 하의 리스트에 추가된다. 콘텐츠 파일이 플레이어 2에 대해 생성되는 경우, 이 새로운 콘텐츠 파일은 또한 플레이어 2 디렉토리에서 나열된다. 4 is a schematic diagram of a directory tree structure 130 in an unprotected user data area used to describe one embodiment of the present invention. The directory tree structure 130 in FIG. 4 is a file stored in the flash memory 20 in which the directory structure can be accessed by any user, device or application without authentication, because it is stored in the unprotected user data area. to be. As shown in Fig. 4, the directory tree structure has a root directory and two side branches, namely, the Player 1 directory and the Player 2 directory. Player 1 or Player 2 can be any user, device or application. Two branches allow easy access by two different players. The Player 1 directory lists a number of other content files such as "Mysong, MP3", "Another.MP3" ... and key navigation file "KNF.bin". The Player 2 directory contains a similar list of content files and other key navigation files, "KNF.bin". Thus, when Player 1 accesses the user data area, Player 1 is directed towards the Player 1 directory and content files and key navigation files under such a directory. The same is true for access by Player 2, which is directed towards content files within the Player 2 directory as well as key navigation files in such directories. Thus, when Player 1 creates a content file, this file is created and added to the list under the Player 1 directory. If a content file is created for Player 2, this new content file is also listed in the Player 2 directory.

트리(130)에서의 콘텐츠 파일(예를 들어, "Mysong,MP3", "Another.MP3"...)은 도 5에서의 트리(150)에서의 디렉토리에 저장된 키를 사용하여 암호화된다. 몇 가지의 응용에서, 암호화된 콘텐츠 파일 및 (도 4에 도시되지 않은) 비암호화된 콘 텐츠 파일 모두는 또한 인증 없이 접근될 수 있는 동일한 비보호 사용자 데이터 영역에 저장될 수 있다. The content files in tree 130 (eg, "Mysong, MP3", "Another.MP3" ...) are encrypted using the keys stored in the directory in tree 150 in FIG. In some applications, both the encrypted content file and the unencrypted content file (not shown in FIG. 4) may also be stored in the same unprotected user data area that can be accessed without authentication.

도 5는 도 4 및 도 5의 디렉토리 트리(130, 150)가 서로 거울대칭인 메모리 장치(20)에서의 보호 영역에 디렉토리 트리(150)에 관한 개략도이다. 따라서 도 5에서, 디렉토리 트리는 플레이어 1 디렉토리 및 플레이어 2 디렉토리뿐만 아니라 루트 디렉토리를 가진다. 플레이어 1 디렉토리는 트리(130)에서 플레이어 1 디렉토리에 콘텐츠 파일을 암호하고/하거나 복호하기 위한 다수의 다른 타이틀 키 엔트리를 포함하는 타이틀 키 파일 key_file.000을 열거한다. 플레이어 2 디렉토리는 또한 다수의 타이틀 키 엔트리를 포함하는 타이틀 키 파일 key_file.000을 포함한다. 2 개의 디렉터(director) 하에서 2 개의 타이틀 키 파일이 동일한 이름(즉, key_file.000)을 가지더라도, 이들이 다른 디렉토리에 있기 때문에 이들이 혼동될 수 없다는 것을 유의한다. 똑같은 일이 도 4에서의 트리(130)에 2 개의 디렉토리에서 키 탐색 파일에 대해서 그대로이다. FIG. 5 is a schematic diagram of the directory tree 150 in a protected area in the memory device 20 in which the directory trees 130 and 150 of FIGS. 4 and 5 are mirror-symmetric with each other. Thus, in FIG. 5, the directory tree has a root directory as well as a player 1 directory and a player 2 directory. The Player 1 directory lists a title key file key_file.000 that contains a number of different title key entries in the tree 130 for encrypting and / or decrypting content files in the Player 1 directory. The Player 2 directory also includes a title key file key_file.000 that contains a number of title key entries. Note that even if two title key files under the two directors have the same name (ie key_file.000), they cannot be confused because they are in different directories. The same thing is true for the key navigation file in two directories in the tree 130 in FIG.

2 개의 디렉토리 트리(130, 150)는, 디렉토리 플레이어 1과 2의 콘텐츠가 2 개의 트리(130, 150)에서 다를지라도, 동일한 분기, 즉 플레이어 1 디렉토리 및 플레이어 2 디렉토리를 가지기 때문에 서로 거울대칭이다. 각각의 트리(130)와 트리(150) 사이의 2 개의 디렉토리가 (도 4 및 도 5에 도시되지 않은) 플레이어 3 등과 같은, 플레이어 1 및 플레이어 2와 같이 동일한 레벨에서 더 많은 분기를 가지는 것이 가능하다. 2 개의 디렉토리 플레이어 1과 플레이어 2가 하위 디렉토리를 가지는 것이 또한 가능하다. 예를 들어, 트리(130)에서 플레이어 1 디렉토리는 2 개의 하위디렉토리 즉, (도 4에 도시되지 않은) 오디오 파일 용 하위디렉토리 및 비디오 파일용 하위 디렉토리를 가질 수 있다. 오디오 파일 하위 디렉토리는 노래와 같은 오디오 파일 및 이와 같은 오디오 파일 중에서 탐색을 위한 키 탐색 파일의 리스트를 포함할 수 있다. 비디오 하위 디렉토리는 비디오 파일 및 이와 같은 비디오 파일 사이의 탐색을 위한 키 탐색 파일을 포함할 수 있다. 이와 같은 이벤트에서, 도 5에서의 디렉토리 트리(150)는 또한 유사한 트리 구조를 가진다. 따라서 트리(150)에서의 플레이어 1 디렉토리는 2 개의 다른 하위디렉토리, 즉 (도 5에 도시되지 않은) 오디오 및 비디오 하위디렉토리를 가질 수 있다. 비디오 하위 디렉토리는 디렉토리 트리(130)의 비디오 하위 디렉토리에서 비디오 파일을 암호/복호하기 위해 사용되는 타이틀 키 엔트리를 각각 포함하는 타이틀 키 파일 또는 파일들의 리스트를 포함한다. 디렉토리 트리(150)는 또한 오디오 하위 디렉토리가 디렉토리 트리(130)의 오디오 하위 디렉토리에 나열된 대응 오디오 파일을 암호/복호하기 위해 사용된 타이틀 키 엔트리를 각각 포함하는 하나 이상의 타이틀 키 파일을 포함하는 플레이어 1 디렉토리 하의 오디오 하위디렉토리를 가질 수 있다. 이하 설명되어 있는 바와 같이, 비보호 영역 및 보호 영역에서 서로에 대해 거울대칭인 디렉토리 트리(130, 150)를 가지는 것은 키 탐색 메커니즘의 동작을 용이하게 한다. The two directory trees 130, 150 are mirror symmetric with each other because they have the same branch, that is, the player 1 directory and the player 2 directory, although the contents of directory players 1 and 2 are different in the two trees 130, 150. It is possible that two directories between each tree 130 and tree 150 have more branches at the same level, such as Player 1 and Player 2, such as Player 3 (not shown in FIGS. 4 and 5), and the like. Do. It is also possible for two directories Player 1 and Player 2 to have subdirectories. For example, the player 1 directory in tree 130 may have two subdirectories, one for audio files (not shown in FIG. 4) and one for video files. The audio file subdirectory may include a list of audio files, such as songs, and key navigation files for searching among such audio files. The video subdirectory may contain video files and key navigation files for searching between such video files. In such an event, directory tree 150 in FIG. 5 also has a similar tree structure. Thus, the Player 1 directory in tree 150 may have two different subdirectories, namely audio and video subdirectories (not shown in FIG. 5). The video subdirectory contains a list of title key files or files, each containing a title key entry used to encrypt / decrypt the video file in the video subdirectory of directory tree 130. Directory tree 150 also includes one or more title key files, each containing one or more title key entries, wherein the audio subdirectory each includes a title key entry used to encrypt / decrypt the corresponding audio file listed in the audio subdirectory of directory tree 130. You can have audio subdirectories under a directory. As described below, having directory trees 130, 150 that are mirror symmetric with respect to each other in the unprotected and protected areas facilitates the operation of the key navigation mechanism.

임의의 보호 콘텐츠 파일이 메모리 장치(20)에 생성되기 전에, 전형적으로, 메모리 장치(20)에 어떠한 키 저장 파일 또는 키 탐색 파일도 없다. 이와 같은 이벤트에서, 보호되려는 제 1 콘텐츠 파일이 생성되는 경우, 키 탐색 메커니즘으로 본 발명에 언급된 키 관리자는 또한 보호 영역에서 제 1 타이틀 키 저장 파일 및 비보호 사용자 영역에서 키 탐색 파일을 생성한다. Before any protected content file is created in memory device 20, there is typically no key storage file or key navigation file in memory device 20. In such an event, when a first content file to be protected is created, the key manager mentioned in the present invention as a key navigation mechanism also generates a first title key storage file in the protected area and a key navigation file in the unprotected user area.

도 6은 키 탐색 메커니즘에 의해 수행된 과정 또는 방법을 설명하는 흐름도이다. 도 6의 과정을 수행하는 메커니즘은 콘텐츠 파일, 타이틀 키 파일 및 키 탐색 파일이 저장되어 있는 메모리 시스템으로 명령어를 보내는 호스트 장치(24)에 의해 실행되고 저장되어 있는 컴퓨터 프로그램 코드를 포함할 수 있다. 대안으로, 메커니즘은 CPU(12)로 로딩되고(load) 이에 의해 실행되는 플래시 메모리(20)에 저장되어 있는 컴퓨터 프로그램 코드를 포함할 수 있다. 따라서 도 6 및 도 7의 키 탐색 메커니즘에 대한 컴퓨터 프로그램은 호스트 장치(24)의 일부이거나 또는 이에 연결되는 컴퓨터 판독가능 매체에 저장될 수 있다; 대안으로, 이와 같은 컴퓨터 프로그램은 타이틀 키 파일, 키 탐색 파일 및 콘텐츠 파일이 저장되어 있는 플래시 메모리(20)에 저장될 수 있다. 모든 이와 같은 변경은 본 발명의 범위 내에 있다. 6 is a flow chart illustrating a process or method performed by a key navigation mechanism. The mechanism for performing the process of FIG. 6 may include computer program code that is executed and stored by the host device 24 that sends instructions to a memory system where content files, title key files, and key navigation files are stored. Alternatively, the mechanism may include computer program code stored in flash memory 20 that is loaded into and executed by the CPU 12. Thus, the computer program for the key navigation mechanism of FIGS. 6 and 7 can be stored in a computer readable medium that is part of or coupled to host device 24; Alternatively, such a computer program may be stored in flash memory 20 where title key files, key navigation files and content files are stored. All such changes are within the scope of the present invention.

도 6을 참고로 하여, 도 6의 메커니즘의 과정은 보호된 콘텐츠 파일을 열거나, 또는 보호된 콘텐츠 파일이 생성되려는 경우를 바란다면 시작한다(블록 202). 키 탐색 메커니즘은 콘텐츠 파일이 존재하는지 아닌지를 결정한다(다이아몬드 204). 콘텐츠 파일이 존재하지 않는다면, 이는 콘텐츠 파일이 생성될 필요가 있음을 의미하며 호스트 장치(24) 또는 CPU(12)는 디렉토리 트리(130)에서 플레이어 1에 대해서와 같이, 파일을 생성하기 위해 나아간다(블록 206). 콘텐츠 파일이 생성된 후에, 키 탐색 메커니즘은 키 탐색 파일이 이미 존재하는지 또는 이미 생성되었는지 여부를 검사한다(다이아몬드 207a). 존재하지 않거나 생성되지 않은 경우, 메 커니즘은 키 탐색 파일을 생성한다(블록 207b). 이미 존재하거나 생성된 경우, 메커니즘은 도 4에 설명된 디렉토리(130)와 같은 디렉토리에서, 새롭게 생성된 콘텐츠 파일과 같은 동일 디렉토리에서 발견된 키 탐색 파일을 연다(블록 208). 양 경우에, 메커니즘은 트리(130)에 플레이어 1 디렉토리에서 키 탐색 파일을 검사하고 "빈(empty)" 상태를 가진 제 1 키 엔트리를 발견한다. 키 탐색 파일에서 "빈" 상태의 오프셋은 KNI를 사용하는 위의 실시예를 이용하며, 키 탐색 인덱스(KNI)를 제공한다(블록 208, 210).Referring to FIG. 6, the process of the mechanism of FIG. 6 begins if the protected content file is to be opened or if a protected content file is desired to be created (block 202). The key navigation mechanism determines whether the content file exists (diamond 204). If the content file does not exist, this means that the content file needs to be created and the host device 24 or the CPU 12 goes on to create the file, as for player 1 in the directory tree 130. (Block 206). After the content file is created, the key navigation mechanism checks whether the key navigation file already exists or has already been created (diamond 207a). If it does not exist or has not been created, the mechanism creates a key navigation file (block 207b). If already present or created, the mechanism opens the key navigation file found in the same directory as the newly created content file, in a directory such as directory 130 described in FIG. 4 (block 208). In both cases, the mechanism examines the key navigation file in the Player 1 directory in the tree 130 and finds a first key entry with a " empty " status. The offset of the "empty" state in the key navigation file utilizes the above embodiment using KNI and provides a key navigation index (KNI) (blocks 208, 210).

타이틀 키 파일 및 키 탐색 파일이 위의 이행에서 사용되는 경우, 타이틀 키 파일에서 위치 또는 타이틀 키 엔트리는 순차적으로 사용된다. 이는 하나의 암호화/복호화 키가 생성되고 타이틀 키 파일에 저장될 필요가 있는 경우, 타이틀 키 파일에서 슬롯 또는 위치가 타이틀 키 파일 key_file.000에서 타이틀 키 엔트리 1을 가지고 시작하며, 키를 순차적으로 저장하는데 사용되는 것을 의미한다. 이와 같은 키가 저장되고 키 엔트리, TKE1, 또는 이의 일부를 형성한 후, 대응하는 키 파일 상태 비트 KFS[1] 값은, 이 위치가 헤더에 대해 예약된 위치가 아니기 때문에, 유효 키를 지금 포함한다는 것을 의미하며, 비어있지 않고 지금 사용중임을 나타내는, 1에서 0으로 변경된다. 처음에, 모든 키 파일 상태 비트는, 값 0을 가지는 0, 128, 256, ...에 대한 키 파일 상태 비트를 제외하고는 값 1을 가진다. If a title key file and a key navigation file are used in the above transition, the position or title key entry in the title key file is used sequentially. This means that if one encryption / decryption key is generated and needs to be stored in the title key file, the slot or position in the title key file starts with the title key entry 1 in the title key file key_file.000 and stores the keys sequentially. It is meant to be used to. After such a key is stored and forms a key entry, TKE1, or part thereof, the corresponding key file status bit KFS [1] value now contains a valid key because this location is not a reserved location for the header. It is changed from 1 to 0, indicating that it is not empty and that it is in use now. Initially, all key file status bits have a value of 1 except for the key file status bits for 0, 128, 256, ... which have a value of zero.

KNI가 획득된 후, 키 탐색 메커니즘은 이때 키 파일 인덱스 또는 KNI/128의 정수 부분과 동일한 nnn을 계산하고(블록 212), 각각의 타이틀 키 파일은 128 개의 슬롯 또는 위치를 가진다. nnn 또는 키 파일 인덱스는 수 KNI/128의 정수 부분이 다. 이 nnn 또는 키 파일 인덱스 값은 타이틀 키 파일의 일련 번호이다. 이때 이와 같은 타이틀 키 파일 내의 오프셋은 양(quantity) KNI % 128 또는 KNI mod 128을 계산함으로써 획득된다(블록 214). After the KNI is obtained, the key navigation mechanism then computes the same nnn as the key file index or integer portion of KNI / 128 (block 212), with each title key file having 128 slots or locations. nnn or the key file index is the integer part of the number KNI / 128. This nnn or key file index value is the serial number of the title key file. This offset in the title key file is then obtained by calculating the quantity KNI% 128 or KNI mod 128 (block 214).

위에서 언급된 바와 같이, 콘텐츠 파일은 도 4의 디렉토리 트리(130) 안의 플레이어 1 디렉토리와 같은, 디렉토리 내에서 생성된다. 바로 생성된 콘텐츠 파일을 암호하고/하거나 복호하기 위해 암호화/복호화 키를 저장하기 위한 보호 영역에서 타이틀 키 파일에서 위치를 획득하기 위해, 키 탐색 메커니즘은 이때, 비보호된 사용자 데이터 영역에 대한 공중 파티션 이름을 보호 영역에 대한 보호 파티션(partition) 이름으로 대체함으로써, 비보호된 사용자 데이터 영역에서의 디렉토리 트리(130)에 따라 구성된 접근 경로를 보호 영역 또는 파티션에서 디렉토리 트리(150)에 따라 구성되는 접근 경로로 변환한다(블록 216). 키 탐색 메커니즘은 이때 키 파일 이름: "key_file.nnn"을 형성한다(블록 218). 키 탐색 메커니즘은 전체 키 파일 이름을 형성한다(블록 220). 일 예로서, 플레이어 1이 블록 208, 210, 212, 214, 216, 218 및 220을 따라 암호화되려는 새로운 노래 파일을 생성하는 중이라고 가정한다. 이와 같은 이벤트에서, 생성된 전체 키 파일 이름은 "prot_partition/player1directory/key_file.nnn"일 것이다.As mentioned above, the content file is created in a directory, such as the Player 1 directory in directory tree 130 of FIG. In order to obtain the location in the title key file in the protected area for storing the encryption / decryption key for encrypting and / or decrypting the generated content file immediately, the key navigation mechanism then uses the public partition name for the unprotected user data area. Is replaced by a protected partition name for the protected area, thereby replacing the access path configured according to the directory tree 130 in the unprotected user data area with the access path configured according to the directory tree 150 in the protected area or partition. Convert (block 216). The key navigation mechanism then forms a key file name: "key_file.nnn" (block 218). The key navigation mechanism forms the full key file name (block 220). As an example, assume that Player 1 is creating a new song file to be encrypted along blocks 208, 210, 212, 214, 216, 218 and 220. In such an event, the generated full key file name would be "prot_partition / player1directory / key_file.nnn".

키 탐색 메커니즘은 이때 타이틀 키 파일이 이 키 파일 이름과 함께 존재하는 지를 보기 위해 검사한다(다이아몬드 221a). 이 타이틀 키 파일이 존재하지 않는다면, 메커니즘은 타이틀 키 파일을 생성하고 디렉토리 트리(150)에서 적당한 디렉토리(예를 들어, 플레이어 1)에 이를 추가한다(블록 221b). 이 타이틀 키 파일이 존재한다면, 메커니즘은 전체 키 파일 이름에 따라 접근 경로를 사용하여 타이틀 키 파일을 연다(블록 222). 키 탐색 메커니즘은 이때 콘텐츠 파일이 블록 206 전에 원래 존재하였는지 여부를 검사한다(다이아몬드 224). 위의 예에서, 이와 같은 콘텐츠 파일이 블록 206에서 이의 생성 전에 존재하지 않아, 키 탐색 메커니즘은 생성된 파일의 파일 헤더에 KNI를 삽입하도록 블록 226으로 간다. 콘텐츠 암호화 키(CEK)가 암호화 엔진(40)에 의해 생성되고 생성된 파일을 암호화하는데 사용된다(블록 228). 새롭게 생성된 암호화 파일은 메모리 장치(20)에서 트리(130)에 디렉토리 플레이어 1로 추가된다. 이 생성된 키는 암호화되고 블록 214에서 획득된 오프셋에 의해 식별된 위치에서 그리고 블록 212에서 식별된 타이틀 키 파일로 삽입되며(블록 230), 트리 (150)에 디렉토리 플레이어 1에 타이틀 키 파일로 새로운 타이틀 키 엔트리로서 추가된다. 키 탐색 메커니즘은 이때 타이틀 키 파일을 닫고(블록 232), 키 파일 상태 비트가 트리(130)에 플레이어 1 디렉토리에서 키 탐색 파일 안에 오프셋으로서 KNI의 값을 사용함으로써 찾아지는 트리(130)에서 플레이어 1 디렉토리에의 키 탐색 파일 안의 대응하는 상태 비트의 값을 1에서 0으로 변경한다. 키 탐색 파일은 이때 닫아진다(블록 234, 236).The key navigation mechanism then checks to see if a title key file exists with this key file name (diamond 221a). If this title key file does not exist, the mechanism creates a title key file and adds it to the appropriate directory (eg, player 1) in directory tree 150 (block 221b). If this title key file exists, the mechanism opens the title key file using the access path according to the full key file name (block 222). The key navigation mechanism then checks whether the content file originally existed before block 206 (diamond 224). In the example above, such a content file does not exist prior to its creation at block 206, so the key navigation mechanism goes to block 226 to insert the KNI in the file header of the generated file. A content encryption key (CEK) is generated by the encryption engine 40 and used to encrypt the generated file (block 228). The newly generated encryption file is added to the tree 130 as a directory player 1 in the memory device 20. This generated key is encrypted and inserted into the title key file identified at block 212 and at the location identified by the offset obtained at block 214 (block 230), and a new title key file to directory player 1 in tree 150. It is added as a title key entry. The key navigation mechanism then closes the title key file (block 232) and the player 1 in the tree 130 where the key file status bits are found by using the value of KNI as an offset in the key navigation file in the player 1 directory in the tree 130. Change the value of the corresponding status bit in the key navigation file to the directory from 1 to 0. The key navigation file is then closed (blocks 234, 236).

상기 내용은 암호화되는(및/또는 복호화되는) 콘텐츠 파일이 먼저 생성되는 경우 2 개의 디렉토리 트리(130, 150)를 사용하는 키 탐색 메커니즘에 관한 과정이다. 키 탐색 메커니즘이 콘텐츠 파일을 복호하는데 필요한 복호화 키를 발견하기 위해 요청되도록 콘텐츠 파일을 복호하기를 바라는 경우, 도 6의 키 탐색 메커니즘이 다음과 같이 동작한다. 키 탐색 메커니즘은, 콘텐츠 파일이 이미 존재하기 때문 에, 트리(130)에서의 플레이어 1 디렉토리와 같이, 특정 디렉토리에서 보호된 콘텐츠 파일을 열 수 있고, 블록 252로 간다. 키 탐색 메커니즘은 이때 콘텐츠 파일의 파일 헤더로부터 값 KNI를 검색한다(블록 252). 키 탐색 메커니즘이 보호 콘텐츠 파일을 여는 경우, 비보호된 사용자 데이터 영역에서 디렉토리 트리(130) 안에서 동작한다. 예를 들어, 보호된 콘텐츠 파일이 노래 "Mysong.MP3"와 같은, 플레이어 1 디렉토리에서 노래 파일들 중 하나라면, 이와 같은 콘텐츠 파일로의 접근 경로는 디렉토리 트리(130)에 따라 구성된다. 키 탐색 메커니즘은 이때 콘텐츠 파일을 복호(및/또는 암호)하기 위한 복호화 키가 저장되어 있는, 어떤 타이틀 키 파일의 nnn 또는 키 파일 인덱스, 및 이와 같은 타이틀 키 파일에서 키의 위치를 나타내는 오프셋을 발견하기 위해 위에서 설명된 방식으로 블록 212-222에서 동작을 수행한다. 키 탐색 메커니즘은 또한 디렉토리 트리(130)를 따라 공중 또는 비보호 사용자 데이터 영역으로의 접근 경로를 보호 영역에서 디렉토리 트리(150)를 따라 구성된 접근 경로로 변환하며 블록 216, 218 및 220을 따라 보호 영역에서 복호화 키에 대한 전체 키 파일 이름을 형성한다. 인증 과정 뒤에, 키 탐색 메커니즘은 이때 콘텐츠 복호화 키가 검색되기 위해 쉽게 이용가능하도록 구성된 전체 키 파일 이름을 따라 보호 영역에서 타이틀 키 파일을 연다(블록 222). 키 탐색 메커니즘은 이때 전술된 동작 전에 콘텐츠 파일이 존재하는지 여부를 검사한다. 이 예에서, 메커니즘이 적절한 타이틀 키 파일에서 키 엔트리 오프셋으로부터 암호화된 콘텐츠 암호화 키를 검색하기 위해 블록 254로 가도록 존재한다(블록 254). 콘텐츠 암호화 키는 이때 복호되고 암호화에 의해 보호될 것이거나 또는 보호되는 콘텐츠 파일을 복 호/암호하기 위해 사용된다(블록 256).The above is a process for a key navigation mechanism that uses two directory trees 130, 150 when an encrypted (and / or decrypted) content file is first created. If the key navigation mechanism wishes to decrypt the content file such that it is requested to find the decryption key needed to decrypt the content file, the key navigation mechanism of FIG. 6 operates as follows. The key navigation mechanism may open the protected content file in a particular directory, such as the Player 1 directory in tree 130, because the content file already exists, and goes to block 252. 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 the protected content file, it operates within the directory tree 130 in the unprotected user data area. For example, if the protected content file is one of the song files in the Player 1 directory, such as the song "Mysong.MP3", then the access path to this content file is organized according to directory tree 130. The key navigation mechanism then finds the nnn or key file index of any title key file in which the decryption key for decrypting (and / or encrypting) the content file is stored, and the offset indicating the location of the key in such a title key file. To operate in blocks 212-222 in the manner described above. The key navigation mechanism also converts access paths along the directory tree 130 to public or unprotected user data areas from protected areas to access paths configured along directory tree 150 and along the blocks 216, 218 and 220 in the protected area. Form the full key file name for the decryption key. After the authentication process, the key navigation mechanism then opens the title key file in the protected area along with the full key file name so that the content decryption key is readily available for retrieval (block 222). The key navigation mechanism then checks whether the content file exists before the above-described operation. In this example, a mechanism exists to go to block 254 to retrieve the encrypted content encryption key from the key entry offset in the appropriate title key file (block 254). The content encryption key is then used to decrypt / encrypt the content file that will be decrypted and protected by encryption or protected (block 256).

전술된 키 탐색 파일, 타이틀 키 파일 구조를 사용하면, 콘텐츠 파일이 삭제되는 경우 특히 간단하다. 이는 도 7의 흐름도에 설명되어 있다. 따라서 메모리 시스템(10) 또는 호스트 장치(24)에 저장되어 있고 이에 의해 실행되는 컴퓨터 프로그램일 수 있는, 상기 목적을 위한 키 탐색 메커니즘은 먼저 삭제되려는 보호 콘텐츠 파일을 디렉토리에서 식별한다(블록 302). 콘텐츠 파일은 메모리(20)의 비보호 공증 영역에 있을 수 있다. 키 탐색 메커니즘은 이때 콘텐츠 파일을 열고 파일 헤더로부터 KNI를 획득하고 파일을 닫는다(블록 304). 메커니즘은 이때 콘텐츠 파일로서 동일한 디렉토리에서의 키 탐색 파일을 연다(블록 306). 예를 들어, 삭제되는 콘텐츠 파일이 디렉토리 트리(130)에서 플레이어 1 디렉토리 안에 있다면, 예를 들어, 비트 오프셋은 콘텐츠 파일로서 동일 디렉토리(이 경우에 플레이어 1 디렉토리) 내에 키 탐색 파일 안에서 발견된다. 키 탐색 메커티즘은 이때 삭제되는 콘텐츠 파일을 암호/복호하는데 사용되는 타이틀 키 파일에서의 타이틀 키 엔트리의 상태를 나타내는 키 파일 상태 비트의 위치를 발견하기 위해 키 탐색 파일에서 제 1 엔트리로부터의 오프셋으로서 KNI를 사용한다. 이때 0에서 1로 오프셋 위치에서 발견된 키 파일 상태 비트를 리셋하고, 이에 의해 파일 상태 비트의 타이틀 키 파일에서 대응하는 타이틀 키 엔트리(TKE)가 유효 키를 포함하지 않음을 나타낸다(블록 308). 그러므로 이는 타이틀 키 파일에서 이와 같은 대응 TKE의 위치가 새로운 키를 저장하기 위해 사용될 수 있으며 필수적으로 "비어있음"을 나타낸다. (전형적으로 인증을 요청하는) 보호 영역으로 실제로 갈 필요가 없으며 타이틀 키 파일에서 이와 같은 위치에 키를 삭제할 필요가 없다. 키 탐색 메커니즘은 키 탐색 파일을 닫고 콘텐츠 파일을 삭제한다(블록 310 및 블록 312).Using the above-described key navigation file and title key file structure is particularly simple when the content file is deleted. This is illustrated in the flow chart of FIG. Thus, a key navigation mechanism for this purpose, which may be a computer program stored in and executed by the memory system 10 or the host device 24, first identifies in the directory the protected content file to be deleted (block 302). The content file may be in an unprotected notarized area of memory 20. The key navigation mechanism then opens the content file, obtains a 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 in directory tree 130, for example, the bit offset is found in the key navigation file in the same directory (in this case, Player 1 directory) as the content file. The key navigation mechanism is then used as an offset from the first entry in the key navigation file to find the location of the key file status bit indicating the status of the title key entry in the title key file used to encrypt / decrypt the content file being deleted. Use KNI. The key file status bit found at the offset position from 0 to 1 is then reset, indicating that the corresponding title key entry TKE in the title key file of the file status bit does not contain a valid key (block 308). Therefore, this indicates that the location of this corresponding TKE in the title key file can be used to store the new key and is essentially "empty". You don't actually have to go to the protected area (typically requesting authentication) and you don't have to delete the key at this location in the title key file. The key navigation mechanism closes the key navigation file and deletes the content file (blocks 310 and 312).

권리 객체 관리Rights Object Management

키를 관리하기 위한 전술된 시스템은 또한 소정의 만기 날짜 전에 또는 소정의 시간 동안에만, 제한된 수로 콘텐츠 파일이 접근될 수 있음을 지정하는 규칙과 같은, 다른 유형의 콘텐츠 보호 정보를 관리하기 위해 사용될 수 있다. DRM에서, 이와 같은 규칙은 권리 객체로서 공지된 객체에서 콘텐츠를 보호하는데 사용되는 콘텐츠 암호화/복호화 키와 함께 다루어진다. 어떻게 암호화된 콘텐츠 파일이 사용되고/되거나 접근될 수 있는지를 발견해 내기 위해, 권리 객체를 먼저 찾고, 이로부터 암호화/복호화 키를 추출하고, 규칙은 이의 사용을 제어한다. 이때 콘텐츠 파일은 키를 사용하여 복호/암호화되고, 콘텐츠는 접근될 수 있다. 때때로 콘텐츠 파일은 다운로드될 수 있거나 또는 다른 방법으로 수신될 수 있고, 이의 권리 객체는 발견되기 위해 필요하다. 다운로드된 경우 파일이 암호화된다면, 접근을 위한 권리를 구매하는 것이 필요하다; 이와 같은 이벤트에서, 권리 객체는 공급될 것이고 구매 후에 다운로드될 수 있다. 다운로드된 파일이 암호화되지 않는다면, 이때 권리 객체는 콘텐츠 파일을 보호하기 위해 생성될 수 있다. 권리 객체가 일단 획득되면, 권리 객체에서의 키는 권리 객체로부터 추출되고, 콘텐츠 파일은 키를 사용하여 암호되거나 복호화된다. 파일은 이때 적절한 것으로 더 다루어질 수 있다. 반대로, 파일이 생성된 후에, 권리 객체는 생성될 수 있고, 객체는 암호/복호를 위해 사용된 키를 포함한다. The above-described system for managing keys can also be used to manage other types of content protection information, such as rules specifying that a limited number of content files can be accessed before or during a predetermined expiration date. have. In DRM, such rules are handled with the content encryption / decryption keys used to protect content in objects known as rights objects. To find out how an encrypted content file can be used and / or accessed, the rights object is first looked up, the encryption / decryption key is extracted from it, and the rules control its use. The content file is then decrypted / encrypted using the key and the content can be accessed. Sometimes a content file may be downloaded or otherwise received, and its rights object is needed to be found. If the file is encrypted if it is downloaded, it is necessary to purchase the right for access; In such an event, the rights object will be supplied and can be downloaded after purchase. If the downloaded file is not encrypted, then a rights object can be created to protect the content file. Once 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 can then be further treated as appropriate. Conversely, after the file is created, a rights object can be created, and the object contains the key used for encryption / decryption.

추가적인 보안이 요구되는 경우, 복호된 콘텐츠 파일은 권리 객체에서의 키와 다른 키를 사용하여 재암호화될 수 있다. 이 방식에서, 콘텐츠 파일에 대한 권리 객체로의 접근을 또한 가지는 비인증된 사용자는 이와 같은 재암호화된 콘텐츠 파일을 접근할 수 없을 것이다. 따라서, 콘텐츠 파일을 다운로드했던 사용자는 권리 발행자로부터 획득한 권리 객체에서의 키와 다른 키를 생성할 수 있고 권리 발행자로부터 획득한 권리 객체에서의 키를 사용하여 복호된 뒤에 콘텐츠 파일을 재암호화한다. 권리 객체에서의 키는 이때 사용자에 의해 발생된 키에 의해 대체된다. 대안으로, 사용자는 먼저 파일을 복호하지 않고 생성된 키를 사용하여 콘텐츠 파일을 간단히 암호화할 수 있어, 콘텐츠 파일은 2 개의 다른 키, 즉 (콘텐츠 파일이 권리 객체에서의 제 1 키에 의해 복호될 수 있음을 의미하는) 권리 발행자로부터의 키, 및 제 2 키가 이를 발생했었던 사용자에만 이용가능한 사용자에 의해 발생된 제 2 키에 의해 암호화된다. 사용자는 이때 권리 객체에서 또한 추가적인 제 2 키를 저장한다. If additional security is required, the decrypted content file can be re-encrypted using a key different from the key in the rights object. In this way, an unauthorized user who also has access to the rights object for the content file will not be able to access such re-encrypted content file. Thus, the user who has downloaded the content file can generate a key different from the key in the rights object obtained from the rights issuer and re-encrypt the content file after decrypting using the key in the rights object obtained from the rights issuer. The key in the rights object is then replaced by the key generated by the user. Alternatively, the user can simply encrypt the content file using the generated key without first decrypting the file so that the content file can be decrypted by two different keys, i.e. (the content file is decrypted by the first key in the rights object). The key from the issuer of the rights, and the second key generated by the user available only to the user who had generated it. The user then stores an additional second key in the rights object as well.

도 8은 권리 객체 관리에 대한 권리 객체(RO) 탐색 메커니즘을 설명하는 흐름도이다. 도 8의 과정을 수행하는 RO 탐색 메커니즘은 콘텐츠 파일, RO 파일 및 키 탐색 파일이 저장되어 있는 메모리 시스템으로 명령어를 보내는 호스트 장치(24)에 저장되어 있고 이에 의해 실행되는 컴퓨터 프로그램 코드를 포함할 수 있다. 대안으로, 메커니즘은 CPU(12)로 로드되고 이에 의해 실행되는 플래시 메모리(20)에 저장되어 있는 컴퓨터 프로그램 코드를 포함할 수 있다. 따라서 도 8 및 도 9의 RO 탐색 메커니즘에 대한 컴퓨터 프로그램은 호스트 장치(24)로 연결되거나 또는 일부인 컴퓨터 판독가능 매체에 저장될 수 있다; 대안으로는, 이와 같은 컴퓨터 프로그램은 RO 파일, 권리 객체 탐색 파일 및 콘텐츠 파일이 저장되어 있는 플래시 메모리(20)에 저장될 수 있다. 모든 이와 같은 변형은 본 발명의 범위 내에 있다. 한 편으로는 도 6, 7과 다른 한편으로는 도 8, 9의 비교는 이들이 꽤 유사하다는 점이 나타나서, 도 8과 도 9의 RO 관리 과정은 각각 도 6과 도 7의 키 관리 과정과 꽤 유사하다. 8 is a flow diagram illustrating a rights object (RO) navigation mechanism for rights object management. The RO navigation mechanism that performs the process of FIG. 8 may include computer program code stored in and executed by a host device 24 that sends instructions to a memory system where content files, RO files, and key navigation files are stored. have. Alternatively, the mechanism may include computer program code stored in flash memory 20 that is loaded into and executed by CPU 12. Thus, the computer program for the RO search mechanism of FIGS. 8 and 9 can be stored in a computer readable medium that is connected to or is part of the host device 24; Alternatively, such computer programs may be stored in flash memory 20 where RO files, rights object navigation files and content files are stored. All such variations are within the scope of the present invention. On the one hand, the comparison of Figs. 6, 7 and on the other hand, Figs. 8, 9 shows that they are quite similar, so that the RO management process of Figs. 8 and 9 is quite similar to the key management process of Figs. 6 and 7, respectively. Do.

이와 같은 이벤트에서, 위에서 설명된 키 관리와 유사한 RO 관리에 대한 아키텍처 및 개념은 도 3b에서 설명된 것과 유사한 방식으로, (KNI에 대한 개념과 유사한) RO 파일에 걸쳐 RO 엔트리(ROE)의 라벨을 붙이기 위해 사용되는 RONI와 같이, 사용될 수 있다. RO 탐색 파일에 상태 비트 ROS[i]는 대응하는 i 번째 RO가 RO 파일 중 하나에서 유효한지 아닌지를 나타내는데 사용된다. RO 탐색 파일은 키 관리를 포함하는 도 4에 나타난 것과 동일한 방식으로 디렉토리 트리에서의 디렉토리에 콘텐츠 파일을 따라 공중 파티션 또는 영역에 저장될 수 있다. RO 파일은 키 관리를 위해 도 5에 나타난 것과 동일한 방식으로 디렉토리 트리에서의 디렉토리에 보호된 파티션 또는 영역에 저장되며, 2 개의 영역에서의 트리는 서로 거울대칭이다(도시되지 않음).In such an event, the architecture and concept for RO management similar to key management described above is similar to that described in FIG. 3B, in which a label of RO entry (ROE) is labeled across the RO file (similar to the concept for KNI). Can be used, as is the RONI used to attach. The status bit ROS [i] in the RO search file is used to indicate whether the corresponding i th RO is valid in one of the RO files. The RO navigation file can be stored in a public partition or area along with the content file in a directory in the directory tree in the same manner as shown in FIG. 4 including key management. The RO file is stored in a protected partition or area in a directory in the directory tree in the same manner as shown in FIG. 5 for key management, the trees in the two areas being mirror symmetric with each other (not shown).

도 8을 참고로 하여, 도 8의 메커니즘의 과정은 보호 콘텐츠 파일을 열거나 또는 다운로드하기를 바라는 경우 시작한다(블록 402). RO 탐색 메커니즘은 콘텐츠 파일이 다운로드 되었는지 아닌지를 결정한다(다이아몬드 404). 콘텐츠 파일이 다운로드 되지 않았다면, 이는 콘텐츠 파일이 다운로드할 필요가 없도록 이미 존재함 을 의미한다. 콘텐츠 파일이 다운로드되어 있고 보호될 필요가 있다고 가정하면, 메커니즘은 블록 406으로 가고 (도 4에서의 공중 영역과 유사한) 공중 영역에서 할당된 디렉토리에 파일을 저장한다. RO 탐색 메커니즘은 RO 탐색 파일이 동일 디렉토리에 존재하는지 여부를 검사한다(다이아몬드 407a). 존재하지 않는다면, 이때 메커니즘은 RO 탐색 파일을 생성한다(블록 407b). 존재한다면, 이때 메커니즘은 도 4에서 발견된 것과 유사한, 다운로드된 콘텐츠 파일로서 동일 디렉토리에서 발견된 RO 탐색 파일을 연다(블록 408). 양 경우에, 메커니즘은 디렉토리 트리에서 적절한 디렉토리에서 RO 탐색 파일을 검사하고 "빈" 또는 "유효하지 않은(not valid)" 상태를 가진 제 1 RO 엔트리를 발견한다. RO 탐색 파일에서 "빈" 또는 "유효하기 않은" 상태의 오프셋은 RONI를 사용하는 위의 실시예를 이용하여, RO 탐색 인덱스(RONI)를 제공한다(블록 408, 410). Referring to FIG. 8, the process of the mechanism of FIG. 8 begins when one wishes 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, this means that the content file already exists so that it does not need to be downloaded. Assuming the content file has been downloaded and needs to be protected, the mechanism goes to block 406 and stores the file in the assigned directory in the public area (similar to the public area in FIG. 4). The RO search mechanism checks whether the RO search file exists in the same directory (diamond 407a). If not present, the mechanism then creates an RO search file (block 407b). If present, then the mechanism opens the RO search file found in the same directory as the downloaded content file, similar to that found in FIG. 4 (block 408). In both cases, the mechanism examines the RO search file in the appropriate directory in the directory tree and finds the first RO entry with a "empty" or "not valid" status. The offset of the "empty" or "invalid" state in the RO search file provides the RO search index (RONI), using the above embodiment using RONI (blocks 408, 410).

RO 파일 및 RO 탐색 파일이 위의 이행에서 사용되는 경우, RO 파일에서의 위치 또는 RO 엔트리가 순차적으로 사용된다. 이는 하나의 RO가 생성되고 RO 파일에 저장될 필요가 있는 경우, RO 파일에서 위치 또는 슬롯이 RO 파일 RO_file.000에의 RO 엔트리 1로 시작하며, 순차적으로 RO를 저장하는데 사용됨을 의미한다. 이와 같은 RO가 저장되고 제 1 RO 엔트리, 또는 이의 일부를 형성 한 후, 대응하는 RO 파일 상태 비트 ROS[1] 값은, 이 위치가 헤더에 대해 예약된 것이 아니기 때문에, 현재 유효 RO를 포함함을 의미하는, 비어있지 않으며 현재 사용 중임을 나타내는, 1에서 0으로 변환된다. 처음에, 모든 RO 파일 상태 비트는, 값 0을 가지는 0, 128, 256, ...에 대한 RO 파일 상태 비트를 제외하고는 값 1을 가진다. 그러나 이 실시 예 대신에, 룩업 테이블이 키 탐색 메커니즘의 경우에서와 같이 대신에 사용될 수 있음이 이해될 것이며; 모든 이와 같은 변경은 본 발명의 범위 내에 있다. If the RO file and the RO search file are used in the above transition, the position or RO entry in the RO file is used sequentially. This means that if one RO is created and needs to be stored in the RO file, the location or slot in the RO file starts with RO entry 1 into the RO file RO_file.000 and is used to store the RO sequentially. After such an RO is stored and forms the first RO entry, or part thereof, the corresponding RO file status bit ROS [1] value contains the current valid RO since this position is not reserved for the header. It is converted from 1 to 0, which means it is not empty and is currently in use. Initially, all RO file status bits have a value of 1 except for the RO file status bits for 0, 128, 256, ... which have a value of zero. However, it will be appreciated that instead of this embodiment, a lookup table can be used instead as in the case of a key navigation mechanism; All such changes are within the scope of the present invention.

RONI가 획득된 후, RO 탐색 메커니즘은 이때 RO 파일 인덱스 또는 RONI/128의 정수 부분과 동일한 nnn을 계산하고(블록 412), 각각의 RO 파일은 128 개의 슬롯 또는 위치를 가진다. nnn 또는 RO 파일 인덱스는 수 RONI/128의 정수 부분이다. 이 nnn 또는 RO 파일 인덱스 값은 RO 파일의 일련 번호이다. 이때 이와 같은 RO 파일 내의 오프셋은 양(quantity) KNI % 128 또는 KNI mod 128을 계산함으로써 획득된다(블록 414). After the RONI is obtained, the RO search mechanism then computes the same nnn as the RO file index or integer portion of RONI / 128 (block 412), with each RO file having 128 slots or locations. The nnn or RO file index is an integer part of the number RONI / 128. This nnn or RO file index value is the serial number of the RO file. The offset in this RO file is then obtained by calculating the quantity KNI% 128 or KNI mod 128 (block 414).

위에서 언급된 바와 같이, 다운로드된 콘텐츠 파일은 (도 4의 디렉토리 트리(130) 안의 플레이어 1 디렉토리와 유사한 디렉토리와 같은) 디렉토리로 할당된다. 바로 다운로드된 콘텐츠 파일로 접근하고/하거나 이의 사용을 제어하기 위해 RO를 저장하기 위한 보호 영역에 RO 파일에서 위치를 획득하기 위해, RO 탐색 메커니즘은 이때, 도 6에서의 방식과 유사한 방식으로, 비보호된 사용자 데이터 영역에 대한 공중 파티션 이름을 보호 영역에 대한 보호 파티션(partition) 이름으로 대체함으로써, 비보호된 사용자 데이터 영역에서의 디렉토리 트리를 따라 구성된 접근 경로를 보호 영역 또는 파티션에서 디렉토리 트리에 따라 구성되는 접근 경로로 변환한다(블록 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 mentioned above, the downloaded content file is assigned to a directory (such as a directory similar to the Player 1 directory in directory tree 130 of FIG. 4). In order to obtain a location in the RO file in a protected area for storing the RO to access and / or control the use of the downloaded content file directly, the RO navigation mechanism is then unprotected, in a manner similar to that in FIG. 6. By replacing the public partition name for the protected user data area with the protected partition name for the protected area, an access path constructed along the directory tree in the unprotected user data area is configured according to the directory tree in the protected area or partition. Convert to an access path (block 416). The RO search mechanism then forms an RO file name: "RO_file.nnn" (block 418). The RO search mechanism then forms the full RO file name (block 420). As an example, assuming that player x creates a new content file controlled by an RO that is created or downloaded, the full RO file name for which the RO is to be stored is represented by blocks 408, 410, 412, 414, 416, 418 and 420. It is configured accordingly. In such an event, the full RO file name generated would be "prot_partition / playerxdirectory / RO_file.nnn".

RO 탐색 메커니즘은 이때 RO 파일이 이 RO 파일 이름으로 존재하는 지를 보기 위해 검사한다(다이아몬드 421a). 이 RO 파일이 존재하지 않는다면, 메커니즘은 RO 파일을 생성하고 보호 영역 또는 파티션에 디렉토리 트리에서의 적당한 디렉토리(예를 들어, 플레이어 x)에 이를 추가한다(블록 421b). 이 RO 파일이 존재한다면, 메커니즘은 전체 RO 파일 이름에 따라 접근 경로를 사용하여 RO 파일을 연다(블록 422). RO 탐색 메커니즘은 이때 콘텐츠 파일이 블록 406에서 원래 존재하였는지 아닌지를 검사한다(다이아몬드 424). 위의 예에서, 이와 같은 콘텐츠 파일이 다운로되었으므로, RO 탐색 메커니즘은 다운로드된 파일의 파일 헤더로 RONI를 삽입하도록 블록 426으로 간다. 따라서 RONI는 또한 제어하고 있는 콘텐츠 파일을 각각의 RO와 연관시키는 역할을 하는 반면, RO 탐색 및 관리를 위해 위에서 설명된 기능을 이용한다. The RO search mechanism then checks to see if the RO file exists with this RO file name (diamond 421a). If this RO file does not exist, the mechanism creates the RO file and adds it to the appropriate area in the directory tree (eg, player x) in the protected area or partition (block 421b). If this RO file exists, the mechanism opens the RO file using the access path according to the full RO file name (block 422). The RO navigation mechanism then checks whether the content file originally existed at block 406 (diamond 424). In the above example, since such a content file has been downloaded, the RO navigation mechanism goes to block 426 to insert the RONI into the file header of the downloaded file. Thus, the RONI also serves to associate the content file under control with each RO, while utilizing the functionality described above for RO navigation and management.

(키를 포함하는) RO는 암호화 엔진(40)에 의해 생성되거나 또는 다른 방법(예를 들어 구매 후의 다운로드)으로 얻어지고 생성되거나 또는 이렇게 얻은 파일은 다운로드된 파일을 암호화하는데 사용된다(블록 428). 새롭게 생성된 암호화 파일은 메모리 장치(20) 안의 공중 영역 또는 파티션에서의 트리의 디렉토리 플레이어 x로 추가된다. 이 RO는 암호화되고 블록 414에서 획득된 오프셋에 의해 나타난 위치에서 그리고 블록 412에서 식별된 RO 파일로 삽입되며(블록 430), 보호 파티션 또는 영역에서의 트리 안의 디렉토리 플레이어 x에 RO 파일로 새로운 RO 엔트리로서 추가된다. RO 탐색 메커니즘은 이때 RO 파일을 닫고(블록 432), RO 파일 상태 비트가 공중 영역에서의 트리 안의 플레이어 x 디렉토리에서 RO 탐색 파일 안에 오프셋으로서 RONI의 값을 사용함으로써 찾아지는 공중 영역에서의 트리에서 플레이어 x 디렉토리에의 RO 탐색 파일 안의 대응하는 상태 비트의 값을 1에서 0으로 변경한다. RO 탐색 파일은 이때 닫아진다(블록 434, 436). The RO (including the key) is generated by the encryption engine 40 or obtained and generated by another method (e.g., a purchase after purchase) or so obtained is used to encrypt the downloaded file (block 428). . The newly created encrypted file is added to the directory player x of the tree in the public area or partition 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 new RO entry as a RO file to directory player x in the tree in the protected partition or region. Is added as. The RO navigation mechanism then closes the RO file (block 432), and the player in the tree in the aerial area is found by using the value of RONI as the offset in the RO navigation file in the player x directory in the player x directory in the tree in the public area. Change the value of the corresponding status bit in the RO search file into the x directory from 1 to 0. The RO search file is then closed (blocks 434, 436).

상기 내용은 RO와 관련되어 있는 콘텐츠 파일이 먼저 다운로드되고 암호화되는(및/또는 복호화되는) 경우 2 개의 디렉토리 트리를 사용하는 RO 탐색 메커니즘에 관한 과정이다. RO 탐색 메커니즘이 콘텐츠 파일을 접근하는데 필요한 RO를 발견하기 위해 요청되도록 존재하는 콘텐츠 파일(즉, 다운로드 되지 않은)을 접근하기를 바라는 경우, 도 8의 RO 탐색 메커니즘은 다음과 같이 동작한다. RO 탐색 메커니즘은, 콘텐츠 파일이 이미 존재하기 때문에, 공중 영역 안의 플레이어 x 디렉토리와 같이, 특정 디렉토리에서 보호된 콘텐츠 파일을 열 수 있고, 블록 452로 간다. RO 탐색 메커니즘은 이때 콘텐츠 파일의 파일 헤더로부터 값 RONI를 검색한다(블록 452). RO 탐색 메커니즘이 보호 콘텐츠 파일을 여는 경우, 비보호된 사용자 데이터 영역에서 디렉토리 트리 내에서 동작한다. 예를 들어, 보호된 콘텐츠 파일이 플레이어 x 디렉토리에서 노래 파일들 중 하나라면, 이와 같은 콘텐츠 파일로의 접근 경로는 디렉토리 트리(130)에 따라 구성된다. RO 탐색 메커니즘은 이때 콘텐츠 파일과 관련되어 있는 RO가 저장되어 있는 어떤 RO 파일의 nnn 또는 RO 파일 인덱스, 및 이와 같은 RO 키 파일에서 RO의 위치를 나타내는 오프셋을 발견하기 위해 위에서 설명된 방식으로 블록 412-422에서 동작을 수행한다. RO 탐색 메커니즘은 또한 공중 영역에서 디렉토리 트리를 따라 공중 또는 비보호 사용자 데이터 영역으로의 접근 경로를 보호 영역에서 디렉토리 트리를 따라 구성된 접근 경로로 변환하며 블록 416, 418 및 420을 따라 보호 영역에서 복호화 RO에 대한 전체 RO 파일 이름을 형성한다. 인증 과정 뒤에, RO 탐색 메커니즘은 이때 RO가 검색되기 위해 쉽게 이용가능하도록 구성된 전체 RO 파일 이름을 따라 보호 영역에서 RO 파일을 연다(블록 422). RO 탐색 메커니즘은 이때 전술된 동작 전에 콘텐츠 파일이 존재하는지 여부를 검사한다. 이 예에서, 메커니즘이 적절한 RO 파일에서 오프셋에서 RO 엔트리로부터 암호화된 RO를 검색하기 위해 블록 454로 가도록 존재한다(블록 454). RO는 이때 복호되고 키는 RO에서 규칙을 따라 콘텐츠 파일을 복호/암호하기 위해 사용된다(블록 456).The above is a process for an RO search mechanism that uses two directory trees when a content file associated with an RO is first downloaded and encrypted (and / or decrypted). If the RO navigation mechanism wishes to access an existing content file (i.e. not downloaded) to be requested to find the RO needed to access the content file, the RO navigation mechanism of FIG. 8 operates as follows. The RO navigation mechanism can open the protected content file in a particular directory, such as the player x directory in the public area, because the content file already exists, and goes to block 452. 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 operates within the directory tree in the unprotected user data area. For example, if the protected content file is one of the song files in the player x directory, then the access path to such content file is organized according to directory tree 130. The RO navigation mechanism then blocks 412 in the manner described above to find the nnn or RO file index of any RO file in which the RO associated with the content file is stored, and an offset indicating the location of the RO in such a RO key file. Perform the operation at -422. The RO navigation mechanism also converts access paths from public areas to public or unprotected user data areas along the directory tree to access paths configured from protected areas along the directory tree, and along the blocks 416, 418, and 420 to decrypted ROs in the protected areas. Form the full RO file name. After the authentication process, the RO search mechanism then opens the RO file in the protected area along with the full RO file name that is readily configured for RO to be searched (block 422). The RO search mechanism then checks whether the content file exists before the operation described above. In this example, a mechanism exists to go to block 454 to retrieve the encrypted RO from the RO entry at the offset in the appropriate RO file (block 454). The RO is then decrypted and the key is used to decrypt / encrypt the content file following the rules in the RO (block 456).

도 9는 권리 객체 관리 시스템의 또다른 특성을 설명하기 위해 파일을 삭제하는 권리 객체 탐색 메커니즘을 설명하는 흐름도이다. 전술된 RO 탐색 파일, RO 파일 구조를 사용하면, 콘텐츠 파일이 콘텐츠 파일이 삭제되는 경우 특히 간단하다. 이는 도 9의 흐름도에 설명되어 있다. 따라서 메모리 시스템(10) 또는 호스트 장치(24)에 저장되어 있고 이에 의해 실행되는 컴퓨터 프로그램일 수 있는, 상기 목적을 위한 RO 탐색 메커니즘은 먼저 삭제되려는 보호 콘텐츠 파일을 디렉토리에서 식별한다(블록 502). 콘텐츠 파일은 메모리(20)의 비보호 공증 영역에 있을 수 있다. RO 탐색 메커니즘은 이때 콘텐츠 파일을 열고 파일 헤더로부터 RONI를 획득하고 파일을 닫는다(블록 504). 메커니즘은 이때 콘텐츠 파일과 같은 동일한 디렉 토리에서의 RO 탐색 파일을 연다(블록 506). 예를 들어, 삭제되는 콘텐츠 파일이 공중 영역 또는 파티션에서의 디렉토리 트리에서 플레이어 x 디렉토리 안에 있다면, 예를 들어, 비트 오프셋은 콘텐츠 파일 같은 동일 디렉토리(이 경우에 플레이어 x 디렉토리) 내에 RO 탐색 파일 안에서 발견된다. RO 탐색 메커니즘은 이때 삭제되는 콘텐츠 파일과 관련되어 있는 RO 파일에서의 RO 엔트리의 상태를 나타내는 RO 파일 상태 비트의 위치를 발견하기 위해 RO 탐색 파일에서 제 1 엔트리로부터의 오프셋으로서 RONI를 사용한다. 이때 0에서 1로 오프셋 위치에서 발견된 키 파일 상태 비트를 리셋하고, 이에 의해 파일 상태 비트의 RO 파일에서 대응하는 RO 엔트리(ROE)가 유효 RO를 포함하지 않음을 나타낸다(블록 508). 그러므로 이는 (전형적으로 인증을 요청하는) 보호 영역으로 실제로 갈 필요가 없으며 RO 파일에서 이와 같은 위치에 RO를 삭제할 필요가 없다. RO 탐색 메커니즘은 RO 탐색 파일을 닫고 콘텐츠 파일을 삭제한다(블록 510 및 블록 512).9 is a flow diagram illustrating a rights object navigation mechanism for deleting a file to illustrate another characteristic of a rights object management system. Using the above-described RO search file, RO file structure, the content file is particularly simple when the content file is deleted. This is illustrated in the flow chart of FIG. Thus, the RO search mechanism for this purpose, which may be a computer program stored in and executed by the memory system 10 or the host device 24, first identifies in the directory the protected content file to be deleted (block 502). The content file may be in an unprotected notarized area of memory 20. The RO navigation mechanism then opens the content file, obtains an RONI from the file header, and closes the file (block 504). The mechanism then opens the RO search 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 in the directory tree in the public domain or partition, for example, the bit offset is found in the RO navigation file in the same directory as the content file (in this case the player x directory). do. The RO search mechanism then uses the RONI as an offset from the first entry in the RO search file to find the location of the RO file status bit that indicates the status of the RO entry in the RO file associated with the deleted content file. This resets the key file status bit found at the offset position from 0 to 1, thereby indicating that the corresponding RO entry (ROE) in the RO file of the file status bit does not contain a valid RO (block 508). Therefore, there is no need to actually go to the protected area (typically requesting authentication), and there is no need to delete the RO at this location in the RO file. The RO navigation mechanism closes the RO navigation file and deletes the content file (blocks 510 and 512).

본 발명이 다양한 실시예를 참고로 하여 위에서 설명되어 있는 반면, 본 발명의 범위를 벗어나지 않고 변경 및 수정이 이루어질 수 있음의 이해되며, 이는 첨부된 청구항 및 이들의 등가물에 의해서만 정의되어야 한다. 예를 들어, 도 6의 것과 유사한 과정은 생성된 복호를 위해 키를 저장파기 위한 타이틀 티 저장 파일(들)의 하나에서 위치를 발견하기 위해, 그리고 존재하는 파일을 암호화하기 위한 타이틀 키 저장 파일(들)의 하나에 존재하는 암호화 키를 발견하기 위해 적용될 수 있다. 키 또는 RO는 타이틀을 가진 또는 없는 다른 유형의 콘텐츠뿐만 아니라 노래, 영화 게임과 같은 미디어 타이틀을 포함하는, 임의의 콘텐츠의 보호를 위해 사 용될 수 있다. 탐색 또는 위치 정보는 파일 이름에서와 같이 헤더와 다른 콘텐츠 파일의 부분에 저장될 수 있다. 본 발명에서 언급된 모든 참조는 참조로 통합되어 있다. While the invention has been described above with reference to various embodiments, it is understood that changes and modifications may be made without departing from the scope of the invention, which should be defined only by the appended claims and their equivalents. For example, a process similar to that of FIG. 6 may be performed to find a location in one of the title tee storage file (s) for storing and decrypting the key for generated decryption, and to encrypt the existing file. It can be applied to find the encryption key present in one of the). The key or RO may be used for the protection of any content, including media titles such as songs, movie games, as well as other types of content with or without titles. The search or location information may be stored in the header and in other parts of the content file, such as in the file name. All references mentioned in the present invention are incorporated by reference.

본 발명에 포함되어 있음.Included in the present invention.

Claims (101)

복수의 키의 관리를 용이하게 하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 매체로서,A computer readable medium storing a computer program for facilitating management of a plurality of keys, comprising: 상기 컴퓨터 프로그램은 키 탐색 파일 및 하나 이상의 키 저장 파일 중 하나 이상이 존재하지 않는 경우, 키 탐색 파일 및 하나 이상의 키 저장 파일을 생성하고, 상기 키 저장 파일의 각각은 이와 같은 키 저장 파일에서 대응 위치에 하나 이상의 키를 포함하기 위해 사용되었거나 또는 사용되려하고, 상기 키의 각각은 복수의 콘텐츠 파일 중 대응하는 하나의 암호화 및/또는 복호화를 위해 사용되었거나 또는 사용되려하고, 각각의 콘텐츠 파일은 헤더부를 포함하며, 각각의 콘텐츠 파일의 헤더부에서의 위치 정보는 대응 키가 찾아진 키 저장 파일(들) 중 하나, 및 이와 같은 키 저장 파일에서 이와 같은 키의 대응 위치를 나타내며, 상기 키 탐색 파일은 유효 키가 하나 이상의 키 저장 파일에서 하나 이상의 위치에 저장되어 있는지 여부를 나타내는 상태 정보를 포함하는 컴퓨터 판독가능 매체.The computer program generates a key navigation file and one or more key storage files if one or more of the key navigation file and the one or more key storage files do not exist, and each of the key storage files has a corresponding location in such a key storage file. Used or intended to include one or more keys in each of said keys, each of said keys being used or intended to be used for encryption and / or decryption of a corresponding one of a plurality of content files, each content file comprising a header portion Wherein the location information in the header portion of each content file indicates one of the key storage file (s) from which the corresponding key was found, and the corresponding location of such a key in such a key storage file, wherein the key navigation file Status indicating whether the valid key is stored in one or more locations in one or more keystore files Computer-readable media containing information. 제 1 항에 있어서,The method of claim 1, 상기 키 탐색 파일 및 하나 이상의 키 저장 파일은 저장 장치에 저장되어 있고, 상기 저장 장치는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하며, 상기 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 하나 이상의 키 저장 파일(들)이 존재하지 않는 경우 상기 컴퓨터 프로그램은 적어 도 하나의 보호 영역에 암호화된 키를 저장하기 위한 상기 하나 이상의 키 저장 파일을 생성하는 컴퓨터 판독가능 매체. The key navigation file and one or more key storage files are stored on a storage device, the storage device including at least one protected area and at least one unprotected area, wherein the at least one protected area is accessible only to an authenticated user. And if the one or more key storage file (s) does not exist, the computer program generates the one or more key storage files for storing the encrypted key in at least one protected area. 제 2 항에 있어서,The method of claim 2, 상기 컴퓨터 프로그램은 상기 탐색 파일이 존재하지 않는 경우 상기 적어도 하나의 비보호 영역에서 상기 키 탐색 파일을 생성하는 컴퓨터 판독가능 매체. And the computer program generates the key navigation file in the at least one unprotected area if the search file does not exist. 제 1 항에 있어서,The method of claim 1, 상기 키 탐색 파일은 엔트리를 포함하고, 상기 키 탐색 파일에서의 상기 엔트리의 각각은 복수의 암호화/복호화 키 중 하나를 저장하기 위한 하나 이상의 키 저장 파일에서의 위치에 대응하며 유효 키가 이와 같은 위치에 저장되어 있는지 여부에 대한 상태 정보를 제공하는 컴퓨터 판독가능 매체.The key navigation file includes an entry, each of the entries in the key navigation file corresponding to a location in one or more key storage files for storing one of a plurality of encryption / decryption keys, wherein the valid key is such a location. A computer readable medium providing status information about whether or not it is stored on a computer. 제 4 항에 있어서,The method of claim 4, wherein 상기 컴퓨터 프로그램은, 상기 키 탐색 파일의 엔트리에 의해 제공된 상태 정보로부터, 유효 키가 저장되어 있지 않은 키 저장 파일 중 하나에서 대응 위치를 나타내는 상태 정보를 제공하는 엔트리를 발견하는 컴퓨터 판독가능 매체.And the computer program finds, from the status information provided by the entry in the key navigation file, an entry that provides status information indicative of a corresponding location in one of the key storage files for which no valid key is stored. 제 5 항에 있어서,The method of claim 5, wherein 상기 컴퓨터 프로그램은 상기 복수의 콘텐츠 파일 중 하나를 암호 및/또는 복호하기 위한 키를 발생하고, 발견된 엔트리에 의해 나타난 키 저장 파일 중 하나에 상기 대응 위치에서 발생된 키를 저장하며, 이와 같은 콘텐츠 파일의 헤더부에 위치 정보를 삽입하는 컴퓨터 판독가능 매체.The computer program generates a key for encrypting and / or decrypting one of the plurality of content files, and stores the key generated at the corresponding location in one of the key storage files indicated by the found entry, such content A computer-readable medium for inserting location information in the header of a file. 제 6 항에 있어서,The method of claim 6, 상기 키 탐색 파일에서 엔트리의 각각은 인덱스 i의 다른 값에 대응하고, 상기 인덱스 값의 각각은 하나 이상의 키 저장 파일에서의 대응 위치의 상태 정보와 관련되어 있고, 상기 컴퓨터 프로그램은 발생된 키를 사용하여 암호/복호되는 대응 콘텐츠 파일의 헤더부에 상기 키 탐색 파일에서 발견된 엔트리에 대한 인덱스 i를 삽입하는 컴퓨터 판독가능 매체.Each of the entries in the key navigation file corresponds to a different value of index i, each of the index values is associated with status information of a corresponding location in one or more key storage files, and the computer program uses the generated key. Inserting the index i for the entry found in the key navigation file into the header portion of the corresponding content file being encrypted / decrypted. 제 7 항에 있어서,The method of claim 7, wherein 상기 컴퓨터 프로그램은 1에서 N까지 번호가 매겨진 N 개의 키 저장 파일을 사용하고, N은 1보다 크며, 상기 N 개의 키 저장 파일의 각각은 양의 정수인, m 개의 키의 저장을 위해 m 개의 위치를 포함하고, 수 i/m의 정수 부분은 대응 키가 저장되어 있거나 저장되려는 N 개의 키 저장 파일 중 특정 파일을 나타내고, i mod m은 발견된 상기 엔트리에 대응하는 특정 키 저장 파일에서의 대응 키의 위치를 나타내며, 상기 컴퓨터 프로그램은 수 i/m의 정수 부분을 발견하고 i mod m을 발견하기 위해 연산을 수행하는 컴퓨터 판독가능 매체. The computer program uses N key storage files numbered from 1 to N, where N is greater than 1 and each of the N key storage files has m locations for storage of m keys, each being a positive integer. And an integer portion of the number i / m represents a particular file of the N key storage files in which the corresponding key is stored or to be stored, and i mod m represents the corresponding key in the specific key storage file corresponding to the entry found. Indicating a location, the computer program performing an operation to find an integer portion of the number i / m and to find i mod m. 제 8 항에 있어서,The method of claim 8, 상기 컴퓨터 프로그램은, 상기 정수 부분으로부터, N 개의 키 저장 파일 중에서 발생된 키를 저장하는데 사용되는 키 저장 파일을 발견하는 컴퓨터 판독가능 매체.And the computer program finds, from the integer portion, a key storage file used to store keys generated among N key storage files. 제 9 항에 있어서,The method of claim 9, 상기 컴퓨터 프로그램은 발생된 키를 저장하는데 사용되는 키 저장 파일에서 대응 위치를 발견하기 위해 i mod m을 사용하는 컴퓨터 판독가능 매체.And the computer program uses i mod m to find the corresponding location in the key storage file used to store the generated key. 제 1 항에 있어서,The method of claim 1, 상기 키 탐색 파일은 복수의 비트를 포함하고, 상기 비트의 각각은 유효 키가 하나 이상의 키 저장 파일에서의 대응 위치에 저장되어있는지 아닌지를 나타내는 컴퓨터 판독가능 매체.The key navigation file comprises a plurality of bits, each of the bits indicating whether a valid key is stored at a corresponding location in one or more key storage files. 제 1 항에 있어서,The method of claim 1, 상기 컴퓨터 프로그램은 상기 키 탐색 파일 및 상기 하나 이상의 키 저장 파일 중 하나 이상이 존재하지 않는 경우 저장 장치에서 상기 키 탐색 파일 및 상기 하나 이상의 키 저장 파일을 생성하고, 상기 장치는 매체에서 분리되어 있는 컴퓨터 판독가능 매체. The computer program generates the key navigation file and the one or more key storage files in a storage device when one or more of the key navigation file and the one or more key storage files do not exist, and the device is separate from the media. Readable Media. 제 1 항에 있어서,The method of claim 1, 상기 컴퓨터 프로그램은 상기 키 탐색 파일 및 상기 하나 이상의 키 저장 파일 중 하나 이상이 존재하지 않는 경우 저장 장치에서 상기 키 탐색 파일 및 상기 하나 이상의 키 저장 파일을 생성하고, 상기 매체는 상기 장치의 일부분인 컴퓨터 판독가능 매체. The computer program generates the key navigation file and the one or more key storage files in a storage device when one or more of the key navigation file and the one or more key storage files do not exist, and wherein the medium is part of the device. Readable Media. 제 1 항에 있어서,The method of claim 1, 상기 컴퓨터 프로그램은 상기 콘텐츠 파일의 헤더부에서의 위치 정보를 사용하여 각각의 콘텐츠 파일에 대응하는 키를 저장하는데 사용되거나 또는 사용되려는 키 저장 파일에서 대응 위치를 발견하는 컴퓨터 판독가능 매체. And the computer program uses location information in the header portion of the content file to find a corresponding location in a key storage file that is to be used or to be used to store a key corresponding to each content file. 키 탐색 메커니즘을 저장하는 비휘발성 컴퓨터 판독가능 매체로서, 상기 메커니즘은 키 탐색 파일 및 적어도 하나의 키 저장 파일을 포함하고, 각각의 키 저장 파일은 이와 같은 키 저장 파일에서의 대응 위치에 복수의 키를 포함하고, 상기 키는 복수의 콘텐츠 파일 중 대응하는 콘텐츠 파일의 암호화 및/또는 복호화를 위해 사용되고, 각각의 콘텐츠 파일은 헤더부를 포함하고, 상기 각각의 콘텐츠 파일(들)의 헤더부에서의 정보는 대응 키가 찾아진 키 저장 파일(들) 중 하나, 및 이와 같은 키 저장 파일에서 이와 같은 키의 대응 위치를 나타내고, 상기 키 탐색 파일은 적어도 하나의 키 저장 파일에서 하나 이상의 위치가 유효 키를 포함하는지 아닌지를 나타내는 정보를 포함하는 비휘발성 컴퓨터 판독가능 매체.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 having a plurality of keys at corresponding locations in such key storage file. Wherein the key is used for encryption and / or decryption of a corresponding content file among a plurality of content files, each content file including a header portion, and information in the header portion of each respective content file (s). Denotes one of the key storage file (s) for which a corresponding key was found, and a corresponding location of such a key in such a key storage file, wherein the key navigation file is one or more locations in the at least one key storage file. A non-volatile computer readable medium containing information indicating whether or not it contains. 제 15 항에 있어서,The method of claim 15, 상기 매체는 메모리 카드에 비휘발성 플래시 메모리 셀을 포함하는 비휘발성 컴퓨터 판독가능 매체.And the medium comprises a nonvolatile flash memory cell in a memory card. 제 15 항에 있어서,The method of claim 15, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 보호 영역은 인증된 사용자에만 접근가능하고, 상기 적어도 하나의 키 저장 파일은 적어도 하나의 보호 영역에 저장되고, 상기 키 탐색 파일은 적어도 하나의 비보호 영역에 저장되는 비휘발성 컴퓨터 판독가능 매체.The medium includes at least one protected area and at least one unprotected area, the protected area is accessible only to an authenticated user, the at least one key storage file is stored in at least one protected area, the key navigation The file is stored in at least one unprotected area. 키 탐색 메커니즘을 저장하는 비휘발성 컴퓨터 판독가능 매체로서, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 메커니즘은:A nonvolatile computer readable medium storing a key navigation mechanism, the medium comprising at least one protected area and at least one unprotected area, the mechanism comprising: 키 탐색 파일 및 적어도 하나의 키 저장 파일;A key navigation file and at least one key storage file; 상기 매체의 적어도 하나의 비보호 영역에, 복수의 콘텐츠 파일 및 키 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising, in at least one unprotected area of the medium, a directory comprising a list of a plurality of content files and a key navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 적어도 하나의 키 저장 파일에서 키의 리스트를 포함하는 디렉토리를 포함하는 제 2 디렉토리를 포함하고, 상기 키 저장 파일의 각각은 이와 같은 키 저장 파일에서 대응하는 위치에 복수의 암호화된 키를 포함하고, 상기 키의 각각은 복수의 콘텐츠 파일 중 대응하는 하나의 파일의 암호화 및/또는 복호화를 위해 사용되며, 상기 2 개의 디렉토리는 서로 거울대칭인 구조를 가지는 비휘발성 컴퓨터 판독가능 매체.A second directory in at least one protected area of the medium, the second directory comprising a directory comprising a list of keys in at least one key storage file, each of the key storage files having a corresponding location in such a key storage file And a plurality of encrypted keys, wherein each of the keys is used for encrypting and / or decrypting a corresponding one of a plurality of content files, the two directories having a mirror-symmetric structure with each other. Computer readable media. 저장 장치의 보호 영역에서 키 저장 파일 안의 복호화/암호화 키를 사용하는 콘텐츠 파일을 복호/암호하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 매체로서, 상기 콘텐츠 파일은 콘텐츠 파일을 복호/암호하기 위한 키 저장 파일에서의 복호화/암호화 키로의 접근 경로를 나타내는 키 탐색 정보를 포함하고, 상기 컴퓨터 프로그램은:A computer readable medium for storing a computer program that decrypts / encrypts a content file using a decryption / encryption key in a key storage file in a protected area of a storage device, wherein the content file is a key storage file for decrypting / decrypting a content file. And key navigation information indicative of an access path to a decryption / encryption key in. 상기 콘텐츠 파일로부터 키 탐색 정보를 검색하고;Retrieve key navigation information from the content file; 상기 복호화/암호화 키가 저장되어 있는 저장 장치의 보호 영역에서 키 저장 파일에서의 위치를 상기 키 탐색 정보로부터 얻고;Obtaining a location in a key storage file from the key navigation information in a protected area of a storage device in which the decryption / encryption key is stored; 상기 얻은 위치를 사용하여 저장 매체의 보호 영역에서 키 저장 파일로부터 복호화/암호화 키를 획득하고; 그리고Obtain a decryption / encryption key from a key storage file in a protected area of the storage medium using the obtained location; And 상기 복호화/암호화 키를 사용하여 콘텐츠 파일을 복호/암호하는 컴퓨터 판독가능 매체.And decrypt / encrypt a content file using the decryption / encryption key. 제 19 항에 있어서,The method of claim 19, 상기 컴퓨터 프로그램은 키를 저장하기 위한 m 개의 위치를 각각 가지는 복수의 키 저장 파일을 사용하고, 상기 키 탐색 정보는 인덱스를 포함하고, 상기 컴 퓨터 프로그램은, 몫을 획득하기 위해 m으로 인덱스를 나눔으로써, 상기 몫의 정수부와 동일한 정수를 획득하기 위해, 그리고 상기 몫의 나머지부와 동일한 오프셋을 획득하기 위해, 복수의 키 저장 파일 중 하나가 복호화/암호화 키, 및 상기 복호화/암호화 키가 저장되어 있는 이와 같은 키 저장 파일에서의 위치를 발견하는 컴퓨터 판독가능 매체. 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 divides the index by m to obtain a share. In order to obtain an integer equal to the integer part of the quotient, and to obtain an offset equal to the remainder of the quotient, one of a plurality of key storage files is stored with a decryption / encryption key and the decryption / encryption key. Computer-readable medium for finding a location in such a key storage file. 제 20 항에 있어서,The method of claim 20, 상기 정수는 하나 이상의 키 저장 파일(들) 중 하나가 복호화/암호화 키를 저장함을 나타내고 상기 오프셋은 복호화/암호화 키가 저장되어 있는 이와 같은 키 저장 파일에서 위치를 나타내는 컴퓨터 판독가능 매체. Wherein the integer indicates that one of the one or more key storage file (s) stores a decryption / encryption key and the offset indicates a location in such a key storage file where the decryption / encryption key is stored. 제 19 항에 있어서,The method of claim 19, 상기 저장 장치는 비보호 영역을 포함하고, 상기 컴퓨터 프로그램은 또한 비보호 영역에서의 위치로의 접근 경로를 상기 보호 영역에 접근하기 위한 접근 경로로 변환하는 컴퓨터 판독가능 매체.The storage device includes an unprotected area, and the computer program also converts an access path to a location in the unprotected area into an access path for accessing the protected area. 제 22 항에 있어서The method of claim 22, 상기 저장 장치는:The storage device is: 상기 매체의 비보호 영역에, 복수의 콘텐츠 파일 및 적어도 하나의 키 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising a directory in the unprotected area of the medium, the directory including a list of a plurality of content files and at least one key navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 하나 이상의 키 저장 파일을 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지며,A second directory tree comprising a directory containing at least one key storage file in at least one protected area of the medium, the two directory trees having a structure that is mirror symmetric with each other, 상기 컴퓨터 프로그램은 상기 비보호 영역에서의 위치에 접근하기 위한 접근 경로를 복호화/암호화 키가 상기 2 개의 디렉토리 트리를 사용하여 저장되어 있는 키 저장 파일에서의 위치에 접근하기 위한 접근 경로로 변환하는 컴퓨터 판독가능 매체.The computer program reads a computer for converting an access path for accessing a location in the unprotected area into an access path for accessing a location in a key storage file in which a decryption / encryption key is stored using the two directory trees. Media available. 제 19 항에 있어서,The method of claim 19, 상기 매체는 상기 저장 장치의 일부인 컴퓨터 판독가능 매체.And the medium is part of the storage device. 복수의 권리 객체의 관리를 용이하게 하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 매체로서, 상기 컴퓨터 프로그램은 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일 중 하나 이상이 존재하지 않는 경우 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일을 생성하고, 상기 권리 객체 저장 파일의 각각은 이와 같은 권리 객체 저장 파일에서 대응 위치에 하나 이상의 권리 객체를 포함하기 위해 사용되었거나 또는 사용되려하고, 상기 권리 객체의 각각은 복수의 콘텐츠 파일 중 대응하는 하나의 사용 및/또는 접근을 제어하기 위해 사용되었거나 또는 사용되려하고, 각각의 콘텐츠 파일은 헤더부를 포함하며, 각각의 콘텐츠 파일의 헤더부에서의 위치 정보는 대응 권리 객체가 찾아진 권리 객체 저장 파일(들)의 하나, 및 이와 같은 권리 객체 저장 파일에서의 이와 같은 권리 객체의 대응 위치를 나타내며, 상기 권리 객체 탐색 파일은 유효 권리 객체가 하나 이상의 권리 객체 저장 파일에서 하나 이상의 위치에 저장되어 있는지 여부를 나타내는 상태 정보를 포함하는 컴퓨터 판독가능 매체.A computer readable medium storing a computer program for facilitating management of a plurality of rights objects, the computer program comprising: a rights object navigation file and one if one or more of the rights object navigation file and one or more rights object storage files do not exist; Generate more than one rights object storage file, each of the rights object storage files being used or intended to include one or more rights objects in a corresponding location in such rights object storage file, each of the rights objects being a plurality of Used or intended to control the use and / or access of a corresponding one of the content files, each content file includes a header portion, and the location information in the header portion of each content file is determined by the corresponding rights object. One of the stored rights object storage file (s), and such A corresponding position of such a rights object in the rights object storage file, wherein the rights object navigation file includes computer information including status information indicating whether a valid rights object is stored in one or more locations in the one or more rights object storage files. Media available. 제 25 항에 있어서,The method of claim 25, 상기 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일은 저장 장치에 저장되어 있고, 상기 저장 장치는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하며, 상기 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 하나 이상의 권리 객체 저장 파일(들)이 존재하지 않는 경우 상기 컴퓨터 프로그램은 적어도 하나의 보호 영역에 암호화된 권리 객체를 저장하기 위한 상기 하나 이상의 권리 객체 저장 파일을 생성하는 컴퓨터 판독가능 매체. The rights object navigation file and one or more rights object storage files are stored on a storage device, the storage device including at least one protected area and at least one unprotected area, wherein the at least one protected area is for an authenticated user only. The computer program may generate the one or more rights object storage files for storing the encrypted rights object in at least one protected area if accessible and one or more rights object storage file (s) do not exist. . 제 26 항에 있어서,The method of claim 26, 상시 컴퓨터 프로그램은 권리 객체 탐색 파일이 존재하지 않는 경우 적어도 하나의 비보호 영역에 상기 권리 객체 탐색 파일을 생성하는 컴퓨터 판독가능 매체.And the computer program always generates the rights object navigation file in at least one unprotected area if no rights object navigation file exists. 제 25 항에 있어서,The method of claim 25, 상기 권리 객체 탐색 파일은 엔트리를 포함하고, 상기 권리 객체 탐색 파일 에서의 상기 엔트리의 각각은 복수의 권리 객체 중 하나를 저장하기 위한 하나 이상의 권리 객체 저장 파일에서의 위치에 대응하며 유효 권리 객체가 이와 같은 위치에 저장되어 있는지 여부에 대한 상태 정보를 제공하는 컴퓨터 판독가능 매체.The rights object navigation file includes an entry, each of the entries in the rights object navigation file corresponding to a location in one or more rights object storage files for storing one of a plurality of rights objects, wherein the effective rights object is the same. A computer readable medium providing status information about whether it is stored in the same location. 제 28 항에 있어서,The method of claim 28, 상기 컴퓨터 프로그램은, 상기 권리 객체 탐색 파일의 엔트리에 의해 제공된 상태 정보로부터, 유효 권리 객체가 저장되어 있지 않은 권리 객체 저장 파일 중 하나에서 대응 위치를 나타내는 상태 정보를 제공하는 엔트리를 발견하는 컴퓨터 판독가능 매체.The computer program reads from the status information provided by the entry in the rights object navigation file an entry that provides status information indicative of a corresponding location in one of the rights object storage files in which no valid rights object is stored. media. 제 29 항에 있어서,The method of claim 29, 상기 컴퓨터 프로그램은 상기 복수의 콘텐츠 파일의 사용 및/또는 접근을 제어하기 위한 권리 객체를 발생하고, 발견된 엔트리에 의해 나타난 권리 객체 저장 파일 중 하나에 상기 대응 위치에서 발생된 권리 객체를 저장하며, 이와 같은 콘텐츠 파일의 헤더부에 위치 정보를 삽입하는 컴퓨터 판독가능 매체.The computer program generates a rights object for controlling the use and / or access of the plurality of content files, and stores the rights object generated at the corresponding location in one of the rights object storage files indicated by the found entry, A computer-readable medium for inserting location information into the header of such a content file. 제 30 항에 있어서,The method of claim 30, 상기 권리 객체 탐색 파일에서 엔트리의 각각은 인덱스 i의 다른 값에 대응하고, 상기 인덱스 값의 각각은 하나 이상의 권리 객체 저장 파일에서의 대응 위치의 상태 정보와 관련되어 있고, 상기 컴퓨터 프로그램은 발생된 권리 객체를 사용 하여 제어되는 대응 콘텐츠 파일의 헤더부에 상기 권리 객체 탐색 파일에서 발견된 엔트리에 대한 인덱스 i를 삽입하는 컴퓨터 판독가능 매체.Each of the entries in the rights object navigation file corresponds to a different value of index i, each of the index values is associated with status information of a corresponding location in one or more rights object storage files, and the computer program generates a generated right. And insert the index i for the entry found in the rights object navigation file into the header portion of the corresponding content file controlled using the object. 제 31 항에 있어서,The method of claim 31, wherein 상기 컴퓨터 프로그램은 1에서 N까지 번호가 매겨진 N 개의 권리 객체 저장 파일을 사용하고, N은 1보다 크며, 상기 N 개의 권리 객체 저장 파일의 각각은 양의 정수인, m 개의 권리 객체의 저장을 위해 m 개의 위치를 포함하고, 수 i/m의 정수 부분은 대응 권리 객체가 저장되어 있거나 저장되려는 N 개의 권리 객체 저장 파일 중 특정한 파일을 나타내고, i mod m은 발견된 상기 엔트리에 대응하는 특정 권리 객체 저장 파일에 대응 권리 객체의 위치를 나타내며, 상기 컴퓨터 프로그램은 수 i/m의 정수 부분을 발견하고 i mod m을 발견하기 위해 연산을 수행하는 컴퓨터 판독가능 매체.The computer program uses N rights object storage files numbered from 1 to N, where N is greater than 1 and each of the N rights object storage files is a positive integer, m for storage of m rights objects. And an integer portion of the number i / m represents a particular file of the N rights object storage files in which the corresponding rights object is stored or is to be stored, and i mod m stores the specific rights object corresponding to the entry found. Indicating a position of a corresponding rights object in a file, said computer program performing an operation to find an integer portion of the number i / m and to find i mod m. 제 32 항에 있어서,The method of claim 32, 상기 컴퓨터 프로그램은, 상기 정수 부분으로부터, N 개의 권리 객체 저장 파일 중에서 발생된 권리 객체를 저장하는데 사용되는 권리 객체 저장 파일을 발견하는 컴퓨터 판독가능 매체.And the computer program finds, from the integer portion, a rights object storage file used to store a rights object generated among N rights object storage files. 제 33 항에 있어서,The method of claim 33, wherein 상기 컴퓨터 프로그램은 발생된 권리 객체를 저장하는데 사용되는 권리 객체 저장 파일에서 대응 위치를 발견하기 위해 i mod m을 사용하는 컴퓨터 판독가능 매체.And the computer program uses i mod m to find a corresponding location in the rights object storage file used to store the generated rights object. 제 25 항에 있어서,The method of claim 25, 상기 권리 객체 탐색 파일은 복수의 비트를 포함하고, 상기 비트는 유효 권리 객체가 하나 이상의 권리 객체 저장 파일에서 대응 위치에 저장되어있는지 아닌지를 나타내는 컴퓨터 판독가능 매체.The rights object navigation file comprises a plurality of bits, the bits indicating whether a valid rights object is stored at a corresponding location in one or more rights object storage files. 제 25 항에 있어서,The method of claim 25, 상기 컴퓨터 프로그램은 상기 권리 객체 탐색 파일 및 상기 하나 이상의 권리 객체 저장 파일 중 하나 이상이 존재하지 않는 경우 저장 장치에서 상기 권리 객체 탐색 파일 및 상기 하나 이상의 권리 객체 저장 파일을 생성하고, 상기 저장 장치는 매체에서 분리되어 있는 컴퓨터 판독가능 매체. The computer program generates the rights object navigation file and the one or more rights object storage files in a storage device when one or more of the rights object navigation file and the one or more rights object storage files do not exist, and the storage device is a medium. Computer-readable media separate from the computer. 제 25 항에 있어서,The method of claim 25, 상기 컴퓨터 프로그램은 상기 권리 객체 탐색 파일 및 상기 하나 이상의 권리 객체 저장 파일 중 하나 이상이 존재하지 않는 경우 저장 장치에서 상기 권리 객체 탐색 파일 및 상기 하나 이상의 권리 객체 저장 파일을 생성하고, 상기 매체는 상기 장치의 일부분인 컴퓨터 판독가능 매체. The computer program generates the rights object navigation file and the one or more rights object storage files in a storage device when one or more of the rights object navigation file and the one or more rights object storage files do not exist, and the medium is the device. Computer-readable media that are part of. 제 25 항에 있어서,The method of claim 25, 상기 컴퓨터 프로그램은 콘텐츠 파일의 헤더부의 위치 정보를 사용하여 각각의 콘텐츠 파일에 대응하는 권리 객체를 저장하는데 사용되거나 또는 사용되려는 권리 객체 저장 파일에서 대응 위치를 발견하는 컴퓨터 판독가능 매체. And the computer program uses location information of the header portion of the content file to find the corresponding location in the rights object storage file that is to be used or to be used to store the rights object corresponding to each content file. 권리 객체 탐색 메커니즘을 저장하는 비휘발성 컴퓨터 판독가능 매체로서, 상기 메커니즘은 권리 객체 탐색 파일 및 적어도 하나의 권리 객체 저장 파일을 포함하고, 각각의 권리 객체 저장 파일은 이와 같은 권리 객체 저장 파일에 대응 위치에서 복수의 권리 객체를 포함하고, 상기 권리 객체는 복수의 콘텐츠 파일 중 대응하는 하나의 사용 및/또는 접근에 사용되고, 각각의 콘텐츠 파일은 헤더부를 포함하고, 상기 각각의 콘텐츠 파일(들)의 헤더부에서의 정보는 대응 권리 객체가 찾아진 권리 객체 저장 파일(들)의 하나, 및 이와 같은 권리 객체 저장 파일에서 이와 같은 권리 객체의 대응 위치를 나타내고, 상기 권리 객체 탐색 파일은 적어도 하나의 권리 객체 저장 파일에서 하나 이상의 위치가 유효 권리 객체를 포함하는지 아닌지를 나타내는 정보를 포함하는 비휘발성 컴퓨터 판독가능 매체.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, wherein each rights object storage file corresponds to such a rights object storage file. Includes a plurality of rights objects, wherein the rights objects are used for use and / or access to a corresponding one of a plurality of content files, each content file including a header portion, and a header of each of the content file (s) The information in the section indicates one of the rights object storage file (s) in which the corresponding rights object was found, and the corresponding location of such rights object in such rights object storage file, wherein the rights object navigation file contains at least one rights object. Information indicating whether one or more locations in the save file contain effective rights objects. Non-volatile computer-readable medium comprising. 제 39 항에 있어서,The method of claim 39, 상기 매체는 메모리 카드에 비휘발성 플래시 메모리 셀을 포함하는 비휘발성 컴퓨터 판독가능 매체.And the medium comprises a nonvolatile flash memory cell in a memory card. 제 39 항에 있어서,The method of claim 39, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 보호 영역은 인증된 사용자에만 접근가능하고, 상기 적어도 하나의 권리 객체 저장 파일은 적어도 하나의 보호 영역에 저장되고, 상기 권리 객체 탐색 파일은 적어도 하나의 비보호 영역에 저장되는 비휘발성 컴퓨터 판독가능 매체.The medium includes at least one protected area and at least one unprotected area, the protected area is accessible only to an authenticated user, the at least one rights object storage file is stored in at least one protected area, and the right The object navigation file is stored in at least one unprotected area. 권리 객체 탐색 메커니즘을 저장하는 비휘발성 컴퓨터 판독가능 매체로서, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 메커니즘은:A non-volatile computer readable medium storing a rights object navigation mechanism, the medium comprising at least one protected area and at least one unprotected area, the mechanism comprising: 권리 객체 탐색 파일 및 적어도 하나의 권리 객체 저장 파일;A rights object navigation file and at least one rights object storage file; 상기 매체의 적어도 하나의 비보호 영역에, 복수의 콘텐츠 파일 및 권리 객체 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising, in at least one unprotected area of the medium, a directory comprising a list of a plurality of content files and a rights object navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 적어도 하나의 권리 객체 저장 파일에서 권리 객체의 리스트를 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 권리 객체 저장 파일의 각각은 이와 같은 권리 객체 저장 파일에서의 대응위치에서 복수의 암호화된 권리 객체를 포함하고, 상기 권리 객체의 각각은 복수의 콘텐츠 파일의 대응하는 하나의 파일의 사용 및/또는 접근을 제어하며, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지는 비휘발성 컴퓨터 판독가능 매체.At least one protected area of the medium, comprising a second directory tree comprising a directory comprising a list of rights objects in at least one rights object storage file, each of the rights object storage files storing such rights object A plurality of encrypted rights objects at corresponding locations in the file, each of the rights objects controlling the use and / or access of a corresponding one file of the plurality of content files, the two directory trees mirrored each other A nonvolatile computer readable medium having a phosphorus structure. 저장 장치의 보호 영역에서 권리 객체 저장 파일에의 권리 객체를 사용하는 콘텐츠 파일의 사용 및/또는 접근을 제어하는 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 프로그램으로서, 상기 콘텐츠 파일은 콘텐츠 파일의 사용 및/또는 접근을 제어하기 위한 권리 객체 저장 파일에서의 권리 객체로의 접근 경로를 나타내는 권리 객체 탐색 정보를 포함하고, 상기 컴퓨터 프로그램은:A computer readable program for storing a computer program for controlling the use and / or access of a content file using a rights object to a rights object storage file in a protected area of the storage device, wherein the content file is the use and / or use of the content file. And containing rights object navigation information indicating a path of access to a rights object in a rights object storage file for controlling access. 상기 콘텐츠 파일로부터 권리 객체 탐색 정보를 검색하고;Retrieve rights object navigation information from the content file; 상기 권리 객체가 저장되어 있는 저장 장치의 보호 영역에서 권리 객체 저장 파일에서의 위치를 상기 권리 객체 탐색 정보로부터 얻고;Obtain a location in the rights object storage file from the rights object navigation information in the protected area of the storage device in which the rights object is stored; 얻은 위치를 사용하여 저장 매체의 보호 영역에서 권리 객체 저장 파일로부터 상기 권리 객체를 획득하고; 그리고Obtain the rights object from the rights object storage file in the protected area of the storage medium using the obtained location; And 상기 권리 객체에 따라 콘텐츠 파일을 사용하고/하거나 접근하는 컴퓨터 판독가능 매체.Computer readable medium for using and / or accessing content files in accordance with the rights object. 제 43 항에 있어서,The method of claim 43, 상기 컴퓨터 프로그램은 권리 객체를 저장하기 위한 m 개의 위치를 각각 가지는 복수의 권리 객체 저장 파일을 사용하고, 상기 권리 객체 탐색 정보는 인덱스를 포함하고, 몫을 획득하기 위해 m으로 인덱스를 나눔으로써, 상기 몫의 정수부와 동일한 정수를 획득하기 위해, 그리고 상기 몫의 나머지부와 동일한 오프셋을 획득하기 위해, 상기 컴퓨터 프로그램은 복수의 권리 객체 저장 파일 중 하나가 권리 객체, 및 상기 권리 객체가 저장되어 있는 이와 같은 권리 객체 저장 파일에서의 위치를 발견하는 컴퓨터 판독가능 매체. The computer program uses a plurality of rights object storage files each having m locations for storing a rights object, wherein the rights object navigation information includes an index and divides the index by m to obtain a share; In order to obtain an integer equal to the integer portion of the quotient, and to obtain an offset equal to the remainder of the quotient, the computer program may be configured such that one of the plurality of rights object storage files is a rights object, and the rights object is stored therein. A computer-readable medium for finding a location in the same rights object storage file. 제 44 항에 있어서,The method of claim 44, 상기 정수는 하나 이상의 권리 객체 저장 파일(들) 중 하나가 권리 객체를 저장함을 나타내고 상기 오프셋은 권리 객체가 저장되어 있는 이와 같은 권리 객체 저장 파일에서 위치를 나타내는 컴퓨터 판독가능 매체. Wherein the integer indicates that one of the one or more rights object storage file (s) stores the rights object and the offset indicates a location in such a rights object storage file in which the rights object is stored. 제 43 항에 있어서,The method of claim 43, 상기 저장 장치는 비보호 영역을 포함하고, 상기 컴퓨터 프로그램은 또한 비보호 영역에서의 위치로의 접근 경로를 상기 보호 영역에 접근하기 위한 접근 경로로 변환하는 컴퓨터 판독가능 매체.The storage device includes an unprotected area, and the computer program also converts an access path to a location in the unprotected area into an access path for accessing the protected area. 제 46 항에 있어서47. The method of claim 46 상기 저장 장치는:The storage device is: 상기 매체의 적어도 하나의 비보호 영역에, 복수의 콘텐츠 파일 및 권리 객체 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising, in at least one unprotected area of the medium, a directory comprising a list of a plurality of content files and a rights object navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 하나 이상의 권리 객체 저장 파일을 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지며,In at least one protected area of the medium, a second directory tree comprising a directory comprising one or more rights object storage files, the two directory trees having a mirror symmetric structure with each other, 상기 컴퓨터 프로그램은 상기 2 개의 디렉토리 트리를 사용하여 상기 비보호 영역에서의 위치에 접근하기 위한 접근 경로를 권리 객체가 저장되어 있는 권리 객체 저장 파일에서의 위치에 접근하기 위한 접근 경로로 변환하는 컴퓨터 판독가능 매체.The computer program uses the two directory trees to convert an access path for accessing a location in the unprotected area into an access path for accessing a location in a rights object storage file in which a rights object is stored. media. 제 43 항에 있어서,The method of claim 43, 상기 매체는 상기 저장 장치의 일부인 컴퓨터 판독가능 매체.And the medium is part of the storage device. 키 저장 파일에 저장되어 있고 콘텐츠 파일을 암호화/복호화하는데 사용되는 암호화/복호화 키를 무효로 하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 매체로서, 상기 콘텐츠 파일은, 키 저장 파일에 저장되어 있는 키가 유효한지 아닌지를 나타내는 상태 정보를 포함하는 키 탐색 파일에 의해, 키 저장 파일에서의 키의 위치를 나타내는 위치 정보를 포함하는 헤더부를 포함하고, 상기 컴퓨터 프로그램은:A computer readable medium for storing a computer program for invalidating an encryption / decryption key stored in a key storage file and used for encrypting / decrypting a content file, wherein the content file includes a key stored in the key storage file. A key navigation file containing status information indicating whether or not it is valid, the header portion including position information indicating a position of a key in the key storage file, wherein the computer program comprises: 상기 키 파일에서 키의 위치 정보를 콘텐츠 파일의 헤더부로부터 획득하고;Obtain position information of a key in the key file from a header portion of a content file; 상기 위치 정보를 사용하여 키 탐색 파일에서의 키의 상태 정보를 찾고; Find status information of a key in a key navigation file using the location information; 상기 키가 무효임을 나타내도록 키 탐색 파일에서의 키의 상태 정보를 변경하는 컴퓨터 판독가능 매체.And change status information of a key in a key navigation file to indicate that the key is invalid. 제 49 항에 있어서,The method of claim 49, 복수의 키 저장 파일은 하나 이상의 콘텐츠 파일을 보호하기 위해 키를 저장 하는데 사용되고, 상기 키 탐색 파일은 복수의 키 저장 파일에 저장되어 있는 키가 유효한지 아닌지를 나타내는 상태 정보를 포함하고, 상기 위치 정보는 또한 키 저장 파일 중 하나가 무효로되는 키를 포함하는 지를 나타내는 컴퓨터 판독가능 매체.A plurality of key storage files are used to store keys to protect one or more content files, wherein the key navigation file includes state information indicating whether keys stored in the plurality of key storage files are valid, and the location information Also indicates whether one of the key storage files contains a key that is invalidated. 제 49 항에 있어서,The method of claim 49, 상기 키 탐색 파일 및 상기 키 저장 파일은 저장 장치에 저장되어 있고, 상기 장치는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 키 저장 파일은 적어도 하나의 보호 영역에 저장되어 있어, 상기 키 저장 파일에서의 키는 적어도 하나의 보호 영역에 접근하지 않고 무효로 됨이 나타나는 컴퓨터 판독가능 매체.The key navigation file and the key storage file are stored in a storage device, the device including at least one protected area and at least one unprotected area, at least one protected area accessible only to an authenticated user, and The key storage file is stored in at least one protected area, wherein the key in the key storage file is invalidated without access to the at least one protected area. 권리 객체 저장 파일에 저장되어 있고 콘텐츠 파일의 사용 및/또는 접근을 제어하기 위해 사용되는 권리 객체를 무효로 하기 위한 컴퓨터 프로그램을 저장하는 컴퓨터 판독가능 매체로서, 상기 콘텐츠 파일은 권리 객체 저장 파일에 저장된 권리 객체가 유효인지 아닌지를 나타내는 상태 정보를 포함하는 권리 객체 탐색 파일에 의해, 권리 객체 저장 파일에서의 권리 객체의 위치를 나타내는 위치 정보를 포함하는 헤더부를 포함하고, 상기 컴퓨터 프로그램은:A computer readable medium 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 of the content file, wherein the content file is stored in the rights object storage file. And, by the rights object navigation file containing status information indicating whether the rights object is valid, a header portion containing position information indicating the position of the rights object in the rights object storage file, wherein the computer program comprises: 상기 권리 객체 파일에서 권리 객체의 위치 정보를 콘텐츠 파일의 헤더부로부터 획득하고;Obtain position information of a rights object in the rights object file from a header portion of a content file; 상기 위치 정보를 사용하여 권리 객체 탐색 파일에서의 권리 객체의 상태 정보를 찾고; Use the location information to find state information of the rights object in the rights object navigation file; 상기 권리 객체가 무효임을 나타내도록 권리 객체 탐색 파일에서의 권리 객체의 상태 정보를 변경하는 컴퓨터 판독가능 매체.And change status information of the rights object in the rights object navigation file to indicate that the rights object is invalid. 제 52 항에 있어서,The method of claim 52, wherein 복수의 권리 객체 저장 파일은 하나 이상의 콘텐츠 파일을 보호하기 위한 권리 객체를 저장하는데 사용되고, 상기 권리 객체 탐색 파일은 복수의 권리 객체 저장 파일에 저장되어 있는 권리 객체가 유효한지 아닌지를 나타내는 상태 정보를 포함하고, 상기 위치 정보는 또한 권리 객체 저장 파일 중 하나가 무효로되는 권리 객체를 포함함을 나타내는 컴퓨터 판독가능 매체. The 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 includes state information indicating whether the rights objects stored in the plurality of rights object storage files are valid or not. And wherein the location information also indicates that one of the rights object storage files includes a rights object that is invalidated. 제 52 항에 있어서,The method of claim 52, wherein 상기 권리 객체 탐색 파일 및 상기 권리 객체 저장 파일은 저장 장치에 저장되어 있고, 상기 저장 장치는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 권리 객체 저장 파일은 적어도 하나의 보호 영역에 저장되어 있어, 상기 권리 객체 저장 파일에서의 권리 객체는 적어도 하나의 보호 영역에 접근하지 않고 무효로 됨이 나타나는 컴퓨터 판독가능 매체.The rights object navigation file and the rights object storage file are stored in a storage device, the storage device including at least one protected area and at least one unprotected area, the at least one protected area only accessible to an authenticated user. And the rights object storage file is stored in at least one protected area, wherein the rights object in the rights object storage file is invalidated without access to at least one protected area. 키 탐색 파일 및 하나 이상의 키 저장 파일을 사용하여 콘텐츠 파일을 암호/복호하기 위한 방법으로서, 상기 키 탐색 파일에서의 각각의 엔트리는 상기 하나 이상의 키 저장 파일에서 복수의 암호화/복호화 키 중 하나를 저장하기 위한 위치에 대응하고, 상기 방법은:A method for encrypting / decrypting a content file using a key navigation file and one or more key storage files, each entry in the key navigation file storing one of a plurality of encryption / decryption keys in the one or more key storage files. Corresponding to a position to: 상기 키 탐색 파일을 여는 단계;Opening the key navigation file; 상기 하나 이상의 키 저장 파일에서 유효 키의 위치에 대응하지 않는 엔트리를 상기 키 탐색 파일에서 발견하는 단계;Finding an entry in the key navigation file that does not correspond to a location of a valid key in the one or more key storage files; 암호화/복호화 키를 발생하는 단계;Generating an encryption / decryption key; 상기 암호화/복호화 키로 콘텐츠 파일을 암호/복호하는 단계; 및Encrypting / decrypting a content file with the encryption / decryption key; And 상기 엔트리에 대응하는 키 저장 파일(들) 중 하나에서 위치에 상기 암호화/복호화 키를 저장하는 단계를 포함하는 콘텐츠 파일의 암호화/복호화 방법. Storing the encryption / decryption key at a location in one of the key storage file (s) corresponding to the entry. 제 55 항에 있어서,The method of claim 55, 상기 방법은 콘텐츠 파일에 대한 키 탐색 정보를 상기 키 탐색 파일에서의 상기 엔트리의 위치로부터 획득하는 단계를 더 포함하는 콘텐츠 파일의 암호화/복호화 방법.The method further comprises obtaining key navigation information for the content file from the location of the entry in the key navigation file. 제 56 항에 있어서,The method of claim 56, wherein 상기 방법은 m 개의 엔트리를 각각 가지는 복수의 키 저장 파일을 사용하고, 상기 키 탐색 정보는 키 탐색 파일에서의 각각의 엔트리에 대해 다른 값을 가지는 인덱스를 포함하고, 상기 방법은 암호화/복호화 키를 저장하기 위해 엔트리에 대응하는 하나 이상의 키 저장 파일에서 위치를 발견하는 단계를 더 포함하고, 상기 발견하는 단계는 몫을 얻기 위해, 몫의 정수 부분과 동일한 정수를 얻기 위해, 몫의 나머지 부분과 동일한 오프셋을 얻기 위해 m으로 인덱스를 나누는 단계를 포함하는 콘텐츠 파일의 암호화/복호화 방법. The method uses a plurality of key storage files each having m entries, wherein the key navigation information includes an index having a different value for each entry in the key navigation file, and the method includes an encryption / decryption key. Discovering a location in the one or more key storage files corresponding to the entry for storing, wherein the discovering step is equal to the remainder of the share, to obtain an integer equal to the integer portion of the share, to obtain a share. A method of encrypting / decrypting a content file comprising dividing the index by m to obtain an offset. 제 57 항에 있어서,The method of claim 57, 상기 정수는 암호화/복호화 키가 상기 저장하는 단계에 의해 저장되는 하나 이상의 키 저장 파일(들) 중 하나를 나타내고 상기 오프셋은 상기 암호화/복호화 키가 상기 저장하는 단계에 의해 저장되는 이와 같은 키 저장 파일에서의 위치를 나타내는 콘텐츠 파일의 암호화/복호화 방법. The integer represents one of the one or more key storage file (s) in which the encryption / decryption key is stored by the storing and the offset is such a key storage file in which the encryption / decryption key is stored by the storing. A method of encrypting / decrypting content files indicating their location in. 제 57 항에 있어서,The method of claim 57, 상기 암호/복호화된 콘텐츠 파일의 헤더로 인덱스를 삽입하는 단계를 더 포함하는 콘텐츠 파일의 암호화/복호화 방법. And inserting an index into the header of the encrypted / decrypted content file. 제 55 항에 있어서,The method of claim 55, 상기 적어도 하나의 키 저장 파일에 유효 키에 대응하도록 상기 키 탐색 파일에서 엔트리를 변경하는 단계를 더 포함하는 콘텐츠 파일의 암호화/복호화 방법.Changing an entry in the key navigation file to correspond to a valid key in the at least one key storage file. 제 55 항에 있어서,The method of claim 55, 상기 키 탐색 파일 및 상기 하나 이상의 키 저장 파일은 저장 매체에 저장되어 있고, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 하나 이상의 키 저장 파일은 상기 적어도 하나의 보호 영역에 저장되어 있어, 상기 저장하는 단계는 적어도 하나의 보호 영역에서 상기 암호화/복호화 키를 저장하는 콘텐츠 파일의 암호화/복호화 방법. The key navigation file and the one or more key storage files are stored in a storage medium, the medium including at least one protected area and at least one unprotected area, wherein the at least one protected area is accessible only to an authenticated user. And the at least one key storage file is stored in the at least one protected area, and wherein the storing comprises storing the encryption / decryption key in at least one protected area. 제 55 항에 있어서,The method of claim 55, 상기 암호화/복호화 키를 저장하기 위한 엔트리에 대응하는 위치를 포함하는 하나의 키 저장 파일로의 접근 경로를 구성하는 단계를 더 포함하는 콘텐츠 파일의 암호화/복호화 방법. And configuring an access path to one key storage file that includes a location corresponding to the entry for storing the encryption / decryption key. 제 62 항에 있어서,63. The method of claim 62, 상기 구성하는 단계는 상기 키 탐색 정보로부터 키 파일 이름을 형성하는 단계를 포함하는 콘텐츠 파일의 암호화/복호화 방법. The configuring step includes the step of forming a key file name from the key navigation information. 제 63 항에 있어서,The method of claim 63, wherein 상기 키 탐색 파일 및 상기 하나 이상의 키 저장 파일은 저장 매체에 저장되어 있고, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 보호 영역은 인증된 사용자에만 접근가능하고, 상기 하나 이상의 키 저장 파일은 상기 적어도 하나의 보호 영역에 저장되고, 상기 구성하는 단계는 적어도 하나의 보호 영역에서 하나의 키 저장 파일로의 접근 경로를 파일 이름으로부터 얻는 단계를 포함하는 콘텐츠 파일의 암호화/복호화 방법. The key navigation file and the one or more key storage files are stored in a storage medium, the medium including at least one protected area and at least one unprotected area, the protected area accessible only to an authenticated user, and One or more key storage files are stored in the at least one protected area, and the configuring step comprises obtaining an access path from the file name to the one key storage file in the at least one protected area. Decryption method. 제 62 항에 있어서,63. The method of claim 62, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 구성하는 단계는 적어도 하나의 비보호 영역에서의 위치로의 접근 경로를 적어도 하나의 보호 영역에 접근하기 위한 접근 경로로 변환하는 단계를 포함하는 콘텐츠 파일의 암호화/복호화 방법.The medium includes at least one protected area and at least one unprotected area, and the configuring comprises converting an access path to a location in the at least one unprotected area into an access path for accessing the at least one protected area. A method of encrypting / decrypting a content file comprising the steps. 제 65 항에 있어서,66. The method of claim 65, 상기 매체는:The medium is: 상기 매체의 적어도 하나의 비보호 영역에, 복수의 콘텐츠 파일 및 키 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising, in at least one unprotected area of the medium, a directory comprising a list of a plurality of content files and a key navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 하나 이상의 키 저장 파일에서 키의 리스트를 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지며, A second directory tree comprising a directory in the at least one protected area of the medium, the directory including a list of keys in one or more key storage files, the two directory trees having a mirror symmetric structure with each other, 상기 변환하는 단계는 2 개의 디렉토리 트리를 사용하여 비보호 영역에서의 위치에 접근하기 위한 접근 경로를 보호 영역에 하나의 키 저장 파일에서 위치에 접근하기 위한 접근 경로로 변환하는 콘텐츠 파일의 암호화/복호화 방법.The converting may include encrypting / decrypting a content file using two directory trees to convert an access path for accessing a location in an unprotected area from a key storage file in the protected area to an access path for accessing a location. . 저장 매체의 보호 영역에서의 키 저장 파일에 복호화/암호화 키를 사용하여 콘텐츠 파일을 복호/암호하기 위한 방법으로서, 상기 콘텐츠 파일은 콘텐츠 파일을 복호/암호하기 위해 키 저장 파일에 복호화/암호화 키의 위치를 나타내는 키 탐색 정보를 포함하고, 상기 방법은:A method for decrypting / encrypting a content file using a decryption / encryption key in a key storage file in a protected area of a storage medium, the content file having a decryption / encryption key in a key storage file for decrypting / decrypting the content file. And key navigation information indicative of location, the method comprising: 상기 콘텐츠 파일로부터 상기 키 탐색 정보를 검색하는 단계;Retrieving the key navigation information from the content file; 상기 암호화/복호화 키가 저장되어 있는 저장 장치의 보호 영역에 키 저장 파일에서의 위치를 상기 키 탐색 정보로부터 얻는 단계;Obtaining a location in a key storage file from the key navigation information in a protected area of a storage device in which the encryption / decryption key is stored; 얻은 위치를 사용하여 저장 매체의 보호 영역에서 키 저장 파일로부터 암호화/복호화 키를 획득하는 단계; 및Obtaining an encryption / decryption key from a key storage file in a protected area of the storage medium using the obtained location; And 상기 암호화/복호화 키를 사용하여 콘텐츠 파일을 암호/복호하는 단계를 포함하는 콘텐츠 파일의 복호화/암호화 방법. Encrypting / decrypting a content file using the encryption / decryption key. 제 67 항에 있어서,The method of claim 67 wherein 상기 방법은 키를 저장하기 위해 m 개의 위치를 각각 가지는 복수의 키 저장 파일을 사용하고, 상기 키 탐색 정보는 인덱스를 포함하고, 상기 방법은, 몫을 획득하기 위해 m으로 인덱스를 나눔으로써, 상기 몫의 정수 부분과 동일한 정수를 획득하기 위해, 그리고 상기 몫의 나머지 부분과 동일한 오프셋을 획득하기 위해, 복수의 키 저장 파일 중 하나가 복호화/암호화 키, 및 복호화/암호화 키가 저장되어 있는 이와 같은 키 저장 파일에서의 위치를 저장함을 발견하는 단계를 더 포함하는 콘텐츠 파일의 복호화/암호화 방법. The method uses a plurality of key storage files each having m locations for storing keys, wherein the key navigation information comprises an index, and the method divides the index by m to obtain a quot; In order to obtain an integer equal to the integer portion of the quotient, and to obtain an offset equal to the remainder of the quotient, one of the plurality of key storage files is such that the decryption / encryption key and the decryption / encryption key are stored. And storing the location in the key storage file. 제 68 항에 있어서,The method of claim 68, wherein 상기 정수는 하나 이상의 키 저장 파일(들) 중 하나가 복호화/암호화 키를 저장함을 나타내고 상기 오프셋은 복호화/암호화 키가 저장되어 있는 이와 같은 키 저장 파일에서 위치를 나타내는 콘텐츠 파일의 복호화/암호화 방법.Wherein the integer indicates that one of the one or more key storage file (s) stores the decryption / encryption key and the offset indicates a location in such a key storage file where the decryption / encryption key is stored. 제 67 항에 있어서,The method of claim 67 wherein 상기 매체는 비보호 영역을 포함하고, 상기 얻는 단계는 또한 비보호 영역에서의 위치로의 접근 경로를 상기 보호 영역에 접근하기 위한 접근 경로로 변환하는 콘텐츠 파일의 복호화/암호화 방법.The medium includes an unprotected area, and the obtaining step also converts an access path to a location in the unprotected area into an access path for accessing the protected area. 제 70 항에 있어서,The method of claim 70, 상기 매체는:The medium is: 상기 매체의 비보호 영역에, 복수의 콘텐츠 파일 및 적어도 하나의 키 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising a directory in the unprotected area of the medium, the directory including a list of a plurality of content files and at least one key navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 하나 이상의 키 저장 파일을 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지며,A second directory tree comprising a directory containing at least one key storage file in at least one protected area of the medium, the two directory trees having a structure that is mirror symmetric with each other, 상기 변환하는 단계는 상기 2 개의 디렉토리 트리를 사용하여 상기 비보호 영역에서의 위치에 접근하기 위한 접근 경로를 복호화/암호화 키가 저장되어 있는 키 저장 파일에서의 위치에 접근하기 위한 접근 경로로 변환하는 콘텐츠 파일의 복호화/암호화 방법.The converting may include converting an access path for accessing a location in the unprotected area using the two directory trees into an access path for accessing a location in a key storage file in which a decryption / encryption key is stored. How to decrypt / encrypt a file. 키 탐색 파일이 존재하지 않는 경우 상기 키 탐색 파일을 생성하는 단계;Generating the key navigation file if the key navigation file does not exist; 적어도 하나의 키 저장 파일이 존재하지 않는 경우 상기 적어도 하나의 키 탐색 파일을 생성하는 단계;Generating the at least one key navigation file if at least one key storage file does not exist; 상기 적어도 하나의 키 저장 파일에서 유효 키에 대응하지 않는 엔트리를 상기 키 탐색 파일에서 발견하는 단계;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 for the content file from the location of the entry in the key navigation file; 암호화/복호화 키를 발생하는 단계;Generating an encryption / decryption key; 상기 암호화/복호화 키로 콘텐츠 파일을 암호/복호하는 단계;및Encrypting / decrypting a content file with the encryption / decryption key; and 상기 엔트리에 대응하는 상기 적어도 하나의 키 저장 파일에서의 위치에 상기 암호화/복호화 키를 저장하는 단계를 포함하고, 상기 키 탐색 파일에서의 엔트리의 각각은 상기 적어도 하나의 키 저장 파일에서 복수의 암호화/복호화 키 중 하나를 저장하기 위한 위치에 대응하는 콘텐츠 파일의 암호화/복호화 방법.Storing the encryption / decryption key at a location in the at least one key storage file corresponding to the entry, wherein each of the entries in the key navigation file is a plurality of encryptions in the at least one key storage file. A method of encrypting / decrypting a content file corresponding to a location for storing one of / decryption keys. 권리 객체 탐색 파일 및 하나 이상의 권리 객체 저장 파일을 사용하여 콘텐 츠 파일의 사용 및/또는 접근을 제어하기 위한 방법으로, 상기 권리 객체 탐색 파일에서의 엔트리의 각각은 상기 하나 이상의 권리 객체 저장 파일에서 복수의 권리 객체 중 하나를 저장하기 위한 위치에 대응하고, 상기 방법은:A method for controlling the use and / or access of a content file using a rights object navigation file and one or more rights object storage files, wherein each of the entries in the rights object navigation file are multiple in the one or more rights object storage files. Corresponding to a location for storing one of the rights object of, the method comprising: 상기 권리 객체 탐색 파일을 여는 단계;Opening the rights object navigation file; 상기 하나 이상의 권리 객체 저장 파일에서 유효 권리 객체의 위치에 대응하지 않는 엔트리를 상기 권리 객체 탐색 파일에서 발견하는 단계;Finding an entry in the rights object navigation file that does not correspond to a location of a valid rights object in the one or more rights object storage files; 권리 객체를 획득하는 단계;Obtaining a rights object; 상기 권리 객체를 따라 상기 콘텐츠 파일의 사용 및/또는 접근을 제어하는 단계; 및Controlling the use and / or access of the content file along the rights object; And 상기 엔트리에 대응하는 권리 객체 저장 파일(들) 중 하나에 위치에서 권리 객체를 저장하는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.Storing the rights object at a location in one of the rights object storage file (s) corresponding to the entry. 제 73 항에 있어서,The method of claim 73, wherein 상기 방법은 콘텐츠 파일에 대한 권리 객체 탐색 정보를 상기 권리 객체 탐색 파일에서의 상기 엔트리의 위치로부터 획득하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The method further comprises obtaining rights object navigation information for the content file from the location of the entry in the rights object navigation file. 제 74 항에 있어서,The method of claim 74, wherein 상기 방법은 m 개의 엔트리를 각각 가지는 복수의 권리 객체 저장 파일을 사용하고, 상기 권리 객체 탐색 정보는 권리 객체 탐색 파일에서의 각각의 엔트리에 대해 다른 값을 가지는 인덱스를 포함하고, 상기 방법은 권리 객체를 저장하기 위해 엔트리에 대응하는 하나 이상의 권리 객체 저장 파일에서 위치를 발견하는 단계를 더 포함하고, 상기 발견하는 단계는 몫을 얻기 위해, 몫의 정수 부분과 동일한 정수를 얻기 위해, 몫의 나머지 부분과 동일한 오프셋을 얻기 위해 m으로 인덱스를 나누는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The method uses a plurality of rights object storage files each having m entries, the rights object navigation information comprising an index having a different value for each entry in the rights object navigation file, the method being a rights object And further comprising: finding a location in the one or more rights object storage file corresponding to the entry to store the location, wherein the discovering step comprises: to obtain an integer, the remainder of the share, to obtain an integer equal to the integer portion of the share; Dividing the index by m to obtain an offset equal to < RTI ID = 0.0 > m. ≪ / RTI > 제 75 항에 있어서,76. The method of claim 75 wherein 상기 정수는 권리 객체가 상기 저장하는 단계에 의해 저장되는 하나 이상의 권리 객체 저장 파일(들) 중 하나를 나타내고 상기 오프셋은 상기 저장하는 단계에 의해 저장되는 이와 같은 권리 객체 저장 파일에서의 위치를 나타내는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The integer indicating one of the one or more rights object storage file (s) in which the rights object is stored by the storing and the offset indicating a location in such rights object storage file being stored by the storing. How to control the use and / or access to files. 제 75 항에 있어서,76. The method of claim 75 wherein 상기 콘텐츠 파일의 헤더로 인덱스를 삽입하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.And inserting an index into the header of the content file. 제 73 항에 있어서,The method of claim 73, wherein 상기 적어도 하나의 권리 객체 저장 파일에 유효 권리 객체에 대응하도록 상기 권리 객체 탐색 파일에서 엔트리를 변경하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.And modifying an entry in the rights object navigation file to correspond to a valid rights object in the at least one rights object storage file. 제 73 항에 있어서,The method of claim 73, wherein 상기 권리 객체 탐색 파일 및 상기 하나 이상의 권리 객체 저장 파일은 저장 매체에 저장되어 있고, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 하나 이상의 권리 객체 저장 파일은 상기 적어도 하나의 보호 영역에 저장되어 있어, 상기 저장하는 단계는 적어도 하나의 보호 영역에 상기 권리 객체를 저장하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The rights object navigation file and the one or more rights object storage files are stored in a storage medium, the medium including at least one protected area and at least one unprotected area, wherein the at least one protected area is for an authenticated user only. The at least one rights object storage file is accessible and is stored in the at least one protected area so that the storing step controls the use and / or access of the content file storing the rights object in at least one protected area. Way. 제 73 항에 있어서,The method of claim 73, wherein 상기 권리 객체를 저장하기 위해 엔트리에 대응하는 위치를 포함하는 하나의 권리 객체 저장 파일로의 접근 경로를 구성하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.Constructing an access path to one rights object storage file that includes a location corresponding to an entry for storing the rights object. 제 80 항에 있어서,81. The method of claim 80, 상기 구성하는 단계는 상기 권리 객체 탐색 정보로부터 권리 객체 파일 이름을 형성하는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The configuring step includes the step of forming a rights object file name from the rights object navigation information. 제 81 항에 있어서,82. The method of claim 81 wherein 상기 권리 객체 탐색 파일 및 상기 하나 이상의 권리 객체 저장 파일은 저장 매체에 저장되고, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 보호 영역은 인증된 사용자에만 접근가능하고, 상기 하나 이상의 권리 객체 저장 파일은 상기 적어도 하나의 보호 영역에 저장되고, 상기 구성하는 단계는 적어도 하나의 보호 영역에서 하나의 권리 객체 저장 파일로의 접근 경로를 파일 이름으로부터 얻는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The rights object navigation file and the one or more rights object storage files are stored in a storage medium, the medium including at least one protected area and at least one unprotected area, the protected area accessible only to an authenticated user, The one or more rights object storage files are stored in the at least one protected area, and the configuring step further includes obtaining an access path from the file name to one rights object storage file in the at least one protected area. How to control the use and / or access to files. 제 80 항에 있어서,81. The method of claim 80, 상기 매체는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 상기 구성하는 단계는 적어도 하나의 비보호 영역에서의 위치로의 접근 경로를 적어도 하나의 보호 영역에 접근하기 위한 접근 경로로 변환하는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The medium includes at least one protected area and at least one unprotected area, and the configuring comprises converting an access path to a location in the at least one unprotected area into an access path for accessing the at least one protected area. A method of controlling use and / or access to a content file comprising the steps. 제 83 항에 있어서,84. The method of claim 83 wherein 상기 매체는:The medium is: 상기 매체의 적어도 하나의 비보호 영역에, 복수의 콘텐츠 파일 및 권리 객체 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree comprising, in at least one unprotected area of the medium, a directory comprising a list of a plurality of content files and a rights object navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 하나 이상의 권리 객체 저장 파일을 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지며, In at least one protected area of the medium, a second directory tree comprising a directory comprising one or more rights object storage files, the two directory trees having a mirror symmetric structure with each other, 상기 변환하는 단계는 2 개의 디렉토리 트리를 사용하여 비보호 영역에서의 위치에 접근하기 위한 접근 경로를 보호 영역에서 하나의 권리 객체 저장 파일에의 위치에 접근하기 위한 접근 경로로 변환하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The converting step includes the use of a content file for converting an access path for accessing a location in an unprotected area using two directory trees to an access path for accessing a location in a rights object storage file in the protected area; And / or how to control access. 제 73 항에 있어서,The method of claim 73, wherein 상기 획득하는 단계는 상기 권리 객체를 발생하는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The acquiring step includes generating the rights object. 제 73 항에 있어서,The method of claim 73, wherein 상기 획득하는 단계는 상기 권리 객체를 다운로드하는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The acquiring step includes downloading the rights object. 제 86 항에 있어서,87. The method of claim 86, 키를 발생하고 발생된 키를 사용하여 상기 콘텐츠 키를 암호화하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.Generating a key and encrypting the content key using the generated key. 제 87 항에 있어서,88. The method of claim 87 wherein 상기 권리 객체로부터의 키를 사용하여 상기 콘텐츠 파일을 복호하는 단계를 더 포함하고, 상기 암호화하는 단계는 상기 복호화하는 단계 이후에 일어나는 콘텐 츠 파일의 사용 및/또는 접근의 제어 방법.Decrypting the content file using a key from the rights object, wherein the encrypting occurs after the decrypting. 제 87 항에 있어서,88. The method of claim 87 wherein 상기 권리 객체에서의 상기 키를 발생된 키에 의해 대체하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.Replacing the key in the rights object by a generated key. 제 87 항에 있어서,88. The method of claim 87 wherein 상기 암호화 단계는 콘텐츠 파일이 상기 권리 객체에서 키에 의해 이미 암호화되어 있는 콘텐츠 파일을 암호화하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The encrypting step controls the use and / or access of the content file to encrypt the content file whose content file is already encrypted by a key in the rights object. 제 90 항에 있어서,92. The method of claim 90, 상기 권리 객체에 발생된 키를 저장하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.And 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 protected area of a storage medium, wherein the content file is a rights object for controlling the use and / or access of the content file. And includes rights object navigation information indicating the location of the rights object in the storage file, the method comprising: 상기 콘텐츠 파일로부터 상기 권리 객체 탐색 정보를 검색하는 단계;Retrieving the rights object navigation information from the content file; 상기 권리 객체가 저장되어 있는 저장 장치의 보호 영역에 권리 객체 저장 파일에서의 위치를 상기 권리 객체 탐색 정보로부터 얻는 단계;Obtaining from the rights object navigation information a location in the rights object storage file in a protected area of a storage device in which the rights object is stored; 얻은 위치를 사용하여 저장 매체의 보호 영역에서 권리 객체 저장 파일로부터 상기 권리 객체를 획득하는 단계; 및Obtaining the rights object from the rights object storage file in the protected area of the storage medium using the obtained location; And 상기 권리 객체에 따라 콘텐츠 파일의 사용 및/또는 접근을 제어하는 단계를 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법. Controlling the use and / or access of the content file according to the rights object. 제 92 항에 있어서,92. The method of claim 92, 상기 방법은 권리 객체를 저장하기 위해 m 개의 위치를 각각 가지는 복수의 권리 객체 저장 파일을 사용하고, 상기 권리 객체 탐색 정보는 인덱스를 포함하고, 상기 방법은, 몫을 획득하기 위해 m으로 인덱스를 나눔으로써, 상기 몫의 정수 부분과 동일한 정수를 획득하기 위해, 그리고 상기 몫의 나머지 부분과 동일한 오프셋을 획득하기 위해, 복수의 권리 객체 저장 파일 중 하나가 권리 객체, 및 권리 객체가 저장되어 있는 이와 같은 권리 객체 저장 파일에서의 위치를 저장함을 발견하는 단계를 더 포함하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.The method uses a plurality of rights object storage files each having m locations for storing the rights object, the rights object navigation information includes an index, and the method divides the index by m to obtain a share. Thus, to obtain an integer equal to the integer portion of the quotient, and to obtain an offset equal to the remainder of the quotient, one of the plurality of rights object storage files is a rights object, and such a rights object is stored. And detecting the location in the rights object storage file. 제 93 항에 있어서,94. The method of claim 93, 상기 정수는 하나 이상의 권리 객체 저장 파일(들) 중 하나가 권리 객체를 저장함을 나타내고 상기 오프셋은 권리 객체가 저장되어 있는 이와 같은 권리 객체 저장 파일에서 위치를 나타내는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법. The integer indicates that one of the one or more rights object storage file (s) stores the rights object and the offset controls the use and / or access to the content file indicating the location in the rights object storage file in which the rights object is stored. Way. 제 92 항에 있어서,92. The method of claim 92, 상기 매체는 비보호 영역을 포함하고, 상기 얻는 단계는 또한 비보호 영역에서의 위치로의 접근 경로를 상기 보호 영역에 접근하기 위한 접근 경로로 변환하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법. The medium includes an unprotected area, and the obtaining step also converts an access path to a location in the unprotected area into an access path for accessing the protected area. 제 95 항에 있어서,97. The method of claim 95, 상기 매체는:The medium is: 상기 매체의 비보호 영역에, 복수의 콘텐츠 파일 및 권리 객체 탐색 파일의 리스트를 포함하는 디렉토리를 포함하는 제 1 디렉토리 트리; 및A first directory tree in the unprotected area of the medium, the directory comprising a directory comprising a list of a plurality of content files and a rights object navigation file; And 상기 매체의 적어도 하나의 보호 영역에, 하나 이상의 권리 객체 저장 파일을 포함하는 디렉토리를 포함하는 제 2 디렉토리 트리를 포함하고, 상기 2 개의 디렉토리 트리는 서로 거울대칭인 구조를 가지며,In at least one protected area of the medium, a second directory tree comprising a directory comprising one or more rights object storage files, the two directory trees having a mirror symmetric structure with each other, 상기 변환하는 단계는 상기 2 개의 디렉토리 트리를 사용하여 상기 비보호 영역에서의 위치에 접근하기 위한 접근 경로를 권리 객체가 저장되어 있는 권리 객체 저장 파일에서의 위치에 접근하기 위한 접근 경로로 변환하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법. The converting may include converting an access path for accessing a location in the unprotected area using the two directory trees into an access path for accessing a location in a rights object storage file in which a rights object is stored. To control the use and / or access of the method. 권리 객체 탐색 파일이 존재하지 않는 경우 상기 권리 객체 탐색 파일을 생성하는 단계;Generating the rights object navigation file if the rights object navigation file does not exist; 적어도 하나의 권리 객체 저장 파일이 존재하지 않는 경우 상기 적어도 하나의 권리 객체 탐색 파일을 생성하는 단계;Generating the at least one rights object navigation file if at least one rights object storage file does not exist; 상기 적어도 하나의 권리 객체 저장 파일에서 유효 권리 객체에 대응하지 않는 엔트리를 상기 권리 객체 탐색 파일에서 발견하는 단계;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 for the content file from the location of the entry in the rights object navigation file; 권리 객체를 발생하는 단계;Generating a rights object; 상기 권리 객체에 따라 콘텐츠 파일의 사용 및/또는 접근을 제어하는 단계;및Controlling use and / or access to content files in accordance with the rights object; and 상기 엔트리에 대응하는 상기 적어도 하나의 권리 객체 저장 파일에서의 위치에 상기 권리 객체를 저장하는 단계를 포함하고, 상기 권리 객체 탐색 파일에서의 엔트리의 각각은 상기 적어도 하나의 권리 객체 저장 파일에서 복수의 권리 객체 중 하나를 저장하기 위한 위치에 대응하는 콘텐츠 파일의 사용 및/또는 접근의 제어 방법.Storing the rights object at a location in the at least one rights object storage file corresponding to the entry, wherein each of the entries in the rights object navigation file is a plurality of entries in the at least one rights object storage file. A method of controlling the use and / or access of a content file corresponding to a location for storing one of a rights object. 키 저장 파일에 저장되어 있고 콘텐츠 파일을 암호/복호하는데 사용되는 암호화/복호화 키를 무효로 하기 위한 방법으로서, 상기 콘텐츠 파일은 상기 키 저장 파일에 저장된 키가 유효인지 아닌지를 나타내는 상태 정보를 포함하는 키 탐색 파일에 의해, 상기 키 저장 파일에서의 키의 위치를 나타내는 위치 정보를 포함하는 헤더부를 포함하고, 상기 방법은: CLAIMS 1. 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 includes status information indicating whether the key stored in the key storage file is valid or not. A key navigation file, comprising a header portion containing location information indicating a location of a key in the key storage file, the method comprising: 상기 키 파일에서 키의 위치 정보를 콘텐츠 파일의 헤더부로부터 획득하는 단계;Obtaining location information of a key in the key file from a header portion of a content file; 상기 위치 정보를 사용하여 키 탐색 파일에서의 키의 상태 정보를 찾는 단계; 및 Finding status information of a key in a key navigation file using the location information; And 상기 키가 무효임을 나타내도록 상기 키 탐색 파일에서의 키의 상태 정보를 변경하는 단계를 포함하는 암호화/복호화 키의 무효 방법.Changing state information of a key in the key navigation file to indicate that the key is invalid. 제 98 항에 있어서,99. The method of claim 98, 상기 키 탐색 파일 및 상기 키 저장 파일은 저장 장치에 저장되어 있고, 상기 저장 장치는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 키 저장 파일은 적어도 하나의 보호 영역에 저장되어 있어, 상기 키 저장 파일에서의 키는 적어도 하나의 보호 영역에 접근하지 않고 무효로 됨이 나타나는 암호화/복호화 키의 무효 방법.The key navigation file and the key storage file are stored in a storage device, the storage device including at least one protected area and at least one unprotected area, the at least one protected area being accessible only to an authenticated user, And the key storage file is stored in at least one protected area, so that the key in the key storage file becomes invalid without accessing at least one protected area. 권리 객체 저장 파일에 저장되어 있고 콘텐츠 파일의 사용 및/또는 접근을 제어하는데 사용되는 권리 객체를 무효로 하기 위한 방법으로서, 상기 콘텐츠 파일은, 권리 객체 저장 파일에 저장되어 있는 권리 객체가 유효한지 아닌지를 나타내는 상태 정보를 포함하는 권리 객체 탐색 파일에 의해, 상기 권리 객체 저장 파일에서의 권리 객체의 위치를 나타내는 위치 정보를 포함하는 헤더부를 포함하고, 상 기 방법은:A method for invalidating a rights object stored in a rights object storage file and used to control the use and / or access of the content file, wherein the content file is a valid object stored in the rights object storage file. A rights object navigation file including state information indicating a, comprising a header portion including position information indicating a position of a rights object in the rights object storage file. 상기 권리 객체 파일에서 권리 객체의 위치 정보를 콘텐츠 파일의 헤더부로부터 획득하는 단계;Obtaining location information of a rights object from the header part of a content file in the rights object file; 상기 위치 정보를 사용하여 권리 객체 탐색 파일에서의 권리 객체의 상태 정보를 찾는 단계; 및Finding state information of the rights object in the rights object navigation file using the location information; And 상기 권리 객체가 무효임을 나타내도록 권리 객체 탐색 파일에서의 권리 객체의 상태 정보를 변경하는 단계를 포함하는 권리 객체의 무효 방법.Changing state information of the rights object in the rights object navigation file to indicate that the rights object is invalid. 제 100 항에 있어서,101. The method of claim 100, 상기 권리 객체 탐색 파일 및 상기 권리 객체 저장 파일은 저장 장치에 저장되어 있고, 상기 저장 장치는 적어도 하나의 보호 영역 및 적어도 하나의 비보호 영역을 포함하고, 적어도 하나의 보호 영역은 인증된 사용자에만 접근가능하고, 상기 권리 객체 저장 파일은 적어도 하나의 보호 영역에 저장되어 있어, 상기 권리 객체 저장 파일에서의 권리 객체는 적어도 하나의 보호 영역에 접근하지 않고 무효로 됨이 나타나는 권리 객체의 무효 방법.The rights object navigation file and the rights object storage file are stored in a storage device, the storage device including at least one protected area and at least one unprotected area, the at least one protected area being accessible only to an authenticated user. And the rights object storage file is stored in at least one protected area so that the rights object in the rights object storage file is invalid without accessing at least one protected area.
KR1020087014728A 2005-11-18 2006-11-15 Method and system for managing keys and/or rights objects KR20080068757A (en)

Applications Claiming Priority (4)

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

Publications (1)

Publication Number Publication Date
KR20080068757A true KR20080068757A (en) 2008-07-23

Family

ID=38371958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014728A KR20080068757A (en) 2005-11-18 2006-11-15 Method and system for managing keys 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
KR20210015534A (en) * 2019-08-02 2021-02-10 주식회사 티모넷 System and method for providing electronic signature service

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
JP5821558B2 (en) * 2011-11-17 2015-11-24 ソニー株式会社 Information processing apparatus, information storage apparatus, information processing system, information processing method, and program
KR101416542B1 (en) 2012-12-24 2014-07-09 주식회사 로웸 Method for Apparatus for managing passcode

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
CN1187756C (en) * 1999-05-28 2005-02-02 松下电器产业株式会社 Semiconductor memory card, playback appts. recording appts. playback method, recording method, and computer-readable recording medium
CN1556952A (en) * 2001-07-09 2004-12-22 ���µ�����ҵ��ʽ���� Contents management system and information storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210015534A (en) * 2019-08-02 2021-02-10 주식회사 티모넷 System and method for providing electronic signature service
WO2021025403A3 (en) * 2019-08-02 2021-04-01 주식회사 티모넷 Security key management method and security key management server

Also Published As

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

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
US7269741B2 (en) Recording apparatus, medium, method, and related computer program
KR100608585B1 (en) Method and apparatus for searching rights objects stored in portable storage device using object location data
KR100463842B1 (en) Apparatus for managing key in afile security system and method for managing security key
US5748744A (en) Secure mass storage system for computers
US8145900B2 (en) Crypto-pointers for secure data storage
US8069298B2 (en) Method of storing and accessing header data from memory
US20110173460A1 (en) Information processing device, method, program, and integrated circuit
US8001391B2 (en) Method of encrypting and decrypting data stored on a storage device using an embedded encryption/decryption means
US20060156036A1 (en) Method and portable storage device for allocating secure area in insecure area
JP2004185152A (en) License moving device and program
CN101114296A (en) Method and apparatus for managing license
KR20080068757A (en) Method and system for managing keys and/or rights objects
KR100608604B1 (en) Method and apparatus for searching right objects stored in portable storage device using object identifier
KR101761799B1 (en) Apparatus and method for managing data security of terminal
JP2008530673A (en) How to protect rights file descriptions
KR101277261B1 (en) Method and apparatus for storing digital content in storage device
US20120124314A1 (en) Recording medium
US20130036474A1 (en) Method and Apparatus for Secure Data Representation Allowing Efficient Collection, Search and Retrieval

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid