KR20090019660A - Method and apparatus for storing digital content in storage device - Google Patents
Method and apparatus for storing digital content in storage device Download PDFInfo
- Publication number
- KR20090019660A KR20090019660A KR1020070135245A KR20070135245A KR20090019660A KR 20090019660 A KR20090019660 A KR 20090019660A KR 1020070135245 A KR1020070135245 A KR 1020070135245A KR 20070135245 A KR20070135245 A KR 20070135245A KR 20090019660 A KR20090019660 A KR 20090019660A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- storage
- content
- host
- encrypted
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
Abstract
Description
본 발명은 디지털 컨텐트를 보호하는 방법에 관한 것으로, 더욱 상세하게는 디지털 컨텐트를 스토리지 기기에 저장하고, 저장된 스토리지 기기를 관리하는 방법에 관한 것이다.The present invention relates to a method of protecting digital content, and more particularly, to a method of storing digital content in a storage device and managing the stored storage device.
통신 기술의 발달로 디지털 컨텐트가 점점 대용량화되고 있으며, 이에 따라디지털 컨텐트를 저장하기 위한 고용량의 스토리지 기기들도 많이 출시되고 있다. 디지털 컨텐트는 이론상으로 퀄리티의 열화 없이도 무제한 복제가 가능하기 때문에 디지털 컨텐트가 권한 없는 자에 의해 사용되는 것을 방지할 필요가 있다. 예를 들면, 디지털 컨텐트를 수신하는 셋탑 박스가 방송 컨텐트를 수신하여 그 셋탑 박스에 연결된 스토리지 기기에 저장한 경우, 그 스토리지 기기에 저장된 컨텐트는 다른 셋탑 박스에 접속된 상태에서는 재생될 수 없도록 해야 한다.With the development of communication technology, digital content is becoming more and more large, and accordingly, a lot of high-capacity storage devices for storing digital content are released. Since digital content can theoretically be reproduced indefinitely without quality degradation, it is necessary to prevent digital content from being used by unauthorized persons. For example, if a set-top box receiving digital content receives broadcast content and stores it on a storage device connected to the set-top box, the content stored on that storage device must not be played when connected to another set-top box. .
이와 같이, 디지털 컨텐트를 보호하기 위한 다양한 DRM(Digital Right Management) 기술이 연구되고 있는데, 스토리지 기기는 일반적으로 컨텐트를 보호하기 위해 필요한 연산 능력이 없는 무지능(non-intelligent) 기기이므로, 스토리 지 기기에 컨텐트를 복사하는 호스트(셋탑 박스, 디지털 TV 등)가 컨텐트를 스토리지 기기에 저장하기 전에 미리 컨텐트에 적절한 암호화 처리를 행하여야 한다. As such, a variety of digital right management (DRM) technologies are being researched to protect digital content. Storage devices are generally non-intelligent devices that do not have the computing power required to protect content. The host (set-top box, digital TV, etc.) copying the content to the content must perform an appropriate encryption process on the content before storing the content on the storage device.
도 1은 종래 기술에 따라 호스트가 디지털 컨텐트를 스토리지 기기에 저장하는 과정을 나타낸 순서도이다.1 is a flowchart illustrating a process of storing digital content in a storage device by a host according to the related art.
단계 110에서, 호스트는 컨텐트 키를 생성한다. In
단계 120에서, 호스트는 컨텐트 키로 스토리지에 저장할 컨텐트를 암호화한다.In
단계 130에서, 암호화된 컨텐트를 호스트에 접속한 스토리지 기기에 저장한다.In
단계 140에서, 컨텐트 키를 호스트의 디바이스 키로 암호화한다. 호스트의 디바이스 키는 호스트 외에 다른 디바이스들은 알지 못하는 키이다.In
단계 150에서, 호스트는 암호화된 컨텐트 키를 호스트 내의 안전한 곳에 저장한다. 물론, 이 때 컨텐트 키와 그에 대응되는 컨텐트를 매핑시키는 정보도 함께 저장될 것이다.In
상기와 같은 과정에 의해 컨텐트를 스토리지 기기에 저장하면, 그 스토리지 기기를 다른 호스트에 접속하여도 그 컨텐트를 재생할 수 없다. 컨텐트 키가 호스트에 보관되기 때문에 다른 기기에서는 암호화된 컨텐트를 복호화할 수 없기 때문이다. 따라서, 그 컨텐트는 원래의 호스트에서만 재생될 수 있는데, 이하에서는 이러한 환경을 컨텐트가 호스트에 "바인딩되었다"고 칭하기로 한다. If the content is stored in the storage device by the above process, the content cannot be played even if the storage device is connected to another host. Because the content key is kept on the host, the encrypted content cannot be decrypted by other devices. Thus, the content can only be played back on the original host, hereinafter this environment will be referred to as "binded" to the host.
그러나, 이와 같은 종래 기술에 의하면, 호스트가 많은 컨텐트를 관리해야 하는 문제가 있다. 즉, 호스트는 자신이 암호화하여 저장한 모든 컨텐트들에 대한 컨텐트 키를 보관해야 하므로 시간이 지남에 따라 오버로드가 생길 수 있다.However, according to such a prior art, there is a problem that the host has to manage a lot of content. In other words, since the host must keep the content key for all the contents that are encrypted and stored, overload may occur over time.
또한, 호스트에 바인딩된 컨텐트를 다른 호스트에서 재생하거나 또는 다른 스토리지 기기로 이동(move)시키기 위해서는 컨텐트가 바인딩 된 호스트가 필요한데, 일반적으로 호스트가 휴대하기 용이하지 않기 때문에 컨텐트의 휴대성(portability) 및 이동성(mobility)이 매우 낮다는 문제가 있다. In addition, in order to play content bound to a host on another host or to move to another storage device, a host to which the content is bound is required. Since the host is generally not easy to carry, content portability and The problem is that mobility is very low.
본 발명은 디지털 컨텐트를 스토리지 기기에 저장할 때 호스트가 모든 컨텐트 키를 보관하지 않도록 하며, 또한 하나의 호스트에 바인딩된 컨텐트를 쉽게 다른 기기로 이동할 수 있는 방법을 제공하는데 그 목적이 있다.It is an object of the present invention to provide a method in which a host does not keep all content keys when storing digital content on a storage device, and also provides a method for easily moving content bound to one host to another device.
이러한 목적을 달성하기 위한 본 발명은, 호스트가 디지털 컨텐트를 스토리지 기기에 저장하는 방법에 있어서, 상기 컨텐트를 컨텐트 키로 암호화하는 단계; 상기 스토리지 기기에 대한 고유한 키인 스토리지 키로 상기 컨텐트 키를 암호화하는 단계; 및 상기 암호화된 컨텐트 키를 포함하는 컨텐트 키 파일 및 상기 암호화된 컨텐트를 상기 스토리지 기기에 저장하는 단계를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method for a host to store digital content in a storage device, the method comprising: encrypting the content with a content key; Encrypting the content key with a storage key that is a unique key for the storage device; And storing the encrypted content key file including the encrypted content key and the encrypted content in the storage device.
상기 스토리지 키는 상기 호스트에 접속된 휴대용 보안 장치가 생성한 키인 제 1 스토리지 키이며, 상기 저장 방법은, 상기 저장이 완료되면 제 1 스토리지 키를 상기 호스트에서 삭제하는 단계를 더 포함하는 것이 바람직하다. The storage key is a first storage key, which is a key generated by a portable security device connected to the host, and the storing method further includes deleting the first storage key from the host when the storing is completed. .
상기 저장 방법은, 상기 스토리지 기기에 대해 상기 호스트가 생성한 키인 제 2 스토리지 키가 상기 호스트에 이미 존재하는지 판단하는 단계; 상기 판단 결과에 기초하여 상기 제 2 스토리지 키를 상기 호스트에서 추출하거나 새롭게 생성하는 단계; 상기 제 2 스토리지 키를 이용하여 상기 컨텐트 키 파일을 업데이트하는 단계; 상기 호스트의 디바이스 키로 상기 제 2 스토리지 키를 암호화하는 단계; 및 상기 암호화된 제 2 스토리지 키를 상기 호스트에 저장하는 단계를 더 포함하는 것 이 바람직하다.The storage method may include determining whether a second storage key, which is a key generated by the host, for the storage device already exists in the host; Extracting or newly generating the second storage key from the host based on the determination result; Updating the content key file using the second storage key; Encrypting the second storage key with a device key of the host; And storing the encrypted second storage key on the host.
상기 업데이트하는 단계는, 상기 암호화된 제 1 스토리지 키를 상기 호스트의 디바이스 키를 이용하여 복호화하는 단계; 상기 복호화된 제 1 스토리지 키를 이용하여 상기 컨텐트 키 파일에 포함된 컨텐트 키를 복호화하는 단계; 상기 복호화된 컨텐트 키를 상기 제 2 스토리지 키로 암호화하는 단계; 및 상기 제 2 스토리지 키로 암호화된 컨텐트 키를 상기 제 1 스토리지 키로 암호화된 컨텐트 키와 교체하는 단계를 포함하는 것이 바람직하다.The updating may include decrypting the encrypted first storage key using a device key of the host; Decrypting a content key included in the content key file using the decrypted first storage key; Encrypting the decrypted content key with the second storage key; And replacing the content key encrypted with the second storage key with the content key encrypted with the first storage key.
상기 스토리지 키는 상기 호스트가 생성한 키인 제 2 스토리지 키이며, 상기 저장 방법은, 상기 제 2 스토리지 키를 상기 호스트의 디바이스 키로 암호화하는 단계; 및 상기 암호화된 제 2 스토리지 키를 상기 호스트에 저장하는 단계를 더 포함하는 것이 바람직하다.The storage key is a second storage key which is a key generated by the host, and the storage method includes: encrypting the second storage key with a device key of the host; And storing the encrypted second storage key on the host.
상기 저장 방법은, 상기 호스트에 접속한 휴대용 보안 장치로부터 상기 휴대용 보안 장치가 상기 스토리지 기기에 대하여 생성한 키인 제 1 스토리지 키를 수신하는 단계; 및 상기 제 1 스토리지 키를 이용하여 상기 컨텐트 키 파일을 업데이트하는 단계를 더 포함하는 것이 바람직하다.The storage method may further include receiving a first storage key which is a key generated by the portable security device for the storage device from the portable security device connected to the host; And updating the content key file using the first storage key.
상기 업데이트하는 단계는, 상기 암호화된 제 2 스토리지 키를 상기 휴대용 보안 장치의 디바이스 키를 이용하여 복호화하는 단계; 상기 복호화된 제 2 스토리지 키를 이용하여 상기 컨텐트 키 파일에 포함된 컨텐트 키를 복호화하는 단계; 상기 복호화된 컨텐트 키를 상기 제 1 스토리지 키로 암호화하는 단계; 및 상기 제 1 스토리지 키로 암호화된 컨텐트 키를 상기 제 2 스토리지 키로 암호화된 컨텐트 키 와 교체하는 단계를 포함하는 것이 바람직하다. The updating may include decrypting the encrypted second storage key using a device key of the portable security device; Decrypting a content key included in the content key file using the decrypted second storage key; Encrypting the decrypted content key with the first storage key; And replacing the content key encrypted with the first storage key with the content key encrypted with the second storage key.
상기 저장 방법은, 상기 컨텐트에 대한 재생 요청이 수신되면, 상기 호스트 또는 상기 호스트에 접속된 휴대용 보안 장치에서 상기 스토리지 키를 검색하는 단계; 및 상기 검색 결과에 기초하여 상기 암호화된 컨텐트를 선택적으로 재생하는 단계를 더 포함하는 것이 바람직하다.The storage method may include retrieving the storage key from the host or a portable security device connected to the host when a play request for the content is received; And selectively playing the encrypted content based on the search result.
상기 재생하는 단계는, 상기 검색 결과 상기 스토리지 키가 발견되면, 상기 스토리지 키를 이용하여 상기 컨텐트 키 파일에 포함된 컨텐트 키를 복호화하는 단계; 및 상기 복호화된 컨텐트 키를 이용하여 상기 암호화된 컨텐트를 복호화하는 단계를 포함하는 것이 바람직하다.The reproducing may include decrypting a content key included in the content key file using the storage key when the storage key is found as a result of the search; And decrypting the encrypted content using the decrypted content key.
상기 스토리지 기기는 제 1 스토리지 기기이며, 상기 저장 방법은, 상기 컨텐트를 상기 제 1 스토리지 기기로부터 제 2 스토리지 기기로 이동(move)하는 명령을 수신하는 단계; 상기 제 1 스토리지 키를 이용하여 상기 암호화된 컨텐트 키를 복호화하는 단계; 상기 제 2 스토리지 기기에 대한 스토리지 키인 제 2 스토리지 키로 상기 복호화된 컨텐트 키를 암호화하는 단계; 상기 제 2 스토리지 키로 암호화된 컨텐트 키를 포함하는 컨텐트 키 파일 및 상기 암호화된 컨텐트를 상기 제 2 스토리지 기기에 저장하는 단계; 및 상기 제 1 스토리지 기기에 저장된 컨텐트 키 파일 및 암호화된 컨텐트를 삭제하는 단계를 더 포함하는 것이 바람직하다.The storage device is a first storage device, and the storage method includes: receiving a command for moving the content from the first storage device to a second storage device; Decrypting the encrypted content key using the first storage key; Encrypting the decrypted content key with a second storage key that is a storage key for the second storage device; Storing a content key file including the content key encrypted with the second storage key and the encrypted content in the second storage device; And deleting the content key file and the encrypted content stored in the first storage device.
상기 컨텐트 키 파일은 상기 컨텐트 키 파일의 무결성 검사를 위한 값을 더포함하는 것이 바람직하다.Preferably, the content key file further includes a value for checking integrity of the content key file.
상기 컨텐트 키 파일은 상기 스토리지 키를 제3자의 공개 키 또는 상기 호스 트의 공개 키로 암호화한 값인 복구 키를 더 포함하는 것이 바람직하다.The content key file may further include a recovery key which is a value obtained by encrypting the storage key with a third party's public key or the host's public key.
또한, 본 발명은 상기 디지털 컨텐트 저장 방법을 실행하는 컴퓨터 프로그램을 기록한 기록 매체를 제공한다.The present invention also provides a recording medium on which a computer program for executing the digital content storage method is recorded.
또한, 본 발명은, 디지털 컨텐트를 스토리지 기기에 저장하는 호스트에 있어서, 상기 컨텐트를 컨텐트 키로 암호화하는 컨텐트암호화부; 상기 호스트에 접속된 스토리지 기기를 위한 고유한 키인 스토리지 키로 상기 컨텐트 키를 암호화하는 컨텐트키암호화부; 및 상기 암호화된 컨텐트 키를 포함하는 컨텐트 키 파일 및 상기 암호화된 컨텐트를 상기 스토리지 기기에 저장하는 스토리지제어부를 포함하는 것을 특징으로 한다.In addition, the present invention provides a host for storing digital content in a storage device, comprising: a content encryption unit for encrypting the content with a content key; A content key encryption unit encrypting the content key with a storage key which is a unique key for a storage device connected to the host; And a storage controller configured to store a content key file including the encrypted content key and the encrypted content in the storage device.
본 발명에 따르면, 호스트는 스토리지 당 하나의 스토리지 키 만을 관리하면 되기 때문에, 안전하게 관리해야 하는 정보의 양을 줄일 수 있다.According to the present invention, since the host only needs to manage one storage key per storage, the amount of information to be managed securely can be reduced.
또한, 사용자는 컨텐트가 저장된 스토리지 기기와 함께 스토리지 키가 저장된 휴대용 보안 장치만 가지고 있으면, 스토리지 기기를 어떠한 호스트에 연결하여도 휴대용 보안 장치에 바인딩 된 컨텐트를 자유롭게 재생하거나 다른 스토리지 기기로 이동시킬 수 있다.In addition, if the user only has a portable security device that stores the storage key together with the storage device where the content is stored, the user can freely play or move the content bound to the portable security device to another storage device by connecting the storage device to any host. .
이하에서 첨부된 도면을 참조하여, 본 발명의 바람직한 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2a는 본 발명의 일실시예에 따라 호스트 및 스토리지에 저장된 정보의 구 조를 나타낸 도면이다.2A is a diagram illustrating a structure of information stored in a host and a storage according to an embodiment of the present invention.
도 2a에 도시된 바와 같이, 본 실시예에서 호스트(220)에는 스토리지 정보(220)가 저장되고, 스토리지 기기(230)에는 암호화된 컨텐트(도시하지 않음)은 물론, 스토리지 ID 파일(240) 및 컨텐트 키 파일(250)이 저장된다. 호스트(210)와 스토리지 기기(230)와의 통신 인터페이스는 특정한 것으로 한정하지 않는다.As shown in FIG. 2A, the
호스트(210)는 자신에게 접속된 스토리지 기기마다 스토리지 ID 파일(240)을생성하여 해당 스토리지에 저장하며, 스토리지 기기가 접속되면 그 스토리지 기기에 포함된 스토리지 ID 파일을 보고 스토리지 기기를 식별한다. The
스토리지 ID 파일(240)에는 호스트 ID(241), 스토리지 ID(242) 및 MAC(Message Authentication Code)(243)이 포함된다. MAC 대신에 전자 서명 값이 이용될 수도 있다. The
호스트 ID(241)는 호스트(210) 자신의 식별자이며, 스토리지 ID(242)는 스토리지 기기(230)의 식별자, MAC(243)은 스토리지 ID 파일(240)의 무결성을 검사하기 위한 값이다. The
모든 스토리지로부터 유일한 식별자를 추출하는 것은 어려울 수 있으므로, 스토리지 ID(242)는 호스트(210)가 스토리지 기기(230)에 대하여 다른 스토리지 기기들과 구별될 수 있는 고유한 값으로 생성하여 스토리지 기기(230)에 저장한다. 이러한 스토리지 ID(242)는 스토리지 정보(220)에도 포함되므로, 호스트가 스토리지 정보(220)에서 해당 스토리지 기기(230)에 대한 스토리지 키를 찾을 때 인덱스 정보로 이용될 수 있다. 호스트(210)는 스토리지 기기(230)가 접속되었을 때, 그 스토리지 기기(230)에 대한 스토리지 ID 파일을 검색하고, 해당 스토리지 ID 파일이 없으면 새로 생성한다.Since extracting a unique identifier from all storage can be difficult, the storage ID 242 is generated by the
스토리지 정보(220)는 스토리지 ID, 스토리지 키 및 넌스(Nonce)를 포함한다. 물론 스토리지 ID는 스토리지 ID 파일(240)에 포함된 스토리지 ID(242) 및 컨텐트 키 파일(250)에 포함된 스토리지 ID(252)와 동일한 값을 가진다. The
넌스(Nonce)는 호스트(210)가 스토리지 기기별로 생성하는 값으로, 하나의 스토리지 기기에 대해 생성된 넌스는 이후에 업데이트되더라도 이전에 사용된 값이 중복되어 나타나지 않도록 생성된다. 넌스는 호스트(210)에 저장될 때, 호스트(210)의 디바이스 키로 암호화되어 저장되는 것이 바람직하다. 한편, 넌스는 스토리지 기기(230)에 포함된 컨텐트 키 파일(250)에도 포함된다. Nonce is a value generated by the
이러한 넌스는 Disk Cloning Attack을 방지하기 위해 활용될 수 있다. 즉, 스토리지 기기(230)에 저장된 컨텐트가 다른 스토리지 기기로 이동할 경우, 호스트(210)는 스토리지 기기(230)에서 이동한 컨텐트에 대한 컨텐트 키 파일을 삭제하고, 스토리지 정보(220)에서 해당 스토리지 기기(230)의 스토리지 ID를 가지는 스토리지 정보 요소(221)를 찾아서 해당 스토리지 Nonce를 업데이트한다. 또한, 해당 스토리지 기기(230)에 저장된 나머지 컨텐트 키 파일들의 Nonce들을 스토리지 정보(220)의 Nonce들과 동일하게 업데이트한다. This nonce can be exploited to prevent disk cloning attacks. That is, when the content stored in the
이렇게 하면, 공격자가 원래의 스토리지를 로우 레벨(bit by bit)로 복사하여 컨텐트의 이동이 일어나기 전 상태의 스토리지 기기를 백업하더라도 이동한 컨텐트를 호스트에서 재생할 수 없다. 다만, 이를 위해서는 호스트가 스토리지 정 보(220)의 넌스를 컨텐트 키 파일(250)의 넌스와 비교하여 일치하는 경우에만 해당 컨텐트를 재생하도록 해야 할 것이다.In this way, even if an attacker copies the original storage to a bit by bit and backs up the storage device before the content has moved, the moved content cannot be played on the host. However, to this end, the host should compare the nonce of the
호스트(210)는 하나의 컨텐트를 스토리지 기기(230)에 저장할 때마다 해당 컨텐트에 대한 컨텐트 키 파일(250)을 생성하여 스토리지 기기(230)에 저장한다. 컨텐트는 컨텐트 키로 암호화하여 스토리지 기기(230)에 저장한다. 컨텐트 키는 스토리지 기기(230)의 디바이스 키인 스토리지 키로 암호화하여 컨텐트 키 파일(250)에 삽입된다. 이와 같이, 컨텐트 키는 호스트(210)가 보관하는 것이 아니라 스토리지 기기(230)에 저장된 컨텐트 키 파일(250)에 포함되므로, 호스트(210)는 모든 컨텐트들에 대한 컨텐트 키를 직접 관리할 필요가 없으며, 다만 스토리지 기기별로 스토리지 키 만을 관리하면 된다. Whenever the
컨텐트 키 파일(250)은 호스트 ID(251), 스토리지 ID(252), 넌스(253), 컨텐트 키(254), 복구 키(255) 및 MAC(256)을 포함한다. 복구 키(255)는 스토리지 기기(230)의 스토리지 키를 제3자, 예를 들면 호스트 기기(210) 제조자의 공개 키로 암호화한 것이다. 또는, 해당 컨텐트가 바인딩된 기기(본 실시예에서는 호스트(210))의 공개 키로 암호화할 수도 있다. 이는 호스트(210)가 분실되었거나 스토리지 정보(220)가 지워진 경우 등 스토리지 키를 복구할 수 없는 경우에 대비한 것이다.The content
컨텐트 키 파일(250)에 포함된 기타 정보들에 대한 설명은 전술한 바 있으므로 여기서는 생략하며, 이 외에도 CCI(Copy Control Information), 컨텐트ID 등이 더 포함될 수 있다.The description of the other information included in the content
도 2b는 본 발명의 다른 실시예에 따라 호스트 및 스토리지에 저장된 정보의 구조를 나타낸 도면이다.2B is a diagram illustrating the structure of information stored in a host and a storage according to another embodiment of the present invention.
도 2b에 도시된 바와 같이, 본 실시예에서는 도 2a의 실시예와 달리 스토리지 정보(321)가 휴대용 보안 장치(320)에 포함된다. 이러한 휴대용 보안 장치(320)는 호스트(310)에 접속하여 스토리지 기기(330)에 대한 스토리지 ID 및 넌스를 생성하여 스토리지 정보(321)에 삽입한다. 이하에서는 이와 같은 휴대용 보안 장치(320)를 PSC(Portable Security Component)라 칭하기로 한다. 스토리지 키는 PSC(320)의 디바이스로 암호화하여 보관하는 것이 바람직하다.As shown in FIG. 2B, in the present embodiment, unlike the embodiment of FIG. 2A, the
스토리지 정보(321), 스토리지 ID 파일(331) 및 컨텐트 키 파일(332)은 구조는 도 2a에서와 거의 동일하나, 호스트 ID 대신에 PSC ID가 포함된다. 도시하지는 않았으나, 여기서도 물론 암호화된 컨텐트는 스토리지 기기(330)에 저장된다.The
본 실시예에 의하면 컨텐트는 호스트(310)가 아니라 PSC(320)에 바인딩된다. 따라서, 사용자는 스토리지 기기(330)를 다른 호스트에서 재생할 때, PSC(320)만 다른 호스트에 연결하면 스토리지(330)에 저장된 컨텐트를 자유롭게 이용할 수 있게 된다.According to this embodiment, the content is bound to the
도 3은 본 발명의 일실시예에 따라 호스트가 컨텐트를 스토리지 기기에 저장하는 과정을 나타낸 순서도이다.3 is a flowchart illustrating a process in which a host stores content in a storage device according to an embodiment of the present invention.
단계 301에서, 호스트에 스토리지 기기가 접속된다.In
단계 302에서, 호스트는 스토리지 기기 내에 적절한 스토리지 ID 파일이 존재하는지 판단한다. 이 때, 스토리지 ID 파일 내의 호스트ID(PSC ID) 및 스토리지 ID가 참조된다.In
단계 303에서, 만약 적절한 스토리지 ID 파일이 존재하지 않으면 스토리지 ID 파일 및 스토리지 정보를 생성한다. 컨텐트를 PSC에 바인딩하는 경우, 스토리지 ID 파일 및 스토리지 정보에 포함되는 스토리지 ID는 PSC로부터 수신한다.In
단계 304에서, 호스트는 스토리지 정보로부터 스토리지 키를 검출한다.In
단계 305에서, 사용자 인터페이스를 통해 컨텐트 저장 요청이 수신된다.In
단계 306에서, 호스트는 컨텐트 키를 생성한다.In
단계 307에서, 생성된 컨텐트 키로 컨텐트를 암호화하여 스토리지 기기에 저장한다.In
단계 308에서, 스토리지 키로 컨텐트 키를 암호화한다.In
단계 309에서, 스토리지 키를 호스트 또는 PSC에 저장한다. 호스트 또는 PSC의 디바이스 키로 암호화하여 저장하는 것이 바람직하다.In
도 4는 본 발명의 일실시예에 따라 PSC에 바인딩된 컨텐트를 호스트에 바인딩시키는 과정을 나타낸 순서도이다.4 is a flowchart illustrating a process of binding content bound to a PSC to a host according to an embodiment of the present invention.
단계 401은 PSC가 스토리지 기기에 대하여 생성한 제 1 스토리지 키를 이용하여 컨텐트를 PSC에 바인딩시키는 과정이다. 이러한 과정에 대한 설명은 도 3에서 전술하였으므로 여기서는 생략한다. Step 401 is a process of binding the content to the PSC using the first storage key generated by the PSC for the storage device. Description of this process has been described above in FIG. 3 and will not be described herein.
단계 402에서, 호스트는 해당 스토리지 기기에 대한 스토리지 정보를 검색하여 이미 해당 스토리지 기기에 대한 스토리지 키가 호스트에 저장되어 있는지 판단한다. 만약 있다면 해당 스토리지 정보 요소로부터 스토리지 키를 추출한다. 없으 면 새롭게 생성한다. 호스트에 의해 생성된 스토리지 키를 제 2 스토리지 키라고 칭하기로 한다.In
단계 403에서, 호스트는 제 1 스토리지 키, 즉 PSC가 생성한 스토리지 키를 이용하여 컨텐트 키 파일에 포함된 컨텐트 키를 복호화한다. In
단계 404에서, 호스트는 제 2 스토리지 키를 이용하여 컨텐트 키 파일을 업데이트한다. 즉, 제 2 스토리지 키를 이용하여 단계 403에서 복호화된 컨텐트 키를 암호화하고, 제 2 스토리지 키로 암호화된 컨텐트 키를 기존의 그것, 즉 제 1 스토리지 키로 암호화된 컨텐트 키와 교체한다. 또한, 컨텐트 키 파일 및 스토리지 ID 파일에 포함되어 있던 PSC ID를 호스트 ID로 교체한다.In
단계 405에서, 제 2 스토리지 키를 호스트의 디바이스 키로 암호화한다.In
단계 406에서, 암호화된 제 2 스토리지 키를 호스트의 비휘발성 메모리에 저장한다.In
이와 같은 과정에 의해, 스토리지 기기에 저장된 암호화된 컨텐트를 복호화하기 위해서는 호스트에 저장된 제 2 스토리지 키가 있어야 하므로, 컨텐트는 호스트에 바인딩되었다고 할 수 있다. By this process, since the second storage key stored in the host is required to decrypt the encrypted content stored in the storage device, the content may be said to be bound to the host.
도 5는 본 발명의 일실시예에 따라 호스트에 바인딩된 컨텐트를 PSC에 바인딩시키는 과정을 나타낸 순서도이다.5 is a flowchart illustrating a process of binding content bound to a host to a PSC according to an embodiment of the present invention.
단계 501은 호스트가 스토리지 기기에 대하여 생성한 제 2 스토리지 키를 이용하여 컨텐트를 호스트에 바인딩시키는 과정이다. 이러한 과정에 대한 설명은 도 3에 대한 설명으로 대체한다. Step 501 is a process of binding the content to the host by using the second storage key generated by the host for the storage device. The description of this process is replaced with the description of FIG. 3.
단계 502에서, 호스트는 PSC의 스토리지 정보를 검색하여 이미 해당 스토리지 기기에 대한 스토리지 키가 이미 PSC에 저장되어 있는지 판단한다. 이전에 한번이라도 PSC와 스토리지 기기가 접속하였다면 스토리지 정보가 PSC에 있을 것이다. 만약 PSC에 이미 스토리지 키가 있다면 스토리지 정보로부터 스토리지 키를 추출하고, 없으면 PSC에게 생성을 요청하여 새롭게 생성된 스토리지 키를 수신한다. PSC에 의해 생성된 스토리지 키를 제 1 스토리지 키라고 칭하기로 한다.In
단계 503에서, 호스트는 제 2 스토리지 키, 즉 호스트가 생성한 스토리지 키를 이용하여 컨텐트 키 파일에 포함된 컨텐트 키를 복호화한다. In
단계 504에서, 호스트는 제 1 스토리지 키를 이용하여 컨텐트 키 파일을 업데이트한다. 즉, 제 1 스토리지 키를 이용하여 단계 503에서 복호화된 컨텐트 키를 암호화하고, 제 1 스토리지 키로 암호화된 컨텐트 키를 기존의 그것, 즉 제 2 스토리지 키로 암호화된 컨텐트 키와 교체한다. 이는, 새로운 컨텐트 키 파일을 생성하고, 기존의 컨텐트 키 파일을 삭제하는 것을 의미할 수도 있다. In
또한, 컨텐트 키 파일에 포함되어 있던 호스트 ID를 PSC ID로 교체한다.Also, the host ID included in the content key file is replaced with the PSC ID.
단계 505에서, 제 1 스토리지 키를 호스트에서 삭제한다. 호스트에 제 1 스토리지 키가 남아있으면 호스트에서도 PSC에 바인딩된 컨텐트를 재생할 수 있기 때문이다.In
이와 같은 과정에 의해, 스토리지 기기에 저장된 암호화된 컨텐트를 복호화하기 위해서는 PSC에 저장된 제 1 스토리지 키가 필요하게 되므로, 컨텐트는 PSC에 바인딩되었다고 할 수 있다. 즉, 사용자는 PSC만 있으면 어떤 호스트에서도 스토리 지에 저장된 컨텐트를 재생할 수 있다.By this process, since the first storage key stored in the PSC is needed to decrypt the encrypted content stored in the storage device, the content may be said to be bound to the PSC. That is, the user can play the content stored in the storage on any host with the PSC.
도 6은 본 발명의 일실시예에 따라 호스트가 스토리지에 저장된 컨텐트를 재생하는 과정을 나타낸 순서도이다.6 is a flowchart illustrating a process of playing content stored in storage by a host according to an embodiment of the present invention.
단계 601에서, 호스트는 사용자 인터페이스를 통해 스토리지 기기에 저장된 컨텐트에 대한 재생 요청을 수신한다.In
단계 602에서, 호스트는 컨텐트 키 파일의 호스트 ID 또는 PSC ID를 확인하고, 이에 따라 자신의 비휘발성 메모리 또는 호스트에 접속된 PSC를 검색하여 해당 스토리지 정보 요소를 찾는다. 즉, 스토리지 ID 파일 또는 컨텐트 키 파일에 포함된 스토리지 ID를 인덱스 정보로 활용하여 해당 스토리지 정보 요소를 검색한다.In
단계 603에서, 스토리지 ID가 일치하는 스토리지 정보 요소가 존재하는지 판단한다.In
단계 604에서, 만약 해당 스토리지 정보 요소가 존재하지 않는 경우, 사용자에게 에러 메시지를 출력하고 종료한다.In
단계 605에서, 만약 해당 스토리지 정보 요소가 있다면 스토리지 키를 스토리지 정보로부터 추출한다.In
단계 606에서, 스토리지 키를 이용하여 컨텐트 키 파일에 포함된 컨텐트 키를 복호화한다.In
단게 607에서, 복호화된 컨텐트 키를 이용하여 스토리지 기기에 저장된 컨텐트를 복호화한다.In
단계 608에서, 복호화된 컨텐트를 재생한다.In
도 7은 본 발명의 일실시예에 따라 스토리지에 저장된 컨텐트를 이동(move)시키는 과정을 나타낸 순서도이다. 즉, 본 실시예에서는 컨텐트가 바인딩된 기기는 변경되지 않으나, 컨텐트가 저장되는 스토리지 기기가 변경된다. 이 때, 컨텐트는 이하의 절차를 수행하는 호스트 또는 그 호스트에 접속된 PSC에 바인딩되어 있어야 한다. 7 is a flowchart illustrating a process of moving content stored in storage according to an embodiment of the present invention. That is, in the present embodiment, the device to which the content is bound is not changed, but the storage device in which the content is stored is changed. At this time, the content should be bound to a host performing the following procedure or a PSC connected to the host.
단계 701에서, 호스트는 사용자 인터페이스를 통해 컨텐트를 제 1 스토리지 기기에서 제 2 스토리지 기기로 이동(move)하는 요청을 수신한다.In
단계 702에서, 호스트는 제 2 스토리지 기기에 대한 스토리지 키인 제 2 스토리지 키를 검출하거나 새롭게 생성한다. 즉, 기존의 스토리지 정보에 제 2 스토리지 키가 있으면 해당 스토리지 정보 요소에서 제 2 스토리지 키를 추출하고, 그렇지 않으면 새로 생성한다.In
단계 703에서, 호스트는 제 1 스토리지 키를 이용하여 제 1 스토리지의 컨텐트 키 파일에 포함된 컨텐트 키를 복호화한다. 제 1 스토리지 키는 호스트 내의 비휘발성 메모리 또는 호스트에 접속된 PSC로부터 추출될 수 있다.In
단계 704에서, 호스트는 제 2 스토리지 키로 컨텐트 키를 암호화하고, 컨텐트 키 파일을 생성한다. 새롭게 생성된 컨텐트 키 파일은 제 1 스토리지 기기에 있던 컨텐트 키 파일에 비하여 스토리지 ID, 넌스, 복구 키, MAC 등이 달라지게 된다.In
단계 705에서, 생성된 컨텐트 키 파일 및 암호화된 컨텐트를 제 2 스토리지 기기에 저장한다.In
단계 706에서, 제 1 스토리지 기기에 저장된 컨텐트 키 파일 및 암호화된 컨텐트를 삭제한다.In
도 8은 본 발명의 일실시예에 따른 호스트의 구조를 나타낸 도면이다.8 is a diagram showing the structure of a host according to an embodiment of the present invention.
도 8에 도시된 바와 같이, 본 발명의 일실시예에 따른 호스트(800)는 컨텐트 암호화부(801), PSC 제어부(802), 컨텐트 키 암호화부(803), 컨텐트 이동 제어부(804), 스토리지 제어부(805), 업데이트부(810), 스토리지 키 생성부(820), 재생부(830), 검색부(840) 및 스토리지 키 관리부(850)를 포함한다.As shown in FIG. 8, the
컨텐트 암호화부(801)는 컨텐트 키를 이용하여 컨텐트를 암호화한다.The
컨텐트 키 암호화부(803)는 스토리지 기기(900)의 스토리지 키를 이용하여 컨텐트 키를 암호화한다.The content
스토리지 제어부(805)는 컨텐트 키 파일 및 암호화된 컨텐트를 스토리지 기기(900)에 저장한다.The
PSC 제어부(802)는 PSC(1000)로부터 PSC가 스토리지 기기(900)에 대해 생성한 스토리지 키를 수신하고, 컨텐트를 PSC에 바인딩시키는 작업이 완료되면, 호스트(800)에서 그 스토리지 키를 삭제한다.The
스토리지 키 생성부(820)는 스토리지 기기(900)가 접속되면 호스트(800)의 비휘발성 메모리(도시하지 않음)에 해당 스토리지 정보 요소가 존재하는지 판단한다. 만약 존재하면 해당 스토리지 정보 요소에서 스토리지 키를 추출하고, 그렇지 않은 경우에는 새롭게 생성한다.When the
스토리지 키 관리부(830)는 스토리지 키 생성부(830)가 생성한 스토리지 키 를 호스트(800)의 디바이스 키를 이용하여 암호화한 후, 비휘발성 메모리(도시하지 않음)에 저장한다.The storage
업데이트부(810)는 호스트(800)에 바인딩된 컨텐트를 PSC에 바인딩시키거나, 또는 그 반대의 경우에 스토리지 기기(900)에 저장된 컨텐트 키 파일을 업데이트한다. 도 8에 도시된 바와 같이, 업데이트부(800)는 키 교체부(811), 컨텐트 키 암호화부(812), 컨텐트 키 복호화부(813) 및 스토리지 키 복호화부(814)를 포함한다.The
우선, 스토리지 키 복호화부(814)는 호스트(800) 또는 PSC(1000)에 저장된 스토리지 키를 추출한다. First, the storage
컨텐트 키 복호화부(813)는 컨텐트 키 파일에 포함된 컨텐트 키를 스토리지 키를 이용하여 복호화한다.The content
컨텐트 키 암호화부(812)는 컨텐트를 바인딩시킬 기기가 생성한 스토리지 키를 이용하여 컨텐트 키를 다시 암호화한다. 예를 들면, 호스트(800)에 바인딩되어 있던 컨텐트를 PSC에 바인딩시킨다고 가정할 때, 컨텐트 키 암호화부(812)는 PSC가 스토리지 기기(900)에 대하여 생성한 스토리지 키를 이용하여 컨텐트 키를 암호하한다.The content
키 교체부(811)는 컨텐트 키 파일에 포함된, 기존의 암호화된 컨텐트 키를 컨텐트 키 암호화부(812)가 암호화한 컨텐트 키로 교체한다.The
검색부(840)는 사용자 인터페이스를 통해 스토리지 기기(900)의 컨텐트에 대한 재생 요청이 수신되면, 호스트(800)를 검색하거나 호스트(800)에 접속된 PSC(1000)에게 요청하여 스토리지 기기(900)에 대한 스토리지 키를 찾는다. When the
재생부(830)는 검색부(840)의 결과에 기초하여 스토리지 기기(900)의 컨텐트를 선택적으로 재생한다. 즉, 만약 스토리지 키가 발견되면, 스토리지 키를 이용하여 최종적으로 컨텐트를 복호화하고, 스토리지 키가 호스트(800) 및 PSC(1000) 어디에도 존재하지 않으면 에러 메시지를 출력한다.The
컨텐트 이동 제어부(804)는 스토리지 기기(900)에 저장된 컨텐트의 이동을 제어한다. 즉, 컨텐트를 상기 제 1 스토리지 기기로부터 제 2 스토리지 기기로 이동(move)하는 명령이 수신되면, 제 1 스토리지 기기의 스토리지 키를 이용하여 암호화된 컨텐트 키를 복호화하고, 제 2 스토리지 기기의 스토리지 키로 상기 복호화된 컨텐트 키를 다시 암호화한다.The content
그리고 나서, 제 2 스토리지 기기의 스토리지 키로 암호화된 컨텐트 키를 포함하는 컨텐트 키 파일 및 새롭게 암호화된 컨텐트를 제 2 스토리지 기기에 저장한 후, 제 1 스토리지 기기에 저장된 컨텐트 키 파일 및 암호화된 컨텐트를 삭제한다. Then, after storing the content key file including the content key encrypted with the storage key of the second storage device and the newly encrypted content in the second storage device, the content key file and the encrypted content stored in the first storage device are deleted. do.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. Meanwhile, the above-described embodiments of the present invention can be written as a program that can be executed in a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한 다. The computer-readable recording medium may be a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.), an optical reading medium (for example, a CD-ROM, a DVD, etc.) and a carrier wave (for example, the Internet). Storage media).
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far I looked at the center of the preferred embodiment for the present invention. Those skilled in the art will appreciate that the present invention can be implemented in a modified form without departing from the essential features of the present invention. Therefore, the disclosed embodiments should be considered in descriptive sense only and not for purposes of limitation. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the scope will be construed as being included in the present invention.
도 1은 종래 기술에 따라 호스트가 컨텐트를 스토리지 기기에 저장하는 과정을 나타낸 순서도,1 is a flowchart illustrating a process in which a host stores content in a storage device according to the prior art;
도 2a는 본 발명의 일실시예에 따라 호스트 및 스토리지에 저장된 정보의 구조를 나타낸 도면,2A illustrates a structure of information stored in a host and a storage according to an embodiment of the present invention;
도 2b는 본 발명의 다른 실시예에 따라 호스트 및 스토리지에 저장된 정보의 구조를 나타낸 도면,2b is a diagram showing the structure of information stored in a host and storage according to another embodiment of the present invention;
도 3은 본 발명의 일실시예에 따라 호스트가 컨텐트를 스토리지 기기에 저장하는 과정을 나타낸 순서도,3 is a flowchart illustrating a process in which a host stores content in a storage device according to an embodiment of the present invention;
도 4는 본 발명의 일실시예에 따라 PSC에 바인딩된 컨텐트를 호스트에 바인딩시키는 과정을 나타낸 순서도,4 is a flowchart illustrating a process of binding content bound to a PSC to a host according to an embodiment of the present invention;
도 5는 본 발명의 일실시예에 따라 호스트에 바인딩된 컨텐트를 PSC에 바인딩시키는 과정을 나타낸 순서도,5 is a flowchart illustrating a process of binding content bound to a host to a PSC according to an embodiment of the present invention;
도 6은 본 발명의 일실시예에 따라 호스트가 스토리지에 저장된 컨텐트를 재생하는 과정을 나타낸 순서도,6 is a flowchart illustrating a process of playing content stored in storage by a host according to an embodiment of the present invention;
도 7은 본 발명의 일실시예에 따라 스토리지에 저장된 컨텐트를 이동시키는과정을 나타낸 순서도,7 is a flowchart illustrating a process of moving content stored in storage according to an embodiment of the present invention.
도 8은 본 발명의 일실시예에 따른 호스트의 구조를 나타낸 도면이다. 8 is a diagram showing the structure of a host according to an embodiment of the present invention.
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/194,860 US20090052670A1 (en) | 2007-08-21 | 2008-08-20 | Method and apparatus for storing digital content in storage device |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95697807P | 2007-08-21 | 2007-08-21 | |
US60/956,978 | 2007-08-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090019660A true KR20090019660A (en) | 2009-02-25 |
KR101277261B1 KR101277261B1 (en) | 2013-07-30 |
Family
ID=40687425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070135245A KR101277261B1 (en) | 2007-08-21 | 2007-12-21 | Method and apparatus for storing digital content in storage device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101277261B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101846191B1 (en) | 2011-09-21 | 2018-04-09 | 삼성전자주식회사 | Server, client device, method for generating a trasnport stream thereof and processing the trasnport stream thereof |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
MY123388A (en) * | 1999-03-15 | 2006-05-31 | Sony Corp | Processing method and apparatus for encrypted data transfer |
KR100636150B1 (en) * | 2004-07-01 | 2006-10-19 | 삼성전자주식회사 | Multimedia device having encryption module |
-
2007
- 2007-12-21 KR KR1020070135245A patent/KR101277261B1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101277261B1 (en) | 2013-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090052670A1 (en) | Method and apparatus for storing digital content in storage device | |
US11238165B2 (en) | File encryption method, file decryption method, electronic device, and storage medium | |
KR100713046B1 (en) | License movement device and program | |
US7957535B2 (en) | Data storing method, data playback method, data recording device, data playback device, and recording medium | |
JP4895845B2 (en) | Portable storage device and data management method for portable storage device | |
JP5034227B2 (en) | Information processing apparatus, information recording medium manufacturing apparatus, information recording medium and method, and computer program | |
JP4327865B2 (en) | Content processing apparatus, encryption processing method, and program | |
JP4792876B2 (en) | Information processing apparatus and information processing method | |
JP2000311114A (en) | Computer system and contents protecting method | |
US8234718B2 (en) | Method and apparatus for forbidding use of digital content against copy control information | |
KR100994772B1 (en) | Method for copying and reproducing the data of storage medium | |
JP2008035397A (en) | Encryption information processing method and encryption information processing device | |
US7706664B2 (en) | Apparatus, method, and program product for recording and reproducing contents | |
JP2006020154A (en) | Content management method and content management program, and electronic device | |
JP2006172147A (en) | Contents protecting method and information recording and reproducing device using the method | |
JP4560086B2 (en) | Content data recording / reproducing apparatus | |
JP2004013763A (en) | Information storage device and information storage method | |
KR101277261B1 (en) | Method and apparatus for storing digital content in storage device | |
US20080226079A1 (en) | Method and apparatus for conditionally decrypting content | |
JP2005507195A (en) | Apparatus and method for accessing material using entity-locked secure registry | |
JP2004094778A (en) | Storage device and copying device | |
JP2007287268A (en) | Recorder | |
KR101177111B1 (en) | Method and apparatus for forbidding consuming digital contents against copy control information | |
JP2006093849A (en) | Copy control method and device of content | |
JP4894970B2 (en) | Information processing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160530 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170529 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180530 Year of fee payment: 6 |