KR20110013185A - System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method - Google Patents

System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method Download PDF

Info

Publication number
KR20110013185A
KR20110013185A KR1020100029978A KR20100029978A KR20110013185A KR 20110013185 A KR20110013185 A KR 20110013185A KR 1020100029978 A KR1020100029978 A KR 1020100029978A KR 20100029978 A KR20100029978 A KR 20100029978A KR 20110013185 A KR20110013185 A KR 20110013185A
Authority
KR
South Korea
Prior art keywords
code block
content
execution
storage device
target code
Prior art date
Application number
KR1020100029978A
Other languages
Korean (ko)
Other versions
KR101487176B1 (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 에스케이텔레콤 주식회사
Publication of KR20110013185A publication Critical patent/KR20110013185A/en
Application granted granted Critical
Publication of KR101487176B1 publication Critical patent/KR101487176B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4627Rights management associated to the content

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

PURPOSE: An isolating execution based code block providing system for including isolating execution target code block is provided to offer a stable execution environment when isolating execution between a host terminal and a storage device is processed. CONSTITUTION: A second communications interface unit(81) performs communication with a host terminal. The second communications interface part receives a request for establishment of the rights object in which the separation operational objection code block of the executive form contents is included from the host terminal. A DRM(Digital Rights Management) processor(82) receives a request for establishment from the communications interface part. The DRM processing unit extracts the isolating execution code block from the right objects. An isolating execution target code block processor(86) stores the extracted separation operational objection code block to the second storage unit.

Description

분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체{System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method}System for providing code block for separating execution based contents, method approximately and computer recordable medium storing the method}

본 발명은 컨텐츠의 복제 방지 기술에 관한 것으로, 더욱 상세하게는 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행에 필요한 분리 실행 대상 코드 블록을 권리 객체(Right Object; RO)에 포함시켜 저장장치에 제공하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것이다.The present invention relates to a technology for preventing copying of content, and more particularly, to include a separate execution target code block necessary for separating execution between a host terminal and a storage device for executable content in a right object (RO). The present invention relates to a system for providing a code block for content on a separate execution basis, and a method and a computer readable recording medium on which the method is recorded.

일반적으로 호스트 단말은 운영체제 위에 복수의 컨텐츠가 설치된다. 컨텐츠는 디지털 형태로 저장되고 유통되는 디지털 저작물로서, 소프트웨어, 응용프로그램, 멀티미디어 데이터 등을 포함한다. 예컨대 사용자는 호스트 단말에 설치된 각종 컨텐츠를 이용하여 문서편집, 영상편집, 게임 등을 수행할 수 있다.In general, a plurality of contents are installed in a host terminal on an operating system. Content is a digital work that is stored and distributed in digital form and includes software, applications, multimedia data, and the like. For example, the user may perform document editing, image editing, games, etc. using various contents installed in the host terminal.

이와 같은 컨텐츠는, 무료로 사용할 수 있는 컨텐츠도 있지만, 온오프라인에서 유료로 판매되고 있다. 사용자는 필요한 컨텐츠를 구매하고, 구매한 컨텐츠를 호스트 단말에 설치함으로써 사용하게 된다. 컨텐츠는 인증번호를 통한 인증을 통과하게 되면, 호스트 단말에 설치된다. 통상적으로 인증번호는 구매한 컨텐츠와 함께 제공된다.Although such content can be used free of charge, it is sold for a fee online or offline. The user purchases the necessary content and installs the purchased content in the host terminal. When the content passes the authentication through the authentication number, it is installed in the host terminal. Typically, the authentication number is provided with the purchased content.

이와 같은 인증번호를 이용한 인증 방식의 컨텐츠는 해킹에 쉽게 노출되는 문제점을 안고 있다. 즉 해당 프로그램의 인증번호가 해킹되거나, 인증을 우회할 수 있는 코드가 해당 컨텐츠에 추가될 경우, 해당 컨텐츠를 구매하지 않은 사람들도 복제된 컨텐츠를 호스트 단말에 설치하여 무단으로 사용할 수 있다.Content of the authentication method using the authentication number has a problem that is easily exposed to hacking. That is, if the authentication number of the program is hacked or a code that bypasses authentication is added to the content, those who have not purchased the content can install the duplicated content on the host terminal and use it without permission.

이와 같은 컨텐츠의 무단 사용으로 인한 컨텐츠 제공자(content provider; CP)의 피해가 증가하고 있는 실정이다. 컨텐츠의 무단 사용은 컨텐츠 제공자의 컨텐츠의 개발 의욕을 떨어뜨리는 요인으로 작용하고 있다.The damage of the content provider (CP) due to the unauthorized use of such content is increasing. Unauthorized use of the content acts as a factor that lowers the motivation of the content provider to develop the content.

또한 컨텐츠 제공자는 개발한 컨텐츠의 무단 복제를 억제하기 위한 보안 방법에도 주의를 기울어야 하기 때문에, 컨텐츠 개발에 많은 비용이 소요되어 컨텐츠 제공자에게 부담으로 작용하고 있는 실정이다.In addition, the content provider has to pay attention to a security method for suppressing unauthorized copying of the developed content, which is a burden on the content provider due to the high cost of developing the content.

따라서 본 발명의 목적은 컨텐츠의 복제를 억제하기 위해서, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 저장장치로 제공할 수 있는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.Accordingly, an object of the present invention is to provide a storage device with a separate execution target code block that can provide a stable execution environment when the separation between the host terminal and the storage device for the executable content in order to suppress the copying of the content. A system for providing a code block for execution-based content, a method thereof, and a computer-readable recording medium on which the method is recorded.

본 발명의 다른 목적은 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 것을 억제할 수 있는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.Another object of the present invention is a system for providing a code execution block for content based on a separation execution that can suppress the delay of the signal processing speed between the host terminal and the storage device in the process of providing a separate execution target code block to the storage device; The method is to provide a computer readable recording medium having been recorded.

본 발명의 또 다른 목적은 저장장치에 권리 객체를 설치하는 과정에서 분리 실행 대상 코드 블록을 저장장치로 제공할 수 있도록 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.Another object of the present invention is to provide a storage device by including a separate execution target code block in a rights object to provide a separate execution target code block to the storage device in the process of installing the rights object in the storage device. A system for providing a code block for a content, a method thereof, and a computer-readable recording medium on which the method is recorded.

상기 목적을 달성하기 위하여, 본 발명은 호스트 단말 및 저장장치를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템을 제공한다. 호스트 단말은 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체(Right Object; RO)를 통신인터페이스로 연결된 저장장치로 전송한다. 그리고 저장장치는 호스트 단말로부터 권리객체를 수신하고, 수신한 권리객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출하고, 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장한다.In order to achieve the above object, the present invention provides a system for providing a code block for content based on a separate execution including a host terminal and a storage device. The host terminal transmits a right object (RO) including a separate execution target code block of the executable content to a storage device connected through a communication interface. The storage device receives the rights object from the host terminal, extracts a separate execution target code block from the rights object in the process of installing the received rights object, and stores the extracted execution target code block in an execution form.

본 발명은 또한, 데이터베이스부, 송수신부 및 서버제어부를 포함하는 분리 실행 기반의 DRM 서버를 제공한다. 데이터베이스부는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 저장한다. 송수신부는 컨텐츠 분배 서버와 통신을 수행한다. 그리고 서버제어부는 송수신부를 통하여 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하면, 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하고, 생성한 권리 객체를 컨텐츠 분배 서버로 전송한다.The present invention also provides a separate execution based DRM server including a database unit, a transceiver, and a server controller. The database unit stores the separated execution target code block of the executable content. The transceiver performs communication with the content distribution server. When the server controller receives a purchase request for a specific executable content from a content distribution server through a transceiver, the server controller generates a rights object including a code block for executing execution of the executable content, and converts the generated rights object to the content distribution server. send.

본 발명은 또한, 저장부, 통신인터페이스부, DRM 처리부 및 분리 실행 대상 코드 블록 처리부를 포함하는 분리 실행 기반의 저장장치를 제공한다. 통신인터페이스부는 호스트 단말과 통신을 수행하며, 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신한다. DRM 처리부는 통신인터페이스부로부터 설치 요청을 전달받아 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출한다. 그리고 분리 실행 대상 코드 블록은 DRM 처리부로부터 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 저장부에 저장한다.The present invention also provides a separate execution based storage device including a storage unit, a communication interface unit, a DRM processor, and a separate execution target code block processor. The communication interface unit communicates with the host terminal, and receives a request for installation of a rights object including a target block of execution execution of the executable content from the host terminal. The DRM processing unit receives the installation request from the communication interface unit and extracts the separate execution target code block from the rights object in the process of installing the rights object including the execution target separate code block of the executable content. The separated execution target code block receives the separated execution target code block extracted from the DRM processor and stores the separated execution target code block in an execution form.

본 발명에 따른 분리 실행 기반의 저장장치에 있어서, 통신인터페이스부는 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하여 DRM 처리부로 전달한다.In the separate execution based storage device according to the present invention, the communication interface unit receives a right object including a separate execution target code block of executable content from a host terminal and transmits the rights object to the DRM processor.

본 발명은 또한, DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하여 저장하는 저장 단계, DRM 서버가 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하는 수신 단계, DRM 서버가 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하는 생성 단계. DRM 서버가 생성한 권리 객체를 컨텐츠 분배 서버로 전송하는 전송 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.The present invention also provides a storing step in which a DRM server receives and stores a separate execution target code block of executable content from a content registration server, a receiving step in which the DRM server receives a purchase request for specific executable content from a content distribution server, A generating step, wherein the DRM server generates a rights object that includes a separate execution target code block of specific executable content. The present invention provides a method for providing a code block for content on the basis of a separation execution, including a step of transmitting a rights object generated by a DRM server to a content distribution server.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장 단계는, DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 서비스용 컨텐츠를 수신하는 단계, DRM 서버가 수신한 서비스용 컨텐츠를 CEK(Contents Encryption Key)로 암호화한 후 DCF(DRM protected Contents Format)로 포맷팅하여 저장하는 단계를 더 포함할 수 있다.In the method for providing a code execution block for content based on the separation execution according to the present invention, in the storing step, the DRM server receives the service content of the executable content from the content registration server, and the service content received by the DRM server is CEK. And encrypting with a Contents Encryption Key, and formatting and storing the data in a DRM protected contents format (DCF).

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 생성 단계는, DRM 서버가 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록과 CEK을 구매 요청한 사용자의 개인키(private key)로 암호화하여 권리 객체를 생성할 수 있다.In the method for providing a code block for content based on the separated execution according to the present invention, the generating step may be performed by the DRM server encrypting the separated execution target code block of the specific executable content and the private key of the user who requested to purchase the CEK. You can create a rights object.

본 발명은 또한, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 수신 단계, 저장장치가 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출하는 추출 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.The present invention also provides a receiving step of receiving a request for installation of a rights object including an execution target code block of executable content from a host terminal to which a storage device is connected, and detaching from a rights object during a storage device installing a rights object. The present invention provides a method for providing a code block for content based on a separated execution, including an extraction step of extracting an execution target code block and a storage step of storing the separated execution target code block extracted by the storage device in an execution form.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 수신 단계에서, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신할 수 있다.In the method of providing a code block for content based on separation execution according to the present invention, in a receiving step, a right object including a code block to be separated for execution of executable content may be received from a host terminal connected to the storage device.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장 단계는, 저장장치가 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계, 확인 결과 충분한 경우, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장하는 단계를 포함할 수 있다.In the method of providing a code block for content based on the separation execution according to the present invention, the storing step includes checking whether the remaining memory has enough capacity to store the separation execution target code block extracted by the storage device, and when the result of the checking is sufficient, storing The method may include storing the separated execution target code block extracted by the device in a memory in an execution form.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 확인 결과 부족한 경우, 저장장치가 메모리 부족 메시지를 호스트 단말로 전송하는 단계, 저장장치가 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장하는 단계를 더 포함할 수 있다.In the method of providing a code block for content based on the separation execution according to the present invention, if the result of the check is insufficient, the storage device transmits an insufficient memory message to the host terminal. The method may further include securing a memory capacity, and storing the separated execution target code block extracted by the storage device in a memory in an execution form.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 메모리 확보 요청 메시지는 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함할 수 있다.In the method for providing a code block for content based on the separation execution according to the present invention, the memory secure request message may include a delete request message for information stored in a storage device.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 메모리 확보 요청 메시지는 설치할 권리 객체에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지를 포함할 수 있다.In the method for providing a code block for content based on the separation execution according to the present invention, the memory secure request message may include a delete request message of a pre-stored rights object corresponding to the rights object to be installed.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 분리 실행 대상 코드 블록은 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되어 있다.In the method for providing a code block for content based on the separation execution according to the present invention, the separation execution target code block is converted into a storage code block that can be executed in the storage.

본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다.In the method for providing a code block for content based on the separation execution according to the present invention, when the storage device is based on the Java Card Platform, the separation execution target code block is a Java Byte code block or an ARM code block. Is converted.

그리고 본 발명은 또한, 전술된 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공한다.The present invention also provides a computer-readable recording medium on which the above-described method for providing a code block for content based on separation execution is recorded.

따라서 본 발명에 따르면, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공할 수 있다.Therefore, according to the present invention, a separate execution target code block that can provide a stable execution environment when a separate execution between a host terminal and a storage device for executable content can be included in a rights object and provided as a storage device.

그리고 권리 객체에 포함되어 제공된 분리 실행 대상 코드 블록은 해당 권리 객체를 설치하는 과정에서 분리되어 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다. 즉 권리 객체에 포함되어 제공되는 분리 실행 대상 코드 블록은 프로그램 형태가 아닌 바이너리 코드 형태로 저장장치에 제공되기 때문에, 분리 실행 대상 코드 블록을 메모리에 저장하는 과정에서 속도 지연이나 부하가 발생되는 것을 억제할 수 있다.In addition, since the separated execution target code block included in the rights object can be separated and stored in the form of execution in the process of installing the corresponding rights object, the host terminal and the storage in the process of providing the separated execution target code block to the storage device. The problem that the signal processing speed between devices is delayed can be suppressed. In other words, since the separate execution target code block included in the rights object is provided to the storage device in the form of binary code instead of the program type, the speed delay or load is prevented in the process of storing the separate execution target code block in the memory. can do.

도 1은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템을 포함하는 디지털 저작권 관리(digital rights management; DRM) 시스템을 보여주는 블록도이다.
도 2는 실행형 컨텐츠의 데이터 구조를 보여주는 블록도이다.
도 3은 실행형 컨텐츠에서 분할된 분리 실행 대상 코드 블록과, 서비스용 컨텐츠의 구성을 보여주는 블록도이다.
도 4는 도 1의 DRM 서버의 구성을 보여주는 블록도이다.
도 5는 도 1의 컨텐츠 분배 서버의 구성을 보여주는 블록도이다.
도 6은 도 1의 호스트 단말의 구성을 보여주는 블록도이다.
도 7은 도 1의 저장장치의 구성을 보여주는 블록도이다.
도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 따른 흐름도이다.
도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.
1 is a block diagram illustrating a digital rights management (DRM) system including a system for providing a code block for content based on a separation execution according to an embodiment of the present invention.
2 is a block diagram showing a data structure of executable content.
3 is a block diagram illustrating a configuration of a separated execution target code block divided from executable content and content for a service.
4 is a block diagram illustrating a configuration of the DRM server of FIG. 1.
FIG. 5 is a block diagram illustrating a configuration of a content distribution server of FIG. 1.
6 is a block diagram illustrating a configuration of a host terminal of FIG. 1.
FIG. 7 is a block diagram illustrating a configuration of the storage device of FIG. 1.
8 is a flowchart illustrating a method for providing a code block for content based on a separation execution according to an embodiment of the present invention.
FIG. 9 is a detailed flowchart illustrating a step of storing the separated execution target code block of FIG. 8.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명하자고 한다. 여기서 실행형 컨텐츠는 프로세서를 구비한 호스트 단말 또는 저장장치에서 실행할 수 있는 컨텐츠로서, 예컨대 응용프로그램, 게임 프로그램, 각종 소프트웨어를 포함할 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Here, the executable content is content that can be executed in a host terminal or a storage device having a processor, and may include, for example, an application program, a game program, and various software.

본 발명의 실시예에 따른 분리 실행 기반의 디지털 저작권 관리(digital rights management; DRM) 시스템(100)은, 도 1 내지 도 3에 도시된 바와 같이, 네트워크(60)를 매개로 연결된 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(20), DRM 서버(40), 컨텐츠 분배 서버(50), 호스트 단말(70)과, 호스트 단말(70)에 통신인터페이스(90)를 매개로 연결된 저장장치(80)를 포함하여 구성된다. 특히 분리 실행 기반의 DRM 시스템(100)은 분리 실행 대상 코드 블록(34)을 권리 객체(42)를 이용하여 저장장치(80)에 제공하는 코드 블록 제공 시스템을 포함한다. 코드 블록 제공 시스템은 호스트 단말(70) 및 저장장치(80)를 포함하여 구성된다.Digital rights management (DRM) system 100 based on separation execution according to an embodiment of the present invention, as shown in Figures 1 to 3, the content providing terminal (connected via a network 60) ( 10), the content registration server 20, the DRM server 40, the content distribution server 50, the host terminal 70 and the storage device 80 connected to the host terminal 70 via a communication interface 90 as a medium. It is configured to include. In particular, the separate execution based DRM system 100 includes a code block providing system for providing a separate execution target code block 34 to the storage device 80 using the rights object 42. The code block providing system includes a host terminal 70 and a storage device 80.

여기서 '분리 실행'은 실행형 컨텐츠(30)를 실행하는 데 있어서 호스트 단말(70)과 저장장치(80)가 서로 연동되어 실행하는 것을 의미한다. 특히 분리 실행을 구현하기 위해서, 원본 실행형 컨텐츠(30)의 코드 영역(31)에서 분리된 일부 코드 블록(이하 '분리 실행 대상 코드 블록(34)'이라 함)은 저장장치(80)에 설치되고, 분리 실행 대상 코드 블록(34)이 제거된 컨텐츠(이하 '서비스용 컨텐츠(32)'라 함)는 호스트 단말(70)에 설치된다. 따라서 분리 실행 기반의 실행형 컨텐츠(30)를 실행하고자 할 경우에, 호스트 단말(70)은 서비스용 컨텐츠(32) 실행 중 분리 실행 대상 코드 블록(34)이 제거된 부분에 대한 출력값을 저장장치(80)에 요청하여 반환받는 형태로 해당 실행형 컨텐츠(30)를 실행한다. 이때 분리 실행 대상 코드 블록(34)은 저장장치(80)에서 사용되는 코드 블록으로 변환되어 저장장치(80)에 제공될 수 있다.In this case, the "separate execution" means that the host terminal 70 and the storage device 80 interoperate with each other to execute the executable content 30. In particular, in order to implement separate execution, some code blocks separated from the code area 31 of the original executable content 30 (hereinafter referred to as 'separated execution target code block 34') are installed in the storage device 80. The content from which the separation execution target code block 34 has been removed (hereinafter, referred to as 'service content 32') is installed in the host terminal 70. Accordingly, when the execution content 30 based on the separation execution is to be executed, the host terminal 70 stores an output value for a portion in which the separation execution target code block 34 is removed during the execution of the service content 32. The executable content 30 is executed in a form of requesting and returning to the 80. In this case, the separated execution target code block 34 may be converted into a code block used in the storage device 80 and provided to the storage device 80.

네트워크(60)는 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(20), DRM 서버(40), 컨텐츠 분배 서버(50) 및 호스트 단말(70) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 네트워크(60)는 IP를 통하여 대용량 데이터의 송수신 서비스 및 끊김없는 데이터 서비스를 제공하는 IP망으로, IP를 기반으로 서로 다른 망을 통합한 IP망 구조인 ALL-IP망일 수 있다. 또한 네트워크(60)는 유선통신망, 이동통신망, WiBro(Wireless Broadband)망, HSDPA(High-Speed Downlink Packet Access)망, 위성통신망 또는 기타 널리 공지되었거나 향후 개발될 유무선 또는 이들의 결합망을 포함한다.The network 60 transmits and receives a series of data transmission / reception operations for data transmission and information exchange between the content providing terminal 10, the content registration server 20, the DRM server 40, the content distribution server 50, and the host terminal 70. Do this. The network 60 is an IP network providing a large data transmission / reception service and a seamless data service through IP, and may be an ALL-IP network, which is an IP network structure integrating different networks based on IP. In addition, the network 60 includes a wired communication network, a mobile communication network, a wireless broadband network (WiBro), a high-speed downlink packet access (HSDPA) network, a satellite communication network, or other well-known or future-developed wired or wireless networks or a combination thereof.

컨텐츠 제공 단말(10)은 컨텐츠 제공자가 운용하는 단말로서, 네트워크(60)를 통하여 컨텐츠 등록 서버(20)와 통신을 수행하고, 컨텐츠 제공자가 개발한 실행형 컨텐츠(30)를 저장한다.The content providing terminal 10 is a terminal operated by a content provider. The content providing terminal 10 communicates with the content registration server 20 through the network 60 and stores the executable content 30 developed by the content provider.

컨텐츠 등록 서버(20)는 네트워크(60)를 매개로 컨텐츠 제공 단말(10) 및 DRM 서버(40)와 통신을 수행한다. 컨텐츠 등록 서버(20)는 네트워크(60)를 통한 컨텐츠 제공자의 요청에 따라 컨텐츠 제공 단말(10)로부터 실행형 컨텐츠(30)를 수신하여 등록한다. 이때 컨텐츠 등록 서버(20)는 실행형 컨텐츠(30)를 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)으로 분리하여 등록한다. 이때 실행형 컨텐츠(30)의 분리는 컨텐츠 제공 단말(10)에서 수행될 수도 있고, 컨텐츠 등록 서버(20)에서 수행될 수도 있다.The content registration server 20 communicates with the content providing terminal 10 and the DRM server 40 via the network 60. The content registration server 20 receives and registers the executable content 30 from the content providing terminal 10 at the request of the content provider through the network 60. At this time, the content registration server 20 separately registers the executable content 30 into the service content 32 and the separate execution target code block 34. In this case, separation of the executable content 30 may be performed by the content providing terminal 10 or may be performed by the content registration server 20.

DRM 서버(40)는 네트워크(60)를 통하여 컨텐츠 등록 서버(20) 및 컨텐츠 분배 서버(50)와 통신을 수행한다. DRM 서버(40)는 컨텐츠 등록 서버(20)로부터 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. DRM 서버(40)는 컨텐츠 분배 서버(50)를 통한 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청에 따라 필요한 정보, 예컨대 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송한다. 즉 DRM 서버(40)는 서비스용 컨텐츠(32)를 CEK(Contents Encryption Key)로 암호화하고, DCF(DRM protected Contents Format)로 포맷팅하여 저장한다. 사용자의 구매 요청이 있는 경우, DRM 서버(40)는 해당 실행형 컨텐츠(30)의 DCF를 컨텐츠 분배 서버(50)로 전송하고, 사용자 개인키(private key)로 CEK를 암호화하여 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 특히 DRM 서버(40)는 분리 실행 대상 코드 블록(34)을 포함하는 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)에 제공할 수 있다. 즉 DRM 서버(40)는 분리 실행 대상 코드 블록(34)과 CEK를 구매 요청한 사용자의 개인키로 암호화하여 권리 객체(42)를 생성한다.The DRM server 40 communicates with the content registration server 20 and the content distribution server 50 through the network 60. The DRM server 40 applies the DRM to the service content 32 and the separated execution target code block 34 received from the content registration server 20. The DRM server 40 is required information according to a user's purchase request for the specific executable content 30 through the content distribution server 50, for example, the service content 32 to which DRM has been applied, and the target block of execution code 34 ) And the rights object 42 to the content distribution server 50. That is, the DRM server 40 encrypts the service content 32 with a Contents Encryption Key (CEK), and formats and stores the content in the DRM protected Contents Format (DCF). When the user requests a purchase, the DRM server 40 transmits the DCF of the executable content 30 to the content distribution server 50, encrypts the CEK with the user private key, and entitles the rights object 42. ) Is generated and transmitted to the content distribution server 50. In particular, the DRM server 40 may generate the right object 42 including the separate execution target code block 34 and provide it to the content distribution server 50. That is, the DRM server 40 encrypts the separate execution target code block 34 and the CEK with the private key of the user who requested the purchase to generate the rights object 42.

컨텐츠 분배 서버(50)는 네트워크(60)를 통하여 DRM 서버(40) 및 호스트 단말(70)과 통신을 수행한다. 컨텐츠 분배 서버(50)는 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청을 DRM 서버(40)로 전달하고, 해당 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 DRM 서버(40)로부터 수신한다. 이때 분리 실행 대상 코드 블록(34)은 권리 객체(42)에 포함된 형태로 제공될 수 있다.The content distribution server 50 communicates with the DRM server 40 and the host terminal 70 through the network 60. The content distribution server 50 transmits the user's purchase request for the specific executable content 30 to the DRM server 40, and separates the contents for the service 32 to which the DRM is applied to the corresponding executable content 30. The execution target code block 34 and the rights object 42 are received from the DRM server 40. In this case, the separation execution target code block 34 may be provided in a form included in the rights object 42.

통신인터페이스(90)는 서로 근접한 호스트 단말(70)과 저장장치(80) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 통신인터페이스(90)는 USB, USB2, Serial/Parallel Port, Ethernet, TCP/IP, 통신 케이블 등을 이용한 유선 통신망과, 근거리 무선통신망을 포함할 수 있다. 근거리 무선통신 방식으로는 블루투스(Bluetooth), 지그비(zigbee), 루비(Rubee), 적외선데이터통신(IrDA; Infrared Data Association), 초광대역방식(UWB; Ultra Wide Broadband) 등이 사용될 수 있다.The communication interface 90 performs a series of data transmission / reception operations for data transmission and information exchange between the host terminal 70 and the storage device 80 in close proximity to each other. The communication interface 90 may include a wired communication network using a USB, a USB2, a serial / parallel port, an Ethernet, a TCP / IP, a communication cable, and a short range wireless communication network. Bluetooth, Zigbee, Ruby, Infrared Data Association (IrDA), Ultra Wide Broadband (UWB), and the like may be used as a short range wireless communication method.

호스트 단말(70)은 네트워크(60)를 매개로 컨텐츠 분배 서버(50)와 통신을 수행하고, 통신인터페이스(90)를 매개로 저장장치(80)와 통신을 수행한다. 호스트 단말(70)은 사용자의 선택 신호에 따른 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 컨텐츠 분배 서버(50)로 전달한다. 호스트 단말(70)은 컨텐츠 분배 서버(50)로부터 구매한 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)을 수신한다. 호스트 단말(70)은 수신한 정보 중 서비스용 컨텐츠(32)를 자신에게 설치한다. 호스트 단말(70)은 수신한 정보 중 권리 객체(42)는 저장장치(80)로 전달한다. 이때 호스트 단말(70)은 실행형 컨텐츠(30)의 실행이 가능한 독립된 CPU를 가진 컴퓨팅 장치, 예컨대 PC, 노트북, 워크스테이션 등을 통칭한다. 호스트 단말(70)은 다수의 사용자들에 의해 접근이 자유로운 공용 컴퓨터를 포함할 수 있다.The host terminal 70 communicates with the content distribution server 50 through the network 60, and communicates with the storage device 80 through the communication interface 90. The host terminal 70 receives a purchase request for the specific executable content 30 according to a user's selection signal and transmits it to the content distribution server 50. The host terminal 70 receives the service content 32 and the rights object 42 to which the DRM is applied to the executable content 30 purchased from the content distribution server 50. The host terminal 70 installs the service contents 32 among the received information. The host terminal 70 transmits the rights object 42 among the received information to the storage device 80. In this case, the host terminal 70 collectively refers to a computing device having an independent CPU capable of executing the executable content 30, such as a PC, a notebook, a workstation, and the like. The host terminal 70 may include a public computer that is accessible by a plurality of users.

그리고 저장장치(80)는 통신인터페이스(90)를 매개로 호스트 단말(70)에 연결되며, 저장장치(80)의 구동에 필요한 저장장치용 프로그램(52)과, 호스트 단말(70)에 설치된 서비스용 컨텐츠(32)에 대한 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 저장한다. 저장장치(80)는 실행형 컨텐츠(30) 실행시 호스트 단말(70)의 요청에 따라 분리 실행 대상 코드 블록(34)에 대한 연산을 수행하여 출력값을 호스트 단말(70)로 반환한다. 특히 저장장치(80)는 분리 실행 대상 코드 블록(34)을 권리 객체(42)에 포함된 형태로 제공받는 경우, 권리 객체(42)를 설치할 때 해당 분리 실행 대상 코드 블록(34)을 추출하여 메모리에 저장한다. 이때 저장장치(80)는 프로세서를 구비한 저장장치로서, USB 메모리, 플래시 메모리 카드, 이에 상응하는 각종 이동식, 휴대식 저장매체(예컨대, SD(Secure Digital) 메모리 카드, microSD 메모리 카드, ISO 7816 표준의 저장장치 등)를 통칭한다.In addition, the storage device 80 is connected to the host terminal 70 through the communication interface 90, the storage device program 52 required for driving the storage device 80, and the service installed in the host terminal 70. The separate execution target code block 34 and the rights object 42 for the application content 32 are stored. The storage device 80 performs an operation on the separate execution target code block 34 at the request of the host terminal 70 when the executable content 30 is executed, and returns an output value to the host terminal 70. In particular, when the separation device 80 is provided with the separation object code block 34 included in the right object 42, the separation device 80 extracts the separation object code block 34 when the right object 42 is installed Store in memory. At this time, the storage device 80 is a storage device having a processor. The storage device 80 is a USB memory, a flash memory card, and various removable and portable storage media (e.g., Secure Digital (SD) memory card, microSD memory card, ISO 7816 standard). Storage device, etc.).

이와 같이 호스트 단말(70)에 통신인터페이스(90)를 매개로 저장장치(80)가 연결된 상태에서, 사용자가 호스트 단말(70)의 입력부, 예컨대 키보드, 마우스, 터치패드 등을 통하여 실행형 컨텐츠(30)의 실행을 요청하면, 호스트 단말(70)은 서비스용 컨텐츠(32)에 대한 실행을 시작한다. 호스트 단말(70)은 서비스용 컨텐츠(32)에 없는 코드에 대한 실행 요청을 저장장치(80)로 전달한다. 그리고 저장장치(80)는 실행 요청에 대응하는 분리 실행 대상 코드 블록(34)을 실행한 후 출력값을 호스트 단말(70)로 전달한다.As described above, while the storage device 80 is connected to the host terminal 70 via the communication interface 90, the user executes the executable content (eg, a keyboard, a mouse, a touch pad, etc.) through the input unit of the host terminal 70. When requesting to execute 30), the host terminal 70 starts to execute the content 32 for the service. The host terminal 70 transmits an execution request for code not included in the service content 32 to the storage device 80. The storage device 80 executes the separate execution target code block 34 corresponding to the execution request and then transfers the output value to the host terminal 70.

특히 본 발명에 따른 코드 블록 제공 시스템은 통신인터페이스(90)를 매개로 연결된 호스트 단말(70) 및 저장장치(80)를 포함하여 구성되며, 컨텐츠 분배 서버(50)를 더 포함하여 구성될 수 있다.In particular, the code block providing system according to the present invention includes a host terminal 70 and a storage device 80 connected through a communication interface 90, and may further include a content distribution server 50. .

컨텐츠 분배 서버(50)는 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 DRM 서버(40)로부터 수신하여 호스트 단말(70)로 전달한다.The content distribution server 50 receives the rights object 42 including the separated execution target code block 34 from the DRM server 40 and transmits the rights object 42 to the host terminal 70.

호스트 단말(70)은 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 컨텐츠 분배 서버(50)로부터 수신한다. 호스트 단말(70)은 해당 권리 객체(52)를 통신인터페이스(90)로 연결된 저장장치(80)로 전송한다.The host terminal 70 receives the rights object 42 including the separate execution target code block 34 from the content distribution server 50. The host terminal 70 transmits the rights object 52 to the storage device 80 connected to the communication interface 90.

그리고 저장장치(80)는 호스트 단말(70)로부터 권리 객체(42)를 수신한다. 저장장치(80)는 수신한 권리 객체(42)를 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출한다. 그리고 저장장치(80)는 추출된 분리 실행 대상 코드 블록(34)을 메모리에 저장한다. 이때 저장장치(80)는 추출된 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장할 수 있다.The storage device 80 receives the rights object 42 from the host terminal 70. The storage device 80 extracts the separate execution target code block 34 from the rights object 42 in the process of installing the received rights object 42. The storage device 80 stores the extracted execution target code block 34 in the memory. In this case, the storage device 80 may store the extracted separate execution target code block 34 in a memory in an execution form.

이와 같이 본 실시예에 따른 코드 블록 제공 시스템은 실행형 컨텐츠(30)에 대한 호스트 단말(70)과 저장장치(80) 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록(34)을 권리 객체(42)에 포함시켜 저장장치(80)로 제공할 수 있다.As described above, the code block providing system according to the present exemplary embodiment may provide a separate execution target code block 34 that may provide a stable execution environment in a separate execution between the host terminal 70 and the storage device 80 for the executable content 30. ) May be included in the rights object 42 and provided to the storage device 80.

그리고 권리 객체(42)에 포함되어 제공된 분리 실행 대상 코드 블록(34)은 해당 권리 객체(42)를 설치하는 과정에서 추출하여 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록(34)을 저장장치(80)로 제공하는 과정에서 호스트 단말(70) 및 저장장치(80) 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.Since the separation execution target code block 34 provided in the right object 42 can be extracted in the process of installing the right object 42 and stored in the execution form in the memory, In the process of providing the storage device 80, the problem of delayed signal processing speed between the host terminal 70 and the storage device 80 can be suppressed.

이와 같은 본 실시예에 따른 코드 블록 제공 시스템에 대해서 구체적으로 설명하기에 앞서 분리 실행 기반의 실행형 컨텐츠(30)에 대해서 도 1 내지 도 3을 참조하여 설명하면 다음과 같다.Before describing the code block providing system according to the present embodiment in detail, the execution content 30 based on the separation execution will be described with reference to FIGS. 1 to 3.

실행형 컨텐츠(30)는 복수 개의 파일, 예컨대 운영체제에서 제공하는 API(application program interface), 개발사에서 제공하는 API 또는 DLL(dynamic linking library)과 같은 파일을 포함한다. 이와 같은 복수의 파일을 포함하는 실행형 컨텐츠(30)는, 도 2에 도시된 바와 같이, 코드 영역(31)과 데이터 영역(33)으로 구분할 수 있다. 코드 영역(31)은 복수의 코드 블록을 포함하며, 분리 실행 대상 코드 블록(34)은 코드 영역(31)에서 추출된 복수의 코드 블록을 포함한다. 예컨대 분리 실행 대상 코드 블록(34)은 복수의 베이식 블록 그룹(37; basic block group)을 포함하며, 베이식 블록 그룹(37)은 복수의 베이식 블록(35; basic block)의 모임이다.The executable content 30 includes a plurality of files, for example, an application program interface (API) provided by an operating system, an API provided by a developer, or a file such as a dynamic linking library (DLL). As shown in FIG. 2, the executable content 30 including the plurality of files may be divided into a code area 31 and a data area 33. The code region 31 includes a plurality of code blocks, and the separation target code block 34 includes a plurality of code blocks extracted from the code region 31. For example, the separated execution target code block 34 includes a plurality of basic block groups 37, and the basic block groups 37 are a collection of a plurality of basic blocks 35.

이때 베이식 블록(35)은 단일 입력(single input) 및 단일 출력(single output)의 속성을 갖는 명령어의 열(sequence of instruction)로서, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 코드 블록으로 정의할 수 있다. 즉 베이식 블록(35)은 항상 시작부터 끝까지 한번에 실행되는 연속적인 문장(코드의 모임)을 의미하며, 중간에 흐름 제어로 인해 실행이 중지되지 않는 문장 그룹이다.In this case, the basic block 35 is a sequence of instructions having attributes of a single input and a single output, and is a code block having an attribute that does not allow entry from the outside to the inside. Can be defined That is, the basic block 35 means a series of sentences (groups of codes) that are always executed once from the beginning to the end, and is a group of statements in which execution is not stopped due to flow control in the middle.

서비스용 컨텐츠(32)는 분리 실행 대상 코드 블록(34)으로 추출된 베이식 블록 그룹(37)의 코드 영역에 스터브 코드(36)가 삽입된 코드 영역(31a)과, 데이터 영역(33)을 포함한다. 이때 스터브 코드(36)는 호스트 단말(70)과 저장장치(80) 간에 실행형 컨텐츠(30)에 대한 분리 실행을 수행할 때, 서비스 컨텐츠(32)에서 추출된 코드 영역과, 추출된 코드 영역에 해당하는 분리 실행 대상 코드 블록(34)을 연결한다. 즉 스터브 코드(36)는 실행형 컨텐츠(30)에 대한 분리 실행을 수행할 때, 추출된 코드 영역에서 저장장치(80)로 제어 신호를 전달한다. 제어 신호를 수신한 저장장치(80)는 제어 신호에 해당하는 분리 실행 대상 코드 블록(34)에 대한 연산을 수행하여 산출한 출력값을 호스트 단말(70)로 반환한다.The service content 32 includes a code area 31a in which a stub code 36 is inserted into a code area of a basic block group 37 extracted as a separate execution target code block 34, and a data area 33. do. In this case, when the stub code 36 separates and executes the executable content 30 between the host terminal 70 and the storage device 80, the stub code 36 is extracted from the service content 32 and the extracted code region. Connect the separate execution target code block 34 corresponding to. That is, the stub code 36 transmits a control signal to the storage device 80 in the extracted code area when performing the separate execution on the executable content 30. The storage device 80 receiving the control signal returns an output value calculated by performing an operation on the separate execution target code block 34 corresponding to the control signal to the host terminal 70.

분리 실행 대상 코드 블록(34)은 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(30)의 코드 영역(31)에서 추출된 복수의 베이식 블록 그룹(37)을 포함한다. 즉 분리 실행 대상 코드 블록(34)은 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(30)의 코드 영역(31)에서 선정된 베이식 블록 그룹(37)으로, 선정된 베이식 블록 그룹(37)들 중에서 적어도 하나가 분리 실행 대상 코드 블록(34)으로 추출될 수 있다. 분리 실행 대상 코드 블록(34)이 추출된 부분에는 스터브 코드(36)가 삽입된다. 후술되겠지만 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여, 실행형 컨텐츠(30)는 분리 실행 대상 코드 블록(34)과, 분리 실행 대상 코드 블록(34)이 추출된 서비스용 컨텐츠(32)로 분할된다.The separate execution target code block 34 includes a plurality of basic block groups 37 extracted from the code area 31 of the executable content 30 through profiling and analysis of the executable content 30. That is, the separated execution target code block 34 is a basic block group 37 selected in the code area 31 of the executable content 30 through profiling and analysis of the executable content 30. At least one of the block groups 37 may be extracted as the separate execution target code block 34. The stub code 36 is inserted into the part where the separation execution target code block 34 is extracted. As will be described later, through the profiling and analysis of the executable content 30, the executable content 30 includes a separate execution target code block 34 and a content for service 32 from which the separate execution target code block 34 is extracted. Is divided into

분리 실행 대상 코드 블록(34)은 저장장치용 코드 블록으로 변환되어 저장장치(80)에 저장된 형태로 제공되거나 다운로드 형태로 저장장치(80)에 제공될 수 있다. 분리 실행 대상 코드 블록(34)은 전술된 바와 같이 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)이다. 분리 실행 대상 코드 블록(34)은 분리 실행 대상 코드 블록(34)의 시작점(entry point)을 통한 제어 신호의 진입 및 베이식 블록(35) 간의 제어 신호의 이동은 허용하지만, 분리 실행 대상 코드 블록(34)의 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)으로 선택하는 것이 바람직하다.The separate execution target code block 34 may be converted into a code block for a storage device and provided in a form stored in the storage device 80 or provided in a download form in the storage device 80. The separate execution target code block 34 is a basic block group 37 including a plurality of basic blocks 35 as described above. The split execution target code block 34 allows the entry of the control signal through the entry point of the split execution target code block 34 and the movement of the control signal between the basic block 35, but the split execution target code block ( It is preferable to select a basic block group 37 including a plurality of basic blocks 35 which are related to each other without entry of a control signal to the basic block 35 except for the start point of 34.

이유는 베이식 블록 그룹(37) 중에서 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(37)을 분리 실행 대상 코드 블록(34)으로 추출할 경우, 해당 분리 실행 대상 코드 블록(34)을 추출한 후 삽입되는 스터브 코드(36)에 시작 부분이 아닌 중간으로 제어 신호가 진입할 수 있다. 이 경우 스터브 코드(36)는 해당 제어 신호에 대한 처리를 수행하지 못하여 해당 실행형 컨텐츠(30)의 실행이 중지되거나 에러가 발생될 수 있기 때문이다. 즉 스터브 코드(36)은 첫 5Byte를 제외한 나머지 영역에는 NOP(no-operation instruction)와 같은 쓰레기 값이 들어 있기 때문에, 쓰레기 값이 들어 있는 영역으로 제어 신호가 진입할 경우 에러가 발생될 수 있다. 바꾸어 말하면, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(37)은 분리 실행을 수행할 때, 오류를 발생시킬 수 있는 확률이 높기 때문에, 분리 실행 대상 코드 블록(34)으로는 적합하지 않다.The reason is that when the basic block group 37 having the entry of the control signal to the basic block 35 except for the starting point from the basic block group 37 is extracted as the separate execution target code block 34, the corresponding execution target code After the block 34 is extracted, a control signal may enter the middle of the stub code 36 to be inserted and not to the beginning. In this case, the stub code 36 may not process the control signal, and thus the execution of the executable content 30 may be stopped or an error may be generated. That is, since the stub code 36 has a garbage value such as a no-operation instruction (NOP) in the remaining areas except for the first 5 bytes, an error may occur when the control signal enters the garbage containing area. In other words, since the basic block group 37 having the entry of the control signal to the basic block 35 except for the starting point has a high probability of generating an error when performing the separate execution, the separated execution target code block ( 34) is not suitable.

본 실시예에 따른 코드 블록 제공 시스템의 DRM 서버(40)는, 도 1 내지 도 4에 도시된 바와 같이, 제1 송수신부(41), 제1 데이터베이스부(43) 및 제1 서버제어부(45)를 포함하여 구성된다.As shown in FIGS. 1 to 4, the DRM server 40 of the code block providing system according to the present embodiment includes a first transceiver 41, a first database 43, and a first server controller 45. It is configured to include).

제1 송수신부(41)는 네트워크(60)를 통하여 컨텐츠 등록 서버(20) 및 컨텐츠 분배 서버(50)와 통신을 수행한다. 제1 송수신부(41)는 컨텐츠 등록 서버(20)로부터 분리 실행 대상 코드 블록(34) 및 서비스용 컨텐츠(32)를 수신한다. 제1 송수신부(41)는 컨텐츠 분배 서버(50)로 DRM이 적용된 서비스용 컨텐츠(32) 및 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 전송한다.The first transceiver 41 communicates with the content registration server 20 and the content distribution server 50 through the network 60. The first transceiver 41 receives the separation execution target code block 34 and the service content 32 from the content registration server 20. The first transmitter / receiver 41 transmits to the content distribution server 50 the rights object 42 including the service content 32 to which the DRM is applied and the separation execution target code block 34.

제1 데이터베이스부(43)는 서비스용 컨텐츠(32) 및 분리 실행 대상 코드 블록(34)을 저장한다. 이때 서비스용 컨텐츠(32)는 DCF 형태로 변환되어 제1 데이터베이스부(43)에 저장될 수 있다.The first database unit 43 stores the service content 32 and the separation execution target code block 34. In this case, the service content 32 may be converted into a DCF form and stored in the first database unit 43.

분리 실행 대상 코드 블록(34)은 호스트 단말(70)에서 실행되는 실행형 컨텐츠(30)에서 추출된 코드 블록이다. 예컨대 분리 실행 대상 코드 블록(34)은 x86 또는 x64용 실행형 컨텐츠(30)의 코드 영역(31)에서 추출된 코드 블록일 수 있다. 따라서 분리 실행 대상 코드 블록(34)은 저장장치(80)에 사용될 수 있는 코드 형식으로 변환된다. 예컨대 저장장치(80)가 스마트카드인 경우, 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환된다. 분리 실행 대상 코드 블록(34)은 권리 객체 또는 애플릿(applet)에 포함되어 스마트카드에 제공될 수 있다. 본 실시예에서는 분리 실행 대상 코드 블록(34)이 권리 객체(42)에 포함되어 제공되는 예를 개시하였다.The separated execution target code block 34 is a code block extracted from the executable content 30 executed in the host terminal 70. For example, the separated execution target code block 34 may be a code block extracted from the code area 31 of the executable content 30 for x86 or x64. Thus, the separate execution target code block 34 is converted into a code format that can be used for the storage device 80. For example, when the storage device 80 is a smart card, the separate execution target code block 34 is converted into a Java Byte code block or an ARM code block. The separate execution target code block 34 may be included in a rights object or applet and provided to the smart card. In this embodiment, an example in which the separate execution target code block 34 is included in the rights object 42 is provided.

그리고 제1 서버제어부(45)는 DRM 서버(40)의 전반적인 제어 동작을 수행한다. 즉 제1 서버제어부(45)는 컨텐츠 등록 서버(20)로부터 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. 제1 서버제어부(45)는 서비스용 컨텐츠(32)를 CEK로 암호화하고, DCF로 포맷팅하여 제1 데이터베이스부(43)에 저장할 수 있다. 제1 서버제어부(45)는 컨텐츠 분배 서버(50)를 통한 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청에 따라 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송할 수 있다. 이때 DRM 서버(40)는 사용자 개인키로 CEK를 암호화하여 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 특히 제1 서버제어부(45)는 분리 실행 대상 코드 블록(34)을 포함하는 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 즉 제1 서버제어부(45)는 분리 실행 대상 코드 블록(34)과 CEK를 구매 요청한 사용자의 개인키로 암호화하여 권리 객체(42)를 생성한다. 이때 생성된 권리 객체(42)는 인스톨(install) 또는 갱신(update)용 권리 객체이다.The first server controller 45 performs an overall control operation of the DRM server 40. That is, the first server controller 45 applies the DRM to the service content 32 and the separation target code block 34 received from the content registration server 20. The first server controller 45 may encrypt the service content 32 with the CEK, format the DCF with the DCF, and store the same in the first database unit 43. The first server controller 45 is a service content 32, a separate execution target code block 34 to which DRM is applied, according to a user's request for purchase of specific executable content 30 through the content distribution server 50, and The rights object 42 may be transmitted to the content distribution server 50. At this time, the DRM server 40 encrypts the CEK with the user's private key, generates the rights object 42, and transmits the rights object 42 to the content distribution server 50. In particular, the first server controller 45 generates the rights object 42 including the separation execution target code block 34 and transmits the generated content object to the content distribution server 50. That is, the first server controller 45 encrypts the separate execution target code block 34 and the CEK with the private key of the user who requested the purchase to generate the rights object 42. The generated rights object 42 is a rights object for installation or update.

본 실시예에 따른 코드 블록 제공 시스템의 컨텐츠 분배 서버(50)는, 도 1 내지 도 3, 도 5에 도시된 바와 같이, 제2 송수신부(51), 제2 데이터베이스부(53) 및 제2 서버제어부(55)를 포함하여 구성된다.As shown in FIGS. 1 to 3 and 5, the content distribution server 50 of the code block providing system according to the present embodiment includes a second transceiver 51, a second database 53, and a second It is configured to include a server control unit 55.

제2 송수신부(51)는 네트워크(60)를 통하여 DRM 서버(40) 및 호스트 단말(70)과 통신을 수행한다. 제2 송수신부(51)는 제2 서버제어부(55)의 제어에 따라 호스트 단말(70)로부터 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 DRM 서버(40)로 전달한다. 제2 송수신부(51)는 제2 서버제어부(55)의 제어에 따라 DRM 서버(40)로부터 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 수신하여 호스트 단말(70)로 전달한다. 특히 제2 송수신부(51)는 DRM 서버(40)로부터 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)을 수신하여 호스트 단말(70)로 전달한다.The second transceiver 51 communicates with the DRM server 40 and the host terminal 70 through the network 60. The second transceiver 51 receives the purchase request for the specific executable content 30 from the host terminal 70 under the control of the second server controller 55 and transmits it to the DRM server 40. The second transceiver 51 receives the service content 32 and the rights object 42 to which the DRM is applied from the DRM server 40 under the control of the second server controller 55, and delivers the same to the host terminal 70. do. In particular, the second transceiver 51 receives the rights object 42 including the separate execution target code block 34 from the DRM server 40 and transmits the rights object 42 to the host terminal 70.

제2 데이터베이스부(53)는 호스트 단말(70)로 전달하기 위한 서비스용 컨텐츠(32) 및 권리 객체(42)를 저장할 수 있다.The second database unit 53 may store the service content 32 and the right object 42 for delivery to the host terminal 70.

그리고 제2 서버제어부(55)는 컨텐츠 분배 서버(50)의 전반적인 제어 동작을 수행한다. 즉 제2 서버제어부(55)는 제2 송수신부(51)를 통하여 호스트 단말(70)로부터 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 DRM 서버(40)로 전달한다. 그리고 제2 서버제어부(55)는 제2 송수신부(51)를 통하여 해당 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 수신하여 호스트 단말(70)로 전달한다.In addition, the second server controller 55 performs an overall control operation of the content distribution server 50. That is, the second server controller 55 receives a purchase request for the user's specific executable content 30 from the host terminal 70 through the second transceiver 51 and transmits the request to the DRM server 40. In addition, the second server controller 55 receives the service content 32 and the rights object 42 to which the DRM is applied to the executable content 30 through the second transceiver 51, and receives the host terminal 70. To pass.

본 실시예에 따른 코드 블록 제공 시스템의 호스트 단말(70)은, 도 1 내지 도 3, 도 6에 도시된 바와 같이, 통신부(71), 입력부(73), 제1 저장부(75), 제1 통신인터페이스부(77), 표시부(78) 및 제1 제어부(79)를 포함하여 구성된다.As shown in FIGS. 1 to 3 and 6, the host terminal 70 of the code block providing system according to the present embodiment includes a communication unit 71, an input unit 73, a first storage unit 75, and a first storage unit 75. 1 is configured to include a communication interface 77, a display 78 and the first control unit (79).

통신부(71)는 네트워크(60)를 통하여 컨텐츠 분배 서버(50)와 통신을 수행한다. 통신부(71)는 제1 제어부(79)의 제어에 따라 특정 실행형 컨텐츠(30)의 구매 요청을 컨텐츠 분배 서버(50)로 전송한다. 통신부(71)는 컨텐츠 분배 서버(50)로부터 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 수신하여 제1 제어부(79)로 전달한다.The communication unit 71 communicates with the content distribution server 50 through the network 60. The communication unit 71 transmits a purchase request of the specific executable content 30 to the content distribution server 50 under the control of the first control unit 79. The communication unit 71 receives the service content 32 and the rights object 42 to which the DRM is applied from the content distribution server 50, and transmits the received content 32 to the first control unit 79.

입력부(73)는 호스트 단말(70)의 조작을 위한 복수의 키를 제공하며, 사용자의 키선택에 따른 선택 신호를 발생하여 제1 제어부(79)로 전달한다. 사용자는 입력부(73)를 통해 실행형 컨텐츠(30)의 구매를 요청하고, 구매한 실행형 컨텐츠(30)의 권리 객체(42) 및 분리 실행 대상 코드 블록(34)을 저장장치(80)에 설치할 것을 요청하는 선택 신호를 입력할 수 있다. 이때 입력부(73)로는 키패드, 터치패드와 같은 포인팅 장치, 터치스크린(touch screen) 등의 입력장치가 사용될 수 있다.The input unit 73 provides a plurality of keys for the operation of the host terminal 70, and generates and transmits a selection signal according to a user's key selection to the first control unit 79. The user requests the purchase of the executable content 30 through the input unit 73, and stores the rights object 42 and the separated execution target code block 34 of the purchased executable content 30 to the storage device 80. You can enter a selection signal to request installation. In this case, the input unit 73 may be a keypad, a pointing device such as a touch pad, or an input device such as a touch screen.

제1 저장부(75)는 호스트 단말(70)의 동작 제어시 필요한 프로그램과, 그 프로그램 수행 중에 발생되는 정보를 저장한다. 제1 저장부(75)는 분리 실행 기반의 실행형 컨텐츠(30)를 설치하기 위한 실행프로그램을 저장한다. 특히 제1 저장부(75)는 컨텐츠 분배 서버(50)로부터 수신한 서비스용 컨텐츠(32)를 저장한다.The first storage unit 75 stores a program necessary for controlling the operation of the host terminal 70 and information generated while executing the program. The first storage unit 75 stores an execution program for installing the execution content 30 based on the separation execution. In particular, the first storage unit 75 stores the service content 32 received from the content distribution server 50.

제1 통신인터페이스부(77)는 통신인터페이스(90)를 통한 저장장치(80)와 통신을 수행한다. 제1 통신인터페이스부(77)는 제1 제어부(79)의 제어에 따라 권리 객체(42를 저장장치(80)로 전송한다. 제1 통신인터페이스부(77)는 제1 제어부(79)의 제어에 따라 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하기 위한 CEK를 저장장치(80)로 요청하여 수신한다. 그리고 제1 통신인터페이스부(77)는 분리 실행 기반의 컨텐츠 실행 시 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)의 연결을 매개한다.The first communication interface unit 77 communicates with the storage device 80 through the communication interface 90. The first communication interface unit 77 transmits the rights object 42 to the storage device 80 under the control of the first control unit 79. The first communication interface unit 77 controls the first control unit 79. According to the request to receive the CEK for decrypting the service content 32 to which the DRM is applied to the storage device 80. And the first communication interface unit 77 is the content for the service 32 when executing the content based on the separation execution ) And the connection execution target code block 34.

표시부(78)는 호스트 단말(70)에서 실행되는 각종 기능 메뉴를 비롯하여 제1 저장부(75)에 저장된 정보를 표시할 수 있다. 표시부(78)는 분리 실행 기반의 실행형 컨텐츠(30) 설치에 필요한 정보를 표시할 수 있다. 예컨대 표시부(78)는 권리 객체(42)의 설치 여부를 질의하는 메시지를 표시할 수 있다. 표시부(78)는 권리 객체(42) 설치 중 저장장치(80)로부터 수신한 메모리 부족 메시지를 표시할 수 있다. 이때 표시부(78)로는 LCD(Liquid Crystal Display)나 터치 스크린이 사용될 수 있다. 터치 스크린은 표시 장치와 입력 장치로서의 역할을 동시에 수행한다.The display unit 78 may display information stored in the first storage unit 75 including various function menus executed in the host terminal 70. The display unit 78 may display information necessary for installing the executable content 30 based on the separation execution. For example, the display unit 78 may display a message inquiring whether the rights object 42 is installed. The display unit 78 may display an insufficient memory message received from the storage device 80 during installation of the rights object 42. In this case, a liquid crystal display (LCD) or a touch screen may be used as the display unit 78. The touch screen simultaneously serves as a display device and an input device.

그리고 제1 제어부(79)는 호스트 단말(70)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 특히 제1 제어부(79)는 분리 실행 기반의 실행형 컨텐츠(30) 설치를 제어한다. 즉 제1 제어부(79)는 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하여 설치한다. 제1 제어부(79)는 권리 객체(42)를 저장장치(80)에 설치한다. 그리고 제1 제어부(79)는 저장장치(80)와 함께 분리 실행 기반의 실행형 컨텐츠(30) 실행을 수행한다.The first controller 79 is a microprocessor that performs overall control operations of the host terminal 70. In particular, the first controller 79 controls the installation of the executable content 30 based on the separation execution. That is, the first control unit 79 decrypts and installs the service content 32 to which the DRM is applied. The first controller 79 installs the rights object 42 in the storage device 80. In addition, the first control unit 79 executes the execution content 30 based on the separation execution together with the storage device 80.

특히 제1 제어부(79)는 사용자가 컨텐츠 분배 서버(50)를 통하여 실행형 컨텐츠(30)를 구매하는 경우, 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 컨텐츠 분배 서버(50)로부터 수신하여 저장장치(80)로 전달한다.In particular, when the user purchases the executable content 30 through the content distribution server 50, the first controller 79 may include the rights object 42 including the separate execution target code block 34. 50 to be transmitted to the storage device 80.

본 실시예에 따른 코드 블록 제공 시스템의 저장장치(80)는, 도 1 내지 도 3, 도 7에 도시된 바와 같이, 제2 통신인터페이스부(81), 제2 저장부(83) 및 제2 제어부(85)를 포함하여 구성된다.As shown in FIGS. 1 to 3 and 7, the storage device 80 of the code block providing system according to the present embodiment includes a second communication interface unit 81, a second storage unit 83, and a second device. The control unit 85 is configured.

제2 통신인터페이스부(81)는 통신인터페이스(90)를 매개로 호스트 단말(70)에 접속되어 호스트 단말(70)과 통신을 수행한다. 제2 통신인터페이스부(81)는 호스트 단말(70)로부터 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)의 설치 요청을 수신하여 제2 제어부(85)로 전달한다. 제2 통신인터페이스부(81)는 호스트 단말(70)로부터 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 수신하여 제2 제어부(85)로 전달한다.The second communication interface unit 81 is connected to the host terminal 70 through the communication interface 90 to communicate with the host terminal 70. The second communication interface unit 81 receives a request for installation of the rights object 42 including the separate execution target code block 34 from the host terminal 70 and transmits the request to the second control unit 85. The second communication interface unit 81 receives the right object 42 including the separate execution target code block 34 from the host terminal 70 and transmits the rights object 42 to the second control unit 85.

제2 저장부(83)는 저장장치(80)의 동작 제어시 필요한 프로그램과, 그 프로그램 수행 중에 발생되는 정보를 저장한다. 제2 저장부(83)는 수신한 권리 객체(42)를 설치하고, 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출하여 실행 형태로 저장하는 실행프로그램을 저장한다. 제2 저장부(83)는 저장장치용 프로그램(52)을 저장장치(80)에 설치하는 실행프로그램을 저장한다. 제2 저장부(83)는 권리 객체(42), 저장장치용 프로그램(52) 및 분리 실행 대상 코드 블록(34)을 저장한다. 이때 분리 실행 대상 코드 블록(34)은 실행 형태로 노아(NOR) 메모리에 저장되고, 권리 객체(42)는 낸드(NAND) 메모리에 저장될 수 있다.The second storage unit 83 stores a program necessary for controlling the operation of the storage device 80 and information generated while executing the program. The second storage unit 83 installs the received rights object 42, extracts the separated execution target code block 34 from the rights object 42 including the separated execution target code block 34, and executes the execution. Save the executable program you are saving. The second storage unit 83 stores an execution program for installing the storage device program 52 in the storage device 80. The second storage unit 83 stores the rights object 42, the storage program 52, and the separate execution target code block 34. In this case, the separated execution target code block 34 may be stored in the NOR memory in an execution form, and the right object 42 may be stored in the NAND memory.

그리고 제2 제어부(85)는 저장장치(80)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 제2 제어부(85)는 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출하여 실행 형태로 제2 저장부(83)에 저장하는 것을 제어한다.The second controller 85 is a microprocessor that performs overall control operations of the storage device 80. The second control unit 85 controls to extract the separated execution target code block 34 from the rights object 42 including the separated execution target code block 34 and to store the separated execution target code block 34 in the second storage unit 83 in an execution form. do.

제2 제어부(83)는 DRM 처리부(82), 저장장치용 프로그램 처리부(84) 및 분리 실행 대상 코드 블록 처리부(86)를 포함하여 구성된다.The second control unit 83 includes a DRM processing unit 82, a storage program processing unit 84, and a separate execution target code block processing unit 86.

DRM 처리부(82)는 호스트 단말(70)로부터 권리 객체(42)를 전달받아 제2 저장부(83)에 저장한다. DRM 처리부(82)는 호스트 단말(70)의 요청에 따라 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하기 위한 권리 객체(42)에서 CEK를 복호화하여 호스트 단말(70)에 전달한다. 또한 DRM 처리부(82)는 사용자의 개인키를 설치하는 역할도 수행한다. 개인키의 설치는 저장장치(80) 구입 후 최초에만 수행되며, 이후 개인키가 갱신될 경우 저장장치(80)에 저장된 모든 권리 객체(42)는 무효화될 수 있다. 특히 DRM 처리부(82)는 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다.The DRM processor 82 receives the rights object 42 from the host terminal 70 and stores the rights object 42 in the second storage unit 83. The DRM processor 82 decrypts the CEK in the rights object 42 for decrypting the service content 32 to which the DRM is applied, and transmits the CEK to the host terminal 70 at the request of the host terminal 70. In addition, the DRM processor 82 also serves to install a user's private key. Installation of the private key is performed only the first time after the storage device 80 is purchased. If the private key is subsequently updated, all rights objects 42 stored in the storage device 80 may be invalidated. The DRM processing unit 82 extracts the separation execution object block 34 from the right object 42 in the process of installing the right object 42 including the separation execution object code block 34 and outputs the separation execution object block 34 to the separation execution object code block processing unit 42. [ Forward to 86.

저장장치용 프로그램 처리부(84)는 저장장치용 프로그램(52)의 설치를 제어한다. 예컨대, 저장장치(80)가 스마트 카드인 경우, 저장장치용 프로그램 처리부(84)는 자바 카드 플랫폼(Java Card Platform)을 기반으로 구축될 수 있다. 저장장치용 프로그램(52)은 자바 카드 플랫폼에서 사용되는 애플릿이다. 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다. The storage program processing unit 84 controls the installation of the storage program 52. For example, when the storage device 80 is a smart card, the storage program processor 84 may be built on the Java Card Platform. The storage program 52 is an applet used in the Java Card platform. The separated execution target code block 34 is converted into a Java byte code block or an ARM code block.

그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 저장하고, 분리 실행 대상 코드 블록(34)의 실행을 통해 산출한 결과값을 호스트 단말(70)로 반환한다. 즉 DRM 처리부(82)로부터 추출된 분리 실행 대상 코드 블록(34)을 전달받아 실행 형태로 제2 저장부(83)에 저장한다. 이때 분리 실행 대상 코드 블록 처리부(86)는 호스트 단말(70)로부터 특정 분리 실행 대상 코드 블록(34)의 결과값 요청을 수신하면, 해당 분리 실행 대상 코드 블록(34)을 런타임(runtime)에 링크한 후 시작 번지로 점프하여 실행시켜 산출한 결과값을 호스트 단말(70)로 반환한다.The separation execution target code block processing unit 86 stores the separation execution target code block 34 in an execution form, and returns the result value calculated through the execution of the separation execution target code block 34 to the host terminal 70. do. That is, the separated execution target code block 34 extracted from the DRM processor 82 is received and stored in the second storage unit 83 in an execution form. At this time, when the separation execution target code block processing unit 86 receives a request for a result value of the specific separation execution target code block 34 from the host terminal 70, the separation execution target code block 34 is linked to the runtime. After that, the result jumped to the start address and executed is returned to the host terminal 70.

한편 제2 제어부(85)는 다음과 같이 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 수 있다. 저장장치(80)가 호스트 단말(70)에 접속되면, DRM 처리부(82)는 호스트 단말(70)로부터 구매한 실행형 컨텐츠(30)의 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 제2 통신인터페이스부(81)를 통하여 수신한다. DRM 처리부(82)는 수신한 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(52)를 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 전달받은 분리 실행 대상 코드 블록(34)을 실행 형태로 제2 저장부(83)에 저장한다.Meanwhile, the second control unit 85 may store the separation execution target code block 34 in the second storage unit 83 as follows. When the storage device 80 is connected to the host terminal 70, the DRM processing unit 82 reads the rights object (see FIG. 5) including the separation execution target code block 34 of the executable content 30 purchased from the host terminal 70 42) is received through the second communication interface unit 81. The DRM processing unit 82 extracts the separate execution target code block 34 from the rights object 42 in the process of installing the rights object 52 including the received separate execution target code block 34 and separates the execution target code. Transfer to block processing unit 86. The separation execution target code block processor 86 stores the received separation execution target code block 34 in the second storage unit 83 in an execution form.

이때 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 때, 분리 실행 대상 코드 블록(34)을 저장할 만큼 남은 메모리의 용량이 충분한 지의 여부를 확인한다. 확인 결과 충분한 경우, 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.At this time, when the separation execution object code block 34 is stored in the second storage unit 83, the separation execution object code block processing unit 86 determines whether or not the remaining memory capacity enough to store the separation execution object code block 34 is sufficient Check it. If the result of the check is sufficient, the separation execution target code block processing unit 86 stores the separation execution target code block 34 in the form of execution in the memory.

하지만 확인 결과 부족한 경우, 분리 실행 대상 코드 블록 처리부(86)는 메모리 부족 메시지를 제2 통신인터페이스부(81)를 통하여 호스트 단말(70)로 전송한다. 호스트 단말(70)로부터 메모리 확보 요청 메시지를 수신하면, 저장장치용 프로그램 처리부(84)는 부족한 메모리 용량을 확보한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다. 이때 메모리 확보 요청 메시지는 제2 저장부(83)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 권리 객체(42)에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지일 수 있다.However, if the result of the check is insufficient, the separation execution target code block processing unit 86 transmits a memory shortage message to the host terminal 70 through the second communication interface unit 81. When the memory secure request message is received from the host terminal 70, the storage program processor 84 secures insufficient memory capacity. The separation execution target code block processing unit 86 stores the separation execution target code block 34 in an execution form in a memory. In this case, the memory secure request message may be a request message for deleting specific information according to a user's selection signal among information stored in the second storage unit 83. Alternatively, the memory secure request message may be a delete request message of a pre-stored rights object corresponding to the rights object 42 to be installed.

본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 도 1 내지 도 9를 참조하여 설명하면 다음과 같다. 여기서 도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 따른 흐름도이다. 그리고 도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.A method of providing a code block for content based on separation execution according to an embodiment of the present invention will be described with reference to FIGS. 1 to 9. 8 is a flowchart illustrating a method for providing a code block for content based on a separation execution according to an embodiment of the present invention. FIG. 9 is a detailed flowchart illustrating the step of storing the separated execution target code block of FIG. 8.

먼저 S101단계에서 컨텐츠 등록 서버(20)는 등록된 실행형 컨텐츠(30)의 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)을 DRM 서버(40)로 전송한다. DRM 서버(40)는 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. 예컨대 DRM 서버(40)는 서비스용 컨텐츠(32)를 CEK로 암호화하고, DCF로 포맷팅하여 저장한다.First, in step S101, the content registration server 20 transmits the service content 32 and the separated execution target code block 34 of the registered executable content 30 to the DRM server 40. The DRM server 40 applies the DRM to the received service content 32 and the separated execution target code block 34. For example, the DRM server 40 encrypts the service content 32 with CEK, formats the DCF, and stores the content.

한편 S103단계에서 저장장치(80)가 통신인터페이스(90)를 매개로 호스트 단말(70)에 접속된 상태에서, S105단계에서 호스트 단말(70)이 컨텐츠 분배 서버(50)로 특정 실행형 컨텐츠(30)의 구매를 요청한다. 즉 호스트 단말(70)이 네트워크(60)을 통하여 컨텐츠 분배 서버(50)에 접속하면, 컨텐츠 분배 서버(50)는 구매할 수 있는 실행형 컨텐츠(30)의 목록을 호스트 단말(70)로 제공한다. 호스트 단말(70)은 수신한 실행형 컨텐츠(30)의 목록을 화면에 표시하고, 특정 실행형 컨텐츠(30)에 대한 구매 요청이 입력되면, 이를 컨텐츠 분배 서버(50)로 전송한다.In step S103, the storage device 80 is connected to the host terminal 70 via the communication interface 90. In step S105, the host terminal 70 transmits the specific executive content ( 30) to purchase. That is, when the host terminal 70 accesses the content distribution server 50 through the network 60, the content distribution server 50 provides the host terminal 70 with a list of executable content 30 that can be purchased. . The host terminal 70 displays the list of the received executable content 30 on the screen, and if a purchase request for the specific executable content 30 is input, transmits it to the content distribution server 50.

다음으로 S107단계에서 컨텐츠 분배 서버(50)는 특정 실행형 컨텐츠(30)의 구매 요청을 DRM 서버(40)로 전달한다.Next, in step S107, the content distribution server 50 transmits a purchase request of the specific executable content 30 to the DRM server 40.

이어서 S109단계에서 DRM 서버(40)는 구매 요청한 실행형 컨텐츠(30)의 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 생성한다. 이어서 S111단계에서 DRM 서버(40)는 생성한 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송한다. 이때 S109단계에서 DRM 서버(40)는 DRM 서버(40)는 분리 실행 대상 코드 블록(34)과 CEK를 구매 요청한 사용자의 개인키로 암호화하여 권리 객체(42)를 생성한다. S111단계에서 DRM 서버(40)는 생성한 권리 객체(42)과 함께 DRM이 적용된 서비스용 컨텐츠(32)를 컨텐츠 분배 서버(50)로 전송한다Subsequently, in step S109, the DRM server 40 generates a rights object 42 including the separate execution target code block 34 of the executable content 30 requested for purchase. Subsequently, in step S111, the DRM server 40 transmits the generated rights object 42 to the content distribution server 50. At this time, in step S109, the DRM server 40 encrypts the separate execution target code block 34 and the CEK with the private key of the user requesting the purchase to generate the rights object 42. In step S111, the DRM server 40 transmits the content for service 32 to which the DRM is applied, together with the generated rights object 42, to the content distribution server 50.

다음으로 S113단계에서 컨텐츠 분배 서버(50)는 수신한 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 호스트 단말(70)로 전송한다.Next, in step S113, the content distribution server 50 transmits the service content 32 and the rights object 42 to which the received DRM is applied to the host terminal 70.

다음으로 S115단계에서 호스트 단말(70)은 수신한 권리 객체(42)를 저장장치(80)로 전송한다. 한편 호스트 단말(70)은 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)에 대한 설치를 함께 요청할 수 있다.Next, in step S115, the host terminal 70 transmits the received rights object 42 to the storage device 80. Meanwhile, the host terminal 70 may request the installation of the rights object 42 including the separate execution target code block 34 together.

이어서 S117단계에서 저장장치(80)는 수신한 권리 객체(42)를 설치하고, 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출한다(S119). 이때 저장장치(80)는 분리 실행 대상 코드 블록(34)이 분리된 권리 객체(42)를 메모리, 예컨대 낸드 메모리에 저장할 수 있다.Subsequently, in operation S117, the storage device 80 installs the received rights object 42, and extracts a separate execution target code block 34 from the rights object 42 in the installation process (S119). In this case, the storage device 80 may store the rights object 42 from which the separate execution target code block 34 is separated, in a memory, for example, a NAND memory.

그리고 S121단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 메모리, 예컨대 노아 메모리에 저장할 수 있다. 이때 S121단계를 도 9를 참조하여 설명하면 다음과 같다.In operation S121, the storage device 80 may store the extracted execution target code block 34 in a memory, eg, Noah memory. In this case, step S121 will be described with reference to FIG. 9.

먼저 S123단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 저장할 만큼 남은 메모리의 용량이 충분한 지의 여부를 확인한다.First, in operation S123, the storage device 80 checks whether the remaining memory has enough capacity to store the extracted execution target code block 34.

S123단계의 확인 결과 충분한 경우, S131단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.If the result of the check in step S123 is sufficient, in step S131, the storage device 80 stores the extracted execution target code block 34 in the form of execution in the memory.

하지만 S123단계의 확인 결과 부족한 경우, S125단계에서 저장장치(80)는 메모리 부족 메시지를 호스트 단말(70)로 전송한다. 다음으로 S127단계에서 호스트 단말(70)은 메모리 부족 메시지에 응답으로 메모리 확보 요청 메시지를 저장장치(80)로 전송한다. 이때 메모리 확보 요청 메시지는 저장장치(80)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 권리 객체(42)에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지일 수 있다.However, if the result of the check in step S123 is insufficient, the storage device 80 transmits a memory shortage message to the host terminal 70 in step S125. Next, in step S127, the host terminal 70 transmits a memory secure request message to the storage device 80 in response to the memory shortage message. In this case, the memory secure request message may be a request message for deleting specific information according to a user's selection signal among information stored in the storage device 80. Alternatively, the memory secure request message may be a delete request message of a pre-stored rights object corresponding to the rights object 42 to be installed.

다음으로 S129단계에서 저장장치(80)는 수신한 메모리 확보 요청 메시지에 따라 부족한 메모리 용량을 확보한다.Next, in step S129, the storage device 80 secures insufficient memory capacity according to the received memory secure request message.

그리고 S129단계에서 추출한 분리 실행 대상 코드 블록(34)을 저장할 정도로 메모리 용량이 확보되면, S131단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.When the memory capacity is secured to store the separated execution target code block 34 extracted in step S129, the storage device 80 stores the extracted separation execution target code block 34 in the form of execution in step S131.

한편 본 실시예에서는 S103단계에 따른 호스트 단말(70)이 저장장치(80)에 접속된 상태에서 S105단계 내지 S113단계를 수행하는 예를 개시하였지만 이것에 한정되는 것은 아니다. 예컨대 호스트 단말(70)은 저장장치(80)가 접속되지 않은 상태에서, S105단계 내지 S113단계를 수행할 수 있다. 그리고 S113단계 이후에 호스트 단말(70)에 저장장치(80)가 접속되면, 호스트 단말(70)과 저장장치(80)는 연동하여 S115단계 내지 S121단계를 수행할 수 있다.Meanwhile, in the present embodiment, an example in which steps S105 to S113 are performed while the host terminal 70 according to step S103 is connected to the storage device 80 is disclosed, but is not limited thereto. For example, the host terminal 70 may perform steps S105 to S113 while the storage device 80 is not connected. When the storage device 80 is connected to the host terminal 70 after step S113, the host terminal 70 and the storage device 80 may interwork with each other to perform steps S115 to S121.

본 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method for providing a code block for contents based on the separation execution according to the present embodiment may be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer-readable recording medium. The recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the recording medium may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. For example, the recording medium may be magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, or magnetic-optical media such as floptical disks. magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

한편, 본 명세서와 도면에 개시된 실시예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게는 자명한 것이다.On the other hand, the embodiments disclosed in the specification and drawings are merely presented specific examples to aid understanding, and are not intended to limit the scope of the present invention. It is apparent to those skilled in the art that other modifications based on the technical idea of the present invention can be carried out in addition to the embodiments disclosed herein.

본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공하고, 이를 통하여 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.The present invention relates to a system for providing a code block for content based on a separate execution method, a method thereof, and a computer readable recording medium on which the method is recorded. In the process of providing a separation execution object code block to a storage device, the signal processing speed between the host terminal and the storage device is delayed. It can be suppressed.

10 : 컨텐츠 제공 단말 20 : 컨텐츠 등록 서버
30 : 실행형 컨텐츠 32 : 서비스용 컨텐츠
34 : 분리 실행 대상 코드 블록 40 : DRM 서버
42 : 권리 객체 50 : 컨텐츠 분배 서버
52 : 저장장치용 프로그램 60 : 네트워크
70 : 호스트 단말 80 : 저장장치
100 : 분리 실행 기반의 디지털 저작권 관리 시스템
10: content providing terminal 20: content registration server
30: executable content 32: content for services
34: code execution target block 40: DRM server
42: rights object 50: content distribution server
52: program for storage device 60: network
70: host terminal 80: storage device
100: Separate execution based digital rights management system

Claims (16)

실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체(Right Object; RO)를 통신인터페이스로 연결된 저장장치로 전송하는 호스트 단말;
상기 호스트 단말로부터 상기 권리객체를 수신하고, 상기 수신한 권리객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하고, 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장장치;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템.
A host terminal for transmitting a right object (RO) including a separate execution target code block of the executable content to a storage device connected through a communication interface;
The storage device which receives the rights object from the host terminal, extracts the separation execution target code block from the rights object in the process of installing the received rights object, and stores the extracted separation execution code block in an execution form. ;
Separation execution-based code block providing system for a content comprising a.
실행형 컨텐츠의 분리 실행 대상 코드 블록을 저장하는 데이터베이스부;
컨텐츠 분배 서버와 통신을 수행하는 송수신부;
상기 송수신부를 통하여 상기 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하면, 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하고, 상기 생성한 권리 객체를 상기 컨텐츠 분배 서버로 전송하는 서버제어부;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 DRM 서버.
A database unit which stores a separate execution target code block of the executable content;
A transceiver for communicating with a content distribution server;
When the purchase request for a specific executable content is received from the content distribution server through the transmission and reception unit, a rights object including a separate execution target code block of the executable content is generated, and the generated rights object is converted into the content distribution server. Server control unit for transmitting to;
Separation execution based DRM server comprising a.
저장부;
호스트 단말과 통신을 수행하며, 상기 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 통신인터페이스부;
상기 통신인터페이스부로부터 상기 설치 요청을 전달받아 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하는 DRM 처리부;
상기 DRM 처리부로부터 상기 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 상기 저장부에 저장하는 분리 실행 대상 코드 블록 처리부;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 저장장치.
Storage unit;
A communication interface configured to communicate with a host terminal, and receive a request for installation of a rights object including a code execution target block for executing executable content from the host terminal;
A DRM processing unit which receives the installation request from the communication interface unit and extracts the separation execution target code block from the right object in the process of installing the right object including the separation execution target code block of the executable content;
A separate execution target code block processing unit which receives the extracted separation execution target code block from the DRM processing unit and stores the extracted execution target code block in an execution form;
Separate execution based storage device comprising a.
제3항에 있어서,
상기 통신인터페이스부는 상기 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하여 상기 DRM 처리부로 전달하는 것을 특징으로 하는 분리 실행 기반의 저장장치.
The method of claim 3,
The communication interface unit is separated execution based storage device, characterized in that for receiving from the host terminal the rights object containing the target execution code block of the executable content delivered to the DRM processing unit.
DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하여 저장하는 저장 단계;
상기 DRM 서버가 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하는 수신 단계;
상기 DRM 서버가 상기 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하는 생성 단계;
상기 DRM 서버가 상기 생성한 권리 객체를 상기 컨텐츠 분배 서버로 전송하는 전송 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
A storage step of receiving, by the DRM server, a separate execution target code block of the executable content from the content registration server and storing the same;
Receiving, by the DRM server, a purchase request for specific executable content from a content distribution server;
Generating, by the DRM server, a right object including a separate execution target code block of the specific executable content;
A transmission step of transmitting, by the DRM server, the generated rights object to the content distribution server;
Separation execution-based code block providing method for content comprising a.
제5항에 있어서, 상기 저장 단계는,
상기 DRM 서버가 상기 컨텐츠 등록 서버로부터 상기 실행형 컨텐츠의 서비스용 컨텐츠를 수신하는 단계;
상기 DRM 서버가 상기 수신한 서비스용 컨텐츠를 CEK(Contents Encryption Key)로 암호화한 후 DCF(DRM protected Contents Format)로 포맷팅하여 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 5, wherein the storing step,
Receiving, by the DRM server, content for a service of the executable content from the content registration server;
Encrypting, by the DRM server, the received content for a service with a Contents Encryption Key (CEK), and formatting and storing the received content for a DRM protected contents format (DCF);
Method for providing a code block for content based on the separation execution further comprising a.
제5항에 있어서, 상기 생성 단계는,
상기 DRM 서버가 상기 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록과 CEK을 상기 구매 요청한 사용자의 개인키(private key)로 암호화하여 권리 객체를 생성하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 5, wherein the generating step,
The DRM server provides a code execution block for content based on a separate execution function, wherein the DRM server generates a rights object by encrypting a separate execution target code block of the specific executable content and a CEK with a private key of the user who requested the purchase. Way.
분리 실행 기반의 컨텐츠용 코드 블록 제공 방법으로,
저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 수신 단계;
상기 저장장치가 상기 권리 객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하는 추출 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
As a method of providing code blocks for content based on separation execution,
A receiving step of receiving a request for installation of a rights object including a separate execution target code block of executable content from a host terminal to which the storage device is connected;
An extraction step of extracting, by the storage device, the separated execution target code block from the rights object in the process of installing the rights object;
A storage step of storing, by the storage device, the extracted separated execution target code block in an execution form;
Separation execution-based code block providing method for content comprising a.
제8항에 있어서, 상기 수신 단계에서,
상기 저장장치가 접속한 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하는 것을 특징으로 하는 분리 실행 기반의 코드 블록 제공 방법.
The method of claim 8, wherein in the receiving step,
Separating execution-based code block providing method, characterized in that for receiving the right object containing the code execution target block of the executable content from the host terminal connected to the storage device.
제8항에 있어서, 상기 저장 단계는,
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계;
상기 확인 결과 충분한 경우, 상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 8, wherein the storing step,
Confirming, by the storage device, whether there is enough memory remaining to store the extracted separate execution target code block;
If the verification result is sufficient, storing, by the storage device, the extracted separated execution target code block in the memory in an execution form;
Separation execution-based code block providing method for content comprising a.
제10항에 있어서,
상기 확인 결과 부족한 경우, 상기 저장장치가 메모리 부족 메시지를 상기 호스트 단말로 전송하는 단계;
상기 저장장치가 상기 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 10,
If the result of the check is insufficient, the storage device transmitting a memory shortage message to the host terminal;
The storage device receiving a memory secure request message from the host terminal to secure an insufficient memory capacity;
Storing, by the storage device, the extracted separated execution target code block in an execution form in the memory;
Method for providing a code block for content based on the separation execution further comprising a.
제11항에 있어서,
상기 메모리 확보 요청 메시지는 상기 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 11,
And the memory secure request message includes a delete request message for information stored in the storage device.
제11항에 있어서,
상기 메모리 확보 요청 메시지는 설치할 권리 객체에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 11,
And the memory secure request message includes a delete request message for a previously stored rights object corresponding to a rights object to be installed.
제5항에 있어서,
상기 분리 실행 대상 코드 블록은 상기 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되어 있는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 5,
And the separation execution target code block is converted into a storage device code block that can be executed in the storage device.
제8항에 있어서,
상기 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 상기 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
The method of claim 8,
When the storage device is based on a Java Card Platform, the separate execution target code block is converted into a Java Byte code block or an ARM code block. How to Provide.
제8항 내지 제15항 중 어느 한 항에 따른 방법이 기록된 컴퓨터로 판독 가능한 기록매체.A computer-readable recording medium having recorded thereon a method according to any one of claims 8 to 15.
KR20100029978A 2009-07-30 2010-04-01 System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method KR101487176B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20090070229 2009-07-30
KR20090070231 2009-07-30
KR1020090070231 2009-07-30
KR1020090070229 2009-07-30

Publications (2)

Publication Number Publication Date
KR20110013185A true KR20110013185A (en) 2011-02-09
KR101487176B1 KR101487176B1 (en) 2015-02-02

Family

ID=43772986

Family Applications (8)

Application Number Title Priority Date Filing Date
KR1020100029969A KR101432989B1 (en) 2009-07-30 2010-04-01 System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method
KR20100029978A KR101487176B1 (en) 2009-07-30 2010-04-01 System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method
KR1020100030189A KR101504087B1 (en) 2009-07-30 2010-04-02 Web service system and method based on storage device, and storage media recorded program executing web service method
KR1020100030172A KR20110013187A (en) 2009-07-30 2010-04-02 System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof
KR20100030188A KR101487175B1 (en) 2009-07-30 2010-04-02 Host device and Storage device for separating management of RO, method for separating management of RO, and storage media recorded program executing separating RO management
KR1020100031065A KR101544731B1 (en) 2009-07-30 2010-04-05 Storage device capable of separating execution of executable content, and device for configuring native execution environment in storage device
KR1020100031120A KR101374159B1 (en) 2009-07-30 2010-04-05 System and method for managing rights object using storage device, DRM-server and terminal, and recording medium thereof
KR1020100030784A KR101525402B1 (en) 2009-07-30 2010-04-05 Separating execution method of executable contents, device for forming separating execution based executable contents, and storage media recorded separating execution based executable contents

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020100029969A KR101432989B1 (en) 2009-07-30 2010-04-01 System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method

Family Applications After (6)

Application Number Title Priority Date Filing Date
KR1020100030189A KR101504087B1 (en) 2009-07-30 2010-04-02 Web service system and method based on storage device, and storage media recorded program executing web service method
KR1020100030172A KR20110013187A (en) 2009-07-30 2010-04-02 System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof
KR20100030188A KR101487175B1 (en) 2009-07-30 2010-04-02 Host device and Storage device for separating management of RO, method for separating management of RO, and storage media recorded program executing separating RO management
KR1020100031065A KR101544731B1 (en) 2009-07-30 2010-04-05 Storage device capable of separating execution of executable content, and device for configuring native execution environment in storage device
KR1020100031120A KR101374159B1 (en) 2009-07-30 2010-04-05 System and method for managing rights object using storage device, DRM-server and terminal, and recording medium thereof
KR1020100030784A KR101525402B1 (en) 2009-07-30 2010-04-05 Separating execution method of executable contents, device for forming separating execution based executable contents, and storage media recorded separating execution based executable contents

Country Status (1)

Country Link
KR (8) KR101432989B1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101447282B1 (en) * 2012-08-20 2014-10-16 주식회사 네오위즈인터넷 Method, mobile terminal, recording medium, and system for providing mobile payment service
WO2014178618A1 (en) * 2013-04-29 2014-11-06 케이피커뮤니케이션 주식회사 Bidirectional advertisement motion picture matching system and method for operating same
KR102156371B1 (en) 2013-11-27 2020-09-15 한국전자통신연구원 Method for providing embedded software development tools for supporting embedded software development environment based on native building and apparatus thereof
KR102204654B1 (en) * 2014-01-24 2021-01-19 주식회사 넥슨코리아 Method and apparatus for providing content purchased from offline store
KR101671336B1 (en) * 2014-02-27 2016-11-16 (주)스마일게이트엔터테인먼트 Method of unpacking protection with code separation and apparatus thereof
KR102443069B1 (en) 2015-08-12 2022-09-14 삼성전자주식회사 Deveice and method for executing application
CA2993857A1 (en) * 2018-02-02 2019-08-02 Ferguson Technologies Inc. Systems and methods for generating electrical energy
KR102441167B1 (en) * 2018-12-05 2022-09-08 한국전자통신연구원 Apparatus and method for executing function

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002215828A (en) * 2000-11-16 2002-08-02 Yoshinobu Inada Management system and management method of digital literary work
KR100407389B1 (en) * 2001-11-19 2003-11-28 에스케이텔레텍주식회사 Method and Device for providing Resource Alone of Contents Application for Mobile Communication terminal
KR101254209B1 (en) * 2004-03-22 2013-04-23 삼성전자주식회사 Apparatus and method for moving and copying right objects between device and portable storage device
KR101043336B1 (en) * 2004-03-29 2011-06-22 삼성전자주식회사 Method and apparatus for acquiring and removing informations of digital right objects
JP4664055B2 (en) 2004-12-10 2011-04-06 株式会社エヌ・ティ・ティ・ドコモ Program dividing device, program executing device, program dividing method, and program executing method
JP2006172351A (en) 2004-12-20 2006-06-29 Hitachi Ltd Method and system for content expiration date management by use of removable medium
KR100738917B1 (en) 2006-02-14 2007-07-12 에스케이 텔레콤주식회사 Server, method and system for providing encryption contents and rights object to electronic communication device by using delegation schemes of rights issuer server
KR101346734B1 (en) * 2006-05-12 2014-01-03 삼성전자주식회사 Multi certificate revocation list support method and apparatus for digital rights management
KR101314271B1 (en) * 2006-07-25 2013-10-02 엘지전자 주식회사 Digital rights management method and system thereof
KR101354759B1 (en) 2007-01-03 2014-01-22 엘지전자 주식회사 Digital rights management method for terminal
KR100783811B1 (en) 2007-08-28 2007-12-10 주식회사 파수닷컴 Method of digital rights management about a compressed file
KR101689351B1 (en) 2007-12-20 2016-12-23 코닌클리케 필립스 엔.브이. Device and method for digital right management

Also Published As

Publication number Publication date
KR20110013188A (en) 2011-02-09
KR20110013184A (en) 2011-02-09
KR20110013189A (en) 2011-02-09
KR101504087B1 (en) 2015-03-24
KR20110013191A (en) 2011-02-09
KR101432989B1 (en) 2014-08-27
KR20110013192A (en) 2011-02-09
KR101544731B1 (en) 2015-08-17
KR20110013193A (en) 2011-02-09
KR101487175B1 (en) 2015-02-02
KR101374159B1 (en) 2014-03-13
KR20110013187A (en) 2011-02-09
KR101525402B1 (en) 2015-06-08
KR101487176B1 (en) 2015-02-02

Similar Documents

Publication Publication Date Title
KR20110013185A (en) System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method
CN105760716B (en) Digital certificates management
AU2006200154B2 (en) Flexible licensing architecture for licensing digital application
EP2628125B1 (en) Method and apparatus for downloading drm module
US20120090021A1 (en) Platform Specific Application Building
US20140108600A1 (en) Application distribution supplying a dedicated application to a terminal from an application deposited by the developer
CN104680075A (en) Framework for fine-grain access control from high-level application permissions
JP2005159905A (en) Data storing device and communication terminal
CN105976177A (en) NFC (near field communication)-oriented cloud payment method
KR100710005B1 (en) Method and Apparatus for handing over the right of using on using DRM
KR101498919B1 (en) System and method for digital rights management based on storage device, and recording medium thereof
KR101442000B1 (en) Server for registering separating execution based contents, method thereof and computer recordable medium storing program performing the method
KR100859968B1 (en) Method of downloading mobile contents
JP2009252120A (en) Program accounting management device and capsule execution processing device
KR20120002079A (en) System for protecting copyright of application, apparatus and method for protecting copyright of application, and terminal device and method for protecting copyright of application of the terminal device
JP2010218028A (en) Portable terminal and management program
JP4934162B2 (en) Mobile terminal and management program
JP2002229660A (en) System, method and server for managing software distribution, and software usage managing applet and medium recording the same applet
CN116703393A (en) Upgrading method, device and system of hardware wallet
JP2004046448A (en) Delivery data management system and method
KR20060117771A (en) Method and apparatus for playing the contents using drm
KR20060117778A (en) Method and apparatus for providing multi-media contents service using drm
KR20090037108A (en) System and method for charge service of push contents

Legal Events

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

Payment date: 20180122

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee