[go: up one dir, main page]

KR101487176B1 - 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
KR101487176B1
KR101487176B1 KR20100029978A KR20100029978A KR101487176B1 KR 101487176 B1 KR101487176 B1 KR 101487176B1 KR 20100029978 A KR20100029978 A KR 20100029978A KR 20100029978 A KR20100029978 A KR 20100029978A KR 101487176 B1 KR101487176 B1 KR 101487176B1
Authority
KR
South Korea
Prior art keywords
code block
content
execution
storage device
host terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR20100029978A
Other languages
Korean (ko)
Other versions
KR20110013185A (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
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말(host terminal)과 저장장치 간의 분리 실행에 필요한 분리 실행 대상 코드 블록을 저장장치에 안정적으로 제공하기 위한 것이다. 본 발명에 따르면, 실행형 컨텐츠의 분리 실행 대상 코드 블록은 권리 객체에 포함된 형태로 저장장치에 선발급 또는 후발급 형태로 제공된다. 저장장치가 접속한 호스트 단말로부터 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신한다. 저장장치가 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출한다. 그리고 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장한다.[0001] The present invention relates to a system and method for providing a code block for contents based on separation execution, a computer-readable recording medium on which the method is recorded, And to stably provide necessary storage blocks to the storage device. According to the present invention, the code block to be executed separately from the executable content is provided in a form of being included in the rights object in the form of a start-up class or a post-release form in the storage device. From the host terminal connected to the storage device, an installation request of the rights object including the detachment object code block. In the process of installing the right object by the storage device, the separation object code block is extracted from the right object. Then, the separation execution target code block extracted by the storage device is stored in an execution form in the memory.

Figure R1020100029978
Figure R1020100029978

Description

분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체{System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a system and method for providing code blocks for contents based on separation execution, a computer-readable recording medium having recorded thereon a method,

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

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

이와 같은 컨텐츠는, 무료로 사용할 수 있는 컨텐츠도 있지만, 온오프라인에서 유료로 판매되고 있다. 사용자는 필요한 컨텐츠를 구매하고, 구매한 컨텐츠를 호스트 단말에 설치함으로써 사용하게 된다. 컨텐츠는 인증번호를 통한 인증을 통과하게 되면, 호스트 단말에 설치된다. 통상적으로 인증번호는 구매한 컨텐츠와 함께 제공된다.Some of these contents are available for free, but they are sold on-line and off-line for a fee. The user purchases necessary contents and installs the purchased contents in the host terminal. The content is installed in the host terminal when it passes the authentication through the authentication number. The authentication number is usually provided with the purchased content.

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

이와 같은 컨텐츠의 무단 사용으로 인한 컨텐츠 제공자(content provider; CP)의 피해가 증가하고 있는 실정이다. 컨텐츠의 무단 사용은 컨텐츠 제공자의 컨텐츠의 개발 의욕을 떨어뜨리는 요인으로 작용하고 있다.The content provider (CP) is increasingly damaged by unauthorized use of such contents. The unauthorized use of the content is a factor that deteriorates the development intention of the contents provider.

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

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

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

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

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

본 발명은 또한, 데이터베이스부, 송수신부 및 서버제어부를 포함하는 분리 실행 기반의 DRM 서버를 제공한다. 데이터베이스부는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 저장한다. 송수신부는 컨텐츠 분배 서버와 통신을 수행한다. 그리고 서버제어부는 송수신부를 통하여 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하면, 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하고, 생성한 권리 객체를 컨텐츠 분배 서버로 전송한다.The present invention also provides a DRM-based DRM server including a database unit, a transmission / reception unit, and a server control unit. The database unit stores a code block to be executed for executing executable content. The transmission / reception unit communicates with the content distribution server. When the server control unit receives the purchase request for specific executable content from the content distribution server through the transmission / reception unit, the server control unit creates a rights object including a code block to be separated for execution of executable content and transmits the created 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 processing unit, and a separation execution target code block processing unit. The communication interface unit communicates with the host terminal and receives an installation request of the right object including the execution object code block for executing executable content from the host terminal. The DRM processing unit receives the installation request from the communication interface unit and extracts the separation execution object code block from the right object in the process of installing the right object including the separation execution object code block of execution content. The separation execution object code block receives the separation execution object code block extracted from the DRM processing unit and stores it in the storage unit in an execution form.

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

본 발명은 또한, DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하여 저장하는 저장 단계, DRM 서버가 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하는 수신 단계, DRM 서버가 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하는 생성 단계. DRM 서버가 생성한 권리 객체를 컨텐츠 분배 서버로 전송하는 전송 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.The present invention also provides a DRM server comprising: a storing step of receiving and storing a code block for execution execution of executable content from a content registration server; a receiving step of receiving a purchase request for specific executive content from the DRM server; The creation step of the DRM server creating a rights object including a code block to be executed separately for specific executable content. And a transmitting step of transmitting the rights object generated by the DRM server to the content distribution server.

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

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

본 발명은 또한, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 수신 단계, 저장장치가 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출하는 추출 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.The present invention also relates to a receiving step of receiving an installation request of a right object including a code block to be separated from executable content from a host terminal to which the storage device is connected, An extraction step of extracting a code block to be executed, and a storing step of storing a code block to be separated for execution 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 separation execution according to the present invention, the storing step may include: checking whether the capacity of the remaining memory is sufficient to store the code block to be separated, extracted by the storage device; And storing the detachment execution target code block extracted by the device in an execution form in a memory.

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

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

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

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

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

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

따라서 본 발명에 따르면, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공할 수 있다.Therefore, according to the present invention, it is possible to provide a separation object code block capable of providing a stable execution environment in execution of separation between the host terminal and the storage device for the executable contents, into the right object and provide the same to the storage device.

그리고 권리 객체에 포함되어 제공된 분리 실행 대상 코드 블록은 해당 권리 객체를 설치하는 과정에서 분리되어 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다. 즉 권리 객체에 포함되어 제공되는 분리 실행 대상 코드 블록은 프로그램 형태가 아닌 바이너리 코드 형태로 저장장치에 제공되기 때문에, 분리 실행 대상 코드 블록을 메모리에 저장하는 과정에서 속도 지연이나 부하가 발생되는 것을 억제할 수 있다.Since the separation execution target code block included in the right object can be stored separately in the memory in the process of installing the corresponding right object, the process of providing the separation execution target code block to the storage device, The problem of delaying the signal processing speed between the devices can be suppressed. That is, since the separation execution target code block included in the right object is provided to the storage device in the form of a binary code rather than a program type, it is possible to suppress the occurrence of a speed delay or a load in the process of storing the separation execution object 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 code blocks for content based on a separation execution according to an embodiment of the present invention.
2 is a block diagram showing the data structure of executable content.
Fig. 3 is a block diagram showing a configuration of a code block for separation execution and a content for service divided in execution-type content; Fig.
4 is a block diagram illustrating a configuration of the DRM server of FIG.
5 is a block diagram illustrating the configuration of the content distribution server of FIG.
6 is a block diagram showing the configuration of the host terminal of FIG.
FIG. 7 is a block diagram showing the configuration of the storage device of FIG. 1; FIG.
FIG. 8 is a flowchart illustrating a method of providing a code block for content based on separation according to an embodiment of the present invention.
FIG. 9 is a detailed flowchart according to the step of storing the code block for separation execution in FIG.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명하자고 한다. 여기서 실행형 컨텐츠는 프로세서를 구비한 호스트 단말 또는 저장장치에서 실행할 수 있는 컨텐츠로서, 예컨대 응용프로그램, 게임 프로그램, 각종 소프트웨어를 포함할 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Here, the executable content may be content that can be executed by a host terminal or a storage device having a processor, 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)를 포함하여 구성된다.The digital rights management (DRM) system 100 according to the embodiment of the present invention may include a content providing terminal 100 connected via a network 60, 10, a content registration server 20, a DRM server 40, a content distribution server 50, a host terminal 70, and a storage device 80 connected to the host terminal 70 via a communication interface 90, . In particular, the DRM system 100 based on the separation execution includes a code block providing system for providing the separation execution object code block 34 to the storage device 80 using the rights object 42. [ The code block providing system comprises 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)에 제공될 수 있다.Here, 'separate execution' means that the host terminal 70 and the storage device 80 operate in conjunction with each other in executing the executable content 30. [ Particularly, in order to realize separation execution, some code blocks (hereinafter, referred to as 'separation execution subject code blocks 34') separated from the code area 31 of the original executive content 30 are installed in the storage device 80 (Hereinafter referred to as " service content 32 ") from which the separation execution object code block 34 has been removed is installed in the host terminal 70. [ Therefore, when executing the execution-based execution-based content 30, the host terminal 70 stores the output value for the portion from which the separation-target code block 34 is removed during execution of the service content 32, (80), and executes the corresponding executable content (30) in the form of being returned. At this time, the separation 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 includes a series of data transmission and 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 . The network 60 may be an IP network that provides high-capacity data transmission / reception services and seamless data services through IP, and may be an ALL-IP network that is an IP network structure in which different networks are integrated based on IP. Also, the network 60 includes a wired communication network, a mobile communication network, a wireless broadband (WiBro) network, a high-speed downlink packet access (HSDPA) network, a satellite communication network or other well-known or future wired or wireless networks.

컨텐츠 제공 단말(10)은 컨텐츠 제공자가 운용하는 단말로서, 네트워크(60)를 통하여 컨텐츠 등록 서버(20)와 통신을 수행하고, 컨텐츠 제공자가 개발한 실행형 컨텐츠(30)를 저장한다.The content providing terminal 10 communicates with the content registration server 20 via the network 60 as a terminal operated by the content provider 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 executive 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 separates the executable content 30 into the service content 32 and the separation execution target code block 34 and registers them. At this time, the separation of the executive content 30 may be performed in the content providing terminal 10 or in 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 via the network 60. The DRM server 40 applies DRM to the service content 32 and the separation execution object code block 34 received from the content registration server 20. [ The DRM server 40 can acquire necessary information such as service content 32 to which DRM is applied according to a purchase request for the user's specific executive content 30 through the content distribution server 50, And the rights object 42 to the content distribution server 50. [ In other words, the DRM server 40 encrypts the service contents 32 with a content encryption key (CEK), formats the content 32 using a DRM protected content format (DCF), and stores the content. The DRM server 40 transmits the DCF of the executive content 30 to the content distribution server 50 and encrypts the CEK with the user's private key to obtain the rights object 42 And transmits it to the content distribution server 50. In particular, the DRM server 40 may generate the rights object 42 including the separation execution target code block 34 and provide the rights object 42 to the content distribution server 50. That is, the DRM server 40 generates the rights object 42 by encrypting the separation execution object code block 34 and the CEK with the private key of the user who has requested the purchase.

컨텐츠 분배 서버(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 via the network 60. [ The content distribution server 50 delivers the purchase request for the user's specific executive content 30 to the DRM server 40 and extracts the service content 32 to which the DRM is applied for the executable content 30, The execution object code block 34 and the rights object 42 from the DRM server 40. [ At this time, the separation execution object code block 34 may be provided in a form contained 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 which are close 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), and Ultra Wide Broadband (UWB) may be used as the 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 via the network 60 and communicates with the storage device 80 via the communication interface 90. [ The host terminal 70 receives the purchase request for the specific executive content 30 according to the user's selection signal and transmits the purchase request to the content distribution server 50. The host terminal 70 receives the service content 32 and the rights object 42 to which DRM is applied for the executive content 30 purchased from the content distribution server 50. [ The host terminal 70 installs the service content 32 in the received information. The host terminal 70 transfers the right object 42 among the received information to the storage device 80. At this time, the host terminal 70 collectively refers to a computing device having an independent CPU capable of executing the executable contents 30, such as a PC, a notebook, and a workstation. 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 표준의 저장장치 등)를 통칭한다.The storage device 80 is connected to the host terminal 70 via the communication interface 90 and is connected to the storage device 80 through a storage device program 52 required for driving the storage device 80, And the right object 42 for the contents 32 to be separated. The storage device 80 performs an operation on the detachment object code block 34 and returns an output value to the host terminal 70 in response to a request from the host terminal 70 when the executable content 30 is executed. 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 And stores it in the memory. The storage device 80 may be a storage device having a processor, such as a USB memory, a flash memory card, various removable and portable storage media such as a SD (Secure Digital) memory card, a microSD memory card, Storage devices, etc.).

이와 같이 호스트 단말(70)에 통신인터페이스(90)를 매개로 저장장치(80)가 연결된 상태에서, 사용자가 호스트 단말(70)의 입력부, 예컨대 키보드, 마우스, 터치패드 등을 통하여 실행형 컨텐츠(30)의 실행을 요청하면, 호스트 단말(70)은 서비스용 컨텐츠(32)에 대한 실행을 시작한다. 호스트 단말(70)은 서비스용 컨텐츠(32)에 없는 코드에 대한 실행 요청을 저장장치(80)로 전달한다. 그리고 저장장치(80)는 실행 요청에 대응하는 분리 실행 대상 코드 블록(34)을 실행한 후 출력값을 호스트 단말(70)로 전달한다.In this way, when the storage device 80 is connected to the host terminal 70 via the communication interface 90, the user can access the executable content (for example, a keyboard, a mouse, a touch pad, 30), the host terminal 70 starts execution for the service contents 32. In this case, The host terminal 70 delivers the execution request for the code not contained in the service content 32 to the storage device 80. [ Then, the storage device 80 executes the separation execution subject 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 via 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 separation execution object code block 34 from the DRM server 40 and transfers 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 separation execution object code block 34 from the content distribution server 50. [ The host terminal 70 transmits the corresponding rights object 52 to the storage device 80 connected by the communication interface 90. [

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

이와 같이 본 실시예에 따른 코드 블록 제공 시스템은 실행형 컨텐츠(30)에 대한 호스트 단말(70)과 저장장치(80) 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록(34)을 권리 객체(42)에 포함시켜 저장장치(80)로 제공할 수 있다.As described above, the code block providing system according to the present embodiment includes a code block 34 (which is capable of providing a stable execution environment when executing separation 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, It is possible to suppress the problem that the signal processing speed between the host terminal 70 and the storage device 80 is delayed in the process of providing the data to the storage device 80. [

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

실행형 컨텐츠(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 dynamic linking library (DLL). The executable content 30 including such a plurality of files can be divided into a code area 31 and a data area 33 as shown in FIG. The code region 31 includes a plurality of code blocks, and the separation execution object code block 34 includes a plurality of code blocks extracted from the code region 31. For example, the detachment object code block 34 includes a plurality of basic block groups 37, and the basic block group 37 is a group of a plurality of basic blocks 35. [

이때 베이식 블록(35)은 단일 입력(single input) 및 단일 출력(single output)의 속성을 갖는 명령어의 열(sequence of instruction)로서, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 코드 블록으로 정의할 수 있다. 즉 베이식 블록(35)은 항상 시작부터 끝까지 한번에 실행되는 연속적인 문장(코드의 모임)을 의미하며, 중간에 흐름 제어로 인해 실행이 중지되지 않는 문장 그룹이다.At this time, 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 attributes that do not allow entry from the outside to the inside Can be defined. That is, the basic block 35 is a continuous sentence (a group of codes) which is executed all at once from start to end, and is a group of sentences whose execution is not stopped due to the 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 in a code area of the basic block group 37 extracted by the separation executing object code block 34 and a data area 33 do. At this time, the stub code 36 has a code area extracted from the service content 32 and a code area extracted from the extracted code area 30 when performing the separation execution of the executable content 30 between the host terminal 70 and the storage device 80. [ To-be-separated-execution-target code block 34 corresponding to the program code. That is, the stub code 36 transfers the control signal from the extracted code area to the storage device 80 when executing the separate execution for the executive content 30. [ The storage device 80 having received the control signal performs an operation on the separation execution object code block 34 corresponding to the control signal and returns the calculated output value 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 separation execution subject code block 34 includes a plurality of basic block groups 37 extracted from the code area 31 of the executive content 30 through profiling and analysis of the executive contents 30. [ That is, the separation execution target code block 34 performs the profiling and analysis of the executive content 30 to select the basic block group 37 in the code area 31 of the executive content 30, At least one of the block groups 37 may be extracted into the separation execution object code block 34. [ A stub code 36 is inserted in the part where the separation execution object 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 separation execution target code block 34, a service content 32 from which the separation execution target code block 34 is extracted ).

분리 실행 대상 코드 블록(34)은 저장장치용 코드 블록으로 변환되어 저장장치(80)에 저장된 형태로 제공되거나 다운로드 형태로 저장장치(80)에 제공될 수 있다. 분리 실행 대상 코드 블록(34)은 전술된 바와 같이 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)이다. 분리 실행 대상 코드 블록(34)은 분리 실행 대상 코드 블록(34)의 시작점(entry point)을 통한 제어 신호의 진입 및 베이식 블록(35) 간의 제어 신호의 이동은 허용하지만, 분리 실행 대상 코드 블록(34)의 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)으로 선택하는 것이 바람직하다.The detachment 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 in a form of a download in the storage device 80. [ The separation execution object code block 34 is a basic block group 37 including a plurality of basic blocks 35 as described above. The separation execution subject code block 34 permits the entry of the control signal through the entry point of the separation execution subject code block 34 and the movement of the control signal between the basic blocks 35, It is preferable to select the basic block group 37 including a plurality of mutually related basic blocks 35 without entry of the control signal into the basic block 35 excluding the starting point of the basic block 35. [

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

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

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

제1 데이터베이스부(43)는 서비스용 컨텐츠(32) 및 분리 실행 대상 코드 블록(34)을 저장한다. 이때 서비스용 컨텐츠(32)는 DCF 형태로 변환되어 제1 데이터베이스부(43)에 저장될 수 있다.The first database unit 43 stores the service contents 32 and the separation execution object code block 34. [ At this time, the service contents 32 may be converted into the DCF format 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 separation execution subject code block 34 is a code block extracted from the executable contents 30 executed in the host terminal 70. [ For example, the separation execution object code block 34 may be a code block extracted from the code area 31 of the executable contents 30 for x86 or x64. Therefore, the separation execution object code block 34 is converted into a code format that can be used in the storage device 80. [ For example, when the storage device 80 is a smart card, the separation executing object code block 34 is converted into a Java Byte code block or an ARM code block. The detachment target code block 34 may be included in a rights object or an applet and provided to the smart card. In the present embodiment, an example has been disclosed in which the code block 34 for separation execution is included in the right object 42 and 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 control unit 45 performs the overall control operation of the DRM server 40. [ That is, the first server control unit 45 applies the DRM to the service content 32 and the separation execution object code block 34 received from the content registration server 20. [ The first server control unit 45 can encrypt the service content 32 with the CEK, format it with the DCF, and store it in the first database unit 43. The first server control unit 45 controls the contents server 32 to execute DRM according to the purchase request for the user's specific executive content 30 through the content distribution server 50, Rights object 42 to the content distribution server 50. [ At this time, the DRM server 40 encrypts the CEK with the user's private key to generate the rights object 42 and transmits the rights object 42 to the content distribution server 50. In particular, the first server control unit 45 generates the rights object 42 including the separation execution target code block 34 and transmits the rights object 42 to the content distribution server 50. That is, the first server control unit 45 generates the rights object 42 by encrypting the separation execution object code block 34 and the CEK with the private key of the user who has requested the purchase. At this time, the created right object 42 is a right object for installing or updating.

본 실시예에 따른 코드 블록 제공 시스템의 컨텐츠 분배 서버(50)는, 도 1 내지 도 3, 도 5에 도시된 바와 같이, 제2 송수신부(51), 제2 데이터베이스부(53) 및 제2 서버제어부(55)를 포함하여 구성된다.1 to 3 and 5, the content distribution server 50 of the code block providing system according to the present embodiment includes a second transmission / reception unit 51, a second database unit 53, and a second And 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 via the network 60. [ The second transceiver unit 51 receives the purchase request for the specific executive content 30 from the host terminal 70 under the control of the second server control unit 55 and transfers the purchase request to the DRM server 40. [ The second transceiver 51 receives the DRM-applied service content 32 and the rights object 42 from the DRM server 40 under the control of the second server control unit 55 and transmits the DRM content 32 and the rights object 42 to the host terminal 70 do. The second transceiver 51 receives the rights object 42 including the detachment object code block 34 from the DRM server 40 and transfers 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 rights 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)로 전달한다.The second server control unit 55 performs an overall control operation of the content distribution server 50. The second server control unit 55 receives the purchase request for the user's specific executive content 30 from the host terminal 70 via the second transceiver 51 and transfers the purchase request to the DRM server 40. [ The second server control unit 55 receives the service content 32 and the rights object 42 to which DRM is applied for the executive content 30 through the second transceiver 51 and transmits the service content 32 and the rights object 42 to the host terminal 70. [ .

본 실시예에 따른 코드 블록 제공 시스템의 호스트 단말(70)은, 도 1 내지 도 3, 도 6에 도시된 바와 같이, 통신부(71), 입력부(73), 제1 저장부(75), 제1 통신인터페이스부(77), 표시부(78) 및 제1 제어부(79)를 포함하여 구성된다.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, 1 communication interface unit 77, a display unit 78, and a first control unit 79, as shown in FIG.

통신부(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 via the network 60. The communication unit 71 transmits a purchase request for the specific executive content 30 to the content distribution server 50 under the control of the first control unit 79. The communication unit 71 receives the content 32 and the rights object 42 to which DRM is applied from the content distribution server 50 and delivers the content 32 and the rights object 42 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 operating the host terminal 70 and generates a selection signal according to the user's selection of the key and transmits the selection signal to the first control unit 79. The user requests purchase of the executive content 30 through the input unit 73 and stores the rights object 42 and the separation execution subject code block 34 of the purchased executive content 30 in the storage device 80 A selection signal for requesting installation can be input. The input unit 73 may be an input device such as a keypad, a pointing device such as a touch pad, or 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 during the execution of the program. The first storage unit 75 stores an execution program for installing the executable content 30 based on the separation execution. Particularly, 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 77 communicates with the storage device 80 via 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 control of the first control unit 79 The first communication interface unit 77 requests the CEK for decrypting the DRM-applied service content 32 to the storage device 80. The first communication interface unit 77 receives the service content 32 ) And the code block 34 for separation execution.

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

그리고 제1 제어부(79)는 호스트 단말(70)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 특히 제1 제어부(79)는 분리 실행 기반의 실행형 컨텐츠(30) 설치를 제어한다. 즉 제1 제어부(79)는 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하여 설치한다. 제1 제어부(79)는 권리 객체(42)를 저장장치(80)에 설치한다. 그리고 제1 제어부(79)는 저장장치(80)와 함께 분리 실행 기반의 실행형 컨텐츠(30) 실행을 수행한다.The first control unit 79 is a microprocessor that performs an overall control operation of the host terminal 70. In particular, the first control unit 79 controls the installation of the execution-based 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 control unit 79 installs the rights object 42 in the storage device 80. The first control unit 79 performs execution of the executable 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 control unit 79 transmits the rights object 42 including the separation execution target code block 34 to the content distribution server 50 and transfers it to the storage device 80.

본 실시예에 따른 코드 블록 제공 시스템의 저장장치(80)는, 도 1 내지 도 3, 도 7에 도시된 바와 같이, 제2 통신인터페이스부(81), 제2 저장부(83) 및 제2 제어부(85)를 포함하여 구성된다.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 And a control unit 85.

제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 via the communication interface 90 and communicates with the host terminal 70. The second communication interface unit 81 receives the installation request of the rights object 42 including the detachment object code block 34 from the host terminal 70 and transfers the request to the second control unit 85. The second communication interface unit 81 receives the right object 42 including the separation execution object code block 34 from the host terminal 70 and transfers the right 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 during the execution of the program. The second storage unit 83 installs the received right object 42 and extracts the separation execution object code block 34 from the right object 42 including the separation execution object code block 34 Save the executable program to be saved. 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 program for the storage device 52, and the separation execution object code block 34. [ At this time, the detachment object code block 34 is stored in the NOR memory in an execution form, and the right object 42 can be stored in the NAND memory.

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

제2 제어부(83)는 DRM 처리부(82), 저장장치용 프로그램 처리부(84) 및 분리 실행 대상 코드 블록 처리부(86)를 포함하여 구성된다.The second control unit 83 includes a DRM processing unit 82, a storage device program processing unit 84, and a separation execution object 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 processing unit 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 processing unit 82 decodes the CEK from the right object 42 for decoding the service content 32 to which the DRM is applied and transmits the decoded CEK to the host terminal 70 at the request of the host terminal 70. [ The DRM processing unit 82 also plays a role of installing a user's private key. The installation of the private key is performed only for the first time after purchasing the storage device 80. If the private key is subsequently updated, all the 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. [ (86).

저장장치용 프로그램 처리부(84)는 저장장치용 프로그램(52)의 설치를 제어한다. 예컨대, 저장장치(80)가 스마트 카드인 경우, 저장장치용 프로그램 처리부(84)는 자바 카드 플랫폼(Java Card Platform)을 기반으로 구축될 수 있다. 저장장치용 프로그램(52)은 자바 카드 플랫폼에서 사용되는 애플릿이다. 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다. The program processing unit 84 for the storage device controls the installation of the program 52 for the storage device. For example, when the storage device 80 is a smart card, the storage device program processing unit 84 can be constructed based on a Java Card Platform. The program 52 for the storage device is an applet used in the Java card platform. The separation execution object 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 object code block processing section 86 stores the separation execution object code block 34 in the execution form and returns the resultant value calculated through the execution of the separation execution object code block 34 to the host terminal 70 do. That is, the separation execution subject code block 34 extracted from the DRM processing unit 82, and stores it in the second storage unit 83 in an execution form. At this time, when the separation execution target code block processing section 86 receives the request for the result value of the specific separation execution object code block 34 from the host terminal 70, the separation execution execution code block processing section 86 links the separation execution object code block 34 to the runtime And then returns to the host terminal 70. The host terminal 70 then sends the result 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 object 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 via the second communication interface unit 81. The DRM processing unit 82 extracts the separation execution object code block 34 from the right object 42 in the process of installing the right object 52 including the received separation execution object code block 34, To the block processing unit (86). The separation execution object code block processing unit 86 stores the received separation execution object 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 . When the confirmation result is sufficient, the separation execution object code block processing section 86 stores the separation execution object code block 34 in the execution form in the memory.

하지만 확인 결과 부족한 경우, 분리 실행 대상 코드 블록 처리부(86)는 메모리 부족 메시지를 제2 통신인터페이스부(81)를 통하여 호스트 단말(70)로 전송한다. 호스트 단말(70)로부터 메모리 확보 요청 메시지를 수신하면, 저장장치용 프로그램 처리부(84)는 부족한 메모리 용량을 확보한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다. 이때 메모리 확보 요청 메시지는 제2 저장부(83)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 권리 객체(42)에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지일 수 있다.However, if the verification result is insufficient, the separation execution object code block processing unit 86 transmits a memory short message to the host terminal 70 via the second communication interface unit 81. [ Upon reception of the memory reservation request message from the host terminal 70, the program processing unit 84 for storage device reserves a memory capacity insufficient. Then, the separation execution object code block processing section 86 stores the separation execution object code block 34 in an execution form in a memory. At this time, the memory reservation request message may be a deletion request message for specific information according to the user's selection signal among the information stored in the second storage unit 83. [ Or the memory reservation request message may be a deletion request message of a previously stored right object corresponding to the right 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 now be described with reference to FIGS. 1 to 9. FIG. 8 is a flowchart illustrating a method of providing a code block for content based on separation according to an embodiment of the present invention. And FIG. 9 is a detailed flowchart according to the step of storing the separation execution object code block of FIG.

먼저 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 of the registered executable content 30 and the separation execution object code block 34 to the DRM server 40. [ The DRM server 40 applies DRM to the received service content 32 and the separation execution object code block 34. [ For example, the DRM server 40 encrypts the service content 32 with the CEK, formats it with the DCF, and stores it.

한편 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). That is, when the host terminal 70 accesses the content distribution server 50 via the network 60, the content distribution server 50 provides the host terminal 70 with a list of the purchasable executable content 30 . The host terminal 70 displays a list of the received executive content 30 on the screen and transmits the purchase request for the specific executive content 30 to the content distribution server 50.

다음으로 S107단계에서 컨텐츠 분배 서버(50)는 특정 실행형 컨텐츠(30)의 구매 요청을 DRM 서버(40)로 전달한다.Next, in step S107, the content distribution server 50 delivers a purchase request for the specific executive 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)로 전송한다Then, in step S109, the DRM server 40 generates a rights object 42 including the code block 34 for separation execution of the executable content 30 requested to be purchased. 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 generates the rights object 42 by encrypting the separation execution object code block 34 and the CEK with the private key of the user who has requested the purchase. In step S111, the DRM server 40 transmits the DRM-applied service content 32 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. [ On the other hand, the host terminal 70 may request the installation of the rights object 42 including the detachment object code block 34 together.

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

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

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

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 separation execution object code block 34 in an execution form in the memory.

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

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

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

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

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

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

본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공하고, 이를 통하여 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.The present invention relates to a system for providing a code block for content based on separation, 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. .

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 service
34: separation execution target code block 40: DRM server
42: right object 50: content distribution server
52: program for storage device 60: network
70: Host terminal 80: Storage device
100: Digital rights management system based on separation execution

Claims (16)

실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체(Right Object; RO)를 통신인터페이스로 연결된 저장장치로 전송하는 호스트 단말;
상기 호스트 단말로부터 상기 권리객체를 수신하고, 상기 수신한 권리객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하고, 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장장치;
를 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 상기 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되며,
상기 저장장치는,
상기 실행형 컨텐츠의 분리 실행을 수행 시, 상기 호스트 단말에서 요청한 분리 실행 대상 코드 블록에 대한 연산을 수행하여 산출한 결과값을 상기 호스트 단말로 반환하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템.
A host terminal for transmitting a right object (RO Object) including an execution target code block of executable content to a storage device connected via a communication interface;
A storage device for receiving the right object from the host terminal, extracting the separation execution object code block from the right object in the process of installing the received right object, and storing the extracted separation execution object code block in an execution form ;
/ RTI >
The separation execution object code block includes:
A basic block group selected in a code area of the executable content through profiling and analysis of the executable content and converted into a code block for a storage device executable in the storage device,
The storage device comprising:
And performing a computation on a detachment object code block requested by the host terminal and returning the calculated result value to the host terminal when performing the detachment execution of the executable content. Delivery system.
실행형 컨텐츠의 분리 실행 대상 코드 블록을 저장하는 데이터베이스부;
컨텐츠 분배 서버와 통신을 수행하는 송수신부;
상기 송수신부를 통하여 상기 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하면, 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하고, 상기 생성한 권리 객체를 상기 컨텐츠 분배 서버로 전송하는 서버제어부;
를 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되는 것을 특징으로 하는 분리 실행 기반의 DRM 서버.
A database unit for storing separate execution target code blocks of executable contents;
A transmission / reception unit for communicating with the content distribution server;
Receiving a purchase request for specific executable content from the content distribution server through the transceiver unit, generating a rights object including a code block to be separated from the executable content, and transmitting the generated rights object to the content distribution server To a server;
/ RTI >
The separation execution object code block includes:
Wherein the execution block is a basic block group selected from a code area of the executable content through profiling and analysis of the executable content and is converted into a code block for a storage device executable in a storage device, server.
저장부;
호스트 단말과 통신을 수행하며, 상기 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 통신인터페이스부;
상기 통신인터페이스부로부터 상기 설치 요청을 전달받아 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하는 DRM 처리부;
상기 DRM 처리부로부터 상기 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 상기 저장부에 저장하는 분리 실행 대상 코드 블록 처리부;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 저장장치.
A storage unit;
A communication interface for communicating with a host terminal and receiving a request for installing a right object including a code block to be executed for execution of execution content from the host terminal;
A DRM processing unit for receiving the installation request from the communication interface unit and extracting the detachment object code block from the right object in the process of installing the right object including the execution object code block of execution content;
A separation execution object code block processing unit for receiving the extracted separation execution object code block from the DRM processing unit and storing the separated separation execution object code block in the storage unit in an execution form;
And a storage unit that stores the execution information.
제3항에 있어서,
상기 통신인터페이스부는 상기 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하여 상기 DRM 처리부로 전달하는 것을 특징으로 하는 분리 실행 기반의 저장장치.
The method of claim 3,
Wherein the communication interface unit receives the rights object including the code block to be separated from the executable content from the host terminal and delivers the rights object to the DRM processor.
DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하여 저장하는 저장 단계;
상기 DRM 서버가 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하는 수신 단계;
상기 DRM 서버가 상기 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하는 생성 단계;
상기 DRM 서버가 상기 생성한 권리 객체를 상기 컨텐츠 분배 서버로 전송하는 전송 단계;
를 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
A DRM server receiving and executing an execution target code block of executable content from a content registration server;
A receiving step of the DRM server receiving a purchase request for specific executive content from a content distribution server;
A generating step of the DRM server generating a rights object including a code block to be separated for execution of the specific executive content;
A DRM server for transmitting the generated rights object to the content distribution server;
/ RTI >
The separation execution object code block includes:
Wherein the execution block is a basic block group selected from a code area of the executable content through profiling and analysis of the executable content and is converted into a code block for a storage device executable in a storage device. A method for providing a code block.
제5항에 있어서, 상기 저장 단계는,
상기 DRM 서버가 상기 컨텐츠 등록 서버로부터 상기 실행형 컨텐츠의 서비스용 컨텐츠를 수신하는 단계;
상기 DRM 서버가 상기 수신한 서비스용 컨텐츠를 CEK(Contents Encryption Key)로 암호화한 후 DCF(DRM protected Contents Format)로 포맷팅하여 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
6. The method according to claim 5,
Receiving, by the DRM server, service content of the executable content from the content registration server;
The DRM server encrypts the received service content with a content encryption key (CEK), formats and stores the content in a DRM protected content format (DCF)
The method of claim 1, further comprising:
제5항에 있어서, 상기 생성 단계는,
상기 DRM 서버가 상기 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록과 CEK을 상기 구매 요청한 사용자의 개인키(private key)로 암호화하여 권리 객체를 생성하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
6. The method according to claim 5,
Wherein the DRM server generates a rights object by encrypting the code block and the CEK of the specific execution content of the specific executive content with a private key of the purchasing requesting user Way.
분리 실행 기반의 컨텐츠용 코드 블록 제공 방법으로,
저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 수신 단계;
상기 저장장치가 상기 권리 객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하는 추출 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계;
를 포함하며,
상기 실행형 컨텐츠의 분리 실행을 수행 시, 상기 호스트 단말에서 요청한 분리 실행 대상 코드 블록에 대한 연산을 수행하여 산출한 결과값을 상기 호스트 단말로 반환하는 단계;
를 더 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 상기 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
A method for providing a code block for content based on separation execution,
A receiving step of receiving from the host terminal connected to the storage device a request for installing a rights object including an execution object code block for execution content;
An extraction step of extracting the separation execution object code block from the right object in the process of installing the right object by the storage device;
A storage step of storing the extraction execution target code block extracted by the storage device in an execution form;
/ RTI >
Performing an operation on a separate execution object code block requested by the host terminal and returning the calculated result value to the host terminal when performing the separate execution of the executable contents;
Further comprising:
The separation execution object code block includes:
Wherein the execution block is a basic block group selected in a code area of the executable content through profiling and analysis of the executable content and is converted into a code block for a storage device executable in the storage device. A method for providing a code block for content.
제8항에 있어서, 상기 수신 단계에서,
상기 저장장치가 접속한 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하는 것을 특징으로 하는 분리 실행 기반의 코드 블록 제공 방법.
9. The method according to claim 8,
And a right object including a code block to be separated from the executable content is received from a host terminal connected to the storage device.
제8항에 있어서, 상기 저장 단계는,
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계;
상기 확인 결과 충분한 경우, 상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
9. The method according to claim 8,
Confirming that the storage device has a sufficient capacity of the remaining memory to store the extracted execution execution target code block;
Storing the extracted execution object code block in an execution form in the memory when the verification result is satisfactory;
And generating a code block for a content based on the extracted execution code.
제10항에 있어서,
상기 확인 결과 부족한 경우, 상기 저장장치가 메모리 부족 메시지를 상기 호스트 단말로 전송하는 단계;
상기 저장장치가 상기 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
11. The method of claim 10,
If the result of the check is insufficient, the storage device transmits an out-of-memory message to the host terminal;
The storage device receiving a memory reservation request message from the host terminal to secure a memory capacity insufficient;
Storing the extracted execution object code block in an execution form in the memory by the storage device;
The method of claim 1, further comprising:
제11항에 있어서,
상기 메모리 확보 요청 메시지는 상기 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
12. The method of claim 11,
Wherein the memory reservation request message includes a deletion request message for information stored in the storage device.
제11항에 있어서,
상기 메모리 확보 요청 메시지는 설치할 권리 객체에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
12. The method of claim 11,
Wherein the memory reservation request message includes a delete request message of a previously stored right object corresponding to a right object to be installed.
삭제delete 제8항에 있어서,
상기 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 상기 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.
9. The method of claim 8,
Wherein the separation execution object code block is converted into a Java Byte code block or an ARM code block when the storage device is based on a Java Card Platform (Java Card Platform) Delivery method.
제8항 내지 제13항 및 제15항 중 어느 한 항에 따른 방법이 기록된 컴퓨터로 판독 가능한 기록매체.A computer-readable recording medium on which the method according to any one of claims 8 to 13 and 15 is recorded.
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 Expired - Fee Related KR101487176B1 (en)

Applications Claiming Priority (4)

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

Publications (2)

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

Family

ID=43772986

Family Applications (8)

Application Number Title Priority Date Filing Date
KR20100029978A Expired - Fee Related 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
KR1020100029969A Active 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
KR20100030188A Expired - Fee Related 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
KR1020100030189A Active 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 Ceased KR20110013187A (en) 2009-07-30 2010-04-02 System and method for providing content or service using storage device, DDR server and storage device thereof, recording medium therefor
KR1020100031120A Active 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 Expired - Fee Related 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
KR1020100031065A Active 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

Family Applications After (7)

Application Number Title Priority Date Filing Date
KR1020100029969A Active 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
KR20100030188A Expired - Fee Related 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
KR1020100030189A Active 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 Ceased KR20110013187A (en) 2009-07-30 2010-04-02 System and method for providing content or service using storage device, DDR server and storage device thereof, recording medium therefor
KR1020100031120A Active 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 Expired - Fee Related 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
KR1020100031065A Active 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

Country Status (1)

Country Link
KR (8) KR101487176B1 (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 삼성전자주식회사 Apparatus and method for running an 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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172351A (en) 2004-12-20 2006-06-29 Hitachi Ltd Method and system for managing expiration date of contents using removable media
KR101354759B1 (en) 2007-01-03 2014-01-22 엘지전자 주식회사 How to manage digital rights of terminal

Family Cites Families (10)

* 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
KR100738917B1 (en) 2006-02-14 2007-07-12 에스케이 텔레콤주식회사 Server, system, and method for providing encrypted content and authorization object to electronic communication device using delegation method of authorization issuing 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
KR100783811B1 (en) 2007-08-28 2007-12-10 주식회사 파수닷컴 How to manage digital rights for compressed files
KR101689351B1 (en) 2007-12-20 2016-12-23 코닌클리케 필립스 엔.브이. Device and method for digital right management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172351A (en) 2004-12-20 2006-06-29 Hitachi Ltd Method and system for managing expiration date of contents using removable media
KR101354759B1 (en) 2007-01-03 2014-01-22 엘지전자 주식회사 How to manage digital rights of terminal

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101487176B1 (en) System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method
AU2006200154B2 (en) Flexible licensing architecture for licensing digital application
KR100796583B1 (en) Systems, methods and recording media for license management
US20120089733A1 (en) Managing Access to an Application
EP2628125B1 (en) Method and apparatus for downloading drm module
KR100546742B1 (en) Target system based source program development device and method
US9392051B2 (en) Application distribution supplying a dedicated application to a terminal from an application deposited by the developer
US20020055910A1 (en) Program component distribution
CN105976177A (en) NFC (near field communication)-oriented cloud payment method
US8418169B2 (en) Management method for managing software module and information processor
KR101442000B1 (en) Server for registering separating execution based contents, method thereof and computer recordable medium storing program performing the method
KR101498919B1 (en) System and method for digital rights management based on storage device, and recording medium thereof
US20080301654A1 (en) Program processing apparatus, program processing method and computer readable information recording medium
KR20060117769A (en) DRM-based usage right transfer service method and device
KR20120002079A (en) Application copyright protection system, application copyright protection device and method, and terminal device and application copyright protection method of the terminal device
US20060212513A1 (en) Managing apparatus, managing method and computer-readable storage medium
KR100611119B1 (en) DRM-based WIP Content Service Method and Apparatus
Maroñas et al. Implementing mobile applications with the MIPAMS content management platform
KR20060117771A (en) DRM based content playback service method and device
JP2003337705A (en) Software delivery system and method using internet
KR20060117778A (en) DRM based video content service method and apparatus

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20100401

PG1501 Laying open of application
N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20111021

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20130201

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20100401

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20140725

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20150120

PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20150122

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20150123

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20180122

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20180122

Start annual number: 4

End annual number: 4

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee