KR100664924B1 - Portable storage, host device and method for communication between them - Google Patents

Portable storage, host device and method for communication between them Download PDF

Info

Publication number
KR100664924B1
KR100664924B1 KR1020040078736A KR20040078736A KR100664924B1 KR 100664924 B1 KR100664924 B1 KR 100664924B1 KR 1020040078736 A KR1020040078736 A KR 1020040078736A KR 20040078736 A KR20040078736 A KR 20040078736A KR 100664924 B1 KR100664924 B1 KR 100664924B1
Authority
KR
South Korea
Prior art keywords
host device
portable storage
application
storage device
write command
Prior art date
Application number
KR1020040078736A
Other languages
Korean (ko)
Other versions
KR20060029879A (en
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040078736A priority Critical patent/KR100664924B1/en
Publication of KR20060029879A publication Critical patent/KR20060029879A/en
Application granted granted Critical
Publication of KR100664924B1 publication Critical patent/KR100664924B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services

Landscapes

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

Abstract

본 발명은 호스트 디바이스, 휴대용 저장장치 및 이들 간의 통신 방법에 관한 것이다. 본 발명의 실시예에 따른 휴대용 저장장치는 호스트 디바이스와 연결되어 컨트롤 신호의 수신 및 데이터 송수신을 수행하는 인터페이스 모듈, 상기 호스트 디바이스로부터 수신된 데이터를 저장하는 저장모듈, 및 상기 수신되는 컨트롤 신호에 따라 상기 호스트 디바이스와의 통신 유지 여부를 제어하는 제어모듈을 포함한다.The present invention relates to a host device, a portable storage device and a method of communication therebetween. A portable storage device according to an embodiment of the present invention is connected to a host device to receive a control signal and perform data transmission and reception, a storage module for storing data received from the host device, and the received control signal according to And a control module for controlling whether to maintain communication with the host device.

본 발명에 따르면 호스트 디바이스와 휴대용 저장장치 간의 통신에 보안을 강화할 수 있다.According to the present invention, security can be enhanced for communication between the host device and the portable storage device.

쓰기명령, 읽기명령, 통신 보안, 휴대용 저장장치Write command, read command, communication security, portable storage device

Description

휴대용 저장장치, 호스트 디바이스 및 이들 간의 통신 방법{Portable storage, host device and method for communication between them}Portable storage, host device and method for communication between them}

도 1은 종래의 DRM 개념을 나타낸 도면이다.1 is a diagram illustrating a conventional DRM concept.

도 2는 본 발명의 일 실시예에 따른 DRM 개념을 나타낸 도면이다.2 is a diagram illustrating a DRM concept according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 호스트 디바이스와 휴대용 저장장치간 상호인증 과정을 나타낸 흐름도이다.3 is a flowchart illustrating a mutual authentication process between a host device and a portable storage device according to an exemplary embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 호스트 디바이스와 휴대용 저장장치 간의 데이터를 전송 구조를 나타낸 도면이다.4 is a diagram illustrating a structure of transmitting data between a host device and a portable storage device according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 데이터 전송 구조를 보다 구체적으로 나타낸 도면이다.5 is a diagram illustrating a data transmission structure in more detail in an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 호스트 디바이스와 휴대용 저장장치 간의 통신 과정을 나타낸 도면이다.6 is a diagram illustrating a communication process between a host device and a portable storage device according to an embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 호스트 디바이스를 나타낸 도면이다.7 illustrates a host device according to an embodiment of the present invention.

도 8은 본 발명의 일 실시예에 따른 휴대용 저장장치를 나타낸 블록도이다. 8 is a block diagram illustrating a portable storage device according to an embodiment of the present invention.

도 9는 본 발명의 일 실시예에 따른 호스트 디바이스의 동작 과정을 나타낸 흐름도이다.9 is a flowchart illustrating an operation process of a host device according to an embodiment of the present invention.

도 10은 본 발명의 일 실시예에 따른 휴대용 저장장치의 동작 과정을 나타낸 흐름도이다.10 is a flowchart illustrating an operation process of a portable storage device according to an embodiment of the present invention.

<도면의 주요 부분에 관한 부호의 설명><Explanation of symbols on main parts of the drawings>

211, 221 : 인터페이스 모듈 212, 222 : 제어모듈211, 221: interface module 212, 222: control module

213, 223 : 암호화 모듈 214, 224 : 저장모듈213, 223: encryption module 214, 224: storage module

215, 225 : 어플리케이션 구동모듈 216 : 디스플레이 모듈215, 225: application drive module 216: display module

217 : 송수신 모듈217: transceiver module

본 발명은 호스트 디바이스, 휴대용 저장장치 및 이들 간의 통신 방법에 관한 것으로, 보다 상세하게는 데이터 전송을 제어하는 컨트롤 신호인 쓰기 명령과 읽기 명령이 쌍으로 운용되도록 하여 통신의 보안을 강화하는 방법에 관한 것이다. The present invention relates to a host device, a portable storage device, and a communication method therebetween, and more particularly, to a method of enhancing communication security by allowing a write command and a read command, which are control signals for controlling data transmission, to be operated in pairs. will be.

최근에 디지털 저작권 관리(Digital Rights Management; 이하, "DRM"이라 함)에 관한 연구가 활발하며, DRM을 적용한 상용 서비스들이 도입되었거나 도입 중에 있다. DRM은 무단 복제 및 배포가 용이한 디지털 콘텐츠를 보호하기 위한 기술 개념이다. Recently, researches on digital rights management (hereinafter referred to as "DRM") have been actively conducted, and commercial services using DRM have been introduced or are being introduced. DRM is a technology concept for protecting digital content that is easy to copy and distribute.

디지털 콘텐츠를 보호하고자 하는 노력은 종래에도 있었으나, 이는 디지털 콘텐츠에 대한 무단 접근 방지에 중점을 두고 있었다. 예컨데 디지털 콘텐츠에 대한 접근(access)은 대가를 지불한 사용자에게만 허용되었으며, 대가를 지불하지 않은 사용자는 디지털 콘텐츠에 접근할 수 없었다. 그러나 디지털 데이터의 특성상 디지털 콘텐츠는 재사용, 가공, 복제 및 배포가 용이하다. 따라서 대가를 지불하고 디지털 콘텐츠에 접근한 사용자가 이를 무단으로 복제 또는 배포할 경우에는 대가를 지불하지 않은 사용자도 디지털 콘텐츠를 사용할 수 있게 된다. Efforts have been made to protect digital content in the past, but this has focused on preventing unauthorized access to digital content. For example, access to digital content was allowed only to users who paid for it, and users who did not pay for it could not access digital content. However, due to the nature of digital data, digital content can be easily reused, processed, copied, and distributed. Therefore, if a user who pays for and accesses the digital content is copied or distributed without permission, the digital content can be used by the user who has not paid.

이러한 문제점을 보완하기 위해 DRM은 디지털 콘텐츠를 암호화하여 배포하도록 하고, 암호화된 디지털 콘텐츠를 사용하기 위해서는 권리객체(Right Object; RO)라는 특정 라이센스가 필요하도록 한다. To solve this problem, DRM encrypts and distributes digital content and requires a specific license called a right object (RO) to use the encrypted digital content.

도 1을 참조하여 설명하면, 디지털 콘텐츠를 사용하려는 사용자(110)는 원하는 디지털 콘텐츠를 콘텐츠 공급자(120)로부터 얻을 수 있다. 이때 콘텐츠 공급자(120)가 공급하는 디지털 콘텐츠는 암호화된 상태이며, 암호화된 디지털 콘텐츠(이하 콘텐츠 객체라 한다)를 사용하기 위해서는 권리객체가 필요하다. Referring to FIG. 1, a user 110 who wants to use digital content may obtain desired digital content from the content provider 120. At this time, the digital content supplied by the content provider 120 is in an encrypted state, and a rights object is required to use the encrypted digital content (hereinafter referred to as a content object).

사용자(110)는 일정 대가를 지불하고 권리객체 발행기관(130)으로부터 콘텐츠 객체를 실행시킬 수 있는 권한이 포함된 권리객체를 얻을 수 있다. 권리객체에 포함된 권한은 콘텐츠 객체를 복호화시킬 수 있는 콘텐츠 암호화키일 수 있다. 이때 권리객체 발행기관(130)은 콘텐츠 공급자(120)에게 권리객체 발행 내역을 보고하게 되며, 경우에 따라서는 권리객체 발행기관(130)과 콘텐츠 공급자(120)가 동일 주체일 수 있다. The user 110 may obtain a rights object including a right to execute a content object from the rights object issuer 130 by paying a certain price. The rights included in the rights object may be a content encryption key that can decrypt the content object. At this time, the rights object issuing agency 130 reports the rights object issuance history to the content provider 120. In some cases, the rights object issuing agency 130 and the content provider 120 may be the same subject.

권리객체를 획득한 사용자(110)는 권리객체를 소비하여 콘텐츠 객체를 사용할 수 있게 된다. The user 110 acquiring the rights object may use the content object by consuming the rights object.

한편 콘텐츠 객체는 다른 사용자에게도 자유롭게 복제 및 배포될 수 있다. 그러나 권리객체는 권리객체를 통해 콘텐츠 객체를 실행시킬 수 있는 횟수나 기간 등의 제한 정보 또는 권리객체의 복제를 허용하는 횟수 등에 관한 제한 정보를 포함하고 있다. 따라서 콘텐츠 객체와 달리 권리객체는 그 재사용이나 복제에 일정 제한이 가해지게 되며, 이러한 DRM 기술에 의하면 디지털 콘텐츠를 효과적으로 보호할 수 있게 된다. Meanwhile, content objects can be freely copied and distributed to other users. However, the rights object contains restriction information such as the number of times and duration of execution of the content object through the rights object or the number of times the rights object is allowed to be duplicated. Therefore, unlike a content object, a rights object is subject to certain restrictions on reuse or duplication, and according to such DRM technology, digital content can be effectively protected.

사용자는 휴대폰이나 PDA와 같이 멀티미디어 데이터를 실행시키려는 호스트 디바이스에 콘텐츠 객체 및 권리객체를 저장할 수 있다. 그러나 최근에는 콘텐츠 객체 또는 권리객체의 보관 및 배포를 간편히 하기 위해 메모리 스틱이나 멀티미디어카드(Multi-Media Card; MMC)와 같은 휴대용 저장장치를 통해 권리객체를 관리하도록 하는 기술이 개발되고 있다. The user can store the content object and the rights object on a host device that wants to execute multimedia data, such as a mobile phone or a PDA. Recently, however, in order to simplify the storage and distribution of content objects or rights objects, a technology for managing rights objects through a portable storage device such as a memory stick or a multi-media card (MMC) has been developed.

휴대용 저장장치를 사용할 경우 호스트 디바이스와 휴대용 저장장치 간의 데이터 전송은 빈번히 발생하게 되며, 이에 따라 호스트 디바이스와 휴대용 저장장치 간의 통신 보안을 강화하기 위한 기술이 요구되었다. In the case of using a portable storage device, data transmission between the host device and the portable storage device frequently occurs, and thus, a technology for enhancing communication security between the host device and the portable storage device has been required.

본 발명은 호스트 디바이스와 휴대용 저장장치 간의 통신에 보안을 강화하는데 그 목적이 있다.It is an object of the present invention to enhance security in communication between a host device and a portable storage device.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects that are not mentioned will be clearly understood by those skilled in the art from the following description.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 호스트 디바이스는 하나 이상의 어플리케이션을 구동시키는 어플리케이션 구동모듈, 상기 어플리케이션 구동모듈에 의해 구동되는 어플리케이션의 데이터 송수신 요청에 따라 데이터 송수신을 제어하는 쓰기 명령 및 읽기 명령의 쌍으로 구성된 컨트롤 신호를 출력하는 제어모듈, 및 휴대용 저장장치와 연결되어 상기 제어모듈로부터 출력되는 컨트롤 신호의 송신 및 상기 데이터 송수신을 수행하는 인터페이스 모듈을 포함한다. In order to achieve the above object, according to an embodiment of the present invention, a host device includes an application driving module for driving one or more applications, a write command for controlling data transmission and reception according to a data transmission / reception request of an application driven by the application driving module; And a control module for outputting a control signal composed of a pair of read commands, and an interface module connected to a portable storage device to transmit and transmit and transmit the control signal output from the control module.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 휴대용 저장장치는 호스트 디바이스와 연결되어 컨트롤 신호의 수신 및 데이터 송수신을 수행하는 인터페이스 모듈, 상기 호스트 디바이스로부터 수신된 데이터를 저장하는 저장모듈, 및 상기 수신되는 컨트롤 신호에 따라 상기 호스트 디바이스와의 통신 유지 여부를 제어하는 제어모듈을 포함한다.In order to achieve the above object, a portable storage device according to an embodiment of the present invention is connected to a host device interface module for receiving control signals and data transmission and reception, a storage module for storing data received from the host device, and And a control module for controlling whether to maintain communication with the host device according to the received control signal.

상기 목적을 달성하기 위하여, 본 발명의 실시예에 따른 호스트 디바이스와 휴대용 저장장치 간의 통신 방법은 하나 이상의 어플리케이션을 구동시키는 단계, 상기 구동되는 어플리케이션이 휴대형 저장장치와의 데이터 송수신을 요청하는 단계, 및 상기 요청에 따라 쓰기 명령 및 읽기 명령의 쌍으로 구성된 컨트롤 신호를 출력하여 상기 데이터 송수신을 제어하는 단계를 포함한다.In order to achieve the above object, a communication method between a host device and a portable storage device according to an embodiment of the present invention comprises the steps of driving at least one application, the driven application requesting data transmission and reception with the portable storage device, and And controlling the data transmission and reception by outputting a control signal composed of a pair of a write command and a read command according to the request.

상기 목적을 달성하기 위하여, 본 발명의 다른 실시예에 따른 호스트 디바이스와 휴대용 저장장치 간의 통신 방법은 호스트 디바이스로부터 데이터의 수신을 지시하는 쓰기명령 및 데이터의 송신을 지시하는 읽기명령으로 구성되는 컨트롤 신호를 수신하는 단계, 상기 수신되는 컨트롤 신호에 따라 통신 유지 여부를 판단하는 단계, 및 상기 판단 결과에 따라 상기 호스트 디바이스와의 통신을 진행하는 단 계를 포함한다. In order to achieve the above object, a communication method between a host device and a portable storage device according to another embodiment of the present invention is a control signal consisting of a write command instructing reception of data from the host device and a read command instructing transmission of data. Receiving the; and determining whether to maintain the communication in accordance with the received control signal, and the step of communicating with the host device according to the determination result.

기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다. Specific details of other embodiments are included in the detailed description and the drawings.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims. Like reference numerals refer to like elements throughout.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 상세한 설명에 앞서 본 명세서에서 사용하는 용어의 의미를 간략히 설명한다. 그러나 용어의 설명은 본 명세서의 이해를 돕기 위한 것이다. 따라서 본 발명의 상세한 설명에 있어서 본 발명을 명시적으로 한정하지 않은 경우에는 이하의 용어들이 본 발명의 기술적 사상을 한정하는 의미로 사용되는 것이 아님을 주의해야 한다.Prior to the detailed description of the present invention, the meaning of the terms used herein will be briefly described. However, the description of the term is to aid the understanding of the present specification. Therefore, it should be noted that the following terms are not used to limit the technical spirit of the present invention unless the present invention is explicitly limited in the detailed description of the present invention.

-공개키 암호화(Public-key Cryptography) Public-key Cryptography

비대칭 암호화라고도 하며, 이는 데이터를 복호화하는데 사용되는 암호키와 데이터를 암호화하는데 사용되는 암호키가 서로 다른 암호키로 구성되는 암호화 방 식을 의미한다. 공개키 암호화 방식에서 암호키는 공개키와 개인키의 쌍으로 이루어진다. 공개키는 비밀로 보관될 필요가 없으며 다른 디바이스에게 손쉽게 알려질 수 있고, 개인키는 특정 디바이스 자신만이 알고 있어야 한다. 이러한 공개키 암호화 알고리즘의 예로는 Diffie-Hellman 방식, RSA 방식, ElGamal 방식, 및 타원곡선(Elliptic Curve) 방식 등이 있다. Also known as asymmetric encryption, this refers to an encryption method in which an encryption key used to decrypt data and an encryption key used to encrypt data are composed of different encryption keys. In public key cryptography, an encryption key consists of a pair of public and private keys. The public key does not need to be kept secret and can be easily known to other devices, and the private key must be known only to the specific device itself. Examples of such public key encryption algorithms include a Diffie-Hellman method, an RSA method, an ElGamal method, and an elliptic curve method.

-대칭키 암호화(Symetric-key Criptography)Symmetric-key Criptography

비밀키 암호화라고도 하며, 이는 데이터를 암호화하는데 사용되는 암호키와 데이터를 복호화하는데 사용되는 암호키가 동일한 암호키로 구성되는 암호화 방식을 의미한다. 이러한 대칭키 암호화의 예로는 DES 방식이 가장 일반적으로 사용되고 있으며, 최근에는 AES 방식을 채용한 어플리케이션이 증가하고 있다.Also known as secret key encryption, this refers to an encryption method in which an encryption key used to encrypt data and an encryption key used to decrypt data are configured with the same encryption key. As an example of such a symmetric key encryption, the DES scheme is most commonly used, and recently, an application using the AES scheme is increasing.

-전자서명(Digital Signature)Digital Signature

서명자에 의해 문서가 작성되었음을 나타내기 위하여 사용된다. 이러한 전자서명의 예로는 RSA 전자서명, ElGamal 전자서명, DSA 전자서명, Schnorr 전자서명 등이 있다. Used by the signer to indicate that a document has been created. Examples of such digital signatures include RSA digital signatures, ElGamal digital signatures, DSA digital signatures, and Schnorr digital signatures.

-휴대용 저장장치Portable storage device

본 발명에서 사용하는 휴대용 저장장치는 플래시 메모리와 같이 데이터를 읽고 쓰고 지울 수 있는 성질을 갖는 비휘발성 메모리를 포함하고 데이터에 대한 소정의 연산 능력을 갖으며, 호스트 디바이스와의 연결/분리가 용이한 저장장치를 의미한다. 이러한 저장장치의 예로는 스마트 미디어, 메모리 스틱, CF카드, XD카드, 멀티미디어카드 등이 있다. The portable storage device used in the present invention includes a nonvolatile memory having a property of reading, writing, and erasing data, such as a flash memory, having a predetermined computing power, and easily connecting / disconnecting a host device. Means storage. Examples of such storage devices include smart media, memory sticks, CF cards, XD cards, and multimedia cards.

-호스트 디바이스Host device

본 발명에서 사용하는 호스트 디바이스는 휴대용 저장장치와 연결 가능하며, 휴대용 저장장치에 저장된 권리객체를 통해 디지털 컨텐츠를 직접 사용할 수 있는 멀티미디어 장치를 의미한다. 호스트 디바이스의 예로는 휴대폰, PDA, 노트북, 데스크 탑 컴퓨터, 디지털 TV 등이 있다. The host device used in the present invention refers to a multimedia device that can be connected to a portable storage device and can directly use digital contents through a rights object stored in the portable storage device. Examples of host devices include mobile phones, PDAs, notebooks, desktop computers, digital TVs, and the like.

-권리객체Right object

콘텐츠 객체를 사용할 수 있는 권한, 그 콘텐츠에 대한 사용 제한 정보, 권리객체의 복제 제한 정보, 권리객체 ID 및 콘텐츠 ID 등을 포함하는 일종의 라이센스이다. It is a kind of license that includes the right to use a content object, usage restriction information on the content, information on the duplication of the rights object, rights object ID, and content ID.

콘텐츠 객체를 사용할 수 있는 권한은 콘텐츠 객체를 복호화할 수 있는 콘텐츠 암호화 키(Content Encryption Key; 이하 CEK라 함)일 수 있다. CEK는 디바이스가 이용하고자 하는 콘텐츠 객체를 복호화하는 키 값이며, 호스트 디바이스는 권리객체가 저장된 휴대용 저장장치로부터 이 CEK를 전송 받음으로써 콘텐츠 객체를 사용할 수 있다.The right to use the content object may be a content encryption key (hereinafter referred to as CEK) capable of decrypting the content object. The CEK is a key value for decrypting the content object that the device intends to use, and the host device can use the content object by receiving the CEK from the portable storage device in which the rights object is stored.

사용 제한 정보는 콘텐츠 객체를 실행시키기 위해 권리객체를 소비할 수 있는 한도를 나타내는 정보이다. 사용 제한의 종류에는 사용 날짜 제한, 사용 횟수 제한, 사용 기간 제한, 사용 기한 제한 등이 있다. The usage restriction information is information indicating a limit in which a rights object can be consumed to execute a content object. The types of usage restrictions include the use date limit, the number of use limit, the usage period limit, and the usage limit.

사용 날짜 제한은 콘텐츠 객체를 사용할 수 있는 날짜를 제한 한다. 따라서 권리객체에 사용 날짜 제한이 설정된 경우 호스트 디바이스는 권리객체에 설정된 날짜 이후부터 또는 권리객체에 설정된 날짜 이전까지 해당 권리객체를 소비하여 콘텐츠 객체를 사용할 수 있게 된다.The usage date limit restricts the date on which the content object is available. Therefore, when the usage date limit is set in the rights object, the host device can use the content object by consuming the rights object after the date set in the rights object or before the date set in the rights object.

사용 횟수 제한은 콘텐츠 객체를 사용할 수 있는 횟수를 제한한다. 예컨데 권리객체에 사용 횟수 제한이N회로 설정되어 있다면, 호스트 디바이스는 해당 권리객체를 소비하여 콘텐츠 객체를 N번 사용할 수 있게 된다. The usage limit limits the number of times a content object can be used. For example, if the number of times of usage of the rights object is set to N times, the host device can consume the rights object and use the content object N times.

사용 기간 제한은 권리객체를 통해 콘텐츠 객체를 처음 사용한 때부터 권리객체에 설정된 기간 동안 해당 권리객체를 소비하여 콘텐츠 객체를 사용할 수 있도록 제한한다. 예컨데 권리객체에 사용 기간 제한이 1주일로 설정된 경우, 호스트 디바이스는 콘텐츠 객체를 사용하기 위해 해당 권리객체를 최초 소비한 때부터 1주일 동안 권리객체의 소비를 통해 콘텐츠 객체를 사용할 수 있게 된다. The usage period restriction restricts the use of the content object by consuming the rights object for the period set in the rights object from the first use of the content object through the rights object. For example, if the usage period limit is set to one week for the rights object, the host device can use the content object through the consumption of the rights object for one week from the first consumption of the rights object to use the content object.

사용 기한 제한은 콘텐츠 객체를 사용할 수 있는 시간의 총 합을 제한한다. 예컨데 권리객체에 사용 기한 제한이 10시간으로 설정되어 있다면, 호스트 디바이스는 해당 권리객체를 소비하여 10시간 동안 콘텐츠 객체를 사용할 수 있게 된다. 이때 호스트 디바이스는 콘텐츠 객체를 사용한 횟수나 날짜에 대한 제한은 받지 않는다. The usage limit restricts the total amount of time that a content object can be used. For example, if the expiration limit is set to 10 hours for the rights object, the host device can consume the rights object and use the content object for 10 hours. In this case, the host device is not limited to the number of times the content object is used or the date.

복제 제한 정보는 권리객체를 복사하거나 이동시킬 수 있는 횟수나 한도를 제한하는 정보이다. 복제 제한 정보는 복사 제한 정보 및 이동 제한 정보를 포함할 수 있다. The copy restriction information is information that limits the number or limit of the rights object that can be copied or moved. The copy restriction information may include copy restriction information and movement restriction information.

권리객체의 복사는 기존의 디바이스에 권리객체가 남아있는 상태에서 동일한 권리객체를 다른 디바이스에 전송시키는 개념이다. Copying a rights object is a concept of transmitting the same rights object to another device while the rights object remains in the existing device.

권리객체의 이동은 기존의 디바이스에 있던 권리객체를 다른 디바이스로 전 송시키면서 기존의 디바이스에서는 해당 권리객체를 삭제하는 개념이다. The movement of a rights object is a concept of deleting a rights object from an existing device while transferring the rights object existing in the existing device to another device.

따라서 사용자는 호스트 디바이스나 휴대용 저장장치에 저장된 권리객체를 해당 권리객체에 설정된 복사 제한 횟수 또는 이동 제한 횟수만큼 다른 호스트 디바이스나 휴대용 저장장치로 복사 또는 이동시킬 수 있다. Therefore, the user may copy or move the rights object stored in the host device or the portable storage device to another host device or the portable storage device by the copy limit number or the movement limit number set in the rights object.

권리객체 ID는 다른 권리객체로부터 자신을 식별하도록 하는 식별자이다. The rights object ID is an identifier that identifies itself from another rights object.

콘텐츠 ID는 권리객체를 소비함으로써 실행시킬 수 있는 콘텐츠 객체를 식별하기 위한 콘텐츠 객체의 식별자이다. The content ID is an identifier of the content object for identifying the content object that can be executed by consuming the rights object.

기타 권리객체에 대한 설명은 OMA DRM Enabler v1.0, 2002, Open Mobile Alliance 또는 OMA DRM v2.0 draft, 2004, Open Mobile Alliance에 상세히 나타나 있다. Descriptions of other rights objects are detailed in the OMA DRM Enabler v1.0, 2002, Open Mobile Alliance or OMA DRM v2.0 draft, 2004, Open Mobile Alliance.

-권리객체 상태정보Right object status information

본 발명에서 사용하는 권리객체 상태정보는 권리객체의 소비 정도를 나타내는 정보이다. 예컨데 권리객체에 사용 기한 정보가 10시간으로 설정되어 있고 호스트 디바이스가 콘텐츠 객체를 사용하기 위해 권리객체를 소비한 시간이 4시간인 경우, 권리객체 상태정보는 호스트 디바이스가 지금까지 권리객체를 소비한 시간(4시간) 또는 앞으로 호스트 디바이스가 권리객체를 소비하여 콘텐츠 객체를 사용할 수 있는 시간(6시간)에 대한 정보를 나타낸다. The rights object state information used in the present invention is information indicating the degree of consumption of the rights object. For example, if the expiration date information is set to 10 hours in the rights object and the host device spends 4 hours in order to use the content object, the rights object status information indicates that the host device has consumed the rights object so far. Information about the time (4 hours) or the time (6 hours) when the host device consumes the rights object and can use the content object in the future.

이러한 권리객체 상태정보는 권리객체 내에 포함될 수도 있고, 권리객체를 저장하고 있는 호스트 디바이스나 휴대용 저장장치에 의해 권리객체와 별도의 정보로써 관리될 수도 있다. The rights object state information may be included in the rights object or may be managed as information separate from the rights object by the host device or the portable storage device storing the rights object.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일 실시예에 따른 DRM 개념을 나타낸 도면이다. 2 is a diagram illustrating a DRM concept according to an embodiment of the present invention.

사용자는 호스트 디바이스(210)를 통해 종래와 같이 콘텐츠 공급자(240)로부터 콘텐츠 객체를 획득할 수 있다. 또한 일정한 대가를 지불하고 권리객체 발행기관(230)으로부터 콘텐츠 객체를 실행시킬 수 있는 권리객체를 구입할 수 있다. The user may obtain a content object from the content provider 240 as in the related art through the host device 210. In addition, it is possible to purchase a rights object that can execute a content object from the rights object issuer 230 at a predetermined cost.

한편 구입한 권리객체는 호스트 디바이스(210)에 저장시켜 둘 수도 있지만, 본 발명의 실시예에 따라 휴대용 저장장치(220)에 저장시킬 수도 있다. 이밖에도 휴대용 저장장치(220)는 그 생산시부터 하나 이상의 권리객체를 저장하고 있을 수 있다. Meanwhile, although the purchased rights object may be stored in the host device 210, the purchased right object may be stored in the portable storage device 220 according to an embodiment of the present invention. In addition, the portable storage device 220 may store one or more rights objects since its production.

이 경우 호스트 디바이스(210)는 콘텐츠 객체를 사용하기 위해 휴대용 저장장치(220)에 저장된 권리객체를 소비할 수 있다. 권리객체를 소비한 호스트 디바이스(210)는 권리객체의 소비 정도에 따라 해당 권리객체에 대한 상태갱신 정보를 생성하고 이를 휴대용 저장장치(220)에게 전송한다. 휴대용 저장장치(220)는 수신된 상태갱신 정보를 통해 해당 권리객체의 상태정보를 갱신하게 된다. In this case, the host device 210 may consume the rights object stored in the portable storage device 220 to use the content object. The host device 210 consuming the rights object generates the state update information for the rights object according to the degree of consumption of the rights object and transmits it to the portable storage device 220. The portable storage device 220 updates the status information of the rights object through the received status update information.

또한 다른 호스트 디바이스(250)도 휴대용 저장장치(220)에 저장된 권리객체를 소비하여 콘텐츠 객체를 사용할 수 있다. 경우에 따라서는 휴대용 저장장치(220)에 저장된 권리객체를 다른 호스트 디바이스(250)에게 이동 또는 복사시킬 수도 있다. 따라서 휴대용 저장장치(220)를 사용하면 권리객체에 설정된 사용 제한 정보 또는 복제 제한 정보의 제한 범위 내에서 호스트 디바이스들(210, 250)이 간 편하게 권리객체를 공유할 수 있게 된다. 또한 권리객체들을 휴대용 저장장치(220)에 저장시킴으로써 호스트 디바이스(210)의 데이터 저장 능력을 향상시키고 권리객체의 관리를 간편히 할 수 있다. In addition, the other host device 250 may use the content object by consuming the rights object stored in the portable storage device 220. In some cases, the rights object stored in the portable storage device 220 may be moved or copied to another host device 250. Therefore, when the portable storage device 220 is used, the host devices 210 and 250 may easily share the rights object within the limits of the usage restriction information or the replication restriction information set in the rights object. In addition, by storing the rights objects in the portable storage device 220, it is possible to improve the data storage capability of the host device 210 and to simplify the management of the rights objects.

한편 호스트 디바이스(210)가 휴대용 저장장치(220)와 결합하여 데이터를 교환하기 전에 상호인증을 거치는 것이 일반적이다. 상호인증은 호스트 디바이스(210)와 휴대용 저장장치(220) 간에 교환되는 데이터의 보안을 유지하기 위한 기초 과정이며 이를 도 3을 통해 설명한다.In general, the host device 210 undergoes mutual authentication before combining with the portable storage device 220 to exchange data. Mutual authentication is a basic process for maintaining the security of data exchanged between the host device 210 and the portable storage device 220, which will be described with reference to FIG.

도 3은 본 발명의 일 실시예에 따른 호스트 디바이스와 휴대용 저장장치간 상호인증 과정을 나타낸 흐름도이다. 3 is a flowchart illustrating a mutual authentication process between a host device and a portable storage device according to an exemplary embodiment of the present invention.

도 3의 설명에 있어서 아래 첨자 H는 호스트 디바이스(210) 소유이거나 호스트 디바이스(210)가 생성한 데이터를 의미하고 아래 첨자 S는 휴대용 저장장치(220) 소유이거나 휴대용 저장장치(220)가 생성한 데이터를 의미한다.In the description of FIG. 3, the subscript H means data owned by or generated by the host device 210, and the subscript S is owned by the portable storage device 220 or generated by the portable storage device 220. Means data.

호스트 디바이스(210)와 휴대용 저장장치(220)는 각각 자신만의 암호화키 쌍을 포함할 수 있으며, 암호화키 쌍은 공개키 암호화를 위해 사용된다. The host device 210 and the portable storage device 220 may each include their own encryption key pair, which is used for public key encryption.

최초 호스트 디바이스(210)가 휴대용 저장장치(220)에게 상호인증을 요청한다(S10). 이때 호스트 디바이스(210)는 자신의 공개키를 휴대용 저장장치(220)에게 전송한다. 공개키는 인증기관(Certification Authority)이 호스트 디바이스(210)에 대하여 발행한 인증서H에 포함되어 전송될 수도 있다. The first host device 210 requests mutual authentication from the portable storage device 220 (S10). In this case, the host device 210 transmits its public key to the portable storage device 220. The public key may be included in the certificate H issued to the host device 210 by a certification authority and transmitted.

휴대용 저장장치(220)는 호스트 디바이스(210)의 인증서H를 통해 호스트 디 바이스(210)가 정당한 디바이스인지를 확인할 수 있고, 호스트 디바이스(210)의 공개키를 얻을 수 있다.The portable storage device 220 may verify whether the host device 210 is a legitimate device through the certificate H of the host device 210, and obtain a public key of the host device 210.

휴대용 저장장치(220)는 호스트 디바이스(210)의 인증서H를 확인한다(S12). 이때 휴대용 저장장치(220)는 인증서H의 유효기간 만료 여부 및, 인증서 폐기 목록(Certificate Revocation List; 이하, "CRL"이라 함)을 사용하여 인증서H가 유효한 것인지를 확인할 수 있다. 만일 인증서H의 유효기간이 지났거나, 인증서H가 CRL에 등록된 인증서일 경우라면 휴대용 저장장치(220)는 호스트 디바이스(210)와의 상호인증을 거부할 수 있다. 반면 인증서H가 유효한 것으로 확인된 경우 휴대용 저장장치(220)는 인증서H를 통해 호스트 디바이스(210)의 공개키를 얻을 수 있다. The portable storage device 220 checks the certificate H of the host device 210 (S12). In this case, the portable storage device 220 may determine whether the certificate H is valid using the certificate revocation list (hereinafter referred to as "CRL") and whether the certificate H expires. Ten thousand and one out of date of the certificate H or, if the case of the certificate H is registered in the CRL certificate portable storage device 220 may reject mutual authentication with the host device (210). On the other hand, if the certificate H is confirmed to be valid, the portable storage device 220 may obtain the public key of the host device 210 through the certificate H.

한편 호스트 디바이스(210)의 인증서가 유효한 것으로 확인된 경우 휴대용 저장장치(220)는 상호인증 요청에 응답하기 위해 난수S을 생성하고(S14), 이를 호스트 디바이스(210)의 공개키로 암호화한다(S16). On the other hand, if it is confirmed that the certificate of the host device 210 is valid, the portable storage device 220 generates a random number S to respond to the mutual authentication request (S14), and encrypts it with the public key of the host device 210 (S16). ).

상호인증 응답으로써 암호화된 난수S는 휴대용 저장장치(220)의 공개키와 함께 호스트 디바이스(210)로 전송된다(S20). 이때 휴대용 저장장치(220)의 공개키 역시 휴대용 저장장치(220)의 인증서S에 포함되어 전송될 수도 있다. The random number S encrypted as the mutual authentication response is transmitted to the host device 210 together with the public key of the portable storage device 220 (S20). In this case, the public key of the portable storage device 220 may also be included in the certificate S of the portable storage device 220 and transmitted.

호스트 디바이스(210)는 자신이 보유한 CRL을 통해 휴대용 저장장치(220)의 인증서S의 유효성을 확인하여 휴대용 저장장치(220)가 정당한 디바이스라는 것을 확 인할 수 있다(S22). 한편 호스트 디바이스(210)는 휴대용 저장장치(220)의 인증서를 통해 휴대용 저장장치(220)의 공개키를 얻고 암호화된 난수S을 자신의 개인키로 복호화하여 난수S을 얻을 수 있다(S24). The host device 210 may confirm that the portable storage device 220 is a legitimate device by checking the validity of the certificate S of the portable storage device 220 through the CRL held by the host device 210 (S22). Meanwhile, the host device 210 may obtain the public key of the portable storage device 220 through the certificate of the portable storage device 220 and decrypt the encrypted random number S with its own private key to obtain the random number S (S24).

휴대용 저장장치(220)가 정당한 디바이스라는 것을 확인한 호스트 디바이스(210) 또한 난수H를 생성하고(S26), 생성된 난수H를 휴대용 저장장치(220)의 공개키로 암호화한다(S28).Encrypts the portable storage device, the host device 210 also generates a random number H and (S26), the generated random number H confirming that the called legitimate device 220 with the public key of the portable storage device 220 (S28).

그 후 호스트 디바이스(210)는 세션키 생성 요청과 함께 암호화된 난수H를 전송한다(S30). Thereafter, the host device 210 transmits the encrypted random number H together with the session key generation request (S30).

휴대용 저장장치(220)는 암호화된 난수H를 수신하여 자신의 개인키로 복호화한다(S32). 이에 따라 호스트 디바이스(210)와 휴대용 저장장치(220)는 자신이 생성한 난수와 상대가 생성한 난수를 공유할 수 있으며, 두개의 난수를 이용하여 세션키를 생성한다(S40, S42). 본 실시예에서 디바이스(210)와 휴대용 저장장치(220) 양자 모두에서 난수를 생성하여 사용함으로써 임의성을 크게 높일 수 있게 되고 안전한 상호인증이 가능하게 된다. The portable storage device 220 receives the encrypted random number H and decrypts it with its private key (S32). Accordingly, the host device 210 and the portable storage device 220 may share a random number generated by the host device and a random number generated by the partner, and generate a session key using two random numbers (S40 and S42). In this embodiment, the random number is generated and used in both the device 210 and the portable storage device 220, thereby greatly increasing the randomness and enabling secure mutual authentication.

한편 세션키를 생성한 호스트 디바이스(210)와 휴대용 저장장치(220)는 자신이 생성한 세션키가 상대방이 생성한 세션키와 동일한 지의 여부를 확인하는 작업을 수행할 수도 있다. Meanwhile, the host device 210 and the portable storage device 220 generating the session key may check whether the session key generated by the host device 210 is identical to the session key generated by the other party.

세션키를 공유한 호스트 디바이스(210)와 휴대용 저장장치(220)는 상호간에 전송되는 데이터를 세션키로 암호화하고 수신된 데이터를 세션키로 복호화 할 수 있다. 이로써 데이터 전송시 보안성을 강화할 수 있다. The host device 210 and the portable storage device 220 sharing the session key may encrypt data transmitted to each other with the session key and decrypt the received data with the session key. This can enhance security during data transmission.

전술한 상호인증 과정은 호스트 디바이스(210)와 휴대용 저장장치(220)가 상호 공인된 디바이스라는 것을 확인하고 세션키를 공유하기 위한 과정의 일 예일 뿐이다. 따라서 호스트 디바이스(210)와 휴대용 저장장치(220)간 공통된 세션키를 생성하기 위해 이와 유사한 상호인증 과정이 수행될 수 있다. The above-described mutual authentication process is only an example of a process for confirming that the host device 210 and the portable storage device 220 are mutually authorized devices and sharing a session key. Accordingly, a similar mutual authentication process may be performed to generate a common session key between the host device 210 and the portable storage device 220.

한편 세션키를 통한 암호화는 대칭키 암호화 방식에 속할 수 있다. 그러나 본 발명은 이에 한정되지 않으며, 호스트 디바이스(210)와 휴대용 저장장치(220)는 전송할 데이터를 상대방의 공개키로 암호화하고 수신된 데이터를 자신의 개인키로 암호화하는 공개키 암호화 방식을 사용할 수 도 있다. Meanwhile, encryption using a session key may belong to symmetric key encryption. However, the present invention is not limited thereto, and the host device 210 and the portable storage device 220 may use a public key encryption method that encrypts data to be transmitted with a public key of the other party and encrypts the received data with its private key. .

이하 각 실시예에 있어서 특별한 언급이 없더라도 호스트 디바이스(210)와 휴대용 저장장치(220)는 상호 전송되는 데이터를 세션키 또는 상대방의 공개키로 암호화할 수 있으며, 수신된 데이터를 세션키 또는 자신의 개인키로 복호화할 수 있다.In the following embodiments, although not specifically mentioned, the host device 210 and the portable storage device 220 may encrypt data transmitted to each other with a session key or a counterpart's public key, and the received data may be encrypted with the session key or its own individual. Can be decrypted with a key.

전술한 상호인증 과정 중에서나 상호인증 후에 호스트 디바이스와 휴대용 저장장치 간의 데이터 전송은 호스트 디바이스로부터 발생되는 컨트롤 신호에 의해 제어되며 이를 도 4를 통해 설명한다. Data transmission between the host device and the portable storage device during or after the mutual authentication process described above is controlled by a control signal generated from the host device, which will be described with reference to FIG. 4.

도 4는 본 발명의 일 실시예에 따른 호스트 디바이스와 휴대용 저장장치 간의 데이터를 전송 구조를 나타낸 도면이다. 4 is a diagram illustrating a structure of transmitting data between a host device and a portable storage device according to an embodiment of the present invention.

호스트 디바이스(210)와 휴대용 저장장치(220)가 연결되면 호스트 디바이스 (210)와 휴대용 저장장치(220)는 자신이 구동 중인 어플리케이션의 동작에 따라 필요한 데이터를 상호간 전송하게 된다. 예컨데 콘텐츠 객체를 실행시키기 위해 호스트 디바이스(210)는 휴대용 저장장치(220)에 저장된 권리객체를 전송 받을 수 있다. 또는 권리객체를 소비함에 따라 권리객체의 상태정보를 갱신해야 할 경우, 호스트 디바이스(210)는 권리객체를 소비하여 콘텐츠 객체를 사용한 시간이나 횟수 등 소비된 권리객체의 상태정보를 갱신하는데 필요한 데이터를 휴대용 저장장치(220)에게 전송할 수도 있다. When the host device 210 and the portable storage device 220 are connected, the host device 210 and the portable storage device 220 transmit necessary data to each other according to an operation of an application that is being driven. For example, in order to execute the content object, the host device 210 may receive a rights object stored in the portable storage device 220. Alternatively, when it is necessary to update the status information of the rights object as the rights object is consumed, the host device 210 consumes the rights object and provides data necessary for updating the status information of the consumed rights object, such as the time or number of times the content object is used. Or transmit to portable storage 220.

이러한 데이터 전송을 제어하기 위해 호스트 디바이스(210)는 휴대용 저장장치(220)에게 컨트롤 신호(310)를 전송한다. 컨트롤 신호(310)는 쓰기명령과 읽기명령로 구성될 수 있다. 쓰기명령은 휴대용 저장장치(220)가 데이터 수신을 준비하도록 하는 컨트롤 신호이고, 읽기명령은 휴대용 저장장치(220)가 데이터 송신을 준비하도록 하는 컨트롤 신호이다. In order to control such data transmission, the host device 210 transmits a control signal 310 to the portable storage device 220. The control signal 310 may be composed of a write command and a read command. The write command is a control signal for preparing the portable storage device 220 to receive data, and the read command is a control signal for preparing the portable storage device 220 for data transmission.

따라서 휴대용 저장장치(220)는 호스트 디바이스(210)로부터 전송되는 컨트롤 신호를 통해 데이터의 송신 또는 수신을 준비하게 된다. 또한 호스트 디바이스(210)는 쓰기명령을 통해 휴대용 저장장치(220)에게 데이터를 전송하거나 읽기명령을 통해 휴대용 저장장치(220)에 저장된 데이터에 억세스하게 된다. Accordingly, the portable storage device 220 prepares to transmit or receive data through a control signal transmitted from the host device 210. In addition, the host device 210 transmits data to the portable storage device 220 through a write command or accesses data stored in the portable storage device 220 through a read command.

이처럼 호스트 디바이스와 휴대용 저장장치 간에 필요한 데이터를 송수신하기 위해서는 호스트 디바이스로부터의 컨트롤 신호가 필요하다.As such, a control signal from the host device is required to transmit and receive necessary data between the host device and the portable storage device.

도 5는 본 발명의 일 실시예에 데이터 전송 구조를 보다 구체적으로 나타낸 도면이다. 5 is a diagram illustrating a data transmission structure in more detail in an embodiment of the present invention.

도시된 도면은 호스트 디바이스(210)에서 구동 중인 어플리케이션A와 휴대용 저장장치(220)에서 구동 중인 어플리케이션B가 상호 필요한 데이터를 전송하는 모습을 나타내고 있다.The illustrated figure shows how Application A running on the host device 210 and Application B running on the portable storage device 220 transmit data necessary for each other.

휴대용 저장장치(220)에게 데이터를 전송하기 위해 호스트 디바이스(210)는 쓰기명령(312)과 읽기명령(314)의 쌍으로 구성되는 컨트롤 신호(310)를 사용한다. To transmit data to the portable storage device 220, the host device 210 uses a control signal 310 composed of a pair of write commands 312 and read commands 314.

예컨데 호스트 디바이스(210)가 소비한 권리객체의 상태 정보를 갱신하기 위해 필요한 데이터를 휴대용 저장장치(220)에게 전송시키려는 경우, 호스트 디바이스(210)는 쓰기 명령(312)을 통해 권리객체를 갱신하는데 필요한 데이터(322)를 전송할 수 있다. 이때 호스트 디바이스(210)는 읽기 명령(314)을 통해 휴대용 저장장치(220)로부터 권리객체의 성공적인 전송 여부에 관한 응답 데이터(324)를 수신 받게 된다. For example, when the host device 210 intends to transmit data necessary for updating status information of the rights object consumed to the portable storage device 220, the host device 210 updates the rights object through the write command 312. The necessary data 322 can be transmitted. In this case, the host device 210 receives the response data 324 regarding whether the rights object is successfully transmitted from the portable storage device 220 through the read command 314.

한편 휴대용 저장장치(220)에 저장된 데이터에 억세스 하려는 경우에도 호스트 디바이스(210)는 쓰기명령(312)과 읽기명령(314)의 쌍으로 구성된 컨트롤 신호(310)를 사용한다. Meanwhile, even when accessing data stored in the portable storage device 220, the host device 210 uses a control signal 310 composed of a pair of a write command 312 and a read command 314.

예컨데 호스트 디바이스(210)가 휴대용 저장장치(220)에 저장된 권리객체에 억세스하려는 경우, 쓰기 명령(312)을 통해 전송되는 데이터(322)는 널(null) 값으로 채워진 빈 데이터일 수 있다. 그 후 호스트 디바이스(210)는 읽기명령(314)을 전송하고 휴대용 저장장치(220)에 저장된 권리객체 데이터(324)를 전송 받게 된다. For example, when the host device 210 attempts to access a rights object stored in the portable storage device 220, the data 322 transmitted through the write command 312 may be empty data filled with a null value. Thereafter, the host device 210 transmits a read command 314 and receives the rights object data 324 stored in the portable storage device 220.

이처럼 호스트 디바이스(210)는 데이터를 송신하거나 수신 받기 위해 쓰기 명령(312)/데이터(322) 송신 및 읽기명령(314)/데이터(324) 수신의 과정을 거치게 된다. As such, the host device 210 undergoes a process of transmitting a write command 312 / data 322 and receiving a read command 314 / data 324 to transmit or receive data.

따라서 본 발명의 실시예에 따른 호스트 디바이스(210)는 쓰기명령(312)을 전송한 후 읽기명령(314)의 전송을 준비하며, 쓰기명령(312) 또는 읽기명령(314)이 연속하여 전송되는 것을 방지한다. Therefore, the host device 210 according to the embodiment of the present invention transmits the write command 312 and prepares to transmit the read command 314, and the write command 312 or the read command 314 is continuously transmitted. To prevent them.

또한 본 발명의 실시예에 따른 휴대용 저장장치(220)는 호스트 디바이스(210)로부터 쓰기명령(312)이 전송되면 그 후 읽기명령(314)이 전송될 것으로 예상하게 된다. 만약 쓰기명령(312) 또는 읽기명령(314)이 연속하여 수신되는 경우, 휴대용 저장장치(220)는 자신과 연결된 호스트 디바이스(210)에 오류가 발생한 것으로 판단할 수 있다. In addition, the portable storage device 220 according to an exemplary embodiment of the present invention expects a read command 314 to be transmitted after the write command 312 is transmitted from the host device 210. If the write command 312 or the read command 314 are continuously received, the portable storage device 220 may determine that an error has occurred in the host device 210 connected to the portable storage device 220.

도 6은 본 발명의 일 실시예에 따른 호스트 디바이스와 휴대용 저장장치 간의 통신 과정을 나타낸 도면이다.6 is a diagram illustrating a communication process between a host device and a portable storage device according to an embodiment of the present invention.

도시된 도면은 호스트 디바이스(210)에서 구동 중인 어플리케이션A 및 어플리케이션B가 휴대용 저장장치(220)에서 구동 중인 어플리케이션K와 상호 필요한 데이터를 전송하려는 모습을 나타내고 있다.The illustrated figure shows that Application A and Application B, which are running on the host device 210, are required to transmit necessary data to and from Application K, which is running on the portable storage device 220.

어플리케이션A는 도 5를 통해 설명한 바와 마찬가지로 쓰기명령(312) 및 읽기명령(314)의 쌍으로 구성되는 컨트롤 신호를 통해 어플리케이션K와 데이터 교환을 할 수 있다. 이때 호스트 디바이스(210)는 쓰기명령(312) 전송 후 이와 쌍을 이루는 읽기명령(314)이 출력되기 전까지 어플리케이션A의 다른 데이터 송수신 요구나, 다른 어플리케이션인 어플리케이션B의 데이터 송수신 요구에 따른 쓰기명령이 출력되는 것을 금지시킨다. 어플리케이션A의 다른 데이터 송수신 요구나, 어플 리케이션B의 데이터 송수신 요구에 따른 쓰기명령은 최초 출력된 쓰기명령(312)과 쌍을 이루는 읽기명령(314)이 출력된 후에 출력될 수 있다. As described with reference to FIG. 5, the application A may exchange data with the application K through a control signal composed of a pair of a write command 312 and a read command 314. At this time, the host device 210 transmits a write command according to another data transmission / reception request of the application A or a data transmission / reception request of the application B which is another application until the read command 314 paired with the write command 312 is output. Prohibit output. A write command according to another data transmission / reception request of the application A or a data transmission / reception request of the application B may be output after the read command 314 paired with the first output write command 312 is output.

한편 호스트 디바이스로(210)부터 쓰기명령(312)을 수신한 휴대용 저장장치(220)는 호스트 디바이스(210)로부터 읽기명령(314)이 수신되기 전에 다른 쓰기명령이 수신되는 경우 호스트 디바이스(210)에게 에러 메시지를 전송하거나 호스트 디바이스(210)와의 통신을 중단시킬 수 있다. On the other hand, the portable storage device 220 that receives the write command 312 from the host device 210 receives another write command before the read command 314 is received from the host device 210. May send an error message or interrupt communication with the host device 210.

이에 따라서 호스트 디바이스(210)로부터 전송된 데이터(322)에 대해 휴대용 저장장치(220)가 잘못된 응답 데이터를 발생시키도록 하기 위한 또 다른 데이터가 휴대용 저장장치(220)로 입력되는 것을 방지할 수 있다. 즉, 도시된 도면에서 휴대용 저장장치(220)의 어플리케이션K에 의해 호스트 디바이스(210)로 출력되는 데이터(324)는 호스트 디바이스(210)로부터 전송된 데이터(322)에 대한 적합한 응답 데이터가 된다. Accordingly, another data for causing the portable storage device 220 to generate incorrect response data to the data 322 transmitted from the host device 210 may be prevented from being input into the portable storage device 220. . That is, the data 324 outputted to the host device 210 by the application K of the portable storage device 220 in the illustrated figure becomes suitable response data to the data 322 transmitted from the host device 210.

도 7은 본 발명의 일 실시예에 따른 호스트 디바이스를 나타낸 도면이다. 7 illustrates a host device according to an embodiment of the present invention.

본 실시예 및 이하의 실시예에서 사용되는 모듈이란 특정 기능을 수행하는 소프트웨어 또는 FPGA나 ASIC과 같은 하드웨어 구성요소를 의미한다. 그렇지만 모듈은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. 모듈은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. Modules used in this embodiment and the following embodiments refer to software that performs specific functions or hardware components such as FPGAs or ASICs. However, modules are not meant to be limited to software or hardware. The module may be configured to be in an addressable storage medium and may be configured to play one or more processors.

따라서, 일 예로서 모듈은 소프트웨어 구성요소, 객체지향 소프트웨어 구성요소, 클래스 구성요소들 및 태스크 구성요소과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들 일 수 있다. 구성요소들과 모듈들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 모듈들로 결합되거나 추가적인 구성요소들과 모듈들로 더 분리될 수 있다. 또한, 구성요소들 및 모듈들은 호스트 디바이스 또는 휴대용 저장장치 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.Thus, as an example, a module may include components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, procedures, subroutines, program code. May be segments, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays, and variables. The functionality provided within the components and modules may be combined into a smaller number of components and modules or further separated into additional components and modules. In addition, the components and modules may be implemented to reproduce one or more CPUs in a host device or portable storage device.

호스트 디바이스(210)는 휴대용 저장장치(220)와 데이터 교환이 가능하도록 하는 인터페이스 모듈(211), DRM을 수행하기 위하여 각 구성모듈을 제어하는 제어모듈(212), 보안기능을 갖는 암호화 모듈(213) 및 저장 기능을 갖는 저장모듈(214)을 포함한다. 또한 호스트 디바이스(210)는 DRM 기능을 수행하는데 필요한 각종 어플리케이션을 구동시키는 어플리케이션 구동모듈(215), 콘텐츠 객체의 실행 내용을 디스플레이하기 위한 디스플레이 모듈(216) 및 외부 디바이스 또는 시스템과 데이터를 송수신할 수 있는 송수신 모듈(217)을 포함한다.The host device 210 may include an interface module 211 for exchanging data with the portable storage device 220, a control module 212 for controlling each component module to perform DRM, and an encryption module 213 having a security function. And a storage module 214 having a storage function. In addition, the host device 210 may exchange data with an application driving module 215 for driving various applications required to perform a DRM function, a display module 216 for displaying execution contents of a content object, and an external device or system. Transmit / receive module 217.

인터페이스 모듈(211)은 호스트 디바이스(210)가 휴대용 저장장치(220)와 연결될 수 있도록 한다. 기본적으로 호스트 디바이스(210)가 휴대용 저장장치(220)와 연결된다는 것은 휴대용 저장장치(220)와 호스트 디바이스(210)의 인터페이스 모듈들(211, 221)이 서로 전기적으로 연결된 것을 의미하지만, 이는 예시적인 것으로서 '연결'이라는 의미는 비접촉 상태에서 무선매체를 통해 서로 통신할 수 있는 상태에 있다는 의미도 포함되는 것으로 해석해야 한다. 이러한 인터페이스 모듈(211)을 통해 휴대용 저장장치(220)로 컨트롤 신호가 전송되거나 데이터가 송수 신될 수 있다.The interface module 211 allows the host device 210 to be connected to the portable storage device 220. Basically, the host device 210 is connected to the portable storage device 220 means that the portable storage device 220 and the interface modules 211 and 221 of the host device 210 are electrically connected to each other. It is to be understood that the term "connected" also includes the meaning of being in a state of being able to communicate with each other through a wireless medium in a non-contact state. The control signal may be transmitted or data may be transmitted or received to the portable storage device 220 through the interface module 211.

제어 모듈(212)은 어플리케이션 구동모듈(215)에 의해 구동되는 어플리케이션의 요청에 따라 휴대용 저장장치(220)와의 데이터 송수신 과정을 제어하고, 데이터 송수신을 위한 컨트롤 신호를 인터페이스 모듈(211)로 출력한다. 컨트롤 신호는 전술한 바와 같이 쓰기명령과 읽기명령의 쌍으로 구성될 수 있으며, 제어모듈(212)은 쓰기명령이나 읽기명령이 연속적으로 출력되는 것을 방지한다. 제어모듈(212)에 의한 컨트롤 신호 출력은 도 6을 통해 설명한 바와 같다. The control module 212 controls a data transmission / reception process with the portable storage device 220 according to a request of an application driven by the application driving module 215, and outputs a control signal for data transmission / reception to the interface module 211. . The control signal may be configured as a pair of a write command and a read command as described above, and the control module 212 prevents the write command or the read command from being output continuously. Control signal output by the control module 212 is as described with reference to FIG.

따라서 어플리케이션의 데이터 송신/수신 요청에 따라 쓰기 명령이 출력된 후 동일 어플리케이션의 다른 데이터 송수신 요청이 입력되는 경우, 제어모듈(212)은 출력된 쓰기명령과 쌍을 이루는 읽기명령이 출력되기 전까지 다른 데이터 송수신 요청에 따른 쓰기명령의 출력을 제한한다.Therefore, when another data transmission / reception request of the same application is input after a write command is output according to the data transmission / reception request of the application, the control module 212 transmits other data until a read command paired with the output write command is output. Limits the output of write commands in response to transmission / reception requests.

또한 특정 어플리케이션의 데이터 송신/수신 요청에 따라 쓰기 명령이 출력된 후 어플리케이션 구동모듈(215)에 의해 구동되는 다른 어플리케이션으로부터 데이터 송수신 요청이 입력되는 경우에도, 제어모듈(212)은 출력된 쓰기명령과 쌍을 이루는 읽기명령이 출력되기 전까지 다른 어플리케이션의 요청에 따른 쓰기명령의 출력을 제한한다. In addition, even when a data transmission / reception request is input from another application driven by the application driving module 215 after a write command is output in response to a data transmission / reception request of a specific application, the control module 212 may not output the write command. Limits the output of write commands in response to requests from other applications until the paired read commands are output.

암호화 모듈(213)은 암호화를 수행하는 모듈로서 제어모듈(212)의 요청에 따라 휴대용 저장장치(220)로 전송하는 데이터를 암호화하거나, 휴대용 저장장치(220)부터 암호화되어 수신된 데이터를 복호화 한다. 암호화 모듈(213)은 공개키 암호화 방식뿐만 아니라 비밀키 암호화 방식 또한 수행할 수 있으며 두가지 방식을 모두 수행하기 위해 하나 이상의 암호화 모듈이 존재할 수도 있다.The encryption module 213 is a module that performs encryption and encrypts data transmitted to the portable storage device 220 according to a request of the control module 212, or decrypts data received by being encrypted from the portable storage device 220. . The encryption module 213 may perform not only a public key encryption method but also a secret key encryption method, and one or more encryption modules may exist to perform both methods.

특히 권리객체들은 암호화 상태로 저장될 수 있는데, 호스트 디바이스(210)는 암호화 모듈(213)을 통해 다른 디바이스들 혹은 휴대용 저장장치(220)에서 읽을 수 없는 고유한 암호키를 이용하여 권리객체들을 암호화 할 수 있다. 또한 다른 디바이스나 휴대용 저장장치(220)에 권리객체를 이동 또는 복사하려고 할 때 고유한 암호키를 이용하여 복호화할 수 있다. 이러한 권리객체의 암호화에는 고유한 암호키를 사용한 대칭키 암호화 방식을 이용할 수 있으며, 이밖에 호스트 디바이스(210)의 공개키로 암호화하고 필요시에 호스트 디바이스(210)의 개인키로 복호화하는 것도 가능하다. 또한 암호화 모듈(213)은 상호인증 과정시 필요한 소정의 난수를 생성할 수도 있다.In particular, the rights objects may be stored in an encrypted state. The host device 210 encrypts the rights objects using a unique encryption key that cannot be read by other devices or the portable storage device 220 through the encryption module 213. can do. In addition, when the right object is to be moved or copied to another device or the portable storage device 220, it may be decrypted using a unique encryption key. A symmetric key encryption method using a unique encryption key may be used to encrypt the rights object. In addition, the right object may be encrypted using the public key of the host device 210 and, if necessary, decrypted with the private key of the host device 210. In addition, the encryption module 213 may generate a predetermined random number necessary for the mutual authentication process.

저장 모듈(214)은 암호화된 콘텐츠들과 권리객체들 및 호스트 디바이스(210)의 인증서와 CRL등 DRM 기술을 적용시키는데 필요한 데이터를 저장한다. 또한 저장모듈(214)는 어플리케이션 구동모듈(215)이 어플리케이션을 구동시키는데 필요한 데이터를 저장할 수도 있다.The storage module 214 stores encrypted contents and rights objects, and data necessary for applying a DRM technology such as a certificate and a CRL of the host device 210. In addition, the storage module 214 may store data necessary for the application driving module 215 to drive the application.

어플리케이션 구동모듈(215)은 DRM을 수행하기 위해 필요한 어플리케이션을 구동시킨다. 예컨데 어플리케이션 구동모듈(215)에 의해 구동되는 어플리케이션은 콘텐츠 객체를 실행시키기거나, 콘텐츠 객체를 실행시키기 위해 소비된 권리객체의 상태정보를 갱신하기 위한 데이터를 생성하는 등의 기능을 수행하게 된다. The application driving module 215 drives an application required to perform the DRM. For example, an application driven by the application driving module 215 performs a function of executing a content object or generating data for updating status information of a rights object consumed to execute the content object.

이러한 어플리케이션 구동모듈(215)은 하나 이상의 어플리케이션을 동시에 구동시킴으로써 호스트 디바이스(210)가 다양한 기능을 수행하도록 할 수 있다. 또한 호스트 디바이스(210)는 하나 이상의 어플리케이션 구동모듈(215)을 포함할 수도 있다. The application driving module 215 may allow the host device 210 to perform various functions by simultaneously driving one or more applications. In addition, the host device 210 may include one or more application driving modules 215.

어플리케이션 구동모듈(215)에 의해 구동되는 어플리케이션은 제어모듈(212)에게 휴대용 저장장치(220)로의 데이터 전송 또는 휴대용 저장장치(220)로부터의 데이터 수신을 요청할 수 있다. An application driven by the application driving module 215 may request the control module 212 to transmit data to or receive data from the portable storage device 220.

예컨데 호스트 디바이스(210)가 소비한 권리객체의 상태 정보를 갱신하기 위해 필요한 갱신 정보를 생성하는 어플리케이션은 생성된 갱신 정보를 휴대용 저장장치로 전송하도록 제어모듈(212)에게 요청할 수 있다. 또한 특정 콘텐츠 객체를 실행시키기 위한 어플리케이션은 콘텐츠 객체를 실행시키기 위해 필요한 권리객체를 휴대용 저장장치로부터 수신하도록 제어모듈(212)에게 요청할 수도 있다.For example, an application that generates update information necessary for updating status information of the rights object consumed by the host device 210 may request the control module 212 to transmit the generated update information to the portable storage device. An application for executing a specific content object may also request the control module 212 to receive from the portable storage the rights object needed to execute the content object.

디스플레이 모듈(216)은 권리객체를 통해 사용이 허가된 콘텐츠 객체가 실행되는 모습(예컨데, 콘텐츠 객체의 재생)을 사용자가 시각적으로 볼 수 있도록 디스플레이 한다. 디스플레이 모듈(216)은 TFT LCD와 같은 액정표시장치나 유기EL등으로 구현될 수 있다.The display module 216 displays a content object that is allowed to be used through the rights object (for example, playing the content object) so that the user can visually see it. The display module 216 may be implemented as a liquid crystal display such as a TFT LCD, an organic EL, or the like.

송수신 모듈(217)은 호스트 디바이스(210)가 콘텐츠 발행자나 권리객체 발행기관과 유무선으로 통신할 수 있도록 한다. 호스트 디바이스(210)는 송수신 모듈(217)을 통해 권리객체나 콘텐츠 객체를 외부로부터 얻을 수 있다. The transmission / reception module 217 enables the host device 210 to communicate with a content publisher or a rights object issuer by wire or wireless. The host device 210 may obtain a rights object or a content object from the outside through the transmission / reception module 217.

도 8은 본 발명의 일 실시예에 따른 휴대용 저장장치를 나타낸 블록도이다. 8 is a block diagram illustrating a portable storage device according to an embodiment of the present invention.

휴대용 저장장치(220)는 호스트 디바이스(210)와의 데이터 교환이 가능하도록 하는 인터페이스 모듈(221), DRM 과정을 수행하기 위하여 각 구성모듈을 제어하 는 제어모듈(222), 보안기능을 갖는 암호화 모듈(223), 저장 기능을 갖는 저장 모듈(224) 및 DRM 기능을 수행하는데 필요한 각종 어플리케이션을 구동시키는 어플리케이션 구동모듈(225)을 포함한다.The portable storage device 220 may include an interface module 221 for exchanging data with the host device 210, a control module 222 for controlling each component module to perform a DRM process, and an encryption module having a security function. 223, a storage module 224 having a storage function, and an application driving module 225 for driving various applications required to perform the DRM function.

인터페이스 모듈(211)은 호스트 디바이스(210)가 휴대용 저장장치(220)와 연결될 수 있도록 한다. 기본적으로 호스트 디바이스(210)가 휴대용 저장장치(220)와 연결된다는 것은 휴대용 저장장치(220)와 호스트 디바이스(210)의 인터페이스 모듈들(211, 221)이 서로 전기적으로 연결된 것을 의미하지만, 이는 예시적인 것으로서 '연결'이라는 의미는 비접촉 상태에서 무선매체를 통해 서로 통신할 수 있는 상태에 있다는 의미도 포함되는 것으로 해석해야 한다. 이러한 인터페이스 모듈(211)을 통해 휴대용 저장장치(220)로 컨트롤 신호가 전송되거나 데이터가 송수신될 수 있다.The interface module 211 allows the host device 210 to be connected to the portable storage device 220. Basically, the host device 210 is connected to the portable storage device 220 means that the portable storage device 220 and the interface modules 211 and 221 of the host device 210 are electrically connected to each other. It is to be understood that the term "connected" also includes the meaning of being in a state of being able to communicate with each other through a wireless medium in a non-contact state. Control signals may be transmitted or data may be transmitted and received to the portable storage device 220 through the interface module 211.

제어모듈(222)은 인터페이스 모듈(221)을 통해 호스트 디바이스(210)로부터 수신된 컨트롤 신호에 따라 데이터의 수신 또는 데이터의 송신을 준비한다. 예컨데 쓰기명령이 수신된 경우 제어모듈(222)은 데이터 수신을 대기하며 수신된 데이터를 저장모듈(222)에 저장시키거나, 어플리케이션 구동모듈(225)에 의해 구동되는 어플리케이션이 처리할 수 있도록 한다. 또한 읽기명령이 수신된 경우 제어모듈(222)은 저장모듈(224)에 저장된 데이터 또는 어플리케이션 구동모듈(225)에 의해 구동되는 어플리케이션이 처리한 데이터를 인터페이스모듈(221)을 통해 호스트 디바이스로 전송시키도록 한다. The control module 222 prepares the reception of the data or the transmission of the data according to the control signal received from the host device 210 through the interface module 221. For example, when a write command is received, the control module 222 waits for data reception and stores the received data in the storage module 222 or processes an application driven by the application driving module 225. In addition, when a read command is received, the control module 222 transmits data stored in the storage module 224 or data processed by an application driven by the application driving module 225 to the host device through the interface module 221. To do that.

한편 제어모듈(222)은 쓰기명령이 수신되면 그후 읽기명령이 수신될 것을 기 대하게 되며, 읽기명령이 수신되기 전에 또 다른 쓰기명령이 수신되는 경우 호스트 디바이스(210)와의 통신을 중단시킬 수도 있다. 즉 제어모듈(222)은 연속적으로 입력된 쓰기명령에 따른 데이터 수신을 제한하며, 경우에 따라서는 읽기명령이 연속적으로 입력되는 경우에도 호스트 디바이스(210)와의 통신을 중단시킬 수 있다. On the other hand, if the write command is received, the control module 222 expects to receive a read command thereafter. If another write command is received before the read command is received, the control module 222 may stop communication with the host device 210. That is, the control module 222 restricts data reception according to the continuously inputted write command, and in some cases, may stop communication with the host device 210 even when the read command is continuously input.

암호화 모듈(223)은 암호화를 수행하는 모듈로서 제어 모듈(222)의 요청에 따라 호스트 디바이스(210)로 전송하는 데이터를 암호화하거나, 호스트 디바이스(210)로부터 암호화되어 수신된 데이터를 복호화 한다. 암호화 모듈(223)은 공개키 암호화 방식 뿐만 아니라 비밀키 암호화 방식 또한 수행할 수 있으며 두가지 방식을 모두 수행하기 위해 하나 이상의 암호화 모듈이 존재할 수도 있다.The encryption module 223 performs encryption and encrypts data transmitted to the host device 210 according to a request of the control module 222, or decrypts data received by being encrypted from the host device 210. The encryption module 223 may perform not only a public key encryption method but also a secret key encryption method, and one or more encryption modules may exist to perform both methods.

특히 권리객체들은 암호화 상태로 저장될 수 있는데, 휴대용 저장장치(220)는 암호화 모듈(223)을 통해 다른 디바이스들에서 읽을 수 없는 고유한 암호키를 이용하여 권리객체들을 암호화할 수 있다. 또한 다른 디바이스에 권리객체를 이동 또는 복사하려고 할 때 또는 다른 디바이스가 특정 콘텐츠의 사용 권한을 요구하는 경우 고유한 암호키를 이용하여 암호화된 권리객체를 복호화할 수 있다. 이러한 권리객체의 암호화에는 고유한 암호키를 사용한 대칭키 암호화 방식을 이용할 수 있으며, 이밖에 휴대용 저장장치(220)의 공개키로 암호화하고 필요시에 휴대용 저장장치(220)의 개인키로 복호화하는 것도 가능하다. 또한 암호화 모듈(223)은 상호인증 과정 시 필요한 소정의 난수를 생성할 수도 있다. In particular, the rights objects may be stored in an encrypted state, and the portable storage device 220 may encrypt the rights objects using a unique encryption key that cannot be read by other devices through the encryption module 223. In addition, when the right object is moved or copied to another device, or when another device requires permission to use a specific content, the encrypted right object can be decrypted using a unique encryption key. A symmetric key encryption method using a unique encryption key may be used for encryption of the right object. In addition, the public key of the portable storage device 220 may be encrypted and decrypted with the private key of the portable storage device 220 when necessary. Do. In addition, the encryption module 223 may generate a predetermined random number required for the mutual authentication process.

저장 모듈(224)은 콘텐츠 객체들과 권리객체들, 각 권리객체의 상태정보 및 휴대용 저장장치(220)의 인증서와 CRL등 DRM 기능을 수행하는데 필요한 데이터를 저장한다. 저장 모듈(224)에 저장된 권리객체는 다른 디바이스(예컨데 호스트 디바이스(210))로부터 획득한 것일 수 있으며, 휴대용 저장장치(220)의 생산시부터 저장된 것일 수도 있다. 또한 저장모듈(224)는 어플리케이션 구동모듈(225)이 어플리케이션을 구동시키는데 필요한 데이터를 저장할 수도 있다.The storage module 224 stores content objects and rights objects, state information of each rights object, and data necessary for performing DRM functions such as certificates and CRLs of the portable storage device 220. The rights object stored in the storage module 224 may be obtained from another device (eg, the host device 210), or may be stored from the production of the portable storage device 220. In addition, the storage module 224 may store data necessary for the application driving module 225 to drive the application.

어플리케이션 구동모듈(225)은 DRM을 수행하기 위해 필요한 어플리케이션을 구동시킨다. 예컨데 어플리케이션 구동모듈(225)에 의해 구동되는 어플리케이션은 콘텐츠 객체를 실행시키기 위해 소비된 권리객체의 상태정보를 갱신하거나, 특정 권리객체가 갖는 상태정보를 추출하는 등의 기능을 수행할 수 있다. The application driving module 225 drives an application required to perform the DRM. For example, an application driven by the application driving module 225 may perform a function such as updating state information of a rights object consumed to execute a content object, or extracting state information of a specific rights object.

이러한 어플리케이션 구동모듈(225)은 하나 이상의 어플리케이션을 동시에 구동시킴으로써 휴대용 저장장치(220)가 다양한 기능을 수행하도록 할 수 있다. 또한 휴대용 저장장치(220)는 하나 이상의 어플리케이션 구동모듈(225)을 포함할 수도 있다. The application driving module 225 may simultaneously drive one or more applications to allow the portable storage device 220 to perform various functions. In addition, the portable storage device 220 may include one or more application driving modules 225.

도 9는 본 발명의 일 실시예에 따른 호스트 디바이스의 동작 과정을 나타낸 흐름도이다. 9 is a flowchart illustrating an operation process of a host device according to an embodiment of the present invention.

최초 휴대용 저장장치(220)와 연결된 호스트 디바이스(210)의 어플리케이션 구동모듈(215)은 DRM 기능을 수행하기 위한 소정의 어플리케이션을 구동시킨다(S110). The application driving module 215 of the host device 210 connected to the first portable storage device 220 drives a predetermined application to perform a DRM function (S110).

구동된 어플리케이션이 휴대용 저장장치(220)와의 데이터 송수신을 요청하면(S120), 제어모듈(212)은 쓰기명령을 인터페이스 모듈(211)을 통해 쓰기명령 및 그에 따른 데이터를 전송시킨다(S130).When the driven application requests data transmission / reception with the portable storage device 220 (S120), the control module 212 transmits a write command through the interface module 211 and a corresponding data (S130).

어플리케이션의 요청이 데이터 송신 요청인 경우 쓰기명령을 통해 송신되는 데이터는 어플리케이션이 요청한 데이터이며, 어플리케이션의 요청이 데이터 수신 요청인 경우 쓰기명령을 통해 송신되는 데이터는 널 값으로 채워진 데이터일 수 있다.When the request of the application is a data transmission request, the data transmitted through the write command is data requested by the application. When the request of the application is a data reception request, the data transmitted through the write command may be data filled with a null value.

쓰기명령 출력 후 동일 어플리케이션의 다른 데이터 송수신 요청이 있거나, 어플리케이션 구동모듈(215)에 의해 구동되는 다른 어플리케이션의 데이터 송수신 요청이 있는 경우, 제어모듈(212)은 해당 요청에 따른 쓰기명령의 출력을 대기시킨다(S150). 이러한 요청이 없는 경우 제어모듈(212)은 읽기명령 출력 단계(S160)의 과정을 수행한다. When there is another data transmission / reception request of the same application after outputting the write command, or when there is a data transmission / reception request of another application driven by the application driving module 215, the control module 212 waits for the output of the write command according to the request. Let (S150). If there is no such request, the control module 212 performs the process of outputting a read command (S160).

쓰기명령 출력 후 제어모듈(212)은 출력된 쓰기명령과 쌍을 이루는 읽기명령을 출력하고 휴대용 저장장치(220)로부터 데이터를 수신하게 된다(S160). After outputting the write command, the control module 212 outputs a read command paired with the outputted write command and receives data from the portable storage device 220 (S160).

어플리케이션의 요청(S120)이 데이터 송신 요청이었던 경우 읽기명령을 통해 수신되는 데이터는 쓰기명령을 통해 전송한 데이터가 정상적으로 전송되었는지의 여부에 관한 데이터일 수 있다. 또한 어플리케이션의 요청(S120)이 데이터 수신 요청이었던 경우 읽기명령을 통해 수신되는 데이터는 수신 요청된 데이터일 수 있다.When the request S120 of the application is a data transmission request, the data received through the read command may be data regarding whether the data transmitted through the write command is normally transmitted. In addition, when the request (S120) of the application was a data reception request, the data received through the read command may be data requested to be received.

그 후 컨트롤 신호의 출력을 대기시켜 두었던 경우에는 단계 S130 이하의 과정을 다시 수행할 수 있다. After that, if the output of the control signal is made standby, the process of step S130 or less can be performed again.

도 10은 본 발명의 일 실시예에 따른 휴대용 저장장치의 동작 과정을 나타낸 흐름도이다. 10 is a flowchart illustrating an operation process of a portable storage device according to an embodiment of the present invention.

최초 호스트 디바이스(210)와 연결된 휴대용 저장장치(220)의 어플리케이션 구동모듈(225)은 DRM 기능을 수행하기 위한 소정의 어플리케이션을 구동시킨다(S210).The application driving module 225 of the portable storage device 220 connected to the host device 210 initially drives a predetermined application for performing a DRM function (S210).

호스트 디바이스(210)와의 동작에 따라 휴대용 저장장치(220)는 호스트 디바이스(210)로부터 쓰기명령 및 데이터를 수신하게 된다(S220, S230). 제어모듈(222)은 수신된 데이터를 저장모듈(224)에 저장시키거나, 어플리케이션 구동모듈(225)에 의해 구동되는 어플리케이션이 처리할 수 있도록 한다. According to an operation with the host device 210, the portable storage device 220 receives a write command and data from the host device 210 (S220 and S230). The control module 222 stores the received data in the storage module 224 or allows an application driven by the application driving module 225 to process it.

한편 제어모듈(222)은 쓰기명령이 수신되면 그 후 읽기명령이 수신될 것을 기대하게 된다. 따라서 컨트롤 신호가 수신되면(S240) 제어모듈(222)은 수신된 컨트롤 신호가 읽기명령인지의 여부를 판단하게 된다(S250). Meanwhile, the control module 222 expects to receive a read command after receiving a write command. Therefore, when the control signal is received (S240), the control module 222 determines whether the received control signal is a read command (S250).

만약 수신된 컨트롤 신호가 쓰기명령인 경우 제어모듈(222)은 호스트 디바이스(210)와의 통신을 중단시킬 수 있다(S270). 즉 제어모듈(222)은 연속적으로 입력된 쓰기명령에 따른 데이터 수신을 제한하며, 경우에 따라서는 읽기명령이 연속적으로 입력되는 경우에도 호스트 디바이스(210)와의 통신을 중단시킬 수 있다.If the received control signal is a write command, the control module 222 may stop communication with the host device 210 (S270). That is, the control module 222 restricts data reception according to the continuously inputted write command, and in some cases, may stop communication with the host device 210 even when the read command is continuously input.

한편 읽기명령이 수신된 경우 제어모듈(222)은 저장모듈(224)에 저장된 데이터 또는 어플리케이션 구동모듈(225)에 의해 구동되는 어플리케이션이 처리한 데이터를 인터페이스모듈(221)을 통해 호스트 디바이스로 전송시키도록 한다(S260). Meanwhile, when a read command is received, the control module 222 transmits data stored in the storage module 224 or data processed by an application driven by the application driving module 225 to the host device through the interface module 221. (S260).

이상과 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이 해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention belongs may be embodied in other specific forms without changing the technical spirit or essential features of the present invention. You can understand that there is. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive.

상기한 바와 같은 본 발명의 호스트 디바이스, 휴대용 저장장치 및 이들 간의 통신 방법에 따르면 호스트 디바이스와 휴대용 저장장치 간의 통신에 보안을 강화할 수 있다. According to the host device, the portable storage device and the communication method of the present invention as described above, it is possible to enhance security in the communication between the host device and the portable storage device.

Claims (12)

하나 이상의 어플리케이션을 구동시키는 어플리케이션 구동모듈; An application driving module for driving one or more applications; 상기 어플리케이션 구동모듈에 의해 구동되는 어플리케이션의 데이터 송수신 요청에 따라 데이터의 송신을 제어하는 쓰기명령과 상기 쓰기명령에 대응하며 데이터의 수신을 제어하는 읽기명령을 포함하는 컨트롤 신호를 출력하는 제어모듈; 및A control module for outputting a control signal including a write command for controlling transmission of data and a read command corresponding to the write command and controlling reception of data according to a data transmission / reception request of an application driven by the application driving module; And 휴대용 저장장치와 연결되어 상기 제어모듈로부터 출력되는 컨트롤 신호의 송신 및 상기 데이터 송수신을 수행하는 인터페이스 모듈을 포함하는 호스트 디바이스.And an interface module connected to a portable storage device to transmit a control signal and to transmit and receive the data output from the control module. 제 1항에 있어서, 상기 어플리케이션 구동모듈에 의하여 구동되는 제1 어플리케이션의 데이터 송신 요청에 따라서 제1 쓰기명령이 출력된 후 상기 어플리케이션 구동모듈에 의해 구동되는 제2 어플리케이션의 데이터 송신 요청이 입력되는 경우, 상기 제어모듈은 상기 제1 쓰기명령에 대응하는 제1 읽기명령을 출력한 후에 상기 제2 어플리케이션의 데이터 송신 요청에 따른 제2 쓰기명령을 출력하는 호스트 디바이스.The data transmission request of the second application driven by the application driving module is input after the first write command is output according to the data transmission request of the first application driven by the application driving module. And the control module outputs a second write command according to a data transmission request of the second application after outputting a first read command corresponding to the first write command. 제 1항에 있어서, 상기 쓰기명령이 출력된 후 상기 어플리케이션의 다른 데이터 송신 요청이 입력되는 경우, 상기 제어모듈은 상기 출력된 쓰기명령과 대응되는 상기 읽기명령을 출력한 후에 상기 다른 데이터 송신 요청에 따른 쓰기명령을 출력하는 호스트 디바이스.2. The method of claim 1, wherein when another data transmission request of the application is input after the write command is output, the control module outputs the read command corresponding to the outputted write command to the other data transmission request. Host device that outputs a write command accordingly. 호스트 디바이스와 연결되어 컨트롤 신호의 수신 및 데이터 송수신을 수행하는 인터페이스 모듈;An interface module connected to the host device to receive control signals and transmit and receive data; 상기 호스트 디바이스로부터 수신된 데이터를 저장하는 저장모듈; 및A storage module for storing data received from the host device; And 상기 수신되는 컨트롤 신호가 연속하여 입력된 쓰기명령인 경우 상기 호스트 디바이스와의 통신을 중단시키는 제어모듈을 포함하는 휴대용 저장장치.And a control module to stop communication with the host device when the received control signal is a continuously inputted write command. 삭제delete 제 4항에 있어서, 상기 수신되는 컨트롤 신호가 연속하여 입력된 읽기명령인 경우, 상기 제어모듈은 상기 호스트 디바이스와의 통신을 중단시키는 휴대용 저장장치.The portable storage device of claim 4, wherein the control module stops communication with the host device when the received control signal is a continuously input read command. 휴대용 저장장치와 상호인증 과정을 거쳐서 통신 세션을 형성하는 단계;Establishing a communication session through a mutual authentication process with the portable storage device; 하나 이상의 어플리케이션을 구동시키는 단계; Running one or more applications; 상기 구동되는 어플리케이션의 데이터 송수신 요청에 따라서 데이터의 송신을 제어하는 쓰기명령과 상기 쓰기명령에 대응하며 데이터의 수신을 제어하는 읽기명령을 포함하는 컨트롤 신호를 출력하는 단계; 및Outputting a control signal including a write command for controlling data transmission and a read command corresponding to the write command and controlling reception of data according to a data transmission / reception request of the driven application; And 상기 출력된 컨트롤 신호를 상기 휴대용 저장장치에게 전송하는 단계를 포함하는 호스트 디바이스와 휴대용 저장장치 간의 통신 방법.And transmitting the output control signal to the portable storage device. 제 7항에 있어서, 상기 구동시키는 단계는 제1 어플리케이션과 제2 어플리케이션을 구동시키는 단계를 포함하고, 상기 출력하는 단계는 상기 제1 어플리케이션의 데이터 송신 요청에 따라서 제1 쓰기명령이 출력된 후 상기 제2 어플리케이션의 데이터 송신 요청이 입력되는 경우, 상기 제1 쓰기명령에 대응하는 제1 읽기 명령을 출력한 후에 상기 제2 어플리케이션의 데이터 송신 요청에 따른 제2 쓰기명령을 출력하는 단계를 포함하는 호스트 디바이스와 휴대용 저장장치 간의 통신 방법.8. The method of claim 7, wherein the driving comprises driving the first application and the second application, and the outputting of the first application includes outputting a first write command according to a data transmission request of the first application. Outputting a second write command according to a data transmission request of the second application after outputting a first read command corresponding to the first write command when a data transmission request of a second application is input; A method of communication between a device and portable storage device. 제 7항에 있어서, 상기 출력하는 단계는 상기 쓰기명령이 출력된 후 상기 어플리케이션의 다른 데이터 송신 요청이 입력되는 경우, 상기 출력된 쓰기명령에 대응되는 상기 읽기명령을 출력한 후에 상기 다른 데이터 송신 요청에 따른 쓰기명령을 출력하는 단계를 포함하는 호스트 디바이스와 휴대용 저장장치 간의 통신 방법.8. The method of claim 7, wherein the outputting of the read command comprises outputting the read command corresponding to the output write command when another data transmission request of the application is input after the write command is output. Outputting a write command according to the communication method between the host device and the portable storage device. 호스트 디바이스와 상호인증 과정을 거쳐서 통신 세션을 형성하는 단계;Establishing a communication session through a mutual authentication process with the host device; 상기 호스트 디바이스로부터 컨트롤 신호를 수신하는 단계; 및Receiving a control signal from the host device; And 상기 수신되는 컨트롤 신호가 연속하여 입력된 쓰기명령인 경우 상기 호스트 디바이스와의 통신을 중단시키는 단계를 포함하는 호스트 디바이스와 휴대용 저장장치 간의 통신 방법.And stopping communication with the host device when the received control signal is a continuously inputted write command. 삭제delete 제 10항에 있어서, 상기 수신된 컨트롤 신호가 연속하여 입력된 읽기명령인 경우 상기 호스트 디바이스와의 통신을 중단시키는 단계를 더 포함하는 호스트 디바이스와 휴대용 저장장치 간의 통신 방법.11. The method of claim 10, further comprising stopping communication with the host device when the received control signal is a continuously input read command.
KR1020040078736A 2004-10-04 2004-10-04 Portable storage, host device and method for communication between them KR100664924B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040078736A KR100664924B1 (en) 2004-10-04 2004-10-04 Portable storage, host device and method for communication between them

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040078736A KR100664924B1 (en) 2004-10-04 2004-10-04 Portable storage, host device and method for communication between them

Publications (2)

Publication Number Publication Date
KR20060029879A KR20060029879A (en) 2006-04-07
KR100664924B1 true KR100664924B1 (en) 2007-01-04

Family

ID=37140064

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040078736A KR100664924B1 (en) 2004-10-04 2004-10-04 Portable storage, host device and method for communication between them

Country Status (1)

Country Link
KR (1) KR100664924B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101555241B1 (en) * 2007-08-17 2015-10-07 삼성전자 주식회사 Portable storage device and method for managing resource of the portable storage device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101346734B1 (en) * 2006-05-12 2014-01-03 삼성전자주식회사 Multi certificate revocation list support method and apparatus for digital rights management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101555241B1 (en) * 2007-08-17 2015-10-07 삼성전자 주식회사 Portable storage device and method for managing resource of the portable storage device

Also Published As

Publication number Publication date
KR20060029879A (en) 2006-04-07

Similar Documents

Publication Publication Date Title
KR100608605B1 (en) Method and apparatus for digital rights management
KR101100385B1 (en) Method and apparatus for digital rights management by using certificate revocation list
CA2560570C (en) Authentication between device and portable storage
US8181266B2 (en) Method for moving a rights object between devices and a method and device for using a content object based on the moving method and device
KR101169021B1 (en) Method and Apparatus for sending right object information between device and portable storage
AU2005255327B2 (en) Method and apparatus for digital rights management using certificate revocation list
KR101100391B1 (en) Method for playbacking content using portable storage by digital rights management, and portable storage for the same
KR20050096040A (en) Method for playbacking content using portable storage by digital rights management, and portable storage for the same
US20060155651A1 (en) Device and method for digital rights management
TW201009637A (en) Backing up digital content that is stored in a secured storage device
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
KR101152388B1 (en) Apparatus and method for operating many applications between portable storage device and digital device
KR100664924B1 (en) Portable storage, host device and method for communication between them
KR20110084144A (en) Method and apparatus for sending right object information between device and portable storage
KR20090018566A (en) Portable storage device and method for managing resource of the portable storage device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091001

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee